{"version":3,"sources":["src/domain/models/index.ts","src/data/protocols/http/http-client.ts","src/domain/usecases/index.ts","src/data/protocols/index.ts","assets/hexagon-bg.svg","assets/logo-white.svg","src/data/protocols/date/index.ts","src/data/protocols/criptography/index.ts","src/domain/models/client-model.ts","src/domain/models/card-model.ts","src/domain/models/service-order-detail-model.ts","src/domain/models/service-order-model.ts","src/domain/models/ticket-model.ts","src/domain/models/track-models.ts","src/domain/usecases/login/index.ts","src/domain/usecases/financial/index.ts","src/domain/usecases/financial/generate-inside-bank-slip.ts","src/domain/usecases/financial/get-tickets.ts","src/domain/usecases/financial/open-statement-of-debts.ts","src/domain/usecases/settings/index.ts","src/domain/usecases/accept-digital/index.ts","src/domain/usecases/accept-digital/get-digital-accepts.ts","src/domain/usecases/sac/index.ts","src/domain/usecases/nfs/index.ts","src/domain/usecases/nfs/get-nfs.ts","src/domain/usecases/nfs/open-danfe.ts","src/domain/usecases/nfs/open-nfse.ts","src/domain/usecases/nfs/open-lease-receipt.ts","src/domain/usecases/events/get-remoty-events.ts","src/domain/usecases/events/get-moni-events.ts","src/domain/usecases/events/get-sigma-events.ts","src/domain/usecases/service-orders/add-travel-alert-os.ts","src/domain/usecases/service-orders/get-service-orders.ts","node_modules/moment/locale sync /^/.//.*$","assets/card-bg.png","assets/inside-logo-white.svg","assets/chip-card.svg","assets/logo-color.svg","assets/sugestao-instalacao.png","assets/fundo.png","assets/logo_24dp.svg","src/infra/adapters/jwt-adapter.ts","src/infra/adapters/moment-date-adapter.ts","src/main/adapters/moment-date-adapter-factory.ts","src/main/adapters/jwt-adapter-factory.ts","src/presentation/styles/palette.ts","src/presentation/styles/theme.ts","src/infra/cache/universal-cookie-adapter.ts","src/infra/cache/local-storage-adapter.ts","src/main/factories/cache/local-storage-adapter-factory.ts","src/presentation/hooks/use-auth.ts","src/presentation/pages/Settings/components/atom.ts","src/presentation/pages/Settings/components/ActionsButtons/index.tsx","src/presentation/pages/Settings/components/FinancialSettings/styles.ts","src/presentation/pages/Settings/components/FinancialSettings/index.tsx","src/presentation/pages/Settings/components/GeneralSettings/atom.ts","src/presentation/pages/Settings/components/GeneralSettings/index.tsx","src/presentation/pages/Settings/components/EmailSendingTester/index.tsx","src/presentation/pages/Settings/components/EmailSendingTester/atom.ts","src/presentation/pages/Settings/components/InvoicesSettings/styles.ts","src/presentation/pages/Settings/components/InvoicesSettings/index.tsx","src/presentation/pages/Settings/components/ServiceOrderSettings/index.tsx","src/presentation/pages/Settings/components/PaymentAvailableToUpdate/styles.ts","src/presentation/pages/Settings/components/PaymentAvailableToUpdate/index.tsx","src/presentation/pages/Settings/components/HidePaymentMethods/styles.ts","src/presentation/pages/Settings/components/HidePaymentMethods/index.tsx","src/presentation/pages/Settings/components/MenuAccessPermissions/index.tsx","src/presentation/pages/Settings/components/ModalOnDiscardChanges/styles.ts","src/presentation/pages/Settings/components/ModalOnDiscardChanges/index.tsx","src/presentation/pages/Settings/components/ModalOnDiscardChanges/atom.ts","src/presentation/pages/Settings/components/ModalOnSaveOrDiscard/atom.ts","src/presentation/pages/Settings/components/ModalOnSaveOrDiscard/styles.ts","src/presentation/pages/Settings/components/ModalOnSaveOrDiscard/index.tsx","src/presentation/pages/Settings/components/ModalOnSaveChanges/atom.ts","src/presentation/pages/Settings/components/ModalOnSaveChanges/styles.ts","src/presentation/pages/Settings/components/ModalOnSaveChanges/index.tsx","src/presentation/pages/Settings/components/UnitsSelector/styles.ts","src/presentation/pages/Settings/components/UnitsSelector/index.tsx","src/presentation/pages/Settings/components/UnitsSelector/atom.ts","src/presentation/hooks/use-settings.ts","src/presentation/hooks/use-media-queries.ts","src/presentation/hooks/use-format.ts","src/presentation/hooks/use-theme.ts","src/main/config/env.ts","src/presentation/hooks/use-image.ts","src/domain/errors/invalid-credential-error.ts","src/domain/errors/invalid-relation-company-error.ts","src/domain/errors/unexpected-error.ts","src/domain/errors/unexpected-result-format-error.ts","src/domain/errors/access-denied-error.ts","src/domain/errors/forbidden-error.ts","src/domain/errors/result-without-records-error.ts","src/domain/errors/same-password-error.ts","src/presentation/hooks/use-error-handler.ts","src/presentation/pages/Theme/components/atom.ts","src/presentation/pages/Theme/components/ModalOnDiscardChanges/atom.ts","src/presentation/pages/Theme/components/ModalOnSaveChanges/atom.ts","src/presentation/pages/Theme/components/ActionsButtons/index.tsx","src/presentation/pages/Theme/components/ColorPicker/styles.ts","src/presentation/pages/Theme/components/ColorPicker/index.tsx","src/presentation/pages/Theme/components/LoginBackgroundSelector/index.tsx","src/presentation/pages/Theme/components/LogoSelector/index.tsx","src/presentation/pages/Theme/components/ModalOnSaveChanges/styles.ts","src/presentation/pages/Theme/components/ModalOnSaveChanges/index.tsx","src/presentation/pages/Theme/components/ModalOnDiscardChanges/styles.ts","src/presentation/pages/Theme/components/ModalOnDiscardChanges/index.tsx","src/presentation/hooks/use-theme-client.ts","src/presentation/hooks/use-notify.ts","src/presentation/pages/ProspectSettings/components/atom.ts","src/presentation/pages/ProspectSettings/components/ActionsButtons/index.tsx","src/presentation/pages/ProspectSettings/components/ModalOnSaveChanges/atom.ts","src/presentation/pages/ProspectSettings/components/ModalOnSaveChanges/styles.ts","src/presentation/pages/ProspectSettings/components/ModalOnSaveChanges/index.tsx","src/presentation/pages/ProspectSettings/components/ModalOnDiscardChanges/styles.ts","src/presentation/pages/ProspectSettings/components/ModalOnDiscardChanges/index.tsx","src/presentation/pages/ProspectSettings/components/ModalOnDiscardChanges/atom.ts","src/presentation/pages/ProspectSettings/components/ModalAddConfigUnit/styles.ts","src/presentation/pages/ProspectSettings/components/ModalAddConfigUnit/index.tsx","src/presentation/pages/ProspectSettings/components/ModalAddConfigUnit/atom.ts","src/presentation/pages/ProspectSettings/components/ModalDeleteOption/styles.ts","src/presentation/pages/ProspectSettings/components/ModalDeleteOption/index.tsx","src/presentation/pages/ProspectSettings/components/ModalDeleteOption/atom.ts","src/presentation/pages/ProspectSettings/components/TableAreaOfInterest/index.tsx","src/presentation/hooks/use-prospect-settings.ts","src/presentation/pages/EventsSettings/components/atom.ts","src/presentation/pages/EventsSettings/components/ActionsButtons/index.tsx","src/presentation/pages/EventsSettings/components/ModalOnSaveChanges/styles.ts","src/presentation/pages/EventsSettings/components/ModalOnSaveChanges/index.tsx","src/presentation/pages/EventsSettings/components/ModalOnSaveChanges/atom.ts","src/presentation/pages/EventsSettings/components/ModalOnDiscardChanges/styles.ts","src/presentation/pages/EventsSettings/components/ModalOnDiscardChanges/index.tsx","src/presentation/pages/EventsSettings/components/ModalOnDiscardChanges/atom.ts","src/presentation/hooks/use-events-settings.ts","src/presentation/components/Atoms/authentication-atom.ts","src/presentation/components/Atoms/snack-bar-atom.ts","src/presentation/components/Atoms/local-storage-atom.ts","src/presentation/components/Atoms/cookie-atom.ts","src/main/factories/cache/universal-cookie-adapter-factory.ts","src/presentation/components/Atoms/jwt-atom.ts","src/presentation/components/ActionsButtons/index.tsx","src/presentation/components/BackgroundTheme/index.tsx","src/presentation/components/Chip/styles.ts","src/presentation/components/Chip/index.tsx","src/presentation/components/ChipFilter/index.tsx","src/presentation/components/CardBase/styles.ts","src/presentation/components/CardBase/index.tsx","src/presentation/components/CardList/index.tsx","src/presentation/components/CardSwitch/index.tsx","src/presentation/components/DatePicker/styles.ts","src/presentation/components/DatePicker/index.tsx","src/presentation/components/CustomDrawer/index.tsx","src/main/config/router-navigation.ts","src/presentation/pages/RedesSociais/styles.ts","src/presentation/pages/RedesSociais/index.tsx","src/data/usecases/login/remote-authentication/remote-authentication.ts","src/data/usecases/login/remote-authentication-admin/remote-authentication-admin.ts","src/data/usecases/login/remote-get-user-by-document/remote-get-user-by-document.ts","src/data/usecases/login/remote-forgot-password/remote-forgot-password.ts","src/data/usecases/login/remote-portal-logout/remote-portal-logout.ts","src/data/usecases/login/remote-metrics-login/remote-metrics-login.ts","src/data/usecases/login/remove-metrics-logoff/remote-metrics-logoff.ts","src/data/usecases/login/remote-get-client-by-code/remote-get-client-by-code.ts","src/data/usecases/login/remote-get-client-contract/remote-get-client-contract.ts","src/data/usecases/login/remote-update-password/remote-update-password.ts","src/data/usecases/credit-card/get-credit-card/remote-get-credit-card.ts","src/data/usecases/credit-card/save-credit-card/remote-save-credit-card.ts","src/data/usecases/credit-card/pay-with-credit-card/remote-pay-with-credit-card.ts","src/data/usecases/financial/get-tickets/remote-get-tickets.ts","src/data/usecases/financial/get-ticket-pix/remote-get-ticket-pix.ts","src/data/usecases/financial/generate-bank-slip/remote-generate-bank-slip.ts","src/data/usecases/financial/generate-inside-bank-slip/remote-generate-inside-bank-slip.ts","src/data/usecases/financial/open-bank-slip/remote-open-bank-slip.ts","src/data/usecases/financial/open-statement-of-debts/remote-open-statement-of-debts.ts","src/data/usecases/settings/get-theme/remote-get-theme.ts","src/data/usecases/settings/get-unit-config/remote-get-unit-config.ts","src/data/usecases/settings/get-units/remote-get-units.ts","src/data/usecases/settings/get-prospect-configs/remote-get-prospect-configs.ts","src/data/usecases/settings/save-theme/remote-save-theme.ts","src/data/usecases/settings/save-unit-config/remote-save-unit-config.ts","src/data/usecases/settings/prospect-registration/remote-prospect-registration.ts","src/data/usecases/settings/test-email/remote-test-email.ts","src/data/usecases/settings/upload-file/remote-upload-file.ts","src/data/usecases/settings/save-prospect-config/remote-save-prospect-configs.ts","src/data/usecases/settings/get-events-settings/remote-get-events-settings.ts","src/data/usecases/settings/show-events/remote-show-events.ts","src/data/usecases/settings/get-sigma-desk-connections/remote-get-sigma-desk-connections.ts","src/data/usecases/nfs/get-nfs/remote-get-nfs.ts","src/data/usecases/nfs/open-danfe/remote-open-danfe.ts","src/data/usecases/nfs/open-nfse/remote-open-nfse.ts","src/data/usecases/nfs/open-lease-receipt/remote-open-lease-receipt.ts","src/data/usecases/service-orders/add-new-os/remote-add-new-os.ts","src/data/usecases/service-orders/add-travel-alert-os/remote-add-travel-alert-os.ts","src/data/usecases/service-orders/get-service-orders/remote-get-service-orders.ts","src/data/usecases/service-orders/get-os-attendance/remote-get-os-attendance.ts","src/data/usecases/service-orders/get-service-order-detail/remote-get-service-order-detail.ts","src/data/usecases/redes-sociais/remote-get-redes-sociais/remote-get-redes-sociais.ts","src/data/usecases/redes-sociais/remote-save-redes-sociais/remote-save-redes-sociais.ts","src/data/usecases/accept-digital/get-accept-digital/remote-get-accept-digital.ts","src/data/usecases/accept-digital/get-open-url-doc-accept/remote-open-url-doc-accept.ts","src/data/usecases/accept-digital/open-document-accept/remote-open-document-accept.ts","src/data/usecases/events/print-events/remote-print-events.ts","src/data/usecases/events/get-remoty-events/remote-get-remoty-events.ts","src/data/usecases/events/get-remoty-sectors/remote-get-remoty-sectors.ts","src/data/usecases/events/get-remoty-users/remote-get-remoty-user-events.ts","src/data/usecases/events/get-remoty-contacts/remote-get-remoty-contacts.ts","src/data/usecases/events/get-moni-events/remote-get-moni-events.ts","src/data/usecases/events/get-moni-sectors/remote-get-moni-sectors.ts","src/data/usecases/events/get-moni-users/remote-get-moni-users.ts","src/data/usecases/events/get-sowill-events/remote-get-sowill-events.ts","src/data/usecases/events/get-sowill-sectors/remote-get-sowill-sectors.ts","src/data/usecases/events/get-sowill-users/remote-get-sowill-user-events.ts","src/data/usecases/events/get-sowill-keys/remote-get-sowill-keys.ts","src/data/usecases/events/get-sowill-identifier/remote-get-sowill-identifier.ts","src/data/usecases/events/get-sigma-events/remote-get-sigma-events.ts","src/data/usecases/events/get-sigma-cloud-sectors/remote-get-sigma-cloud-sectors.ts","src/data/usecases/events/get-sigma-cloud-users/remote-get-sigma-cloud-users.ts","src/data/usecases/events/get-sigma-cloud-keys/remote-get-sigma-cloud-keys.ts","src/data/usecases/events/get-sigma-desk-sectors/remote-get-sigma-desk-sectors.ts","src/data/usecases/events/get-sigma-desk-contacts/remote-get-sigma-desk-contacts.ts","src/data/usecases/sac/get-sac-list/get-sac-list.ts","src/data/usecases/sac/create-sac/create-sac.ts","src/infra/http/axios-http-client/axios-http-client.ts","src/main/factories/http/axios-http-client-factory.ts","src/main/factories/usecases/accept-digital/get-accept-digital-factory.ts","src/main/factories/usecases/accept-digital/open-url-doc-accept-factory.ts","src/main/factories/usecases/accept-digital/open-document-accept-factory.ts","src/main/factories/usecases/credit-card/get-credit-card-factory.ts","src/main/factories/usecases/credit-card/pay-with-credit-card-factory.ts","src/main/factories/usecases/credit-card/save-credit-card-factory.ts","src/main/factories/usecases/login/authentication-factory.ts","src/main/factories/usecases/login/authentication-admin-factory.ts","src/main/factories/usecases/login/get-client-by-code-factory.ts","src/main/factories/usecases/login/get-user-by-document-factory.ts","src/main/factories/usecases/login/portal-logout-factory.ts","src/main/factories/usecases/login/metrics-logoff-factory.ts","src/main/factories/usecases/login/metrics-login-factory.ts","src/main/factories/usecases/login/forgot-password-factory.ts","src/main/factories/usecases/login/get-redes-sociais.ts","src/main/factories/usecases/login/update-password-factory.ts","src/main/factories/usecases/nota-fiscal/get-nota-fiscal-factory.ts","src/main/factories/usecases/nota-fiscal/open-danfe-factory.ts","src/main/factories/usecases/nota-fiscal/open-nfse-factory.ts","src/main/factories/usecases/nota-fiscal/open-lease-receipt-factory.ts","src/main/factories/usecases/redes-sociais/save-redes-socias-factory.ts","src/main/factories/usecases/service-orders/add-new-os-factory.ts","src/data/builders/travel-alert-os-builder.ts","src/main/factories/usecases/service-orders/add-travel-alert-os-factory.ts","src/main/builders/travel-alert-build-factory.ts","src/main/factories/usecases/service-orders/get-service-orders-factory.ts","src/main/factories/usecases/service-orders/get-os-attendance-factory.ts","src/main/factories/usecases/service-orders/get-service-order-detail-factory.ts","src/main/factories/usecases/settings/get-unit-config-factory.ts","src/main/factories/usecases/settings/get-theme-factory.ts","src/main/factories/usecases/settings/get-units-factory.ts","src/main/factories/usecases/settings/get-prospect-configs-factory.ts","src/main/factories/usecases/settings/prospect-registration-factory.ts","src/main/factories/usecases/settings/test-email-factory.ts","src/main/factories/usecases/settings/save-unit-config-factory.ts","src/main/factories/usecases/settings/save-theme-factory.ts","src/main/factories/usecases/settings/upload-file-factory.ts","src/main/factories/usecases/settings/save-prospect-configs-factory.ts","src/main/factories/usecases/settings/get-events-settings-factory.ts","src/main/factories/usecases/settings/show-events-factory.ts","src/main/factories/usecases/settings/get-sigma-desk-connections-factory.ts","src/main/factories/usecases/sac/get-sac-list-factory.ts","src/main/factories/usecases/sac/create-sac-factory.ts","src/main/factories/usecases/financial/get-tickets-factory.ts","src/main/factories/usecases/financial/get-ticket-pix-factory.ts","src/main/factories/usecases/financial/generate-bank-slip-factory.ts","src/main/factories/usecases/financial/open-bank-slip-factory.ts","src/main/factories/usecases/financial/generate-inside-bank-slip-factory.ts","src/main/factories/usecases/financial/open-statement-of-debts-factory.ts","src/data/usecases/track/get-track/remote-get-track-list.ts","src/data/usecases/track/get-track/remote-get-details-track.ts","src/main/factories/usecases/track/get-track-list-factory.ts","src/main/factories/usecases/track/get-track-details-factory.ts","src/main/factories/pages/admin/redes-sociais-factory.tsx","src/presentation/pages/Settings/styles.ts","src/presentation/pages/Settings/index.tsx","src/main/factories/pages/admin/settings-factory.tsx","src/presentation/styles/globals.ts","src/presentation/pages/Theme/styles.ts","src/presentation/pages/Theme/index.tsx","src/main/factories/pages/admin/theme-factory.tsx","src/presentation/pages/ProspectSettings/styles.ts","src/presentation/pages/ProspectSettings/index.tsx","src/main/factories/pages/admin/prospect-settings-factory.tsx","src/presentation/pages/EventsSettings/styles.ts","src/presentation/pages/EventsSettings/index.tsx","src/main/factories/pages/admin/events-settings-factory.tsx","src/presentation/pages/Financial/components/atom.ts","src/presentation/utils/get-credit-card-type.ts","src/presentation/utils/get-validity-date-format.ts","src/presentation/pages/Cartao/components/atom.ts","src/presentation/pages/Cartao/components/AddNewCreditCard/index.tsx","src/presentation/utils/validity-card-mask.ts","src/presentation/utils/number-mask.ts","src/presentation/pages/Cartao/components/CreditCard/index.tsx","src/presentation/pages/Cartao/components/ModalEditConfirmation/styles.ts","src/presentation/pages/Cartao/components/ModalEditConfirmation/index.tsx","src/presentation/pages/Cartao/components/ModalEditConfirmation/atom.ts","src/presentation/pages/Financial/components/AddOtherCreditCard/atom.ts","src/presentation/pages/Financial/components/AddOtherCreditCard/index.tsx","src/presentation/pages/Financial/components/CardTicket/styles.ts","src/presentation/pages/Financial/components/CardTicket/index.tsx","src/presentation/pages/Financial/components/CreditCardItem/index.tsx","src/presentation/pages/Financial/components/PayCreditCards/styles.ts","src/presentation/pages/Financial/components/PayCreditCards/index.tsx","src/presentation/pages/Financial/components/PayCreditCards/atom.ts","src/presentation/pages/Financial/components/FiltersChipPanel/index.tsx","src/presentation/pages/Financial/components/ModalTicketPix/styles.ts","src/presentation/pages/Financial/components/ModalTicketPix/index.tsx","src/presentation/pages/Financial/components/ModalTicketPix/atom.ts","src/presentation/pages/Financial/components/SideFilters/index.tsx","src/presentation/pages/Financial/components/SideFilters/atom.ts","src/presentation/pages/Financial/components/SelectStatusTicketFilter/index.tsx","src/presentation/pages/Financial/components/SelectStatusTicketFilter/atom.ts","src/presentation/pages/Financial/components/TicketActions/index.tsx","src/presentation/pages/Financial/components/TicketView/styles.ts","src/presentation/pages/Financial/components/TicketView/index.tsx","src/presentation/pages/Financial/components/TicketView/atom.ts","src/presentation/pages/Financial/styles.ts","src/presentation/pages/Financial/index.tsx","src/main/factories/pages/financial-factory.tsx","src/presentation/pages/Login/components/atom.ts","src/presentation/pages/Login/components/ModalForgotPassword/styles.ts","src/presentation/pages/Login/components/ModalForgotPassword/index.tsx","src/presentation/pages/Login/components/ModalUserSelect/styles.ts","src/presentation/pages/Login/components/ModalUserSelect/index.tsx","src/presentation/pages/Login/components/ModalUserSelect/atom.ts","src/presentation/pages/Login/components/ModalProspectRegistration/styles.ts","src/presentation/pages/Login/components/ModalProspectRegistration/index.tsx","src/presentation/pages/Login/components/ModalProspectRegistration/atom.ts","src/presentation/components/LogoTheme/index.tsx","src/presentation/pages/Login/styles.ts","src/presentation/pages/Login/index.tsx","src/presentation/pages/ServiceOrders/components/atom.ts","src/presentation/pages/ServiceOrders/components/CardOs/styles.ts","src/presentation/pages/ServiceOrders/components/CardOs/index.tsx","src/presentation/pages/ServiceOrders/components/FiltersChipPanel/index.tsx","src/presentation/pages/ServiceOrders/components/SideFilters/index.tsx","src/presentation/pages/ServiceOrders/components/SideFilters/atom.ts","src/presentation/pages/ServiceOrders/components/SelectStatusOsFilter/index.tsx","src/presentation/pages/ServiceOrders/components/SelectStatusOsFilter/atom.ts","src/presentation/pages/ServiceOrders/components/ModalAddNewOs/styles.ts","src/presentation/pages/ServiceOrders/components/ModalAddNewOs/index.tsx","src/presentation/pages/ServiceOrders/components/ModalAddNewOs/atom.ts","src/presentation/pages/ServiceOrders/components/ModelOsView/styles.ts","src/presentation/pages/ServiceOrders/components/ModelOsView/index.tsx","src/presentation/pages/ServiceOrders/components/ModelOsView/atom.ts","src/presentation/pages/ServiceOrders/components/OsAttendandes/styles.ts","src/presentation/pages/ServiceOrders/components/OsAttendandes/index.tsx","src/presentation/pages/ServiceOrders/styles.ts","src/presentation/pages/ServiceOrders/index.tsx","src/main/factories/pages/service-orders-factory.tsx","src/presentation/pages/Home/components/atom.ts","src/presentation/pages/Home/components/ItemMenu/index.tsx","src/presentation/pages/Home/components/Menu/styles.ts","src/presentation/pages/Home/components/Menu/index.tsx","src/presentation/pages/Home/index.tsx","src/main/factories/pages/home-factory.tsx","src/presentation/pages/Cartao/styles.ts","src/presentation/pages/Cartao/index.tsx","src/main/factories/pages/card-factory.tsx","src/presentation/pages/AceiteDigital/components/atom.ts","src/presentation/pages/AceiteDigital/components/CardAcceptDigital/styles.ts","src/presentation/pages/AceiteDigital/components/CardAcceptDigital/index.tsx","src/presentation/pages/AceiteDigital/components/FiltersChipPanel/index.tsx","src/presentation/pages/AceiteDigital/components/SideFilters/index.tsx","src/presentation/pages/AceiteDigital/components/SideFilters/atom.ts","src/presentation/pages/AceiteDigital/components/SelectStatusAcceptFilter/index.tsx","src/presentation/pages/AceiteDigital/components/SelectStatusAcceptFilter/atom.ts","src/presentation/pages/AceiteDigital/styles.ts","src/presentation/pages/AceiteDigital/index.tsx","src/main/factories/pages/accept-digital-factory.tsx","src/presentation/pages/NotaFiscal/components/atom.ts","src/presentation/pages/NotaFiscal/components/CardNF/index.tsx","src/presentation/pages/NotaFiscal/components/FiltersChipPanel/index.tsx","src/presentation/pages/NotaFiscal/styles.ts","src/presentation/pages/NotaFiscal/components/LeaseReceipt/index.tsx","src/presentation/pages/NotaFiscal/components/NFProduct/index.tsx","src/presentation/pages/NotaFiscal/components/NFService/index.tsx","src/presentation/pages/NotaFiscal/components/SideFilters/index.tsx","src/presentation/pages/NotaFiscal/components/SideFilters/atom.ts","src/presentation/pages/NotaFiscal/index.tsx","src/main/factories/pages/nf-factory.tsx","src/presentation/pages/Sac/components/atom.ts","src/presentation/pages/Sac/components/CardSac/index.tsx","src/presentation/pages/Sac/components/ModalNewSac/index.tsx","src/presentation/pages/Sac/components/ModalNewSac/atom.ts","src/presentation/pages/Sac/styles.ts","src/presentation/pages/Sac/index.tsx","src/main/factories/pages/sac-factory.tsx","src/presentation/pages/Events/components/atom.ts","src/presentation/pages/Events/components/SideFilters/index.tsx","src/presentation/pages/Events/components/SideFilters/atom.ts","src/presentation/pages/Events/components/SelectTypeSigmaEvent/styles.ts","src/presentation/pages/Events/components/SelectTypeSigmaEvent/index.tsx","src/presentation/pages/Events/components/SelectRemotyEventCompany/index.tsx","src/presentation/pages/Events/components/SelectTypeSigmaEvent/atom.ts","src/presentation/pages/Events/components/SelectSigmaCloudKey/atom.ts","src/presentation/pages/Events/components/SelectSigmaCloudKey/index.tsx","src/presentation/pages/Events/components/FilterChipPanel/index.tsx","src/presentation/pages/Events/components/MonitoringEventList/index.tsx","src/presentation/pages/Events/components/MonitoringEventList/atom.ts","src/presentation/pages/Events/components/SectorsList/index.tsx","src/presentation/pages/Events/components/SectorsList/atom.ts","src/presentation/pages/Events/components/CardMonitoringEvent/styles.ts","src/presentation/pages/Events/components/CardMonitoringEvent/index.tsx","src/presentation/pages/Events/components/CardSector/styles.ts","src/presentation/pages/Events/components/CardSector/index.tsx","src/presentation/pages/Events/components/ContactEventList/index.tsx","src/presentation/pages/Events/components/ContactEventList/atom.ts","src/presentation/pages/Events/components/CardContact/styles.ts","src/presentation/pages/Events/components/CardContact/index.tsx","src/presentation/pages/Events/components/UserEventList/index.tsx","src/presentation/pages/Events/components/UserEventList/atom.ts","src/presentation/pages/Events/components/CardUsers/styles.ts","src/presentation/pages/Events/components/CardUsers/index.tsx","src/presentation/pages/Events/components/SelectSowillKey/atom.ts","src/presentation/pages/Events/components/SelectSowillKey/index.tsx","src/presentation/pages/Events/styles.ts","src/presentation/pages/Events/index.tsx","src/main/factories/pages/events-factory.tsx","src/main/factories/usecases/events/print-events-factory.ts","src/main/factories/usecases/events/get-remoty-events-factory.ts","src/main/factories/usecases/events/get-remoty-sectors-factory.ts","src/main/factories/usecases/events/get-remoty-users-factory.ts","src/main/factories/usecases/events/get-remoty-contacts-factory.ts","src/main/factories/usecases/events/get-moni-events-factory.ts","src/main/factories/usecases/events/get-moni-users-factory.ts","src/main/factories/usecases/events/get-moni-sectors-factory.ts","src/main/factories/usecases/events/get-sowill-events-factory.ts","src/main/factories/usecases/events/get-sowill-sectors-factory.ts","src/main/factories/usecases/events/get-sowill-users-factory.ts","src/main/factories/usecases/events/get-sowill-keys-factory.ts","src/main/factories/usecases/events/get-sowill-identifier-factory.ts","src/main/factories/usecases/events/get-sigma-events-factory.ts","src/main/factories/usecases/events/get-sigma-cloud-sectors-factory.ts","src/main/factories/usecases/events/get-sigma-cloud-users-factory.ts","src/main/factories/usecases/events/get-sigma-cloud-keys-factory.ts","src/main/factories/usecases/events/get-sigma-desk-sectors-factory.ts","src/main/factories/usecases/events/get-sigma-desk-contacts-factory.ts","src/presentation/pages/TravelAlert/components/atom.ts","src/presentation/pages/TravelAlert/components/ModalAddResponsible/styles.ts","src/presentation/pages/TravelAlert/components/ModalAddResponsible/index.tsx","src/presentation/pages/TravelAlert/components/ModalAddResponsible/atom.ts","src/presentation/pages/TravelAlert/components/ModalAddVehicle/styles.ts","src/presentation/pages/TravelAlert/components/ModalAddVehicle/index.tsx","src/presentation/pages/TravelAlert/components/ModalAddVehicle/atom.ts","src/presentation/pages/TravelAlert/components/ResponsiblesPanel/index.tsx","src/presentation/pages/TravelAlert/components/SelectDateTime/index.tsx","src/presentation/pages/TravelAlert/components/SelectDateTime/atom.ts","src/presentation/pages/TravelAlert/components/VehiclePanel/index.tsx","src/presentation/pages/TravelAlert/styles.ts","src/presentation/pages/TravelAlert/index.tsx","src/main/factories/pages/travel-alert-factory.tsx","src/presentation/pages/ServiceOrderDetail/components/atom.ts","src/presentation/pages/ServiceOrderDetail/components/PageHeader/styles.ts","src/presentation/pages/ServiceOrderDetail/components/PageHeader/index.tsx","src/presentation/pages/ServiceOrderDetail/styles.ts","src/presentation/pages/ServiceOrderDetail/components/ClientInfo/index.tsx","src/presentation/pages/ServiceOrderDetail/components/OsInfo/index.tsx","src/presentation/pages/ServiceOrderDetail/components/OsProducts/index.tsx","src/presentation/pages/ServiceOrderDetail/components/OsServices/index.tsx","src/presentation/pages/ServiceOrderDetail/components/OsTotalizer/index.tsx","src/presentation/pages/ServiceOrderDetail/components/OsTreatments/index.tsx","src/presentation/pages/ServiceOrderDetail/components/OsRemovals/index.tsx","src/presentation/pages/ServiceOrderDetail/components/OsWarehouse/index.tsx","src/presentation/pages/ServiceOrderDetail/components/OsProblems/index.tsx","src/presentation/pages/ServiceOrderDetail/components/OsSignatures/index.tsx","src/presentation/pages/ServiceOrderDetail/index.tsx","src/main/factories/pages/service-order-detail-factory.tsx","src/presentation/pages/Track/styles.ts","src/presentation/pages/Track/atom.ts","src/presentation/pages/Track/components/CardTrack/styles.ts","src/presentation/pages/Track/components/CardTrack/index.tsx","src/presentation/pages/Track/components/TrackDetails/styles.ts","src/presentation/pages/Track/components/TrackDetails/index.tsx","src/presentation/pages/Track/components/TrackDetails/atom.ts","src/presentation/pages/Track/index.tsx","src/main/factories/pages/track-factory.tsx","src/presentation/pages/Contract/components/atom.ts","src/presentation/pages/Contract/styles.ts","src/presentation/pages/Contract/components/CompanyCard/index.tsx","src/presentation/pages/Contract/components/ContractCard/index.tsx","src/presentation/pages/Contract/components/ModalContractDetails/index.tsx","src/presentation/pages/Contract/index.tsx","src/main/factories/pages/contract-factory.tsx","src/presentation/pages/StatementOfDebts/components/atom.ts","src/presentation/pages/StatementOfDebts/styles.ts","src/presentation/pages/StatementOfDebts/index.tsx","src/main/factories/pages/statement-of-debts-factory.tsx","src/presentation/components/DrawerNavigator/index.tsx","src/presentation/components/Loading/index.tsx","src/presentation/components/Logout/styles.ts","src/presentation/components/Logout/index.tsx","src/presentation/components/Logout/atom.ts","src/presentation/components/InputField/index.tsx","src/presentation/components/InstallButton/index.tsx","src/presentation/components/InstallationSuggestion/styles.ts","src/presentation/components/InstallationSuggestion/index.tsx","src/presentation/components/InstallationSuggestion/atom.ts","src/presentation/components/Header/index.tsx","src/presentation/components/ConfigSlider/index.tsx","src/presentation/components/EmptyList/styles.ts","src/presentation/components/EmptyList/index.tsx","src/presentation/components/PageHeader/index.tsx","src/presentation/components/PixIcon/index.tsx","src/presentation/components/Footer/index.tsx","src/presentation/components/MenuActions/index.tsx","src/presentation/components/MessageBlock/index.tsx","src/presentation/components/ModalBase/index.tsx","src/presentation/components/NotificationButton/index.tsx","src/presentation/components/Router/index.tsx","src/main/factories/pages/login-factory.tsx","src/presentation/components/SocialMidias/index.tsx","src/presentation/components/SocialMidias/atom.ts","src/presentation/components/SnackBar/index.tsx","src/presentation/components/SnackBarProvider/index.tsx","src/presentation/components/SideFilterDrawer/styles.ts","src/presentation/components/SideFilterDrawer/index.tsx","src/presentation/components/Select/styles.ts","src/presentation/components/Select/index.tsx","src/presentation/components/ScrollToTopButton/index.tsx","src/presentation/components/TextInput/styles.ts","src/presentation/components/TextInput/index.tsx","src/presentation/components/UserMenu/styles.ts","src/presentation/components/UserMenu/index.tsx","src/presentation/components/UserMenu/atom.ts","src/presentation/components/UpdatePassword/atom.ts","src/presentation/components/UpdatePassword/styles.ts","src/presentation/components/UpdatePassword/index.tsx","src/presentation/components/TabBottomNavigator/index.tsx","src/main/config/clarity.js","src/presentation/components/TimePicker/index.tsx","src/presentation/components/CardRow/index.tsx","src/presentation/components/CardDetails/index.tsx","src/presentation/components/PhoneModal/atom.ts","src/presentation/components/PhoneModal/index.tsx","src/main/App.tsx","src/main/AppEntry.js"],"names":["HttpStatusCode","module","exports","ClientMonitoringType","ClientModality","cardMaskByFlag","mastercard","visa","amex","diners","discover","unknown","ServiceOrderDetailStatus","ServiceOrderDetailPriority","ServiceOrderDetailModality","ProblemOrigin","ServiceOrderStatus","ServiceOrderPriority","ServiceOrderModality","BANK","FuelType","GenerateInsideBankSlip","RN","TOTAL_DAYS_BEFORE_NEW_UPDATE","GetTickets","DEFAULT_DAYS_LATER","DEFAULT_DAYS_AGO","DEFAULT_YEARS_AGO","DEFAULT_STATUS","LIMIT_SHOW_ITEMS","SHOW_ONLY_PENDING","OpenStatementOfDebts","FOLDER_DEFAULT_PDF","GetDigitalAccepts","GetNFs","DEFAULT_MONTHS_AGO","OpenDanfe","FOLDER_DEFAULT_PDF_DANFE","OpenNfse","FOLDER_DEFAULT_NFSE","OpenLeaseReceipt","FOLDER_DEFAULT_LEASE_RECEIPT","GetRemotyEvents","GetMoniEvents","GetSigmaEvents","DEFAULT_DAYS","DEFAULT_FILTER_TYPE","DEFAULT_FILTER_TITLE","GetServiceOrders","AddTravelAlertResponsibleType","OBSERVATION_MAX_LENGTH","DEFAULT_MONTH_AGO","map","webpackContext","req","id","webpackContextResolve","__webpack_require__","o","e","Error","code","keys","Object","resolve","JwtAdapter","_classCallCheck","_createClass","key","value","token","jwt_decode","error","moment","locale","MomentDateAdapter","dates","startDate","endDate","diff","startOf","date","toDate","dateFormat","arguments","length","undefined","format","days","initDate","this","today","subtract","years","add","month","makeDateAdapterFactory","makeJwtAdapterFactory","palette","white","black","primaryLighten","primaryLight","primary","primaryDark","primaryDarken","secondaryLight","secondary","secondaryDark","secondaryContainer","success","successContainer","divider","background","backgroundCard","backgroundSearch","backgroundMenu","backgroundInput","backgroundPortal","greyLighten","greyLight","grey","greyDark","greyDarken","greyDarken2","textsLighten","textsLight","texts","textsDark","info","infoContainer","pink","theme","name","colors","_objectSpread","DefaultTheme","universalCookies","Cookies","UniversalCookieAdapter","set","path","remove","get","LocalStorageAdapter","localStorage","setItem","JSON","stringify","removeItem","getItem","parse","makeLocalStorageAdapter","useAuth","_useRecoilState","useRecoilState","authenticationState","_useRecoilState2","_slicedToArray","autentication","setAuthentication","localStorageAdapter","useRecoilValue","localStorageState","jwtAdapter","jwtAdapterAtom","logout","useCallback","client","accessToken","registerLogin","getCurrentClient","tokenDecode","decode","access_token","sub","getClient","accessTokenDecode","codeClient","toUpperCase","codCliente","nomeCliente","endsWith","nome","email","isNaN","parseInt","login","currentState","setClient","getAddress","adressCode","_client$enderecoAlter","enderecoAlternativo","find","address","codInterno","getSaveUser","savedUser","username","saveUsername","saveUser","user","isLoadingState","atom","default","initialConfigsState","financialConfigsState","generalConfigsState","invoiceConfigsState","serviceOrderConfigsState","menuAccessPermissionsConfigsState","configsState","selector","_ref","financialConfigs","generalConfigs","invoiceConfigs","serviceOrderConfigs","menuAccessPermissionsConfigs","liberacoesPortal","ActionsButtons","useTheme","setOpenSaveConfig","useSetRecoilState","isOpenSaveConfigState","setOpenDiscardConfig","isOpenDiscardConfigState","_jsx","Card","style","styles","cardContainer","elevation","children","_jsxs","HStack","reverse","spacing","Button","title","color","tintColor","onPress","variant","StyleSheet","create","margin","padding","borderRadius","display","flexDirection","justifyContent","container","flex","containerHeader","headerText","headerChip","backgroundColor","marginBottom","marginTop","marginRight","marginLeft","cardContainerMobile","cardContent","FinancialSettings","getThemeClient","useThemeClient","setFinancialConfig","_useState","useState","initialFinancialConfigs","themeClient","handleChange","param","_defineProperty","Box","ScrollView","_Fragment","CardSwitch","text","bolEntradaConfirmada","handleSwitch","bolExibeOriginal","bolAtualizaBoletos","PaymentAvailableToUpdate","bolOcultaFormasPgto","HidePaymentMethods","exibeAlteracaoCartao","TextInput","mode","activeUnderlineColor","mainColor","label","underlineColorAndroid","underlineColor","emailAlteracaoCartao","onChangeText","maxLength","permitePagamentoCartao","pagamentoCartaoAtivo","Loading","initialGeneralConfigsState","GeneralSettings","testEmail","setGeneralConfig","_useRecoilState3","_useRecoilState4","initialGeneralConfigs","setInitialGeneralConfigs","useEffect","hasChanged","EmailSendingTester","copia","enviaEmailViagem","emailViagem","exibeChavesAvisoViagem","visualizaDetalhesContrato","_useState2","mailSended","setMailSended","_useState3","_useState4","responseMail","setResponseMail","_useRecoilState5","isLoadingTestMailState","_useRecoilState6","isLoadingTestMail","setLoadingTestMail","readonly","Stack","direction","justify","items","trailing","props","MaterialIcons","testEmailParams","test","then","isValid","catch","message","finally","loading","disabled","pt","size","Text","sx","ml","InvoicesSettings","setInvoiceConfig","initialInvoiceConfigs","handleChangeConfig","nfsOcultarInfos","nfsOcultarLink","ServiceOrderSettings","setServiceOrderConfig","initialServiceOrderConfigs","utilizaEmpresaPadrao","empresaPadraoOS","exibirOsFechadas","osSemTecnico","limitaOs","abrirOsSemFaturamento","osEmpresaPadrao","exibeMensagemAbrirOs","mensagemAberturaOs","enviarAvisoAberturaOs","emailOs","generalContainer","alignItems","selectorContainer","width","selectorContainerMobile","selectBox","selectBoxMobile","titleBox","textAlign","fontWeight","fontSize","optionBox","optionSelectorChip","border","cursor","optionIcon","optionText","overflow","whiteSpace","textOverflow","tooltip","isMobile","useMediaQueries","setFinancialConfigs","handleChoosePaymentForm","codFormaPagamento","update","formasPagamentoAtualiza","formasPagamentoNaoAtualiza","formaPagamentoSelecionada","formaPagamento","codigo","Number","filter","concat","_toConsumableArray","newConfig","assign","onDrag","event","dataTransfer","setData","onDrop","getData","handleClick","acceptDrop","preventDefault","onDragOver","draggable","onDragStart","toString","onClick","MaterialCommunityIcons","descricao","item","hide","formasPagamento","formasPagamentoOculta","formasPagamentoOcultas","MenuAccessPermissions","setMenuAccessPermissionsConfig","initialMenuAccessPermissionsConfigs","handleChangeSetting","os","notaFiscal","boleto","monitoramento","viagem","cartao","telefonesUteis","documentosUteis","sac","rastreamento","contrato","gap","buttonArea","ModalOnDiscardChanges","notify","useNotify","isOpen","setOpen","discardChanges","useSettings","handleClose","ModalBase","visible","onClose","shadow","show","isOpenSaveOrDiscardConfigState","isLoadingSaveOrDiscardConfigState","ModalOnSaveOrDiscard","saveUnitConfig","currentConfig","isLoading","setLoading","setInitialConfigs","save","hasUpdated","uniCodigo","padStart","isLoadingSaveConfigState","flexWrap","ModalOnSaveChanges","startConfig","handleSaveChanges","UnitsSelector","isMenuOpen","setMenuOpen","unitsState","_useRecoilState2$","units","currentUnit","setUnits","Menu","onDismiss","anchorPosition","anchor","Chip","buttonSave","selectedColor","ellipsizeMode","config","Item","codigoUnidade","handleSelectUnit","nomeUnidade","initialConfigs","setGeneralConfigs","setInvoiceConfigs","setServiceOrderConfigs","setMenuAccessPermissionsConfigs","validaCartaoCredito","visualizaFaturaCartaoVencida","assuntoEmailConfirmacaoPgto","atualizaAutomaticoCartao","mensagemSMSConfirmacaoPgto","mensagemEmailConfirmacaoPgto","uniUnidade","emailAlteracaoCadastro","emailSac","chaveResidencia","exibeAlteracaoCadastro","conPorCodigo","servidorSmtp","autentica","usuario","senha","porta","ssl","leitura","enviaListaChave","exibeAvisoAberturaOs","avisoAberturaOs","Dimensions","height","openInPWA","window","matchMedia","matches","openInIOS","navigator","userAgent","toLowerCase","appBarHeight","APP_BAR_HEIGTH","PADDING_STATUS_BAR_IOS","useFormat","formatCurrency","amount","Intl","NumberFormat","currency","removeNewLines","replace","validateCPF","cpf","cpfNumeros","soma","i","resto","digito1","digito2","useThemePaper","API_URL","API_LOGIN_URL","API_LOGIN_IDENTIFICADOR_APP","CLARITY_KEY","METRICS_LOG_IN_OUT","FIREBASE_PUBLIC_KEY_VAPID","useImage","getImage","_asyncToGenerator","image","_image$split$pop","defaultImage","file","includes","split","pop","shift","imageFolder","fetch","resp","status","console","log","logo","DEFAULT_PATH_IMAGES","_x","apply","base64toFile","b64Data","fileName","contentType","sliceSize","byteCharacters","atob","byteArrays","offset","slice","byteNumbers","Array","charCodeAt","byteArray","Uint8Array","push","blob","Blob","type","File","InvalidCredentialsError","_Error","_this","_callSuper","_inherits","_wrapNativeSuper","InvalidRelationCompany","UnexpectedError","UnexpectedResultFormatError","AccessDeniedError","ForbiddenError","ResultWithoutRecordsError","SamePasswordError","useErrorHandler","callback","initialTheme","menuColor","loginColor","initialThemeState","themeState","colorSelect","selectedLogoState","selectedBackgroundState","modalOnDiscardChangesThemeState","modalOnSaveChangeThemeState","saveTheme","uploadFile","setOpenDiscardChanges","setOpenSaveChanges","input","outlineWidth","inputColor","ColorPicker","setThemeClient","inputStyle","editable","onChange","target","LoginBackgroundSelector","setTheme","setSelectedBackground","setBackground","backgroundImage","uri","require","handlePickImage","_ref2","result","ImagePicker","mediaTypes","Images","allowsEditing","aspect","quality","canceled","_result$assets","_result$assets$0$uri","_result$assets2","base64Background","assets","Date","getMilliseconds","bgLogin","TouchableOpacity","activeOpacity","center","VStack","mb","p","fill","Image","resizeMode","source","maxWidth","LogoSelector","setSelectedLogo","setLogo","logoImage","base64Logo","imageLogo","borderColor","borderWidth","borderStyle","selectedLogo","selectedBackgroundLogo","isOpenSaveChanges","resetSelectedLogo","useResetRecoilState","resetSelectedBackgroundLogo","handleError","upload","scope","themeResult","isOpenDiscardChanges","setInitialTheme","selectedBackground","_document","themeColorClient","document","querySelector","setAttribute","snackBarProviderState","messages","setMessages","options","newMessage","duration","every","currentMessages","setTimeout","dimiss","messageId","initialProspectConfigsState","prospectConfigsState","ativo","moduloLiberado","listaInteresse","prospectInterestAreaState","prospectUnitsState","saveProspectConfigs","useProspectSettings","prospectConfigs","areaInterests","handlerError","newProspectConfigs","areaInteresse","content","ModalAddConfigUnit","_areaInterest$interes2","_prospectConfigs$list","isOpenAddConfigUnitState","addConfigUnitState","areaInterest","setAreaInterest","isDuplicatedOptionSate","isDuplicated","setIsDuplicated","_useRecoilState7","isOpenSelectUnitState","_useRecoilState8","isOpenSelectUnit","setOpenSelectUnit","_useRecoilState9","isOpenSelectInterestState","_useRecoilState10","isOpenSelectInterest","setOpenSelectInterest","areaInterestsList","setProspectInterestAreaList","reset","existUnit","some","interest","unidade","interesse","descreve","handleInputChange","MessageBlock","Select","Trigger","description","onOpen","minWidth","textContentType","_areaInterest$interes","isValidEmail","validValues","newInterestArea","currentInterestAreaList","Modal","unit","data","isSelected","onSelect","unitCode","_","_areaInterest$interes3","ModalDeleteOption","isOpenDeleteProspectOptionState","deleteOption","deleteProspectOptionState","setAreaInterests","resetDeleteOption","prevInterests","TableAreaOfInterest","setDeleteOptionOpen","setDeleteOption","DataTable","Header","Title","area","index","Row","pointerEvents","Cell","centered","interestArea","setProspectConfigs","setProspectInterestArea","intialProspectConfigs","_objectWithoutProperties","_excluded","configs","initialEventsSettingsState","eventsSettingsState","sigmaDeskConnectionsState","isOpenConnectionMenuState","isOpenSaveSettingsState","isOpenDiscardSettingsState","showEvents","useEventsSettings","eventsSettings","isLoadingSaveSettingsState","listaExibidos","EventsSettings","setEventsSettings","initialEventsSettings","eventosExibidos","listaTipos","evento","oculto","treatedBody","errorAuthState","position","bottom","right","BackgroundTheme","backgroundEmpresa","setBackgroundEmpresa","backgroundDefault","ImageBackground","opacity","alignSelf","lineHeight","containerStyle","textStyle","_ref$variant","containerStyles","filled","outlined","textStyles","ChipPaper","ChipFilter","subtitle","paddingHorizontal","paddingVertical","cardBase","CardBase","Content","CardList","isEmpty","textEmpty","textLoading","containerMobile","EmptyList","flexGrow","_ref$showIfValueFalsy","showIfValueFalsy","themeCliente","showChildren","cardContentHeader","Switch","onValueChange","cardChildren","marginVertical","marginHorizontal","paddingLeft","paddingRight","DatePicker","initYear","finalYear","dateAdapter","INITIAL_YEAR","useMemo","getFullYear","FINAL_YEAR","DatePickerInput","inputMode","startYear","endYear","withDateFormatInLabel","inputEnabled","CustomDrawer","socialMidias","socialMediaState","DrawerContentScrollView","contentContainerStyle","paddingTop","DrawerItemList","pv","SocialMidias","NavigationRoute","screensClientNavigator","_screensClientNavigat","Home","Financial","Invoices","SAC","DigitalAccepts","ServiceOrders","CreditCard","TravelAlert","PhoneUtils","DocumentsUtils","Monitoring","Track","OsDetail","Contract","StatementOfDebts","screensAdminNavigator","Theme","Configs","SocialMedia","ProspectSettings","footer","RedesSociais","saveRedesSociais","getRedesSociais","state","setState","useFocusEffect","res","prevState","phone","leading","Icon","as","whatsapp","facebook","linkedin","instagram","tiktok","telegram","Footer","saveParams","youtube","RemoteAuthentication","url","httpClient","_auth","params","dataParams","grant_type","portal","authParams","method","body","headers","_yield$this$httpClien","request","statusCode","ok","badRequest","error_description","unauthorized","RemoteAuthenticationAdmin","identificadorAplicacao","IdentificadorAplicacao","mapToModel","forbidden","authenticationAdmin","RemoteGetUser","httpCliente","_getUsersByDocument","RemoteForgotPassword","httpPostClient","_requestAccess","httpResponse","RemotePortalLogout","_logout","RemoteMetricsLogin","_register","acao","plataforma","RemoteMetricsLogoff","RemoteGetClientByCode","_getByCode","RemoteGetClientContract","_getContract","RemoteUpdatePassword","_update","confirmacaoSenha","senhaAtual","novaSenha","_yield$this$httpPostC","RemoteGetCreditCard","_getByClient","expiracao","substring","noContent","RemoteSaveCreditCard","_save","formatExpiration","expiration","currentYear","RemotePayWithCreditCard","_pay","duplicata","notAcceptable","RemoteGetTickets","_get","RemoteGetTicketPix","_getPix","RemoteGenerateBankSlip","_generate","BoletoInside","CartaoInside","codBanco","RemoteGenerateInsideBankSlip","generateBankSlip","registrado","linkBoleto","dtVencimento","generateParams","diffInDays","original","generate","RemoteOpenBankSlip","generateInsideBankSlip","_openPDF","bankSlipUrl","Caixa","Sicredi","Itau","Bradesco","Santander","Sicoob","Banestes","open","RemoteOpenStatementOfDebts","_openPaymentReport","RemoteGetTheme","RemoteGetUnitConfig","_getAll","RemoteGetUnits","RemoteGetProspectConfigs","RemoteSaveTheme","RemoteSaveUnitConfig","RemoteProspectRegistration","bodyParams","origemSistema","fichaCadastral","codProspect","RemoteTestEmail","_test","RemoteUploadFile","_upload","formData","FormData","append","ContentType","RemoteSaveProspectConfig","RemoteGetEventsSettings","RemoteShowEvents","_show","RemoteGetSigmaDeskConnections","mapToGeneric","connections","connection","banco","idSigma","RemoteGetNFs","httpGetClient","_yield$this$httpGetCl","RemoteOpenDanfe","_open","cliCodigo","RemoteOpenNfse","linkAutenticidade","utilizarDevExpress","producao","RemoteOpenLeaseReceipt","RemoteAddNewOs","_add","avisoViagem","Aberta","tipo","ManutencaoCorretiva","prioridade","Normal","codEndereco","RemoteAddTravelAlertOs","travelAlertBuilder","observacoes","setDates","dataSaida","horaSaida","dataRetorno","horaRetorno","requester","solicitante","emailRequester","phone1Requester","telefone1","phone2Requester","telefone2","addResponsibles","chavesSomenteComCentral","responsaveisChave","addAuthorized","possuiAutorizados","autorizados","addVehicles","possuiVeiculosCuidadosCentral","veiculos","addRecommendations","recomendacoes","build","cliente","empresa","modalidade","RemoteGetServiceOrders","RemoteGetOsAttendance","_getAttendences","RemoteGetServiceOrderDetail","_getDetail","RemoteGetRedesSociais","_getRedesSociais","RemoteSaveRedesSociais","RemoteGetAcceptDigital","RemoteOpenUrlDocAccept","_view","statusAceite","urlAceite","hash","indexOf","enviarEmail","certificadoHtml","html","URL","createObjectURL","RemoteOpenDocumentAccept","codigoAceite","RemotePrintEvents","_print","tipoConexao","oldUrlIndex","newUrl","RemoteGetRemotyEvents","_getEvents","eventsRaw","events","remotyEvent","_remotyEvent$event","_remotyEvent$event2","_remotyEvent$event3","codEvent","nmEvent","dataEvento","dtEventFormatted","aux","idEvent","nmPanelUser","RemoteGetRemotySectors","_getSectors","sectors","sector","nmZone","idEquipamento","idEquipmentZone","codigoCliente","codZone","flActive","RemoteGetRemotyUserEvents","_getUsers","maptoGeneric","users","nmUserPassword","RemoteGetRemotyContacts","_getContacts","contacts","contact","idUsuario","idDevice","nomeUsuario","nmDeviceUser","fone1","nmDevicePhone","fone2","nmDevicePhone2","idDispositivo","deviceGroup","idDeviceGroup","nomeDispositivo","nmDeviceGroup","RemoteGetMoniEvents","codigoOcorrencia","ocorrencia","dataHora","RemoteGetMoniSectors","sectorsRaw","equipamento","codigoZona","RemoteGeMoniUsersEvents","usersRaw","dddFone","dddCelular","celular","RemoteGetSowillEvents","IdCliente","idCliente","codInternoChave","dateTimeInicioManutencao","sowillEvent","account","RemoteGetSowillSectors","_getZones","CodInternoChave","numeroSerie","observacao","auxiliar","RemoteGetSowillUsers","_user$nroUserSistema","usuarioAlarme","nroUserSistema","RemoteGetSowillKeys","_getKeys","RemoteGetSowillIdentifier","_getIdentifier","RemoteGetSigmaEvents","sigmaEvent","RemoteGetSigmaCloudSectors","descProduto","idEvento","cdCliente","cdEvento","obs","RemoteGetSigmaCloudUsers","usuarios","RemoteGetSigmaCloudKeys","RemoteGetSigmaDeskSectors","_getSector","RemoteGetSigmaDeskContacts","idFuncao","descFuncao","RemoteGetSacList","RemoteCreateSac","_create","sacParams","isPortal","AxiosHttpClient","_request","_this$localStorageAda","axiosResponse","axios","Authorization","_error$response","_error$response2","response","makeAxiosHttpClient","makeGetAcceptDigital","env","makeOpenUrlDocAcceptFactory","makeOpenDocumentAcceptFactory","makeGetCreditCard","makePayWithCreditCard","makeSaveCreditCard","makeAuthentication","makeAuthenticationAdmin","identificadorAplicação","makeGetClientByCode","makeGetUser","makePortalLogout","makeMetricsLogoff","makeMetricsLogin","makeForgotPassword","makeGetRedesSociais","makeUpdatePassword","makeGetRemoteGetNFs","makeOpenDanfe","makeOpenNfse","makeOpenLeaseReceipt","makeSaveRedesSociais","makeAddNewOs","TravelAlertBuilder","observation","line","horaMinutoSaida","horaMinutoRetorno","_horaMinutoSaida$spli","_horaMinutoSaida$spli2","minutoSaida","_horaMinutoRetorno$sp","_horaMinutoRetorno$sp2","minutoRetorno","dateStart","setHours","setMinutes","dateEnd","dataSaidaFormatada","dataRetornoFormatada","addLine","responsible","endereco","chavesSomenteComCentralMonitoramento","responsibles","forEach","addResponsible","_this2","vehicle","_this3","placa","possuiResponsaveis","responsaveis","authorized","vehicles","_this4","addVehicle","recommendations","makeAddTravelAlertOs","makeGetServiceOrders","makeGetOsAttendance","makeGetServiceOrderDetail","makeGetUnitConfig","makeGetTheme","makeGetUnits","makeGetProspectConfigs","makeProspectRegistration","makeTestEmail","makeSaveUnitConfig","makeSaveTheme","makeUploadFile","makeSaveProspectConfigs","makeGetEventsSettings","makeShowEvents","makeGetSigmaDeskConnectionsFactory","makeGetSacList","makeCreateSac","makeGetTickets","makeGetTicketPix","makeGenerateBankSlip","makeOpenBankSlip","makeGenerateInsideBankSlip","makeOpenStatementOfDebts","RemoteGetTrackList","_getTrackList","trackRaw","track","CodInterno","Id","Placa","RemoteGetDetailTrack","_getDetails","trackDetails","cor","Cor","ano","Ano","modelo","Modelo","combustivel","Combustivel","makeGetTrackListFactory","makeGetTrackDetailsFactory","makeRedesSociaisFactory","textTransform","Tab","createMaterialTopTabNavigator","Settings","getUnitConfigs","getConfigParams","codUnidade","getAll","SafeAreaView","ActivityIndicator","Navigator","screenOptions","tabBarItemStyle","tabBarLabelStyle","tabBarIndicatorStyle","tabBarStyle","Screen","component","makeSettingsFactory","layoutStyles","pageContent","scroll","paddingBottom","footerContainer","toolbar","getTheme","getUnits","_useThemeClient","logoEmpresa","setLogoEmpresa","PageHeader","icon","wrap","m","makeThemeFactory","getProspectConfigs","_useProspectSettings","setAddOptionOpen","Checkbox","makeProspectSettingsFactory","headerContainer","_events$listaExibidos","_events$listaTipos","getSigmaDeskConnections","getEventsSettings","setConnections","isOpenConnectionMenu","setOpenConnectionMenu","_useEventsSettings","setEvents","resetEvents","handleBounceEvent","codEvento","eventosTodos","selectedEvent","getSelectedConnection","selectedConnection","handleGetEvents","InputField","fontStyle","eventoExibido","codigoExibicao","Divider","eventoComum","updatedConnections","handleSelectConnection","makeEventsSettingsFactory","isLoadingFinancialState","isLoadingOpenBankSlip","ticketsState","getCreditCardType","creditCardNumber","getValidityDate","dataString","_dataString$split","_dataString$split2","mesStr","anoStr","mes","dia","getDate","toISOString","isEditableState","creditCardState","ccv","mask","numero","vencimento","AddNewCreditCard","creditCard","isEditable","formArea","keyboardType","cleanedText","validityCardMask","card","minHeight","insideLogo","chipCard","mt","letterSpacing","shadowColor","shadowOffset","shadowRadius","ModalModalEditConfirmation","isOpenEditConfirmationState","setCreditCard","setEditable","isOpenAddOtherCreditCardState","otherCreditCardState","errorAddOtherCreditCardState","AddOtherCreditCard","otherCreditCard","setOtherCreditCard","setOpenTicketView","isOpenTicketViewState","setCreditCards","creditCardsState","setError","handleResetCard","isValidDataCard","mv","errorContainer","borderLeftWidth","borderLeftColor","pr","backgroundPosition","backgroundSize","backgroundRepeat","statusIcon","textStatus","CardTicket","ticket","openBankSlip","_ref$current","current","setCurrentTicketPix","currentTicketPixState","setOpenPix","isOpenTicketPixState","setTicketView","ticketViewState","handleCopyBarCode","Clipboard","setString","linhaDigitavel","handleOpenPDFBankSlip","nossoNumero","novaVersao","openPDF","handleOpenPix","statusColor","paga","vencida","venceHoje","situacao","textStatusStyles","amountStyles","makeTags","saldo","atraso","makeOpened","IconButton","PixIcon","CopyIcon","handleOpenTicketView","valorDuplicata","CreditCardItem","_ref$isEditable","creditCardSelectedState","creditCardSelected","setCreditCardSelected","PayCreditCards","_creditCardSelected$n","_client$listaCartoes","payWithCreditCard","isPaymentConfirmation","setPaymentConfirmation","isLoadingCreditCardsState","isOpenCreditCardsState","setOpenOtherCreditCard","ticketView","listaCartoes","valorAtualizado","maxHeight","pay","FiltersChipPanel","isOpenFinancialFiltersState","filters","ticketsFiltersState","period","dataInicio","dataFim","situation","Todas","Pagas","ModalTicketPix","_ticket$numero","_ticket$numero2","getTicketPix","currentTicketPix","isLoadingTicketPixState","tickets","pix","setPix","setTicket","handleGetPix","codInternoDuplicata","getPix","QRCodeSvg","logoSize","logoBackgroundColor","SideFilters","getTickets","setFilters","errorHandler","setTickets","daysAgo","daysLater","handleChangeDate","field","currentFilters","SideFilter","Drawer","onSubmit","paramsGetTicket","dataInicial","dataFinal","yearsAgo","resetState","SelectStatusTicketFilter","statusTicket","statusTicketState","statusOption","RadioButton","selectedStatus","labelStyle","_id","TicketActions","setOpenTicketViewState","isLoadingTicketViewState","setOpenCreditCards","permiteCartaoCredito","dupProtestada","INFO_INSIDE_SLIP_BANK","TicketView","_ticketView$nomeForma","_ticketView$nomeForma2","_ticketView$nomeForma3","_ticketView$nomeForma4","isPayCreditCard","setPayCreditCard","daysOfArrears","colorSituationStyle","titleSituation","styleStatusSituation","descriptionSituation","dataPagamento","valorPago","descriptionInsideSlipBank","dataEmissao","nomeFormaPagto","trim","_tickets$find","refreshing","setRefreshing","scrollViewRef","useRef","RN_TOTAL_ITEMS_SHOW","currentTicket","getMonth","orderTickets","paraGetTickets","scrollToTop","scrollTo","y","animated","handleOnFilter","ref","refreshControl","RefreshControl","onRefresh","openFilters","ScrollToTopButton","targetRef","makeFinancialFactory","navigation","TabBottomNavigator","isOpenForgotPasswordState","loginState","password","recoveryEmail","ModalForgotPassword","forgotPassword","handleChangeInput","currentValues","handleCloseModal","requestAccess","sendedEmail","ModalUserSelect","authentication","usersSelectState","setUsersSelect","isOpenUserSelect","handleCancel","auth","authToken","handleLogin","List","left","titleStyle","ModalProspectRegistration","prospectRegistration","prospectRegistrationState","isOpenProspectRegistrationState","selectedInterestAreaState","selectedInteresetArea","setSelectedInterestArea","isOpenInterestAreaState","isOpenAreaIntereset","setOpenAreaInterest","isLoadingProspectRegistrationState","interesetArea","resetInteresetArea","fone","emailUrl","cep","numeroEndereco","complemento","cidade","estado","bairro","register","_state$fone","isValidForm","codDEInteresse","fax","LogoTheme","_ref$width","_ref$height","logoInside","loginContent","form","checkboxArea","snackbar","Login","getUser","_useAuth","setSelection","setModalUserSelect","setOpenUserSelect","setOpenForgotPassword","prospectInterestArea","socialMedia","loginWithCode","loginWithDocument","getUsersByDocument","clients","loginWithAdministrator","_ref3","_x2","onSurfaceVariant","textColor","secureTextEntry","uncheckedColor","dataAuth","toLocaleLowerCase","Email","Senha","version","isLoadingServiceOrdersState","serviceOrdersState","serviceOrdersConfigsState","bloqueiaAberturaLimite","portalExibeMensagem","portalMensagem","headerStyles","textOrderStyles","CardOs","serviceOrder","setOsView","serviceOrderViewState","textTitleStyles","colorStatusStyle","A","B","F","ordem","CircleIcon","dataAbertura","dataFechamento","MarkerIcon","currentOs","handleAddNewOs","isOpenServiceOrdersFiltersState","serviceOrdersFiltersState","Fechadas","getServiceOrders","serviceOrdersConfigs","setServiceOrdersConfig","setServiceOrders","monthAgo","paramsGetOrders","serviceOrders","listaOS","SelectStatusOsFilter","statusOSs","statusOSsState","ModalAddNewOs","addNewOs","addNewOsState","isOpenAddNewOS","isLoadingAddNewOS","successNewOs","createSacParams","listNewServiceOrders","resetNewOs","inputContainerStyle","multiline","numberOfLines","addNewOsParams","ModalOsView","_serviceOrder$current2","_serviceOrder$current3","_serviceOrder$current4","_serviceOrder$current5","_serviceOrder$current6","_serviceOrder$current7","getOsAttendance","isLoadingOsViewState","_serviceOrder$current","getAttendences","codigoOs","attendances","OSIcon","identificacao","OsAttendandes","attendancesContainer","titleAttendances","attendancesText","_serviceOrder$attenda","attendance","nomeTecnico","dataTermino","setOpenAddNewOs","FAB","makeServiceOrdersFactory","colorsPage","aceiteDigital","ItemMenu","page","_useMediaQueries","iconPage","route","navigate","iconContainer","iconContent","itemUser","ITEMS_EXCLUDES","itemsMenu","testID","accessibilityLabel","getClientByCode","metricsLogin","currentClient","getByCode","dataOcorrencia","versao","PhoneModal","makeHomeFactory","Cartao","getCard","saveCard","setOpenEditConfirmation","getCardParams","getByClient","TAB_BOTTOM_CONTAINER_HEIGTH","saveCardParams","makeCardFactory","isLoadingAcceptDigitalState","acceptDigitalState","currentAcceptDigitalState","headerTitle","contentText","contentTextWithChip","contentTitle","docButtonBox","CardAcceptDigital","accept","openUrlDocAccept","openDocumentAccept","currentAcceptDigital","setCurrentAcceptDigital","isAuthorized","handleOpenUrlDocument","viewParams","view","handleCloseMenu","colorType","Orçamento","Contrato","Aditivo","tipoAceite","typeChipContainer","statusChipContainer","emailEnvio","MenuActions","idAceite","openParams","leadingIcon","dataEnvio","aceiteHashProcesso","Pressable","isOpenAcceptDigitalFiltersState","acceptDigitalFiltersState","dtInicial","dtFinal","Pendentes","Autorizados","Ambos","getAcceptDigital","setAccepts","paramsGetAcceptDigital","SelectStatusAcceptFilter","statusAccept","statusAcceptState","AcceptDigital","getDocAcceptDigital","accepts","makeAcceptDigitalFactory","isLoadingNfState","nfsConfigState","ocultaInfos","ocultaLink","nfsState","nfState","leaseReceiptState","CardNF","isOpenNfsFiltersState","nfsFiltersState","cardArea","bold","borderBottomWidth","borderBottomColor","emptyNf","LeaseReceipt","openLeaseReceipt","leaseReceipts","_React$useState","React","_React$useState2","currentIndex","setCurrentIndex","setOpenFilters","closeMenu","handleOpenLeaseReceipt","recibo","openLeaseReceiptParams","codigoRecibo","nfNumeroNota","notaNumero","notaSerie","openMenu","notaValor","notaData","toLocaleDateString","NFProduct","openDanfe","nfs","handleOpenDanfe","nf","openDanfeParams","notaProcNFE","NFService","openNfse","nfsConfigs","handleOpenNfse","openNfseParams","codEmpresa","numeroRPS","serieRps","nfse","notaNumeroNFSE","linkConsultaNotaPortal","getNFs","setNFsConfigs","setNFs","setNFSs","setLeaseReceipts","initFilters","nfResult","arrRecibos","arrNF","arrNFS","NotaFiscal","getNFsParams","makeNFFactory","sacState","listaReclamacoes","listaTipoAtendimento","CardSac","_listaTipoAtendimento","_listaTipoAtendimento2","E","R","S","sacType","reclamante","codReclamacao","reclamacao","ModalNewSac","createSac","sacNewState","newSac","setNewSac","setSacs","isLoadingNewSacState","isOpenNewSacState","successNewSac","resetNewSac","tipoDescricao","typeDescription","dateParam","hora","dataAcaoImediata","dataAcaoCorretiva","btnContainer","Sac","_sacs$listaReclamacoe","_sacs$listaReclamacoe2","getSacList","sacs","setOpenNewSac","makeSacFactory","sigmaKeysState","sowillKeysState","sowillIdentifierState","monitoringDateFiltersState","monitoringFilterDate","setMonitoringFilterDate","setRemotyFilter","remotyFilterState","setSigmaFilter","sigmaFilterState","isOpenMonitoringFiltersState","setNoMonitoringError","monitoringListHasError","localFilterDate","setLocalFilterDate","isLoadingMonitoringEventState","handleResetState","remotyIdEquipamento","remotyNmEquip","sigmaTipo","sigmaTituloChip","SIGMA_CLOUD","SelectTypeSigmaEvent","selectInput","modalContainer","modalContent","optionItem","sigmaEventsFilterType","modalVisible","setModalVisible","stylesContainer","View","TouchableWithoutFeedback","AntDesign","animationType","transparent","onRequestClose","option","handleOptionPress","SelectRemotyEventCompany","currentCompany","setCompany","setEventError","setSectorError","sectorListHasError","setUserError","userListHasError","setContactError","contactListHasError","companies","centraisMonitoramento","handleSelectCompany","company","idEquipment","nmEquipment","onSelectCompany","contentStyle","selectSigmaCloudKeyData","SelectSigmaCloudKey","currentKey","setCurrentKey","empresaSigma","chave","particao","idMonitoramento","sowillIdentifier","currentSigmaKey","REMOTY","MONI","SIGMA_DESK","SO_WILL","monitoringEventListState","isLoadingSectorEventsState","sectorListState","CardMonitoringEvent","CardSector","isLoadingContactEventState","contactListState","CardContact","isLoadingUserEventsState","userListState","CardUser","fone3","selectSowillKeyState","empresaMonitoramento","SelectSowillKey","setKey","identifier","Events","printEvents","getSigmaEvents","getRemotyEvents","getRemotySectors","getRemotyUsers","getRemotyContacts","getMoniEvents","getMoniSectors","getMoniUsers","getSowillEvents","getSowillSectors","getSowillUsers","getSowillKeys","getSowillIdentifier","getSigmaCloudSectors","getSigmaCloudUsers","getSigmaCloudKeys","getSigmaDeskSectors","getSigmaDeskContacts","sigmaKeys","setSigmaKeys","setSowillKeysList","selectedSowillKey","setSowillIdentifier","getKeys","getIdentifier","monitoringEventList","setMonitoringEventList","hasError","setHasError","sigmaFilterType","getEventsMonitoring","handleGetSigmaEvent","initialDefaultDate","finalDefaultDate","dataIni","filtro","getEvents","defaultDate","empresaMoni","dtInicio","dtFim","mr","innerWidth","printParams","print","printError","MonitoringEventList","sectorList","setSectorList","getEventsSector","getSectors","getSowillSectorParams","getZones","idCentral","getSector","SectorList","userList","setUserList","getEventUser","getUsers","codCentral","UserEventList","contactList","setContactList","getEventContacts","getContacts","ContactEventList","makeEventsFactory","makePrintEvents","makeGetRemotyEventsFactory","makeGetRemotySectorsFactory","makeGetRemotyUsersFactory","makeGetRemotyContactsFactory","makeGetMoniEventsFactory","makeGetMoniUsersFactory","makeGetMoniSectorsFactory","makeGetSowillEventsFactory","makeGetSowillSectorsFactory","makeGetSowillUsersFactory","makeGetSowillKeysFactory","makeGetSowillIdentifierFactory","makeGetSigmaEventsFactory","makeGetSigmaCloudSectorsFactory","makeGetSigmaCloudUsersFactory","makeGetSigmaCloudKeysFactory","makeGetSigmaDeskSectorsFactory","makeGetSigmaDeskContactsFactory","travelAlertState","travelAlertResponsiblesKeysState","travelAlertAuthorizedsState","travelAlertVehiclesState","ModalAddResponsible","addResponsibleState","addVehicleState","setAddVehicle","travelAlertAddResponsibleState","modalState","setModalState","setModalVehicle","isOpenTravelAlertAddVehicle","setTravelAlertResponsibles","setTravelAlertResponsiblesKeys","addNewVehicle","handleAddResponsible","typeCurrent","AUTHORIZED","KEYS","VEHICLE_KEYS","VEHICLE_AUTHORIZED","handleReset","ModalAddVehicle","setOpenAddResponsible","setTravelAlertAddVehicle","ResponsiblesPanel","onAddNew","onRemove","idResp","_ref$disabled","Surface","iconColor","SelectDateTime","travelAlert","setTravelAlert","setModalTimePicker","travelAlertTimePickerState","dateRow","currentTime","VehiclePanel","openAddNew","cardInformation","row","inlineInputs","addTravelAlertOs","modalTimePicker","authorizeds","setAuthorizeds","responsiblesKeys","setResponsiblesKeys","_useRecoilState11","_useRecoilState12","setVehicles","setOpenAddVehicle","resetAuthorizeds","resetResponsibleKeys","resetVehicles","resetAddResponsible","isValidDataTravelAlertOs","handleChangeTime","time","hours","minutes","idVehicle","addTravelOsParams","TimePicker","onConfirm","onDimiss","makeTravelAlertFactory","serviceOrderDetailState","headerBox","modality","serviceOrderDetail","numOS","M","V","P","I","pageInfo","additionalText","additionalTextBox","borderTopWidth","borderTopColor","totalizerTextBox","ClientInfo","CardRow","CardDetails","fantasia","inscricaoEstadual","responsavel","OsInfo","validaDataZerada","stringValue","orcamento","nomeVendedor","agendada","dataAgenda","previsao","abertura","causaOS","defeito","usuarioAbertura","nomeGetec","veiculoOS","solucaoOS","usuarioFechamento","notaLocacao","executar","observacaoInterna","obsFechamento","OsProducts","_serviceOrderDetail$l","_serviceOrderDetail$l2","totalBrutoProdutos","listaProdutos","reduce","acc","produto","unitario","quantidade","codProduto","cobraCliente","motivo","entregue","pDesconto","descontoProd","totalProdutos","OsServices","totalBrutoServicos","listaOsServicos","servico","total","codServico","pDescontoServico","descontoServ","totalServicos","OsTotalizer","valorCrea","OsTreatments","listaAtendimentos","atendimento","codTecnico","tecnico","hrInicio","hrFim","totalHours","totalMinutes","totalSeconds","_tempoPercorrido$spli","initialHour","finalHour","initialTime","durationInMilliseconds","getTime","Math","floor","seconds","tempoPercorrido","_tempoPercorrido$spli2","calcularDuracaoTotal","OsRemovals","listaProdutosRetirar","retirar","OsWarehouse","listaNFOS","almoxarifado","dataMovimento","estoque","nota","OsProblems","listaProblemas","problema","origem","strProblema","pendencia","OsSignatures","encodeAssinatura","encodeAssinaturaTecnico","src","ServiceOrderDetail","getServiceOrderDetail","setServiceOrderDetail","getDetail","planilha","makeServiceOrderDetailFactory","isLoadingTrackState","trackState","CardTrack","getTrackDetails","isLoadingTrackDetailsState","setDetails","trackDetailsState","setOpenDetail","isOpenTrackDetailsState","getDetails","currentDetails","handleDetails","TrackDetails","details","handleFuelName","Biocombustivel","Diesel","Eletrico","Etanol","GNV","Gasolina","Hibrido","getTrackList","tracks","setTracks","makeTrackFactory","isOpenContractDetailsState","btnAction","actionsContent","CompanyCard","cpfCnpj","enderecoGeral","ContractCard","numContrato","primeiroFaturamento","diaVencimento","ModalContractDetails","_client$servicosContr","btnLimparStyles","terminoContrato","valorMensal","ph","servicosContratadosPortal","cliSerContDescricao","cliSerContQuantidade","cliSerContValor","dataCadastro","makeContractFactory","isOpenDebtsYearMenuState","debtsYearState","openStatementOfDebts","isOpenDebtsYearMenu","setOpenDebtsYearMenu","debtsYear","setDebtsYear","getSelectedDebtYear","selectedDebtYear","debt","possibleDebtsYears","debtYear","getPossibleDebtsYears","openPaymentReport","updatedDebtsYear","handleSelectDebtYear","makeStatementOfDebtsFactory","createDrawerNavigator","NavigationDrawer","_client$portal$os","_client$portal","_client$portal$boleto","_client$portal2","_client$portal$notaFi","_client$portal3","_client$portal$aceite","_client$portal4","_client$portal$cartao","_client$portal5","_client$portal$sac","_client$portal6","_client$portal$monito","_client$portal7","_client$portal$viagem","_client$portal8","_client$portal$rastre","_client$portal9","_client$portal$contra","_client$portal10","_client$email","RN_SHOW_MENU_OS","RN_SHOW_MENU_TICKETS","RN_SHOW_MENU_NF","RN_SHOW_MENU_ACEITE","RN_SHOW_MENU_CARTAO","RN_SHOW_MENU_SAC","RN_SHOW_MENU_MONITORING","RN_SHOW_MENU_TRAVEL","RN_SHOW_MENU_RASTREAMENTO","RN_SHOW_MENU_CONTRACTS","isAdmin","isClient","NavigationContainer","fallback","drawerActiveTintColor","drawerItemStyle","header","drawerContent","initialRouteName","drawerLabel","drawerIcon","headerShown","Logout","portalLogout","metricsLogoff","isOpenLogoutState","codClient","InstallButton","setOpenModal","isOpenInstallationState","deferredPrompt","addEventListener","location","protocol","hasDeclineInstall","timestamp","isExpiredDecline","diferrenceMilissegundos","abs","handleInstall","_deferredPrompt","prompt","top","Entypo","InstallationSuggestion","setOpenUserMenu","isOpenUserMenuState","contentTitleStyle","Appbar","appBar","Action","toggleDrawer","isLeading","logoArea","themeContainer","titleArea","zIndex","_ref$text","AntDesignIcon","xmlns","viewBox","d","_ref$status","warning","colorContainerStatusStyle","isVisible","onSwipeComplete","onBackdropPress","swipeDirection","animationIn","animationOut","EMMITERS_AUTHORIZED","ROLES_AUTHORIZED","Router","updatePassword","setSocialMedia","setPhoneModal","phoneModalNumberState","socialMedias","isValidLogin","expireDate","iss","roles","role","setUTCSeconds","exp","Snackbar","action","compact","SnackBarProvider","UpdatePasswordC","setModalOpen","phoneModalState","setModalNumber","callNumber","phoneNumber","Platform","OS","Linking","canOpenURL","supported","openURL","err","animateView","toValue","animatedRef","delay","Animated","timing","useNativeDriver","SnackBar","fadeAnime","Value","initAnimations","sequence","start","hidden","closeButton","inputDatePicker","MARGIN_MODALS","contentStyles","titleStyles","buttons","TextInputProps","observer","IntersectionObserver","handleIntersection","root","rootMargin","threshold","observe","unobserve","entries","Input","userTitle","itemMenu","UserMenu","setOpenLogout","setOpenUpdatePassword","isOpenUpdatePasswordState","handleOpenUpdatePassword","handleOnLogout","updateSettingsState","isSamePassword","updatePasswordParams","c","l","a","r","t","colorsVariant","light","containerColor","containerIconColor","TimePickerModal","use24HourClock","cancelLabel","modalIsOpen","treatedPhoneNumber","q","createElement","async","getElementsByTagName","parentNode","insertBefore","registerTranslation","registerRootComponent","isHttps","RecoilRoot","PaperProvider"],"mappings":"6nFAAA,+1J,+HCcO,IAAKA,EAAc,SAAdA,GAAc,OAAdA,IAAc,aAAdA,IAAc,2BAAdA,IAAc,6BAAdA,IAAc,iCAAdA,IAAc,2BAAdA,IAAc,yBAAdA,IAAc,mCAAdA,IAAc,+BAAdA,EAAc,M,gCCd1B,6nC,gCCAA,sU,oBCAAC,EAAOC,QAAU,IAA0B,wC,oBCA3CD,EAAOC,QAAU,IAA0B,wC,iCCA3C,iqB,sNCAA,sG,iHCsDA,2GAAO,IAAKC,EAAoB,SAApBA,GAAoB,OAApBA,IAAoB,2BAApBA,IAAoB,eAApBA,IAAoB,6BAApBA,IAAoB,mBAApBA,IAAoB,qBAApBA,EAAoB,KAqBpBC,EAAc,SAAdA,GAAc,OAAdA,EAAc,UAAdA,EAAc,YAAdA,EAAc,iBAAdA,EAAc,M,0EC7D1B,sDAAO,IAAMC,EAAiB,CAC5BC,WAAY,sBACZC,KAAM,sBACNC,KAAM,oBACNC,OAAQ,oBACRC,SAAU,sBACVC,QAAS,wB,qIC4GX,oOAAO,IAAKC,EAAwB,SAAxBA,GAAwB,OAAxBA,EAAwB,WAAxBA,EAAwB,YAAxBA,EAAwB,aAAxBA,EAAwB,KAMxBC,EAA0B,SAA1BA,GAA0B,OAA1BA,EAA0B,SAA1BA,EAA0B,WAA1BA,EAA0B,UAA1BA,EAA0B,KAM1BC,EAA0B,SAA1BA,GAA0B,OAA1BA,EAA0B,wBAA1BA,EAA0B,qBAA1BA,EAA0B,yBAA1BA,EAA0B,oBAA1BA,EAA0B,wBAA1BA,EAA0B,YAA1BA,EAA0B,KAS1BC,EAAa,SAAbA,GAAa,OAAbA,EAAa,YAAbA,EAAa,YAAbA,EAAa,M,qDC3HzB,oKAAO,IAAKC,EAAkB,SAAlBA,GAAkB,OAAlBA,EAAkB,WAAlBA,EAAkB,YAAlBA,EAAkB,aAAlBA,EAAkB,KAMlBC,EAAoB,SAApBA,GAAoB,OAApBA,EAAoB,SAApBA,EAAoB,WAApBA,EAAoB,UAApBA,EAAoB,KAMpBC,EAAoB,SAApBA,GAAoB,OAApBA,EAAoB,wBAApBA,EAAoB,qBAApBA,EAAoB,yBAApBA,EAAoB,oBAApBA,EAAoB,wBAApBA,EAAoB,YAApBA,EAAoB,M,qDCXhC,4CAAO,IAAKC,EAAI,SAAJA,GAAI,OAAJA,IAAI,iCAAJA,IAAI,iCAAJA,IAAI,mBAAJA,IAAI,uBAAJA,IAAI,iBAAJA,IAAI,yBAAJA,IAAI,0BAAJA,IAAI,qBAAJA,IAAI,wBAAJA,EAAI,M,6KCNhB,gDAAO,IAAKC,EAAQ,SAARA,GAAQ,OAARA,EAAQ,aAARA,EAAQ,WAARA,EAAQ,mBAARA,EAAQ,WAARA,EAAQ,QAARA,EAAQ,aAARA,EAAQ,YAARA,EAAQ,M,iCCrBpB,0a,uWCAA,if,yDCeiBC,E,+DAAAA,MAAsB,KACtBC,GAAG,CAChBC,6BAA8B,K,qCCFjBC,E,mDAAAA,MAAU,KACVF,GAAG,CAChBG,mBAAoB,GACpBC,iBAAkB,IAClBC,kBAAmB,EACnBC,eAAgB,YAChBC,iBAAkB,EAClBC,kBAAmB,U,kGCbNC,E,6DAAAA,MAAoB,KACpBT,GAAG,CAChBU,mBAAoB,mB,iCCXxB,wR,4gBCAA,mV,qCCaiBC,E,0DAAAA,MAAiB,KACjBX,GAAG,CAChBG,mBAAoB,GACpBC,iBAAkB,IAClBE,eAAgB,U,yECjBpB,6G,8FCAA,2Z,qCCYiBM,E,+CAAAA,MAAM,KACNZ,GAAG,CAChBa,mBAAoB,I,qCCHPC,E,kDAAAA,MAAS,KACTd,GAAG,CAChBe,yBAA0B,yB,qCCAbC,E,iDAAAA,MAAQ,KACRhB,GAAG,CAChBiB,oBAAqB,+B,yDCPRC,E,yDAAAA,MAAgB,KAChBlB,GAAG,CAChBmB,6BAA8B,mB,qCCGjBC,ECAAC,ECKAC,E,qJFLAF,MAAe,KACfpB,GAAG,CAChBuB,aAAc,KCFDF,MAAa,KACbrB,GAAG,CAChBG,mBAAoB,GACpBC,iBAAkB,KCELkB,MAAc,KACdtB,GAAG,CAChBuB,aAAc,GACdC,oBAAqB,UACrBC,qBAAsB,U,uJCmBnB,IC3BUC,ED2BLC,EAA6B,SAA7BA,GAA6B,OAA7BA,IAA6B,eAA7BA,IAA6B,2BAA7BA,IAA6B,+BAA7BA,IAA6B,2CAA7BA,EAA6B,MC3BxBD,MAAgB,KAChB1B,GAAG,CAChB4B,uBAAwB,IACxBrB,iBAAkB,GAClBsB,kBAAmB,EACnBvB,eAAgB,c,qLCnBpB,IAAIwB,EAAM,CACT,OAAQ,IACR,UAAW,IACX,OAAQ,IACR,UAAW,IACX,aAAc,IACd,UAAW,IACX,aAAc,IACd,UAAW,IACX,aAAc,IACd,UAAW,IACX,aAAc,IACd,UAAW,IACX,aAAc,IACd,UAAW,IACX,aAAc,IACd,UAAW,IACX,aAAc,IACd,UAAW,IACX,OAAQ,IACR,UAAW,IACX,OAAQ,IACR,UAAW,IACX,OAAQ,IACR,UAAW,IACX,OAAQ,IACR,UAAW,IACX,OAAQ,IACR,UAAW,IACX,aAAc,IACd,UAAW,IACX,OAAQ,IACR,UAAW,IACX,OAAQ,IACR,UAAW,IACX,OAAQ,IACR,UAAW,IACX,OAAQ,IACR,UAAW,IACX,OAAQ,IACR,UAAW,IACX,OAAQ,IACR,UAAW,IACX,OAAQ,IACR,UAAW,IACX,OAAQ,IACR,UAAW,IACX,OAAQ,IACR,UAAW,IACX,aAAc,IACd,UAAW,IACX,aAAc,IACd,UAAW,IACX,OAAQ,IACR,UAAW,IACX,OAAQ,IACR,UAAW,IACX,UAAW,IACX,aAAc,IACd,UAAW,IACX,aAAc,IACd,UAAW,IACX,aAAc,IACd,UAAW,IACX,aAAc,IACd,UAAW,IACX,aAAc,IACd,UAAW,IACX,aAAc,IACd,UAAW,IACX,aAAc,IACd,UAAW,IACX,aAAc,IACd,OAAQ,IACR,UAAW,IACX,OAAQ,IACR,UAAW,IACX,aAAc,IACd,UAAW,IACX,aAAc,IACd,UAAW,IACX,aAAc,IACd,UAAW,IACX,OAAQ,IACR,UAAW,IACX,OAAQ,IACR,UAAW,IACX,OAAQ,IACR,UAAW,IACX,OAAQ,IACR,UAAW,IACX,QAAS,IACT,WAAY,IACZ,OAAQ,IACR,UAAW,IACX,OAAQ,IACR,UAAW,IACX,aAAc,IACd,UAAW,IACX,aAAc,IACd,UAAW,IACX,OAAQ,IACR,UAAW,IACX,OAAQ,IACR,UAAW,IACX,OAAQ,IACR,UAAW,IACX,OAAQ,IACR,UAAW,IACX,aAAc,IACd,gBAAiB,IACjB,aAAc,IACd,gBAAiB,IACjB,OAAQ,IACR,UAAW,IACX,OAAQ,IACR,UAAW,IACX,OAAQ,IACR,UAAW,IACX,OAAQ,IACR,UAAW,IACX,OAAQ,IACR,UAAW,IACX,UAAW,IACX,aAAc,IACd,OAAQ,IACR,UAAW,IACX,OAAQ,IACR,UAAW,IACX,OAAQ,IACR,UAAW,IACX,aAAc,IACd,UAAW,IACX,OAAQ,IACR,UAAW,IACX,OAAQ,IACR,UAAW,IACX,OAAQ,IACR,UAAW,IACX,OAAQ,IACR,UAAW,IACX,OAAQ,IACR,UAAW,IACX,OAAQ,IACR,UAAW,IACX,OAAQ,IACR,UAAW,IACX,OAAQ,IACR,WAAY,IACZ,cAAe,IACf,UAAW,IACX,OAAQ,IACR,UAAW,IACX,OAAQ,IACR,UAAW,IACX,OAAQ,IACR,UAAW,IACX,OAAQ,IACR,UAAW,IACX,OAAQ,IACR,UAAW,IACX,OAAQ,IACR,UAAW,IACX,OAAQ,IACR,UAAW,IACX,OAAQ,IACR,UAAW,IACX,OAAQ,IACR,UAAW,IACX,OAAQ,IACR,UAAW,IACX,OAAQ,IACR,UAAW,IACX,OAAQ,IACR,UAAW,IACX,aAAc,IACd,UAAW,IACX,OAAQ,IACR,UAAW,IACX,OAAQ,IACR,UAAW,IACX,OAAQ,IACR,UAAW,IACX,OAAQ,IACR,UAAW,IACX,OAAQ,IACR,UAAW,IACX,aAAc,IACd,UAAW,IACX,OAAQ,IACR,UAAW,IACX,WAAY,IACZ,cAAe,IACf,UAAW,IACX,aAAc,IACd,OAAQ,IACR,UAAW,IACX,OAAQ,IACR,UAAW,IACX,aAAc,IACd,UAAW,IACX,OAAQ,IACR,UAAW,IACX,OAAQ,IACR,UAAW,IACX,OAAQ,IACR,UAAW,IACX,OAAQ,IACR,UAAW,IACX,OAAQ,IACR,UAAW,IACX,OAAQ,IACR,UAAW,IACX,OAAQ,IACR,UAAW,IACX,OAAQ,IACR,UAAW,IACX,OAAQ,IACR,YAAa,IACb,eAAgB,IAChB,UAAW,IACX,OAAQ,IACR,UAAW,IACX,OAAQ,IACR,UAAW,IACX,OAAQ,IACR,UAAW,IACX,OAAQ,IACR,UAAW,IACX,OAAQ,IACR,UAAW,IACX,QAAS,IACT,WAAY,IACZ,OAAQ,IACR,UAAW,IACX,OAAQ,IACR,UAAW,IACX,OAAQ,IACR,UAAW,IACX,UAAW,IACX,aAAc,IACd,QAAS,IACT,WAAY,IACZ,OAAQ,IACR,UAAW,IACX,QAAS,IACT,WAAY,IACZ,QAAS,IACT,aAAc,IACd,gBAAiB,IACjB,WAAY,IACZ,UAAW,IACX,aAAc,IACd,OAAQ,IACR,UAAW,IACX,OAAQ,IACR,UAAW,IACX,OAAQ,IACR,YAAa,IACb,eAAgB,IAChB,UAAW,IACX,OAAQ,IACR,UAAW,IACX,aAAc,IACd,gBAAiB,IACjB,OAAQ,IACR,UAAW,IACX,UAAW,IACX,aAAc,IACd,UAAW,IACX,aAAc,IACd,UAAW,IACX,aAAc,IACd,UAAW,IACX,aAAc,KAIf,SAASC,EAAeC,GACvB,IAAIC,EAAKC,EAAsBF,GAC/B,OAAOG,EAAoBF,GAE5B,SAASC,EAAsBF,GAC9B,IAAIG,EAAoBC,EAAEN,EAAKE,GAAM,CACpC,IAAIK,EAAI,IAAIC,MAAM,uBAAyBN,EAAM,KAEjD,MADAK,EAAEE,KAAO,mBACHF,EAEP,OAAOP,EAAIE,GAEZD,EAAeS,KAAO,WACrB,OAAOC,OAAOD,KAAKV,IAEpBC,EAAeW,QAAUR,EACzBvD,EAAOC,QAAUmD,EACjBA,EAAeE,GAAK,K,oBCvSpBtD,EAAOC,QAAU,IAA0B,qC,oBCA3CD,EAAOC,QAAU,IAA0B,+C,kBCA3CD,EAAOC,QAAU,s7B,oBCAjBD,EAAOC,QAAU,IAA0B,wC,oBCA3CD,EAAOC,QAAU,IAA0B,iD,oBCA3CD,EAAOC,QAAU,IAA0B,mC,kBCA3CD,EAAOC,QAAU,s0B,qXCGJ+D,EAAU,oBAAAA,IAAAC,IAAA,KAAAD,GAQpB,OARoBE,IAAAF,EAAA,EAAAG,IAAA,SAAAC,MACrB,SAAQC,GACN,IAEE,OADuBC,kBAAWD,GAElC,MAAOE,GACP,OAAO,UAEVP,EARoB,G,iBCDvBQ,IAAOC,OAAO,SAEP,IAAMC,EAAiB,oBAAAA,IAAAT,IAAA,KAAAS,GAsC3B,OAtC2BR,IAAAQ,EAAA,EAAAP,IAAA,aAAAC,MAC5B,SAAYO,GACV,IAAQC,EAAuBD,EAAvBC,UAAWC,EAAYF,EAAZE,QACbC,EAAON,IAAOI,GAAWG,QAAQ,OAAOD,KAAKN,IAAOK,GAASE,QAAQ,OAAQ,QAEnF,OAAOD,EAAO,GAAa,EAATA,EAAcA,IACjC,CAAAX,IAAA,QAAAC,MAED,SAAOY,GACL,OAAOR,IAAOQ,GAAMD,QAAQ,OAAOE,WACpC,CAAAd,IAAA,SAAAC,MAED,SAAQY,GAAiE,IAA5CE,EAAkBC,UAAAC,OAAA,QAAAC,IAAAF,UAAA,GAAAA,UAAA,GAAG,aAChD,OAAKH,EAIER,IAAOQ,GAAMM,OAAOJ,GAHlB,qBAIV,CAAAf,IAAA,QAAAC,MAED,WACE,OAAOI,MAASS,WACjB,CAAAd,IAAA,UAAAC,MAED,SAASmB,GAAoD,IAAtCC,EAAcL,UAAAC,OAAA,QAAAC,IAAAF,UAAA,GAAAA,UAAA,GAAGM,KAAKC,QAC3C,OAAOlB,IAAOgB,GAAUG,SAASJ,EAAM,QAAQN,WAChD,CAAAd,IAAA,WAAAC,MAED,SAAUwB,GAAqD,IAAtCJ,EAAcL,UAAAC,OAAA,QAAAC,IAAAF,UAAA,GAAAA,UAAA,GAAGM,KAAKC,QAC7C,OAAOlB,IAAOgB,GAAUG,SAASC,EAAO,SAASX,WAClD,CAAAd,IAAA,YAAAC,MAED,SAAWmB,GAAoD,IAAtCC,EAAcL,UAAAC,OAAA,QAAAC,IAAAF,UAAA,GAAAA,UAAA,GAAGM,KAAKC,QAC7C,OAAOlB,IAAOgB,GAAUK,IAAIN,EAAM,QAAQN,WAC3C,CAAAd,IAAA,WAAAC,MAED,SAAU0B,GAAqD,IAAtCN,EAAcL,UAAAC,OAAA,QAAAC,IAAAF,UAAA,GAAAA,UAAA,GAAGM,KAAKC,QAC7C,OAAOlB,IAAOgB,GAAUG,SAASG,EAAO,SAASb,aAClDP,EAtC2B,GCDjBqB,EAAyB,WACpC,OAAO,IAAIrB,GCDAsB,EAAwB,WAAH,OAAkB,IAAIhC,G,gBCgE3CiC,EAnEE,CACbC,MAAO,yBACPC,MAAO,uBAiEIF,EA9DG,CACdG,eAAgB,yBAChBC,aAAc,wBACdC,QAAS,uBACTC,YAAa,uBACbC,cAAe,uBAyDJP,EAtDK,CAChBQ,eAAgB,yBAChBC,UAAW,uBACXC,cAAe,wBACfC,mBAAoB,yBAkDTX,EA1CC,CACZ1B,MAAO,wBAyCI0B,EAtCG,CACdY,QAAS,sBACTC,iBAAkB,wBAoCPb,EAjCG,CACdc,QAAS,0BAgCEd,EA7BM,CACjBe,WAAY,yBACZC,eAAgB,yBAChBC,iBAAkB,4BAClBC,eAAgB,qBAChBC,gBAAiB,yBACjBC,iBAAkB,0BAuBPpB,EApBA,CACXqB,YAAa,kBACbC,UAAW,sBACXC,KAAM,qBACNC,SAAU,qBACVC,WAAY,sBACZC,YAAa,uBAcF1B,EAXC,CACZ2B,aAAc,sBACdC,WAAY,sBACZC,MAAO,sBACPC,UAAW,sBAOA9B,EA/CA,CACX+B,KAAM,wBACNC,cAAe,0BA6CJhC,EAJC,CACZiC,KAAM,W,ikBC5DD,IAAMC,EAAQ,CACnBC,KAAM,UACNC,OAAMC,wBAAA,G,OACDC,cAAaF,QACbpC,GACAA,GACAA,GACAA,GACAA,GACAA,GACAA,GACAA,GACAA,GACAA,GACAA,ICfDuC,EAAmB,I,OAAIC,SAEhBC,EAAsB,oBAAAA,IAAAzE,IAAA,KAAAyE,GAWhC,OAXgCxE,IAAAwE,EAAA,EAAAvE,IAAA,MAAAC,MACjC,SAAKD,EAAaC,GACZA,EACFoE,EAAiBG,IAAIxE,EAAKC,EAAO,CAAEwE,KAAM,MAEzCJ,EAAiBK,OAAO1E,EAAK,CAAEyE,KAAM,QAExC,CAAAzE,IAAA,MAAAC,MAED,SAAKD,GACH,OAAOqE,EAAiBM,IAAI3E,OAC7BuE,EAXgC,GCHtBK,EAAmB,oBAAAA,IAAA9E,IAAA,KAAA8E,GAY7B,OAZ6B7E,IAAA6E,EAAA,EAAA5E,IAAA,MAAAC,MAC9B,SAAKD,EAAaC,GACZA,EACF4E,aAAaC,QAAQ9E,EAAK+E,KAAKC,UAAU/E,IAEzC4E,aAAaI,WAAWjF,KAE3B,CAAAA,IAAA,MAAAC,MAED,SAAKD,GACH,IAAMC,EAAQ4E,aAAaK,QAAQlF,GACnC,QAASC,GAAS8E,KAAKI,MAAMlF,OAC9B2E,EAZ6B,GCAnBQ,EAA0B,WAAH,OAA8B,IAAIR,G,ilBCmB/D,IAIMS,EAAU,WACrB,IAAAC,EAA2CC,yBAAeC,IAAoBC,EAAAC,IAAAJ,EAAA,GAAvEK,EAAaF,EAAA,GAAEG,EAAiBH,EAAA,GACjCI,EAAsBC,yBAAeC,IACrCC,EAAaF,yBAAeG,IAW5BC,EAASC,uBAAY,WACzBN,EAAoBrB,IAlBQ,oBAkBctD,GAC1C0E,EAAkB,CAChBQ,OAAQ,KACRC,YAAa,KACbC,eAAe,MAEhB,IAEGC,EAAmBJ,uBAAY,WACnC,IAAME,EAAcR,EAAoBlB,IA3BZ,gBA4BtB6B,EAAcR,EAAWS,OAAkB,MAAXJ,OAAW,EAAXA,EAAaK,cACnD,OAAkB,MAAXF,OAAW,EAAXA,EAAaG,MACnB,IAEGC,EAAYT,uBAAY,WAC5B,IAAME,EAAcR,EAAoBlB,IAjCZ,gBAmC5B,GAAe,MAAX0B,KAAaK,aAAc,CAC7B,IAAMG,EAAoBb,EAAWS,OAAOJ,EAAYK,cAClDI,EAAaD,EAAkBF,IACrC,MAAiC,UAA7BG,EAAWC,cACb5C,IAAA,GACK,MAAI,IACP6C,WA1CgB,OA2ChBC,YAAaH,EAAWC,gBAEP,MAAVD,KAAYI,SAAS,0BAC9B/C,IAAA,GACK,MAAI,IACP6C,WAhDgB,OAiDhBC,YAA8B,MAAjBJ,OAAiB,EAAjBA,EAAmBM,KAChCC,MAAwB,MAAjBP,OAAiB,EAAjBA,EAAmBF,MAEnBU,MAAMC,SAASR,IACxB3C,IAAA,GACK,MAAI,IACP6C,WAvDgB,OAwDhBC,YAA8B,MAAjBJ,OAAiB,EAAjBA,EAAmB5C,OAG3B0B,EAAcS,OAIzB,OAAOT,EAAcS,SACpB,CAACT,EAAcS,SA8BlB,MAAO,CACLmB,MAtFY,SAAClB,GACbR,EAAoBrB,IATQ,eASc6B,GAC1CT,GAAkB,SAAA4B,GAAY,OAAArD,IAAA,GACzBqD,GAAY,IACfnB,cACAC,eAAe,QAkFjBJ,SACAuB,UA/BgBtB,uBAAY,SAACC,GAC7BR,GAAkB,SAAA4B,GAAY,OAAArD,IAAA,GAAUqD,GAAY,IAAEpB,gBACrD,IA8BDG,mBACAK,YACAc,WA9BiB,SAACC,GAAmD,IAADC,EAIpE,OAF0C,OAA7BA,EADEhB,IACQiB,0BAAmB,EAA1BD,EAA4BE,MAAK,SAAAC,GAAO,OAAIA,EAAQC,aAAeL,MA6BnFM,YAxBkB,WAClB,IAAIC,EAAYrC,EAAoBlB,IA5EX,aAqFzB,OAPKuD,IACHA,EAAY,CACVC,SAAU,GACVC,cAAc,IAIXF,GAePG,SAZe,SAACC,GAChBzC,EAAoBrB,IAzFK,YAyFc8D,M,ikBC7GpC,IAAMC,EAAiBC,eAAK,CACjCxI,IAAK,uBACLyI,SAAS,IAGEC,EAAsBF,eAAK,CACtCxI,IAAK,sBACLyI,QAAS,OAGEE,EAAwBH,eAAuB,CAC1DxI,IAAK,wBACLyI,QAAS,OAGEG,EAAsBJ,eAAqB,CACtDxI,IAAK,sBACLyI,QAAS,OAGEI,EAAsBL,eAAqB,CACtDxI,IAAK,sBACLyI,QAAS,OAGEK,GAA2BN,eAA0B,CAChExI,IAAK,2BACLyI,QAAS,OAGEM,GAAoCP,eAAmC,CAClFxI,IAAK,oCACLyI,QAAS,OAGEO,GAAeC,mBAAS,CACnCjJ,IAAK,eACL2E,IAAK,SAAAuE,GAAc,IAAXvE,EAAGuE,EAAHvE,IACAwE,EAAmBxE,EAAIgE,GACvBS,EAAiBzE,EAAIiE,GACrBS,EAAiB1E,EAAIkE,GACrBS,EAAsB3E,EAAImE,IAC1BS,EAA+B5E,EAAIoE,IAEzC,OAAA5E,UAAA,GACKgF,GACAC,GACAC,GACAC,GAAmB,IACtBE,iBAAkBD,O,0BC5CXE,GAA2B,WACtC,IAAMzF,EAAQ0F,KACRC,EAAoBC,4BAAkBC,IACtCC,EAAuBF,4BAAkBG,IAU/C,OACEC,eAACC,WAAI,CAACC,MAAOC,GAAOC,cAAeC,UAAW,EAAEC,SAC9CC,gBAACC,UAAM,CAACC,SAAO,EAACC,QAAS,EAAEJ,SAAA,CACzBN,eAACW,UAAM,CACLC,MAAM,SACNC,MAAO7G,EAAME,OAAOxB,QACpBoI,UAAW9G,EAAME,OAAOnC,MACxBgJ,QAfa,WACnBpB,GAAkB,MAgBdK,eAACW,UAAM,CACLK,QAAQ,OACRJ,MAAM,4BACNC,MAAO7G,EAAME,OAAOb,KACpB0H,QAjBqB,WAC3BjB,GAAqB,YAuBnBK,GAASc,WAAWC,OAAO,CAC/Bd,cAAe,CACbe,OAAQ,GACRC,QAAS,EACTC,aAAc,EACdC,QAAS,OACTC,cAAe,MACfC,eAAgB,c,mBC9CPrB,GAASc,WAAWC,OAAO,CACtCO,UAAW,CACTF,cAAe,SACfG,KAAM,GAGRC,gBAAiB,CACfL,QAAS,OACTC,cAAe,MACfC,eAAgB,iBAElBI,WAAY,CACVR,QAAS,IAEXS,WAAY,CACVV,OAAQ,GACRW,gBAAiB,uBACjBT,aAAc,IAGhBjB,cAAe,CACb2B,aAAc,MACdC,UAAW,MACXC,YAAa,OACbC,WAAY,OACZb,aAAc,EACdC,QAAS,OACTC,cAAe,MACfC,eAAgB,YAElBW,oBAAqB,CACnBJ,aAAc,MACdC,UAAW,MACXC,YAAa,OACbC,WAAY,OACZb,aAAc,EACdC,QAAS,OACTC,cAAe,MACfC,eAAgB,UAGlBY,YAAa,CACXd,QAAS,OACTC,cAAe,MACfC,eAAgB,gBAChBE,KAAM,K,qkBCrCH,IAAMW,GAA8B,WACzC,IAAQC,EAAmBC,KAAnBD,eACRhH,EAA+CC,yBAAeoD,GAAsBlD,EAAAC,IAAAJ,EAAA,GAA7E6D,EAAgB1D,EAAA,GAAE+G,EAAkB/G,EAAA,GAC3CgH,EAAkCC,mBAASvD,GAApCwD,EAAqDjH,IAAA+G,EAAA,GAA9B,GAExBG,EAAcN,IAEdO,EAAe,SAACC,EAA+B7M,GACnDuM,GAAmB,SAAAhF,GAAY,OAAArD,MAAA,GAAUqD,GAAY,GAAAuF,IAAA,GAAGD,EAAQ7M,QAOlE,OACEsK,gBAACyC,OAAG,CAAC9C,MAAOC,GAAOsB,UAAUnB,SAAA,CAC3BN,eAACiD,WAAU,CAAA3C,SACPnB,EAEEoB,gBAAA2C,YAAA,CAAA5C,SAAA,CACAN,eAACmD,GAAU,CACTC,KAAK,iDACLnN,MAAOkJ,EAAiBkE,qBACxBC,aAAc,kBAAMT,EAAa,wBAAyB1D,EAAiBkE,yBAE7ErD,eAACmD,GAAU,CACTC,KAAK,2DACLnN,MAAOkJ,EAAiBoE,iBACxBD,aAAc,kBAAMT,EAAa,oBAAqB1D,EAAiBoE,qBAGzEvD,eAACmD,GAAU,CACTC,KAAK,qBACLnN,MAAOkJ,EAAiBqE,mBACxBF,aAAc,kBAAMT,EAAa,sBAAuB1D,EAAiBqE,qBAAoBlD,SAE7FN,eAACyD,GAAwB,MAG3BzD,eAACmD,GAAU,CACTC,KAAK,qDACLnN,MAAOkJ,EAAiBuE,oBACxBJ,aAAc,kBAAMT,EAAa,uBAAwB1D,EAAiBuE,sBAAqBpD,SAE/FN,eAAC2D,GAAkB,MAGrB3D,eAACmD,GAAU,CACTC,KAAK,gFACLnN,MAAOkJ,EAAiByE,qBACxBN,aAAc,kBAAMT,EAAa,wBAAyB1D,EAAiByE,uBAAsBtD,SAEjGN,eAAC6D,WAAS,CACRC,KAAK,OACLC,qBAAsBnB,EAAYoB,UAClCC,MAAM,iBACNC,sBAAsB,cACtBC,eAAe,cACflO,MAAOkJ,EAAiBiF,qBACxBC,aAAc,SAAAjB,GAAI,OAAIP,EAAa,uBAAwBO,IAC3DkB,UAAW,QAKdnF,EAAiBoF,wBAChBvE,eAACmD,GAAU,CACTC,KAAK,kHACLnN,MAAOkJ,EAAiBqF,qBACxBlB,aAAc,kBAAMT,EAAa,wBAAyB1D,EAAiBqF,4BAnD/ExE,eAACyE,GAAO,MAPT1J,KAAKC,UAAU2H,KAA6B5H,KAAKC,UAAUmE,IAgE/Ca,eAACP,GAAc,QC9EzBiF,IALgClG,eAAK,CAChDxI,IAAK,gCACLyI,SAAS,IAG+BD,eAAqB,CAC7DxI,IAAK,6BACLyI,QAAS,Q,qkBCKJ,IAAMkG,GAAkD,SAAHzF,GAAuB,IAAjB0F,EAAS1F,EAAT0F,UACxDtC,EAAmBC,KAAnBD,eACRhH,EAA2CC,yBAAeqD,GAAoBnD,EAAAC,IAAAJ,EAAA,GAAvE8D,EAAc3D,EAAA,GAAEoJ,EAAgBpJ,EAAA,GACvCqJ,EAA0DvJ,yBAAemJ,IAA2BK,EAAArJ,IAAAoJ,EAAA,GAA7FE,EAAqBD,EAAA,GAAEE,EAAwBF,EAAA,GAEhDnC,EAAcN,IAEpB4C,qBAAU,WACRD,EAAyB7F,KACxB,CAAC4F,IAEJ,IAAMnC,EAAe,SAACC,EAA6B7M,GACjD4O,GAAiB,SAAArH,GAAY,OAAArD,MAAA,GAAUqD,GAAY,GAAAuF,IAAA,GAAGD,EAAQ7M,QAG1DkP,EAAahJ,uBAAY,WAC7B,OAAOpB,KAAKC,UAAUgK,KAA2BjK,KAAKC,UAAUoE,KAC/D,CAACA,IAEJ,OACEmB,gBAACyC,OAAG,CAAC9C,MAAO,CAAEwB,KAAM,GAAIpB,SAAA,CACtBN,eAACiD,WAAU,CAAA3C,SACPlB,EAEEmB,gBAAA2C,YAAA,CAAA5C,SAAA,CACEN,eAACoF,GAAkB,CAACR,UAAWA,IAE/B5E,eAACmD,GAAU,CACTC,KAAK,8CACLnN,MAAOmJ,EAAeiG,MACtB/B,aAAc,kBAAMT,EAAa,SAAUzD,EAAeiG,UAG5DrF,eAACmD,GAAU,CACTC,KAAK,0DACLnN,MAAOmJ,EAAekG,iBACtBhC,aAAc,kBAAMT,EAAa,oBAAqBzD,EAAekG,mBAAkBhF,SAEvFN,eAAC6D,WAAS,CACRC,KAAK,OACLC,qBAAsBnB,EAAYoB,UAClCC,MAAM,iBACNC,sBAAsB,cACtBC,eAAe,cACflO,MAAOmJ,EAAemG,YACtBlB,aAAc,SAAAjB,GAAI,OAAIP,EAAa,cAAeO,IAClDkB,UAAW,IACXpE,MAAO,CACLwB,KAAM,OAKZ1B,eAACmD,GAAU,CACTC,KAAK,sFACLnN,MAAOmJ,EAAeoG,uBACtBlC,aAAc,kBAAMT,EAAa,0BAA2BzD,EAAeoG,2BAG7ExF,eAACmD,GAAU,CACTC,KAAK,kCACLnN,MAAOmJ,EAAeqG,0BACtBnC,aAAc,kBAAMT,EAAa,6BAA8BzD,EAAeqG,iCAvClFzF,eAACyE,GAAO,MA4CbU,KAAgBnF,eAACP,GAAc,Q,+kBCrE/B,IAAM2F,GAAwD,SAAHlG,GAAuB,IAAjB0F,EAAS1F,EAAT0F,UAChE5K,EAAQ0F,KACN4C,EAAmBC,KAAnBD,eACRhH,EAA2CC,yBAAeqD,GAAoBnD,EAAAC,IAAAJ,EAAA,GAAvE8D,EAAc3D,EAAA,GAAEoJ,EAAgBpJ,EAAA,GACvCqJ,EAA0DvJ,yBAAemJ,IAA2BK,EAAArJ,IAAAoJ,EAAA,GAA7FE,EAAqBD,EAAA,GAAEE,EAAwBF,EAAA,GACtDtC,EAAoCC,oBAAS,GAAMgD,EAAAhK,IAAA+G,EAAA,GAA5CkD,EAAUD,EAAA,GAAEE,EAAaF,EAAA,GAChCG,EAAwCnD,mBAAS,IAAGoD,EAAApK,IAAAmK,EAAA,GAA7CE,EAAYD,EAAA,GAAEE,EAAeF,EAAA,GACpCG,EAAgD1K,yBAAe2K,IAAuBC,EAAAzK,IAAAuK,EAAA,GAA/EG,EAAiBD,EAAA,GAAEE,EAAkBF,EAAA,GAEtCvD,EAAcN,IAEpB4C,qBAAU,WACRD,EAAwB9K,GAAC,GAAKiF,MAC7B,CAAC4F,IAEJ,IAAMnC,EAAe,SAACC,EAAyB7M,GAC7C4O,GAAiB,SAAArH,GAAY,OAAArD,MAAA,GAAUqD,GAAY,GAAAuF,IAAA,GAAGD,EAAQ7M,OAC9D2P,GAAc,IA6BhB,OACErF,gBAAC4C,GAAU,CACTC,KAAK,yCACLnN,OAAO,EACPqN,aAAc,aACdgD,UAAU,EAAKhG,SAAA,CAEfC,gBAACgG,SAAK,CAACC,UAAU,MAAM9F,QAAS,EAAG+F,QAAQ,UAAUC,MAAM,MAAKpG,SAAA,CAC9DN,eAAC6D,WAAS,CACRC,KAAK,OACLC,qBAAsBnB,EAAYoB,UAClCC,MAAM,sBACNC,sBAAsB,cACtBC,eAAe,cACflO,MAAOmJ,EAAejC,KACtBkH,aAAc,SAAAjB,GAAI,OAAIP,EAAa,OAAQO,IAC3CkB,UAAW,GACXpE,MAAO,CACLwB,KAAM,MAGV1B,eAAC6D,WAAS,CACRC,KAAK,OACLC,qBAAsBnB,EAAYoB,UAClCC,MAAM,mBACNC,sBAAsB,cACtBC,eAAe,cACflO,MAAOmJ,EAAehC,MACtBiH,aAAc,SAAAjB,GAAI,OAAIP,EAAa,QAASO,IAC5CkB,UAAW,IACXpE,MAAO,CACLwB,KAAM,MAGV1B,eAACW,UAAM,CACLC,MAAOwF,EACH,qBACAT,EACE,sBACA,sBAEN9E,MAAO+B,EAAYoB,UACnBlD,UAAW9G,EAAME,OAAOnC,MACxB4O,SAAU,SAAAC,GAAK,OAAIjB,EACf3F,eAAC6G,WAAa1M,GAAA,CAACF,KAAK,SAAY2M,IAChC5G,eAAC6G,WAAa1M,GAAA,CAACF,KAAK,QAAW2M,KAEnC7F,QAzEmB,WACzBsF,GAAmB,GAEnB,IAAMS,EAAkB,CACtB1J,MAAOgC,EAAehC,MACtBiI,MAAOjG,EAAeiG,MACtBlI,KAAMiC,EAAejC,MAGvByH,EACGmC,KAAKD,GACLE,MAAK,SAAAC,GAEJ,GADArB,EAAcqB,IACVA,EAGF,MAAM,IAAIzR,MAAM,6FAFhBwQ,EAAgB,qGAKnBkB,OAAM,SAAA9Q,GACLwP,GAAc,GACdI,EAAgB5P,EAAM+Q,YAEvBC,SAAQ,kBAAMf,GAAmB,OAmD9BgB,QAASjB,EACTkB,SAAU3B,OAGbA,GACC3F,eAACuG,SAAK,CAACC,UAAU,MAAME,MAAM,SAASD,QAAQ,SAAS/F,QAAS,EAAG6G,GAAI,EAAEjH,SACtEyF,GACCxF,gBAAA2C,YAAA,CAAA5C,SAAA,CACEN,eAAC6G,WAAa,CAAC5M,KAAK,OAAO4G,MAAO7G,EAAME,OAAO/B,QAASqP,KAAM,KAC9DxH,eAACyH,QAAI,CAACC,GAAI,CAAEC,GAAI,GAAK9G,MAAO7G,EAAME,OAAOb,KAAKiH,SAAEyF,aClHjDG,GAAyB1H,eAAK,CACzCxI,IAAK,yBACLyI,SAAS,ICFE0B,GAASc,WAAWC,OAAO,CACtCO,UAAW,CACTF,cAAe,SACfG,KAAM,K,qkBCGH,IAAMkG,GAA6B,WACxC,IAAAtM,EAA2CC,yBAAesD,GAAoBpD,EAAAC,IAAAJ,EAAA,GAAvE+D,EAAc5D,EAAA,GAAEoM,EAAgBpM,EAAA,GACvCgH,EAAgCC,mBAASrD,GAAlCyI,EAAiDpM,IAAA+G,EAAA,GAA5B,GAEtBsF,EAAqB,SAACjF,EAA6B7M,GACvD4R,GAAiB,SAAArK,GAAY,OAAArD,MAAA,GAAUqD,GAAY,GAAAuF,IAAA,GAAGD,EAAQ7M,QAOhE,OACE+J,eAACgD,OAAG,CAAC9C,MAAOC,GAAOsB,UAAUnB,SACzBjB,EAEEkB,gBAAA2C,YAAA,CAAA5C,SAAA,CACAC,gBAAC0C,WAAU,CAAA3C,SAAA,CACTN,eAACmD,GAAU,CACTC,KAAK,qEACLnN,MAAOoJ,EAAe2I,gBACtB1E,aAAc,kBAAMyE,EAAmB,mBAAoB1I,EAAe2I,oBAE5EhI,eAACmD,GAAU,CACTC,KAAK,oEACLnN,MAAOoJ,EAAe4I,eACtB3E,aAAc,kBAAMyE,EAAmB,kBAAmB1I,EAAe4I,sBAjB5ElN,KAAKC,UAAU8M,KAA2B/M,KAAKC,UAAUqE,IAoBzCW,eAACP,GAAc,OAdhCO,eAACyE,GAAO,O,qkBCfX,IAAMyD,GAAiC,WAC5C,IAAA5M,EAAqDC,yBAAeuD,IAAyBrD,EAAAC,IAAAJ,EAAA,GAAtFgE,EAAmB7D,EAAA,GAAE0M,EAAqB1M,EAAA,GACjDgH,EAAqCC,mBAASpD,GAAvC8I,EAA2D1M,IAAA+G,EAAA,GAAjC,GAE3B4F,EAA0C,MAAnB/I,OAAmB,EAAnBA,EAAqBgJ,gBAE5CzF,EAAe,SAACC,EAAkC7M,GACtDkS,GAAsB,SAAA3K,GAAY,OAAArD,MAAA,GAAUqD,GAAY,GAAAuF,IAAA,GAAGD,EAAQ7M,QAOrE,OACEsK,gBAACyC,OAAG,CAAC9C,MAAO,CAAEwB,KAAM,GAAIpB,SAAA,CACpBhB,EAEEiB,gBAAC0C,WAAU,CAAA3C,SAAA,CACXN,eAACmD,GAAU,CACTC,KAAK,yCACLnN,MAAOqJ,EAAoBiJ,iBAC3BjF,aAAc,kBAAMT,EAAa,oBAAqBvD,EAAoBiJ,qBAG5EvI,eAACmD,GAAU,CACTC,KAAK,oEACLnN,MAAOqJ,EAAoBkJ,aAC3BlF,aAAc,kBAAMT,EAAa,gBAAiBvD,EAAoBkJ,iBAExExI,eAACmD,GAAU,CACTC,KAAK,8FACLnN,MAAOqJ,EAAoBmJ,SAC3BnF,aAAc,kBAAMT,EAAa,YAAavD,EAAoBmJ,aAGpEzI,eAACmD,GAAU,CACTC,KAAK,6FACLnN,MAAOqJ,EAAoBoJ,sBAC3BpF,aAAc,kBAAMT,EAAa,yBAA0BvD,EAAoBoJ,wBAAuBpI,SAEtGN,eAAC6D,WAAS,CACRC,KAAK,OACLG,MAAM,oBACNC,sBAAsB,cACtBC,eAAe,cACflO,MAAOqJ,EAAoBqJ,gBAC3BtE,aAAc,SAAAjB,GAAI,OAAIP,EAAa,kBAAmBO,QAI1DpD,eAACmD,GAAU,CACTC,KAAM,wDACNnN,MAAOqJ,EAAoBsJ,qBAC3BtF,aAAc,kBAAMT,EAAa,wBAAyBvD,EAAoBsJ,uBAAsBtI,SAEpGN,eAAC6D,WAAS,CACRC,KAAK,OACLG,MAAM,oCACNC,sBAAsB,cACtBC,eAAe,cACflO,MAAOqJ,EAAoBuJ,mBAC3BxE,aAAc,SAAAjB,GAAI,OAAIP,EAAa,qBAAsBO,QAI7DpD,eAACmD,GAAU,CACTC,KAAM,gDACNnN,MAAOoS,EACP/E,aAAc,kBAAMT,EAAa,mBAAoBwF,IAAsB/H,SAE3EN,eAAC6D,WAAS,CACRC,KAAK,OACLG,MAAM,oBACNC,sBAAsB,cACtBC,eAAe,cACflO,MAAOqJ,EAAoBqJ,gBAC3BtE,aAAc,SAAAjB,GAAI,OAAIP,EAAa,kBAAmBO,QAI1DpD,eAACmD,GAAU,CACTC,KAAM,wEACNnN,MAAOqJ,EAAoBwJ,sBAC3BxF,aAAc,kBAAMT,EAAa,yBAA0BvD,EAAoBwJ,wBAAuBxI,SAEtGN,eAAC6D,WAAS,CACRC,KAAK,OACLG,MAAM,SACNC,sBAAsB,cACtBC,eAAe,cACflO,MAAOqJ,EAAoByJ,QAC3B1E,aAAc,SAAAjB,GAAI,OAAIP,EAAa,UAAWO,WA3ElDpD,eAACyE,GAAO,IANP1J,KAAKC,UAAUoN,KAAgCrN,KAAKC,UAAUsE,IAsFlDU,eAACP,GAAc,Q,8BCvGzBU,GAASc,WAAWC,OAAO,CACtC8H,iBAAkB,CAChB1H,QAAS,OACTC,cAAe,SACf0H,WAAY,UAGdC,kBAAmB,CACjB5H,QAAS,OACTC,cAAe,MACf4H,MAAO,OACP3H,eAAgB,gBAChBH,aAAc,GAGhB+H,wBAAyB,CACvB9H,QAAS,OACTC,cAAe,SACf4H,MAAO,OACP3H,eAAgB,gBAChBH,aAAc,GAGhBgI,UAAW,CACTF,MAAO,OACP7H,QAAS,OACTC,cAAe,SACfC,eAAgB,cAGlB8H,gBAAiB,CACfH,MAAO,OACP7H,QAAS,OACTC,cAAe,SACfC,eAAgB,cAGlB+H,SAAU,CACR1I,MAAO,sBACP2I,UAAW,SACXC,WAAY,MACZC,SAAU,IAGZC,UAAW,CACTR,MAAO,OACP7H,QAAS,OACTC,cAAe,SACfC,eAAgB,SAChByH,WAAY,UAGdW,mBAAoB,CAClBC,OAAQ,gCACRxI,aAAc,EACd8H,MAAO,UACP7H,QAAS,OACT2H,WAAY,SACZa,OAAQ,OACR9H,UAAW,EACXyH,WAAY,MACZC,SAAU,IAGZK,WAAY,CACVlJ,MAAO,sBACPmB,UAAW,GACXD,aAAc,GACdG,WAAY,GACZD,YAAa,IAGf+H,WAAY,CACVnJ,MAAO,sBACP4I,WAAY,MACZC,SAAU,GACVO,SAAU,SACVC,WAAY,SACZC,aAAc,WACdlI,YAAa,IAGfmI,QAAS,CACPpI,UAAW,GACXyH,WAAY,MACZ5I,MAAO,sBACP6I,SAAU,MC9EDjG,GAAqC,WAChD,IAAQ4G,EAAaC,KAAbD,SACR/O,EAAgDC,yBAAeoD,GAAsBlD,EAAAC,IAAAJ,EAAA,GAA9E6D,EAAgB1D,EAAA,GAAE8O,EAAmB9O,EAAA,GAEtC+O,EAA0B,SAACC,EAA2BC,GAC1D,IAAIC,EACAC,EAEJ,GAAIF,EAAQ,CACV,IAAMG,EAA4B1L,EAAiByL,2BAChD9M,MAAK,SAAAgN,GAAc,OAAIA,EAAeC,SAAWC,OAAOP,MAE3DG,EAA6BzL,EAAiByL,2BAC3CK,QAAO,SAAAH,GAAc,OAAIA,EAAeC,SAAWF,EAA0BE,UAEhFJ,EAAuB,GAAAO,OAAAC,KAAOhM,EAAiBwL,yBAAuB,CAAEE,QACnE,CACL,IAAMA,EAA4B1L,EAAiBwL,wBAChD7M,MAAK,SAAAgN,GAAc,OAAIA,EAAeC,SAAWC,OAAOP,MAE3DE,EAA0BxL,EAAiBwL,wBACxCM,QAAO,SAAAH,GAAc,OAAIA,EAAeC,SAAWF,EAA0BE,UAEhFH,EAA0B,GAAAM,OAAAC,KAAOhM,EAAiByL,4BAA0B,CAAEC,IAGhF,IAAMO,EAAYzV,OAAO0V,OAAO,GAAIlM,GACpCiM,EAAUT,wBAA0BA,EACpCS,EAAUR,2BAA6BA,EAEvCL,EAAoBa,IAGhBE,EAAS,SAACC,EAAwCd,GACtDc,EAAMC,aAAaC,QAAQ,oBAAqBhB,IAG5CiB,EAAS,SAACH,EAAwCb,GACtD,IAAMD,EAAoBc,EAAMC,aAAaG,QAAQ,qBACrDnB,EAAwBC,EAAmBC,IAGvCkB,EAAc,SAACnB,EAA2BC,GAC9CF,EAAwBC,EAAmBC,IAGvCmB,EAAa,SAACtW,GAClBA,EAAEuW,kBAGJ,OACE9L,eAACiD,WAAU,CAAA3C,SACPnB,EAEEoB,gBAAA2C,YAAA,CAAA5C,SAAA,CACEC,gBAACyC,OAAG,CAAC9C,MAAOmK,EAAWlK,GAAOiJ,wBAA0BjJ,GAAO+I,kBAAmB5I,SAAA,CAChFC,gBAAA,OACEL,MAAOC,GAAOkJ,UACdqC,OAAQ,SAACH,GAAK,OAAKG,EAAOH,GAAO,IACjCQ,WAAY,SAACR,GAAK,OAAKM,EAAWN,IAAOjL,SAAA,CAEzCN,eAACyH,QAAI,CAACvH,MAAOC,GAAOoJ,SAASjJ,SAAC,oCAC9BN,eAACgD,OAAG,CAAC9C,MAAOC,GAAOwJ,UAAUrJ,SAC1BnB,EAAiBwL,wBAAwB3V,KAAI,SAAC8V,GAAc,OAC3DvK,gBAAA,OACEyL,WAAS,EAETC,YAAa,SAACV,GAAK,OAAKD,EAAOC,EAAOT,EAAeC,OAAOmB,aAC5DhM,MAAOC,GAAOyJ,mBACduC,QAAS,kBAAMP,EAAYd,EAAeC,OAAOmB,YAAY,IAAO5L,SAAA,CAEpEN,eAACoM,WAAsB,CAACnS,KAAK,OAAOuN,KAAM,GAAItH,MAAOC,GAAO4J,aAC5D/J,eAACyH,QAAI,CAACvH,MAAOC,GAAO6J,WAAW1J,SAAKwK,EAAeC,OAAM,MAAMD,EAAeuB,cANzEvB,EAAeC,gBAY5BxK,gBAAA,OACEL,MAAOC,GAAOkJ,UACdqC,OAAQ,SAACH,GAAK,OAAKG,EAAOH,GAAO,IACjCQ,WAAY,SAACR,GAAK,OAAKM,EAAWN,IAAOjL,SAAA,CAEzCN,eAACyH,QAAI,CAACvH,MAAOC,GAAOoJ,SAASjJ,SAAC,2CAC9BN,eAAA,OAAKE,MAAOC,GAAOwJ,UAAUrJ,SAC1BnB,EAAiByL,2BAA2B5V,KAAI,SAACsX,GAAI,OACpD/L,gBAAA,OACEyL,WAAS,EAETC,YAAa,SAACV,GAAK,OAAKD,EAAOC,EAAOe,EAAKvB,OAAOmB,aAClDC,QAAS,kBAAMP,EAAYU,EAAKvB,OAAOmB,YAAY,IACnDhM,MAAOC,GAAOyJ,mBAAmBtJ,SAAA,CAEjCN,eAACoM,WAAsB,CAACnS,KAAK,OAAOuN,KAAM,GAAItH,MAAOC,GAAO4J,aAC5D/J,eAACyH,QAAI,CAACvH,MAAOC,GAAO6J,WAAW1J,SAAKgM,EAAKvB,OAAM,MAAMuB,EAAKD,cANrDC,EAAKvB,mBAYpB/K,eAACyH,QAAI,CAACvH,MAAOC,GAAOiK,QAAQ9J,SAAC,yDA/C/BN,eAACyE,GAAO,OC7DLtE,GAASc,WAAWC,OAAO,CACtC8H,iBAAkB,CAChB1H,QAAS,OACTC,cAAe,SACf0H,WAAY,UAGdC,kBAAmB,CACjB5H,QAAS,OACTC,cAAe,MACf4H,MAAO,OACP3H,eAAgB,gBAChBH,aAAc,GAGhB+H,wBAAyB,CACvB9H,QAAS,OACTC,cAAe,SACf4H,MAAO,OACP3H,eAAgB,gBAChBH,aAAc,GAGhBgI,UAAW,CACTF,MAAO,OACP7H,QAAS,OACTC,cAAe,SACfC,eAAgB,cAGlB+H,SAAU,CACR1I,MAAO,sBACP2I,UAAW,SACXC,WAAY,MACZC,SAAU,IAGZC,UAAW,CACTR,MAAO,OACP7H,QAAS,OACTC,cAAe,SACfC,eAAgB,SAChByH,WAAY,UAGdW,mBAAoB,CAClBC,OAAQ,gCACRxI,aAAc,EACd8H,MAAO,UACP7H,QAAS,OACT2H,WAAY,SACZa,OAAQ,UACR9H,UAAW,EACXyH,WAAY,MACZC,SAAU,IAGZK,WAAY,CACVlJ,MAAO,sBACPmB,UAAW,GACXD,aAAc,GACdG,WAAY,GACZD,YAAa,IAGf+H,WAAY,CACVnJ,MAAO,sBACP4I,WAAY,MACZC,SAAU,GACVO,SAAU,SACVC,WAAY,SACZC,aAAc,WACdlI,YAAa,IAGfmI,QAAS,CACPpI,UAAW,GACXyH,WAAY,MACZ5I,MAAO,sBACP6I,SAAU,MCxED/F,GAA+B,WAC1C,IAAQ0G,EAAaC,KAAbD,SACR/O,EAAgDC,yBAAeoD,GAAsBlD,EAAAC,IAAAJ,EAAA,GAA9E6D,EAAgB1D,EAAA,GAAE8O,EAAmB9O,EAAA,GAEtC+O,EAA0B,SAACC,EAA2B8B,GAC1D,IAAIC,EACAC,EAEJ,GAAIF,EAAM,CACR,IAAM1B,EAA4B1L,EAAiBqN,gBAChD1O,MAAK,SAAAgN,GAAc,OAAIA,EAAeC,SAAWC,OAAOP,MAE3D+B,EAAkBrN,EAAiBqN,gBAChCvB,QAAO,SAAAH,GAAc,OAAIA,EAAeC,SAAWF,EAA0BE,UAEhF0B,EAAqB,GAAAvB,OAAAC,KAAOhM,EAAiBuN,wBAAsB,CAAE7B,QAChE,CACL,IAAMA,EAA4B1L,EAAiBuN,uBAChD5O,MAAK,SAAAgN,GAAc,OAAIA,EAAeC,SAAWC,OAAOP,MAE3DgC,EAAwBtN,EAAiBuN,uBACtCzB,QAAO,SAAAH,GAAc,OAAIA,EAAeC,SAAWF,EAA0BE,UAEhFyB,EAAe,GAAAtB,OAAAC,KAAOhM,EAAiBqN,iBAAe,CAAE3B,IAG1D,IAAMO,EAAYzV,OAAO0V,OAAO,GAAIlM,GACpCiM,EAAUoB,gBAAkBA,EAC5BpB,EAAUsB,uBAAyBD,EAEnClC,EAAoBa,IAGhBE,EAAS,SAACC,EAAwCd,GACtDc,EAAMC,aAAaC,QAAQ,oBAAqBhB,IAG5CiB,EAAS,SAACH,EAAwCgB,GACtD,IAAM9B,EAAoBc,EAAMC,aAAaG,QAAQ,qBACrDnB,EAAwBC,EAAmB8B,IAGvCX,EAAc,SAACnB,EAA2B8B,GAC9C/B,EAAwBC,EAAmB8B,IAGvCV,EAAa,SAACN,GAClBA,EAAMO,kBAGR,OACE9L,eAACgD,OAAG,CAAA1C,SACAnB,EAEEoB,gBAAA2C,YAAA,CAAA5C,SAAA,CACEC,gBAACyC,OAAG,CAAC9C,MAAOmK,EAAWlK,GAAOiJ,wBAA0BjJ,GAAO+I,kBAAkB5I,SAAA,CACjFC,gBAAA,OACEL,MAAOC,GAAOkJ,UACdqC,OAAQ,SAACH,GAAK,OAAKG,EAAOH,GAAO,IACjCQ,WAAY,SAACR,GAAK,OAAKM,EAAWN,IAAOjL,SAAA,CAEzCN,eAACyH,QAAI,CAACvH,MAAOC,GAAOoJ,SAASjJ,SAAC,qCAC9BN,eAAA,OAAKE,MAAOC,GAAOwJ,UAAUrJ,SAC1BnB,EAAiBqN,gBAAgBxX,KAAI,SAAC8V,GAAc,OACnDvK,gBAAA,OACEyL,WAAS,EAETC,YAAa,SAACV,GAAK,OAAKD,EAAOC,EAAOT,EAAeC,OAAOmB,aAC5DhM,MAAOC,GAAOyJ,mBACduC,QAAS,kBAAMP,EAAYd,EAAeC,OAAOmB,YAAY,IAAM5L,SAAA,CAEnEN,eAACoM,WAAsB,CAACnS,KAAK,OAAOuN,KAAM,GAAItH,MAAOC,GAAO4J,aAC5D/J,eAACyH,QAAI,CAACvH,MAAOC,GAAO6J,WAAW1J,SAAKwK,EAAeC,OAAM,MAAMD,EAAeuB,cANzEvB,EAAeC,gBAY5BxK,gBAAA,OACEL,MAAOC,GAAOkJ,UACdqC,OAAQ,SAACH,GAAK,OAAKG,EAAOH,GAAO,IACjCQ,WAAY,SAACR,GAAK,OAAKM,EAAWN,IAAOjL,SAAA,CAEzCN,eAACyH,QAAI,CAACvH,MAAOC,GAAOoJ,SAASjJ,SAAC,gCAC9BN,eAAA,OAAKE,MAAOC,GAAOwJ,UAAUrJ,SAC1BnB,EAAiBuN,uBAAuB1X,KAAI,SAAC8V,GAAc,OAC1DvK,gBAAA,OACEyL,WAAS,EAETC,YAAa,SAACV,GAAK,OAAKD,EAAOC,EAAOT,EAAeC,OAAOmB,aAC5DC,QAAS,kBAAMP,EAAYd,EAAeC,OAAOmB,YAAY,IAC7DhM,MAAOC,GAAOyJ,mBAAmBtJ,SAAA,CAEjCN,eAACoM,WAAsB,CAACnS,KAAK,OAAOuN,KAAM,GAAItH,MAAOC,GAAO4J,aAC5D/J,eAACyH,QAAI,CAACvH,MAAOC,GAAO6J,WAAW1J,SAAKwK,EAAeC,OAAM,MAAMD,EAAeuB,cANzEvB,EAAeC,mBAY9B/K,eAACyH,QAAI,CAACvH,MAAOC,GAAOiK,QAAQ9J,SAAC,yDA/C7BN,eAACyE,GAAO,O,qkBCvDX,IAAMkI,GAAkC,WAC7C,IAAArR,EAAuEC,yBAAewD,IAAkCtD,EAAAC,IAAAJ,EAAA,GAAjHiE,EAA4B9D,EAAA,GAAEmR,EAA8BnR,EAAA,GACnEgH,EAA8CC,mBAASnD,GAAhDsN,EAA6EnR,IAAA+G,EAAA,GAA1C,GAEpCqK,EAAsB,SAAChK,EAA2C7M,GACtE2W,GAA+B,SAAApP,GAAY,OAAArD,MAAA,GAAUqD,GAAY,GAAAuF,IAAA,GAAGD,EAAQ7M,QAO9E,OACE+J,eAACgD,OAAG,CAAC9C,MAAO,CAAEwB,KAAM,GAAIpB,SACpBf,EAEEgB,gBAAA2C,YAAA,CAAA5C,SAAA,CACAC,gBAAC0C,WAAU,CAAA3C,SAAA,CACTN,eAACmD,GAAU,CACTC,KAAK,wBACLnN,MAAOsJ,EAA6BwN,GACpCzJ,aAAc,kBAAMwJ,EAAoB,MAAOvN,EAA6BwN,OAE9E/M,eAACmD,GAAU,CACTC,KAAK,gBACLnN,MAAOsJ,EAA6ByN,WACpC1J,aAAc,kBAAMwJ,EAAoB,cAAevN,EAA6ByN,eAEtFhN,eAACmD,GAAU,CACTC,KAAK,aACLnN,MAAOsJ,EAA6B0N,OACpC3J,aAAc,kBAAMwJ,EAAoB,UAAWvN,EAA6B0N,WAElFjN,eAACmD,GAAU,CACTC,KAAK,gBACLnN,MAAOsJ,EAA6B2N,cACpC5J,aAAc,WACZwJ,EAAoB,iBAAkBvN,EAA6B2N,kBAGvElN,eAACmD,GAAU,CACTC,KAAK,SACLnN,MAAOsJ,EAA6B4N,OACpC7J,aAAc,kBAAMwJ,EAAoB,UAAWvN,EAA6B4N,WAElFnN,eAACmD,GAAU,CACTC,KAAK,0BACLnN,MAAOsJ,EAA6B6N,OACpC9J,aAAc,kBAAMwJ,EAAoB,UAAWvN,EAA6B6N,WAElFpN,eAACmD,GAAU,CACTC,KAAK,qBACLnN,MAAOsJ,EAA6B8N,eACpC/J,aAAc,kBAAMwJ,EAAoB,kBAAmBvN,EAA6B8N,mBAE1FrN,eAACmD,GAAU,CACTC,KAAK,sBACLnN,MAAOsJ,EAA6B+N,gBACpChK,aAAc,kBAAMwJ,EAAoB,mBAAoBvN,EAA6B+N,oBAE3FtN,eAACmD,GAAU,CACTC,KAAK,MACLnN,MAAOsJ,EAA6BgO,IACpCjK,aAAc,kBAAMwJ,EAAoB,OAAQvN,EAA6BgO,QAE/EvN,eAACmD,GAAU,CACTC,KAAK,eACLnN,MAAOsJ,EAA6BiO,aACpClK,aAAc,kBAAMwJ,EAAoB,gBAAiBvN,EAA6BiO,iBAExFxN,eAACmD,GAAU,CACTC,KAAK,WACLnN,MAAOsJ,EAA6BkO,SACpCnK,aAAc,kBAAMwJ,EAAoB,YAAavN,EAA6BkO,gBAhErF1S,KAAKC,UAAU6R,KAAyC9R,KAAKC,UAAUuE,IAmEvDS,eAACP,GAAc,OA7DhCO,eAACyE,GAAO,OCpBLtE,GAASc,WAAWC,OAAO,CACtCO,UAAW,CACTH,QAAS,OACToM,IAAK,IAEPC,WAAY,CACVrM,QAAS,OACTC,cAAe,MACfC,eAAgB,WAChBkM,IAAK,KCJIE,GAAkC,WAC7C,IAAM5T,EAAQ0F,KACRmO,EAASC,KACfxS,EAA0BC,yBAAewE,IAAyBtE,EAAAC,IAAAJ,EAAA,GAA3DyS,EAAMtS,EAAA,GAAEuS,EAAOvS,EAAA,GACdwS,EAAmBC,KAAnBD,eAQFE,EAAc,WAAH,OAAeH,GAAQ,IAExC,OACEhO,eAACoO,GAAS,CAACC,QAASN,EAAQO,QAASH,EAAY7N,SAC/CC,gBAACyC,OAAG,CAAC9C,MAAOC,GAAOsB,UAAUnB,SAAA,CAC3BN,eAACyH,QAAI,CAACzG,QAAQ,YAAWV,SAAC,mDAE1BC,gBAACyC,OAAG,CAAC9C,MAAOC,GAAOwN,WAAWrN,SAAA,CAC5BN,eAACW,UAAM,CACLE,MAAO7G,EAAME,OAAOqU,OACpBvN,QAAQ,OACRJ,MAAM,WACNG,QAASoN,IAEXnO,eAACW,UAAM,CACLC,MAAM,WACNG,QAtBmB,WAC3BkN,IACAD,GAAQ,GACRH,EAAOW,KAAK,0CAoBJ3N,MAAO7G,EAAME,OAAOxB,QACpBoI,UAAW9G,EAAME,OAAOnC,iBCnCvBgI,GAA2BvB,eAAK,CAC3CxI,IAAK,2BACLyI,SAAS,ICFEgQ,GAAiCjQ,eAAK,CACjDxI,IAAK,iCACLyI,SAAS,IAGEiQ,GAAoClQ,eAAK,CACpDxI,IAAK,oCACLyI,SAAS,ICPE0B,GAASc,WAAWC,OAAO,CACtCO,UAAW,CACTH,QAAS,OACToM,IAAK,IAEPC,WAAY,CACVrM,QAAS,OACTC,cAAe,MACfC,eAAgB,WAChBkM,IAAK,KCEIiB,GAA4D,SAAHzP,GAA4B,IAAtB0P,EAAc1P,EAAd0P,eACpE5U,EAAQ0F,KACRmO,EAASC,KACPG,EAAmBC,KAAnBD,eACFY,EAAgB/S,yBAAekD,IACrC1D,EAAgCC,yBAAemT,IAAkCjT,EAAAC,IAAAJ,EAAA,GAA1EwT,EAASrT,EAAA,GAAEsT,EAAUtT,EAAA,GAC5BqJ,EAA0BvJ,yBAAekT,IAA+B1J,EAAArJ,IAAAoJ,EAAA,GAAjEiJ,EAAMhJ,EAAA,GAAEiJ,EAAOjJ,EAAA,GAChBiK,EAAoBpP,4BAAkBlB,GA6BtCyP,EAAc,WAAH,OAAeH,GAAQ,IAExC,OACEhO,eAACoO,GAAS,CAACC,QAASN,EAAQO,QAASH,EAAY7N,SAC9CwO,EACG9O,eAACyE,GAAO,CAACrB,KAAK,4CACd7C,gBAACyC,OAAG,CAAC9C,MAAOC,GAAOsB,UAAUnB,SAAA,CAC3BC,gBAACkH,QAAI,CAACzG,QAAQ,YAAWV,SAAA,CAAC,wEAA4DN,eAAA,SAAM,2DAE5FO,gBAACyC,OAAG,CAAC9C,MAAOC,GAAOwN,WAAWrN,SAAA,CAC5BN,eAACW,UAAM,CACLC,MAAM,WACNI,QAAQ,OACRH,MAAO7G,EAAME,OAAOqU,OACpBjH,SAAUwH,EACV/N,QA1Ce,WAC3BkN,IACAE,IACAN,EAAOW,KAAK,4CAyCFxO,eAACW,UAAM,CACLC,MAAM,SACNC,MAAO7G,EAAME,OAAOxB,QACpBoI,UAAW9G,EAAME,OAAOnC,MACxBuP,SAAUwH,EACV/N,QA3CY,WACxBgO,GAAW,GACXZ,IAEAS,EACGK,KAAKJ,GACL7H,MAAK,SAAAkI,GACAA,GACFrB,EAAOW,KAAK,qCAA+BK,EAAcM,UAAUjD,WAAWkD,SAAS,EAAG,KAAI,+BAC9FJ,EAAkBH,IAElBhB,EAAOW,KAAK,mEAAuDK,EAAcM,UAAS,oBAAqB,CAAEnO,QAAS,aAG7HkG,OAAM,SAAA9Q,GACLyX,EAAOW,KAAKpY,EAAM+Q,QAAS,CAAEnG,QAAS,UACtCmN,OAED/G,SAAQ,kBAAM2H,GAAW,kBC5CnBlP,GAAwBrB,eAAK,CACxCxI,IAAK,wBACLyI,SAAS,IAGE4Q,GAA2B7Q,eAAK,CAC3CxI,IAAK,2BACLyI,SAAS,ICPE0B,GAASc,WAAWC,OAAO,CACtCO,UAAW,CACTH,QAAS,OACToM,IAAK,IAEPC,WAAY,CACVrM,QAAS,OACTC,cAAe,MACf+N,SAAU,OACV9N,eAAgB,WAChBkM,IAAK,KCCI6B,GAAwD,SAAHrQ,GAA4B,IAAtB0P,EAAc1P,EAAd0P,eAChE5U,EAAQ0F,KACRmO,EAASC,KACP0B,EAAgBtB,KAAhBsB,YACFX,EAAgB/S,yBAAekD,IACrC1D,EAAgCC,yBAAe8T,IAAyB5T,EAAAC,IAAAJ,EAAA,GAAjEwT,EAASrT,EAAA,GAAEsT,EAAUtT,EAAA,GAC5BqJ,EAA0BvJ,yBAAesE,IAAsBkF,EAAArJ,IAAAoJ,EAAA,GAAxDiJ,EAAMhJ,EAAA,GAAEiJ,EAAOjJ,EAAA,GAEhB0K,EAAoBtT,uBAAY,WACpC4S,GAAW,GAEXH,EACGK,KAAKJ,GACL7H,MAAK,SAAAkI,GACAA,GACFrB,EAAOW,KAAK,qCAA+BK,EAAcM,UAAUjD,WAAWkD,SAAS,EAAG,KAAI,+BAC9FI,EAAYX,GACZV,KAEAN,EAAOW,KAAK,mEAAuDK,EAAcM,UAAS,oBAAqB,CAAEnO,QAAS,aAG7HkG,OAAM,SAAA9Q,GACLyX,EAAOW,KAAKpY,EAAM+Q,QAAS,CAAEnG,QAAS,UACtCmN,OAED/G,SAAQ,kBAAM2H,GAAW,QAC3B,CAACF,IAEEV,EAAc,WAAH,OAAeH,GAAQ,IAExC,OACEhO,eAACoO,GAAS,CAACC,QAASN,EAAQO,QAASH,EAAY7N,SAC9CwO,EACG9O,eAACyE,GAAO,CAACrB,KAAK,4CACd7C,gBAACyC,OAAG,CAAC9C,MAAOC,GAAOsB,UAAUnB,SAAA,CAC7BN,eAACyH,QAAI,CAACzG,QAAQ,YAAWV,SAAC,iDAE1BC,gBAACyC,OAAG,CAAC9C,MAAOC,GAAOwN,WAAWrN,SAAA,EAC3B,EAODN,eAACW,UAAM,CACLE,MAAO7G,EAAME,OAAOqU,OACpBvN,QAAQ,OACRJ,MAAM,WACNG,QAASoN,IAEXnO,eAACW,UAAM,CACLC,MAAM,SACNC,MAAO7G,EAAME,OAAOxB,QACpBoI,UAAW9G,EAAME,OAAOnC,MACxBgJ,QAAS0O,EACTnI,SAAUwH,a,oBCpEX3O,GAASc,WAAWC,OAAO,CACtCW,WAAY,CACVV,OAAQ,GACRE,aAAc,M,qkBCGX,IAAMqO,GAA0B,WACrC,IAAM1V,EAAQ0F,KACN4C,EAAmBC,KAAnBD,eACRG,EAAkCC,oBAAS,GAAMgD,EAAAhK,IAAA+G,EAAA,GAA1CkN,EAAUjK,EAAA,GAAEkK,EAAWlK,EAAA,GAC9BpK,EAA2CC,yBAAesU,IAAWpU,EAAAC,IAAAJ,EAAA,GAAAwU,EAAArU,EAAA,GAA5DsU,EAAKD,EAALC,MAAOC,EAAWF,EAAXE,YAAeC,EAAQxU,EAAA,GACjCqT,EAAYhT,yBAAeyC,GAE3BqE,EAAcN,IAOpB,OACEtC,eAACgD,OAAG,CAAA1C,SACFN,eAACkQ,WAAI,CACH7B,QAASsB,EACTQ,UAAW,kBAAMP,GAAY,IAC7BQ,eAAe,SACfC,OACErQ,eAACsQ,WAAI,CACHhJ,SAAUwH,EACV5O,MAAK/F,MAAA,GAAOgG,GAAO0B,YAAU,IAAEC,gBAAiBc,EAAY2N,aAC5DC,cAAexW,EAAME,OAAOnC,MAC5B0Y,cAAc,SACd1P,QAAS,kBAAM6O,GAAY,IAAMtP,SAEhC0P,EAAY9D,WAAWkD,SAAS,EAAG,OAEvC9O,SAEK,MAALyP,OAAK,EAALA,EAAO/a,KAAI,SAAC0b,GAAM,OACjB1Q,eAACkQ,WAAKS,KAAI,CAERrJ,SAAUoJ,EAAOE,gBAAkBZ,EACnCjP,QAAS,kBA3BM,SAACiP,GACxBC,GAAS,SAAAzS,GAAY,OAAArD,MAAA,GAAUqD,GAAY,IAAEwS,mBAC7CJ,GAAY,GAyBWiB,CAAiBH,EAAOE,gBACvChQ,MAAU8P,EAAOE,cAAc1E,WAAWkD,SAAS,EAAG,KAAI,MAAMsB,EAAOI,aAHlEJ,EAAOE,uBCvCXf,GAAarR,eAAK,CAC7BxI,IAAK,aACLyI,QAAS,CACPsR,MAAO,GACPC,YAAa,KCGJ9B,GAAc,WACzB,IAAA5S,EAA4CC,yBAAemD,GAAoBjD,EAAAC,IAAAJ,EAAA,GAAxEyV,EAActV,EAAA,GAAEuT,EAAiBvT,EAAA,GAClC8O,EAAsB3K,4BAAkBjB,GACxCqS,EAAoBpR,4BAAkBhB,GACtCqS,EAAoBrR,4BAAkBf,GACtCqS,EAAyBtR,4BAAkBd,IAC3CqS,EAAkCvR,4BAAkBb,IAEpDkP,EAAiB9R,uBAAY,WACjCqT,EAAYuB,KACX,CAACA,IAEEvB,EAAc,SAACkB,GACnB1B,EAAkB0B,GAElBnG,EAAoB,CAClBlH,qBAAsBqN,EAAOrN,qBAC7BE,iBAAkBmN,EAAOnN,iBACzBC,mBAAoBkN,EAAOlN,mBAC3BmH,wBAAyB+F,EAAO/F,wBAChCC,2BAA4B8F,EAAO9F,2BACnClH,oBAAqBgN,EAAOhN,oBAC5BgJ,uBAAwBgE,EAAOhE,uBAC/BF,gBAAiBkE,EAAOlE,gBACxB5I,qBAAsB8M,EAAO9M,qBAC7BQ,qBAAsBsM,EAAOtM,qBAC7BI,qBAAsBkM,EAAOlM,qBAC7BD,uBAAwBmM,EAAOnM,uBAC/B6M,oBAAqBV,EAAOU,oBAC5BC,6BAA8BX,EAAOW,6BACrCC,4BAA6BZ,EAAOY,4BACpCC,yBAA0Bb,EAAOa,yBACjCC,2BAA4Bd,EAAOc,2BACnCC,6BAA8Bf,EAAOe,+BAGvCT,EAAkB,CAChB7B,UAAWuB,EAAOvB,UAClBuC,WAAYhB,EAAOgB,WACnBvU,KAAMuT,EAAOvT,KACbC,MAAOsT,EAAOtT,MACdiI,MAAOqL,EAAOrL,MACdC,iBAAkBoL,EAAOpL,iBACzBC,YAAamL,EAAOnL,YACpBoM,uBAAwBjB,EAAOiB,uBAC/BC,SAAUlB,EAAOkB,SACjBC,gBAAiBnB,EAAOmB,gBACxBrM,uBAAwBkL,EAAOlL,uBAC/BsM,uBAAwBpB,EAAOoB,uBAC/BC,aAAcrB,EAAOqB,aACrBC,aAActB,EAAOsB,aACrBC,UAAWvB,EAAOuB,UAClBC,QAASxB,EAAOwB,QAChBC,MAAOzB,EAAOyB,MACdC,MAAO1B,EAAO0B,MACdC,IAAK3B,EAAO2B,IACZC,QAAS5B,EAAO4B,QAChB9S,iBAAkBkR,EAAOlR,iBACzBiG,0BAA2BiL,EAAOjL,4BAGpCwL,EAAkB,CAChBjJ,gBAAiB0I,EAAO1I,gBACxBC,eAAgByI,EAAOzI,iBAGzBiJ,EAAuB,CACrB3I,iBAAkBmI,EAAOnI,iBACzBC,aAAckI,EAAOlI,aACrBC,SAAUiI,EAAOjI,SACjBC,sBAAuBgI,EAAOhI,sBAC9BE,qBAAsB8H,EAAO9H,qBAC7BC,mBAAoB6H,EAAO7H,mBAC3BP,gBAAiBoI,EAAOpI,gBACxBQ,sBAAuB4H,EAAO5H,sBAC9BC,QAAS2H,EAAO3H,QAChBwJ,gBAAiB7B,EAAO6B,gBACxB5J,gBAAiB+H,EAAO/H,gBACxB6J,qBAAsB9B,EAAO8B,qBAC7BC,gBAAiB/B,EAAO+B,kBAG1BtB,EAAgCT,EAAOlR,mBAGzC,MAAO,CACLgQ,cACAvB,mB,SC9FE9E,GAAQuJ,WAAW/X,IAAI,UAAUwO,MACjCwJ,GAASD,WAAW/X,IAAI,UAAUgY,OA8BzBrI,GAnBS,WACtB,IAAMD,EAAWlB,GAAQ,IAEnByJ,EAAYC,OAAOA,OAAOC,WAAW,8BAA8BC,QAEnEC,EAAY,mBAAmBjM,KAAK8L,OAAOA,OAAOI,UAAUC,UAAUC,eAI5E,MAAO,CACLhK,SACAwJ,UACAtI,WACA2I,YACAI,aAPmBC,IAAkBT,GAAaI,EAAYM,GAAyB,GAQvFV,cCxBSW,GAAY,WA+CvB,MAAO,CACLC,eA/CqB,SAACC,GACtB,OAAO,IAAIC,KAAKC,aACd,QAAS,CACPzT,MAAO,WACP0T,SAAU,QACTzc,OAAOsc,IA2CZI,eAxCqB,SAACzQ,GACtB,OAAOA,EAAK0Q,QAAQ,iBAAkB,MAwCtCC,YArCkB,SAACC,GACnB,IAAMC,EAAaD,EAAIF,QAAQ,MAAO,IAEtC,GAA0B,KAAtBG,EAAWhd,OACb,OAAO,EAGT,GAAI,eAAe8P,KAAKkN,GACtB,OAAO,EAIT,IADA,IAAIC,EAAO,EACFC,EAAI,EAAGA,EAAI,EAAGA,IACrBD,GAAQ5W,SAAS2W,EAAWE,KAAO,GAAKA,GAG1C,IAAIC,EAAQF,EAAO,GACbG,EAAUD,EAAQ,EAAI,EAAI,GAAKA,EAErCF,EAAO,EACP,IAAK,IAAIC,EAAI,EAAGA,EAAI,GAAIA,IACtBD,GAAQ5W,SAAS2W,EAAWE,KAAO,GAAKA,GAI1C,IAAMG,GADNF,EAAQF,EAAO,IACS,EAAI,EAAI,GAAKE,EAErC,OAAI9W,SAAS2W,EAAW,MAAQI,GAAW/W,SAAS2W,EAAW,OAASK,K,SCzC/D5U,GAAW,WAAH,OAAmB6U,uB,oBCHzB,IAMbC,QAAmE,GACnEC,cAAe,sCACfC,4BAA6B,uCAC7BC,YAAa,aACbC,mBAAoB,8CACpBC,0BAA2B,2FCFhBC,GAAW,WAiDtB,MAAO,CAAEC,SA9CK,eAAA7V,EAAA8V,MAAG,UAAOC,GAA6E,IAADC,EAA7DC,EAA8Bne,UAAAC,OAAA,QAAAC,IAAAF,UAAA,GAAAA,UAAA,GAAG,OAChEoe,EAAY,MAALH,KAAOI,SAAS,SACpB,MAALJ,GAA2B,OAAtBC,EAALD,EAAOK,MAAM,SAASC,YAAjB,EAALL,EAA6BI,MAAM,MAAOE,QAC1CP,EACEQ,EAN8D,sBAMvBL,EAC7C,IACE,aAAaM,MAAMD,GAChBzO,MAAK,SAAA2O,GACJ,OAAuB,MAAhBA,EAAKC,OAAiBH,EAAc,MAE/C,MAAOrf,GAEP,OADAyf,QAAQC,IAAI,gDAA0CL,EAAerf,GAC9D,CACL2f,KAASC,qCACTzY,MAAUyY,oCACVvX,QAAS,gBACT0W,OAEL,gBAlBac,GAAA,OAAA/W,EAAAgX,MAAA,KAAAlf,YAAA,GA8CKmf,aA1BE,SACnBC,EACAC,GAOA,IAJU,IAFVC,EAAmBtf,UAAAC,OAAA,QAAAC,IAAAF,UAAA,GAAAA,UAAA,GAAG,YACtBuf,EAAiBvf,UAAAC,OAAA,QAAAC,IAAAF,UAAA,GAAAA,UAAA,GAAG,IAEdwf,EAAiB3D,OAAO4D,KAAKL,GAC7BM,EAAa,GAEVC,EAAS,EAAGA,EAASH,EAAevf,OAAQ0f,GAAUJ,EAAW,CAIxE,IAHA,IAAMK,EAAQJ,EAAeI,MAAMD,EAAQA,EAASJ,GAE9CM,EAAc,IAAIC,MAAMF,EAAM3f,QAC3Bkd,EAAI,EAAGA,EAAIyC,EAAM3f,OAAQkd,IAChC0C,EAAY1C,GAAKyC,EAAMG,WAAW5C,GAGpC,IAAM6C,EAAY,IAAIC,WAAWJ,GACjCH,EAAWQ,KAAKF,GAGlB,IAAMG,EAAO,IAAIC,KAAKV,EAAY,CAAEW,KAAMf,IACpClB,EAAO,IAAIkC,KAAK,CAACH,GAAOd,GAC9B,OAAOjB,K,sUCzDJ,IAAMmC,GAAuB,SAAAC,GAClC,SAAAD,EAAapQ,GAAmB,IAADsQ,EAEQ,OAFR3hB,IAAA,KAAAyhB,IAC7BE,EAAAC,GAAA,KAAAH,EAAA,CAAa,MAAPpQ,IAAW,8BACZlN,KAAO,0BAAyBwd,EACtC,OAJiCE,KAAAJ,EAAAC,GAIjCzhB,IAAAwhB,GAJiC,CAIjCK,KAJ0CpiB,Q,uPCAtC,IAAMqiB,GAAsB,SAAAL,GACjC,SAAAK,EAAa1Q,GAAkB,IAADsQ,EAEQ,OAFR3hB,IAAA,KAAA+hB,IAC5BJ,EAAAC,GAAA,KAAAG,EAAA,CAAM1Q,KACDlN,KAAO,yBAAwBwd,EACrC,OAJgCE,KAAAE,EAAAL,GAIhCzhB,IAAA8hB,GAJgC,CAIhCD,KAJyCpiB,Q,uPCArC,IAAMsiB,GAAe,SAAAN,GAC1B,SAAAM,IAAgB,IAADL,EAEgB,OAFhB3hB,IAAA,KAAAgiB,IACbL,EAAAC,GAAA,KAAAI,EAAA,CAAM,0DACD7d,KAAO,kBAAiBwd,EAC9B,OAJyBE,KAAAG,EAAAN,GAIzBzhB,IAAA+hB,GAJyB,CAIzBF,KAJkCpiB,Q,uPCA9B,IAAMuiB,GAA2B,SAAAP,GACtC,SAAAO,IAAgB,IAADN,EAE4B,OAF5B3hB,IAAA,KAAAiiB,IACbN,EAAAC,GAAA,KAAAK,EAAA,CAAM,iEACD9d,KAAO,8BAA6Bwd,EAC1C,OAJqCE,KAAAI,EAAAP,GAIrCzhB,IAAAgiB,GAJqC,CAIrCH,KAJ8CpiB,Q,uPCA1C,IAAMwiB,GAAiB,SAAAR,GAC5B,SAAAQ,IAAgB,IAADP,EAEkB,OAFlB3hB,IAAA,KAAAkiB,IACbP,EAAAC,GAAA,KAAAM,EAAA,CAAM,mDACD/d,KAAO,oBAAmBwd,EAChC,OAJ2BE,KAAAK,EAAAR,GAI3BzhB,IAAAiiB,GAJ2B,CAI3BJ,KAJoCpiB,Q,uPCAhC,IAAMyiB,GAAc,SAAAT,GACzB,SAAAS,EAAa9Q,GAAkB,IAADsQ,EAEA,OAFA3hB,IAAA,KAAAmiB,IAC5BR,EAAAC,GAAA,KAAAO,EAAA,CAAM9Q,KACDlN,KAAO,iBAAgBwd,EAC7B,OAJwBE,KAAAM,EAAAT,GAIxBzhB,IAAAkiB,GAJwB,CAIxBL,KAJiCpiB,Q,uPCA7B,IAAM0iB,GAAyB,SAAAV,GACpC,SAAAU,IAAgB,IAADT,EAE0B,OAF1B3hB,IAAA,KAAAoiB,IACbT,EAAAC,GAAA,KAAAQ,EAAA,CAAM,mDACDje,KAAO,4BAA2Bwd,EACxC,OAJmCE,KAAAO,EAAAV,GAInCzhB,IAAAmiB,GAJmC,CAInCN,KAJ4CpiB,Q,uPCAxC,IAAM2iB,GAAiB,SAAAX,GAC5B,SAAAW,IAAgB,IAADV,EAEkB,OAFlB3hB,IAAA,KAAAqiB,IACbV,EAAAC,GAAA,KAAAS,EAAA,CAAM,4FACDle,KAAO,oBAAmBwd,EAChC,OAJ2BE,KAAAQ,EAAAX,GAI3BzhB,IAAAoiB,GAJ2B,CAI3BP,KAJoCpiB,QCM1B4iB,GAAkB,SAACC,GAC9B,IAAMxK,EAASC,KACP5R,EAAWb,IAAXa,OAER,OAAO,SAAC9F,GACFA,aAAiB4hB,IACnBnK,EAAOzX,MAAMA,EAAM+Q,SACnBjL,KACS9F,aAAiB8hB,GAC1BrK,EAAOhU,KAAKzD,EAAM+Q,UAElB0G,EAAOzX,OAAW,MAALA,OAAK,EAALA,EAAO+Q,UAAW,qEACvB,MAARkR,KAAWjiB,M,qkBCbV,IAAMmI,GAAiBC,eAAK,CACjCxI,IAAK,sBACLyI,SAAS,IAQL6Z,GAA2Bld,IAA0BT,IAAI,gBAAcR,MAAA,GACxE,MAAI,IACP6J,UAAWhK,EAAME,OAAO/B,QACxBogB,UAAWve,EAAME,OAAOnC,MACxBygB,WAAYxe,EAAME,OAAOnC,MACzBwY,WAAYvW,EAAME,OAAO3B,YAGdkgB,GAAoBja,eAAK,CACpCxI,IAAK,oBACLyI,QAAS6Z,KAQEI,IALmBla,eAAK,CACnCxI,IAAK,mBACLyI,QAAS,cAGeD,eAAiB,CACzCxI,IAAK,cACLyI,QAAS,CACPzE,MAAOse,GACPK,YAAa,gBAcJC,IALcpa,eAAmB,CAC5CxI,IAAK,cACLyI,QAAS,KAGsBD,eAAK,CACpCxI,IAAK,oBACLyI,QAAS,QAGEoa,GAA0Bra,eAAK,CAC1CxI,IAAK,0BACLyI,QAAS,OCxDEqa,GAAkCta,eAAK,CAClDxI,IAAK,kCACLyI,SAAS,ICFEsa,GAA8Bva,eAAK,CAC9CxI,IAAK,8BACLyI,SAAS,ICWEgB,GAAgD,SAAHP,GAAeA,EAAT8Z,UAAqB9Z,EAAV+Z,WAAkB,IACrFjf,EAAQ0F,KACRwZ,EAAwBtZ,4BAAkBkZ,IAC1CK,EAAqBvZ,4BAAkBmZ,IAU7C,OACE/Y,eAAAkD,YAAA,CAAA5C,SACEN,eAACC,WAAI,CAACC,MAAOC,GAAOC,cAAeC,UAAW,EAAEC,SAC9CC,gBAACC,UAAM,CAACC,SAAO,EAACC,QAAS,EAAEJ,SAAA,CACzBN,eAACW,UAAM,CACLC,MAAM,SACNC,MAAO7G,EAAME,OAAOxB,QACpBoI,UAAW9G,EAAME,OAAOnC,MACxBgJ,QAhBW,WACnBoY,GAAmB,MAiBbnZ,eAACW,UAAM,CACLK,QAAQ,OACRJ,MAAM,4BACNC,MAAO7G,EAAME,OAAOb,KACpB0H,QAlBmB,WAC3BmY,GAAsB,cAyBpB/Y,GAASc,WAAWC,OAAO,CAC/Bd,cAAe,CACbe,OAAQ,GACRC,QAAS,EACTC,aAAc,EACdC,QAAS,OACTC,cAAe,MACfC,eAAgB,cCvDPrB,GAASc,WAAWC,OAAO,CACtCkY,MAAO,CACLC,aAAc,EACdnX,WAAY,GACZH,aAAc,IAEhBuX,WAAY,CACVpX,YAAa,M,qkBCIV,IAAMqX,GAA0C,SAAHra,GAAyB,IAAnBjF,EAAIiF,EAAJjF,KAAMgK,EAAK/E,EAAL+E,MACtDoG,EAAaC,KAAbD,SACR/O,EAAsCC,yBAAemd,IAAWjd,EAAAC,IAAAJ,EAAA,GAAzDsH,EAAWnH,EAAA,GAAE+d,EAAc/d,EAAA,GAE5Bge,EAAUtf,MAAA,GACXgG,GAAOiZ,OACN/O,EACA,CAAElB,MAAO,QACT,CAAEzH,KAAM,IAWd,OACE1B,eAAC6D,GAAS,CACR7C,QAAQ,SACRiD,MAAOA,EACP/D,MAAOuZ,EACPxjB,MAAO2M,EAAY5I,MAAMC,GACzB4G,MAAO+B,EAAY5I,MAAMgK,UACzB0V,UAAU,EACV/S,SAAU,kBACR3G,eAAA,SACEqX,KAAK,QACLnX,MAAOC,GAAOmZ,WACdrjB,MAAO2M,EAAY5I,MAAMC,GACzB0f,SAAU,SAACpO,GAAK,OApBFzI,EAoBoB7I,EApBM4G,EAoBA0K,EAAMqO,OAAO3jB,WAnB3DujB,GAAe,SAAAhc,GAAY,OAAArD,MAAA,GACtBqD,GAAY,IACfxD,MAAKG,MAAA,GAAQqD,EAAaxD,OAAK,GAAA+I,IAAA,GAAGD,EAAQjC,SAHzB,IAACiC,EAA0BjC,S,2mBCV3C,IAAMgZ,GAAkE,SAAH3a,GAAsB,IAAhBmX,EAAQnX,EAARmX,SAC1Erc,EAAQ0F,KACNyW,EAAiBrB,KAAjBqB,aACA9L,EAAaC,KAAbD,SACA/H,EAAmBC,KAAnBD,eACFwX,EAAWla,4BAAkB8Y,IAC7BqB,EAAwBna,4BAAkBiZ,IAChDpW,EAAoCC,qBAAkBgD,EAAAhK,IAAA+G,EAAA,GAA/C5J,EAAU6M,EAAA,GAAEsU,EAAatU,EAAA,GAE1B9C,EAAcN,IAEd2X,EAAkD5D,EACpD,CAAE6D,IAAK7D,GACP8D,EAAQ,KAENC,EAAe,eAAAC,EAAArF,MAAG,YACtB,IAAMsF,QAAeC,2BAAoC,CACvDC,WAAYD,oBAA6BE,OACzCC,eAAe,EACfC,OAAQ,CAAC,EAAG,GACZC,QAAS,IAGX,IAAKN,EAAOO,SAAU,CAAC,IAADC,EAAAC,EAAAC,EACdC,EAAgC,OAAhBH,EAAGR,EAAOY,SAAe,OAATH,EAAbD,EAAgB,GAAGZ,UAAN,EAAba,EAAwBzF,MAAM,KAAK,GACtDF,EAAOe,EAAa8E,EAAiB,eAAe,IAAIE,MAAOC,kBAAiB,SACtFrB,EAAsB3E,GACtB0E,GAAS,SAAAtc,GAAY,OAAArD,MAAA,GAAUqD,GAAY,IAAExD,MAAKG,MAAA,GAAQqD,EAAaxD,OAAK,IAAEqhB,QAASjG,EAAKnb,YAC5F+f,EAA2B,OAAdgB,EAACV,EAAOY,aAAM,EAAbF,EAAgB,GAAGd,SAEpC,kBAfoB,OAAAG,EAAAnE,MAAA,KAAAlf,YAAA,GAiBrB,OACEuJ,gBAAC+a,oBAAgB,CACfC,cAAe,GACfxa,QAASqZ,EACTla,MAAO,CACL6B,aAAc,IACdzB,SAAA,CAEFN,eAACQ,UAAM,CAACgb,QAAM,EAAAlb,SACZN,eAACyH,QAAI,CAACvH,MAAO,CAAEuJ,WAAY,OAASzI,QAAQ,YAAYH,MAAO7G,EAAME,OAAOb,KAAKiH,SAAC,+BAIpFN,eAACyb,UAAM,CAAC/a,QAAS,GAAIgb,GAAI,GAAIC,EAAG,GAAIjV,MAAM,SAASkV,MAAI,EACrD1b,MAAO,CACL4B,gBAAiBc,EAAYoB,UAC7B3C,aAAc,GACdf,SAEFN,eAAC6b,WAAK,CACJC,WAAW,QACX5b,MAAK/F,MAAA,GACAgG,GAAO8Z,iBAAe,IACzBtH,OAAQtI,EAAW,IAAM,IACzBvI,gBAAiBc,EAAYoB,YAE/B+X,OAAQljB,EAAa,CAAEqhB,IAAKrhB,GAAeohB,UAO/C9Z,GAASc,WAAWC,OAAO,CAC/B+Y,gBAAiB,CACf9Q,MAAO,OACP6S,SAAU,IACV3a,aAAc,K,8kBCtEX,IAAM4a,GAA4C,SAAH/c,GAAsB,IAAhBmX,EAAQnX,EAARmX,SACpDrc,EAAQ0F,KACNyW,EAAiBrB,KAAjBqB,aACA7T,EAAmBC,KAAnBD,eACFwX,EAAWla,4BAAkB8Y,IAC7BwD,EAAkBtc,4BAAkBgZ,IAC1CnW,EAAwBC,qBAAkBgD,EAAAhK,IAAA+G,EAAA,GAAnCsT,EAAIrQ,EAAA,GAAEyW,EAAOzW,EAAA,GAEd9C,EAAcN,IACd8Z,EAA4C/F,EAC9C,CAAE6D,IAAK7D,GACP8D,EAAQ,KAENC,EAAe,eAAAC,EAAArF,MAAG,YACtB,IAAMsF,QAAeC,2BAAoC,CACvDC,WAAYD,oBAA6BE,OACzCC,eAAe,EACfC,OAAQ,CAAC,EAAG,GACZC,QAAS,IAGX,IAAKN,EAAOO,SAAU,CAAC,IAADC,EAAAC,EAAAC,EACdqB,EAA0B,OAAhBvB,EAAGR,EAAOY,SAAe,OAATH,EAAbD,EAAgB,GAAGZ,UAAN,EAAba,EAAwBjH,QAAQ,yBAA0B,IACvEsB,EAAOe,EAAakG,EAAW,SAAS,IAAIlB,MAAOC,kBAAiB,QAC1Ec,EAAgB9G,GAChB0E,GAAS,SAAAtc,GAAY,OAAArD,MAAA,GAAUqD,GAAY,IAAExD,MAAKG,MAAA,GAAQqD,EAAaxD,OAAK,IAAEsiB,UAAWlH,EAAKnb,YAC9FkiB,EAAqB,OAAdnB,EAACV,EAAOY,aAAM,EAAbF,EAAgB,GAAGd,SAE9B,kBAfoB,OAAAG,EAAAnE,MAAA,KAAAlf,YAAA,GAiBrB,OACEgJ,eAACsb,WAAgB,CACfC,cAAe,GACfxa,QAASqZ,EACTla,MAAO,CACL4B,gBAAiBc,EAAYoB,UAC7B5C,QAAS,GACTC,aAAc,EACdU,aAAc,IACdzB,SAEFC,gBAACkb,UAAM,CAAC/a,QAAS,GAAIgb,GAAI,GAAIhV,MAAM,SAASkV,MAAI,EAAAtb,SAAA,CAC9CN,eAACyH,QAAI,CAACvH,MAAO,CAAEuJ,WAAY,MAAO5I,MAAO7G,EAAME,OAAOnC,OAASiJ,QAAQ,YAAWV,SAAC,oBAGjFN,eAAC6b,WAAK,CACJ3b,MAAK/F,MAAA,GAAOgG,GAAOmc,WAAS,IAAEC,YAAgBviB,EAAME,OAAOnC,MAAK,OAChE+jB,WAAW,UACXC,OAAQhG,EAAO,CAAEmE,IAAKnE,GAASqG,UAOrCjc,GAASc,WAAWC,OAAO,CAC/Bob,UAAW,CACTnT,MAAO,GACPwJ,OAAQ,GACR6J,YAAa,EACbC,YAAa,YCxEJtc,GAASc,WAAWC,OAAO,CACtCO,UAAW,CACTH,QAAS,OACToM,IAAK,IAEPC,WAAY,CACVrM,QAAS,OACTC,cAAe,MACf+N,SAAU,OACV9N,eAAgB,WAChBkM,IAAK,KCEI6B,GAAwD,SAAHrQ,GAAmC,IAA7B8Z,EAAS9Z,EAAT8Z,UAAWC,EAAU/Z,EAAV+Z,WAC3Ejf,EAAQ0F,KACRmO,EAASC,KACfxS,EAAsBC,yBAAemd,IAA9B9V,EAAyClH,IAAAJ,EAAA,GAA9B,GACZohB,EAAe5gB,yBAAe8c,IAC9B+D,EAAyB7gB,yBAAe+c,IACtCW,EAAmBjX,KAAnBiX,eACR1U,EAAgCvJ,yBAAegD,IAAewG,EAAArJ,IAAAoJ,EAAA,GAAvDgK,EAAS/J,EAAA,GAAEgK,EAAUhK,EAAA,GAC5BkB,EAAgD1K,yBAAewd,IAA4B5S,EAAAzK,IAAAuK,EAAA,GAApF2W,EAAiBzW,EAAA,GAAEgT,EAAkBhT,EAAA,GACtC0W,EAAoBC,8BAAoBlE,IACxCmE,EAA8BD,8BAAoBjE,IAClDmE,EAAc5E,IAAgB,WAClCrJ,GAAW,GACXZ,OAGIsB,EAAiB,eAAA4K,EAAArF,MAAG,YACxBjG,GAAW,GAEX,IACE2N,UAAsBzD,EAAWgE,OAAO,CAAE7H,KAAMsH,EAAcQ,MAAO,UACrEP,UAAgC1D,EAAWgE,OAAO,CAAE7H,KAAMuH,EAAwBO,MAAO,qBAEzF,IAAMC,QAAoBnE,EAAU/J,KAAKrM,EAAY5I,OACrD6T,EAAOW,KAAK2O,GAEZ3D,EAAe5W,EAAY5I,OAC3B6iB,IACAE,IACAhO,GAAW,GACXZ,IACA,MAAO/X,GACP4mB,EAAY5mB,OAEf,kBAlBsB,OAAAikB,EAAAnE,MAAA,KAAAlf,YAAA,GAoBjBmX,EAAchS,uBAAY,kBAAMgd,GAAmB,KAAQ,IAEjE,OACEnZ,eAACoO,GAAS,CAACC,QAASuO,EAAmBtO,QAASH,EAAY7N,SAC1DC,gBAACyC,OAAG,CAAC9C,MAAOC,GAAOsB,UAAUnB,SAAA,CAC3BN,eAACyH,QAAI,CAACzG,QAAQ,YAAWV,SAAC,iDAE1BN,eAACgD,OAAG,CAAC9C,MAAOC,GAAOwN,WAAWrN,SAC5BN,eAACW,UAAM,CACLC,MAAM,SACNC,MAAO7G,EAAME,OAAOxB,QACpBoI,UAAW9G,EAAME,OAAOnC,MACxBgJ,QAAS0O,EACTnI,SAAUwH,YC7DT3O,GAASc,WAAWC,OAAO,CACtCO,UAAW,CACTH,QAAS,OACToM,IAAK,IAEPC,WAAY,CACVrM,QAAS,OACTC,cAAe,MACfC,eAAgB,WAChBkM,IAAK,K,qkBCHF,IAAME,GAAkC,WAC7C,IAAM5T,EAAQ0F,KACRmO,EAASC,KACT0L,EAAiB5Z,4BAAkB8Y,IACnCJ,EAAexc,yBAAe2c,IACpCnd,EAAsDC,yBAAeud,IAAgCrd,EAAAC,IAAAJ,EAAA,GAA9F8hB,EAAoB3hB,EAAA,GAAEyd,EAAqBzd,EAAA,GAQ5C0S,EAAc,WAAH,OAAe+K,GAAsB,IAEtD,OACElZ,eAACoO,GAAS,CAACC,QAAS+O,EAAsB9O,QAASH,EAAY7N,SAC7DC,gBAACyC,OAAG,CAAC9C,MAAOC,GAAOsB,UAAUnB,SAAA,CAC3BN,eAACyH,QAAI,CAACzG,QAAQ,YAAWV,SAAC,mDAE1BC,gBAACyC,OAAG,CAAC9C,MAAOC,GAAOwN,WAAWrN,SAAA,CAC5BN,eAACW,UAAM,CACLE,MAAO7G,EAAME,OAAOqU,OACpBvN,QAAQ,OACRJ,MAAM,WACNG,QAASoN,IAEXnO,eAACW,UAAM,CACLC,MAAM,WACNG,QAtBmB,WAC3ByY,GAAe,SAAAhc,GAAY,OAAArD,MAAA,GAAUqD,GAAY,IAAExD,MAAOse,OAC1DY,GAAsB,GACtBrL,EAAOW,KAAK,0CAoBJ3N,MAAO7G,EAAME,OAAOxB,QACpBoI,UAAW9G,EAAME,OAAOnC,iB,qkBC3B7B,IAEMwK,GAAiB,WAC5B,IAAAjH,EAAgCC,yBAAemd,IAAWjd,EAAAC,IAAAJ,EAAA,GAAnDsH,EAAWnH,EAAA,GAAEqe,EAAQre,EAAA,GAC5BqJ,EAAwCvJ,yBAAekd,IAAkB1T,EAAArJ,IAAAoJ,EAAA,GAAlEwT,EAAYvT,EAAA,GAAEsY,EAAetY,EAAA,GAC9B2X,EAAe5gB,yBAAe8c,IAC9B0E,EAAqBxhB,yBAAe+c,IACpChd,EAAsBC,yBAAeC,IAErCyd,EAAiBrd,uBAAY,SAACnC,GAA6B,IAADujB,EAC9DF,EAAgBrjB,GAChB8f,GAAS,SAAAtc,GAAY,OAAArD,MAAA,GAAUqD,GAAY,IAAExD,aAE7C,IAAMwjB,EAA2B,OAAXD,EAAGE,eAAQ,EAARF,EAAUG,cAAc,4BAC7CF,GACFA,EAAiBG,aAAa,UAAW3jB,EAAMgK,WAGjDnI,EAAoBrB,IAlBS,cAkBcR,KAC1C,IAUH,MAAO,CACLsI,eATqBnG,uBAAY,WACjC,OAAOyG,EAAY5I,QAClB,CAAC4I,EAAY5I,QAQdwf,iBACArU,WAPiBhJ,uBAAY,WAC7B,OAAOpB,KAAKC,UAAU4H,EAAY5I,SAAWe,KAAKC,UAAUsd,KAC3D,CAAC1V,EAAY5I,MAAO0iB,EAAcY,M,qkBC2DxBxP,OAhFf,WACE,IAAAxS,EAAgCC,yBAAeqiB,IAAsBniB,EAAAC,IAAAJ,EAAA,GAA9DuiB,EAAQpiB,EAAA,GAAEqiB,EAAWriB,EAAA,GAEtB+S,EAAOrS,uBAAY,SAACgL,EAAiB4W,GACzC,IAAMC,EAAyB7jB,GAAA,CAC7BhF,IAAI,IAAIgmB,MAAOC,kBAAkBlP,WACjClL,QAAS,UACTid,SAAU,IACV9W,WACG4W,GAGDF,EAASK,OAAM,SAAAC,GAAe,OAAIA,EAAgBhX,UAAYA,OAChE2W,GAAY,SAAAK,GAAe,SAAAjT,OAAAC,KAAQgT,GAAe,CAAEH,OAEpDI,YAAW,kBAAMC,EAAOL,EAAW7oB,MAAK6oB,EAAWC,aAEpD,IAkDGI,EAASliB,uBAAY,SAACmiB,GAC1BR,EAAYD,EAAS5S,QAAO,SAAA9D,GAAO,OAAIA,EAAQhS,KAAOmpB,QACrD,IAEH,MAAO,CACL9P,OACA9V,QAtDc,SAACyO,EAAiB4W,GAChC,IAAMC,EAAyB7jB,GAAA,CAC7BhF,IAAI,IAAIgmB,MAAOC,kBAAkBlP,WACjClL,QAAS,UACTid,SAAU,IACV9W,WACG4W,GAGDF,EAASK,OAAM,SAAAC,GAAe,OAAIA,EAAgBhX,UAAYA,OAChE2W,GAAY,SAAAK,GAAe,SAAAjT,OAAAC,KAAQgT,GAAe,CAAEH,OAEpDI,YAAW,kBAAMC,EAAOL,EAAW7oB,MAAK6oB,EAAWC,YA2CrDpkB,KAvCW,SAACsN,EAAiB4W,GAC7B,IAAMC,EAAyB7jB,GAAA,CAC7BhF,IAAI,IAAIgmB,MAAOC,kBAAkBlP,WACjClL,QAAS,OACTid,SAAU,IACV9W,WACG4W,GAGDF,EAASK,OAAM,SAAAC,GAAe,OAAIA,EAAgBhX,UAAYA,OAChE2W,GAAY,SAAAK,GAAe,SAAAjT,OAAAC,KAAQgT,GAAe,CAAEH,OAEpDI,YAAW,kBAAMC,EAAOL,EAAW7oB,MAAK6oB,EAAWC,YA4BrD7nB,MAxBY,SAAC+Q,EAAiB4W,GAC9B,IAAMC,EAAyB7jB,GAAA,CAC7BhF,IAAI,IAAIgmB,MAAOC,kBAAkBlP,WACjClL,QAAS,QACTid,SAAU,IACV9W,WACG4W,GAGDF,EAASK,OAAM,SAAAC,GAAe,OAAIA,EAAgBhX,UAAYA,OAChE2W,GAAY,SAAAK,GAAe,SAAAjT,OAAAC,KAAQgT,GAAe,CAAEH,OAEpDI,YAAW,kBAAMC,EAAOL,EAAW7oB,MAAK6oB,EAAWC,YAarDI,W,oBC3FS9f,GAAiBC,eAAK,CACjCxI,IAAK,+BACLyI,SAAS,IAGE8f,GAA8B/f,eAAK,CAC9CxI,IAAK,8BACLyI,QAAS,KAGE+f,GAAuBhgB,eAAK,CACvCxI,IAAK,uBACLyI,QAAS,CACPggB,OAAO,EACPpS,UAAW,GACXqS,gBAAgB,EAChBC,eAAgB,MAIPC,GAA4BpgB,eAAK,CAC5CxI,IAAK,4BACLyI,QAAS,KAGEogB,GAAqBrgB,eAAK,CACrCxI,IAAK,qBACLyI,QAAS,KCtBEgB,GAA2B,WACtC,IAAMzF,EAAQ0F,KACRC,EAAoBC,4BAAkBC,IACtCC,EAAuBF,4BAAkBG,IAU/C,OACEC,eAACC,WAAI,CAACC,MAAOC,GAAOC,cAAeC,UAAW,EAAEC,SAC9CC,gBAACC,UAAM,CAACC,SAAO,EAACC,QAAS,EAAEJ,SAAA,CACzBN,eAACW,UAAM,CACLC,MAAM,SACNC,MAAO7G,EAAME,OAAOxB,QACpBoI,UAAW9G,EAAME,OAAOnC,MACxBgJ,QAfa,WACnBpB,GAAkB,MAgBdK,eAACW,UAAM,CACLK,QAAQ,OACRJ,MAAM,4BACNC,MAAO7G,EAAME,OAAOb,KACpB0H,QAjBqB,WAC3BjB,GAAqB,YAuBnBK,GAASc,WAAWC,OAAO,CAC/Bd,cAAe,CACbe,OAAQ,GACRC,QAAS,EACTC,aAAc,EACdE,cAAe,MACfC,eAAgB,cC7CP3B,GAAwBrB,eAAK,CACxCxI,IAAK,gCACLyI,SAAS,IAGE4Q,GAA2B7Q,eAAK,CAC3CxI,IAAK,mCACLyI,SAAS,ICPE0B,GAASc,WAAWC,OAAO,CACtCO,UAAW,CACTH,QAAS,OACToM,IAAK,IAEPC,WAAY,CACVrM,QAAS,OACTC,cAAe,MACf+N,SAAU,OACV9N,eAAgB,WAChBkM,IAAK,K,qkBCCF,IAAM6B,GAAwD,SAAHrQ,GAAiC,IAA3B4f,EAAmB5f,EAAnB4f,oBAChE9kB,EAAQ0F,KACRmO,EAASC,KACP0B,EAAgBuP,KAAhBvP,YACFwP,EAAkBljB,yBAAe0iB,IACjCS,EAAgBnjB,yBAAe8iB,IACrCtjB,EAAgCC,yBAAe8T,IAAyB5T,EAAAC,IAAAJ,EAAA,GAAjEwT,EAASrT,EAAA,GAAEsT,EAAUtT,EAAA,GAC5BqJ,EAA0BvJ,yBAAesE,IAAsBkF,EAAArJ,IAAAoJ,EAAA,GAAxDiJ,EAAMhJ,EAAA,GAAEiJ,EAAOjJ,EAAA,GAChBma,EAAe9G,KAEf3I,EAAoBtT,uBAAY,WACpC4S,GAAW,GAEX,IAAMoQ,EAA6ChlB,MAAA,GAC9C6kB,GAAe,IAClBI,cAAeH,IAGjBH,EACG7P,KAAKkQ,GACLnY,MAAK,WACJ6G,EAAOW,KAAK,qDAEZgB,EAAY2P,GACZhR,OAEDjH,OAAM,SAAA9Q,GACL8oB,EAAa9oB,GACb+X,OAED/G,SAAQ,kBAAM2H,GAAW,QAC3B,CAACiQ,EAAiBC,IAEf9Q,EAAc,WAAH,OAAeH,GAAQ,IAExC,OACEhO,eAACoO,GAAS,CAACC,QAASN,EAAQO,QAASH,EAAY7N,SAC9CwO,EACG9O,eAACyE,GAAO,CAACrB,KAAK,4CACd7C,gBAACyC,OAAG,CAAC9C,MAAOC,GAAOsB,UAAUnB,SAAA,CAC7BN,eAACyH,QAAI,CAACzG,QAAQ,YAAWV,SAAC,iDAE1BC,gBAACyC,OAAG,CAAC9C,MAAOC,GAAOwN,WAAWrN,SAAA,CAC5BN,eAACW,UAAM,CACLE,MAAO7G,EAAME,OAAOqU,OACpBvN,QAAQ,OACRJ,MAAM,WACNG,QAASoN,IAEXnO,eAACW,UAAM,CACLC,MAAM,SACNC,MAAO7G,EAAME,OAAOxB,QACpBoI,UAAW9G,EAAME,OAAOnC,MACxBgJ,QAAS0O,EACTnI,SAAUwH,aCjEX3O,GAASc,WAAWC,OAAO,CACtCO,UAAW,CACTH,QAAS,OACToM,IAAK,IAEPC,WAAY,CACVrM,QAAS,OACTC,cAAe,MACfC,eAAgB,WAChBkM,IAAK,KCJIE,GAAkC,WAC7C,IAAM5T,EAAQ0F,KACRmO,EAASC,KACfxS,EAA0BC,yBAAewE,IAAyBtE,EAAAC,IAAAJ,EAAA,GAA3DyS,EAAMtS,EAAA,GAAEuS,EAAOvS,EAAA,GACdwS,EAAmB8Q,KAAnB9Q,eAQFE,EAAc,WAAH,OAAeH,GAAQ,IAExC,OACEhO,eAACoO,GAAS,CAACC,QAASN,EAAQO,QAASH,EAAY7N,SAC/CC,gBAACyC,OAAG,CAAC9C,MAAOC,GAAOsB,UAAUnB,SAAA,CAC3BN,eAACyH,QAAI,CAACzG,QAAQ,YAAWV,SAAC,mDAE1BC,gBAACyC,OAAG,CAAC9C,MAAOC,GAAOwN,WAAWrN,SAAA,CAC5BN,eAACW,UAAM,CACLE,MAAO7G,EAAME,OAAOqU,OACpBvN,QAAQ,OACRJ,MAAM,WACNG,QAASoN,IAEXnO,eAACW,UAAM,CACLC,MAAM,WACNG,QAtBmB,WAC3BkN,IACAD,GAAQ,GACRH,EAAOW,KAAK,0CAoBJ3N,MAAO7G,EAAME,OAAOxB,QACpBoI,UAAW9G,EAAME,OAAOnC,iBCnCvBgI,GAA2BvB,eAAK,CAC3CxI,IAAK,mCACLyI,SAAS,ICFE0B,GAASc,WAAWC,OAAO,CACtCO,UAAW,CACTH,QAAS,OACToM,IAAK,IAEPC,WAAY,CACVrM,QAAS,OACTC,cAAe,MACfC,eAAgB,WAChBkM,IAAK,GAEP2R,QAAS,CACP/d,QAAS,OACTE,eAAgB,gBAChByH,WAAY,Y,qkBCRT,IAAMqW,GAA+B,WAAO,IAADC,EAAAC,EAC1CxlB,EAAQ0F,KACN2K,EAAaC,KAAbD,SACR/O,EAA0BC,yBAAekkB,IAAyBhkB,EAAAC,IAAAJ,EAAA,GAA3DyS,EAAMtS,EAAA,GAAEuS,EAAOvS,EAAA,GACtBqJ,EAAwCvJ,yBAAemkB,IAAmB3a,EAAArJ,IAAAoJ,EAAA,GAAnE6a,EAAY5a,EAAA,GAAE6a,EAAe7a,EAAA,GACpCkB,EAAwC1K,yBAAeskB,IAAuB1Z,EAAAzK,IAAAuK,EAAA,GAAvE6Z,EAAY3Z,EAAA,GAAE4Z,EAAe5Z,EAAA,GAC9B4J,EAAQjU,yBAAe+iB,IAC7BmB,EAA8CzkB,yBAAe0kB,IAAsBC,EAAAxkB,IAAAskB,EAAA,GAA5EG,EAAgBD,EAAA,GAAEE,EAAiBF,EAAA,GAC1CG,EAAsD9kB,yBAAe+kB,IAA0BC,EAAA7kB,IAAA2kB,EAAA,GAAxFG,EAAoBD,EAAA,GAAEE,EAAqBF,EAAA,GAC5CG,EAAoB5kB,yBAAe8iB,IACnCI,EAAkBljB,yBAAe0iB,IACjCmC,EAA8B/gB,4BAAkBgf,IAChDgC,EAAQ9D,8BAAoB4C,IAmB5BmB,EAAY,WAChB,OAAOH,EAAkBI,MACvB,SAACC,GAAQ,OAAKA,EAASC,UAAYrB,EAAaqB,SAAWD,EAASE,UAAUC,WAAavB,EAAasB,UAAUC,aAIhHC,EAAoB,SAACre,EAA2B7M,GACpD2pB,GAAgB,SAAApiB,GAAY,OAAArD,MAAA,GAAUqD,GAAY,GAAAuF,IAAA,GAAGD,EAAQ7M,QASzDkY,EAAc,WAClBH,GAAQ,GACR4S,KAGF,OACErgB,gBAAC6N,GAAS,CAACC,QAASN,EAAQO,QAASH,EAAY7N,SAAA,CAC/CC,gBAACyC,OAAG,CAAC9C,MAAOC,GAAOsB,UAAUnB,SAAA,CAC3BN,eAACyH,QAAI,CAACzG,QAAQ,YAAWV,SAAC,4CAEzBwf,GACC9f,eAACohB,GAAY,CACXxL,OAAO,QACPzO,QAAQ,sEAIZ5G,gBAACC,UAAM,CAACN,MAAOC,GAAOkf,QAAS3e,QAAS,GAAGJ,SAAA,CACzCN,eAACqhB,EAAOC,QAAO,CACbrd,MAAM,WACNsd,YAAa5B,EAAaqB,QAAUrB,EAAaqB,QAAQ9U,WAAa,GACtEsV,OAAQ,kBAAMpB,GAAkB,MAElCpgB,eAAC6D,GAAS,CACR3D,MAAO,CAAEwB,KAAM,GACfuC,MAAM,mBACNhO,MAAO0pB,EAAatT,UACpBhI,aAAc,SAACjB,GAAY,OAAK+d,EAAkB,YAAa/d,IAC/DkB,UAAW,QAGftE,eAACuG,SAAK,CACJrG,MAAOC,GAAOkf,QACd7Y,UAAW6D,EAAW,SAAW,MACjC3J,QAAS2J,EAAW,EAAI,GAAG/J,SAE3BN,eAACqhB,EAAOC,QAAO,CACbrd,MAAM,aACNsd,aAAmC,OAAtBhC,EAAAI,EAAasB,gBAAS,EAAtB1B,EAAwB2B,WAAY,GACjDM,OAAQ,kBAAMf,GAAsB,IACpCvgB,MAAO,CAAEuhB,SAAU,YAGvBzhB,eAAC6D,GAAS,CACRI,MAAM,UACNhO,MAAmB,MAAZ0pB,OAAY,EAAZA,EAAcviB,MACrBiH,aAAc,SAACjB,GAAY,OAAK+d,EAAkB,QAAS/d,IAC3Dse,gBAAgB,iBAGlBnhB,gBAACyC,OAAG,CAAC9C,MAAOC,GAAOwN,WAAWrN,SAAA,CAC5BN,eAACW,UAAM,CACLE,MAAO7G,EAAME,OAAOqU,OACpBvN,QAAQ,OACRJ,MAAM,WACNG,QAASoN,IAEXnO,eAACW,UAAM,CACLC,MAAM,SACN0G,UAjEU,WAAgB,IAADqa,EAE3BC,EADa,6BACa7a,KAAK4Y,EAAaviB,OAClD,UAAUuiB,EAAatT,WAAasT,EAAaqB,SAAkD,KAAjB,OAAtBW,EAAAhC,EAAasB,gBAAS,EAAtBU,EAAwB3jB,aAAoB4jB,IAAiB9B,GA8DtG+B,GACX9gB,QA7FS,WACjB,GAAI8f,IACFd,GAAgB,OACX,CACL,IAAM+B,EAAgC,CACpCzV,UAAuB,MAAZsT,OAAY,EAAZA,EAActT,UACzBjP,MAAmB,MAAZuiB,OAAY,EAAZA,EAAcviB,MACrB6jB,UAAuB,MAAZtB,OAAY,EAAZA,EAAcsB,UACzBD,QAAqB,MAAZrB,OAAY,EAAZA,EAAcqB,SAGzBL,GAA4B,SAACoB,GAAuB,SAAA7W,OAAAC,KAAU4W,GAAuB,CAAED,OACvF9T,GAAQ,GACR4S,MAiFM/f,MAAO7G,EAAME,OAAOxB,QACpBoI,UAAW9G,EAAME,OAAOnC,cAI9BiI,eAACqhB,EAAOW,MAAK,CACXphB,MAAM,sBACNmN,OAAQoS,EACR7R,QAAS,kBAAM8R,GAAkB,IACjC1Z,MAAOqJ,EAAM/a,KAAI,SAAAitB,GAAI,MAAK,CACxB9sB,GAAI8sB,EAAKrR,cACTvE,UAAW4V,EAAKrR,cAAc1E,WAC9BgW,KAAMD,EACNE,WAAYF,EAAKrR,gBAAkB+O,EAAaqB,YAElDoB,SAAU,SAACC,EAAUC,GACnB1C,GAAgB,SAAApiB,GAAY,OAAArD,MAAA,GAAUqD,GAAY,IAAEwjB,QAASqB,OAC7DvC,GAAgBC,GAAgB,MAGpC/f,eAACqhB,EAAOW,MAAK,CACXphB,MAAM,mCACNmN,OAAQyS,EACRlS,QAAS,kBAAMmS,GAAsB,IACrC/Z,MAAqC,OAAhC8Y,EAAER,EAAgBL,qBAAc,EAA9Ba,EAAgCxqB,KAAI,SAAA+rB,GAAQ,IAAAwB,EAAA,MAAK,CACtDptB,GAAI4rB,EAAS/iB,WACbqO,UAAW0U,EAASG,SACpBgB,KAAMnB,EACNoB,WAAYpB,EAAS/iB,cAAqC,OAA3BukB,EAAK5C,EAAasB,gBAAS,EAAtBsB,EAAwBvkB,gBAE9DokB,SAAU,SAACE,EAAGJ,GACZtC,GAAgB,SAAApiB,GAAY,OAAArD,MAAA,GAAUqD,GAAY,IAAEyjB,UAAWiB,OAC/DpC,GAAgBC,GAAgB,UCjJ7BN,GAA2BjhB,eAAK,CAC3CxI,IAAK,2BACLyI,SAAS,IAGEihB,GAAqBlhB,eAAmB,CACnDxI,IAAK,qBACLyI,QAAS,CACP4N,UAAW,GACXjP,MAAO,GACP6jB,UAAW,KACXD,QAAS,KAIAnB,GAAyBrhB,eAAK,CACzCxI,IAAK,kCACLyI,SAAS,IAGE6hB,GAA4B9hB,eAAK,CAC5CxI,IAAK,oCACLyI,SAAS,IAGEwhB,GAAwBzhB,eAAK,CACxCxI,IAAK,gCACLyI,SAAS,IC5BE0B,GAASc,WAAWC,OAAO,CACtCO,UAAW,CACTH,QAAS,OACToM,IAAK,IAEPC,WAAY,CACVrM,QAAS,OACTC,cAAe,MACf+N,SAAU,OACV9N,eAAgB,WAChBkM,IAAK,KCLI8U,GAA8B,WACzC,IAAMxoB,EAAQ0F,KACdpE,EAA0BC,yBAAeknB,IAAgChnB,EAAAC,IAAAJ,EAAA,GAAlEyS,EAAMtS,EAAA,GAAEuS,EAAOvS,EAAA,GAChBinB,EAAe5mB,yBAAe6mB,IAC9BC,EAAmBhjB,4BAAkBgf,IACrCiE,EAAoB/F,8BAAoB6F,IAaxCxU,EAAc,WAAH,OAAeH,GAAQ,IAExC,OACEhO,eAACoO,GAAS,CAACC,QAASN,EAAQO,QAASH,EAAY7N,SAC/CC,gBAACyC,OAAG,CAAC9C,MAAOC,GAAOsB,UAAUnB,SAAA,CAC3BC,gBAACkH,QAAI,CAACzG,QAAQ,YAAWV,SAAA,CAAC,wDAAgDoiB,EAAazB,UAAUnN,QAAQ,aAAc,IAAI,gBAAc4O,EAAa1B,QAAQ,OAE9JzgB,gBAACyC,OAAG,CAAC9C,MAAOC,GAAOwN,WAAWrN,SAAA,CAC5BN,eAACW,UAAM,CACLE,MAAO7G,EAAME,OAAOqU,OACpBvN,QAAQ,OACRJ,MAAM,WACNG,QAASoN,IAEXnO,eAACW,UAAM,CACLC,MAAM,UACNG,QA3BiB,WACzB6hB,GAAiB,SAACE,GAIhB,OAHyBA,EAAc7X,QACrC,SAAC8V,GAAQ,OAAMA,EAASC,UAAY0B,EAAa1B,SAAaD,EAASE,UAAUC,WAAawB,EAAazB,gBAI/G4B,IACA7U,GAAQ,IAoBAnN,MAAO7G,EAAME,OAAOxB,QACpBoI,UAAW9G,EAAME,OAAOnC,iBCzCvB0qB,GAAkCjkB,eAAK,CAClDxI,IAAK,kCACLyI,SAAS,IAQEkkB,GAA4BnkB,eAAgC,CACvExI,IAAK,4BACLyI,QAAS,CACPuiB,QAAS,EACTC,UAAW,MCTF8B,GAAgC,WAC3C,IAAM/oB,EAAQ0F,KACN2K,EAAaC,KAAbD,SACF4U,EAAgBnjB,yBAAe8iB,IAC/BoE,EAAsBpjB,4BAAkB6iB,IACxCQ,EAAkBrjB,4BAAkB+iB,IAU1C,OACEpiB,gBAAC2iB,WAAS,CAAA5iB,SAAA,CACRC,gBAAC2iB,WAAUC,OAAM,CAAA7iB,SAAA,EACb+J,GAAYrK,eAACkjB,WAAUE,MAAK,CAAA9iB,SAAC,gBAC/BN,eAACkjB,WAAUE,MAAK,CAAA9iB,SAAC,YACjBN,eAACkjB,WAAUE,MAAK,CAAA9iB,SAAC,eACf+J,GAAYrK,eAACkjB,WAAUE,MAAK,CAAA9iB,SAAC,aAGhC2e,EAAcjqB,KAAI,SAACquB,EAAMC,GAAK,OAC7B/iB,gBAAC2iB,WAAUK,IAAG,CAAaC,cAAc,OAAMljB,SAAA,EACzC+J,GAAYrK,eAACkjB,WAAUO,KAAI,CAAAnjB,SAAE+iB,EAAKhX,YACtCrM,eAACkjB,WAAUO,KAAI,CAAAnjB,SAAE+iB,EAAKrC,UACtBhhB,eAACkjB,WAAUO,KAAI,CAAAnjB,SAAE+iB,EAAKpC,UAAUC,YAC9B7W,GAAYrK,eAACkjB,WAAUO,KAAI,CAAAnjB,SAAE+iB,EAAKjmB,QACpC4C,eAACkjB,WAAUO,KAAI,CACbC,UAAQ,EACR3iB,QAAS,kBAzBSkhB,EAyBgBoB,EAAKrC,QAzBP2C,EAyBgBN,EAAKpC,UAAUC,SAxBvE+B,EAAgB,CACdhC,UAAW0C,EACX3C,QAASiB,SAEXe,GAAoB,GALK,IAACf,EAAc0B,GA0BhCzjB,MAAO,CAAE8b,SAAU,cAAe5a,QAAS,GAAId,SAE/CN,eAACoM,WAAsB,CAACnS,KAAK,YAAYuN,KAAM,GAAItH,MAAO,CAAEW,MAAO7G,EAAME,OAAO9D,aAVhEktB,U,0lBCrBrB,IAAMvE,GAAsB,WACjC,IAAAzjB,EAA4CC,yBAAegjB,IAA4B9iB,EAAAC,IAAAJ,EAAA,GAAhFyV,EAActV,EAAA,GAAEuT,EAAiBvT,EAAA,GACxCqJ,EAA8CvJ,yBAAeijB,IAAqBzZ,EAAArJ,IAAAoJ,EAAA,GAA3Eka,EAAeja,EAAA,GAAE6e,EAAkB7e,EAAA,GACpC4a,EAAe7jB,yBAAe8iB,IAC9BiF,EAA0BjkB,4BAAkBgf,IAE5C3Q,EAAiB9R,uBAAY,WACjCqT,EAAYuB,KACX,CAACA,IAEEvB,EAAc,SAACsU,GACnB,IAAQ1E,EAAsC0E,EAAtC1E,cAAkBJ,EAAe+E,KAAKD,EAAqBE,IAEnEhF,EAAgBP,MAAQW,EAAcnoB,OAAS,EAC/C+X,EAAiB7U,MAAC,GAAK6kB,GAAe,IAAEI,mBACxCwE,EAAmB5E,GACnB6E,EAAwBzE,IAGpBja,EAAahJ,uBAAY,WAC7B,IAAM8nB,EAA6B9pB,MAAA,GAC9B6kB,GAAe,IAClBI,cAAeO,IAEjB,OAAO5kB,KAAKC,UAAU+V,KAAoBhW,KAAKC,UAAUipB,KACxD,CAACjF,EAAiBW,IAErB,MAAO,CACLnQ,cACAvB,iBACA9I,eCtCS5G,GAAiBC,eAAK,CACjCxI,IAAK,6BACLyI,SAAS,IAGEylB,GAA6B1lB,eAAK,CAC7CxI,IAAK,6BACLyI,QAAS,KAGE0lB,GAAsB3lB,eAAK,CACtCxI,IAAK,sBACLyI,QAAS,KAGE2lB,GAA4B5lB,eAAK,CAC5CxI,IAAK,4BACLyI,QAAS,KAGE4lB,GAA4B7lB,eAAK,CAC5CxI,IAAK,4BACLyI,SAAS,ICjBEgB,GAA2B,WACtC,IAAMzF,EAAQ0F,KACRC,EAAoBC,4BAAkB0kB,IACtCxkB,EAAuBF,4BAAkB2kB,IAU/C,OACEvkB,eAACC,WAAI,CAACC,MAAOC,GAAOC,cAAeC,UAAW,EAAEC,SAC9CC,gBAACC,UAAM,CAACC,SAAO,EAACC,QAAS,EAAEJ,SAAA,CACzBN,eAACW,UAAM,CACLC,MAAM,SACNC,MAAO7G,EAAME,OAAOxB,QACpBoI,UAAW9G,EAAME,OAAOnC,MACxBgJ,QAfa,WACnBpB,GAAkB,MAgBdK,eAACW,UAAM,CACLK,QAAQ,OACRJ,MAAM,4BACNC,MAAO7G,EAAME,OAAOb,KACpB0H,QAjBqB,WAC3BjB,GAAqB,YAuBnBK,GAASc,WAAWC,OAAO,CAC/Bd,cAAe,CACbe,OAAQ,GACRC,QAAS,EACTC,aAAc,EACdE,cAAe,MACfC,eAAgB,cC7CPrB,GAASc,WAAWC,OAAO,CACtCO,UAAW,CACTH,QAAS,OACToM,IAAK,IAEPC,WAAY,CACVrM,QAAS,OACTC,cAAe,MACf+N,SAAU,OACV9N,eAAgB,WAChBkM,IAAK,KCAI6B,GAAwD,SAAHrQ,GAAwB,IAAlBslB,EAAUtlB,EAAVslB,WAChExqB,EAAQ0F,KACRmO,EAASC,KACP0B,EAAgBiV,KAAhBjV,YACFkV,EAAiB5oB,yBAAeqoB,IACtC7oB,EAAgCC,yBAAeopB,IAA2BlpB,EAAAC,IAAAJ,EAAA,GAAnEwT,EAASrT,EAAA,GAAEsT,EAAUtT,EAAA,GAC5BqJ,EAA0BvJ,yBAAe+oB,IAAwBvf,EAAArJ,IAAAoJ,EAAA,GAA1DiJ,EAAMhJ,EAAA,GAAEiJ,EAAOjJ,EAAA,GAChBma,EAAe9G,KAEf3I,EAAoBtT,uBAAY,WACpC4S,GAAW,GAEXyV,EACGhW,KAAKkW,EAAeE,eACpB5d,MAAK,WACJ6G,EAAOW,KAAK,qDAEZgB,EAAYkV,GACZvW,OAEDjH,OAAM,SAAA9Q,GACL8oB,EAAa9oB,GACb+X,OAED/G,SAAQ,kBAAM2H,GAAW,QAC3B,CAAC2V,IAEEvW,EAAc,WAAH,OAAeH,GAAQ,IAExC,OACEhO,eAACoO,GAAS,CAACC,QAASN,EAAQO,QAASH,EAAY7N,SAC9CwO,EACG9O,eAACyE,GAAO,CAACrB,KAAK,4CACd7C,gBAACyC,OAAG,CAAC9C,MAAOC,GAAOsB,UAAUnB,SAAA,CAC7BN,eAACyH,QAAI,CAACzG,QAAQ,YAAWV,SAAC,iDAE1BC,gBAACyC,OAAG,CAAC9C,MAAOC,GAAOwN,WAAWrN,SAAA,CAC5BN,eAACW,UAAM,CACLE,MAAO7G,EAAME,OAAOqU,OACpBvN,QAAQ,OACRJ,MAAM,WACNG,QAASoN,IAEXnO,eAACW,UAAM,CACLC,MAAM,SACNC,MAAO7G,EAAME,OAAOxB,QACpBoI,UAAW9G,EAAME,OAAOnC,MACxBgJ,QAAS0O,EACTnI,SAAUwH,aC1DXwV,GAA0B9lB,eAAK,CAC1CxI,IAAK,gCACLyI,SAAS,IAGEkmB,GAA6BnmB,eAAK,CAC7CxI,IAAK,mCACLyI,SAAS,ICPE0B,GAASc,WAAWC,OAAO,CACtCO,UAAW,CACTH,QAAS,OACToM,IAAK,IAEPC,WAAY,CACVrM,QAAS,OACTC,cAAe,MACfC,eAAgB,WAChBkM,IAAK,KCJIE,GAAkC,WAC7C,IAAM5T,EAAQ0F,KACRmO,EAASC,KACfxS,EAA0BC,yBAAegpB,IAA2B9oB,EAAAC,IAAAJ,EAAA,GAA7DyS,EAAMtS,EAAA,GAAEuS,EAAOvS,EAAA,GACdwS,EAAmBwW,KAAnBxW,eAQFE,EAAc,WAAH,OAAeH,GAAQ,IAExC,OACEhO,eAACoO,GAAS,CAACC,QAASN,EAAQO,QAASH,EAAY7N,SAC/CC,gBAACyC,OAAG,CAAC9C,MAAOC,GAAOsB,UAAUnB,SAAA,CAC3BN,eAACyH,QAAI,CAACzG,QAAQ,YAAWV,SAAC,mDAE1BC,gBAACyC,OAAG,CAAC9C,MAAOC,GAAOwN,WAAWrN,SAAA,CAC5BN,eAACW,UAAM,CACLE,MAAO7G,EAAME,OAAOqU,OACpBvN,QAAQ,OACRJ,MAAM,WACNG,QAASoN,IAEXnO,eAACW,UAAM,CACLC,MAAM,WACNG,QAtBmB,WAC3BkN,IACAD,GAAQ,GACRH,EAAOW,KAAK,0CAoBJ3N,MAAO7G,EAAME,OAAOxB,QACpBoI,UAAW9G,EAAME,OAAOnC,iBCnCvBwsB,GAA6B/lB,eAAK,CAC7CxI,IAAK,mCACLyI,SAAS,ICOEgmB,GAAoB,WAC/B,IAAAnpB,EAA4CC,yBAAe2oB,IAA2BzoB,EAAAC,IAAAJ,EAAA,GAA/EyV,EAActV,EAAA,GAAEuT,EAAiBvT,EAAA,GACxCqJ,EAA4CvJ,yBAAe4oB,IAAoBpf,EAAArJ,IAAAoJ,EAAA,GAAxE+f,EAAc9f,EAAA,GAAE+f,EAAiB/f,EAAA,GAElCkJ,EAAiB9R,uBAAY,WACjCqT,EAAYuB,KACX,CAACA,IAEEvB,EAAc,SAACuV,GACnB,IAAMC,EAAkBD,EAAsBE,WAAWha,QAAO,SAACia,GAE/D,OADwBH,EAAsBH,cAAc9D,MAAK,SAACqE,GAAM,OAAKA,EAAOpa,SAAWma,EAAOna,aAIlGqa,EAAmC,CACvCR,cAAeG,EAAsBH,cACrCK,WAAYD,GAGdhW,EAAkBoW,GAClBN,EAAkBM,IAGdjgB,EAAahJ,uBAAY,WAC7B,OAAOpB,KAAKC,UAAU+V,KAAoBhW,KAAKC,UAAU6pB,KACxD,CAACA,IAEJ,MAAO,CACLrV,cACAvB,iBACA9I,eCpCS3J,GAAsBgD,eAAK,CACtCxI,IAAK,qBACLyI,QAAS,CACPrC,OAAQ,KACRE,eAAe,EACfD,YAAajB,IAA0BT,InFYX,mBoFnBnBijB,GAAwBpf,eAAsB,CACzDxI,IAAK,mBACLyI,QAAS,KAGE4mB,GAAiB7mB,eAAK,CACjCxI,IAAK,iBACLyI,QAAS,KCPE1C,ICAcyC,eAAK,CAC9BxI,IAAK,SACLyI,QCHsE,IAAIlE,IFC3CiE,eAAK,CACpCxI,IAAK,eACLyI,QAASrD,OGFEa,GAAiBuC,eAAK,CACjCxI,IAAK,aACLyI,QAAS5G,M,SCGE4H,GAAgD,SAAHP,GAAsB,IAAhBoB,EAAQpB,EAARoB,SACtD+J,EAAaC,KAAbD,SAER,OACErK,eAACQ,UAAM,CACLob,MAAI,EACJ0J,SAAS,WACTC,OAAQlb,EAAW,GAAK,GACxBmb,MAAOnb,EAAW,EAAI,GACtB5D,QAAQ,MAAKnG,SAEZA,K,+kBCdA,IAAMmlB,GAA4B,WACvC,IAAQ1Q,EAAaD,KAAbC,SACAzS,EAAmBC,KAAnBD,eACRG,EAAkDC,mBAAS,IAAGgD,EAAAhK,IAAA+G,EAAA,GAAvDijB,EAAiBhgB,EAAA,GAAEigB,EAAoBjgB,EAAA,GAExC9C,EAAcN,IACdsjB,EAAoDF,EACtD,CAAExL,IAAKwL,GACPvL,EAAQ,KASZ,OAPAjV,qBAAU,WACRtC,EAAYyY,SACVtG,EAASnS,EAAYyY,QAAS,SAC3BrU,MAAK,SAAAnO,GAAgB8sB,EAAqB9sB,MAC1CqO,MAAM2O,QAAQzf,SAClB,CAACwM,EAAYyY,UAGdrb,eAAC6lB,WAAe,CACd9J,OAAQ6J,EACR1lB,MAAK/F,MAAA,GACAgG,GAAO8U,OAAK,IACfnT,gBAAgB,2BAA4Bc,EAAYoB,UAAS,KAAKpB,EAAYoB,UAAS,MAC3F8hB,QAAS,OAMX3lB,GAASc,WAAWC,OAAO,CAC/B+T,MAAO,CACLvT,KAAM,EACNF,eAAgB,SAChBukB,UAAW,a,SCpCF5lB,GAASc,WAAWC,OAAO,CACtCO,UAAW,CACTJ,aAAc,GACdmb,YAAa,EACblb,QAAS,OACT2H,WAAY,SACZzH,eAAgB,SAChBmR,OAAQ,GACRxJ,MAAO,eAETvI,MAAO,CACLolB,WAAY,M,qkBCET,IAAM1V,GAA4B,SAAHpR,GAOpB,IANhBkE,EAAIlE,EAAJkE,KACAvC,EAAK3B,EAAL2B,MACAolB,EAAc/mB,EAAd+mB,eACAC,EAAShnB,EAATgnB,UACA/Z,EAAOjN,EAAPiN,QAAOga,EAAAjnB,EACP8B,eAAO,IAAAmlB,EAAG,SAAQA,EAEZnsB,EAAQ0F,KAER0mB,EAAkB,CACtBC,OAAMlsB,MAAA,GACDgG,GAAOsB,WAAS,IACnBK,gBAAsB,MAALjB,IAAS7G,EAAME,OAAO/B,QACvC0I,MAAO,cACP0b,YAAa,eACV0J,GAELK,SAAQnsB,MAAA,GACHgG,GAAOsB,WAAS,IACnBK,gBAAiB,cACjBjB,MAAY,MAALA,IAAS7G,EAAME,OAAO9D,MAC7BmmB,YAAkB,MAAL1b,IAAS7G,EAAME,OAAO9D,OAChC6vB,IAELjlB,GAEIulB,EAAUpsB,MAAA,GACXgG,GAAOS,OAAK,IACfC,MAAmB,WAAZG,EAAuBhH,EAAME,OAAOnC,MAAa,MAAL8I,IAAS7G,EAAME,OAAO9D,OACtE8vB,GAGL,OACElmB,eAACwmB,WAAS,CAACzlB,QAASoL,EAASjM,MAAOkmB,EAAgB9lB,SAClDN,eAACyH,WAAI,CAACvH,MAAOqmB,EAAYvlB,QAAQ,aAAYV,SAC1C8C,OCtCIqjB,GAAwC,SAAHvnB,GAI3C,IAHL0B,EAAK1B,EAAL0B,MACA8lB,EAAQxnB,EAARwnB,SACA3lB,EAAO7B,EAAP6B,QAIM6B,GAAcN,EAFOC,KAAnBD,kBAIR,OACE/B,gBAAC+a,oBAAgB,CACfC,cAAe,GACfrb,MAAO,CACL4B,gBAAoBc,EAAYoB,UAAS,KACzC2iB,kBAAmB,GACnBC,gBAAiB,EACjBvlB,aAAc,GAEhBN,QAASA,EAAQT,SAAA,CAEjBC,gBAACC,UAAM,CAACiG,QAAQ,UAAUC,MAAM,SAAQpG,SAAA,CACtCN,eAACyH,QAAI,CAAC5G,MAAO+B,EAAYoB,UAAW9D,MAAO,CAAEuJ,WAAY,MAAOC,SAAU,IAAKpJ,SAC5EM,IAEHZ,eAAC6G,WAAa,CAAC5M,KAAK,OAAO4G,MAAO+B,EAAYoB,UAAWwD,KAAM,QAEjExH,eAACyH,QAAI,CAAC5G,MAAO+B,EAAYoB,UAAW9D,MAAO,CAAEwJ,SAAU,IAAKpJ,SACzDomB,QCtCIvmB,GAASc,WAAWC,OAAO,CACtC2lB,SAAU,CACRvlB,QAAS,OACTD,aAAc,EACdK,KAAM,GAERU,YAAa,CACXd,QAAS,OACToM,IAAK,K,qkBCEF,IAAMoZ,GAAoC,SAAH5nB,GAA+C,IAAzCoB,EAAQpB,EAARoB,SAAUtK,EAAGkJ,EAAHlJ,IAAKgmB,EAAQ9c,EAAR8c,SAAUyF,EAAQviB,EAARuiB,SACrEznB,EAAQ0F,KACN2K,EAAaC,KAAbD,SAER,OACErK,eAACC,WAAI,CACHC,MAAK/F,MAAA,GACAgG,GAAO0mB,UAAQ,IAClB/kB,gBAAiB9H,EAAME,OAAOpB,eAC9B4I,KAAM,EACN+f,SAAkB,MAARA,IAAY,IACtBzF,SAAkB,MAARA,IAAY,IACtBja,aAAcsI,EAAW,GAAK,GAC9BjJ,QAASiJ,EAAW,EAAI,IACxB/J,SAEFN,eAACC,WAAK8mB,QAAO,CAAC7mB,MAAOC,GAAOiC,YAAY9B,SACrCA,KAZMtK,ICJFgxB,GAAoC,SAAH9nB,GAMvC,IALLoB,EAAQpB,EAARoB,SACAwO,EAAS5P,EAAT4P,UACAmY,EAAO/nB,EAAP+nB,QACAC,EAAShoB,EAATgoB,UACAC,EAAWjoB,EAAXioB,YAEQ9c,EAAaC,KAAbD,SAER,OACErK,eAACgD,OAAG,CAAC9C,MAAOmK,EAAWlK,GAAOinB,gBAAkBjnB,GAAOsB,UAAUnB,SAC9DwO,EACG9O,eAACyE,GAAO,CAACrB,KAAM+jB,IACfF,EACEjnB,eAACqnB,GAAS,CAACjkB,KAAM8jB,IACjB5mB,KAMNH,GAASc,WAAWC,OAAO,CAC/BO,UAAW,CACT6N,SAAU,OACV/N,cAAe,MACf+lB,SAAU,EACV5Z,IAAK,IAEP0Z,gBAAiB,CACf9X,SAAU,SACVgY,SAAU,EACV5Z,IAAK,MC9BIvK,GAAwC,SAAHjE,GAO3C,IANLkE,EAAIlE,EAAJkE,KACA9C,EAAQpB,EAARoB,SACArK,EAAKiJ,EAALjJ,MACAqN,EAAYpE,EAAZoE,aACAgD,EAAQpH,EAARoH,SAAQihB,EAAAroB,EACRsoB,wBAAgB,IAAAD,GAAQA,EAIlBE,GAAenlB,EAFMC,KAAnBD,kBAGFolB,EAAeF,GAAoBvxB,IAAUA,EAEnD,OACE+J,eAACC,WAAI,CAACC,MAAOC,GAAOC,cAAcE,SAChCC,gBAACN,WAAK8mB,QAAO,CAAC7mB,MAAOC,GAAOiC,YAAY9B,SAAA,CACtCC,gBAACN,WAAK8mB,QAAO,CAAC7mB,MAAOC,GAAOwnB,kBAAkBrnB,SAAA,CAC5CN,eAACyH,QAAI,CAACzG,QAAQ,YAAWV,SAAE8C,KACzBkD,GAAYtG,eAAC4nB,WAAM,CAAC/mB,MAAO4mB,EAAazjB,UAAW/N,MAAOA,EAAO4xB,cAAevkB,OAEnFhD,GAAYonB,GACX1nB,eAACC,WAAK8mB,QAAO,CAAC7mB,MAAOC,GAAO2nB,aAAaxnB,SACtCA,UAQPH,GAASc,WAAWC,OAAO,CAC/Bd,cAAe,CACb2nB,eAAgB,EAChBC,iBAAkB,GAClB3mB,aAAc,GAEhBe,YAAa,CACXZ,eAAgB,gBAChBE,KAAM,GAERimB,kBAAmB,CACjBpmB,cAAe,MACfC,eAAgB,gBAChBE,KAAM,EACNumB,YAAa,EACbC,aAAc,GAEhBJ,aAAc,CACZ/lB,aAAc,EACdC,UAAW,MC7DF7B,GAASc,WAAWC,OAAO,CACtCO,UAAW,CACT0H,MAAO,OACPnH,UAAW,K,qkBCWR,I,GAAMmmB,GAAwC,SAAHjpB,GAQ3C,IAPL+E,EAAK/E,EAAL+E,MACAhO,EAAKiJ,EAALjJ,MACA0jB,EAAQza,EAARya,SACArS,EAAQpI,EAARoI,SACA8gB,EAAQlpB,EAARkpB,SACAC,EAASnpB,EAATmpB,UACAC,EAAWppB,EAAXopB,YAEMtuB,EAAQ0F,KAER6oB,EAAeC,mBAAQ,kBAAc,MAARJ,IAAYE,EAAY/wB,QAAQkxB,cAAgB,IAAG,IAChFC,EAAaF,mBAAQ,kBAAe,MAATH,IAAaC,EAAY/wB,QAAQkxB,cAAgB,KAAI,IAEhFhP,EAAUtf,MAAA,GACXgG,GAAOsB,WAAS,IACnBK,gBAAiB9H,EAAME,OAAOjB,gBAC9B4H,MAAO7G,EAAME,OAAOZ,WAGtB,OACE0G,eAAC2oB,kBAAe,CACdC,UAAU,QACVtyB,OAAO,QACPL,MAAOA,EACPgO,MAAOA,EACPqD,SAAUA,EACVpH,MAAOuZ,EACPoP,UAAWN,EACXO,QAASJ,EACTK,uBAAuB,EACvBC,cAAc,EACdrP,SAAUA,K,6mBCzCT,SAASsP,GAAcriB,GAC5B,IAAM5M,EAAQ0F,KACN4C,EAAmBC,KAAnBD,eACF4mB,EAAeptB,yBAAeqtB,IAE9BvmB,EAAcN,IAEpB,OACEtC,eAACgD,OAAG,CAAC9C,MAAO,CAAEwB,KAAM,EAAGN,QAAS,GAAId,SAClCC,gBAAC6oB,WAAuBjvB,MAAA,GAClByM,GAAK,IACTyiB,sBAAuB,CAAEvnB,gBAAiB9H,EAAME,OAAOlB,eAAgB0I,KAAM,EAAG4nB,WAAY,IAAKhpB,SAAA,CACjGN,eAACiD,cAAU,CAAA3C,SACTN,eAACgD,OAAG,CAAC9C,MAAO,CAAEkB,QAAS,EAAGM,KAAM,GAAIpB,SAClCN,eAACupB,WAAcpvB,GAAA,GAAKyM,QAGxB5G,eAACgD,OAAG,CAACwmB,GAAI,EAAElpB,SACTN,eAACypB,GAAY,CACXP,aAAcA,EACd1hB,KAAM,GACN3G,MAAO+B,EAAYoB,oBC5BxB,IAAK0lB,GAAe,SAAfA,GAAe,OAAfA,EAAe,YAAfA,EAAe,uBAAfA,EAAe,+BAAfA,EAAe,UAAfA,EAAe,yBAAfA,EAAe,kCAAfA,EAAe,oBAAfA,EAAe,2BAAfA,EAAe,4BAAfA,EAAe,kCAAfA,EAAe,2BAAfA,EAAe,qBAAfA,EAAe,oBAAfA,EAAe,sBAAfA,EAAe,sCAAfA,EAAe,cAAfA,EAAe,kBAAfA,EAAe,2BAAfA,EAAe,qCAAfA,EAAe,iCAAfA,EAAe,KAwBdC,IAAsBC,GAAA,GAAA7mB,wCAAA6mB,GAChCF,GAAgBG,KAAO,CAAEpvB,KAAMivB,GAAgBG,KAAK3d,aACpDwd,GAAgBI,UAAY,CAAErvB,KAAMivB,GAAgBI,UAAU5d,aAC9Dwd,GAAgBK,SAAW,CAAEtvB,KAAMivB,GAAgBK,SAAS7d,aAC5Dwd,GAAgBM,IAAM,CAAEvvB,KAAMivB,GAAgBM,IAAI9d,aAClDwd,GAAgBO,eAAiB,CAAExvB,KAAMivB,GAAgBO,eAAe/d,aACxEwd,GAAgBQ,cAAgB,CAAEzvB,KAAMivB,GAAgBQ,cAAche,aACtEwd,GAAgBS,WAAa,CAAE1vB,KAAMivB,GAAgBS,WAAWje,aAChEwd,GAAgBU,YAAc,CAAE3vB,KAAMivB,GAAgBU,YAAYle,aAClEwd,GAAgBW,WAAa,CAAE5vB,KAAMivB,GAAgBW,WAAWne,aAChEwd,GAAgBY,eAAiB,CAAE7vB,KAAMivB,GAAgBY,eAAepe,aAAYnJ,oBAAA6mB,GACpFF,GAAgBa,WAAa,CAAE9vB,KAAMivB,GAAgBa,WAAWre,aAChEwd,GAAgBc,MAAQ,CAAE/vB,KAAMivB,GAAgBc,MAAMte,aACtDwd,GAAgBe,SAAW,CAAEhwB,KAAMivB,GAAgBe,SAASve,aAC5Dwd,GAAgBgB,SAAW,CAAEjwB,KAAMivB,GAAgBgB,SAASxe,aAC5Dwd,GAAgBiB,iBAAmB,CAAElwB,KAAMivB,GAAgBiB,iBAAiBze,cAGlE0e,GAAqB7nB,oBAAA,GAC/B2mB,GAAgBmB,MAAQ,CAAEpwB,KAAMivB,GAAgBmB,MAAM3e,aACtDwd,GAAgBoB,QAAU,CAAErwB,KAAMivB,GAAgBoB,QAAQ5e,aAC1Dwd,GAAgBqB,YAAc,CAAEtwB,KAAMivB,GAAgBqB,YAAY7e,aAClEwd,GAAgBsB,iBAAmB,CAAEvwB,KAAMivB,GAAgBsB,iBAAiB9e,aAC5Ewd,GAAgB7E,eAAiB,CAAEpqB,KAAMivB,GAAgB7E,eAAe3Y,a,mBC7C9D/L,GAASc,WAAWC,OAAO,CACtCO,UAAW,CACTC,KAAM,EACNN,QAAS,GACTsM,IAAK,IAEPud,OAAQ,CACN3pB,QAAS,OACTC,cAAe,cACf0H,WAAY,SACZ0J,OAAQ,OACRvR,QAAS,M,qkBCEN,IAAM8pB,GAA2C,SAAHhsB,GAA+C,IAAzCisB,EAAgBjsB,EAAhBisB,iBAAkBC,EAAelsB,EAAfksB,gBACrEvd,EAASC,KACTkP,EAAc5E,KACpB9c,EAA0BC,yBAAe4tB,IAAiB1tB,EAAAC,IAAAJ,EAAA,GAAnD+vB,EAAK5vB,EAAA,GAAE6vB,EAAQ7vB,EAAA,GAEtB8vB,0BACEpvB,uBAAY,WACLivB,EAAgBA,kBAClBpkB,MAAK,SAACwkB,GAAG,OAAKF,GAAS,SAAA9tB,GAAY,OAAArD,MAAA,GAAUqD,GAAiBguB,SAC9DtkB,MAAM8V,KACR,KAGL,IAAMna,EAAe,SAAC5I,EAA+BhE,GACnDq1B,GAAS,SAACG,GAAS,OAAAtxB,MAAA,GAAWsxB,GAAS,GAAA1oB,IAAA,GAAG9I,EAAOhE,QAoBnD,OACEsK,gBAAA2C,YAAA,CAAA5C,SAAA,CACEC,gBAACyC,OAAG,CAAC9C,MAAOC,GAAOsB,UAAUnB,SAAA,CAC3BN,eAAC6D,GAAS,CACR5N,MAAOo1B,EAAMK,MACbrnB,aAAc,SAACjB,GAAI,OAAKP,EAAa,QAASO,IAC9CuoB,QAAS,SAAC/kB,GAAK,OAAK5G,eAAC4rB,WAAIzxB,GAAA,CAAC0xB,IAAE,EAACD,MAAI,EAAC3xB,KAAK,SAAY2M,KACnD3C,MAAM,0BAERjE,eAAC6D,GAAS,CACR5N,MAAOo1B,EAAMS,SACbznB,aAAc,SAACjB,GAAI,OAAKP,EAAa,WAAYO,IACjDuoB,QAAS,SAAC/kB,GAAK,OAAK5G,eAAC4rB,WAAIzxB,GAAA,CAAC0xB,IAAE,EAACD,MAAI,EAAC3xB,KAAK,YAAe2M,KACtD3C,MAAM,aAERjE,eAAC6D,GAAS,CACR5N,MAAOo1B,EAAMU,SACb1nB,aAAc,SAACjB,GAAI,OAAKP,EAAa,WAAYO,IACjDuoB,QAAS,SAAC/kB,GAAK,OAAK5G,eAAC4rB,WAAIzxB,GAAA,CAAC0xB,IAAE,EAACD,MAAI,EAAC3xB,KAAK,YAAe2M,KACtD3C,MAAM,qBAERjE,eAAC6D,GAAS,CACR5N,MAAOo1B,EAAMW,SACb3nB,aAAc,SAACjB,GAAI,OAAKP,EAAa,WAAYO,IACjDuoB,QAAS,SAAC/kB,GAAK,OAAK5G,eAAC4rB,WAAIzxB,GAAA,CAAC0xB,IAAE,EAACD,MAAI,EAAC3xB,KAAK,YAAe2M,KACtD3C,MAAM,qBAERjE,eAAC6D,GAAS,CACR5N,MAAOo1B,EAAMY,UACb5nB,aAAc,SAACjB,GAAI,OAAKP,EAAa,YAAaO,IAClDuoB,QAAS,SAAC/kB,GAAK,OAAK5G,eAAC4rB,WAAIzxB,GAAA,CAAC0xB,IAAE,EAACD,MAAI,EAAC3xB,KAAK,aAAgB2M,KACvD3C,MAAM,sBAERjE,eAAC6D,GAAS,CACR5N,MAAOo1B,EAAMa,OACb7nB,aAAc,SAACjB,GAAI,OAAKP,EAAa,SAAUO,IAC/CuoB,QAAS,SAAC/kB,GAAK,OAAK5G,eAAC4rB,WAAIzxB,GAAA,CAAC0xB,IAAE,EAACD,MAAI,EAAC3xB,KAAK,UAAa2M,KACpD3C,MAAM,mBAERjE,eAAC6D,GAAS,CACR5N,MAAOo1B,EAAMc,SACb9nB,aAAc,SAACjB,GAAI,OAAKP,EAAa,WAAYO,IACjDuoB,QAAS,SAAC/kB,GAAK,OAAK5G,eAAC4rB,WAAIzxB,GAAA,CAAC0xB,IAAE,EAACD,MAAI,EAAC3xB,KAAK,YAAe2M,KACtD3C,MAAM,wBAGVjE,eAACosB,GAAM,CAAA9rB,SACLN,eAACgD,OAAG,CAAC9C,MAAOC,GAAO8qB,OAAO3qB,SACxBN,eAACW,UAAM,CAACK,QAAQ,OAAOJ,MAAM,SAASG,QAjE3B,WACjB,IAAMsrB,EAAqC,CACzCN,SAAUV,EAAMU,SAChBE,UAAWZ,EAAMY,UACjBD,SAAUX,EAAMW,SAChBN,MAAOL,EAAMK,MACbS,SAAUd,EAAMc,SAChBD,OAAQb,EAAMa,OACdJ,SAAUT,EAAMS,SAChBQ,QAASjB,EAAMiB,SAGZnB,EAAiBlc,KAAKod,GACxBrlB,MAAK,kBAAM6G,EAAOW,KAAK,sCACvBtH,MAAM8V,c,8kBCzCN,IAAMuP,GAAoB,WAC/B,SAAAA,EACmBC,EACAC,GACjB32B,IAAA,KAAAy2B,GAAA,KAFiBC,MAAW,KACXC,aA2BlB,OA1BG12B,IAAAw2B,EAAA,EAAAv2B,IAAA,OAAAC,MAAA,eAAAy2B,EAAA1X,MAEJ,UAAY2X,GACV,IAAMC,EAAUzyB,MAAA,GACXwyB,GAAM,IACTE,WAAY,WACZC,QAAQ,IAGJC,EAA0B,CAC9BP,IAAQl1B,KAAKk1B,IAAG,aAChBQ,OAAQ,OACRC,KAAML,EACNM,QAAS,CACP,eAAgB,sCAIpBC,QAAmC71B,KAAKm1B,WAAWW,QAAQL,GAAnDM,EAAUF,EAAVE,WAAYJ,EAAIE,EAAJF,KAEpB,OAAQI,GACN,KAAKz7B,kBAAe07B,GAAI,OAAOL,EAC/B,KAAKr7B,kBAAe27B,WAAY,MAAM,IAAItV,GAAmB,MAAJgV,OAAI,EAAJA,EAAMO,mBAC/D,KAAK57B,kBAAe67B,aAAc,MAAM,IAAIlW,GAA4B,MAAJ0V,OAAI,EAAJA,EAAMO,mBAC1E,QAAS,MAAM,IAAI1V,OAEtB,gBAAA7B,GAAA,OAAAyW,EAAAxW,MAAA,KAAAlf,YA1BG,MA0BHu1B,EA9B8B,G,qkBCA1B,IAAMmB,GAAyB,WACpC,SAAAA,EACmBlB,EACAmB,EACAlB,GACjB32B,IAAA,KAAA43B,GAAA,KAHiBlB,MAAW,KACXmB,yBAA8B,KAC9BlB,aAiClB,OAhCG12B,IAAA23B,EAAA,EAAA13B,IAAA,OAAAC,MAAA,eAAAy2B,EAAA1X,MAEJ,UAAY2X,GACV,IAAMC,EAAUzyB,MAAA,GACXwyB,GAAM,IACTiB,uBAAwBt2B,KAAKq2B,yBAGzBZ,EAA0B,CAC9BP,IAAQl1B,KAAKk1B,IAAG,kCAChBQ,OAAQ,OACRC,KAAML,EACNM,QAAS,CACP,eAAgB,wBAIpBC,QAAmC71B,KAAKm1B,WAAWW,QAAQL,GAAnDM,EAAUF,EAAVE,WAAYJ,EAAIE,EAAJF,KAEpB,OAAQI,GACN,KAAKz7B,kBAAe07B,GAAI,OAAOh2B,KAAKu2B,WAAWZ,GAC/C,KAAKr7B,kBAAek8B,UAAW,MAAM,IAAI7V,GAAmB,MAAJgV,OAAI,EAAJA,EAAM9lB,SAC9D,KAAKvV,kBAAe67B,aAAc,MAAM,IAAIlW,GAA4B,MAAJ0V,OAAI,EAAJA,EAAM9lB,SAC1E,QAAS,MAAM,IAAI2Q,OAEtB,gBAAA7B,GAAA,OAAAyW,EAAAxW,MAAA,KAAAlf,YAzBG,IAyBH,CAAAhB,IAAA,aAAAC,MAED,SAAY83B,GACV,OAAA5zB,MAAA,GACK4zB,EAAoB7L,MAAI,IAC3BxlB,aAAcqxB,EAAoB7L,KAAKhsB,YAE1Cw3B,EArCmC,GCAzBM,GAAa,WACxB,SAAAA,EACmBxB,EACAyB,GACjBn4B,IAAA,KAAAk4B,GAAA,KAFiBxB,MAAW,KACXyB,cAsBlB,OArBGl4B,IAAAi4B,EAAA,EAAAh4B,IAAA,qBAAAC,MAAA,eAAAi4B,EAAAlZ,MAEJ,UAA0B2X,GACxB,IAAAQ,QAAmC71B,KAAK22B,YAAYb,QAAQ,CAC1DJ,OAAQ,OACRR,IAAQl1B,KAAKk1B,IAAG,+BAChBS,KAAMN,IAHAU,EAAUF,EAAVE,WAAYJ,EAAIE,EAAJF,KAMpB,OAAQI,GACN,KAAKz7B,kBAAe07B,GAClB,IAAKL,EACH,MAAM,IAAIlV,GAEZ,IAAKkV,EAAKh2B,OACR,MAAM,IAAIsgB,GAEZ,OAAO0V,EACT,KAAKr7B,kBAAe67B,aAAc,MAAM,IAAIzV,GAC5C,QAAS,MAAM,IAAIF,OAEtB,gBAAA7B,GAAA,OAAAiY,EAAAhY,MAAA,KAAAlf,YArBG,MAqBHg3B,EAzBuB,GCDbG,GAAoB,WAC/B,SAAAA,EACmB3B,EACA4B,GACjBt4B,IAAA,KAAAq4B,GAAA,KAFiB3B,MAAW,KACX4B,iBAelB,OAdGr4B,IAAAo4B,EAAA,EAAAn4B,IAAA,gBAAAC,MAAA,eAAAo4B,EAAArZ,MAEJ,UAAqB2X,GACnB,IAAM2B,QAAqBh3B,KAAK82B,eAAehB,QAAQ,CACrDJ,OAAQ,OACRR,IAAQl1B,KAAKk1B,IAAG,0BAChBG,WAGF,OAAQ2B,EAAajB,YACnB,KAAKz7B,kBAAe07B,GAAI,OAAOgB,EAAarB,KAC5C,KAAKr7B,kBAAe67B,aAAc,MAAM,IAAIzV,GAC5C,QAAS,MAAM,IAAIF,OAEtB,gBAAA7B,GAAA,OAAAoY,EAAAnY,MAAA,KAAAlf,YAdG,MAcHm3B,EAlB8B,GCApBI,GAAkB,WAC7B,SAAAA,EACmB/B,EACA4B,GACjBt4B,IAAA,KAAAy4B,GAAA,KAFiB/B,MAAW,KACX4B,iBAclB,OAbGr4B,IAAAw4B,EAAA,EAAAv4B,IAAA,SAAAC,MAAA,eAAAu4B,EAAAxZ,MAEJ,UAAc2X,GAMZ,cAL6Br1B,KAAK82B,eAAehB,QAAQ,CACvDJ,OAAQ,OACRR,IAAQl1B,KAAKk1B,IAAG,kCAChBG,YAHMU,YAMN,KAAKz7B,kBAAe07B,GAAI,MACxB,KAAK17B,kBAAe67B,aAAc,MAAM,IAAIzV,GAC5C,QAAS,MAAM,IAAIF,OAEtB,gBAAA7B,GAAA,OAAAuY,EAAAtY,MAAA,KAAAlf,YAbG,MAaHu3B,EAjB4B,G,qkBCDxB,IAAME,GAAkB,WAC7B,SAAAA,EACmBjC,EACAC,GACjB32B,IAAA,KAAA24B,GAAA,KAFiBjC,MAAW,KACXC,aAelB,OAdG12B,IAAA04B,EAAA,EAAAz4B,IAAA,WAAAC,MAAA,eAAAy4B,EAAA1Z,MAEJ,UAAgB2X,GACd,IAAMI,EAA0B,CAC9BP,IAAQl1B,KAAKk1B,IAAG,uBAChBQ,OAAQ,OACRC,KAAI9yB,MAAA,GACCwyB,GAAM,IACTgC,KAAM,QACNC,WAAY,0BAIVt3B,KAAKm1B,WAAWW,QAAQL,MAC/B,gBAAA9W,GAAA,OAAAyY,EAAAxY,MAAA,KAAAlf,YAdG,MAcHy3B,EAlB4B,G,qkBCAxB,IAAMI,GAAmB,WAC9B,SAAAA,EACmBrC,EACAC,GACjB32B,IAAA,KAAA+4B,GAAA,KAFiBrC,MAAW,KACXC,aAelB,OAdG12B,IAAA84B,EAAA,EAAA74B,IAAA,WAAAC,MAAA,eAAAy4B,EAAA1Z,MAEJ,UAAgB2X,GACd,IAAMI,EAA0B,CAC9BP,IAAQl1B,KAAKk1B,IAAG,uBAChBQ,OAAQ,OACRC,KAAI9yB,MAAA,GACCwyB,GAAM,IACTgC,KAAM,SACNC,WAAY,0BAIVt3B,KAAKm1B,WAAWW,QAAQL,MAC/B,gBAAA9W,GAAA,OAAAyY,EAAAxY,MAAA,KAAAlf,YAdG,MAcH63B,EAlB6B,GCEnBC,GAAqB,WAChC,SAAAA,EACmBtC,EACAyB,GACjBn4B,IAAA,KAAAg5B,GAAA,KAFiBtC,MAAW,KACXyB,cAmBlB,OAlBGl4B,IAAA+4B,EAAA,EAAA94B,IAAA,YAAAC,MAAA,eAAA84B,EAAA/Z,MAEJ,UAAiB2X,GACf,IAAAQ,QAAmC71B,KAAK22B,YAAYb,QAAQ,CAC1DJ,OAAQ,MACRR,IAAQl1B,KAAKk1B,IAAG,gBAChBG,WAHMU,EAAUF,EAAVE,WAAYJ,EAAIE,EAAJF,KAMpB,OAAQI,GACN,KAAKz7B,kBAAe07B,GAClB,IAAKL,EACH,MAAM,IAAIlV,GAEZ,OAAOkV,EACT,KAAKr7B,kBAAe67B,aAAc,MAAM,IAAIzV,GAC5C,QAAS,MAAM,IAAIF,OAEtB,gBAAA7B,GAAA,OAAA8Y,EAAA7Y,MAAA,KAAAlf,YAlBG,MAkBH83B,EAtB+B,G,ICAE,WAClC,SAAAE,EACmBxC,EACAyB,GACjBn4B,IAAA,KAAAk5B,GAAA,KAFiBxC,MAAW,KACXyB,cACfl4B,IAAAi5B,EAAA,EAAAh5B,IAAA,cAAAC,MAAA,eAAAg5B,EAAAja,MAEJ,UAAmB2X,GACjB,IAAAQ,QAAmC71B,KAAK22B,YAAYb,QAAQ,CAC1DJ,OAAQ,MACRR,IAAQl1B,KAAKk1B,IAAG,6BAChBG,WAHMU,EAAUF,EAAVE,WAAYJ,EAAIE,EAAJF,KAMpB,OAAQI,GACN,KAAKz7B,kBAAe07B,GAClB,IAAKL,EACH,MAAM,IAAIlV,GAEZ,OAAOkV,EACT,KAAKr7B,kBAAe67B,aAAc,MAAM,IAAIzV,GAC5C,QAAS,MAAM,IAAIF,OAEtB,gBAAA7B,GAAA,OAAAgZ,EAAA/Y,MAAA,KAAAlf,YAlBG,MAJ8B,G,sBCDvBk4B,GAAoB,WAC/B,SAAAA,EACmB1C,EACA4B,GACjBt4B,IAAA,KAAAo5B,GAAA,KAFiB1C,MAAW,KACX4B,iBAsBlB,OArBGr4B,IAAAm5B,EAAA,EAAAl5B,IAAA,SAAAC,MAAA,eAAAk5B,EAAAna,MAEJ,UAAc2X,GACgCA,EAApCyC,iBAAR,IAA6BxC,EAAU7I,KAAK4I,EAAM3I,IAElD,GAAI4I,EAAWyC,aAAezC,EAAW0C,UACvC,MAAM,IAAInX,GAGZ,IAAAoX,QAAmCj4B,KAAK82B,eAAehB,QAAQ,CAC7DJ,OAAQ,OACRR,IAAQl1B,KAAKk1B,IAAG,gBAChBG,OAAQC,IAHFS,EAAUkC,EAAVlC,WAAYJ,EAAIsC,EAAJtC,KAMpB,OAAQI,GACN,KAAKz7B,kBAAe07B,GAAI,MACxB,KAAK17B,kBAAek8B,UAAW,MAAM,IAAI7V,GAAegV,GACxD,KAAKr7B,kBAAe67B,aAAc,MAAM,IAAIlW,GAC5C,QAAS,MAAM,IAAIO,OAEtB,gBAAA7B,GAAA,OAAAkZ,EAAAjZ,MAAA,KAAAlf,YArBG,MAqBHk4B,EAzB8B,GCCpBM,GAAmB,WAC9B,SAAAA,EACmBhD,EACAyB,GACjBn4B,IAAA,KAAA05B,GAAA,KAFiBhD,MAAW,KACXyB,cAqBlB,OApBGl4B,IAAAy5B,EAAA,EAAAx5B,IAAA,cAAAC,MAAA,eAAAw5B,EAAAza,MAEJ,UAAmB2X,GACjB,IAAAQ,QAAmC71B,KAAK22B,YAAYb,QAAQ,CAC1DJ,OAAQ,MACRR,IAAQl1B,KAAKk1B,IAAG,oCAChBG,WAHMU,EAAUF,EAAVE,WAAYJ,EAAIE,EAAJF,KAMpB,OAAQI,GACN,KAAKz7B,kBAAe07B,GAClB,IAAKL,EACH,MAAM,IAAIlV,GAGZ,OADAkV,EAAKyC,UAAezC,EAAKyC,UAAUpa,MAAM,KAAK,GAAE,IAAI2X,EAAKyC,UAAUpa,MAAM,KAAK,GAAGqa,UAAU,GACpF1C,EACT,KAAKr7B,kBAAeg+B,UAAW,OAAO,KACtC,KAAKh+B,kBAAe67B,aAAc,MAAM,IAAIzV,GAC5C,QAAS,MAAM,IAAIF,OAEtB,gBAAA7B,GAAA,OAAAwZ,EAAAvZ,MAAA,KAAAlf,YApBG,MAoBHw4B,EAxB6B,G,slBCAzB,IAAMK,GAAoB,WAC/B,SAAAA,EACmBrD,EACAyB,GACjBn4B,IAAA,KAAA+5B,GAAA,KAFiBrD,MAAW,KACXyB,cAkClB,OAjCGl4B,IAAA85B,EAAA,EAAA75B,IAAA,OAAAC,MAAA,eAAA65B,EAAA9a,MAEJ,UAAY2X,GACV,IAAQ+C,EAA6B/C,EAA7B+C,UAAc9C,EAAU7I,KAAK4I,EAAM3I,IAE3CmJ,QAAmC71B,KAAK22B,YAAYb,QAAQ,CAC1DJ,OAAQ,OACRR,IAAQl1B,KAAKk1B,IAAG,oCAChBS,KAAI9yB,MAAA,GACCyyB,GAAU,IACb8C,UAAWp4B,KAAKy4B,iBAAiBL,OAL7BrC,EAAUF,EAAVE,WAAYJ,EAAIE,EAAJF,KASpB,OAAQI,GACN,KAAKz7B,kBAAe07B,GAClB,IAAKL,EACH,MAAM,IAAIlV,GAEZ,OAAOkV,EACT,KAAKr7B,kBAAek8B,UAAW,MAAM,IAAI7V,GAAegV,GACxD,KAAKr7B,kBAAe67B,aAAc,MAAM,IAAIzV,GAC5C,QAAS,MAAM,IAAIF,OAEtB,gBAAA7B,GAAA,OAAA6Z,EAAA5Z,MAAA,KAAAlf,YAxBG,IAwBH,CAAAhB,IAAA,mBAAAC,MAED,SAAkB+5B,GAChB,IAAMC,GAAc,IAAI9U,MACrBsN,cACAvc,WACAyjB,UAAU,EAAG,GAEhB,OAAUK,EAAW1a,MAAM,KAAK,GAAE,IAAI2a,EAAcD,EAAW1a,MAAM,KAAK,OAC3Eua,EArC8B,G,qkBCD1B,IAAMK,GAAuB,WAClC,SAAAA,EACmB1D,EACAyB,GACjBn4B,IAAA,KAAAo6B,GAAA,KAFiB1D,MAAW,KACXyB,cAmClB,OAlCGl4B,IAAAm6B,EAAA,EAAAl6B,IAAA,MAAAC,MAAA,eAAAk6B,EAAAnb,MAEJ,UAAW2X,GACT,IAAAQ,QAAmC71B,KAAK22B,YAAYb,QAAQ,CAC1DJ,OAAQ,OACRR,IAAQl1B,KAAKk1B,IAAG,uBAChBS,KAAM,CACJmD,UAAWzD,EAAOyD,UAClBhjB,OAAMjT,MAAA,GACDwyB,EAAOvf,QAAM,IAChBsiB,UAAWp4B,KAAKy4B,iBAAiBpD,EAAOvf,OAAOsiB,gBAP7CrC,EAAUF,EAAVE,WAAYJ,EAAIE,EAAJF,KAYpB,OAAQI,GACN,KAAKz7B,kBAAe07B,GAClB,IAAKL,EACH,MAAM,IAAIlV,GAEZ,OAAOkV,EACT,KAAKr7B,kBAAey+B,cAAe,MAAM,IAAIpY,GAAegV,GAC5D,KAAKr7B,kBAAe67B,aAAc,MAAM,IAAIzV,GAC5C,QAAS,MAAM,IAAIF,OAEtB,gBAAA7B,GAAA,OAAAka,EAAAja,MAAA,KAAAlf,YAzBG,IAyBH,CAAAhB,IAAA,mBAAAC,MAED,SAAkB+5B,GAChB,IAAMC,GAAc,IAAI9U,MACrBsN,cACAvc,WACAyjB,UAAU,EAAG,GAEhB,OAAUK,EAAW1a,MAAM,KAAK,GAAE,IAAI2a,EAAcD,EAAW1a,MAAM,KAAK,OAC3E4a,EAtCiC,G,SCCvBI,GAAgB,WAC3B,SAAAA,EACmB9D,EACAC,GACjB32B,IAAA,KAAAw6B,GAAA,KAFiB9D,MAAW,KACXC,aAsBlB,OArBG12B,IAAAu6B,EAAA,EAAAt6B,IAAA,MAAAC,MAAA,eAAAs6B,EAAAvb,MAEJ,UAAW2X,GACT,IAAMS,EAAuB,CAC3BZ,IAAQl1B,KAAKk1B,IAAG,qBAChBQ,OAAQ,MACRL,UAGFQ,QAAmC71B,KAAKm1B,WAAWW,QAAQA,GAAnDC,EAAUF,EAAVE,WAAYJ,EAAIE,EAAJF,KAEpB,OAAQI,GACN,KAAKz7B,kBAAe07B,GAClB,IAAKL,EACH,MAAM,IAAIlV,GAEZ,OAAOkV,EACT,KAAKr7B,kBAAe67B,aAAc,MAAM,IAAIzV,GAC5C,KAAKpmB,kBAAek8B,UAAW,MAAM,IAAI7V,GAAegV,GACxD,QAAS,MAAM,IAAInV,OAEtB,gBAAA7B,GAAA,OAAAsa,EAAAra,MAAA,KAAAlf,YArBG,MAqBHs5B,EAzB0B,GCDhBE,GAAkB,WAC7B,SAAAA,EACmBhE,EACAC,GACjB32B,IAAA,KAAA06B,GAAA,KAFiBhE,MAAW,KACXC,aAsBlB,OArBG12B,IAAAy6B,EAAA,EAAAx6B,IAAA,SAAAC,MAAA,eAAAw6B,EAAAzb,MAEJ,UAAc2X,GACZ,IAAMS,EAAuB,CAC3BZ,IAAQl1B,KAAKk1B,IAAG,kBAChBQ,OAAQ,MACRL,UAGFQ,QAAmC71B,KAAKm1B,WAAWW,QAAQA,GAAnDC,EAAUF,EAAVE,WAAYJ,EAAIE,EAAJF,KAEpB,OAAQI,GACN,KAAKz7B,kBAAe07B,GAClB,IAAKL,EACH,MAAM,IAAIlV,GAEZ,OAAOkV,EACT,KAAKr7B,kBAAek8B,UAAW,MAAM,IAAI7V,GAAegV,GACxD,KAAKr7B,kBAAe67B,aAAc,MAAM,IAAIzV,GAC5C,QAAS,MAAM,IAAIF,OAEtB,gBAAA7B,GAAA,OAAAwa,EAAAva,MAAA,KAAAlf,YArBG,MAqBHw5B,EAzB4B,G,SCGlBE,GAAsB,WACjC,SAAAA,EACmBlE,EACAC,GACjB32B,IAAA,KAAA46B,GAAA,KAFiBlE,MAAW,KACXC,aAyBlB,OAxBG12B,IAAA26B,EAAA,EAAA16B,IAAA,WAAAC,MAAA,eAAA06B,EAAA3b,MAEJ,UAAgB2X,GACd,IAAMS,EAAuB,CAC3BZ,IAAQl1B,KAAKk1B,IAAG,eAChBQ,OAAQ,MACRL,UAGFQ,QAAmC71B,KAAKm1B,WAAWW,QAAQA,GAAnDC,EAAUF,EAAVE,WAAYJ,EAAIE,EAAJF,KAEpB,OAAQI,GACN,KAAKz7B,kBAAe07B,GAClB,IAAKL,GAAwB,kBAATA,EAClB,MAAM,IAAIlV,GAGZ,MAAI,CAAChlB,QAAK69B,aAAc79B,QAAK89B,cAAcxb,SAASsX,EAAOmE,UAClD7D,EAEH,mBAAoCA,EAC5C,KAAKr7B,kBAAe67B,aAAc,MAAM,IAAIzV,GAC5C,QAAS,MAAM,IAAIF,OAEtB,gBAAA7B,GAAA,OAAA0a,EAAAza,MAAA,KAAAlf,YAxBG,MAwBH05B,EA5BgC,G,uDCJtBK,GAA4B,WACvC,SAAAA,EACmBzI,EACA0I,GACjBl7B,IAAA,KAAAi7B,GAAA,KAFiBzI,cAAwB,KACxB0I,mBAqBlB,OApBGj7B,IAAAg7B,EAAA,EAAA/6B,IAAA,WAAAC,MAAA,eAAA06B,EAAA3b,MAEJ,UAAgB2X,GACd,IAAQsE,EAAoEtE,EAApEsE,WAAYC,EAAwDvE,EAAxDuE,WAAYC,EAA4CxE,EAA5CwE,aAC1BC,EADiErN,KAAK4I,EAAM3I,IAGlF,GAAIiN,EAAY,CACd,IAAMz6B,EAAQ,CACZC,UAAWa,KAAKgxB,YAAY/wB,QAC5Bb,QAASY,KAAKgxB,YAAYntB,MAAMg2B,IAG9B75B,KAAKgxB,YAAY+I,WAAW76B,IAAUvD,0BAAuBC,GAAGC,+BAClEi+B,EAAeE,UAAW,QAEnBJ,IACTE,EAAeE,UAAW,GAG5B,aAAah6B,KAAK05B,iBAAiBO,SAASH,MAC7C,gBAAAnb,GAAA,OAAA0a,EAAAza,MAAA,KAAAlf,YApBG,MAoBH+5B,EAxBsC,GCA5BS,GAAkB,WAC7B,SAAAA,EACmBR,EACAS,GACjB37B,IAAA,KAAA07B,GAAA,KAFiBR,mBAAkC,KAClCS,yBA2BlB,OA1BG17B,IAAAy7B,EAAA,EAAAx7B,IAAA,UAAAC,MAAA,eAAAy7B,EAAA1c,MAEJ,UAAe2X,GACb,IAAIgF,EAAsB,GAGxBA,EADE,CAAC5+B,QAAK69B,aAAc79B,QAAK89B,cAAcxb,SAASsX,EAAOmE,gBACrCx5B,KAAKm6B,uBAAuBF,SAAS5E,GAErDA,EAAOsE,WACKluB,oCAAA,GACXhQ,QAAK6+B,MAAQ,oEACb7+B,QAAK8+B,QAAU,gDACf9+B,QAAK++B,KAAO,uDACZ/+B,QAAKg/B,SAAW,oGAChBh/B,QAAKi/B,UAAY,6CACjBj/B,QAAKk/B,OAAS,kDACdl/B,QAAKm/B,SAAW,gFAChBn/B,QAAK69B,aAAe,IACpB79B,QAAK89B,aAAe,IACrBlE,EAAOmE,gBAEWx5B,KAAK05B,iBAAiBO,SAAS5E,GAIvD9Z,OAAOsf,KAAKR,EAAa,aAC1B,gBAAA1b,GAAA,OAAAyb,EAAAxb,MAAA,KAAAlf,YA1BG,MA0BHw6B,EA9B4B,GCClBY,GAA0B,WACrC,SAAAA,EACmB5F,EACAC,GACjB32B,IAAA,KAAAs8B,GAAA,KAFiB5F,MAAW,KACXC,aAuBlB,OAtBG12B,IAAAq8B,EAAA,EAAAp8B,IAAA,oBAAAC,MAAA,eAAAo8B,EAAArd,MAEJ,UAAyB2X,GACvB,IAAMS,EAAuB,CAC3BZ,IAAQl1B,KAAKk1B,IAAG,gCAChBQ,OAAQ,OACRL,UAGFQ,QAAmC71B,KAAKm1B,WAAWW,QAAQA,GAAnDC,EAAUF,EAAVE,WAAYJ,EAAIE,EAAJF,KAEpB,OAAQI,GACN,KAAKz7B,kBAAe07B,GAClB,IAAKL,EACH,MAAM,IAAIlV,GAED,MAAXlF,OAAOsf,MAAPtf,OAAOsf,KAAI,IAAOx+B,wBAAqBT,GAAGU,mBAAkB,IAAIq5B,EAAQ,UACxE,MACF,KAAKr7B,kBAAeg+B,UAAW,MAAM,IAAI1X,GACzC,KAAKtmB,kBAAe67B,aAAc,MAAM,IAAIzV,GAC5C,QAAS,MAAM,IAAIF,OAEtB,gBAAA7B,GAAA,OAAAoc,EAAAnc,MAAA,KAAAlf,YAtBG,MAsBHo7B,EA1BoC,GCC1BE,GAAc,WACzB,SAAAA,EACmB9F,EACAC,GACjB32B,IAAA,KAAAw8B,GAAA,KAFiB9F,MAAW,KACXC,aAoBlB,OAnBI12B,IAAAu8B,EAAA,EAAAt8B,IAAA,MAAAC,MAAA,eAAAs6B,EAAAvb,MAEL,YACE,IAAMoY,EAAuB,CAC3BZ,IAAQl1B,KAAKk1B,IAAG,mBAChBQ,OAAQ,OAGVG,QAAmC71B,KAAKm1B,WAAWW,QAAQA,GAAnDC,EAAUF,EAAVE,WAAYJ,EAAIE,EAAJF,KAEpB,OAAQI,GACN,KAAKz7B,kBAAe07B,GAClB,IAAKL,EACH,MAAM,IAAIlV,GAEZ,OAAOkV,EACT,KAAKr7B,kBAAe67B,aAAc,MAAM,IAAIzV,GAC5C,QAAS,MAAM,IAAIF,OAEtB,yBAAAyY,EAAAra,MAAA,KAAAlf,YAnBI,MAmBJs7B,EAvBwB,GCAdC,GAAmB,WAC9B,SAAAA,EACmB/F,EACAC,GACjB32B,IAAA,KAAAy8B,GAAA,KAFiB/F,MAAW,KACXC,aAqBlB,OApBI12B,IAAAw8B,EAAA,EAAAv8B,IAAA,SAAAC,MAAA,eAAAu8B,EAAAxd,MAEL,UAAc2X,GACZ,IAAMS,EAAuB,CAC3BZ,IAAQl1B,KAAKk1B,IAAG,sBAChBQ,OAAQ,MACRL,UAGFQ,QAAmC71B,KAAKm1B,WAAWW,QAAQA,GAAnDC,EAAUF,EAAVE,WAAYJ,EAAIE,EAAJF,KAEpB,OAAQI,GACN,KAAKz7B,kBAAe07B,GAClB,IAAKL,EACH,MAAM,IAAIlV,GAEZ,OAAOkV,EACT,KAAKr7B,kBAAe67B,aAAc,MAAM,IAAIzV,GAC5C,QAAS,MAAM,IAAIF,OAEtB,gBAAA7B,GAAA,OAAAuc,EAAAtc,MAAA,KAAAlf,YApBI,MAoBJu7B,EAxB6B,GCAnBE,GAAc,WACzB,SAAAA,EACmBjG,EACAC,GACjB32B,IAAA,KAAA28B,GAAA,KAFiBjG,MAAW,KACXC,aAoBlB,OAnBI12B,IAAA08B,EAAA,EAAAz8B,IAAA,SAAAC,MAAA,eAAAu8B,EAAAxd,MAEL,YACE,IAAMoY,EAAuB,CAC3BZ,IAAQl1B,KAAKk1B,IAAG,uBAChBQ,OAAQ,OAGVG,QAAmC71B,KAAKm1B,WAAWW,QAAQA,GAAnDC,EAAUF,EAAVE,WAAYJ,EAAIE,EAAJF,KAEpB,OAAQI,GACN,KAAKz7B,kBAAe07B,GAClB,UAAWL,UAAgB,GACzB,MAAM,IAAIlV,GAEZ,OAAOkV,EACT,KAAKr7B,kBAAe67B,aAAc,MAAM,IAAIzV,GAC5C,QAAS,MAAM,IAAIF,OAEtB,yBAAA0a,EAAAtc,MAAA,KAAAlf,YAnBI,MAmBJy7B,EAvBwB,GCAdC,GAAwB,WACnC,SAAAA,EACmBlG,EACAC,GACjB32B,IAAA,KAAA48B,GAAA,KAFiBlG,MAAW,KACXC,aAmBlB,OAlBI12B,IAAA28B,EAAA,EAAA18B,IAAA,SAAAC,MAAA,eAAAu8B,EAAAxd,MAEL,YACE,IAAMoY,EAAuB,CAC3BZ,IAAQl1B,KAAKk1B,IAAG,qCAChBQ,OAAQ,OAGVG,QAAmC71B,KAAKm1B,WAAWW,QAAQA,GAAnDC,EAAUF,EAAVE,WAAYJ,EAAIE,EAAJF,KAEpB,OAAQI,GACN,KAAKz7B,kBAAe07B,GAClB,IAAKL,EACH,MAAM,IAAIlV,GAEZ,OAAOkV,EACT,QAAS,MAAM,IAAInV,OAEtB,yBAAA0a,EAAAtc,MAAA,KAAAlf,YAlBI,MAkBJ07B,EAtBkC,GCDxBC,GAAe,WAC1B,SAAAA,EACmBnG,EACAC,GACjB32B,IAAA,KAAA68B,GAAA,KAFiBnG,MAAW,KACXC,aAsBlB,OArBI12B,IAAA48B,EAAA,EAAA38B,IAAA,OAAAC,MAAA,eAAA65B,EAAA9a,MAEL,UAAY2X,GACV,IAAMS,EAAuB,CAC3BZ,IAAQl1B,KAAKk1B,IAAG,mBAChBQ,OAAQ,OACRC,KAAMN,GAGRQ,QAAmC71B,KAAKm1B,WAAWW,QAAQA,GAAnDC,EAAUF,EAAVE,WAAYJ,EAAIE,EAAJF,KAEpB,OAAQI,GACN,KAAKz7B,kBAAe07B,GAClB,IAAKL,EACH,MAAM,IAAIlV,GAEZ,OAAOkV,EACT,KAAKr7B,kBAAek8B,UAAW,MAAM,IAAI7V,GAAegV,GACxD,KAAKr7B,kBAAe67B,aAAc,MAAM,IAAIzV,GAC5C,QAAS,MAAM,IAAIF,OAEtB,gBAAA7B,GAAA,OAAA6Z,EAAA5Z,MAAA,KAAAlf,YArBI,MAqBJ27B,EAzByB,GCAfC,GAAoB,WAC/B,SAAAA,EACmBpG,EACAC,GACjB32B,IAAA,KAAA88B,GAAA,KAFiBpG,MAAW,KACXC,aAgBlB,OAfI12B,IAAA68B,EAAA,EAAA58B,IAAA,OAAAC,MAAA,eAAA65B,EAAA9a,MAEL,UAAYtE,GACV,IAAAyc,QAAmC71B,KAAKm1B,WAAWW,QAAQ,CACzDJ,OAAQ,MACRR,IAAQl1B,KAAKk1B,IAAG,qBAChBS,KAAMvc,IAHA2c,EAAUF,EAAVE,WAAYJ,EAAIE,EAAJF,KAMpB,OAAQI,GACN,KAAKz7B,kBAAe07B,GAAI,OAAOL,EAC/B,KAAKr7B,kBAAek8B,UAAW,MAAM,IAAIjW,GAAuBoV,GAChE,KAAKr7B,kBAAe67B,aAAc,MAAM,IAAIzV,GAC5C,QAAS,MAAM,IAAIF,OAEtB,gBAAA7B,GAAA,OAAA6Z,EAAA5Z,MAAA,KAAAlf,YAfI,MAeJ47B,EAnB8B,G,klBCA1B,IAAMC,GAA0B,WACrC,SAAAA,EACmBrG,EACAC,GACjB32B,IAAA,KAAA+8B,GAAA,KAFiBrG,MAAW,KACXC,aAgClB,OA/BI12B,IAAA88B,EAAA,EAAA78B,IAAA,WAAAC,MAAA,eAAAy4B,EAAA1Z,MAEL,UAAgB2X,GACd,IAAQvvB,EAAyBuvB,EAAzBvvB,MAAU01B,EAAU/O,KAAK4I,EAAM3I,IAEjCoJ,EAAuB,CAC3BZ,IAAQl1B,KAAKk1B,IAAG,8BAChBQ,OAAQ,OACRL,OAAQ,CACNvvB,QACA21B,cAAe,KAEjB9F,KAAI9yB,MAAA,GACC24B,GAAU,IACbE,eAAgB,uDAChBpd,OAAQ,IACR1D,QAAS,mBAIbib,QAAmC71B,KAAKm1B,WAAWW,QAAQA,GAAnDC,EAAUF,EAAVE,WAAYJ,EAAIE,EAAJF,KAEpB,OAAQI,GACN,KAAKz7B,kBAAe07B,GAClB,IAAKL,EACH,MAAM,IAAIlV,GAEZ,OAAQkV,EAAoCgG,YAC9C,KAAKrhC,kBAAek8B,UAAW,MAAM,IAAI7V,GAAegV,GACxD,QAAS,MAAM,IAAInV,OAEtB,gBAAA7B,GAAA,OAAAyY,EAAAxY,MAAA,KAAAlf,YA/BI,MA+BJ67B,EAnCoC,GCA1BK,GAAe,WAC1B,SAAAA,EACmB1G,EACAC,GACjB32B,IAAA,KAAAo9B,GAAA,KAFiB1G,MAAW,KACXC,aAelB,OAdI12B,IAAAm9B,EAAA,EAAAl9B,IAAA,OAAAC,MAAA,eAAAk9B,EAAAne,MAEL,UAAY2X,GACV,IAAAQ,QAAmC71B,KAAKm1B,WAAWW,QAAQ,CACzDJ,OAAQ,OACRR,IAAQl1B,KAAKk1B,IAAG,yBAChBS,KAAMN,IAHAU,EAAUF,EAAVE,WAAYJ,EAAIE,EAAJF,KAMpB,OAAQI,GACN,KAAKz7B,kBAAe07B,GAAI,OAAOL,EAC/B,KAAKr7B,kBAAe67B,aAAc,MAAM,IAAIzV,GAC5C,QAAS,MAAM,IAAIF,OAEtB,gBAAA7B,GAAA,OAAAkd,EAAAjd,MAAA,KAAAlf,YAdI,MAcJk8B,EAlByB,GCCfE,GAAgB,WAC3B,SAAAA,EACmB5G,EACAC,GACjB32B,IAAA,KAAAs9B,GAAA,KAFiB5G,MAAW,KACXC,aAsBlB,OArBI12B,IAAAq9B,EAAA,EAAAp9B,IAAA,SAAAC,MAAA,eAAAo9B,EAAAre,MAEL,UAAc2X,GACZ,IAAM2G,EAAW,IAAIC,SACrBD,EAASE,OAAO,OAAQ7G,EAAOvX,MAC/Bke,EAASE,OAAO,OAAQ7G,EAAOzP,OAE/B,IAAAiQ,QAAmC71B,KAAKm1B,WAAWW,QAAQ,CACzDJ,OAAQ,OACRR,IAAQl1B,KAAKk1B,IAAG,oBAChBS,KAAMqG,EACNpG,QAAS,CACPuG,YAAa,yBALTpG,EAAUF,EAAVE,WAAYJ,EAAIE,EAAJF,KASpB,OAAQI,GACN,KAAKz7B,kBAAe07B,GAAI,OAAOL,EAC/B,KAAKr7B,kBAAe67B,aAAc,MAAM,IAAIzV,GAC5C,QAAS,MAAM,IAAIF,OAEtB,gBAAA7B,GAAA,OAAAod,EAAAnd,MAAA,KAAAlf,YArBI,MAqBJo8B,EAzB0B,GCDhBM,GAAwB,WACnC,SAAAA,EACmBlH,EACAC,GACjB32B,IAAA,KAAA49B,GAAA,KAFiBlH,MAAW,KACXC,aAgBlB,OAfI12B,IAAA29B,EAAA,EAAA19B,IAAA,OAAAC,MAAA,eAAA65B,EAAA9a,MAEL,UAAYtE,GACV,IAAAyc,QAAmC71B,KAAKm1B,WAAWW,QAAQ,CACzDJ,OAAQ,OACRR,IAAQl1B,KAAKk1B,IAAG,qCAChBS,KAAMvc,IAHA2c,EAAUF,EAAVE,WAAYJ,EAAIE,EAAJF,KAMpB,OAAQI,GACN,KAAKz7B,kBAAe07B,GAAI,OACxB,KAAK17B,kBAAek8B,UAAW,MAAM,IAAI7V,GAAegV,GACxD,KAAKr7B,kBAAe67B,aAAc,MAAM,IAAIzV,GAC5C,QAAS,MAAM,IAAIF,OAEtB,gBAAA7B,GAAA,OAAA6Z,EAAA5Z,MAAA,KAAAlf,YAfI,MAeJ08B,EAnBkC,GCCxBC,GAAuB,WAClC,SAAAA,EACmBnH,EACAC,GACjB32B,IAAA,KAAA69B,GAAA,KAFiBnH,MAAW,KACXC,aAqBlB,OApBI12B,IAAA49B,EAAA,EAAA39B,IAAA,SAAAC,MAAA,eAAAu8B,EAAAxd,MAEL,UAAc2X,GACZ,IAAMS,EAAuB,CAC3BZ,IAAQl1B,KAAKk1B,IAAG,uCAChBQ,OAAQ,MACRL,UAGFQ,QAAmC71B,KAAKm1B,WAAWW,QAAQA,GAAnDC,EAAUF,EAAVE,WAAYJ,EAAIE,EAAJF,KAEpB,OAAQI,GACN,KAAKz7B,kBAAe07B,GAClB,IAAKL,EACH,MAAM,IAAIlV,GAEZ,OAAOkV,EACT,KAAKr7B,kBAAe67B,aAAc,MAAM,IAAIzV,GAC5C,QAAS,MAAM,IAAIF,OAEtB,gBAAA7B,GAAA,OAAAuc,EAAAtc,MAAA,KAAAlf,YApBI,MAoBJ28B,EAxBiC,GCDvBC,GAAgB,WAC3B,SAAAA,EACmBpH,EACAC,GACjB32B,IAAA,KAAA89B,GAAA,KAFiBpH,MAAW,KACXC,aAsBlB,OArBI12B,IAAA69B,EAAA,EAAA59B,IAAA,OAAAC,MAAA,eAAA49B,EAAA7e,MAEL,UAAY2X,GACV,IAAMS,EAAuB,CAC3BZ,IAAQl1B,KAAKk1B,IAAG,gDAChBQ,OAAQ,OACRC,KAAMN,GAGRQ,QAAmC71B,KAAKm1B,WAAWW,QAAQA,GAAnDC,EAAUF,EAAVE,WAAYJ,EAAIE,EAAJF,KAEpB,OAAQI,GACN,KAAKz7B,kBAAe07B,GAClB,IAAKL,EACH,MAAM,IAAIlV,GAEZ,OAAOkV,EACT,KAAKr7B,kBAAe67B,aAAc,MAAM,IAAIzV,GAC5C,KAAKpmB,kBAAek8B,UAAW,MAAM,IAAI7V,GAAegV,GACxD,QAAS,MAAM,IAAInV,OAEtB,gBAAA7B,GAAA,OAAA4d,EAAA3d,MAAA,KAAAlf,YArBI,MAqBJ48B,EAzB0B,GCChBE,GAA6B,WACxC,SAAAA,EACmBtH,EACAC,GACjB32B,IAAA,KAAAg+B,GAAA,KAFiBtH,MAAW,KACXC,aA8BlB,OA7BI12B,IAAA+9B,EAAA,EAAA99B,IAAA,SAAAC,MAAA,eAAAu8B,EAAAxd,MAEL,YACE,IAAMoY,EAAuB,CAC3BZ,IAAQl1B,KAAKk1B,IAAG,wCAChBQ,OAAQ,OAGVG,QAAmC71B,KAAKm1B,WAAWW,QAAQA,GAAnDC,EAAUF,EAAVE,WAAYJ,EAAIE,EAAJF,KAEpB,OAAQI,GACN,KAAKz7B,kBAAe07B,GAClB,IAAKL,EACH,MAAM,IAAIlV,GAEZ,OAAOzgB,KAAKy8B,aAAa9G,GAC3B,KAAKr7B,kBAAe67B,aAAc,MAAM,IAAIzV,GAC5C,QAAS,MAAM,IAAIF,OAEtB,yBAAA0a,EAAAtc,MAAA,KAAAlf,YAnBI,IAmBJ,CAAAhB,IAAA,eAAAC,MAED,SAAc+9B,GACZ,OAAOA,EAAYh/B,KAAI,SAACi/B,GACtB,MAAO,CACL9+B,GAAI8+B,EAAWlpB,OACfsB,UAAc4nB,EAAWC,MAAK,MAAMD,EAAWE,QAC/ChS,YAAY,UAGjB2R,EAjCuC,GCA7BM,GAAY,WACvB,SAAAA,EACmB5H,EACA6H,GACjBv+B,IAAA,KAAAs+B,GAAA,KAFiB5H,MAAW,KACX6H,gBAyBlB,OAxBGt+B,IAAAq+B,EAAA,EAAAp+B,IAAA,MAAAC,MAAA,eAAAs6B,EAAAvb,MAEJ,UAAW2X,GACT,IAAA2H,QAAmCh9B,KAAK+8B,cAAcjH,QAAQ,CAC5DZ,IAAQl1B,KAAKk1B,IAAG,oBAChBQ,OAAQ,MACRL,SACAO,QACA,CACE,eAAgB,mBAChB,gBAAiB,cAPbD,EAAIqH,EAAJrH,KAWR,OAXwBqH,EAAVjH,YAYZ,KAAKz7B,kBAAe07B,GAClB,IAAKL,EACH,MAAM,IAAIlV,GAGZ,OAAOkV,EACT,KAAKr7B,kBAAe67B,aAAc,MAAM,IAAIzV,GAC5C,QAAS,MAAM,IAAIF,OAEtB,gBAAA7B,GAAA,OAAAsa,EAAAra,MAAA,KAAAlf,YAxBG,MAwBHo9B,EA5BsB,GCDZG,GAAe,WAC1B,SAAAA,EACmB/H,EACA6H,GACjBv+B,IAAA,KAAAy+B,GAAA,KAFiB/H,MAAW,KACX6H,gBAoBlB,OAnBGt+B,IAAAw+B,EAAA,EAAAv+B,IAAA,OAAAC,MAAA,eAAAu+B,EAAAxf,MAEJ,UAAY2X,GACV,IAAA2H,QAAmCh9B,KAAK+8B,cAAcjH,QAAQ,CAC5DZ,IAAQl1B,KAAKk1B,IAAG,0BAChBQ,OAAQ,OACRC,KAAMN,IAHAM,EAAIqH,EAAJrH,KAMR,OANwBqH,EAAVjH,YAOZ,KAAKz7B,kBAAe07B,GAClB,IAAKL,EACH,MAAM,IAAI/U,GAEZrF,OAAOsf,KAAK,IAAIn+B,aAAUd,GAAGe,yBAAwB,IAAI04B,EAAO8H,UAAS,IAAIxH,EAAQ,UACrF,MACF,KAAKr7B,kBAAe67B,aAAc,MAAM,IAAIzV,GAC5C,QAAS,MAAM,IAAIF,OAEtB,gBAAA7B,GAAA,OAAAue,EAAAte,MAAA,KAAAlf,YAnBG,MAmBHu9B,EAvByB,G,8lBCArB,IAAMG,GAAc,WACzB,SAAAA,EACmBlI,EACA6H,GACjBv+B,IAAA,KAAA4+B,GAAA,KAFiBlI,MAAW,KACX6H,gBAiClB,OAhCGt+B,IAAA2+B,EAAA,EAAA1+B,IAAA,OAAAC,MAAA,eAAAu+B,EAAAxf,MAEJ,UAAY2X,GACV,IAAQgI,EAAqChI,EAArCgI,kBAAsB/H,EAAU7I,KAAK4I,EAAM3I,IAEnD,GAAI2Q,EACF9hB,OAAOsf,KAAKwC,EAAmB,eAE1B,GAAK/H,EAAWgI,mBAAhB,CAIP,IAAAN,QAAmCh9B,KAAK+8B,cAAcjH,QAAQ,CAC5DZ,IAAQl1B,KAAKk1B,IAAG,yBAChBQ,OAAQ,MACRL,OAAMxyB,MAAA,GACDyyB,GAAU,IACbiI,UAAU,MALN5H,EAAIqH,EAAJrH,KASR,OATwBqH,EAAVjH,YAUZ,KAAKz7B,kBAAe07B,GAClB,IAAKL,EACH,MAAM,IAAI/U,GAGZrF,OAAOsf,KAAK,IAAIj+B,YAAShB,GAAGiB,oBAAmB,IAAI84B,EAAQ,UAC3D,MACF,KAAKr7B,kBAAe67B,aAAc,MAAM,IAAIzV,GAC5C,QAAS,MAAM,IAAIF,QAEtB,gBAAA7B,GAAA,OAAAue,EAAAte,MAAA,KAAAlf,YAhCG,MAgCH09B,EApCwB,GCAdI,GAAsB,WACjC,SAAAA,EACmBtI,EACA6H,GACjBv+B,IAAA,KAAAg/B,GAAA,KAFiBtI,MAAW,KACX6H,gBAqBlB,OApBGt+B,IAAA++B,EAAA,EAAA9+B,IAAA,OAAAC,MAAA,eAAAu+B,EAAAxf,MAEJ,UAAY2X,GACV,IAAA2H,QAAmCh9B,KAAK+8B,cAAcjH,QAAQ,CAC5DZ,IAAQl1B,KAAKk1B,IAAG,mCAChBQ,OAAQ,MACRL,WAHMM,EAAIqH,EAAJrH,KAMR,OANwBqH,EAAVjH,YAOZ,KAAKz7B,kBAAe07B,GAClB,IAAKL,EACH,MAAM,IAAI/U,GAGZrF,OAAOsf,KAAK,IAAI/9B,oBAAiBlB,GAAGmB,6BAA4B,IAAI44B,EAAQ,UAC5E,MACF,KAAKr7B,kBAAe67B,aAAc,MAAM,IAAIzV,GAC5C,QAAS,MAAM,IAAIF,OAEtB,gBAAA7B,GAAA,OAAAue,EAAAte,MAAA,KAAAlf,YApBG,MAoBH89B,EAxBgC,G,qkBCC5B,IAAMC,GAAc,WACzB,SAAAA,EACmBvI,EACAC,GACjB32B,IAAA,KAAAi/B,GAAA,KAFiBvI,MAAW,KACXC,aA+BlB,OA9BG12B,IAAAg/B,EAAA,EAAA/+B,IAAA,MAAAC,MAAA,eAAA++B,EAAAhgB,MAEJ,UAAW2X,GACT,IAAMmG,EAAU34B,MAAA,GACXwyB,GAAM,IACTsI,aAAa,EACbrf,OAAQhjB,sBAAmBsiC,OAC3BC,KAAMriC,wBAAqBsiC,oBAC3BC,WAAYxiC,wBAAqByiC,OACjCC,YAAa,IAGTnI,EAAuB,CAC3BZ,IAAQl1B,KAAKk1B,IAAG,UAChBQ,OAAQ,OACRC,KAAM6F,GAGR3F,QAAmC71B,KAAKm1B,WAAWW,QAAQA,GAAnDC,EAAUF,EAAVE,WAAYJ,EAAIE,EAAJF,KAEpB,OAAQI,GACN,KAAKz7B,kBAAe07B,GAClB,IAAKL,EACH,MAAM,IAAIlV,GAEZ,OAAOkV,EACT,KAAKr7B,kBAAek8B,UAAW,MAAM,IAAI7V,GAAegV,GACxD,KAAKr7B,kBAAe67B,aAAc,MAAM,IAAIzV,GAC5C,QAAS,MAAM,IAAIF,OAEtB,gBAAA7B,GAAA,OAAA+e,EAAA9e,MAAA,KAAAlf,YA9BG,MA8BH+9B,EAlCwB,GCCdS,GAAsB,WACjC,SAAAA,EACmBhJ,EACAC,EACAgJ,GACjB3/B,IAAA,KAAA0/B,GAAA,KAHiBhJ,MAAW,KACXC,aAAuC,KACvCgJ,qBA8ClB,OA7CG1/B,IAAAy/B,EAAA,EAAAx/B,IAAA,MAAAC,MAAA,eAAA++B,EAAAhgB,MAEJ,UAAW2X,GACT,IAAM+I,EAAcp+B,KAAKm+B,mBACtBE,SAAShJ,EAAOiJ,UAAWjJ,EAAOkJ,UAAWlJ,EAAOmJ,YAAanJ,EAAOoJ,aACxEC,UAAUrJ,EAAOsJ,aACjBC,eAAevJ,EAAOvvB,OACtB+4B,gBAAgBxJ,EAAOyJ,WACvBC,gBAAgB1J,EAAO2J,WACvBC,gBAAgB5J,EAAO6J,wBAAyB7J,EAAO8J,mBACvDC,cAAc/J,EAAOgK,kBAAmBhK,EAAOiK,aAC/CC,YAAYlK,EAAOmK,8BAA+BnK,EAAOoK,UACzDC,mBAAmBrK,EAAOsK,eAC1BC,QAEGpE,EAAa,CACjBqE,QAASxK,EAAOwK,QAChBC,QAASzK,EAAOyK,QAChBC,WAAY1K,EAAO0K,WACnBpB,YAAatJ,EAAOsJ,YACpBrgB,OAAQhjB,sBAAmBsiC,OAC3BC,KAAMriC,wBAAqBsiC,oBAC3BC,WAAYxiC,wBAAqByiC,OACjCL,aAAa,EACbS,eAGItI,EAAuB,CAC3BZ,IAAQl1B,KAAKk1B,IAAG,UAChBQ,OAAQ,OACRC,KAAM6F,GAGR3F,QAAmC71B,KAAKm1B,WAAWW,QAAQA,GAAnDC,EAAUF,EAAVE,WAAYJ,EAAIE,EAAJF,KAEpB,OAAQI,GACN,KAAKz7B,kBAAe07B,GAClB,IAAKL,EACH,MAAM,IAAIlV,GAEZ,OAAOkV,EACT,KAAKr7B,kBAAek8B,UAAW,MAAM,IAAI7V,GAAegV,GACxD,KAAKr7B,kBAAe67B,aAAc,MAAM,IAAIzV,GAC5C,QAAS,MAAM,IAAIF,OAEtB,gBAAA7B,GAAA,OAAA+e,EAAA9e,MAAA,KAAAlf,YA7CG,MA6CHw+B,EAlDgC,GCDtB8B,GAAsB,WACjC,SAAAA,EACmB9K,EACAC,GACjB32B,IAAA,KAAAwhC,GAAA,KAFiB9K,MAAW,KACXC,aAuBlB,OAtBG12B,IAAAuhC,EAAA,EAAAthC,IAAA,MAAAC,MAAA,eAAAs6B,EAAAvb,MAEJ,UAAW2X,GACT,IAAMS,EAAuB,CAC3BZ,IAAQl1B,KAAKk1B,IAAG,wBAChBQ,OAAQ,MACRL,UAGFQ,QAAmC71B,KAAKm1B,WAAWW,QAAQA,GAAnDC,EAAUF,EAAVE,WAAYJ,EAAIE,EAAJF,KAEpB,OAAQI,GACN,KAAKz7B,kBAAe07B,GAClB,IAAKL,EACH,MAAM,IAAIlV,GAGZ,OAAOkV,EACT,KAAKr7B,kBAAe67B,aAAc,MAAM,IAAIzV,GAC5C,KAAKpmB,kBAAek8B,UAAW,MAAM,IAAI7V,GAAegV,GACxD,QAAS,MAAM,IAAInV,OAEtB,gBAAA7B,GAAA,OAAAsa,EAAAra,MAAA,KAAAlf,YAtBG,MAsBHsgC,EA1BgC,GCAtBC,GAAqB,WAChC,SAAAA,EACmB/K,EACAC,GACjB32B,IAAA,KAAAyhC,GAAA,KAFiB/K,MAAW,KACXC,aAsBlB,OArBG12B,IAAAwhC,EAAA,EAAAvhC,IAAA,iBAAAC,MAAA,eAAAuhC,EAAAxiB,MAEJ,UAAsB2X,GACpB,IAAMS,EAAuB,CAC3BZ,IAAQl1B,KAAKk1B,IAAG,sBAChBQ,OAAQ,MACRL,UAGFQ,QAAmC71B,KAAKm1B,WAAWW,QAAQA,GAAnDC,EAAUF,EAAVE,WAAYJ,EAAIE,EAAJF,KAEpB,OAAQI,GACN,KAAKz7B,kBAAe07B,GAClB,IAAKL,EACH,MAAM,IAAIlV,GAGZ,OAAOkV,EACT,KAAKr7B,kBAAe67B,aAAc,MAAM,IAAIzV,GAC5C,QAAS,MAAM,IAAIF,OAEtB,gBAAA7B,GAAA,OAAAuhB,EAAAthB,MAAA,KAAAlf,YArBG,MAqBHugC,EAzB+B,GCArBE,GAA2B,WACtC,SAAAA,EACmBjL,EACAC,GACjB32B,IAAA,KAAA2hC,GAAA,KAFiBjL,MAAW,KACXC,aAsBlB,OArBG12B,IAAA0hC,EAAA,EAAAzhC,IAAA,YAAAC,MAAA,eAAAyhC,EAAA1iB,MAEJ,UAAiB2X,GACf,IAAMS,EAAuB,CAC3BZ,IAAQl1B,KAAKk1B,IAAG,mBAChBQ,OAAQ,MACRL,UAGFQ,QAAmC71B,KAAKm1B,WAAWW,QAAQA,GAAnDC,EAAUF,EAAVE,WAAYJ,EAAIE,EAAJF,KAEpB,OAAQI,GACN,KAAKz7B,kBAAe07B,GAClB,IAAKL,EACH,MAAM,IAAIlV,GAGZ,OAAOkV,EACT,KAAKr7B,kBAAe67B,aAAc,MAAM,IAAIzV,GAC5C,QAAS,MAAM,IAAIF,OAEtB,gBAAA7B,GAAA,OAAAyhB,EAAAxhB,MAAA,KAAAlf,YArBG,MAqBHygC,EAzBqC,GCA3BE,GAAqB,WAChC,SAAAA,EACmBnL,EACAC,GACjB32B,IAAA,KAAA6hC,GAAA,KAFiBnL,MAAW,KACXC,aAuBlB,OAtBG12B,IAAA4hC,EAAA,EAAA3hC,IAAA,kBAAAC,MAAA,eAAA2hC,EAAA5iB,MAEJ,YACE,IAAM+X,EAA0B,CAC9BP,IAAQl1B,KAAKk1B,IAAG,gCAChBQ,OAAQ,MACRE,QAAS,CACP,eAAgB,sCAIpBC,QAAmC71B,KAAKm1B,WAAWW,QAAQL,GAAnDM,EAAUF,EAAVE,WAAYJ,EAAIE,EAAJF,KAEpB,OAAQI,GACN,KAAKz7B,kBAAe07B,GAClB,IAAKL,EACH,MAAM,IAAIlV,GAEZ,OAAOkV,EACT,KAAKr7B,kBAAe67B,aAAc,MAAM,IAAIzV,GAC5C,QAAS,MAAM,IAAIF,OAEtB,yBAAA8f,EAAA1hB,MAAA,KAAAlf,YAtBG,MAsBH2gC,EA1B+B,GCArBE,GAAsB,WACjC,SAAAA,EACmBrL,EACAC,GACjB32B,IAAA,KAAA+hC,GAAA,KAFiBrL,MAAW,KACXC,aAqBlB,OApBG12B,IAAA8hC,EAAA,EAAA7hC,IAAA,OAAAC,MAAA,eAAA65B,EAAA9a,MAEJ,UAAY2X,GACV,IAAMI,EAA0B,CAC9BP,IAAQl1B,KAAKk1B,IAAG,gCAChBQ,OAAQ,OACRC,KAAMN,GAGRQ,QAAmC71B,KAAKm1B,WAAWW,QAAQL,GAAnDM,EAAUF,EAAVE,WAAYJ,EAAIE,EAAJF,KAEpB,OAAQI,GACN,KAAKz7B,kBAAe07B,GAClB,IAAKL,EACH,MAAM,IAAIlV,GAEZ,OAAOkV,EACT,KAAKr7B,kBAAe67B,aAAc,MAAM,IAAIzV,GAC5C,QAAS,MAAM,IAAIF,OAEtB,gBAAA7B,GAAA,OAAA6Z,EAAA5Z,MAAA,KAAAlf,YApBG,MAoBH6gC,EAxBgC,GCAtBC,GAAsB,WACjC,SAAAA,EACmBtL,EACA6H,GACjBv+B,IAAA,KAAAgiC,GAAA,KAFiBtL,MAAW,KACX6H,gBAgBlB,OAfGt+B,IAAA+hC,EAAA,EAAA9hC,IAAA,MAAAC,MAAA,eAAAs6B,EAAAvb,MAEJ,UAAW2X,GACT,IAAA2H,QAAmCh9B,KAAK+8B,cAAcjH,QAAQ,CAC5DZ,IAAQl1B,KAAKk1B,IAAG,sCAChBQ,OAAQ,MACRL,WAHMM,EAAIqH,EAAJrH,KAMR,OANwBqH,EAAVjH,YAOZ,KAAKz7B,kBAAe07B,GAAI,OAAOL,EAC/B,KAAKr7B,kBAAek8B,UAAW,MAAM,IAAI7V,GAAegV,GACxD,KAAKr7B,kBAAe67B,aAAc,MAAM,IAAIzV,GAC5C,QAAS,MAAM,IAAIF,OAEtB,gBAAA7B,GAAA,OAAAsa,EAAAra,MAAA,KAAAlf,YAfG,MAeH8gC,EAnBgC,GCDtBC,GAAsB,WACjC,SAAAA,EACmB1D,GACjBv+B,IAAA,KAAAiiC,GAAA,KADiB1D,gBAqClB,OApCIt+B,IAAAgiC,EAAA,EAAA/hC,IAAA,OAAAC,MAAA,eAAA+hC,EAAAhjB,MAEL,UAAY2X,GACV,IAAQsL,EAA4BtL,EAA5BsL,aAAcC,EAAcvL,EAAduL,UAEtB,GAAqB,aAAjBD,EACFplB,OAAOsf,KAAK+F,EAAW,cAClB,CACL,IAAMC,EAAOD,EAAUvI,UAAUuI,EAAUE,QAAQ,aAAe,GAG5DhL,EAAuB,CAC3BZ,IAHoB0L,EAAUvI,UAAU,EAAGuI,EAAUE,QAAQ,oBAGxC,6BAA6BD,EAClDnL,OAAQ,OACRL,OAAQ,CACN0L,aAAa,IAIjB/D,QAAmCh9B,KAAK+8B,cAAcjH,QAAQA,GAAtDC,EAAUiH,EAAVjH,WAAYJ,EAAIqH,EAAJrH,KAEpB,OAAQI,GACN,KAAKz7B,kBAAe07B,GAClB,IAAKL,EACH,MAAM,IAAIlV,GAGZ,IAAMugB,EAAkB,IAAIlhB,KAAK,CAAC6V,GAAO,CAAE5V,KAAM,4BAC3CkhB,EAAOC,IAAIC,gBAAgBH,GACjCzlB,OAAOsf,KAAKoG,EAAM,UAElB,MACF,KAAK3mC,kBAAe67B,aAAc,MAAM,IAAIzV,GAC5C,QAAS,MAAM,IAAIF,QAGxB,gBAAA7B,GAAA,OAAA+hB,EAAA9hB,MAAA,KAAAlf,YApCI,MAoCJ+gC,EAvCgC,GCAtBW,GAAwB,WACnC,SAAAA,EACmBlM,EACAC,GACjB32B,IAAA,KAAA4iC,GAAA,KAFiBlM,MAAW,KACXC,aA0BlB,OAzBI12B,IAAA2iC,EAAA,EAAA1iC,IAAA,OAAAC,MAAA,eAAAu+B,EAAAxf,MAEL,UAAY2X,GACV,IAAQgM,EAA+BhM,EAA/BgM,aAER,GAAqB,eAFkBhM,EAAjBsL,aAEa,CACjC,IAAA9K,QAAmC71B,KAAKm1B,WAAWW,QAAQ,CACzDZ,IAAQl1B,KAAKk1B,IAAG,6CAChBQ,OAAQ,MACRL,OAAQ,CAAEgM,kBAHJtL,EAAUF,EAAVE,WAAYJ,EAAIE,EAAJF,KAMpB,OAAQI,GACN,KAAKz7B,kBAAe07B,GAClB,IAAKL,EACH,MAAM,IAAIlV,GAGZlF,OAAOsf,KAAQ76B,KAAKk1B,IAAG,IAAIS,EAAQ,UACnC,MACF,KAAKr7B,kBAAek8B,UAAW,MAAM,IAAI7V,GAAegV,GACxD,KAAKr7B,kBAAe67B,aAAc,MAAM,IAAIzV,GAC5C,QAAS,MAAM,IAAIF,QAGxB,gBAAA7B,GAAA,OAAAue,EAAAte,MAAA,KAAAlf,YAzBI,MAyBJ0hC,EA7BkC,GCAxBE,GAAiB,WAC5B,SAAAA,EACmBpM,EACAC,GACjB32B,IAAA,KAAA8iC,GAAA,KAFiBpM,MAAW,KACXC,aA4BlB,OA3BG12B,IAAA6iC,EAAA,EAAA5iC,IAAA,QAAAC,MAAA,eAAA4iC,EAAA7jB,MAEJ,UAAa2X,GACX,IAAQmM,EAAsBnM,EAAtBmM,YAAa5W,EAASyK,EAATzK,KACfkL,EAAuB,CAC3BZ,IAAQl1B,KAAKk1B,IAAG,4BAChBQ,OAAQ,OACRL,OAAQ,CAAEmM,eACV7L,KAAM/K,GAGRiL,QAAmC71B,KAAKm1B,WAAWW,QAAQA,GAAnDC,EAAUF,EAAVE,WAAYJ,EAAIE,EAAJF,KAEd8L,EAAczhC,KAAKk1B,IAAIrZ,cAAcilB,QAAQ,kBAC7CY,GAA0B,IAAjBD,EAAqBzhC,KAAKk1B,IAAMl1B,KAAKk1B,IAAImD,UAAUoJ,GAElE,OAAQ1L,GACN,KAAKz7B,kBAAe07B,GAClB,IAAKL,EACH,MAAM,IAAIlV,GAEZlF,OAAOsf,KAAQ6G,EAAM,mBAAmB/L,EAAQ,UAChD,MACF,KAAKr7B,kBAAeg+B,UAAW,MAAM,IAAI1X,GACzC,KAAKtmB,kBAAe67B,aAAc,MAAM,IAAIzV,GAC5C,QAAS,MAAM,IAAIF,OAEtB,gBAAA7B,GAAA,OAAA4iB,EAAA3iB,MAAA,KAAAlf,YA3BG,MA2BH4hC,EA/B2B,GCCjBK,GAAqB,WAChC,SAAAA,EACmBzM,EACAC,GACjB32B,IAAA,KAAAmjC,GAAA,KAFiBzM,MAAW,KACXC,aA+BlB,OA9BG12B,IAAAkjC,EAAA,EAAAjjC,IAAA,YAAAC,MAAA,eAAAijC,EAAAlkB,MAEJ,UAAiB2X,GACf,IAAAQ,QAAmC71B,KAAKm1B,WAAWW,QAAQ,CACzDZ,IAAQl1B,KAAKk1B,IAAG,6BAChBQ,OAAQ,MACRL,WAHMM,EAAIE,EAAJF,KAMR,OANwBE,EAAVE,YAOZ,KAAKz7B,kBAAe07B,GAAI,OAAOh2B,KAAKy8B,aAAa9G,GACjD,KAAKr7B,kBAAe67B,aAAc,MAAM,IAAIzV,GAC5C,KAAKpmB,kBAAek8B,UAAW,MAAM,IAAI7V,GAAegV,GAExD,QAAS,MAAM,IAAInV,OAEtB,gBAAA7B,GAAA,OAAAijB,EAAAhjB,MAAA,KAAAlf,YAhBG,IAgBH,CAAAhB,IAAA,eAAAC,MAED,SAAckjC,GACZ,IAAMC,EAASD,EACXp+B,KAAKI,MAAMg+B,GACX,GAEJ,OAAa,MAANC,OAAM,EAANA,EAAQpkC,KAAI,SAAAqkC,GAAW,IAAAC,EAAAC,EAAAC,EAAA,MAAK,CACjCtU,OAAmB,MAAXmU,GAAkB,OAAPC,EAAXD,EAAa9tB,YAAF,EAAX+tB,EAAoBG,SAC5BptB,UAAsB,MAAXgtB,GAAkB,OAAPE,EAAXF,EAAa9tB,YAAF,EAAXguB,EAAoBG,QAC/BC,WAAuB,MAAXN,OAAW,EAAXA,EAAaO,iBACzBC,IAAgB,MAAXR,GAAkB,OAAPG,EAAXH,EAAa9tB,YAAF,EAAXiuB,EAAoBM,QAAQ5tB,WACjCgG,QAAoB,MAAXmnB,OAAW,EAAXA,EAAaU,oBAEzBd,EAlC+B,GCArBe,GAAsB,WACjC,SAAAA,EACmBxN,EACAC,GACjB32B,IAAA,KAAAkkC,GAAA,KAFiBxN,MAAW,KACXC,aA0BlB,OAzBI12B,IAAAikC,EAAA,EAAAhkC,IAAA,aAAAC,MAAA,eAAAgkC,EAAAjlB,MAEL,UAAkB2X,GAChB,IAAAQ,QAAmC71B,KAAKm1B,WAAWW,QAAQ,CACzDZ,IAAQl1B,KAAKk1B,IAAG,mCAChBQ,OAAQ,MACRL,WAHMM,EAAIE,EAAJF,KAMR,OANwBE,EAAVE,YAOZ,KAAKz7B,kBAAe07B,GAClB,OAAOh2B,KAAKy8B,aAAa9G,GAC3B,KAAKr7B,kBAAe67B,aAAc,MAAM,IAAIzV,GAC5C,KAAKpmB,kBAAek8B,UAAW,MAAM,IAAI7V,GAAegV,GACxD,QAAS,MAAM,IAAInV,OAEtB,gBAAA7B,GAAA,OAAAgkB,EAAA/jB,MAAA,KAAAlf,YAhBI,IAgBJ,CAAAhB,IAAA,eAAAC,MAED,SAAcikC,GACZ,OAAc,MAAPA,OAAO,EAAPA,EAASllC,KAAI,SAAAmlC,GAAM,MAAK,CAC7Bh9B,KAAMg9B,EAAOC,OACbC,cAAeF,EAAOG,gBAAgBpuB,WACtCquB,cAAeJ,EAAOK,QAAQtuB,WAC9BuS,MAAO0b,EAAOM,iBAEjBT,EA7BgC,GCAtBU,GAAyB,WACpC,SAAAA,EACmBlO,EACAC,GACjB32B,IAAA,KAAA4kC,GAAA,KAFiBlO,MAAW,KACXC,aAsBlB,OArBI12B,IAAA2kC,EAAA,EAAA1kC,IAAA,WAAAC,MAAA,eAAA0kC,EAAA3lB,MAEL,UAAgB2X,GACd,IAAAQ,QAAmC71B,KAAKm1B,WAAWW,QAAQ,CACzDZ,IAAQl1B,KAAKk1B,IAAG,mCAChBQ,OAAQ,MACRL,WAHMM,EAAIE,EAAJF,KAMR,OANwBE,EAAVE,YAOZ,KAAKz7B,kBAAe07B,GAAI,OAAOh2B,KAAKsjC,aAAa3N,GACjD,KAAKr7B,kBAAe67B,aAAc,MAAM,IAAIzV,GAC5C,KAAKpmB,kBAAek8B,UAAW,MAAM,IAAI7V,GAAegV,GACxD,QAAS,MAAM,IAAInV,OAEtB,gBAAA7B,GAAA,OAAA0kB,EAAAzkB,MAAA,KAAAlf,YAfI,IAeJ,CAAAhB,IAAA,eAAAC,MAED,SAAc4kC,GACZ,OAAOA,EAAM7lC,KAAI,SAAAsJ,GAAI,MAAK,CACxBnB,KAAMmB,EAAKw8B,uBAEdJ,EAzBmC,GCAzBK,GAAuB,WAClC,SAAAA,EACmBvO,EACAC,GACjB32B,IAAA,KAAAilC,GAAA,KAFiBvO,MAAW,KACXC,aA2BlB,OA1BI12B,IAAAglC,EAAA,EAAA/kC,IAAA,cAAAC,MAAA,eAAA+kC,EAAAhmB,MAEL,UAAmB2X,GACjB,IAAAQ,QAAmC71B,KAAKm1B,WAAWW,QAAQ,CACzDZ,IAAQl1B,KAAKk1B,IAAG,kCAChBQ,OAAQ,MACRL,WAHMM,EAAIE,EAAJF,KAMR,OANwBE,EAAVE,YAOZ,KAAKz7B,kBAAe07B,GAAI,OAAOh2B,KAAKy8B,aAAa9G,GACjD,KAAKr7B,kBAAe67B,aAAc,MAAM,IAAIzV,GAC5C,KAAKpmB,kBAAek8B,UAAW,MAAM,IAAI7V,GAAegV,GACxD,QAAS,MAAM,IAAInV,OAEtB,gBAAA7B,GAAA,OAAA+kB,EAAA9kB,MAAA,KAAAlf,YAfI,IAeJ,CAAAhB,IAAA,eAAAC,MAED,SAAcglC,GACZ,OAAe,MAARA,OAAQ,EAARA,EAAUjmC,KAAI,SAAAkmC,GAAO,MAAK,CAC/BC,UAAWD,EAAQE,SAASlvB,WAC5BmvB,YAAaH,EAAQI,aACrBC,MAAOL,EAAQM,cACfC,MAAOP,EAAQQ,eACfC,cAAeT,EAAQU,YAAYC,cAAc3vB,WACjD4vB,gBAAiBZ,EAAQU,YAAYG,sBAExChB,EA9BiC,GCCvBiB,GAAmB,WAC9B,SAAAA,EACmBxP,EACAC,EACAnE,GAEjBxyB,IAAA,KAAAkmC,GAAA,KAJiBxP,MAAW,KACXC,aAAiD,KACjDnE,cAyBlB,OAvBGvyB,IAAAimC,EAAA,EAAAhmC,IAAA,YAAAC,MAAA,eAAAijC,EAAAlkB,MAEJ,UAAiB2X,GACf,IAAAQ,QAAmC71B,KAAKm1B,WAAWW,QAAQ,CACzDZ,IAAQl1B,KAAKk1B,IAAG,yCAChBQ,OAAQ,MACRL,WAHMM,EAAIE,EAAJF,KAMR,OANwBE,EAAVE,YAOZ,KAAKz7B,kBAAe07B,GAAI,OAAOh2B,KAAKy8B,aAAa9G,GACjD,KAAKr7B,kBAAe67B,aAAc,MAAM,IAAIzV,GAC5C,KAAKpmB,kBAAek8B,UAAW,MAAM,IAAI7V,GAAegV,GACxD,QAAS,MAAM,IAAInV,OAEtB,gBAAA7B,GAAA,OAAAijB,EAAAhjB,MAAA,KAAAlf,YAfG,IAeH,CAAAhB,IAAA,eAAAC,MAED,SAAcmjC,GAAgD,IAAD3hB,EAAA,KAC3D,OAAa,MAAN2hB,OAAM,EAANA,EAAQpkC,KAAI,SAAAuW,GAAK,MAAK,CAC3B2Z,OAAa,MAAL3Z,OAAK,EAALA,EAAO0wB,iBACf5vB,UAAgB,MAALd,OAAK,EAALA,EAAO2wB,WAClBvC,WAAYliB,EAAK6Q,YAAYnxB,OAAY,MAALoU,OAAK,EAALA,EAAO4wB,kBAE9CH,EA7B6B,GCDnBI,GAAoB,WAC/B,SAAAA,EACmB5P,EACAC,GACjB32B,IAAA,KAAAsmC,GAAA,KAFiB5P,MAAW,KACXC,aA8BlB,OA7BI12B,IAAAqmC,EAAA,EAAApmC,IAAA,aAAAC,MAAA,eAAAgkC,EAAAjlB,MAEL,UAAkB2X,GAChB,IAAAQ,QAAmC71B,KAAKm1B,WAAWW,QAAQ,CACzDZ,IAAQl1B,KAAKk1B,IAAG,iCAChBQ,OAAQ,MACRL,WAHMM,EAAIE,EAAJF,KAMR,OANwBE,EAAVE,YAOZ,KAAKz7B,kBAAe07B,GAAI,OAAOh2B,KAAKy8B,aAAa9G,GACjD,KAAKr7B,kBAAe67B,aAAc,MAAM,IAAIzV,GAC5C,KAAKpmB,kBAAek8B,UAAW,MAAM,IAAI7V,GAAegV,GAExD,QAAS,MAAM,IAAInV,OAEtB,gBAAA7B,GAAA,OAAAgkB,EAAA/jB,MAAA,KAAAlf,YAhBI,IAgBJ,CAAAhB,IAAA,eAAAC,MAED,SAAcomC,GACZ,IAAMnC,EAAUmC,EACZthC,KAAKI,MAAMkhC,GACX,GAEJ,OAAc,MAAPnC,OAAO,EAAPA,EAASllC,KAAI,SAAAmlC,GAAM,MAAK,CAC7Bh9B,KAAMg9B,EAAO9tB,UACbguB,cAAeF,EAAOmC,YACtB/B,cAAeJ,EAAOhD,QAAQjrB,WAC9BqwB,WAAYpC,EAAOmC,oBAEtBF,EAjC8B,GCApBI,GAAuB,WAClC,SAAAA,EACmBhQ,EACAC,GACjB32B,IAAA,KAAA0mC,GAAA,KAFiBhQ,MAAW,KACXC,aA6BlB,OA5BI12B,IAAAymC,EAAA,EAAAxmC,IAAA,WAAAC,MAAA,eAAA0kC,EAAA3lB,MAEL,UAAgB2X,GACd,IAAAQ,QAAmC71B,KAAKm1B,WAAWW,QAAQ,CACzDZ,IAAQl1B,KAAKk1B,IAAG,kCAChBQ,OAAQ,MACRL,WAHMM,EAAIE,EAAJF,KAMR,OANwBE,EAAVE,YAOZ,KAAKz7B,kBAAe07B,GAAI,OAAOh2B,KAAKsjC,aAAa3N,GACjD,KAAKr7B,kBAAe67B,aAAc,MAAM,IAAIzV,GAE5C,QAAS,MAAM,IAAIF,OAEtB,gBAAA7B,GAAA,OAAA0kB,EAAAzkB,MAAA,KAAAlf,YAfI,IAeJ,CAAAhB,IAAA,eAAAC,MAED,SAAcwmC,GACZ,IAAM5B,EAAQ4B,EACV1hC,KAAKI,MAAMshC,GACX,GAEJ,OAAY,MAAL5B,OAAK,EAALA,EAAO7lC,KAAI,SAAAsJ,GAAI,MAAK,CACzBnB,KAAMmB,EAAKnB,KACXH,WAAYsB,EAAKtB,WAAWkP,WAC5BwwB,QAASp+B,EAAKq+B,WACdpB,MAAOj9B,EAAKs+B,gBAEfJ,EAhCiC,GCAvBK,GAAqB,WAChC,SAAAA,EACmBrQ,EACAC,GACjB32B,IAAA,KAAA+mC,GAAA,KAFiBrQ,MAAW,KACXC,aA+BlB,OA9BI12B,IAAA8mC,EAAA,EAAA7mC,IAAA,YAAAC,MAAA,eAAAijC,EAAAlkB,MAEL,UAAiB2X,GACf,IAAMmG,EAAa,CACjBgK,UAAWnQ,EAAOoQ,UAClBC,gBAAiBrQ,EAAOqQ,iBAG1B7P,QAAmC71B,KAAKm1B,WAAWW,QAAQ,CACzDZ,IAAQl1B,KAAKk1B,IAAG,2BAChBQ,OAAQ,OACRL,OAAQ,CAAEsQ,yBAA0BtQ,EAAOsQ,0BAC3ChQ,KAAM6F,IAJA7F,EAAIE,EAAJF,KAOR,OAPwBE,EAAVE,YAQZ,KAAKz7B,kBAAe07B,GAAI,OAAOh2B,KAAKy8B,aAAa9G,GACjD,KAAKr7B,kBAAe67B,aAAc,MAAM,IAAIzV,GAC5C,QAAS,MAAM,IAAIF,OAEtB,gBAAA7B,GAAA,OAAAijB,EAAAhjB,MAAA,KAAAlf,YApBI,IAoBJ,CAAAhB,IAAA,eAAAC,MAED,SAAcmjC,GACZ,OAAa,MAANA,OAAM,EAANA,EAAQpkC,KAAI,SAAAkoC,GAAW,MAAK,CACjChY,OAAmB,MAAXgY,OAAW,EAAXA,EAAaznC,KACrB4W,UAAsB,MAAX6wB,OAAW,EAAXA,EAAa3b,YACxBoY,WAAuB,MAAXuD,OAAW,EAAXA,EAAazmC,UACzBojC,IAAgB,MAAXqD,OAAW,EAAXA,EAAa/nC,GAClB+c,QAASgrB,EAAYC,gBAExBN,EAlC+B,GCArBO,GAAsB,WACjC,SAAAA,EACmB5Q,EACAC,GACjB32B,IAAA,KAAAsnC,GAAA,KAFiB5Q,MAAW,KACXC,aA+BlB,OA9BI12B,IAAAqnC,EAAA,EAAApnC,IAAA,WAAAC,MAAA,eAAAonC,EAAAroB,MAEL,UAAgB2X,GACd,IAAMmG,EAAa,CACjBgK,UAAWnQ,EAAOoQ,UAClBO,gBAAiB3Q,EAAOqQ,iBAG1B7P,QAAmC71B,KAAKm1B,WAAWW,QAAQ,CACzDZ,IAAQl1B,KAAKk1B,IAAG,yBAChBQ,OAAQ,OACRC,KAAM6F,IAHA7F,EAAIE,EAAJF,KAMR,OANwBE,EAAVE,YAOZ,KAAKz7B,kBAAe07B,GAClB,OAAOh2B,KAAKy8B,aAAa9G,GAC3B,KAAKr7B,kBAAe67B,aAAc,MAAM,IAAIzV,GAC5C,KAAKpmB,kBAAek8B,UAAW,MAAM,IAAI7V,GAAegV,GACxD,QAAS,MAAM,IAAInV,OAEtB,gBAAA7B,GAAA,OAAAonB,EAAAnnB,MAAA,KAAAlf,YArBI,IAqBJ,CAAAhB,IAAA,eAAAC,MAED,SAAcikC,GACZ,OAAc,MAAPA,OAAO,EAAPA,EAASllC,KAAI,SAAAmlC,GAAM,MAAK,CAC7Bh9B,KAAMg9B,EAAO9tB,UACbguB,cAAeF,EAAOoD,YACtBhD,cAAeJ,EAAOhlC,GACtBqoC,WAAYrD,EAAOsD,iBAEtBL,EAlCgC,GCAtBM,GAAoB,WAC/B,SAAAA,EACmBlR,EACAC,GACjB32B,IAAA,KAAA4nC,GAAA,KAFiBlR,MAAW,KACXC,aA8BlB,OA7BI12B,IAAA2nC,EAAA,EAAA1nC,IAAA,WAAAC,MAAA,eAAA0kC,EAAA3lB,MAEL,UAAgB2X,GACd,IAAMmG,EAAa,CACjBgK,UAAWnQ,EAAOoQ,UAClBO,gBAAiB3Q,EAAOqQ,iBAG1B7P,QAAmC71B,KAAKm1B,WAAWW,QAAQ,CACzDZ,IAAQl1B,KAAKk1B,IAAG,4BAChBQ,OAAQ,OACRC,KAAM6F,IAHA7F,EAAIE,EAAJF,KAMR,OANwBE,EAAVE,YAOZ,KAAKz7B,kBAAe07B,GAAI,OAAOh2B,KAAKy8B,aAAa9G,GACjD,KAAKr7B,kBAAe67B,aAAc,MAAM,IAAIzV,GAC5C,KAAKpmB,kBAAek8B,UAAW,MAAM,IAAI7V,GAAegV,GACxD,QAAS,MAAM,IAAInV,OAEtB,gBAAA7B,GAAA,OAAA0kB,EAAAzkB,MAAA,KAAAlf,YApBI,IAoBJ,CAAAhB,IAAA,eAAAC,MAED,SAAc4kC,GACZ,OAAOA,EAAM7lC,KAAI,SAAAsJ,GAAI,IAAAq/B,EAAA,MAAK,CACxBxgC,KAAMmB,EAAKs/B,cACX5gC,WAA+B,OAArB2gC,EAAEr/B,EAAKu/B,qBAAc,EAAnBF,EAAqBzxB,WACjCqvB,MAAOj9B,EAAK83B,UACZqF,MAAOn9B,EAAKg4B,kBAEfoH,EAjC8B,GCApBI,GAAmB,WAC9B,SAAAA,EACmBtR,EACAC,GACjB32B,IAAA,KAAAgoC,GAAA,KAFiBtR,MAAW,KACXC,aAelB,OAdI12B,IAAA+nC,EAAA,EAAA9nC,IAAA,UAAAC,MAAA,eAAA8nC,EAAA/oB,MAEL,UAAe2X,GACb,IAAAQ,QAAmC71B,KAAKm1B,WAAWW,QAAQ,CACzDZ,IAAQl1B,KAAKk1B,IAAG,iCAChBQ,OAAQ,MACRL,WAHMM,EAAIE,EAAJF,KAMR,OANwBE,EAAVE,YAOZ,KAAKz7B,kBAAe07B,GAAI,OAAOL,EAC/B,KAAKr7B,kBAAe67B,aAAc,MAAM,IAAIzV,GAC5C,QAAS,MAAM,IAAIF,OAEtB,gBAAA7B,GAAA,OAAA8nB,EAAA7nB,MAAA,KAAAlf,YAdI,MAcJ8mC,EAlB6B,GCAnBE,GAAyB,WACpC,SAAAA,EACmBxR,EACAC,GACjB32B,IAAA,KAAAkoC,GAAA,KAFiBxR,MAAW,KACXC,aAkBlB,OAjBI12B,IAAAioC,EAAA,EAAAhoC,IAAA,gBAAAC,MAAA,eAAAgoC,EAAAjpB,MAEL,UAAqB2X,GACnB,IAAAQ,QAAmC71B,KAAKm1B,WAAWW,QAAQ,CACzDZ,IAAQl1B,KAAKk1B,IAAG,oBAChBQ,OAAQ,MACRL,WAHMM,EAAIE,EAAJF,KAMR,OANwBE,EAAVE,YAOZ,KAAKz7B,kBAAe07B,GAAI,MAAO,CAC7B0P,gBAAiB/P,EAAKqQ,gBACtBP,UAAW9P,EAAK6P,WAElB,KAAKlrC,kBAAe67B,aAAc,MAAM,IAAIzV,GAC5C,QAAS,MAAM,IAAIF,OAEtB,gBAAA7B,GAAA,OAAAgoB,EAAA/nB,MAAA,KAAAlf,YAjBI,MAiBJgnC,EArBmC,GCAzBE,GAAoB,WAC/B,SAAAA,EACmB1R,EACAC,GACjB32B,IAAA,KAAAooC,GAAA,KAFiB1R,MAAW,KACXC,aAwBlB,OAvBG12B,IAAAmoC,EAAA,EAAAloC,IAAA,YAAAC,MAAA,eAAAijC,EAAAlkB,MAEJ,UAAiB2X,GACf,IAAAQ,QAAmC71B,KAAKm1B,WAAWW,QAAQ,CACzDZ,IAAQl1B,KAAKk1B,IAAG,oBAChBQ,OAAQ,MACRL,WAHMM,EAAIE,EAAJF,KAMR,OANwBE,EAAVE,YAOZ,KAAKz7B,kBAAe07B,GAAI,OAAOh2B,KAAKy8B,aAAa9G,GACjD,KAAKr7B,kBAAe67B,aAAc,MAAM,IAAIzV,GAC5C,QAAS,MAAM,IAAIF,OAEtB,gBAAA7B,GAAA,OAAAijB,EAAAhjB,MAAA,KAAAlf,YAdG,IAcH,CAAAhB,IAAA,eAAAC,MAED,SAAcmjC,GACZ,OAAa,MAANA,OAAM,EAANA,EAAQpkC,KAAI,SAAAmpC,GAAU,MAAK,CAChCjZ,OAAkB,MAAViZ,OAAU,EAAVA,EAAYjZ,OACpB7Y,UAAqB,MAAV8xB,OAAU,EAAVA,EAAY9xB,UACvBstB,WAAsB,MAAVwE,OAAU,EAAVA,EAAYxE,WACxBE,IAAe,MAAVsE,OAAU,EAAVA,EAAYtE,YAEpBqE,EA3B8B,GCApBE,GAA0B,WACrC,SAAAA,EACmB5R,EACAC,GACjB32B,IAAA,KAAAsoC,GAAA,KAFiB5R,MAAW,KACXC,aA0BlB,OAzBI12B,IAAAqoC,EAAA,EAAApoC,IAAA,WAAAC,MAAA,eAAAonC,EAAAroB,MAEL,UAAgB2X,GACd,IAAAQ,QAAmC71B,KAAKm1B,WAAWW,QAAQ,CACzDZ,IAAQl1B,KAAKk1B,IAAG,sBAChBQ,OAAQ,MACRL,WAHMM,EAAIE,EAAJF,KAMR,OANwBE,EAAVE,YAOZ,KAAKz7B,kBAAe07B,GAClB,OAAOh2B,KAAKy8B,aAAa9G,GAC3B,KAAKr7B,kBAAe67B,aAAc,MAAM,IAAIzV,GAC5C,QAAS,MAAM,IAAIF,OAEtB,gBAAA7B,GAAA,OAAAonB,EAAAnnB,MAAA,KAAAlf,YAfI,IAeJ,CAAAhB,IAAA,eAAAC,MAED,SAAcikC,GACZ,OAAc,MAAPA,OAAO,EAAPA,EAASllC,KAAI,SAAAmlC,GAAM,MAAK,CAC7Bh9B,KAAMg9B,EAAOkE,YACbhE,cAAeF,EAAOmE,SACtB/D,cAAeJ,EAAOoE,UAAUryB,WAChCqwB,WAAYpC,EAAOqE,SAAStyB,WAC5BsxB,WAAYrD,EAAOsE,YAEtBL,EA7BoC,GCA1BM,GAAwB,WACnC,SAAAA,EACmBlS,EACAC,GACjB32B,IAAA,KAAA4oC,GAAA,KAFiBlS,MAAW,KACXC,aAyBlB,OAxBI12B,IAAA2oC,EAAA,EAAA1oC,IAAA,WAAAC,MAAA,eAAA0kC,EAAA3lB,MAEL,UAAgB2X,GACd,IAAAQ,QAAmC71B,KAAKm1B,WAAWW,QAAQ,CACzDZ,IAAQl1B,KAAKk1B,IAAG,gCAChBQ,OAAQ,MACRL,WAHMM,EAAIE,EAAJF,KAMR,OANwBE,EAAVE,YAOZ,KAAKz7B,kBAAe07B,GAClB,OAAOh2B,KAAKy8B,aAAa9G,GAC3B,KAAKr7B,kBAAe67B,aAAc,MAAM,IAAIzV,GAC5C,QAAS,MAAM,IAAIF,OAEtB,gBAAA7B,GAAA,OAAA0kB,EAAAzkB,MAAA,KAAAlf,YAfI,IAeJ,CAAAhB,IAAA,eAAAC,MAED,SAAc4kC,GACZ,OAAY,MAALA,OAAK,EAALA,EAAO8D,SAAS3pC,KAAI,SAAAsJ,GAAI,MAAK,CAClCnB,KAAMmB,EAAKnB,KACXH,WAAYsB,EAAKnJ,GAAG+W,WACpBqvB,MAAOj9B,EAAKi9B,MACZE,MAAOn9B,EAAKm9B,cAEfiD,EA5BkC,GCAxBE,GAAuB,WAClC,SAAAA,EACmBpS,EACAC,GACjB32B,IAAA,KAAA8oC,GAAA,KAFiBpS,MAAW,KACXC,aAgBlB,OAfI12B,IAAA6oC,EAAA,EAAA5oC,IAAA,UAAAC,MAAA,eAAA8nC,EAAA/oB,MAEL,UAAe2X,GACb,IAAAQ,QAAmC71B,KAAKm1B,WAAWW,QAAQ,CACzDZ,IAAQl1B,KAAKk1B,IAAG,+BAChBQ,OAAQ,MACRL,WAHMM,EAAIE,EAAJF,KAMR,OANwBE,EAAVE,YAOZ,KAAKz7B,kBAAe07B,GAClB,OAAOL,EACT,KAAKr7B,kBAAe67B,aAAc,MAAM,IAAIzV,GAC5C,QAAS,MAAM,IAAIF,OAEtB,gBAAA7B,GAAA,OAAA8nB,EAAA7nB,MAAA,KAAAlf,YAfI,MAeJ4nC,EAnBiC,GCAvBC,GAAyB,WACpC,SAAAA,EACmBrS,EACAC,GACjB32B,IAAA,KAAA+oC,GAAA,KAFiBrS,MAAW,KACXC,aA0BlB,OAzBI12B,IAAA8oC,EAAA,EAAA7oC,IAAA,YAAAC,MAAA,eAAA6oC,EAAA9pB,MAEL,UAAiB2X,GACf,IAAAQ,QAAmC71B,KAAKm1B,WAAWW,QAAQ,CACzDZ,IAAQl1B,KAAKk1B,IAAG,kBAChBQ,OAAQ,MACRL,WAHMM,EAAIE,EAAJF,KAMR,OANwBE,EAAVE,YAOZ,KAAKz7B,kBAAe07B,GAClB,OAAOh2B,KAAKy8B,aAAa9G,GAC3B,KAAKr7B,kBAAe67B,aAAc,MAAM,IAAIzV,GAC5C,QAAS,MAAM,IAAIF,OAEtB,gBAAA7B,GAAA,OAAA6oB,EAAA5oB,MAAA,KAAAlf,YAfI,IAeJ,CAAAhB,IAAA,eAAAC,MAED,SAAcikC,GACZ,OAAc,MAAPA,OAAO,EAAPA,EAASllC,KAAI,SAAAmlC,GAAM,MAAK,CAC7Bh9B,KAAMg9B,EAAOkE,YACbhE,cAAeF,EAAOmE,SACtB/D,cAAeJ,EAAOoE,UAAUryB,WAChCqwB,WAAYpC,EAAOqE,SAAStyB,WAC5BsxB,WAAYrD,EAAOsE,YAEtBI,EA7BmC,GCAzBE,GAA0B,WACrC,SAAAA,EACmBvS,EACAC,GACjB32B,IAAA,KAAAipC,GAAA,KAFiBvS,MAAW,KACXC,aA2BlB,OA1BI12B,IAAAgpC,EAAA,EAAA/oC,IAAA,cAAAC,MAAA,eAAA+kC,EAAAhmB,MAEL,UAAmB2X,GACjB,IAAAQ,QAAmC71B,KAAKm1B,WAAWW,QAAQ,CACzDZ,IAAQl1B,KAAKk1B,IAAG,oBAChBQ,OAAQ,MACRL,WAHMM,EAAIE,EAAJF,KAMR,OANwBE,EAAVE,YAOZ,KAAKz7B,kBAAe07B,GAAI,OAAOh2B,KAAKy8B,aAAa9G,GACjD,KAAKr7B,kBAAe67B,aAAc,MAAM,IAAIzV,GAC5C,KAAKpmB,kBAAek8B,UAAW,MAAM,IAAI7V,GAAegV,GACxD,QAAS,MAAM,IAAInV,OAEtB,gBAAA7B,GAAA,OAAA+kB,EAAA9kB,MAAA,KAAAlf,YAfI,IAeJ,CAAAhB,IAAA,eAAAC,MAED,SAAcglC,GACZ,OAAe,MAARA,OAAQ,EAARA,EAAUjmC,KAAI,SAAAkmC,GAAO,MAAK,CAC/BC,UAAWD,EAAQqD,UAAUryB,WAC7BmvB,YAAaH,EAAQ/9B,KACrBo+B,MAAOL,EAAQK,MACfE,MAAOP,EAAQO,MACfE,cAAeT,EAAQ8D,SAAS9yB,WAChC4vB,gBAAiBZ,EAAQ+D,mBAE5BF,EA9BoC,GCA1BG,GAAgB,WAC3B,SAAAA,EACmB1S,EACA6H,GACjBv+B,IAAA,KAAAopC,GAAA,KAFiB1S,MAAW,KACX6H,gBAelB,OAdIt+B,IAAAmpC,EAAA,EAAAlpC,IAAA,MAAAC,MAAA,eAAAs6B,EAAAvb,MAEL,UAAW2X,GACT,IAAA2H,QAAmCh9B,KAAK+8B,cAAcjH,QAAQ,CAC5DZ,IAAQl1B,KAAKk1B,IAAG,yBAChBQ,OAAQ,MACRL,WAHMM,EAAIqH,EAAJrH,KAMR,OANwBqH,EAAVjH,YAOZ,KAAKz7B,kBAAe07B,GAAI,OAAOL,EAC/B,KAAKr7B,kBAAe67B,aAAc,MAAM,IAAIzV,GAC5C,QAAS,MAAM,IAAIF,OAEtB,gBAAA7B,GAAA,OAAAsa,EAAAra,MAAA,KAAAlf,YAdI,MAcJkoC,EAlB0B,GCDhBC,GAAe,WAC1B,SAAAA,EACmB3S,EACAC,GACjB32B,IAAA,KAAAqpC,GAAA,KAFiB3S,MAAW,KACXC,aA2BlB,OA1BG12B,IAAAopC,EAAA,EAAAnpC,IAAA,SAAAC,MAAA,eAAAmpC,EAAApqB,MAEJ,UAAcqqB,GACZ,IAIMjS,EAAuB,CAC3BZ,IAAQl1B,KAAKk1B,IAAG,yBAChBQ,OAAQ,OACRL,OAPa,CACb2S,UAAU,GAOVrS,KAAMoS,GAGRlS,QAAmC71B,KAAKm1B,WAAWW,QAAQA,GAAnDC,EAAUF,EAAVE,WAAYJ,EAAIE,EAAJF,KAEpB,OAAQI,GACN,KAAKz7B,kBAAe07B,GAClB,IAAKL,EACH,MAAM,IAAIlV,GAEZ,OAAOkV,EACT,KAAKr7B,kBAAek8B,UAAW,MAAM,IAAI7V,GAAegV,GACxD,KAAKr7B,kBAAe67B,aAAc,MAAM,IAAIzV,GAC5C,QAAS,MAAM,IAAIF,OAEtB,gBAAA7B,GAAA,OAAAmpB,EAAAlpB,MAAA,KAAAlf,YA1BG,MA0BHmoC,EA9ByB,G,+kBCArB,IAAMI,GAAe,WAC1B,SAAAA,EAA8B1jC,GAA0C/F,IAAA,KAAAypC,GAAA,KAA1C1jC,sBA2B7B,OA3ByE9F,IAAAwpC,EAAA,EAAAvpC,IAAA,UAAAC,MAAA,eAAAupC,EAAAxqB,MAE1E,UAAekN,GAA2C,IAADud,EACnDC,EACExpC,EAAqD,OAAhDupC,EAAInoC,KAAKuE,oBAAoBlB,IAAI,sBAAe,EAA7C8kC,EAAgD/iC,aAE9D,IAWE,MAAO,CACL2wB,YAXFqS,QAAsBC,WAAMvS,QAAQ,CAClCZ,IAAKtK,EAAKsK,IACVQ,OAAQ9K,EAAK8K,OACb9K,KAAMA,EAAK+K,KACXC,QAAO/yB,MAAA,GACF+nB,EAAKgL,SACJh3B,GAAS,CAAE0pC,cAAc,UAAW1pC,IAE1Cy2B,OAAQzK,EAAKyK,UAGa/W,OAC1BqX,KAAMyS,EAAcxd,MAEtB,MAAO9rB,GAAa,IAADypC,EAAAC,EACnB,MAAO,CACLzS,YAA0B,OAAdwS,EAAAzpC,EAAM2pC,eAAQ,EAAdF,EAAgBjqB,SAAU,IACtCqX,KAAoB,OAAhB6S,EAAE1pC,EAAM2pC,eAAQ,EAAdD,EAAgB5d,UAG3B,gBAAAjM,GAAA,OAAAupB,EAAAtpB,MAAA,KAAAlf,YA3ByE,MA2BzEuoC,EA5ByB,GCAfS,GAAsB,WACjC,OAAO,IAAIT,GAAmBnkC,MCCnB6kC,GAAuB,WAClC,IAAMzT,EAAM0T,GAAI1rB,QACViY,EAAauT,KAEnB,OAAO,IAAIlI,GAAuBtL,EAAKC,ICN5B0T,GAA8B,WACzC,IAAM1T,EAAauT,KAEnB,OAAO,IAAIjI,GAAuBtL,ICDvB2T,GAAgC,WAC3C,IAAM5T,EAAM0T,GAAI1rB,QACViY,EAAauT,KAEnB,OAAO,IAAItH,GAAyBlM,EAAKC,ICJ9B4T,GAAoB,WAC/B,IAAM7T,EAAM0T,GAAI1rB,QACViY,EAAauT,KAEnB,OAAO,IAAIxQ,GAAoBhD,EAAKC,ICLzB6T,GAAwB,WACnC,IAAM9T,EAAM0T,GAAI1rB,QACViY,EAAauT,KAEnB,OAAO,IAAI9P,GAAwB1D,EAAKC,ICJ7B8T,GAAqB,WAChC,IAAM/T,EAAM0T,GAAI1rB,QACViY,EAAauT,KAEnB,OAAO,IAAInQ,GAAqBrD,EAAKC,ICH1B+T,GAAqB,WAChC,IAAMhU,EAAM0T,GAAI1rB,QACViY,EAAauT,KAEnB,OAAO,IAAIzT,GAAqBC,EAAKC,ICL1BgU,GAA0B,WACrC,IAAMjU,EAAM0T,GAAIzrB,cACVisB,EAAyBR,GAAIxrB,4BAC7B+X,EAAauT,KAEnB,OAAO,IAAItS,GAA0BlB,EAAKkU,EAAwBjU,ICJvDkU,GAAsB,WACjC,IAAMnU,EAAM0T,GAAI1rB,QACViY,EAAauT,KAEnB,OAAO,IAAIlR,GAAsBtC,EAAKC,ICJ3BmU,GAAc,WACzB,IAAMpU,EAAM0T,GAAI1rB,QACViY,EAAauT,KAEnB,OAAO,IAAIhS,GAAcxB,EAAKC,ICLnBoU,GAAmB,WAC9B,IAAMrU,EAAM0T,GAAI1rB,QACViY,EAAauT,KAEnB,OAAO,IAAIzR,GAAmB/B,EAAKC,ICJxBqU,GAAoB,WAC/B,IAAMtU,EAAM0T,GAAItrB,mBACV6X,EAAauT,KAEnB,OAAO,IAAInR,GAAoBrC,EAAKC,ICJzBsU,GAAmB,WAC9B,IAAMvU,EAAM0T,GAAItrB,mBACV6X,EAAauT,KAEnB,OAAO,IAAIvR,GAAmBjC,EAAKC,ICJxBuU,GAAqB,WAChC,IAAMxU,EAAM0T,GAAI1rB,QACViY,EAAauT,KAEnB,OAAO,IAAI7R,GAAqB3B,EAAKC,ICH1BwU,GAAsB,WACjC,IAAMzU,EAAM0T,GAAI1rB,QACViY,EAAauT,KAEnB,OAAO,IAAIrI,GAAsBnL,EAAKC,ICL3ByU,GAAqB,WAChC,IAAM1U,EAAM0T,GAAI1rB,QACViY,EAAauT,KAEnB,OAAO,IAAI9Q,GAAqB1C,EAAKC,ICH1B0U,GAAsB,WACjC,IAAM3U,EAAM0T,GAAI1rB,QACViY,EAAauT,KAEnB,OAAO,IAAI5L,GAAa5H,EAAKC,ICLlB2U,GAAgB,WAC3B,IAAM5U,EAAM0T,GAAI1rB,QACViY,EAAauT,KAEnB,OAAO,IAAIzL,GAAgB/H,EAAKC,ICJrB4U,GAAe,WAC1B,IAAM7U,EAAM0T,GAAI1rB,QACViY,EAAauT,KAEnB,OAAO,IAAItL,GAAelI,EAAKC,ICJpB6U,GAAuB,WAClC,IAAM9U,EAAM0T,GAAI1rB,QACViY,EAAauT,KAEnB,OAAO,IAAIlL,GAAuBtI,EAAKC,ICH5B8U,GAAuB,WAClC,IAAM/U,EAAM0T,GAAI1rB,QACViY,EAAauT,KAEnB,OAAO,IAAInI,GAAuBrL,EAAKC,ICL5B+U,GAAe,WAC1B,IAAMhV,EAAM0T,GAAI1rB,QACViY,EAAauT,KAEnB,OAAO,IAAIjL,GAAevI,EAAKC,ICNpBgV,GAAkB,WAC7B,SAAAA,EAA8BnZ,GAA0BxyB,IAAA,KAAA2rC,GAAA,KAA1BnZ,cAAwB,KAE9CoZ,YAAc,GAgJrB,OAlJyD3rC,IAAA0rC,EAAA,EAAAzrC,IAAA,UAAAC,MAI1D,SAAiB0rC,GAGf,OAFArqC,KAAKoqC,aAAeC,EACpBrqC,KAAKoqC,aAAe,OACbpqC,OACR,CAAAtB,IAAA,WAAAC,MAED,SACE2/B,EACAgM,EACA9L,EACA+L,GAEA,IAAAC,EAAiCF,EAAgBtsB,MAAM,KAAIysB,EAAArmC,IAAAomC,EAAA,GAApDjM,EAASkM,EAAA,GAAEC,EAAWD,EAAA,GAC7BE,EAAqCJ,EAAkBvsB,MAAM,KAAI4sB,EAAAxmC,IAAAumC,EAAA,GAA1DlM,EAAWmM,EAAA,GAAEC,EAAaD,EAAA,GAE3BE,EAAY9qC,KAAKgxB,YAAYntB,MAAMy6B,GACzCwM,EAAUC,SAAS/kC,SAASu4B,IAC5BuM,EAAUE,WAAWhlC,SAAS0kC,IAE9B,IAAMO,EAAUjrC,KAAKgxB,YAAYntB,MAAM26B,GACvCyM,EAAQF,SAAS/kC,SAASy4B,IAC1BwM,EAAQD,WAAWhlC,SAAS6kC,IAE5B,IAAMK,EAAqBlrC,KAAKgxB,YAAYnxB,OAAOirC,EAAW,oBACxDK,EAAuBnrC,KAAKgxB,YAAYnxB,OAAOorC,EAAS,oBAE9D,OAAOjrC,KAAKorC,QAAQ,sBAAsBF,EAAkB,SAAMC,KACnE,CAAAzsC,IAAA,YAAAC,MAED,SAAW+/B,GACT,OAAO1+B,KAAKorC,QAAQ,8BAA2B1M,KAChD,CAAAhgC,IAAA,iBAAAC,MAED,SAAgBmH,GACd,OAAO9F,KAAKorC,QAAQ,6BAA0BtlC,KAC/C,CAAApH,IAAA,kBAAAC,MAED,SAAiBy1B,GACf,OAAOp0B,KAAKorC,QAAQ,eAAehX,KACpC,CAAA11B,IAAA,kBAAAC,MAED,SAAiBy1B,GACf,OAAIA,EACKp0B,KAAKorC,QAAQ,eAAehX,GAE9Bp0B,OACR,CAAAtB,IAAA,iBAAAC,MAED,SAAgB0sC,GAMd,OALArrC,KAAKorC,QAAQ,SAASC,EAAYxlC,MAClCwlC,EAAYC,UAAYtrC,KAAKorC,QAAQ,kCAA4BC,EAAYC,UAC7ED,EAAYvM,WAAa9+B,KAAKorC,QAAQ,gCAA6BC,EAAYvM,WAC/EuM,EAAYrM,WAAah/B,KAAKorC,QAAQ,gCAA6BC,EAAYrM,WAC/EqM,EAAYnF,YAAclmC,KAAKorC,QAAQ,wCAA+BC,EAAYnF,YAC3ElmC,OACR,CAAAtB,IAAA,kBAAAC,MAED,SAAiB4sC,EAA+CC,GAAkE,IAADrrB,EAAA,KAC/H,OAAIorB,EACKvrC,KACJorC,QAAQ,sEACRA,QAAQ,IAEPI,EAAa7rC,QACfK,KAAKorC,QAAQ,iBAAaI,EAAa7rC,OAAS,EAAI,KAAO,KAAG,iCAC9D6rC,EAAaC,SAAQ,SAAAptB,GAAU8B,EAAKurB,eAAertB,MAC5Cre,KAAKorC,QAAQ,KAEbprC,KACJorC,QAAQ,sEACRA,QAAQ,MAGhB,CAAA1sC,IAAA,gBAAAC,MAED,SAAe0gC,EAA4BmM,GAAkE,IAADG,EAAA,KAC1G,OAAKtM,GAKCmM,EAAa7rC,QACfK,KAAKorC,QAAQ,cAAaI,EAAa7rC,OAAS,EAAI,IAAM,IAAE,+BAC5D6rC,EAAaC,SAAQ,SAAAptB,GAAUstB,EAAKD,eAAertB,MAC5Cre,KAAKorC,QAAQ,KAPfprC,KACJorC,QAAQ,4DACRA,QAAQ,MAYd,CAAA1sC,IAAA,aAAAC,MAED,SAAYitC,GAAuD,IAADC,EAAA,KAmBhE,OAlBA7rC,KAAKorC,QAAQ,qBAAkBQ,EAAQE,OAEnCF,EAAQG,oBAAsBH,EAAQI,aAAarsC,QACrDK,KAAKorC,QAAQ,mEACbQ,EAAQI,aAAaP,SAAQ,SAAAptB,GAAUwtB,EAAKH,eAAertB,OAE3Dre,KACGorC,QAAQ,6EAGTQ,EAAQvM,mBAAqBuM,EAAQtM,YAAY3/B,QACnDK,KAAKorC,QAAQ,4EACbQ,EAAQtM,YAAYmM,SAAQ,SAAAQ,GAAgBJ,EAAKH,eAAeO,OAEhEjsC,KACGorC,QAAQ,0DAGNprC,OACR,CAAAtB,IAAA,cAAAC,MAED,SAAa6gC,EAAwC0M,GAA0D,IAADC,EAAA,KAC5G,OAAK3M,GAAkC0M,EAASvsC,QAK9CK,KACGorC,QAAQ,yCAAqCc,EAASvsC,OAAS,EAAI,IAAM,IAAE,aAAYusC,EAASvsC,OAAS,EAAI,IAAM,IAAE,eAAWusC,EAASvsC,OAAS,EAAI,IAAM,IAAE,MAC9JyrC,QAAQ,IAEXc,EAAST,SAAQ,SAAAG,GAAaO,EAAKC,WAAWR,MAEvC5rC,KAAKorC,QAAQ,KAVbprC,KACJorC,QAAQ,4DACRA,QAAQ,MAUd,CAAA1sC,IAAA,qBAAAC,MAED,SAAoB0tC,GAClB,OAAIA,EACKrsC,KACJorC,QAAQ,IACRA,QAAQ,gCAA0BiB,GAEhCrsC,OACR,CAAAtB,IAAA,QAAAC,MAED,WACE,OAAOqB,KAAKoqC,gBACbD,EAnJ4B,GCGlBmC,GAAuB,WAClC,IAAMpX,EAAM0T,GAAI1rB,QACViY,EAAauT,KAEnB,OAAO,IAAIxK,GACThJ,EACAC,ECRK,IAAIgV,GAAmB7pC,OCEnBisC,GAAuB,WAClC,IAAMrX,EAAM0T,GAAI1rB,QACViY,EAAauT,KAEnB,OAAO,IAAI1I,GAAuB9K,EAAKC,ICJ5BqX,GAAsB,WACjC,IAAMtX,EAAM0T,GAAI1rB,QACViY,EAAauT,KAEnB,OAAO,IAAIzI,GAAsB/K,EAAKC,ICJ3BsX,GAA4B,WACvC,IAAMvX,EAAM0T,GAAI1rB,QACViY,EAAauT,KAEnB,OAAO,IAAIvI,GAA4BjL,EAAKC,ICJjCuX,GAAoB,WAC/B,IAAMxX,EAAM0T,GAAI1rB,QACViY,EAAauT,KAEnB,OAAO,IAAIzN,GAAoB/F,EAAKC,ICJzBwX,GAAe,WAC1B,IAAMzX,EAAM0T,GAAI1rB,QACViY,EAAauT,KAEnB,OAAO,IAAI1N,GAAe9F,EAAKC,ICJpByX,GAAe,WAC1B,IAAM1X,EAAM0T,GAAI1rB,QACViY,EAAauT,KAEnB,OAAO,IAAIvN,GAAejG,EAAKC,ICJpB0X,GAAyB,WACpC,IAAM3X,EAAM0T,GAAI1rB,QACViY,EAAauT,KAEnB,OAAO,IAAItN,GAAyBlG,EAAKC,ICL9B2X,GAA2B,WACtC,IAAM5X,EAAM0T,GAAI1rB,QACViY,EAAauT,KAEnB,OAAO,IAAInN,GAA2BrG,EAAKC,ICJhC4X,GAAgB,WAC3B,IAAM7X,EAAM0T,GAAI1rB,QACViY,EAAauT,KAEnB,OAAO,IAAI9M,GAAgB1G,EAAKC,ICJrB6X,GAAqB,WAChC,IAAM9X,EAAM0T,GAAI1rB,QACViY,EAAauT,KAEnB,OAAO,IAAIpN,GAAqBpG,EAAKC,ICJ1B8X,GAAgB,WAC3B,IAAM/X,EAAM0T,GAAI1rB,QACViY,EAAauT,KAEnB,OAAO,IAAIrN,GAAgBnG,EAAKC,ICHrB+X,GAAiB,WAC5B,IAAMhY,EAAM0T,GAAI1rB,QACViY,EAAauT,KAEnB,OAAO,IAAI5M,GAAiB5G,EAAKC,ICLtBgY,GAA0B,WACrC,IAAMjY,EAAM0T,GAAI1rB,QACViY,EAAauT,KAEnB,OAAO,IAAItM,GAAyBlH,EAAKC,ICH9BiY,GAAwB,WACnC,IAAMlY,EAAM0T,GAAI1rB,QACViY,EAAauT,KAEnB,OAAO,IAAIrM,GAAwBnH,EAAKC,ICL7BkY,GAAiB,WAC5B,IAAMnY,EAAM0T,GAAI1rB,QACViY,EAAauT,KAEnB,OAAO,IAAIpM,GAAiBpH,EAAKC,ICHtBmY,GAAqC,WAChD,IAAMpY,EAAM0T,GAAI1rB,QACViY,EAAauT,KAEnB,OAAO,IAAIlM,GAA8BtH,EAAKC,ICJnCoY,GAAiB,WAC5B,IAAMrY,EAAM0T,GAAI1rB,QACViY,EAAauT,KACnB,OAAO,IAAId,GAAiB1S,EAAKC,ICJtBqY,GAAgB,WAC3B,IAAMtY,EAAM0T,GAAI1rB,QACViY,EAAauT,KAEnB,OAAO,IAAIb,GAAgB3S,EAAKC,ICHrBsY,GAAiB,WAC5B,IAAMvY,EAAM0T,GAAI1rB,QACViY,EAAauT,KAEnB,OAAO,IAAI1P,GAAiB9D,EAAKC,ICLtBuY,GAAmB,WAC9B,IAAMxY,EAAM0T,GAAI1rB,QACViY,EAAauT,KAEnB,OAAO,IAAIxP,GAAmBhE,EAAKC,ICJxBwY,GAAuB,WAClC,IAAMzY,EAAM0T,GAAI1rB,QACViY,EAAauT,KAEnB,OAAO,IAAItP,GAAuBlE,EAAKC,ICL5ByY,GAAmB,WAC9B,IAAMlU,EAAmBiU,KACnBxT,ECDkC,WACxC,IAAMnJ,EAAc1wB,IACdo5B,EAAmBiU,KAEzB,OAAO,IAAIlU,GAA6BzI,EAAa0I,GDHtBmU,GAE/B,OAAO,IAAI3T,GAAmBR,EAAkBS,IEHrC2T,GAA2B,WACtC,IAAM5Y,EAAM0T,GAAI1rB,QACViY,EAAauT,KAEnB,OAAO,IAAI5N,GAA2B5F,EAAKC,ICJhC4Y,GAAkB,WAC7B,SAAAA,EACmB7Y,EACAC,GACjB32B,IAAA,KAAAuvC,GAAA,KAFiB7Y,MAAW,KACXC,aA6BlB,OA5BI12B,IAAAsvC,EAAA,EAAArvC,IAAA,eAAAC,MAAA,eAAAqvC,EAAAtwB,MAEL,UAAoB2X,GAClB,IAAMS,EAAuB,CAC3BZ,IAAQl1B,KAAKk1B,IAAG,2BAChBQ,OAAQ,MACRL,UAGFQ,QAAmC71B,KAAKm1B,WAAWW,QAAQA,GAAnDC,EAAUF,EAAVE,WAAYJ,EAAIE,EAAJF,KAEpB,OAAQI,GACN,KAAKz7B,kBAAe07B,GAClB,IAAKL,EACH,MAAM,IAAIlV,GAEZ,OAAOzgB,KAAKy8B,aAAa9G,GAC3B,KAAKr7B,kBAAe67B,aAAc,MAAM,IAAIzV,GAC5C,QAAS,MAAM,IAAIF,OAEtB,gBAAA7B,GAAA,OAAAqvB,EAAApvB,MAAA,KAAAlf,YApBI,IAoBJ,CAAAhB,IAAA,eAAAC,MAED,SAAcsvC,GACZ,OAAe,MAARA,OAAQ,EAARA,EAAUvwC,KAAI,SAAAwwC,GAAK,MAAK,CAC7BxnC,WAAYwnC,EAAMC,WAClBtwC,GAAIqwC,EAAME,GACVtC,MAAOoC,EAAMG,cAEhBN,EAhC4B,GCAlBO,GAAoB,WAC/B,SAAAA,EACmBpZ,EACAC,GACjB32B,IAAA,KAAA8vC,GAAA,KAFiBpZ,MAAW,KACXC,aAgClB,OA/BI12B,IAAA6vC,EAAA,EAAA5vC,IAAA,aAAAC,MAAA,eAAA4vC,EAAA7wB,MAEL,UAAkB2X,GAChB,IAAMS,EAAuB,CAC3BZ,IAAQl1B,KAAKk1B,IAAG,mCAChBQ,OAAQ,MACRL,UAGFQ,QAAmC71B,KAAKm1B,WAAWW,QAAQA,GAAnDC,EAAUF,EAAVE,WAAYJ,EAAIE,EAAJF,KAEpB,OAAQI,GACN,KAAKz7B,kBAAe07B,GAClB,IAAKL,EACH,MAAM,IAAIlV,GAEZ,OAAOzgB,KAAKu2B,WAAWZ,GACzB,KAAKr7B,kBAAe67B,aAAc,MAAM,IAAIzV,GAC5C,QAAS,MAAM,IAAIF,OAEtB,gBAAA7B,GAAA,OAAA4vB,EAAA3vB,MAAA,KAAAlf,YApBI,IAoBJ,CAAAhB,IAAA,aAAAC,MAED,SAAY6vC,GACV,MAAO,CACL3wC,GAAI2wC,EAAaJ,GACjBK,IAAKD,EAAaE,IAClBC,IAAKH,EAAaI,IAClB9C,MAAO0C,EAAaH,MACpBQ,OAAQL,EAAaM,OACrBC,YAAaP,EAAaQ,YAAYvpC,mBAEzC6oC,EAnC8B,GCCpBW,GAA0B,WACrC,IAAM/Z,EAAM0T,GAAI1rB,QACViY,EAAauT,KAEnB,OAAO,IAAIqF,GAAmB7Y,EAAKC,ICJxB+Z,GAA6B,WACxC,IAAMha,EAAM0T,GAAI1rB,QACViY,EAAauT,KAEnB,OAAO,IAAI4F,GAAqBpZ,EAAKC,ICN1Bga,GAA0B,WACrC,OAAOzmC,eAACkrB,GAAY,CAClBC,iBAAkBoW,KAClBnW,gBAAiB6V,Q,mBCLR9gC,GAASc,WAAWC,OAAO,CACtCO,UAAW,CACTC,KAAM,GAER2d,QAAS,CACP3d,KAAM,GAGRS,oBAAqB,CACnBJ,aAAc,MACdC,UAAW,MACXC,YAAa,OACbC,WAAY,OACZb,aAAc,EACdC,QAAS,OACTC,cAAe,MACfC,eAAgB,UAElBY,YAAa,CACXd,QAAS,OACTC,cAAe,MACfC,eAAgB,gBAChBE,KAAM,GAGRC,gBAAiB,CACfJ,cAAe,MACf0H,WAAY,UAGdrH,WAAY,CACVR,QAAS,GACTqI,WAAY,MACZi9B,cAAe,e,qkBClBnB,IAAMC,GAAMC,qBAECC,GAAoC,SAAH3nC,GAIvC,IAHL4nC,EAAc5nC,EAAd4nC,eACAl4B,EAAc1P,EAAd0P,eACAhK,EAAS1F,EAAT0F,UAEM5K,EAAQ0F,KACN4C,EAAmBC,KAAnBD,eACF0a,EAAc5E,KACZ/N,EAAaC,KAAbD,SACAmF,EAAgBtB,KAAhBsB,YACAQ,EAAgBlU,yBAAe+T,IAA/BG,YACR1U,EAAgCC,yBAAegD,GAAe9C,EAAAC,IAAAJ,EAAA,GAAvDwT,EAASrT,EAAA,GAAEsT,EAAUtT,EAAA,GAEtBmH,EAAcN,IAEpBipB,0BACEpvB,uBAAY,WACV4S,GAAW,GAEX,IAAMg4B,EAAuC,CAC3CC,WAAYh3B,GAGd82B,EACGG,OAAOF,GACP//B,KAAKwI,GACLtI,MAAM8V,GACN5V,SAAQ,kBAAM2H,GAAW,QAC3B,CAACiB,KASN,OACEhQ,eAACknC,WAAY,CAAChnC,MAAOC,GAAOsB,UAAUnB,SACpCC,gBAACyC,OAAG,CAAC9C,MAAOC,GAAOkf,QAAQ/e,SAAA,CACzBC,gBAACC,UAAM,CAACiG,QAAQ,SAASvG,MAAK/F,MAAA,GACzBgG,GAAOwB,iBAAe,IACzBG,gBAAoBc,EAAYoB,UAAS,OACzC1D,SAAA,CACAN,eAACyH,QAAI,CAACzG,QAAQ,YAAYd,MAAK/F,MAAA,GAAOgG,GAAOyB,YAAU,IAAEf,MAAO7G,EAAME,OAAOnC,QAAQuI,SAAE,mCAGtFwO,EACG9O,eAACmnC,qBAAiB,CAAC3/B,KAAK,QAAQ3G,MAAO+B,EAAYoB,YACnDhE,eAAC0P,GAAa,OAGpB1P,eAACgD,OAAG,CAAC9C,MAAOC,GAAOkf,QAAQ/e,SACxBwO,EACG9O,eAACyE,GAAO,CAACrB,KAAK,iCACd7C,gBAAComC,GAAIS,UAAS,CACdC,cAAe,CACbC,gBAAiB,CAAE3gB,kBAAmB,IACtC4gB,iBAAkB,CAAE1mC,MAAO7G,EAAME,OAAOrB,YACxC2uC,qBAAsB,CAAE1lC,gBAAiB9H,EAAME,OAAOnC,OACtD0vC,YAAa,CAAE3lC,gBAAiBc,EAAYoB,YAC5C1D,SAAA,CAEFN,eAAC2mC,GAAIe,OAAM,CAACztC,KAAiB,aAA6B0tC,UAhC5C,WAAH,OAAsB3nC,eAACqC,GAAiB,OAiCnDrC,eAAC2mC,GAAIe,OAAM,CAACztC,KAAK,SAAS0tC,UAhCd,WAAH,OAAsB3nC,eAAC2E,GAAe,CAACC,UAAWA,OAiC3D5E,eAAC2mC,GAAIe,OAAM,CAACztC,KAAMoQ,EAAW,QAAU,gBAAiBs9B,UAhC3C,WAAH,OAAsB3nC,eAAC4H,GAAgB,OAiCjD5H,eAAC2mC,GAAIe,OAAM,CAACztC,KAAMoQ,EAAW,MAAQ,uBAAqBs9B,UAhCzC,WAAH,OAAsB3nC,eAACkI,GAAoB,OAiCzDlI,eAAC2mC,GAAIe,OAAM,CAACztC,KAAMoQ,EAAW,QAAU,wBAAsBs9B,UAhC3C,WAAH,OAAsB3nC,eAAC2M,GAAqB,YAqCjE3M,eAAC2O,GAAoB,CAACC,eAAgBA,IACtC5O,eAACuP,GAAkB,CAACX,eAAgBA,IACpC5O,eAAC4N,GAAqB,UCzFjBg6B,GAAsB,WACjC,OACE5nC,eAAC6mC,GAAQ,CACPC,eAAgB9C,KAChBp1B,eAAgB01B,KAChB1/B,UAAWy/B,QCPJwD,GAAe5mC,WAAWC,OAAO,CAC5C4mC,YAAa,CACXpmC,KAAM,EACNN,QAAS,GACT4a,SAAU,KACV7S,MAAO,OACP6e,iBAAkB,U,+NCLf,IAAM7nB,GAASc,WAAWC,OAAO,CACtCO,UAAW,CACTC,KAAM,EACNuH,WAAY,WAEdoW,Q,mWAAOllB,CAAA,GACF0tC,GAAaC,aAElBC,OAAQ,CACNC,cAAe,IAGjBC,gBAAiB,CACf1mC,cAAe,cACf0H,WAAY,SACZ0J,OAAQ,OACRvR,QAAS,IAEX8mC,QAAS,CACP5mC,QAAS,OACTC,cAAe,MACf0H,WAAY,SACZzH,eAAgB,mBCLPqpB,GAA8B,SAAH3rB,GAKjC,IAJLipC,EAAQjpC,EAARipC,SACAnvB,EAAS9Z,EAAT8Z,UACAC,EAAU/Z,EAAV+Z,WACAmvB,EAAQlpC,EAARkpC,SAEMpuC,EAAQ0F,KACRsd,EAAc5E,KACZrD,EAAaD,KAAbC,SACRszB,EAAuC9lC,KAA/B4C,EAAUkjC,EAAVljC,WAAYqU,EAAc6uB,EAAd7uB,eACpB/W,EAAsCC,mBAAS,IAAGgD,EAAAhK,IAAA+G,EAAA,GAA3C6lC,EAAW5iC,EAAA,GAAE6iC,EAAc7iC,EAAA,GAClCG,EAAkDnD,mBAAS,IAAGoD,EAAApK,IAAAmK,EAAA,GAAvD6f,EAAiB5f,EAAA,GAAE6f,EAAoB7f,EAAA,GACxCiJ,EAAanP,4BAAkBrB,IAC/B0R,EAAWrQ,4BAAkBiQ,IA8BnC,OA5BA0b,0BACEpvB,uBAAY,WACV4S,GAAW,GAEXo5B,EACGxtC,MACAqM,KAAK,WAAD,IAAAqT,EAAArF,MAAC,UAAMhb,GACVwf,EAAexf,GACV+a,EAAS/a,EAAMsiB,UAAW,QAC5BtV,MAAK,SAAA+O,GAAUwyB,EAAexyB,MAC9B7O,MAAM2O,QAAQzf,OAEZ2e,EAAS/a,EAAMqhB,QAAS,SAC1BrU,MAAK,SAAAnO,GAAgB8sB,EAAqB9sB,MAC1CqO,MAAM2O,QAAQzf,UAClB,gBAAA6f,GAAA,OAAAoE,EAAAnE,MAAA,KAAAlf,YATK,IAULkQ,MAAM8V,GACN5V,SAAQ,kBAAM2H,GAAW,MAE5Bq5B,EACGnB,SACAjgC,MAAK,SAAA+I,GACJE,EAAS,CAAEF,QAAOC,YAAaD,EAAM,GAAGa,mBAEzC1J,MAAM8V,KACR,KAIHzc,gBAAC2mC,WAAY,CAAChnC,MAAOC,GAAOsB,UAAUnB,SAAA,CACpCN,eAACiD,cAAU,CAAC/C,MAAOC,GAAO4nC,OAAOznC,SAC/BC,gBAACyC,OAAG,CAAC9C,MAAOC,GAAOkf,QAAQ/e,SAAA,CACzBN,eAACwoC,GAAU,CACTplC,KAAK,OACLqlC,KAAMzoC,eAACoM,WAAsB,CAAC5E,KAAM,GAAI3G,MAAO7G,EAAME,OAAOb,KAAMY,KAAK,oBAEzEsG,gBAACC,UAAM,CAACkoC,MAAI,EAAChoC,QAAS,GAAGJ,SAAA,CACvBN,eAACuZ,GAAW,CAACtV,MAAM,gBAAgBhK,KAAK,cACxC+F,eAACuZ,GAAW,CAACtV,MAAM,yCAAgChK,KAAK,kBAE1DsG,gBAACC,UAAM,CAACkoC,MAAI,EAAChoC,QAAS,GAAGJ,SAAA,CACvBN,eAACuZ,GAAW,CAACtV,MAAM,oCAAiChK,KAAK,eACzD+F,eAACuZ,GAAW,CAACtV,MAAM,qCAAkChK,KAAK,iBAE5DsG,gBAACkb,UAAM,CAACktB,EAAG,GAAGroC,SAAA,CACZN,eAACic,GAAY,CAAC5F,SAAUiyB,IACxBtoC,eAAC6Z,GAAuB,CAACxD,SAAUqP,YAIxCvgB,KAAgBnF,eAACP,GAAc,CAACwZ,WAAYA,EAAYD,UAAWA,IACpEhZ,eAACuP,GAAkB,CAAC0J,WAAYA,EAAYD,UAAWA,IACvDhZ,eAAC4N,GAAqB,QCnFfg7B,GAAmB,WAC9B,OACE5oC,eAAC6qB,GAAK,CACJ7R,UAAWurB,KACX4D,SAAUlE,KACVhrB,WAAYurB,KACZ4D,SAAUlE,Q,+NCPT,IAAM/jC,GAASc,WAAWC,OAAO,CACtCO,UAAW,CACTC,KAAM,EACNuH,WAAY,WAEdoW,Q,mWAAOllB,CAAA,GACF0tC,GAAaC,aAElBC,OAAQ,CACNC,cAAe,IAGjBC,gBAAiB,CACf1mC,cAAe,cACf0H,WAAY,SACZ0J,OAAQ,OACRvR,QAAS,IAEX8mC,QAAS,CACP5mC,QAAS,OACTC,cAAe,MACf0H,WAAY,SACZzH,eAAgB,mB,qkBCPb,IAAMwpB,GAAoD,SAAH9rB,GAIvD,IAHL2pC,EAAkB3pC,EAAlB2pC,mBACA/pB,EAAmB5f,EAAnB4f,oBACAspB,EAAQlpC,EAARkpC,SAEMpuC,EAAQ0F,KACN4C,EAAmBC,KAAnBD,eACA+H,EAAaC,KAAbD,SACRy+B,EAAoC/pB,KAA5BvP,EAAWs5B,EAAXt5B,YAAarK,EAAU2jC,EAAV3jC,WACrB7J,EAAgCC,yBAAegD,IAAe9C,EAAAC,IAAAJ,EAAA,GAAvDwT,EAASrT,EAAA,GAAEsT,EAAUtT,EAAA,GAC5BqJ,EAA8CvJ,yBAAeijB,IAAqBzZ,EAAArJ,IAAAoJ,EAAA,GAA3Eka,EAAeja,EAAA,GAAE6e,EAAkB7e,EAAA,GACpCgkC,EAAmBnpC,4BAAkB6f,IACrCxP,EAAWrQ,4BAAkBif,IAC7B7B,EAAc5E,KAEdxV,EAAcN,IAEpBipB,0BACEpvB,uBAAY,WACV4S,GAAW,GAEXq5B,EACGnB,SACAjgC,KAAKiJ,GACL/I,MAAM8V,GAET6rB,EACG5B,SACAjgC,KAAKwI,GACLtI,MAAM8V,GACN5V,SAAQ,kBAAM2H,GAAW,QAC3B,KAGL,IAAMlM,EAAe,SAACC,EAAwC7M,GAC5D2tB,GAAmB,SAAApmB,GAAY,OAAArD,MAAA,GAAUqD,GAAY,GAAAuF,IAAA,GAAGD,EAAQ7M,QAGlE,OACEsK,gBAAC2mC,WAAY,CAAChnC,MAAOC,GAAOsB,UAAUnB,SAAA,CACpCN,eAACgD,OAAG,CAAC9C,MAAOC,GAAOkf,QAAQ/e,SACxBwO,EACG9O,eAACyE,GAAO,CAACrB,KAAK,iCACd7C,gBAAA2C,YAAA,CAAA5C,SAAA,CACEN,eAACwoC,GAAU,CACTplC,KAAK,YACLqlC,KAAMzoC,eAACoM,WAAsB,CAAC5E,KAAM,GAAI3G,MAAO7G,EAAME,OAAOb,KAAMY,KAAK,oBAEzEsG,gBAAC0C,cAAU,CAAA3C,SAAA,CACTC,gBAACC,UAAM,CAACkG,MAAM,SAASgV,GAAI,EAAEpb,SAAA,CAC3BN,eAACgpC,WAAQ,CACPpzB,OAAQoJ,EAAgBP,MAAQ,UAAY,YAC5C1d,QAAS,kBAAM8B,EAAa,SAAUmc,EAAgBP,QACtD5d,MAAO+B,EAAYoB,YAErBhE,eAACyH,QAAI,CAAAnH,SAAC,mCAEP0e,EAAgBP,OACfle,gBAACkb,UAAM,CAAC/a,QAAS,EAAEJ,SAAA,CACjBC,gBAACyC,OAAG,CAAC9C,MAAO,CACVsB,eAAgB6I,EAAW,SAAW,gBACtC9I,cAAe8I,EAAW,SAAW,MACrCpB,WAAY,YACZ3I,SAAA,CACAN,eAAC6D,GAAS,CACRI,MAAM,+DACNhO,OAAsB,MAAf+oB,OAAe,EAAfA,EAAiB3S,YAAa,2CACrChI,aAAc,SAACjB,GAAY,OAAKP,EAAa,YAAaO,IAC1DkB,UAAW,GACXpE,MAAO,CACLiJ,MAAOkB,EAAW,OAAS,IAC3BtI,aAAcsI,EAAW,GAAK,KAGlCrK,eAACW,UAAM,CACLC,MAAM,2BACN+F,SAAU,SAAAC,GAAK,OAAI5G,eAACoM,WAAsBjS,GAAA,CAACF,KAAK,QAAW2M,KAC3D/F,MAAO+B,EAAYoB,UACnBlD,UAAW9G,EAAME,OAAOnC,MACxBgJ,QAAS,kBAAMgoC,GAAiB,IAChC7oC,MAAO,CAAEiJ,MAAOkB,EAAW,OAAS,oBAGxCrK,eAAC+iB,GAAmB,UAIzB5d,KAAgBnF,eAACP,GAAc,SAIxCO,eAACuP,GAAkB,CAACuP,oBAAqBA,IACzC9e,eAAC4N,GAAqB,IACtB5N,eAACsf,GAAkB,IACnBtf,eAACwiB,GAAiB,QC5GXymB,GAA8B,WACzC,OACEjpC,eAACgrB,GAAgB,CACf6d,mBAAoB1E,KACpBrlB,oBAAqB2lB,KACrB2D,SAAUlE,Q,+NCNT,IAAM/jC,GAASc,WAAWC,OAAO,CACtCO,UAAW,CACTC,KAAM,EACNuH,WAAY,WAEdoW,Q,mWAAOllB,CAAA,GACF0tC,GAAaC,aAElBC,OAAQ,CACNC,cAAe,IAGjBkB,gBAAiB,CACf//B,MAAO,OACP5H,cAAe,MACfC,eAAgB,iBAGlBymC,gBAAiB,CACf1mC,cAAe,cACf0H,WAAY,SACZ0J,OAAQ,OACRvR,QAAS,IAEX8mC,QAAS,CACP5mC,QAAS,OACTC,cAAe,MACf0H,WAAY,SACZzH,eAAgB,iBAGlB0H,kBAAmB,CACjB5H,QAAS,OACTC,cAAe,MACf4H,MAAO,OACP3H,eAAgB,gBAChBH,aAAc,GAEhB+H,wBAAyB,CACvB9H,QAAS,OACTC,cAAe,SACf4H,MAAO,OACP3H,eAAgB,gBAChBH,aAAc,GAEhBgI,UAAW,CACTF,MAAO,OACP7H,QAAS,OACTC,cAAe,SACfC,eAAgB,cAElB+H,SAAU,CACRC,UAAW,SACXC,WAAY,MACZC,SAAU,IAEZC,UAAW,CACTR,MAAO,OACP7H,QAAS,OACTC,cAAe,SACfC,eAAgB,SAChByH,WAAY,UAEdW,mBAAoB,CAClBC,OAAQ,gCACRxI,aAAc,EACd8H,MAAO,UACP7H,QAAS,OACT2H,WAAY,SACZa,OAAQ,UACR9H,UAAW,EACXyH,WAAY,MACZC,SAAU,IAGZK,WAAY,CACVlJ,MAAO,sBACPmB,UAAW,GACXD,aAAc,GACdG,WAAY,GACZD,YAAa,IAGf+H,WAAY,CACVnJ,MAAO,sBACP4I,WAAY,MACZC,SAAU,GACVO,SAAU,SACVC,WAAY,SACZC,aAAc,WACdlI,YAAa,IAGfmI,QAAS,CACPpI,UAAW,GACXyH,WAAY,MACZ5I,MAAO,sBACP6I,SAAU,M,qkBCjFP,IAAMmb,GAAgD,SAAH3lB,GAAoE,IAADiqC,EAAAC,EAA7DC,EAAuBnqC,EAAvBmqC,wBAAyBC,EAAiBpqC,EAAjBoqC,kBAAmB9kB,EAAUtlB,EAAVslB,WACpGxqB,EAAQ0F,KACN2K,EAAaC,KAAbD,SACR/O,EAAgCC,yBAAegD,IAAe9C,EAAAC,IAAAJ,EAAA,GAAvDwT,EAASrT,EAAA,GAAEsT,EAAUtT,EAAA,GAC5BqJ,EAAsCvJ,yBAAe6oB,IAA0Brf,EAAArJ,IAAAoJ,EAAA,GAAxEkvB,EAAWjvB,EAAA,GAAEwkC,EAAcxkC,EAAA,GAClCkB,EAAsD1K,yBAAe8oB,IAA0Ble,EAAAzK,IAAAuK,EAAA,GAAxFujC,EAAoBrjC,EAAA,GAAEsjC,EAAqBtjC,EAAA,GAClDujC,EAAoCjlB,KAA5BjV,EAAWk6B,EAAXl6B,YAAarK,EAAUukC,EAAVvkC,WACrB6a,EAA4BzkB,yBAAe4oB,IAAoBjE,EAAAxkB,IAAAskB,EAAA,GAAxDoZ,EAAMlZ,EAAA,GAAEypB,EAASzpB,EAAA,GAClB0pB,EAAc9sB,8BAAoBqH,IAClCnH,EAAc5E,KAEdyxB,EAAoB,SAACC,EAAmBt7B,GAC5C,IAAIu7B,EACA/kB,EAEJ,GAAIxW,EAAM,CACR,IAAMw7B,EAAgB5Q,EAAOnU,WAC1BnnB,MAAK,SAAAyN,GAAK,OAAIA,EAAMR,SAAW++B,KAElCC,EAAe3Q,EAAOnU,WACnBha,QAAO,SAAAM,GAAK,OAAIA,EAAMR,SAAWi/B,EAAcj/B,UAElDia,EAAe,GAAA9Z,OAAAC,KAAOiuB,EAAOxU,eAAa,CAAEolB,QACvC,CACL,IAAMA,EAAgB5Q,EAAOxU,cAC1B9mB,MAAK,SAAAyN,GAAK,OAAIA,EAAMR,SAAW++B,KAElC9kB,EAAkBoU,EAAOxU,cACtB3Z,QAAO,SAAAM,GAAK,OAAIA,EAAMR,SAAWi/B,EAAcj/B,UAElDg/B,EAAY,GAAA7+B,OAAAC,KAAOiuB,EAAOnU,YAAU,CAAE+kB,IAGxC,IAAM5+B,EAAYzV,OAAO0V,OAAO,GAAI+tB,GACpChuB,EAAU6Z,WAAa8kB,EACvB3+B,EAAUwZ,cAAgBI,EAE1B2kB,EAAUv+B,IAGNE,EAAS,SAACC,EAAwCu+B,GACtDv+B,EAAMC,aAAaC,QAAQ,YAAaq+B,IAGpCp+B,EAAS,SAACH,EAAwCiD,GACtD,IAAMs7B,EAAYv+B,EAAMC,aAAaG,QAAQ,aAC7Ck+B,EAAkBC,EAAWt7B,IAGzB5C,EAAc,SAACk+B,EAAmBt7B,GACtCq7B,EAAkBC,EAAWt7B,IAGzB3C,EAAa,SAACN,GAClBA,EAAMO,kBA8BFm+B,EAAwB,WAAyD,IAAxD5yB,EAA0BrgB,UAAAC,OAAA,QAAAC,IAAAF,UAAA,GAAAA,UAAA,GAAG,KACpDkzC,EAAgC,MAAXlW,OAAW,EAAXA,EAAal2B,MAAK,SAACm2B,GAAU,OAAKA,EAAW9R,cAExE,MAAa,gBAAT9K,EACK6yB,EAAqBA,EAAmB79B,UAAY,GAEpD69B,EAAqBA,EAAmB/0C,GAAK,GAexD,OAXA+P,qBAAU,WAAoC,IAA5B+kC,KArCM,WACtBL,IACA76B,GAAW,GAEX,IAAM4d,EAAS,CACb3uB,WAAYisC,KAGdX,EACGrC,OAAOta,GACP3lB,KAAKwI,GACLtI,MAAM8V,GACN5V,SAAQ,kBAAM2H,GAAW,MAyBqBo7B,KAAqB,CAACnW,IAEzEzI,0BACEpvB,uBAAY,WACVktC,EACGpC,SACAjgC,KAAKuiC,GACLriC,MAAM8V,KACR,KAIHzc,gBAAC2mC,WAAY,CAAChnC,MAAOC,GAAOsB,UAAUnB,SAAA,CACpCC,gBAACyC,OAAG,CAAC9C,MAAOC,GAAOkf,QAAQ/e,SAAA,CACzBC,gBAAC6pC,GAAU,CAAC3jC,QAAQ,UAASnG,SAAA,CAC3BN,eAACwoC,GAAU,CACTplC,KAAK,4BACLqlC,KAAMzoC,eAACoM,WAAsB,CAAC5E,KAAM,GAAI3G,MAAO7G,EAAME,OAAOb,KAAMY,KAAK,0BAEzE+F,eAACqhB,EAAOC,QAAO,CACbrd,MAAO,2BACPsd,YAAa0oB,EAAsB,eACnCzoB,OAAQ,kBAAMioB,GAAsB,IACpCvpC,MAAO,CAAE6B,aAAc,QAGG,IAA5BkoC,IACEn7B,EACE9O,eAACyE,GAAO,CAACrB,KAAK,iCACd7C,gBAAA2C,YAAA,CAAA5C,SAAA,CACAC,gBAACkb,UAAM,CAACC,GAAI,GAAGpb,SAAA,CACbN,eAACyH,QAAI,CAACzG,QAAQ,UAAUd,MAAO,CAAEmqC,UAAW,UAAW/pC,SAAC,gGAGtD+J,GACArK,eAACyH,QAAI,CAACzG,QAAQ,UAAUd,MAAO,CAAEmqC,UAAW,UAAW/pC,SAAC,wDAM5DN,eAACiD,cAAU,CAAA3C,SACTC,gBAACyC,OAAG,CAAC9C,MAAOmK,EAAWlK,GAAOiJ,wBAA0BjJ,GAAO+I,kBAAkB5I,SAAA,CAC/EC,gBAAA,OACEL,MAAOC,GAAOkJ,UACdqC,OAAQ,SAACH,GAAK,OAAKG,EAAOH,GAAO,IACjCQ,WAAY,SAACR,GAAK,OAAKM,EAAWN,IAAOjL,SAAA,CAEzCN,eAACyH,QAAI,CAACvH,MAAOC,GAAOoJ,SAASjJ,SAAC,qBAC9BN,eAAA,OAAKE,MAAOC,GAAOwJ,UAAUrJ,SACpB,MAAN84B,GAAqB,OAAf+P,EAAN/P,EAAQxU,oBAAF,EAANukB,EAAuBn0C,KAAI,SAACs1C,GAAa,OACxC/pC,gBAAA,OACEyL,WAAS,EAETC,YAAa,SAACV,GAAK,OAAKD,EAAOC,EAAO++B,EAAcv/B,SACpDoB,QAAS,kBAAMP,EAAY0+B,EAAcv/B,QAAQ,IACjD7K,MAAOC,GAAOyJ,mBAAmBtJ,SAAA,CAEjCN,eAACoM,WAAsB,CAACnS,KAAK,OAAOuN,KAAM,GAAItH,MAAOC,GAAO4J,aAC5D/J,eAACyH,QAAI,CAACvH,MAAOC,GAAO6J,WAAW1J,SAAKgqC,EAAcC,eAAc,MAAMD,EAAcj+B,cAN/Ei+B,EAAcv/B,gBAW3B/K,eAACwqC,WAAO,CAACtqC,MAAO,CAAE8B,UAAWqI,EAAW,GAAK,EAAGtI,aAAcsI,EAAW,GAAK,KAC9E9J,gBAAA,OACEL,MAAOC,GAAOkJ,UACdqC,OAAQ,SAACH,GAAK,OAAKG,EAAOH,GAAO,IACjCQ,WAAY,SAACR,GAAK,OAAKM,EAAWN,IAAOjL,SAAA,CAEzCN,eAACyH,QAAI,CAACvH,MAAOC,GAAOoJ,SAASjJ,SAAC,oBAC9BN,eAAA,OAAKE,MAAOC,GAAOwJ,UAAUrJ,SACpB,MAAN84B,GAAkB,OAAZgQ,EAANhQ,EAAQnU,iBAAF,EAANmkB,EAAoBp0C,KAAI,SAACy1C,GAAW,OACnClqC,gBAAA,OACEyL,WAAS,EAETC,YAAa,SAACV,GAAK,OAAKD,EAAOC,EAAOk/B,EAAY1/B,SAClD7K,MAAOC,GAAOyJ,mBACduC,QAAS,kBAAMP,EAAY6+B,EAAY1/B,QAAQ,IAAMzK,SAAA,CAErDN,eAACoM,WAAsB,CAACnS,KAAK,OAAOuN,KAAM,GAAItH,MAAOC,GAAO4J,aAC5D/J,eAACyH,QAAI,CAACvH,MAAOC,GAAO6J,WAAW1J,SAAKmqC,EAAYF,eAAc,MAAME,EAAYp+B,cAN3Eo+B,EAAY1/B,qBAa5B5F,KAAgBnF,eAACP,GAAc,OAEjCu0B,EAAY/8B,OAAS,EAClB+I,eAACqnB,GAAS,CAACjkB,KAAK,0DAChBpD,eAACqnB,GAAS,CAACjkB,KAAK,mDAG1BpD,eAACuP,GAAkB,CAACiV,WAAYA,IAChCxkB,eAAC4N,GAAqB,IACtB5N,eAACqhB,EAAOW,MAAK,CACXjU,OAAQy7B,EACRl7B,QAAS,kBAAMm7B,GAAsB,IACrCrnB,SAAU,SAACjtB,GAAE,OA1HY,SAACA,GAC9B,IAAMu1C,EAAqB1W,EAAYh/B,KAAI,SAACi/B,GAC1C,OAAIA,EAAW9+B,KAAOA,EAAIgF,MAAA,GAAY85B,GAAU,IAAE9R,YAAY,IACrD8R,EAAW9R,WAAYhoB,MAAA,GAAY85B,GAAU,IAAE9R,YAAY,IAE7D8R,KAGT2V,IACAL,EAAemB,GAiHOC,CAAuBx1C,IACzCyL,MAAO,0CACP8F,MAAOstB,QCnNF4W,GAA4B,WACvC,OACE5qC,eAAC6kB,GAAc,CACbwkB,wBAAyBzE,KACzB0E,kBAAmB5E,KACnBlgB,WAAYmgB,Q,UCNLkG,GAA0BrsC,eAAK,CAC1CxI,IAAK,0BACLyI,SAAS,IAGEqsC,GAAwBtsC,eAAK,CACxCxI,IAAK,wBACLyI,SAAS,IAGEssC,GAAevsC,eAAK,CAC/BxI,IAAK,eACLyI,QAAS,KCbEusC,GAAoB,SAACC,GAChC,IAAI3wB,EAAqC,UAczC,MAZI,UAAUvT,KAAKkkC,GACjB3wB,EAAS,aACA,KAAKvT,KAAKkkC,GACnB3wB,EAAS,OACA,SAASvT,KAAKkkC,GACvB3wB,EAAS,OACA,iCAAiCvT,KAAKkkC,GAC/C3wB,EAAS,SACA,8BAA8BvT,KAAKkkC,KAC5C3wB,EAAS,YAGJA,GCjBI4wB,GAAkB,SAACC,GAC9B,IAAAC,EAAyBD,EAAW71B,MAAM,KAAI+1B,EAAA3vC,IAAA0vC,EAAA,GAAvCE,EAAMD,EAAA,GAAEE,EAAMF,EAAA,GACfG,EAAMluC,SAASguC,GACfrF,EAAM3oC,SAASiuC,GAEfE,GADY,IAAItwB,MACAuwB,UAEtB,OADa,IAAIvwB,KAAK8qB,EAAKuF,EAAM,EAAGC,GACxBE,eCHDptC,GAAiBC,eAAK,CACjCxI,IAAK,2BACLyI,SAAS,IAGEmtC,GAAkBptC,eAAK,CAClCxI,IAAK,4BACLyI,SAAS,IAGEotC,GAAkBrtC,eAAK,CAClCxI,IAAK,kBACLyI,QAAS,CACPqtC,IAAK,GACL9uC,WAAY,EACZI,MAAO,GACPsyB,UAAW,GACXqc,KAAM,sBACN5uC,KAAM,GACN6uC,OAAQ,GACR30B,KAAM,UACN40B,WAAY,M,+NCVT,IAAMC,GAAoD,SAAHhtC,GAKvD,IAJLitC,EAAUjtC,EAAVitC,WACAxyB,EAAQza,EAARya,SACAyyB,EAAUltC,EAAVktC,WACAt9B,EAAS5P,EAAT4P,UAIMlM,GAAcN,EAFOC,KAAnBD,kBAIR,OACEtC,eAACgD,OAAG,CAAC9C,MAAOC,GAAOksC,SAAS/rC,SAC1BC,gBAACkb,UAAM,CAAC/a,QAAS,GAAGJ,SAAA,CAClBN,eAAC6D,GAAS,CACRhD,MAAO+B,EAAYoB,UACnB0V,UAAW5K,GAAas9B,EACxBn2C,MAAiB,MAAVk2C,OAAU,EAAVA,EAAYhvC,KACnB8G,MAAM,oBACNI,aAAc,SAACjB,GAAI,OAAKuW,EAAS,OAAQvW,MAE3CpD,eAAC6D,GAAS,CACRhD,MAAO+B,EAAYoB,UACnB0V,UAAW5K,GAAas9B,EACxBn2C,MAAiB,MAAVk2C,OAAU,EAAVA,EAAYH,OACnBM,aAAa,UACbroC,MAAM,yBACNK,UAAW,GACXD,aAAc,SAACjB,GAAI,OAAKuW,EAAS,SAAUvW,MAE7C7C,gBAACC,UAAM,CAACE,QAAS,GAAGJ,SAAA,CAClBN,eAAC6D,GAAS,CACRhD,MAAO+B,EAAYoB,UACnBM,UAAW,EACXoV,UAAW5K,GAAas9B,EACxB3yB,WAAY,CAAEtQ,MAAO,QACrBjJ,MAAO,CAAEwB,KAAM,GACfzL,MAAiB,MAAVk2C,OAAU,EAAVA,EAAYzc,UACnBzrB,MAAM,aACNqoC,aAAa,UACb3lC,SAAU,SAACC,GAAK,OAAK5G,eAACoM,W,mWAAsBjS,CAAA,CAACF,KAAK,kBAAqB2M,KACvEvC,aAAc,SAACjB,GAAI,OAAKuW,EAAS,YCvDb,SAAC1jB,GAC/B,IAAMs2C,EAAct2C,EAAM6d,QAAQ,UAAW,IAS7C,OANIy4B,EAAYt1C,QAAU,EACRs1C,EAEAA,EAAY31B,MAAM,EAAG,GAAK,IAAM21B,EAAY31B,MAAM,GDgDZ41B,CAAiBppC,OAEjEpD,eAAC6D,GAAS,CACRhD,MAAO+B,EAAYoB,UACnB0V,UAAW5K,GAAas9B,EACxB3yB,WAAY,CAAEtQ,MAAO,QACrBjJ,MAAO,CAAEwB,KAAM,GACfzL,MAAiB,MAAVk2C,OAAU,EAAVA,EAAYL,IACnBxnC,UAAW,EACXgoC,aAAa,UACbroC,MAAM,MACNI,aAAc,SAACjB,GAAI,OAAKuW,EAAS,MAAkBvW,EEjEhD0Q,QAAQ,UAAW,iBFyE5B3T,GAASc,WAAWC,OAAO,CAC/BmrC,SAAU,CACRljC,MAAO,OACP6S,SAAU,IACV5a,QAAS,M,qkBGpEN,IAAM+oB,GAAsC,SAAHjrB,GAAwB,IAAlBitC,EAAUjtC,EAAVitC,WAC9CnyC,EAAQ0F,KACN2K,EAAaC,KAAbD,SAGFzH,GAAcN,EAFOC,KAAnBD,kBAIR,OACEtC,eAACgD,OAAG,CAAC9C,MAAK/F,MAAA,GACLgG,GAAOsB,WAAS,IACnBK,gBAAiBc,EAAYoB,UAC7BmF,MAAO,QACHkB,GAAY,CAAEoX,SAAU,QAC5BnhB,SACAC,gBAACslB,WAAe,CACd3lB,MAAK/F,MAAA,GACAgG,GAAOssC,MAAI,IACdC,UAAWriC,EAAW,IAAM,IAC5B2R,SAAU,MAEZD,OAAQ5B,EAAQ,KAChB2B,WAAW,QAAOxb,SAAA,CAElBN,eAAC6b,WAAK,CACJ3b,MAAOC,GAAOwsC,WACd5wB,OAAQ5B,EAAQ,OAElBna,eAAC6b,WAAK,CACJ3b,MAAOC,GAAOysC,SACd7wB,OAAQ5B,EAAQ,OAElB5Z,gBAACkb,UAAM,CAAC/a,QAAS,EAAGmsC,GAAI,EAAEvsC,SAAA,CACxBN,eAACyH,QAAI,CAACvH,MAAK/F,MAAA,GACNgG,GAAOiD,MAAI,IACdsG,SAAUW,EAAW,GAAK,GAC1ByiC,cAAeziC,EAAW,EAAI,EAC9BxJ,MAAO7G,EAAME,OAAOnC,QACpBuI,SACW,MAAV6rC,OAAU,EAAVA,EAAYH,SAEfzrC,gBAACkb,UAAM,CAAC/a,QAAS,EAAEJ,SAAA,CACjBN,eAACyH,QAAI,CAACvH,MAAO,CAAEW,MAAO7G,EAAME,OAAOnC,OAAQuI,SAAY,MAAV6rC,OAAU,EAAVA,EAAYhvC,OACzDoD,gBAACC,UAAM,CAACiG,QAAQ,UAASnG,SAAA,CACvBN,eAACyH,QAAI,CAACvH,MAAO,CAAEW,MAAO7G,EAAME,OAAOnC,OAAQuI,SAAY,MAAV6rC,OAAU,EAAVA,EAAYzc,YACzD1vB,eAACyH,QAAI,CAACvH,MAAO,CAAEW,MAAO7G,EAAME,OAAOnC,OAAQuI,SAAY,MAAV6rC,OAAU,EAAVA,EAAYL,qBASjE3rC,GAASc,WAAWC,OAAO,CAC/BO,UAAW,CACTC,KAAM,EACNsa,SAAU,IACV3a,aAAc,GAEhBorC,KAAM,CACJtjC,MAAO,OACP6S,SAAU,IACV5a,QAAS,GACT4mC,cAAe,GACftmC,KAAM,EACNL,aAAc,EACdG,eAAgB,gBAChBurC,YAAa,sBACbC,aAAc,CACZ7jC,MAAO,EACPwJ,OAAQ,GAEVs6B,aAAc,EACd1wB,YAAa,sBACbC,YAAa,GAEfmwB,WAAY,CACVh6B,OAAQ,GACRxJ,MAAO,IACP4c,UAAW,YAEb6mB,SAAU,CACRj6B,OAAQ,GACRxJ,MAAO,GACPjH,WAAY,IAEdkB,KAAM,CACJsG,SAAU,GACVojC,cAAe,KChGN3sC,GAASc,WAAWC,OAAO,CACtCO,UAAW,CACTH,QAAS,OACToM,IAAK,IAEPC,WAAY,CACVrM,QAAS,OACTC,cAAe,MACfC,eAAgB,WAChBkM,IAAK,K,qkBCJF,IAAMw/B,GAAuC,WAClD,IAAMlzC,EAAQ0F,KACdpE,EAA0BC,yBAAe4xC,IAA4B1xC,EAAAC,IAAAJ,EAAA,GAA9DyS,EAAMtS,EAAA,GAAEuS,EAAOvS,EAAA,GAChB2xC,EAAgBxtC,4BAAkBisC,IAClCwB,EAAcztC,4BAAkBgsC,IAEhCz9B,EAAc,WAClBH,GAAQ,IAaV,OACEhO,eAACoO,GAAS,CAACC,QAASN,EAAQO,QAASH,EAAY7N,SAC/CC,gBAACyC,OAAG,CAAC9C,MAAOC,GAAOsB,UAAUnB,SAAA,CAC3BN,eAACyH,QAAI,CAACzG,QAAQ,YAAYd,MAAO,CAAEuJ,WAAY,OAAQnJ,SAAC,oDACxDN,eAACyH,QAAI,CAACzG,QAAQ,YAAWV,SAAC,wEAE1BC,gBAACyC,OAAG,CAAC9C,MAAOC,GAAOwN,WAAWrN,SAAA,CAC5BN,eAACW,UAAM,CACLE,MAAO7G,EAAME,OAAOqU,OACpBzN,UAAW9G,EAAME,OAAOnC,MACxBiJ,QAAQ,OACRJ,MAAM,WACNG,QAASoN,IAEXnO,eAACW,UAAM,CACLC,MAAM,SACNG,QA1BS,WACjBssC,GAAY,GACZr/B,GAAQ,GACRo/B,GAAc,SAAA5vC,GAAY,OAAArD,MAAA,GACrBqD,GAAY,IACfwuC,OAAQ,GACRF,IAAK,SAqBChrC,UAAW9G,EAAME,OAAOnC,MACxB8I,MAAO7G,EAAME,OAAOxB,mBC1CnBy0C,GAA8B3uC,eAAK,CAC9CxI,IAAK,8BACLyI,SAAS,ICFE6uC,GAAgC9uC,eAAK,CAChDxI,IAAK,gCACLyI,SAAS,IAGE8uC,GAAuB/uC,eAAK,CACvCxI,IAAK,uBACLyI,QAAS,CACPqtC,IAAK,GACL9uC,WAAY,EACZI,MAAO,GACPsyB,UAAW,GACXqc,KAAM,sBACN5uC,KAAM,GACN6uC,OAAQ,GACR30B,KAAM,UACN40B,WAAY,MAIHuB,GAA+BhvC,eAAK,CAC/CxI,IAAK,+BACLyI,QAAS,K,qkBCbJ,IAAMgvC,GAA+B,WAC1C,IAAMzzC,EAAQ0F,KACN9C,EAAcvB,IAAduB,UACAyN,EAAaC,KAAbD,SACA/H,EAAmBC,KAAnBD,eACRhH,EAA0BC,yBAAe+xC,IAA8B7xC,EAAAC,IAAAJ,EAAA,GAAhEyS,EAAMtS,EAAA,GAAEuS,EAAOvS,EAAA,GACtBqJ,EAA8CvJ,yBAAegyC,IAAqBxoC,EAAArJ,IAAAoJ,EAAA,GAA3E4oC,EAAe3oC,EAAA,GAAE4oC,EAAkB5oC,EAAA,GACpC6oC,EAAoBhuC,4BAAkBiuC,IACtCC,EAAiBluC,4BAAkBmuC,IACzC9nC,EAA0B1K,yBAAeiyC,IAA6BrnC,EAAAzK,IAAAuK,EAAA,GAA/D7P,EAAK+P,EAAA,GAAE6nC,EAAQ7nC,EAAA,GAEhB/J,EAASQ,IACTgG,EAAcN,IAad2rC,EAAkB,WACtBN,GAAmB,SAAAnwC,GAAY,OAAArD,MAAA,GAC1BqD,GAAY,IACfwuC,OAAQ,GACR7uC,KAAM,GACN2uC,IAAK,GACLpc,UAAW,GACXqc,KAAM,sBACN10B,KAAM,UACN40B,WAAY,SAcV99B,EAAc,WAClBH,GAAQ,GACR4/B,GAAkB,GAClBI,EAAS,KAGLE,EAAkB,WACtB,UACGR,EAAgBvwC,MAChBuwC,EAAgB1B,QAChB0B,EAAgBhe,WAChBge,EAAgB5B,MACjB4B,EAAgB1B,OAAO32B,SAAS,OAQpC,OACE9U,gBAAC6N,GAAS,CAACC,QAASN,EAAQO,QAASH,EAAY7N,SAAA,CAC/CC,gBAACkH,QAAI,CAACzG,QAAQ,YAAYd,MAAO,CAAEuJ,WAAY,OAAQnJ,SAAA,CAAC,uBACpC+J,EAAW,GAAK,oBAEpCrK,eAACiD,cAAU,CAAA3C,SACTC,gBAACkb,UAAM,CAAChV,QAAQ,SAASC,MAAM,SAAQpG,SAAA,CACrCN,eAACksC,GAAgB,CACfC,WAAYuB,EACZ/zB,SA/DW,SAAC1f,EAAchE,GAClC03C,GAAmB,SAACliB,GAAS,OAAAtxB,MAAA,GACxBsxB,GAAS,GAAA1oB,gBAAA,GACX9I,EAAOhE,GAAK,OACP+0C,GAAkBvf,EAAUugB,SAAO,OACnC/5C,kBAAew5B,EAAUpU,OAAK,QAC7Bjb,EAAOgB,WAEhB4wC,EAAS,KAwDD5B,YAAY,EACZt9B,WAAW,IAEZ1Y,GACCmK,gBAACC,UAAM,CAAC2tC,GAAI,EAAGxyB,EAAG,GAAIlV,QAAQ,SAASC,MAAM,SAAShG,QAAS,GAC7DR,MAAO,CACL4B,gBAAiB9H,EAAME,OAAOk0C,eAC9BC,gBAAiB,EACjBC,gBAAiBt0C,EAAME,OAAO9D,OAC9BkK,SAAA,CACFN,eAAC6G,WAAa,CAAC5M,KAAK,OAAOuN,KAAM,GAAI3G,MAAO7G,EAAME,OAAO9D,QACzD4J,eAACyH,QAAI,CAAC5G,MAAO7G,EAAME,OAAOb,KAAKiH,SAAC,wDAGpCN,eAACmqB,GAAU,CAACgiB,WAAYuB,SAG5BntC,gBAACC,UAAM,CACLkG,MAAM,SACND,QAAQ,MACRomC,GAAI,GACJ0B,GAAI,GACJ7tC,QAAS,EAAEJ,SAAA,CAEXN,eAACW,UAAM,CACLC,MAAM,SACNI,QAAQ,OACRH,MAAO7G,EAAME,OAAOf,YACpB4H,QAASktC,IAEXjuC,eAACW,UAAM,CACLC,MAAM,SACNI,QAAQ,WACRH,MAAO+B,EAAYoB,UACnBjD,QA1EoB,WACtBmtC,KACF//B,IACA2/B,GAAe,SAAAtwC,GAAY,SAAA0N,OAAAC,KAAQ3N,GAAY,CAAEkwC,OACjDO,KAEAD,EAAS,qDAqEL1mC,UAAU,W,oBCzHPnH,GAASc,WAAWC,OAAO,CACtCO,UAAW,CACTL,QAAS,GACTD,OAAQ,EACRgI,MAAO,OACPsY,SAAU,IACV9O,OAAQ,cACRjJ,SAAU,GACVO,SAAU,SACV5I,aAAc,GACd0rC,YAAa,sBACbC,aAAc,CACZ7jC,MAAO,EACPwJ,OAAQ,GAEVs6B,aAAc,EACduB,mBAAoB,OACpBC,eAAgB,WAChBC,iBAAkB,aAEpBC,WAAY,CACVh8B,OAAQ,GACRxJ,MAAO,IAETvI,MAAO,CACL6I,WAAY,MACZC,SAAU,IAEZklC,WAAY,CACV5sC,UAAW,EACX0H,SAAU,M,qkBCbsDzW,0BAAuBC,GAAGC,6BAV9F,IAYa07C,GAAwC,SAAH3vC,GAK3C,IAJL4vC,EAAM5vC,EAAN4vC,OACAC,EAAY7vC,EAAZ6vC,aACAzmB,EAAWppB,EAAXopB,YAAW0mB,EAAA9vC,EACX+vC,eAAO,IAAAD,GAAQA,EAETh1C,EAAQ0F,KACRmO,EAASC,KACPlR,EAAcvB,IAAduB,UACA4W,EAAmBD,KAAnBC,eACF07B,EAAsBtvC,4BAAkBuvC,IACxCC,EAAaxvC,4BAAkByvC,IAC/BrhC,EAAUpO,4BAAkBiuC,IAC5ByB,EAAgB1vC,4BAAkB2vC,IAExCj0C,EAAgCC,yBAAeuvC,IAAsBrvC,EAAAC,IAAAJ,EAAA,GAA9DwT,EAASrT,EAAA,GAAEsT,EAAUtT,EAAA,GAEtBW,EAASQ,IAGT4yC,GAFgBlnB,EAAY+I,WAAW,CAAE56B,UAAW6xB,EAAY/wB,QAASb,QAAS4xB,EAAYntB,MAAM2zC,EAAO7C,cAEvF,WACxBwD,KAAUC,UAAUZ,EAAOa,gBAC3B9hC,EAAOW,KAAK,6CAGRohC,EAAwB,WAC5B7gC,GAAW,GAEX,IAAM4d,EAA6B,CACjC4N,cAAeuU,EAAO3X,QACtB0Y,YAAaf,EAAOe,YACpB/e,SAAUge,EAAOhe,SACjBK,aAAc2d,EAAO7C,WACrBhb,WAAY6d,EAAO7d,WACnBC,WAAY4d,EAAO5d,WACnB4e,WAAY1zC,EAAO0zC,YAGrBf,EACGgB,QAAQpjB,GACR3lB,MAAK,kBAAM6G,EAAOW,KAAK,kBAAesgC,EAAO9C,OAAM,iBAAiB1jB,EAAYnxB,OAAO23C,EAAO7C,YAAW,kCACzG/kC,OAAM,SAAA9Q,GAAK,OAAIyX,EAAOW,KAAKpY,EAAO,CAAE4K,QAAS,aAC7CoG,SAAQ,kBAAM2H,GAAW,OAGxBihC,EAAgB,SAAChyC,GACrBoxC,GAAW,GACXF,EAAoBlxC,IAQhBiyC,EAAc,CAClBC,KAAMl2C,EAAME,OAAOxB,QACnB,YAAasB,EAAME,OAAOL,KAC1Bs2C,QAASn2C,EAAME,OAAO9D,MACtBg6C,UAAWp2C,EAAME,OAAO3B,WACxBu2C,EAAOuB,UAEHjqB,EAAejsB,MAAA,GAChBgG,GAAOsB,WAAS,IACnBK,gBAAiB9H,EAAME,OAAOnC,MAC9B8I,MAAO7G,EAAME,OAAOf,YACpB8gB,gBAAgB,6BAA8Bg2B,EAAW,KAAKA,EAAW,MAGrEK,EAAgBn2C,MAAA,GACjBgG,GAAOyuC,YAAU,IACpB/tC,MAAO7G,EAAME,OAAOR,aAGhB62C,EAAYp2C,MAAA,GACbgG,GAAOS,OAAK,IACfC,MAA2B,SAApBiuC,EAAOuB,SAAsBr2C,EAAME,OAAOT,aAAeO,EAAME,OAAOP,QAGzE62C,EAAW,WAAH,OACZjwC,gBAACC,UAAM,CAACE,QAAS,EAAGmsC,GAAI,EAAGnE,MAAI,EAAApoC,SAAA,CAC5B2uC,GAAWjvC,eAACsQ,GAAI,CAACzP,MAAO7G,EAAME,OAAOL,KAAMosB,eAAgB,CAAEhkB,YAAa,GAAKjB,QAAQ,WAAWoC,KAAK,iBACnF,cAApB0rC,EAAOuB,UAA4BrwC,eAACsQ,GAAI,CAACzP,MAAO7G,EAAME,OAAO3B,UAAWyI,QAAQ,WAAWoC,KAAK,kBAChG0rC,EAAO2B,MAAQ,GAAyB,YAApB3B,EAAOuB,UAA0BvB,EAAO4B,OAAS,GACpE1wC,eAACsQ,GAAI,CAACtP,QAAQ,WAAWoC,KAAS0rC,EAAO4B,OAAM,QAAO5B,EAAO4B,OAAS,EAAI,IAAM,IAAE,mBAiFlFC,EAAa,WACjB,OACEpwC,gBAAA2C,YAAA,CAAA5C,SAAA,CACEC,gBAACC,UAAM,CAAAF,SAAA,CACLC,gBAACyC,OAAG,CAAC9C,MAAO,CAAEwB,KAAM,GAAIpB,SAAA,CACtBC,gBAACkH,QAAI,CAACvH,MAAOowC,EAAkBtvC,QAAQ,KAAIV,SAAA,CAAC,UAClC2uC,EAAU,QAAU,GAAG,IAAEH,EAAO9C,OAAO74B,cAAc/D,SAAS,EAAG,QAE3EpP,eAACyH,QAAI,CAACvH,MAAOqwC,EAAcvvC,QAAQ,YAAWV,SAC3CkT,EAAes7B,EAAO2B,YAG3BlwC,gBAACC,UAAM,CAACkG,MAAM,SAAQpG,SAAA,CACnB,CAACvN,QAAK69B,cAAcvb,SAASy5B,EAAOhe,WACnC9wB,eAAC4wC,cAAU,CACT/vC,MAAO7G,EAAME,OAAOb,KACpBovC,KAAMzoC,eAAC6wC,GAAO,CAAChwC,MAAO7G,EAAME,OAAOb,OACnC0H,QAAS,kBAAMivC,EAAclB,EAAO9wC,aACpCsJ,SAAUwH,MAGXggC,EAAOa,kBACNb,EAAOe,aACP7vC,eAAC4wC,cAAU,CACT/vC,MAAO7G,EAAME,OAAOb,KACpBovC,KAAMzoC,eAAC8wC,WAAQ,CAACjwC,MAAO7G,EAAME,OAAOb,KAAMmO,KAAM,GAAIvN,KAAK,iBACzD8G,QAASyuC,EACTloC,SAAUwH,OAGZggC,EAAOe,eAAiBf,EAAO5d,aACjClxB,eAAC4wC,cAAU,CACT/vC,MAAO7G,EAAME,OAAOb,KACpBovC,KAAMzoC,eAAC6G,WAAa,CAAChG,MAAO7G,EAAME,OAAOb,KAAMmO,KAAM,GAAIvN,KAAK,mBAC9D8G,QAAS6uC,EACTtoC,SAAUwH,UAKlB9O,eAACQ,UAAM,CAACE,QAAS,EAAGgG,MAAM,SAAQpG,SAChCC,gBAACkH,QAAI,CAACvH,MAAK/F,MAAA,GAAOm2C,GAAgB,IAAE7mC,WAAY,QAASzI,QAAQ,YAAWV,SAAA,CAAC,cAC/DgoB,EAAYnxB,OAAO23C,EAAO7C,iBAGzCuE,QAKP,OACExwC,eAACsb,WAAgB,CACfpb,MAAOkmB,EACPrlB,QAAS,kBAxKgB,SAAC+tC,GAC5BQ,EAAcR,GACd9gC,GAAQ,GAsKS+iC,CAAqBjC,IAAQxuC,SAE3C,CACC4vC,KAnIF3vC,gBAAA2C,YAAA,CAAA5C,SAAA,CACEC,gBAACC,UAAM,CAAAF,SAAA,CACLC,gBAACyC,OAAG,CAAC9C,MAAO,CAAEwB,KAAM,GAAIpB,SAAA,CACtBC,gBAACkH,QAAI,CAACvH,MAAOowC,EAAkBtvC,QAAQ,KAAIV,SAAA,CAAC,UAClCwuC,EAAO9C,OAAO74B,cAAc/D,SAAS,EAAG,QAElDpP,eAACyH,QAAI,CAACvH,MAAOqwC,EAAcvvC,QAAQ,YAAWV,SAC3CkT,EAAes7B,EAAOkC,qBAG3BhxC,eAACQ,UAAM,CAACkG,MAAM,cAGhBnG,gBAACC,UAAM,CAACE,QAAS,EAAGgG,MAAM,SAAQpG,SAAA,CAChCC,gBAACkH,QAAI,CAACvH,MAAK/F,MAAA,GAAOm2C,GAAgB,IAAE7mC,WAAY,QAASzI,QAAQ,YAAWV,SAAA,CAAC,oBAC5DgoB,EAAYnxB,OAAO23C,EAAO7C,WArHrB,eAuHtB1rC,gBAACkH,QAAI,CAACvH,MAAK/F,MAAA,GAAOm2C,GAAgB,IAAE7mC,WAAY,QAASzI,QAAQ,YAAWV,SAAA,CAAC,cAC/DgoB,EAAYnxB,OAAO23C,EAAO7C,qBAkH1CkE,QAzGF5vC,gBAAA2C,YAAA,CAAA5C,SAAA,CACEC,gBAACC,UAAM,CAAAF,SAAA,CACLC,gBAACyC,OAAG,CAAC9C,MAAO,CAAEwB,KAAM,GAAIpB,SAAA,CACtBC,gBAACkH,QAAI,CAACvH,MAAOowC,EAAkBtvC,QAAQ,KAAIV,SAAA,CAAC,kBAC1BwuC,EAAO9C,OAAO74B,cAAc/D,SAAS,EAAG,QAE1DpP,eAACyH,QAAI,CAACvH,MAAOqwC,EAAcvvC,QAAQ,YAAWV,SAC3CkT,EAAes7B,EAAO2B,YAG3BlwC,gBAACC,UAAM,CAACkG,MAAM,SAAQpG,SAAA,CACnB,CAACvN,QAAK69B,cAAcvb,SAASy5B,EAAOhe,WACnC9wB,eAAC4wC,cAAU,CACT/vC,MAAO7G,EAAME,OAAOb,KACpBovC,KAAMzoC,eAAC6wC,GAAO,CAAChwC,MAAO7G,EAAME,OAAOb,OACnC0H,QAAS,kBAAMivC,EAAclB,EAAO9wC,aACpCsJ,SAAUwH,MAGXggC,EAAOa,kBACNb,EAAOe,aACP7vC,eAAC4wC,cAAU,CACT/vC,MAAO7G,EAAME,OAAOb,KACpBovC,KAAMzoC,eAAC8wC,WAAQ,CAACjwC,MAAO7G,EAAME,OAAOb,KAAMmO,KAAM,GAAIvN,KAAK,iBACzD8G,QAASyuC,EACTloC,SAAUwH,OAGZggC,EAAOe,eAAiBf,EAAO5d,aAC/BlxB,eAAC4wC,cAAU,CACT/vC,MAAO7G,EAAME,OAAOb,KACpBovC,KAAMzoC,eAAC6G,WAAa,CAAChG,MAAO7G,EAAME,OAAOb,KAAMmO,KAAM,GAAIvN,KAAK,mBAC9D8G,QAAS6uC,EACTtoC,SAAUwH,UAKpB9O,eAACQ,UAAM,CAACE,QAAS,EAAGgG,MAAM,SAAQpG,SAChCC,gBAACkH,QAAI,CAACvH,MAAK/F,MAAA,GAAOm2C,GAAgB,IAAE7mC,WAAY,QAASzI,QAAQ,YAAWV,SAAA,CAAC,aAChEgoB,EAAYnxB,OAAO23C,EAAO7C,iBAGxCuE,OA+DD,YAAaG,IACbP,UAAWO,KACX7B,EAAOuB,aC1OFY,GAAgD,SAAH/xC,GAGnD,IAFLitC,EAAUjtC,EAAVitC,WAAU+E,EAAAhyC,EACVktC,kBAAU,IAAA8E,GAAOA,EAET5uC,EAAmBC,KAAnBD,eACA+H,EAAaC,KAAbD,SACR/O,EAAoDC,yBAAe41C,IAAwB11C,EAAAC,IAAAJ,EAAA,GAApF81C,EAAkB31C,EAAA,GAAE41C,EAAqB51C,EAAA,GAE1CmH,EAAcN,IACd6f,EAAagqB,EAAWH,UAA6B,MAAlBoF,OAAkB,EAAlBA,EAAoBpF,QAE7D,OACEhsC,eAACsb,WAAgB,CACfC,cAAe,GACfrb,MAAO,CACLkB,QAASiJ,EAAW,EAAI,GACxBrI,UAAW,GACXmH,MAAO,OACPwJ,OAAQ,cACRtR,aAAc,EACdS,gBAAiBqgB,EAAgBvf,EAAYoB,UAAS,KAAO,0BAE/DjD,QAAS,WAEHswC,EADJlvB,EAC0B,KACAgqB,IAC1B7rC,SAEFC,gBAACC,UAAM,CAACE,QAAS,GAAI+F,QAAQ,UAAUC,MAAM,SAAQpG,SAAA,CACnDN,eAACyb,UAAM,CAAAnb,SACLN,eAAC6G,WAAa,CAAC5M,KAAK,cAAcuN,KAAM,OAE1CjH,gBAACkb,UAAM,CAACG,MAAI,EAAAtb,SAAA,CACVN,eAACyH,QAAI,CAACzG,QAAQ,YAAWV,SACtB6rC,EAAWhvC,OAEdoD,gBAACkH,QAAI,CAACzG,QAAQ,YAAWV,SAAA,CAAC,kBACR6rC,EAAWH,OAAOp1B,OAAO,SAG5Cw1B,GACCpsC,eAACgpC,WAAQ,CACPpzB,OAAQuM,EAAa,UAAY,YACjCphB,QAAS,WAEHswC,EADJlvB,EAC0B,KACAgqB,Y,UCzD3BhsC,GAASc,WAAWC,OAAO,CACtCO,UAAW,CACTH,QAAS,OACTgoB,WAAY,IAEd1oB,MAAO,CACL6I,WAAY,MACZ1H,aAAc,KCGLuvC,GAAgD,SAAHpyC,GAA+B,IAADqyC,EAAAC,EAAxBC,EAAiBvyC,EAAjBuyC,kBACxDz3C,EAAQ0F,KACRmO,EAASC,KACPlR,EAAcvB,IAAduB,UACA4W,EAAmBD,KAAnBC,eACR/Q,EAAwDC,oBAAS,GAAMgD,EAAAhK,IAAA+G,EAAA,GAAhEivC,EAAqBhsC,EAAA,GAAEisC,EAAsBjsC,EAAA,GACpDpK,EAAgCC,yBAAeq2C,IAA0Bn2C,EAAAC,IAAAJ,EAAA,GAAlEwT,EAASrT,EAAA,GAAEsT,EAAUtT,EAAA,GACtB21C,EAAqBt1C,yBAAeq1C,IACpCnjC,EAAUpO,4BAAkBiyC,IAC5BC,EAAyBlyC,4BAAkB0tC,IAC3CM,EAAoBhuC,4BAAkBiuC,IACtCkE,EAAaj2C,yBAAeyzC,IAC5BrwB,EAAe9G,KAEfhc,EAASQ,IAkBTuR,EAAc,WAClBH,GAAQ,GACR2jC,GAAuB,IASzB,OACE7iC,EACI9O,eAACyE,GAAO,CAACrB,KAAK,iDACd7C,gBAACkb,UAAM,CAACvb,MAAOC,GAAOsB,UAAWf,QAAS,EAAGgb,GAAI,GAAGpb,SAAA,CACpDN,eAACsQ,GAAI,CACHlN,KAAMsuC,EACF,iCACAt1C,EAAO41C,aAAa/6C,OAAS,EAC3B,sCACA,8BAEN4J,MAAO7G,EAAME,OAAOL,KACpBmH,QAAQ,WACRilB,eAAgB,CAAElkB,aAAc,KAEjC2vC,EACGnxC,gBAACkb,UAAM,CAAC/a,QAAS,EAAEJ,SAAA,CACjBC,gBAACkH,QAAI,CAACvH,MAAO,CAAEuJ,WAAY,OAAQnJ,SAAA,CAAC,0DAAuE,MAAlB8wC,GAA0B,OAARG,EAAlBH,EAAoBpF,aAAF,EAAlBuF,EAA4B36B,OAAO,GAAG,gBAAcpD,EAAeu+B,EAAWE,iBAAiB,OACxLjyC,eAACixC,GAAc,CAAC7E,YAAY,EAAOD,WAAYiF,OAEjDpxC,eAACiD,cAAU,CAAC/C,MAAO,CAAEgyC,UAAW,OAAQxwC,KAAM,GAAIpB,SAC5B,OAD4BkxC,EAC/Cp1C,EAAO41C,mBAAY,EAAnBR,EAAqBx8C,KAAI,SAAAm3C,GAAU,OAClCnsC,eAACixC,GAAc,CAA0C9E,WAAYA,GAAhDA,EAAWH,OAAOl4B,QAAQ,IAAK,UAK5DvT,gBAACkb,UAAM,CAACoxB,GAAI,GAAInsC,QAAS,EAAEJ,SAAA,CACxBlE,EAAO41C,aAAa/6C,OAAS,GAC5B+I,eAACW,UAAM,CACLE,MAAOuwC,EAAqBp3C,EAAME,OAAOnC,MAAQiC,EAAME,OAAOxB,QAC9D2wB,sBAAuB,CAAEvnB,gBAAiBsvC,EAAqBp3C,EAAME,OAAOxB,QAAUsB,EAAME,OAAOrB,YACnGmI,QAAQ,WACRJ,MAAO8wC,EAAwB,sBAAwB,QACvDpqC,UAAW8pC,EACXrwC,QAAS,kBAAM2wC,GA7DzB3iC,GAAW,QAEX0iC,EACGU,IAAI,CAAE/hB,UAAW2hB,EAAY3kC,OAAQgkC,IACrCpqC,MAAK,SAAAG,GACJ0G,EAAOhU,KAAKsN,MAEbD,MAAMgY,GACN9X,SAAQ,WACPwmC,GAAkB,GAClB7+B,GAAW,GACXZ,QAkD2DwjC,GAAuB,OAG9ED,GACA1xC,eAACW,UAAM,CACLE,MAAO7G,EAAME,OAAOZ,SACpB0H,QAAQ,WACRJ,MAAM,2BACNG,QAjDsB,WAChC6sC,GAAkB,GAClBkE,GAAuB,GACvBH,GAAuB,MAiDjB3xC,eAACW,UAAM,CACLE,MAAO7G,EAAME,OAAOZ,SACpB0H,QAAQ,WACRJ,MAAM,+BACNG,QAASoN,WCvGRyjC,GAA4BpzC,eAAK,CAC5CxI,IAAK,4BACLyI,SAAS,IAGEozC,GAAyBrzC,eAAK,CACzCxI,IAAK,yBACLyI,SAAS,IAGEsvC,GAAmBvvC,eAAK,CACnCxI,IAAK,mBACLyI,QAAS,KAGE0yC,GAA0B3yC,eAAK,CAC1CxI,IAAK,0BACLyI,QAAS,OCTE2zC,GAAoD,SAAHlzC,GAAyB,IAAnBopB,EAAWppB,EAAXopB,YAC1Dje,EAAaC,KAAbD,SACF2D,EAAUpO,4BAAkByyC,IAC5BC,EAAUx2C,yBAAey2C,IAEzBC,EAASlqB,EAAYnxB,OAAOm7C,EAAQG,WAAY,cACpD,WACAnqB,EAAYnxB,OAAOm7C,EAAQI,QAAS,cAEhCC,EAAY,CAChB,YAAatoC,EAAW,YAAc,oBACtCuoC,MAAOvoC,EAAW,QAAU,eAC5BwoC,MAAOxoC,EAAW,QAAU,iBAC5BioC,EAAQjC,UAEV,OACE9vC,gBAACC,UAAM,CAACE,QAAS,EAAGgb,GAAI,GAAIgtB,MAAI,EAAApoC,SAAA,CAC9BN,eAACgD,OAAG,CAAA1C,SACFN,eAACymB,GAAU,CACT7lB,MAAM,aACN8lB,SAAU8rB,EACVzxC,QAAS,kBAAMiN,GAAQ,QAG3BhO,eAACgD,OAAG,CAAA1C,SACFN,eAACymB,GAAU,CACT7lB,MAAM,SACN8lB,SAAUisB,EACV5xC,QAAS,kBAAMiN,GAAQ,YCrCpB7N,GAASc,WAAWC,OAAO,CACtCO,UAAW,CACTH,QAAS,OACToM,IAAK,IAEP2R,QAAS,CACPpW,WAAY,SACZyE,IAAK,IAEPC,WAAY,CACVrM,QAAS,OACTC,cAAe,MACfC,eAAgB,WAChBkM,IAAK,K,qkBCCF,IAAMolC,GAAgD,SAAH5zC,GAGnD,IAAD6zC,EAAAC,EAFJC,EAAY/zC,EAAZ+zC,aACA3qB,EAAWppB,EAAXopB,YAEMtuB,EAAQ0F,KACRmO,EAASC,KACP0F,EAAmBD,KAAnBC,eACAlR,EAAmBC,KAAnBD,eACF0a,EAAc5E,IAAgB,kBAAMjK,OAC1C7S,EAAgDC,yBAAe4zC,IAAsB1zC,EAAAC,IAAAJ,EAAA,GAA9E43C,EAAgBz3C,EAAA,GAAEyzC,EAAmBzzC,EAAA,GAC5CqJ,EAA0BvJ,yBAAe8zC,IAAqBtqC,EAAArJ,IAAAoJ,EAAA,GAAvDiJ,EAAMhJ,EAAA,GAAEiJ,EAAOjJ,EAAA,GACtBkB,EAAgC1K,yBAAe43C,IAAwBhtC,EAAAzK,IAAAuK,EAAA,GAAhE6I,EAAS3I,EAAA,GAAE4I,EAAU5I,EAAA,GACtBitC,EAAUt3C,yBAAeivC,IAC/BtoC,EAAsBC,mBAAS,IAAGgD,EAAAhK,IAAA+G,EAAA,GAA3B4wC,EAAG3tC,EAAA,GAAE4tC,EAAM5tC,EAAA,GAClBG,EAA4BnD,qBAAuBoD,EAAApK,IAAAmK,EAAA,GAA5CipC,EAAMhpC,EAAA,GAAEytC,EAASztC,EAAA,GAElBlD,EAAcN,IAEpB4C,qBAAU,WACR,GAAIguC,EAAkB,CACpBM,IACA,IAAM1E,EAAgB,MAAPsE,OAAO,EAAPA,EAASt1C,MAAK,SAAAgxC,GAAM,OAAIA,EAAO9wC,aAAek1C,KAC7DK,EAAUzE,QAEVwE,EAAO,MAER,CAACJ,IAEJ,IAAMM,EAAe,WACnBzkC,GAAW,GAEX,IAAM4d,EAA6B,CACjC8mB,oBAAqBP,GAGvBD,EACGS,OAAO/mB,GACP3lB,MAAK,SAAAqsC,GAAG,OAAIC,EAAOD,MACnBnsC,MAAM8V,GACN5V,SAAQ,kBAAM2H,GAAW,OAWxBZ,EAAchS,uBAAY,WAC9B6R,GAAQ,GACRkhC,EAAoB,KACnB,IAEH,OACElvC,eAACoO,GAAS,CAACC,QAASN,EAAQO,QAASH,EAAY7N,SAC/CN,eAACgD,OAAG,CAAC9C,MAAOC,GAAOsB,UAAUnB,SAC1BwO,EACG9O,eAACyE,GAAO,CAACrB,KAAI,uBAAsC,OAAtC2vC,EAA8B,MAANjE,OAAM,EAANA,EAAQ9C,QAAM+G,EAAI,MACvDxyC,gBAACyC,OAAG,CAAC9C,MAAOC,GAAOkf,QAAQ/e,SAAA,CACzBC,gBAACkb,UAAM,CAACvb,MAAO,CAAEiJ,MAAO,QAAS7I,SAAA,CAC/BC,gBAACC,UAAM,CAACE,QAAS,EAAG+F,QAAQ,UAASnG,SAAA,CACnCN,eAACyH,QAAI,CAACvH,MAAO,CAAEwJ,SAAU,GAAID,WAAY,OAAQnJ,SAAC,mBAGlDN,eAACsQ,GAAI,CAAClN,KAAI,UAAsB,OAAtB4vC,EAAc,MAANlE,OAAM,EAANA,EAAQ9C,QAAMgH,EAAI,SAEtCzyC,gBAACkH,QAAI,CAACzG,QAAQ,KAAKd,MAAO,CAAEwJ,SAAU,GAAI7I,MAAO7G,EAAME,OAAOb,MAAOiH,SAAA,CAAC,eAClD,MAANwuC,OAAM,EAANA,EAAQ7C,aAAc3jB,EAAYnxB,OAAa,MAAN23C,OAAM,EAANA,EAAQ7C,eAE/D1rC,gBAACkH,QAAI,CAACzG,QAAQ,KAAKd,MAAO,CAAEwJ,SAAU,GAAI7I,MAAO7G,EAAME,OAAOb,MAAOiH,SAAA,CAAC,UACvD,MAANwuC,OAAM,EAANA,EAAQkC,iBAAkBx9B,EAAqB,MAANs7B,OAAM,EAANA,EAAQkC,mBAE1DzwC,gBAACkH,QAAI,CAACzG,QAAQ,KAAKd,MAAO,CAAEwJ,SAAU,GAAI7I,MAAO7G,EAAME,OAAOb,MAAOiH,SAAA,CAAC,qBAC5C,MAANwuC,OAAM,EAANA,EAAQmD,kBAAmBz+B,EAAqB,MAANs7B,OAAM,EAANA,EAAQmD,yBAGvEoB,GACDrzC,eAAC2zC,WAAS,CACR19C,MAAOo9C,EACP7rC,KAAM,IACNuO,KAAMoE,EAAQ,KACdy5B,SAAU,GACVC,oBAAoB,YAGtBtzC,gBAACC,UAAM,CAACob,MAAI,EAAC1b,MAAK/F,GAAA,GACbgG,GAAOwN,YACVrN,SAAA,CACAN,eAACW,UAAM,CACLE,MAAO7G,EAAME,OAAOqU,OACpBvN,QAAQ,OACRJ,MAAM,SACNG,QAASoN,EACT7G,SAAUwH,IAEZ9O,eAACW,UAAM,CACLC,MAAM,aACNG,QAzDM,WAChBsyC,IACFxlC,EAAOW,KAAK,sDACZihC,KAAUC,UAAU2D,GACpBllC,MAsDY7G,SAAUwH,IAAcokC,EACxBryC,MAAO+B,EAAYoB,UACnBlD,UAAW9G,EAAME,OAAOnC,MACxB4O,SAAU3G,eAACoM,WAAsB,CAACvL,MAAO7G,EAAME,OAAOnC,MAAOyP,KAAM,GAAIvN,KAAK,8BCrHjFo1C,GAAuB7wC,eAAK,CACvCxI,IAAK,uBACLyI,SAAS,IAGE00C,GAA0B30C,eAAK,CAC1CxI,IAAK,0BACLyI,SAAS,IAGE0wC,GAAwB3wC,eAAK,CACxCxI,IAAK,wBACLyI,QAAS,I,qkBCWJ,IAEMq1C,GAA0C,SAAH50C,GAAqC,IAA/B60C,EAAU70C,EAAV60C,WAAYzrB,EAAWppB,EAAXopB,YAC5D1rB,EAAcvB,IAAduB,UACRtB,EAA0BC,yBAAe82C,IAA4B52C,EAAAC,IAAAJ,EAAA,GAA9DyS,EAAMtS,EAAA,GAAEuS,EAAOvS,EAAA,GACtBqJ,EAA8BvJ,yBAAeg3C,IAAoBxtC,EAAArJ,IAAAoJ,EAAA,GAA1DwtC,EAAOvtC,EAAA,GAAEivC,EAAUjvC,EAAA,GAC1BkB,EAAgC1K,yBAAesvC,IAAwB1kC,EAAAzK,IAAAuK,EAAA,GAAhE6I,EAAS3I,EAAA,GAAE4I,EAAU5I,EAAA,GACtB8tC,EAAe77B,KACf87B,EAAat0C,4BAAkBmrC,IAE/B3uC,EAASQ,IAEfsI,qBAAU,WACR8uC,EAAW,CACT3D,SAAUj9C,cAAWF,GAAGM,eACxBi/C,WAAYnqB,EAAYnxB,OAAOmxB,EAAY6rB,QAAQ/gD,cAAWF,GAAGI,kBAAmB,cACpFo/C,QAASpqB,EAAYnxB,OAAOmxB,EAAY8rB,UAAUhhD,cAAWF,GAAGG,oBAAqB,kBAEtF,IAEH,IAyBMghD,EAAmBl4C,uBAAY,SAACm4C,EAAyBz9C,GAC7Dm9C,GAAW,SAAAO,GAAc,OAAAp6C,MAAA,GACpBo6C,GAAc,GAAAxxC,IAAA,GAChBuxC,EAAQz9C,EAAKqV,kBAEf,IAYH,OACE3L,gBAACi0C,EAAWC,OAAM,CAChBtiB,KAAMpkB,EACNO,QALgB,WAAH,OAAeN,GAAQ,IAMpC3G,QAASyH,EACT4lC,SA/CqB,SAACnpC,GACxBA,EAAMO,iBACNiD,GAAW,GAEX,IAAM4lC,EAAoC,CACxCpa,cAAen+B,EAAOY,WACtBqzC,SAAUiC,EAAQjC,SAClBuE,YAAatsB,EAAYnxB,OAAOm7C,EAAQG,WAAY,cACpDoC,UAAWvsB,EAAYnxB,OAAOm7C,EAAQI,QAAS,eAGxB,UAArBJ,EAAQjC,WACVsE,EAAgBC,YAActsB,EAAYnxB,OAAOmxB,EAAY/wB,QAAS,cACtEo9C,EAAgBE,UAAYvsB,EAAYnxB,OAAOmxB,EAAYwsB,SAAS1hD,cAAWF,GAAGK,mBAAoB,eAGxGwgD,EACGp5C,IAAIg6C,GACJ3tC,KAAKktC,GACLhtC,MAAM+sC,GACN7sC,SAAQ,kBAAM2H,GAAW,MAE5Bf,GAAQ,IA0BN+mC,WAhBqB,WACvBf,EAAW,CACT3D,SAAUj9C,cAAWF,GAAGM,eACxBi/C,WAAYnqB,EAAYnxB,OAAOmxB,EAAY6rB,QAAQ/gD,cAAWF,GAAGI,kBAAmB,cACpFo/C,QAASpqB,EAAYnxB,OAAOmxB,EAAY8rB,UAAUhhD,cAAWF,GAAGG,oBAAqB,iBAYxDiN,SAAA,CAE7BC,gBAACyC,OAAG,CAAA1C,SAAA,CACFN,eAACw0C,EAAWpxB,MAAK,CAACxiB,MAAM,6BACxBL,gBAAC6pC,GAAU,CAAA9pC,SAAA,CACTN,eAACmoB,GAAU,CACTlkB,MAAM,KACNhO,MAAOq8C,EAAQG,WAAanqB,EAAYntB,MAAMm3C,EAAQG,iBAAcv7C,EACpEyiB,SAAU,SAAC9iB,GAAI,OAAKw9C,EAAiB,aAAkB,MAAJx9C,IAAQyxB,EAAY6rB,QAAQ/gD,cAAWF,GAAGI,oBAC7Fg1B,YAAaA,IAEftoB,eAACwqC,WAAO,IACRxqC,eAACmoB,GAAU,CACTlkB,MAAM,SACNhO,MAAOq8C,EAAQI,QAAUpqB,EAAYntB,MAAMm3C,EAAQI,cAAWx7C,EAC9DyiB,SAAU,SAAC9iB,GAAI,OAAKw9C,EAAiB,UAAe,MAAJx9C,IAAQyxB,EAAY8rB,UAAUhhD,cAAWF,GAAGG,sBAC5Fi1B,YAAaA,UAInB/nB,gBAACyC,OAAG,CAAA1C,SAAA,CACFN,eAACw0C,EAAWpxB,MAAK,CAACxiB,MAAM,qBACxBZ,eAACg1C,GAAwB,WChHpB3C,GAA8B7zC,eAAK,CAC9CxI,IAAK,8BACLyI,SAAS,IAGE8zC,GAAsB/zC,eAAK,CACtCxI,IAAK,sBACLyI,QAAS,CACP4xC,SAAUj9C,cAAWF,GAAGM,eACxBi/C,WAAY,GACZC,QAAS,M,+kBCNN,IAAMsC,GAA2B,WACtC,IAAQ1yC,EAAmBC,KAAnBD,eACA+H,EAAaC,KAAbD,SACR/O,EAA8BC,yBAAeg3C,IAAoB92C,EAAAC,IAAAJ,EAAA,GAA1Dg3C,EAAO72C,EAAA,GAAEu4C,EAAUv4C,EAAA,GACpBw5C,EAAen5C,yBAAeo5C,IAE9BtyC,EAAcN,IAMpB,OACEtC,eAAAkD,YAAA,CAAA5C,SAEI20C,EAAajgD,KAAI,SAACmgD,GAAY,OAC5Bn1C,eAACo1C,WAAYzkC,KAAI,CAEf1M,MAAOkxC,EAAal/C,MACpBA,MAAOk/C,EAAal/C,MACpB2f,OAAQ08B,EAAQjC,WAAa8E,EAAal/C,MAAQ,UAAY,YAC9D8K,QAAS,kBAbKs0C,EAagBF,EAAal/C,WAZnD+9C,GAAW,SAACO,GAAc,OAAAp6C,MAAA,GAAWo6C,GAAc,IAAElE,SAAUgF,OAD1C,IAACA,GAcdC,WAAY,CAAE5rC,SAAUW,EAAW,GAAK,IACxCnK,MAAO,CACLmB,aAAc,EACdmb,YAAa,EACbD,YAAgB3Z,EAAYoB,UAAS,KACrCjC,aAAc,EACd6kB,gBAAiBvc,EAAW,EAAI,IAElCxJ,MAAO+B,EAAYoB,WAbdmxC,EAAaI,WCtBjBL,GAAoB12C,eAAK,CACpCxI,IAAK,0BACLyI,QAAS,CACP,CAAE82C,IAAK,QAASt/C,MAAO,SACvB,CAAEs/C,IAAK,gBAAiBt/C,MAAO,SAC/B,CAAEs/C,IAAK,oBAAqBt/C,MAAO,gB,qkBCQvC,IAEau/C,GAAkD,SAAHt2C,GAAuC,IAAjCopB,EAAWppB,EAAXopB,YAAaymB,EAAY7vC,EAAZ6vC,aACvE/0C,EAAQ0F,KACRmO,EAASC,KACPlR,EAAcvB,IAAduB,UACRtB,EAAoCC,yBAAeg0C,IAAgB9zC,EAAAC,IAAAJ,EAAA,GAA5Dy2C,EAAUt2C,EAAA,GAAE6zC,EAAa7zC,EAAA,GAC1Bg6C,EAAyB71C,4BAAkBiuC,IAC3C9+B,EAAanP,4BAAkB81C,IAC/BtG,EAAaxvC,4BAAkByvC,IAC/BsG,EAAqB/1C,4BAAkBiyC,IACvC3C,EAAsBtvC,4BAAkBuvC,IAExC/yC,EAASQ,IAyCTuR,EAAc,WAClBmhC,EAAc,MACdmG,GAAuB,IAGzB,OACEl1C,gBAACkb,UAAM,CAACoxB,GA5DS,EA4DSnxB,GAAI,GAAIhb,QA5DjB,EA4DuCJ,SAAA,CACrD,CAACvN,QAAK69B,cAAcvb,SAAS08B,EAAWjhB,WACvC9wB,eAACW,UAAM,CACLK,QAAQ,WACRJ,MAAM,yBACNC,MAAO7G,EAAME,OAAOZ,SACpBqyB,QAAS3rB,eAAC6wC,GAAO,CAACl+B,OAAQ,GAAI9R,MAAO7G,EAAME,OAAOZ,WAClDyH,QAAS,kBArBM/C,EAqBwB,MAAV+zC,OAAU,EAAVA,EAAY/zC,WApB/CmQ,IACAihC,GAAW,QACPpxC,GACFkxC,EAAoBlxC,IAJF,IAACA,MAwBR,MAAV+zC,OAAU,EAAVA,EAAY6D,wBACD,MAAV7D,OAAU,EAAVA,EAAYrB,SAAU,KACX,MAAVqB,KAAY8D,gBACX71C,eAACW,UAAM,CACLK,QAAQ,WACRH,MAAO7G,EAAME,OAAOZ,SACpBsH,MAAM,0BACN+qB,QAAS,SAAA/kB,GAAK,OAAI5G,eAAC6G,WAAa1M,MAAA,CAACF,KAAK,eAAkB2M,GAAK,IAAEY,KAAM,OACrEzG,QAzDmB,WAAH,OAAe40C,GAAmB,QA4D3C,MAAV5D,MAAYpC,mBAA8B,MAAVoC,MAAYlC,cAC7C7vC,eAACW,UAAM,CACLK,QAAQ,WACRJ,MAAM,6BACNC,MAAO7G,EAAME,OAAOZ,SACpBqyB,QAAS,SAAA/kB,GAAK,OAAI5G,eAACoM,WAAsBjS,MAAA,CAACF,KAAK,gBAAmB2M,GAAK,IAAEY,KAAM,OAC/EzG,QAxEkB,WACxB0uC,KAAUC,UAAUqC,EAAWpC,gBAC/BxhC,IACAN,EAAOW,KAAK,iDAwEI,MAAVujC,MAAYlC,gBAA2B,MAAVkC,MAAY7gB,cAC3ClxB,eAACW,UAAM,CACLK,QAAQ,WACRH,MAAO7G,EAAME,OAAOZ,SACpBsH,OAAoB,MAAVmxC,KAAY9gB,WAAa,aAAe,YAAU,UAC5DtF,QAAS,SAAA/kB,GAAK,OAAI5G,eAAC6G,WAAa1M,MAAA,CAACF,KAAK,kBAAqB2M,GAAK,IAAEY,KAAM,OACxEzG,QAzEsB,WAC5BgO,GAAW,GAEX,IAAM4d,EAA6B,CACjC4N,cAAyB,MAAVwX,OAAU,EAAVA,EAAY5a,QAC3B0Y,YAAuB,MAAVkC,OAAU,EAAVA,EAAYlC,YACzB/e,SAAoB,MAAVihB,OAAU,EAAVA,EAAYjhB,SACtBK,aAAwB,MAAV4gB,OAAU,EAAVA,EAAY9F,WAC1Bhb,WAAsB,MAAV8gB,OAAU,EAAVA,EAAY9gB,WACxBC,WAAsB,MAAV6gB,OAAU,EAAVA,EAAY7gB,WACxB4e,WAAY1zC,EAAO0zC,YAGrBf,EACGgB,QAAQpjB,GACR3lB,MAAK,kBAAM6G,EAAOW,KAAK,mBAAyB,MAAVujC,OAAU,EAAVA,EAAY/F,QAAM,iBAAiB1jB,EAAYnxB,OAAiB,MAAV46C,OAAU,EAAVA,EAAY9F,YAAW,kCACnH/kC,OAAM,SAAA9Q,GAAK,OAAIyX,EAAOW,KAAKpY,EAAO,CAAE4K,QAAS,aAC7CoG,SAAQ,WACP+G,IACAY,GAAW,aCtDN5O,GAASc,WAAWC,OAAO,CACtCO,UAAW,CACTH,QAAS,QAEXV,MAAO,CACL6I,WAAY,MACZ1H,aAAc,KCQZ+zC,GAAqB,qCAAkC7iD,0BAAuBC,GAAGC,6BAA4B,kJAEtG4iD,GAA4C,SAAH72C,GAI/C,IAAD82C,EAAAC,EAAAC,EAAAC,EAHJ7tB,EAAWppB,EAAXopB,YACAmpB,EAAiBvyC,EAAjBuyC,kBACA1C,EAAY7vC,EAAZ6vC,aAEM/0C,EAAQ0F,KACN4C,EAAmBC,KAAnBD,eACAkR,EAAmBD,KAAnBC,eACRlY,EAAoCC,yBAAeg0C,IAAgB9zC,EAAAC,IAAAJ,EAAA,GAA5Dy2C,EAAUt2C,EAAA,GAAE6zC,EAAa7zC,EAAA,GAC1BqT,EAAYhT,yBAAe45C,IACjC5wC,EAA0BvJ,yBAAesyC,IAAsB9oC,EAAArJ,IAAAoJ,EAAA,GAAxDiJ,EAAMhJ,EAAA,GAAEiJ,EAAOjJ,EAAA,GACtBkB,EAA4C1K,yBAAes2C,IAAuB1rC,EAAAzK,IAAAuK,EAAA,GAA3EmwC,EAAejwC,EAAA,GAAEkwC,EAAgBlwC,EAAA,GAElCvD,EAAcN,IACdg0C,EAAgBhuB,EAAY+I,WAAW,CAAE56B,UAAW6xB,EAAY/wB,QAASb,QAAS4xB,EAAYntB,MAAgB,MAAV42C,OAAU,EAAVA,EAAY9F,cAEhH99B,EAAc,WAClBH,GAAQ,GACRshC,EAAc,MACd+G,GAAiB,IAGbE,EAAsB,CAC1BrG,KAAMl2C,EAAME,OAAOxB,QACnBy3C,QAASn2C,EAAME,OAAO9D,MACtBg6C,UAAWp2C,EAAME,OAAO3B,UACxB,YAAayB,EAAME,OAAOL,MAChB,MAAVk4C,OAAU,EAAVA,EAAY1B,UAERmG,EAAiB,CACrBtG,KAAM,cACNC,QAAS,iBACTC,UAAW,gBACX,YAAa,oBACH,MAAV2B,OAAU,EAAVA,EAAY1B,UAERoG,EAAuB,CAC3BvG,KAAM,UACNC,QAAS,QACTC,UAAW,UACX,YAAa,QACH,MAAV2B,OAAU,EAAVA,EAAY1B,UAERqG,EAAuB,CAC3BxG,KAAK,oBAAkB5nB,EAAYnxB,OAAiB,MAAV46C,OAAU,EAAVA,EAAY4E,cAAe,cAAa,YAAYnjC,EAAyB,MAAVu+B,OAAU,EAAVA,EAAY6E,WACzHzG,QAAQ,aAAcmG,EAAa,QAAOA,EAAgB,EAAI,IAAM,IAAE,qBAAqB9iC,EAAyB,MAAVu+B,OAAU,EAAVA,EAAYE,iBACtH7B,UAAW,6DACX,YAAY,6BAA8BkG,EAAa,QAAOA,EAAgB,EAAI,IAAM,KAGpFO,EAA4B,CAChC3G,KAAMwG,EAAqBxG,KAC3BC,QAAS2F,GACT1F,UAAWsG,EAAqBtG,UAChC,YAAasG,EAAqB,cACxB,MAAV3E,OAAU,EAAVA,EAAY1B,UAEd,OACErwC,eAACoO,GAAS,CAACC,QAASN,EAAQO,QAASH,EAAY7N,SAC/CC,gBAACyC,OAAG,CAAC9C,MAAOC,GAAOsB,UAAUnB,SAAA,EACzByxC,GAAcjjC,EACZ9O,eAACyE,GAAO,IACRlE,gBAACyC,OAAG,CAAA1C,SAAA,CACFC,gBAACC,UAAM,CAAC2tC,GAlED,EAkEmB1nC,QAAQ,UAAUiiC,MAAI,EAAApoC,SAAA,CAC9CN,eAACsQ,GAAI,CACHlN,KAAMozC,EACNvwB,eAAgB,CAAEnkB,gBAAiBy0C,KAErCv2C,eAACsQ,GAAI,CACHlN,KAAI,UAAkB,MAAV2uC,OAAU,EAAVA,EAAY/F,OAAO9/B,WAAWkD,SAAS,EAAG,MACtDvO,MAAO+B,EAAYoB,UACnBhD,QAAQ,gBAGZT,gBAACC,UAAM,CAACkb,GA7ED,EA6EmBjV,QAAQ,UAAUiiC,MAAI,EAAApoC,SAAA,CAC9CC,gBAACkb,UAAM,CAAAnb,SAAA,CACLN,eAACyH,QAAI,CAACvH,MAAOC,GAAOS,MAAOI,QAAQ,YAAWV,SAAC,eAC/CN,eAACyH,QAAI,CAACzG,QAAQ,YAAWV,SACtBgoB,EAAYnxB,OAAiB,MAAV46C,OAAU,EAAVA,EAAY+E,YAAa,mBAGjDv2C,gBAACkb,UAAM,CAAAnb,SAAA,CACLN,eAACyH,QAAI,CAACzG,QAAQ,YAAYd,MAAOC,GAAOS,MAAMN,SAAC,eAC/CN,eAACyH,QAAI,CAACzG,QAAQ,YAAWV,SACtBgoB,EAAYnxB,OAAiB,MAAV46C,OAAU,EAAVA,EAAY9F,WAAY,sBAIlD1rC,gBAACC,UAAM,CAACkb,GA3FD,EA2FmBjV,QAAQ,UAAUiiC,MAAI,EAAApoC,SAAA,CAC9CC,gBAACkb,UAAM,CAAAnb,SAAA,CACLN,eAACyH,QAAI,CAACzG,QAAQ,YAAYd,MAAOC,GAAOS,MAAMN,SAAC,qBACpC,MAAVyxC,OAAU,EAAVA,EAAYtB,QACXzwC,eAACyH,QAAI,CAACzG,QAAQ,YAAWV,SACtBkT,EAAyB,MAAVu+B,OAAU,EAAVA,EAAYtB,YAIlClwC,gBAACkb,UAAM,CAAAnb,SAAA,CACLN,eAACyH,QAAI,CAACzG,QAAQ,YAAYd,MAAOC,GAAOS,MAAMN,SAAC,sBAClC,MAAVyxC,OAAU,EAAVA,EAAYE,oBAA8B,MAAVF,OAAU,EAAVA,EAAYtB,OACzCzwC,eAACyH,QAAI,CAACzG,QAAQ,YAAWV,SAAEkT,EAAyB,MAAVu+B,OAAU,EAAVA,EAAYE,mBACtDjyC,eAACyH,QAAI,CAACzG,QAAQ,YAAWV,SAAEkT,EAAyB,MAAVu+B,OAAU,EAAVA,EAAYtB,eAIhEzwC,eAACQ,UAAM,CAACN,MAAO,CAAE6B,aA5GV,GA4GuCzB,SAC5CC,gBAACkb,UAAM,CAAAnb,SAAA,CACLN,eAACyH,QAAI,CAACzG,QAAQ,YAAYd,MAAOC,GAAOS,MAAMN,SAAC,gCAC/CN,eAACyH,QAAI,CAACzG,QAAQ,YAAWV,SACZ,MAAVyxC,GAA0B,OAAhBiE,EAAVjE,EAAYgF,iBAA0B,OAAZd,EAA1BD,EAA4B1gC,MAAM,OAAS,OAAL4gC,EAAtCD,EAAyC,KAAU,OAARE,EAA3CD,EAA6Cc,aAAnC,EAAVb,EAAqDp5C,sBAI1Dq5C,GACAp2C,eAACohB,GAAY,CACXxL,OAAQ6gC,EACRtvC,SAAmB,MAAV4qC,OAAU,EAAVA,EAAYjhB,YAAa/9B,QAAK69B,aACnCimB,GACU,MAAV9E,OAAU,EAAVA,EAAYjhB,YAAa/9B,QAAK89B,cAClB,MAAVkhB,KAAY8D,cACV,6EAEFa,EAA+B,MAAV3E,OAAU,EAAVA,EAAY1B,YAI1C+F,EACGp2C,eAACsxC,GAAc,CAACG,kBAAmBA,IACV,UAAf,MAAVM,OAAU,EAAVA,EAAY1B,WACZrwC,eAACw1C,GAAa,CAACltB,YAAaA,EAAaymB,aAAcA,OAIjE/uC,eAACQ,UAAM,CAAAF,SACLN,eAACW,UAAM,CACLE,MAAO7G,EAAME,OAAOZ,SACpB0H,QAAQ,OACRJ,MAAM,SACNG,QAASoN,EACTjO,MAAO,CAAEgC,WAAY,kBC3JpBwzC,GAA2Bl3C,eAAK,CAC3CxI,IAAK,2BACLyI,SAAS,IAGE8wC,GAAkB/wC,eAAK,CAClCxI,IAAK,kBACLyI,QAAS,OAGEovC,GAAwBrvC,eAAK,CACxCxI,IAAK,wBACLyI,SAAS,I,+NCZJ,IAAM0B,GAASc,WAAWC,OAAO,CACtCO,UAAW,CACTC,KAAM,EACNuH,WAAY,WAEdoW,Q,mWAAOllB,CAAA,GACF0tC,GAAaC,aAElBC,OAAQ,CACNC,cAAe,MCSNle,GAAsC,SAAH5qB,GAMzC,IAAD+3C,EALJ3uB,EAAWppB,EAAXopB,YACAyrB,EAAU70C,EAAV60C,WACAd,EAAY/zC,EAAZ+zC,aACAxB,EAAiBvyC,EAAjBuyC,kBACA1C,EAAY7vC,EAAZ6vC,aAEM/0C,EAAQ0F,KACN9C,EAAcvB,IAAduB,UACFogB,EAAc5E,KACZ/N,EAAaC,KAAbD,SACR5H,EAAoCC,oBAAS,GAAMgD,EAAAhK,IAAA+G,EAAA,GAA5Cy0C,EAAUxxC,EAAA,GAAEyxC,EAAazxC,EAAA,GAChCpK,EAA8BC,yBAAewvC,IAAatvC,EAAAC,IAAAJ,EAAA,GAAnD83C,EAAO33C,EAAA,GAAEy4C,EAAUz4C,EAAA,GAC1BqJ,EAA0BvJ,yBAAe82C,IAA4BttC,EAAArJ,IAAAoJ,EAAA,GAA9DiJ,EAAMhJ,EAAA,GAAEiJ,EAAOjJ,EAAA,GACtBkB,EAAgC1K,yBAAesvC,IAAwB1kC,EAAAzK,IAAAuK,EAAA,GAAhE6I,EAAS3I,EAAA,GAAE4I,EAAU5I,EAAA,GACtBmsC,EAAUx2C,yBAAey2C,IACzB6E,EAAgBC,iBAAO,MAEvBj7C,EAASQ,IACT06C,EAAsBjtC,EAAW,EAAI,EAErCktC,EAA2H,OAA9GN,EAAU,MAAP7D,OAAO,EAAPA,EAASt1C,MAAK,SAAAgxC,GAAM,OAAIxmB,EAAYntB,MAAM2zC,EAAO7C,YAAYuL,aAAelvB,EAAY/wB,QAAQigD,eAAWP,EAAI7D,EAAQ,GACvIqE,EAAsB,MAAPrE,OAAO,EAAPA,EAASnoC,QAAO,SAAA6jC,GAAM,OAAIA,EAAO9wC,aAAeu5C,EAAcv5C,cAEnFutB,0BACEpvB,uBAAY,WACV4S,GAAW,GAEX,IAAM2oC,EAAmC,CACvCnd,cAAen+B,EAAOY,WACtBqzC,SAAUiC,EAAQjC,SAClBuE,YAAatC,EAAQG,WACjBnqB,EAAYnxB,OAAOm7C,EAAQG,YAC3BnqB,EAAYnxB,OAAOmxB,EAAY6rB,QAAQ/gD,cAAWF,GAAGI,kBAAmB,cAC5EuhD,UAAWvC,EAAQI,QACfpqB,EAAYnxB,OAAOm7C,EAAQI,SAC3BpqB,EAAYnxB,OAAOmxB,EAAY8rB,UAAUhhD,cAAWF,GAAGG,oBAAqB,eAGlF0gD,EACGp5C,IAAI+8C,GACJ1wC,KAAKktC,GACLhtC,MAAM8V,GACN5V,SAAQ,kBAAM2H,GAAW,QAC3B,KAGL,IAqBM4oC,EAAcx7C,uBAAY,WAC1Bi7C,EAAcnI,SACfmI,EAAcnI,QAAgB2I,SAAS,CAAEC,EAAG,EAAGC,UAAU,MAE3D,IAEGC,EAAiB57C,uBAAY,WACjC6R,GAAQ,KACP,IAEH,OACEzN,gBAAC2mC,WAAY,CAAChnC,MAAOC,GAAOsB,UAAUnB,SAAA,CACpCN,eAAC8zC,GAAW,CAACxrB,YAAaA,EAAayrB,WAAYA,IACnD/zC,eAACiD,cAAU,CACT+0C,IAAKZ,EACL/tB,sBAAuBlpB,GAAO4nC,OAC9BkQ,eACAj4C,eAACk4C,WAAc,CACbhB,WAAYA,EACZiB,UAxCiB,WACvBhB,GAAc,GAEd,IAAMO,EAAmC,CACvCnd,cAAen+B,EAAOY,WACtBqzC,SAAUiC,EAAQjC,SAClBuE,YAAatC,EAAQG,WACjBnqB,EAAYnxB,OAAOm7C,EAAQG,YAC3BnqB,EAAYnxB,OAAOmxB,EAAY6rB,QAAQ/gD,cAAWF,GAAGI,kBAAmB,cAC5EuhD,UAAWvC,EAAQI,QACfpqB,EAAYnxB,OAAOm7C,EAAQI,SAC3BpqB,EAAYnxB,OAAOmxB,EAAY8rB,UAAUhhD,cAAWF,GAAGG,oBAAqB,eAGlF0gD,EACGp5C,IAAI+8C,GACJ1wC,KAAKktC,GACLhtC,MAAM8V,GACN5V,SAAQ,kBAAM+vC,GAAc,SAwB5B72C,SAECC,gBAACyC,OAAG,CAAC9C,MAAOC,GAAOkf,QAAQ/e,SAAA,CACzBN,eAACwoC,GAAU,CACTplC,KAAK,aACLqlC,KAAMzoC,eAAC6G,WAAa,CAACW,KAAM,GAAI3G,MAAO7G,EAAME,OAAOb,KAAMY,KAAK,iBAC9Dm+C,YAAaL,IAEf/3C,eAACoyC,GAAgB,CAAC9pB,YAAaA,IAC/B/nB,gBAACymB,GAAQ,CACPlY,UAAWA,EACXmY,UAAiB,MAAPmsB,KAASn8C,QACnBkwB,YAAY,mBAAkB7mB,SAAA,CAE7Bi3C,GACCv3C,eAAC6uC,GAAU,CAETI,SAAS,EACT3mB,YAAaA,EACbwmB,OAAQyI,EACRtE,aAAcA,EACdlE,aAAcA,GALTwI,EAAcv5C,YAQV,MAAZy5C,OAAY,EAAZA,EAAcziD,KAAI,SAAA85C,GAAM,OACvB9uC,eAAC6uC,GAAU,CAETvmB,YAAaA,EACbwmB,OAAQA,EACRmE,aAAcA,EACdlE,aAAcA,GAJTD,EAAO9wC,wBAUd,MAAPo1C,OAAO,EAAPA,EAASn8C,QAASqgD,IAChBvpC,GACD/N,eAACP,GAAc,CAAAa,SACbN,eAACq4C,GAAiB,CAACC,UAAWlB,EAAeO,YAAaA,MAG9D33C,eAAC8yC,GAAc,CAACxqB,YAAaA,EAAa2qB,aAAcA,IACxDjzC,eAACytC,GAAkB,IACnBztC,eAAC+1C,GAAU,CAACztB,YAAaA,EAAaymB,aAAcA,EAAc0C,kBAAmBA,QCpJ9E8G,GAAuB,SAAHr5C,GAA2D,IAArDs5C,EAAUt5C,EAAVs5C,WACrC,OACEj4C,gBAAA2C,YAAA,CAAA5C,SAAA,CACEN,eAAC8pB,GAAS,CACRiqB,WAAYhP,KACZkO,aAAcjO,KACdyM,kBAAmBnR,KACnByO,aAAc7J,KACd5c,YAAa1wB,MAEfoI,eAACy4C,GAAkB,CAACD,WAAYA,Q,UCdzBj6C,GAAiBC,eAAK,CACjCxI,IAAK,sBACLyI,SAAS,IAGEi6C,GAA4Bl6C,eAAK,CAC5CxI,IAAK,4BACLyI,SAAS,IAGEk6C,GAAan6C,eAAK,CAC7BxI,IAAK,QACLyI,QAAS,CACPN,SAAU,GACVy6C,SAAU,GACVC,cAAe,MCfN14C,GAASc,WAAWC,OAAO,CACtCO,UAAW,CACTH,QAAS,OACToM,IAAK,IAEPC,WAAY,CACVrM,QAAS,OACTC,cAAe,MACfC,eAAgB,WAChBkM,IAAK,K,qkBCOF,IAAMorC,GAA0D,SAAH55C,GAA4B,IAAtB65C,EAAc75C,EAAd65C,eAClE/+C,EAAQ0F,KACRmO,EAASC,KACfxS,EAA0BC,yBAAeo9C,IAAWl9C,EAAAC,IAAAJ,EAAA,GAA7C+vB,EAAK5vB,EAAA,GAAE6vB,EAAQ7vB,EAAA,GACtBqJ,EAA0BvJ,yBAAem9C,IAA0B3zC,EAAArJ,IAAAoJ,EAAA,GAA5DiJ,EAAMhJ,EAAA,GAAEiJ,EAAOjJ,EAAA,GACtBkB,EAAgC1K,yBAAegD,IAAe4H,EAAAzK,IAAAuK,EAAA,GAAvD6I,EAAS3I,EAAA,GAAE4I,EAAU5I,EAAA,GACtBya,EAAQ9D,8BAAoB67B,IAE5BK,EAAoB,SAAC/+C,EAAiChE,GAC1Dq1B,GAAS,SAAA2tB,GAAa,OAAA9+C,MAAA,GAAU8+C,GAAa,GAAAl2C,IAAA,GAAG9I,EAAOhE,QA4BnDijD,EAAmB,WAAH,OAAelrC,GAAQ,IAE7C,OACEhO,eAACoO,GAAS,CAACC,QAASN,EAAQO,QAAS4qC,EAAiB54C,SACpDC,gBAACyC,OAAG,CAAC9C,MAAOC,GAAOsB,UAAUnB,SAAA,CAC3BN,eAACyH,QAAI,CAACzG,QAAQ,YAAWV,SAAC,oBAE1BN,eAAC6D,GAAS,CACRI,MAAM,aACNI,aAAc,SAAAjB,GAAI,OAAI41C,EAAkB,WAAY51C,IACpDnN,MAAOo1B,EAAMltB,WAGf6B,eAAC6D,GAAS,CACRI,MAAM,SACNI,aAAc,SAAAjB,GAAI,OAAI41C,EAAkB,gBAAiB51C,IACzDnN,MAAOo1B,EAAMwtB,gBAGft4C,gBAACyC,OAAG,CAAC9C,MAAOC,GAAOwN,WAAWrN,SAAA,CAC5BN,eAACW,UAAM,CACLE,MAAO7G,EAAME,OAAOqU,OACpBvN,QAAQ,OACRJ,MAAM,WACNG,QAASm4C,EACT5xC,SAAUwH,IAEZ9O,eAACW,UAAM,CACLK,QAAQ,OACRJ,MAAM,KACNG,QAvDoB,SAACwK,GAC7BA,EAAMO,iBACNiD,GAAW,GAEXgqC,EACGI,cAAc,CACbpuC,OAAQsgB,EAAMltB,SACdf,MAAOiuB,EAAMwtB,gBAEd7xC,MAAK,SAAAoyC,GACAA,GACFvrC,EAAOW,KAAK,yCACZoS,KAEA/S,EAAOW,KAAK,iHAA+G,CACzHxN,QAAS,aAIdkG,OAAM,SAAA9Q,GAAK,OAAIyX,EAAOW,KAAKpY,EAAM+Q,QAAS,CAAEnG,QAAS,aACrDoG,SAAQ,kBAAM2H,GAAW,MAE5BmqC,KAkCQr4C,MAAO7G,EAAME,OAAOxB,QACpBoI,UAAW9G,EAAME,OAAOnC,MACxBuP,SAAUwH,aCtFT3O,GAASc,WAAWC,OAAO,CACtCO,UAAW,CACTH,QAAS,OACToM,IAAK,IAEPC,WAAY,CACVrM,QAAS,OACTC,cAAe,MACfC,eAAgB,WAChBkM,IAAK,GAEP2R,QAAS,CACP3R,IAAK,K,qkBCCF,IAAM2rC,GAAkD,SAAHn6C,GAA4B,IAAtBo6C,EAAcp6C,EAAdo6C,eAC1Dt/C,EAAQ0F,KACRmO,EAASC,KACPvQ,EAAUlC,IAAVkC,MACAq7C,EAAa98C,yBAAe68C,IAA5BC,SACRt9C,EAAgCC,yBAAegD,IAAe9C,EAAAC,IAAAJ,EAAA,GAAvDwT,EAASrT,EAAA,GAAEsT,EAAUtT,EAAA,GAC5BqJ,EAAgCvJ,yBAAeg+C,IAAiBx0C,EAAArJ,IAAAoJ,EAAA,GAAzD+1B,EAAK91B,EAAA,GAAEy0C,EAAcz0C,EAAA,GAC5BkB,EAA0B1K,yBAAek+C,IAAiBtzC,EAAAzK,IAAAuK,EAAA,GAAnD8H,EAAM5H,EAAA,GAAE6H,EAAO7H,EAAA,GAChBya,EAAQ9D,8BAAoB67B,IAsB5Be,EAAe,WACnB1rC,GAAQ,GACRwrC,EAAe,KAGjB,OACEx5C,eAACoO,GAAS,CAACC,QAASN,EAAQO,QAASorC,EAAap5C,SAChDC,gBAACyC,OAAG,CAAC9C,MAAOC,GAAOsB,UAAUnB,SAAA,CAC1BwO,EACG9O,eAACyE,GAAO,CAACrB,KAAK,qBACd7C,gBAAA2C,YAAA,CAAA5C,SAAA,CACEN,eAACyH,QAAI,CAACzG,QAAQ,YAAYd,MAAO,CAAEuJ,WAAY,OAAQnJ,SAAC,sCACxDN,eAACiD,cAAU,CAAC/C,MAAO,CAAEgyC,UAAW,QAAS5xC,SACvCN,eAACgD,OAAG,CAAC9C,MAAOC,GAAOkf,QAAQ/e,SACnB,MAALu6B,OAAK,EAALA,EAAO7lC,KAAI,SAAAoH,GAAM,OAChB4D,eAACsb,WAAgB,CAEfpb,MAAO,CAAE4B,gBAAiB9H,EAAME,OAAOtB,QAASyI,aAAc,GAC9DN,QAAS,SAACwK,GAAK,OAtCf,SAACA,EAA8BnP,GACjDmP,EAAMO,iBACNiD,GAAW,GAEXuqC,EACGK,KAAK,CACJx7C,SAAU/B,EAAOY,WAAWkP,WAC5B0sC,aAED5xC,MAAK,SAAA4yC,GACJr8C,EAAMq8C,GACNh5B,OAED1Z,OAAM,SAAA9Q,GAAK,OAAIyX,EAAOW,KAAKpY,EAAM+Q,QAAS,CAAEnG,QAAS,aACrDoG,SAAQ,WACP2H,GAAW,GACX2qC,OAsBkCG,CAAYtuC,EAAOnP,IAAQkE,SAE/CN,eAAC85C,QAAKnpC,KAAI,CACR/P,MAAOxE,EAAOa,YACdskB,YAAW,aAAYnlB,EAAOY,WAAWkP,WAAWkD,SAAS,EAAG,KAChE2qC,KAAM,SAAAnzC,GAAK,OAAI5G,eAAC85C,QAAKluB,KAAIzxB,MAAA,GAAKyM,GAAK,IAAE6hC,KAAK,cAC1CuR,WAAY,CAAEvwC,WAAY,UARvBrN,EAAOY,sBAiB1BgD,eAACgD,OAAG,CAAC9C,MAAOC,GAAOwN,WAAWrN,SAC5BN,eAACW,UAAM,CACLE,MAAO7G,EAAME,OAAOqU,OACpBvN,QAAQ,OACRJ,MAAM,WACNG,QAAS24C,EACTpyC,SAAUwH,YCjFT2qC,GAAmBj7C,eAAK,CACnCxI,IAAK,mBACLyI,SAAS,IAGE86C,GAAmB/6C,eAAK,CACnCxI,IAAK,mBACLyI,QAAS,KCRE0B,GAASc,WAAWC,OAAO,CACtCO,UAAW,CACTH,QAAS,OACToM,IAAK,M,qkBCUF,IAAMusC,GAAiE,SAAH/6C,GAAkC,IAA5Bg7C,EAAoBh7C,EAApBg7C,qBACzElgD,EAAQ0F,KACRmO,EAASC,KACPiG,EAAgBR,KAAhBQ,YACRzY,EAA0BC,yBAAe4+C,IAA0B1+C,EAAAC,IAAAJ,EAAA,GAA5D+vB,EAAK5vB,EAAA,GAAE6vB,EAAQ7vB,EAAA,GACtBqJ,EAA0BvJ,yBAAe6+C,IAAgCr1C,EAAArJ,IAAAoJ,EAAA,GAAlEiJ,EAAMhJ,EAAA,GAAEiJ,EAAOjJ,EAAA,GACtBkB,EAAyD1K,yBAAe8+C,IAA0Bl0C,EAAAzK,IAAAuK,EAAA,GAA3Fq0C,EAAqBn0C,EAAA,GAAEo0C,EAAuBp0C,EAAA,GACrD6Z,EAAmDzkB,yBAAei/C,IAAwBt6B,EAAAxkB,IAAAskB,EAAA,GAAnFy6B,EAAmBv6B,EAAA,GAAEw6B,EAAmBx6B,EAAA,GAC/CG,EAAgC9kB,yBAAeo/C,IAAmCp6B,EAAA7kB,IAAA2kB,EAAA,GAA3EvR,EAASyR,EAAA,GAAExR,EAAUwR,EAAA,GACtBvB,EAAkBljB,yBAAe0iB,IACjCo8B,EAAgB9+C,yBAAe8iB,IAC/BgC,EAAQ9D,8BAAoBq9B,IAC5BU,EAAqB/9B,8BAAoBu9B,IACzCpG,EAAe77B,KAEf4gC,EAAoB,SAAC/+C,EAAwChE,GACjEq1B,GAAS,SAAA2tB,GAAa,OAAA9+C,MAAA,GAAU8+C,GAAa,GAAAl2C,IAAA,GAAG9I,EAAOhE,QA2CnDijD,EAAmB,WAAH,OAAelrC,GAAQ,IAE7C,OACEzN,gBAAC6N,GAAS,CAACC,QAASN,EAAQO,QAAS4qC,EAAiB54C,SAAA,CACpDN,eAACiD,cAAU,CAAC/C,MAAO,CAAEgyC,UAAW,QAAS5xC,SAEvCC,gBAACyC,OAAG,CAAC9C,MAAOC,GAAOsB,UAAUnB,SAAA,CAC3BN,eAACyH,QAAI,CAACzG,QAAQ,YAAYd,MAAO,CAAEuJ,WAAY,OAAQnJ,SAAC,mBAExDN,eAACqhB,EAAOC,QAAO,CACbrd,OAAsB,MAAf+a,OAAe,EAAfA,EAAiB3S,YAAa,mCACrCkV,YAAa+4B,EAAsBjuC,UACnCmV,OAAQ,kBAAMk5B,GAAoB,MAEpC16C,eAAC6D,GAAS,CACRI,MAAM,2BACNI,aAAc,SAAAjB,GAAI,OAAI41C,EAAkB,OAAQ51C,IAChDnN,MAAOo1B,EAAMluB,OAGf6C,eAAC6D,GAAS,CACRI,MAAM,6BACNI,aAAc,SAAAjB,GAAI,OAAI41C,EAAkB,OAAQ51C,IAChDnN,MAAOo1B,EAAMyvB,OAGf96C,eAAC6D,GAAS,CACRI,MAAM,2BACNI,aAAc,SAAAjB,GAAI,OAAI41C,EAAkB,WAAY51C,IACpDnN,MAAOo1B,EAAM0vB,WAGf/6C,eAAC6D,GAAS,CACRI,MAAM,wBACNI,aAAc,SAAAjB,GAAI,OAAI41C,EAAkB,MAAO51C,IAC/CnN,MAAOo1B,EAAMrX,IACb1P,UAAW,KAGb/D,gBAACkb,UAAM,CAAAnb,SAAA,CACLN,eAACyH,QAAI,CAACzG,QAAQ,YAAYd,MAAO,CAAEuJ,WAAY,MAAO1H,aAAc,IAAKzB,SAAC,gBAE1EN,eAAC6D,GAAS,CACRI,MAAM,MACNI,aAAc,SAAAjB,GAAI,OAAI41C,EAAkB,MAAO51C,IAC/CnN,MAAOo1B,EAAM2vB,IACb12C,UAAW,IAGbtE,eAAC6D,GAAS,CACRI,MAAM,cACNI,aAAc,SAAAjB,GAAI,OAAI41C,EAAkB,WAAY51C,IACpDnN,MAAOo1B,EAAMuX,WAEfriC,gBAAC6pC,GAAU,CAAA9pC,SAAA,CACTN,eAAC6D,GAAS,CACRI,MAAM,YACNI,aAAc,SAAAjB,GAAI,OAAI41C,EAAkB,iBAAkB51C,IAC1DnN,MAAOo1B,EAAM4vB,eACb/6C,MAAO,CAAEwB,KAAM,KAGjB1B,eAAC6D,GAAS,CACRI,MAAM,cACNI,aAAc,SAAAjB,GAAI,OAAI41C,EAAkB,cAAe51C,IACvDnN,MAAOo1B,EAAM6vB,YACbh7C,MAAO,CAAEwB,KAAM,QAGnBnB,gBAAC6pC,GAAU,CAAA9pC,SAAA,CACTN,eAAC6D,GAAS,CACRI,MAAM,SACNI,aAAc,SAAAjB,GAAI,OAAI41C,EAAkB,SAAU51C,IAClDnN,MAAOo1B,EAAM8vB,OACbj7C,MAAO,CAAEwB,KAAM,KAEjB1B,eAAC6D,GAAS,CACRI,MAAM,SACNI,aAAc,SAAAjB,GAAI,OAAI41C,EAAkB,SAAU51C,IAClDnN,MAAOo1B,EAAM+vB,OACbl7C,MAAO,CAAEwB,KAAM,QAGnB1B,eAAC6D,GAAS,CACRI,MAAM,SACNI,aAAc,SAAAjB,GAAI,OAAI41C,EAAkB,SAAU51C,IAClDnN,MAAOo1B,EAAMgwB,iBAMrB96C,gBAACC,UAAM,CAACiG,QAAQ,MAAMc,GAAI,GAAGjH,SAAA,CAC3BN,eAACW,UAAM,CACLE,MAAO7G,EAAME,OAAOqU,OACpBvN,QAAQ,OACRJ,MAAM,WACNG,QAASm4C,EACT5xC,SAAUwH,IAEZ9O,eAACW,UAAM,CACLK,QAAQ,OACRJ,MAAM,SACNG,QA/Ie,SAACwK,GACtBA,EAAMO,iBACNiD,GAAW,GAEX,IAAM4d,EAAkCxyB,MAAA,GACnCkxB,GAAK,IACRjuB,MAAOk9C,EAAsBl9C,MAC7B4pC,WAAYsT,EAAsBt5B,UAGpCk5B,EACGoB,SAAS3uB,GACT3lB,MAAK,WACJ6G,EAAOW,KAAK,yFACZqsC,IACAj6B,OAED1Z,OAAM,SAAA9Q,GAAK,OAAIyX,EAAOW,KAAKpY,EAAM+Q,QAAS,CAAEnG,QAAS,aACrDoG,SAAQ,kBAAM2H,GAAW,MAE5BmqC,KA4HMr4C,MAAO7G,EAAME,OAAOxB,QACpBoI,UAAW9G,EAAME,OAAOnC,MACxBuP,SAAUwH,IA3HE,WAAgB,IAADysC,EACjC,QAAKjB,EAAsBl9C,QAIvBiuB,EAAMrX,IAAI/c,OAAS,IAAM8c,EAAYsX,EAAMrX,MAC7CigC,EAAa,IAAIz+C,MAAM,yCAChB,OAGH61B,EAAMyvB,OAAkB,OAAVS,EAAAlwB,EAAMyvB,WAAI,EAAVS,EAAYtkD,SAAU,KAAOo0B,EAAM0vB,WAiHzBS,QAG5Bx7C,eAACqhB,EAAOW,MAAK,CACXjU,OAAQ0sC,EACRnsC,QAAS,kBAAMosC,GAAoB,IACnCt4B,SAAU,SAACjtB,EAAI+sB,GACb82B,EAAkB,iBAAkB7jD,GACpColD,EAAwBr4B,IAE1BthB,OAAsB,MAAfoe,OAAe,EAAfA,EAAiB3S,YAAa,YACrC3F,MAAoB,MAAbk0C,OAAa,EAAbA,EAAe5lD,KAAI,SAAA0b,GAAM,MAAK,CACnCvb,GAAIub,EAAOuQ,UAAUjjB,WACrBqO,UAAWqE,EAAOrE,UAClB8V,WAAYm4B,EAAsBt5B,UAAYtQ,EAAOsQ,SACnDs5B,EAAsBr5B,UAAUjjB,aAAe0S,EAAOuQ,UAAUjjB,WAClEkkB,KAAMxR,YChMH0pC,GAAkC57C,eAAK,CAClDxI,IAAK,kCACLyI,SAAS,IAGE+7C,GAA0Bh8C,eAAK,CAC1CxI,IAAK,0BACLyI,SAAS,IAGE47C,GAA4B77C,eAAmB,CAC1DxI,IAAK,4BACLyI,QAAS,CACP4N,UAAW,GACXjP,MAAO,GACP6jB,UAAW,KACXD,QAAS,KAIA25B,GAAqCn8C,eAAK,CACrDxI,IAAK,qCACLyI,SAAS,IAGE07C,GAA4B37C,eAAiC,CACxExI,IAAK,4BACLyI,QAAS,CACPg9C,eAAgB,EAChBzU,WAAY,EACZ7pC,KAAM,GACN6W,IAAK,GACL+mC,SAAU,GACV39C,MAAO,GACPs+C,IAAK,GACLZ,KAAM,GACNG,eAAgB,GAChBrY,SAAU,GACVyY,OAAQ,GACRL,IAAK,GACLG,OAAQ,GACRD,YAAa,GACbE,OAAQ,MCpCCO,GAAsC,SAAHz8C,GAAqC,IAAD08C,EAAA18C,EAA9BiK,aAAK,IAAAyyC,EAAG,GAAEA,EAAAC,EAAA38C,EAAEyT,cAAM,IAAAkpC,EAAG,GAAEA,EACnE9mC,EAAaD,KAAbC,SACAzS,EAAmBC,KAAnBD,eACRG,EAAsCC,mBAAS,IAAGgD,EAAAhK,IAAA+G,EAAA,GAA3C6lC,EAAW5iC,EAAA,GAAE6iC,EAAc7iC,EAAA,GAE5B9C,EAAcN,IACdw5C,EAA6CxT,EAC/C,CAAEpuB,IAAKouB,GACPnuB,EAAQ,KASZ,OAPAjV,qBAAU,WACRtC,EAAY0Z,WACVvH,EAASnS,EAAY0Z,UAAW,QAC7BtV,MAAK,SAAA+O,GAAUwyB,EAAexyB,MAC9B7O,MAAM2O,QAAQzf,SAClB,IAGD4J,eAAC6b,WAAK,CACJ3b,MAAO,CACLiJ,QACAwJ,SACA1Q,YAAa,GAEf6Z,WAAW,UACXC,OAAQ+/B,KCjCD37C,GAASc,WAAWC,OAAO,CACtCO,UAAW,CACTC,KAAM,EACNF,eAAgB,SAChByH,WAAY,UAEd8yC,aAAc,CACZ5yC,MAAO,OACPmc,SAAU,WACVqB,kBAAmB,GACnBC,gBAAiB,GACjB5K,SAAU,IACVxa,eAAgB,gBAChByH,WAAY,SACZuT,YAAa,EACbnb,aAAc,EACd0rC,YAAa,sBACbC,aAAc,CACZ7jC,MAAO,EACPwJ,OAAQ,IAGZsC,MAAO,CACLvT,KAAM,EACNF,eAAgB,SAChBukB,UAAW,WAEb3M,MAAO,CACLjQ,MAAO,OACPkQ,aAAc,EACdvX,gBAAiB,eAEnBk6C,KAAM,CACJ7yC,MAAO,OACPuE,IAAK,IAEPuuC,aAAc,CACZ16C,cAAe,MACf0H,WAAY,SACZzH,eAAgB,WAChBkM,IAAK,GACL7M,MAAO,OACP8R,OAAQ,eAEVhF,WAAY,CACVxE,MAAO,OACPuE,IAAK,IAEPwuC,SAAU,CACR/yC,MAAO,IACP6S,SAAU,OACV9Z,WAAY,OACZD,YAAa,OACbsjB,OAAQ,IAEV/J,OAAQ,CACNhS,UAAW,UAEbyhB,OAAQ,CACNvhB,SAAU,GACV4b,SAAU,WACVnc,MAAO,OACPoc,OAAQ,EACRw0B,KAAM,EACNvwC,UAAW,Y,+kBCxCR,IAAM2yC,GAA8B,SAAHj9C,GAMjC,IALLk9C,EAAOl9C,EAAPk9C,QACA9C,EAAcp6C,EAAdo6C,eACAvrB,EAAmB7uB,EAAnB6uB,oBACAgrB,EAAc75C,EAAd65C,eACAmB,EAAoBh7C,EAApBg7C,qBAEMlgD,EAAQ0F,KACRmO,EAASC,KACfuuC,EAAyChhD,IAAjCkC,EAAK8+C,EAAL9+C,MAAOU,EAAWo+C,EAAXp+C,YAAaI,EAAQg+C,EAARh+C,SACpBiE,EAAmBC,KAAnBD,eACRhH,EAA0BC,yBAAeo9C,IAAWl9C,EAAAC,IAAAJ,EAAA,GAA7C+vB,EAAK5vB,EAAA,GAAE6vB,EAAQ7vB,EAAA,GACtBqJ,EAAgCvJ,yBAAegD,IAAewG,EAAArJ,IAAAoJ,EAAA,GAAvDgK,EAAS/J,EAAA,GAAEgK,EAAUhK,EAAA,GAC5BtC,EAAmCC,oBAAS,GAAMgD,EAAAhK,IAAA+G,EAAA,GAA3C0f,EAAUzc,EAAA,GAAE42C,EAAY52C,EAAA,GACzB62C,EAAqB38C,4BAAkB25C,IACvCiD,EAAoB58C,4BAAkB65C,IACtCgD,EAAwB78C,4BAAkB84C,IAC1C1qC,EAAUpO,4BAAkBw6C,IAC5Bp7B,EAAkBljB,yBAAe0iB,IACjCk+B,EAAuB5gD,yBAAe8iB,IACtC+9B,EAAc7gD,yBAAeqtB,IAC7BvI,EAAQ9D,8BAAoB67B,IAE5Bz6C,EAAYD,IACZ2E,EAAcN,IAEd02C,EAAoB,SAAC/+C,EAAoChE,GAC7Dq1B,GAAS,SAAA2tB,GAAa,OAAA9+C,MAAA,GAAU8+C,GAAa,GAAAl2C,IAAA,GAAG9I,EAAOhE,QAGnD+mB,EAAc,SAAC5mB,GACnByX,EAAOW,KAAKpY,EAAM+Q,QAAS,CAAEnG,QAAS,WAwBlC47C,EAAgB,SAACjwB,GACrB5d,GAAW,GACXuqC,EACGK,KAAKhtB,GACL3lB,KAAK,WAAD,IAAAqT,EAAArF,MAAC,UAAM4kC,GAC4B,UAAlCjtB,EAAOxuB,SAASpB,eAClBQ,EAAMq8C,GACNh5B,MAEArjB,EAAMq8C,GACNv7C,EAAS,CACPF,SAAUgkB,EAAawK,EAAOxuB,SAAW,GACzCC,aAAc+jB,IAEhBvB,QAEH,gBAAA3K,GAAA,OAAAoE,EAAAnE,MAAA,KAAAlf,YAZK,IAaLkQ,MAAM8V,GACN5V,SAAQ,kBAAM2H,GAAW,OAGxB8tC,EAAoB,SAAClwB,GACzB5d,GAAW,GACXqtC,EACGU,mBAAmB,CAClB5qC,QAASya,EAAOxuB,SAChBgU,MAAOwa,EAAOisB,WAEf5xC,MAAK,SAAA+1C,GACoB,KAAb,MAAPA,OAAO,EAAPA,EAAS9lD,QACX2lD,EAAc,CACZz+C,SAAU4+C,EAAQ,GAAG//C,WAAWkP,WAChC0sC,SAAUjsB,EAAOisB,YAGnB4D,GAAkB,GAClBD,EAAmBQ,OAGtB71C,MAAM8V,GACN5V,SAAQ,kBAAM2H,GAAW,OAGxBiuC,EAAyB,SAACrwB,GAC9B5d,GAAW,GACXgf,EACG4rB,KAAKhtB,GACL3lB,KAAK,WAAD,IAAAi2C,EAAAjoC,MAAC,UAAO4kC,GACXr8C,EAAMq8C,GACNh5B,OACD,gBAAAs8B,GAAA,OAAAD,EAAA/mC,MAAA,KAAAlf,YAHK,IAILkQ,MAAM8V,GACN5V,SAAQ,kBAAM2H,GAAW,OAU9B,OAPA7J,qBAAU,WACJhH,EAAUE,eACZktB,GAAS,SAAA9tB,GAAY,OAAArD,MAAA,GAAUqD,GAAY,IAAEW,SAAUD,EAAUC,cACjEm+C,GAAa,MAEd,IAGD/7C,gBAAC2mC,WAAY,CAAChnC,MAAK/F,MAAA,GAAOgG,GAAOsB,WAAS,IAAEK,gBAAiBc,EAAYoB,YAAY1D,SAAA,CACnFN,eAACylB,GAAe,IAEhBllB,gBAACyC,OAAG,CACF9C,MAAK/F,MAAA,GACAgG,GAAO47C,cAAY,IACtBj6C,gBAAiBc,EAAYoB,UAC7BuY,YAAaviB,EAAME,OAAOV,cAC1B8G,SAAA,CAEFN,eAAC27C,GAAS,CAAChpC,OAAQ,KACnBpS,gBAACyC,OAAG,CAAC9C,MAAOC,GAAO67C,KAAK17C,SAAA,CACtBN,eAACyH,QAAI,CAAC5G,MAAO+B,EAAY4V,WAAYtY,MAAO,CAAEsJ,UAAW,UAAYxI,QAAQ,KAAIV,SAAC,sBAClFN,eAAC6D,WAAS,CACR7J,MAAO,CAAEE,OAAQ,CAAEijD,iBAAkBnjD,EAAME,OAAOnC,QAClDqlD,UAAWpjD,EAAME,OAAOnC,MACxBoM,eAAgBnK,EAAME,OAAOnC,MAC7BmM,sBAAuBlK,EAAME,OAAOnC,MACpCgM,qBAAsB/J,EAAME,OAAOnC,MACnCmI,MAAOC,GAAOiZ,MACdnV,MAAM,aACNqD,SAAUwH,EACVzK,aAAc,SAAAjB,GAAI,OAAI41C,EAAkB,WAAY51C,IACpDnN,MAAOo1B,EAAMltB,WAEf6B,eAAC6D,WAAS,CACR7J,MAAO,CAAEE,OAAQ,CAAEijD,iBAAkBnjD,EAAME,OAAOnC,QAClDqlD,UAAWpjD,EAAME,OAAOnC,MACxBoM,eAAgBnK,EAAME,OAAOnC,MAC7BmM,sBAAuBlK,EAAME,OAAOnC,MACpCgM,qBAAsB/J,EAAME,OAAOnC,MACnCmI,MAAOC,GAAOiZ,MACd9R,SAAUwH,EACV7K,MAAM,QACNo5C,iBAAe,EACfh5C,aAAc,SAAAjB,GAAI,OAAI41C,EAAkB,WAAY51C,IACpDnN,MAAOo1B,EAAMutB,WAEfr4C,gBAACyC,OAAG,CAAC9C,MAAOC,GAAO87C,aAAa37C,SAAA,CAC9BN,eAACyH,QAAI,CAAC5G,MAAO7G,EAAME,OAAOnC,MAAOiJ,QAAQ,YAAWV,SAAC,sBAGrDN,eAACgpC,WAAQ,CACPsU,eAAgB16C,EAAY2N,WAC5BqF,OAAQuM,EAAa,UAAY,YACjCthB,MAAO+B,EAAY2N,WACnBxP,QAAS,kBAAMu7C,GAAcn6B,SAGjCniB,eAACW,UAAM,CACLT,MAAO,CAAEiJ,MAAO,QAChBtI,MAAO+B,EAAY2N,WACnB3P,MAAM,QACNG,QAzIW,SAACwK,GACpBA,EAAMO,iBAEN,IAAMyxC,EAAiC,CACrCp/C,SAAUktB,EAAMltB,SAChBy6C,SAAUvtB,EAAMutB,UAGc2E,EAASp/C,SAASq/C,oBAAoBtgD,SAAS,0BAE7E8/C,EAAuB,CAAES,MAAOF,EAASp/C,SAAUu/C,MAAOH,EAAS3E,WAExC2E,EAASp/C,SAAS2V,QAAQ,SAAU,IAAIA,QAAQ,MAAO,IAAI7c,OAAS,IACrEsmD,EAASp/C,SAASkX,SAAS,KACnDwnC,EAAkBU,GAElBX,EAAcW,IA0HVj2C,SAAUwH,IAEZ9O,eAACQ,UAAM,CAACgb,QAAM,EAAAlb,SACZN,eAACyH,QAAI,CACH5G,MAAO7G,EAAME,OAAOnC,MACpBiJ,QAAQ,YACRD,QAAS,kBAAM07C,GAAsB,IAAMn8C,SAC5C,6BAKLC,gBAACyC,OAAG,CAAA1C,SAAA,CACFN,eAACypB,GAAY,CAACP,aAAcyzB,IACzB39B,EAAgBP,OAASi+B,EAAqBzlD,OAAS,GACtDsJ,gBAACkb,UAAM,CAAC/a,QAAS,EAAEJ,SAAA,CACjBN,eAACwqC,WAAO,IACRxqC,eAACyH,QAAI,CACH5G,MAAO7G,EAAME,OAAOnC,MACpBiJ,QAAQ,YACRD,QAAS,kBAAMiN,GAAQ,IAAM1N,SAC9B,0DAOXN,eAAC84C,GAAmB,CAACC,eAAgBA,IACrC/4C,eAACq5C,GAAe,CAACC,eAAgBA,IACjCt5C,eAACi6C,GAAyB,CAACC,qBAAsBA,IACjD35C,gBAACkH,QAAI,CAACvH,MAAOC,GAAO8qB,OAAQpqB,MAAO7G,EAAME,OAAOnC,MAAOiJ,QAAQ,YAAWV,SAAA,CAAC,uCAAqCq9C,kBClOzGC,GAA8Bp/C,eAAK,CAC9CxI,IAAK,8BACLyI,SAAS,IAGEo/C,GAAqBr/C,eAAK,CACrCxI,IAAK,qBACLyI,QAAS,KAGEq/C,GAA4Bt/C,eAAK,CAC5CxI,IAAK,4BACLyI,QAAS,CACPs/C,wBAAwB,EACxBC,qBAAqB,EACrBz1C,kBAAkB,EAClB01C,eAAgB,M,UCdP99C,I,OAASc,WAAWC,OAAO,CACtCO,UAAW,CACTL,QAAS,GACTqgB,SAAU,IACVzF,SAAU,IACVtS,SAAU,GACVpI,QAAS,OACT2H,WAAY,UACZgB,SAAU,SACV5I,aAAc,EACd0rC,YAAa,sBACbC,aAAc,CACZ7jC,MAAO,EACPwJ,OAAQ,GAEVs6B,aAAc,GAEhBlvC,QAAS,CACP4U,OAAQ,GACRqT,WAAY,GACZtc,SAAU,IAEZw0C,aAAc,CACZ/0C,MAAO,OACPpH,aAAc,GAEhBwkB,WAAY,CACV7c,SAAU,GACVD,WAAY,OAEd00C,gBAAiB,CACfx3B,kBAAmB,EACnBjd,SAAU,GACVD,WAAY,OAEd7I,MAAO,CACL6I,WAAY,MACZC,SAAU,O,qkBC3BP,IAAM00C,GAAgC,SAAHl/C,GAGnC,IA6BmB0W,EA/BxByoC,EAAYn/C,EAAZm/C,aACA/1B,EAAWppB,EAAXopB,YAEMtuB,EAAQ0F,KACNhC,EAAerC,IAAfqC,WACAmW,EAAmBN,KAAnBM,eACAxJ,EAAaC,KAAbD,SACFi0C,EAAY1+C,4BAAkB2+C,IAE9BxgD,EAAUL,EAAW2gD,EAAa9oB,aAElCnP,EAAejsB,SAAA,GAChBgG,GAAOsB,YACL4I,GAAY,CAAE3I,KAAM,IAAK,GAAF,CAC5BI,gBAAiB9H,EAAME,OAAOnC,MAC9B8I,MAAO7G,EAAME,OAAOf,cAGhBqlD,EAAerkD,MAAA,GAChBgG,GAAOS,OAAK,IACfC,MAAO7G,EAAME,OAAOP,QAGhB8kD,EAAmB,SAAC7oC,GACxB,MAAO,CACL8oC,EAAG1kD,EAAME,OAAOxB,QAChBimD,EAAG3kD,EAAME,OAAO9D,MAChBwoD,EAAG5kD,EAAME,OAAOL,MAChB+b,IA8CJ,OACErV,gBAACyC,OAAG,CAAC9C,MAAOkmB,EAAgB9lB,SAAA,CAlC1BC,gBAACC,UAAM,CAACkG,MAAM,SAAShG,QAAS,EAAGR,MAAOC,GAAO+9C,aAAa59C,SAAA,CAC5DN,eAACyH,QAAI,CACHvH,MAAK/F,MAAA,GACAgG,GAAOS,OAAK,IACfC,MAAO7G,EAAME,OAAON,UACpB8H,KAAM,EACNglC,cAAe,cAEjB1lC,QAAQ,KAAIV,SAEX+9C,EAAapoB,YACVooB,EAAapoB,YACb,iCAGN11B,gBAACkH,QAAI,CACHvH,MAAK/F,MAAA,GACAgG,GAAOg+C,iBAAe,IACzBt9C,MAAO7G,EAAME,OAAON,YAEtBoH,QAAQ,KAAIV,SAAA,CACb,SACK+9C,EAAaQ,MAAM3yC,WAAWkD,SAAS,EAAG,QAEhDpP,eAAC8+C,WAAU,CACTt3C,KAAM,GACN3G,MAAO49C,EAAiBJ,EAAazoC,QACrC3b,KAAK,cASTsG,gBAACkb,UAAM,CAAChV,QAAQ,UAAU/F,QAAS,EAAGR,MAAO,CAAEwB,KAAM,GAAKka,MAAI,EAAAtb,SAAA,CAC5DN,eAACwqC,WAAO,IACRjqC,gBAACkH,QAAI,CACHvH,MAAK/F,MAAA,GACAqkD,IACEH,EAAa3oB,aAAe,CAAEh0B,KAAM,IAE3CV,QAAQ,KAAIV,SAAA,CAEX,kBACDN,eAAA,QAAME,MAAOC,GAAOomB,WAAWjmB,SAC5BgoB,EAAYnxB,OAAOknD,EAAaU,aAAc,2BAGhDV,EAAaW,gBACdX,EAAazoC,SAAWhjB,sBAAmBsiC,QAC3C30B,gBAACkH,QAAI,CAACvH,MAAOs+C,EAAiBx9C,QAAQ,KAAIV,SAAA,CACvC,oBACHN,eAAA,QAAME,MAAOC,GAAOomB,WAAWjmB,SAC5BgoB,EAAYnxB,OAAOknD,EAAaW,eAAgB,yBAIpDX,EAAa3oB,aACZn1B,gBAACkH,QAAI,CAACvH,MAAK/F,MAAA,GAAOqkD,GAAe,IAAEx4B,WAAY,GAAItkB,KAAM,IAAKV,QAAQ,YAAWV,SAAA,CAC9E,wBACDN,eAAA,QAAME,MAAK/F,MAAA,GAAOgG,GAAOomB,YAAU,IAAE7kB,KAAM,IAAIpB,SAC5CuT,EAAewqC,EAAa3oB,aAC1B/F,UAAU,EAAG/6B,oBAAiB1B,GAAG4B,6BAK1CyL,gBAACC,UAAM,CAACE,QAAS,EAAG+F,QAAQ,MAAMwD,SAAS,SAASkkC,GAAI,EAAE7tC,SAAA,CACzDvC,GACCiC,eAACyH,QAAI,CAACvH,MAAK/F,MAAA,GAAOgG,GAAOpC,SAAO,IAAE8C,MAAO7G,EAAME,OAAOd,YAAYkH,SAC5DvC,EAAQ6kC,SAAQ,KAAK7kC,EAAQiuC,OAAM,MAAMjuC,EAAQs9C,SAGvDr7C,eAACi/C,WAAU,CAAChlD,KAAK,SAASiG,MAAO,CAAEwJ,SAAU,IAAM7I,MAAO7G,EAAME,OAAOd,eAEzEmH,gBAACC,UAAM,CAACiG,QAAQ,UAAUomC,GAAI,EAAEvsC,SAAA,CAC9BC,gBAACC,UAAM,CAAAF,SAAA,CACLN,eAACyH,QAAI,CAACvH,MAAK/F,GAAA,GAAOqkD,GAAmBx9C,QAAQ,YAAWV,SAAE,aAC1DN,eAACsQ,GAAI,CACHlN,MA3FYwS,EA2FSyoC,EAAazoC,OA1FrC,CACL8oC,EAAG,SACHC,EAAG,UACHC,EAAG,YACHhpC,IAuFQqQ,eAAgB,CAAEnkB,gBAAiB28C,EAAiBJ,EAAazoC,SACjEsQ,UAAW,CAAExc,SAAU,SAG3B1J,eAACsQ,GAAI,CACHlN,KAAK,eACL8iB,UAAW,CAAExc,SAAU,GAAI7I,MAAO7G,EAAME,OAAOL,MAC/CosB,eAAgB,CAAE1J,YAAaviB,EAAME,OAAOL,MAC5CmH,QAAQ,WACRmL,QAAS,kBAAMmyC,GAAU,SAAA9gD,GAAY,OAAArD,MAAA,GAAUqD,GAAY,IAAE0hD,UAAWb,oBCvIvEjM,GAAoD,SAAHlzC,GAAyC,IAAnCopB,EAAWppB,EAAXopB,YAAa62B,EAAcjgD,EAAdigD,eACzEnlD,EAAQ0F,KACN4C,EAAmBC,KAAnBD,eACA+H,EAAaC,KAAbD,SACF2D,EAAUpO,4BAAkBw/C,IAC5B9M,EAAUx2C,yBAAeujD,IAEzBz8C,EAAcN,IACdkwC,EAASlqB,EAAYnxB,OAAOm7C,EAAQG,WAAY,cACpD,WACAnqB,EAAYnxB,OAAOm7C,EAAQI,QAAS,cAEhCC,EAAY,CAChBC,MAAO,QACP,YAAavoC,EAAW,UAAY,kBACpCi1C,SAAUj1C,EAAW,WAAa,oBAClCioC,EAAQjC,UAEV,OACE9vC,gBAACC,UAAM,CAACE,QAAS,EAAGgb,GAAI,GAAIgtB,MAAI,EAAApoC,SAAA,CAC9BN,eAACgD,OAAG,CAAA1C,SACFN,eAACymB,GAAU,CACT7lB,MAAM,aACN8lB,SAAU8rB,EACVzxC,QAAS,kBAAMiN,GAAQ,QAG3BhO,eAACgD,OAAG,CAAA1C,SACFN,eAACymB,GAAU,CACT7lB,MAAM,SACN8lB,SAAUisB,EACV5xC,QAAS,kBAAMiN,GAAQ,QAG3BhO,eAACQ,UAAM,CAAAF,UACH+J,GACArK,eAACW,UAAM,CACLgrB,QAAS3rB,eAACoM,WAAsB,CAACvL,MAAO7G,EAAME,OAAOnC,MAAOyP,KAAM,GAAIvN,KAAK,SAC3E2G,MAAM,4BACNC,MAAO+B,EAAYoB,UACnBlD,UAAW9G,EAAME,OAAOnC,MACxBgJ,QAASo+C,U,olBCjCd,SAASrL,GAAW50C,GAAqE,IAAjEopB,EAAWppB,EAAXopB,YAAai3B,EAAgBrgD,EAAhBqgD,iBAClC3iD,EAAcvB,IAAduB,UACFogB,EAAc5E,KACpB9c,EAAuDC,yBAAeuiD,IAA0BriD,EAAAC,IAAAJ,EAAA,GAAzFkkD,EAAoB/jD,EAAA,GAAEgkD,EAAsBhkD,EAAA,GACnDqJ,EAAgCvJ,yBAAeqiD,IAA4B74C,EAAArJ,IAAAoJ,EAAA,GAApEgK,EAAS/J,EAAA,GAAEgK,EAAUhK,EAAA,GAC5BkB,EAA8B1K,yBAAe8jD,IAA0Bl5C,EAAAzK,IAAAuK,EAAA,GAAhEqsC,EAAOnsC,EAAA,GAAE6tC,EAAU7tC,EAAA,GAC1B6Z,EAA0BzkB,yBAAe6jD,IAAgCl/B,EAAAxkB,IAAAskB,EAAA,GAAlEjS,EAAMmS,EAAA,GAAElS,EAAOkS,EAAA,GAChBw/B,EAAmB9/C,4BAAkBi+C,IAErCzhD,EAASQ,IAEfsI,qBAAU,WACR8uC,EAAW,CACT3D,SAAUz7C,oBAAiB1B,GAAGM,eAC9Bi/C,WAAYnqB,EAAYnxB,OAAOmxB,EAAYq3B,SAAS/qD,oBAAiB1B,GAAG6B,mBAAoB,cAC5F29C,QAASpqB,EAAYnxB,OAAOmxB,EAAY/wB,QAAQ2U,WAAY,kBAE7D,IAEH,IAyBMmoC,EAAmBl4C,uBAAY,SAACm4C,EAAyBz9C,GAC7Dm9C,GAAW,SAAAO,GAAc,OAAAp6C,MAAA,GACpBo6C,GAAc,GAAAxxC,IAAA,GAChBuxC,EAAQz9C,EAAKqV,kBAEf,IAYH,OACE3L,gBAACi0C,EAAWC,OAAM,CAChBtiB,KAAMpkB,EACNO,QALgB,WAAH,OAAeN,GAAQ,IAMpC3G,QAASyH,EACT4lC,SA/Ca,SAACnpC,GAChBA,EAAMO,iBACNiD,GAAW,GAEX,IAAM6wC,EAAkB,CACtBvP,SAAUiC,EAAQjC,SAClB9V,cAAen+B,EAAOY,WACtB4T,cAAexU,EAAO4kB,QACtB4zB,YAAatsB,EAAYnxB,OAAOm7C,EAAQG,WAAY,cACpDoC,UAAWvsB,EAAYnxB,OAAOm7C,EAAQI,QAAS,eAGjD6M,EACG5kD,IAAIilD,GACJ54C,MAAK,SAAA64C,GACJ,IAAQC,EAAwBD,EAAxBC,QAAY77B,EAAOF,KAAK87B,EAAa77B,IAC7C07B,EAAiBI,GACjBL,EAAuBx7B,MAExB/c,MAAM8V,GACN5V,SAAQ,kBAAM2H,GAAW,MAE5Bf,GAAQ,IA0BN+mC,WAhBqB,WACvBf,EAAW,CACT3D,SAAUz7C,oBAAiB1B,GAAGM,eAC9Bi/C,WAAYnqB,EAAYnxB,OAAOmxB,EAAYq3B,SAAS/qD,oBAAiB1B,GAAG6B,mBAAoB,cAC5F29C,QAASpqB,EAAYnxB,OAAOmxB,EAAY/wB,QAAQ2U,WAAY,iBAY/B5L,SAAA,CAE7BC,gBAACyC,OAAG,CAAA1C,SAAA,CACFN,eAACw0C,EAAWpxB,MAAK,CAACxiB,MAAM,qBACxBL,gBAAC6pC,GAAU,CAAA9pC,SAAA,CACTN,eAACmoB,GAAU,CACTlkB,MAAM,KACNhO,MAAOq8C,EAAQG,WAAanqB,EAAYntB,MAAMm3C,EAAQG,iBAAcv7C,EACpEoQ,SAAUwH,EACV6K,SAAU,SAAC9iB,GAAI,OAAKw9C,EAAiB,aAAkB,MAAJx9C,IAAQyxB,EAAYq3B,SAAS/qD,oBAAiB1B,GAAG6B,qBACpGuzB,YAAaA,IAEftoB,eAACwqC,WAAO,IACRxqC,eAACmoB,GAAU,CACTlkB,MAAM,SACNhO,MAAOq8C,EAAQI,QAAUpqB,EAAYntB,MAAMm3C,EAAQI,cAAWx7C,EAC9DoQ,SAAUwH,EACV6K,SAAU,SAAC9iB,GAAI,OAAKw9C,EAAiB,UAAe,MAAJx9C,IAAQyxB,EAAY/wB,UACpE+wB,YAAaA,UAInBtoB,eAACgD,OAAG,CAAA1C,SACDk/C,EAAqBj3C,kBACpBhI,gBAAA2C,YAAA,CAAA5C,SAAA,CACEN,eAACw0C,EAAWpxB,MAAK,CAACxiB,MAAM,iBACxBZ,eAAC+/C,GAAoB,YChH1B,IAAMX,GAAkC5gD,eAAK,CAClDxI,IAAK,kCACLyI,SAAS,IAGE4gD,GAA4B7gD,eAAK,CAC5CxI,IAAK,4BACLyI,QAAS,CACP4xC,SAAU,YACVoC,WAAY,GACZC,QAAS,M,qkBCNN,IAAMqN,GAAuB,WAClC,IAAQz9C,EAAmBC,KAAnBD,eACA+H,EAAaC,KAAbD,SACR/O,EAA8BC,yBAAe8jD,IAA0B5jD,EAAAC,IAAAJ,EAAA,GAAhEg3C,EAAO72C,EAAA,GAAEu4C,EAAUv4C,EAAA,GACpBukD,EAAYlkD,yBAAemkD,IAE3Br9C,EAAcN,IAMpB,OACEtC,eAAAkD,YAAA,CAAA5C,SAEI0/C,EAAUhrD,KAAI,SAACmgD,GAAY,OACzBn1C,eAACo1C,WAAYzkC,KAAI,CAEf1M,MAAOkxC,EAAal/C,MACpBA,MAAOk/C,EAAal/C,MACpB2f,OAAQ08B,EAAQjC,WAAa8E,EAAal/C,MAAQ,UAAY,YAC9D8K,QAAS,kBAbKs0C,EAagBF,EAAal/C,WAZnD+9C,GAAW,SAACO,GAAc,OAAAp6C,MAAA,GAAWo6C,GAAc,IAAElE,SAAUgF,OAD1C,IAACA,GAcdC,WAAY,CAAE5rC,SAAUW,EAAW,GAAK,IACxCnK,MAAO,CACLmB,aAAc,EACdmb,YAAa,EACbD,YAAgB3Z,EAAYoB,UAAS,KACrCjC,aAAc,EACd6kB,gBAAiBvc,EAAW,EAAI,IAElCxJ,MAAO+B,EAAYoB,WAbdmxC,EAAaI,WCrBjB0K,GAAiBzhD,eAAK,CACjCxI,IAAK,uBACLyI,QAAS,CACP,CAAE82C,IAAK,QAASt/C,MAAO,SACvB,CAAEs/C,IAAK,WAAYt/C,MAAO,YAC1B,CAAEs/C,IAAK,YAAat/C,MAAO,gBCLlBkK,GAASc,WAAWC,OAAO,CACtCO,UAAW,CACTH,QAAS,OACToM,IAAK,IAEPC,WAAY,CACVrM,QAAS,OACTC,cAAe,MACfC,eAAgB,WAChBkM,IAAK,K,qkBCWF,IAAMwyC,GAA8C,SAAHhhD,GAAmC,IAA7BihD,EAAQjhD,EAARihD,SAAU73B,EAAWppB,EAAXopB,YAChEtuB,EAAQ0F,KACRmO,EAASC,KACPlR,EAAcvB,IAAduB,UACFogB,EAAc5E,KACpB9c,EAA0BC,yBAAe6kD,IAAc3kD,EAAAC,IAAAJ,EAAA,GAAhD+vB,EAAK5vB,EAAA,GAAE6vB,EAAQ7vB,EAAA,GACtBqJ,EAA0CvJ,yBAAesiD,IAAmB94C,EAAArJ,IAAAoJ,EAAA,GAArE+6C,EAAa96C,EAAA,GAAE26C,EAAgB36C,EAAA,GACtCkB,EAA0B1K,yBAAe8kD,IAAel6C,EAAAzK,IAAAuK,EAAA,GAAjD8H,EAAM5H,EAAA,GAAE6H,EAAO7H,EAAA,GAChBq5C,EAAuB1jD,yBAAegiD,IAC5C99B,EAAgCzkB,yBAAe+kD,IAAkBpgC,EAAAxkB,IAAAskB,EAAA,GAA1DlR,EAASoR,EAAA,GAAEnR,EAAUmR,EAAA,GAEtB9jB,EAASQ,IAETo8C,EAAoB,SAAC/+C,EAA2BhE,GACpDq1B,GAAS,SAAA2tB,GAAa,OAAA9+C,MAAA,GAAU8+C,GAAa,GAAAl2C,IAAA,GAAG9I,EAAOhE,QAgCnDsqD,EAAe,SAACC,EAAiCz1C,GACrD,IAAM01C,EAAoB,CAAAtmD,MAAA,GAEnBqmD,GAAe,IAClB3B,MAAO9zC,EACP6K,OAAQhjB,sBAAmBsiC,OAC3B6pB,aAAcz2B,EAAY/wB,QAAQ2U,WAClCqpB,YAAa,KAACrqB,OAAAC,KAEb00C,IAELH,EAAiBe,GACjB5yC,EAAOnV,QAAQ,4CAGXgoD,EAAa,WACjB3xC,GAAW,GACXuc,EAAS,CACPoK,YAAa,GACbO,YAAa,MAIX9nB,EAAc,WAClBH,GAAQ,GACR0yC,KAGF,OACE1gD,eAACoO,GAAS,CAACC,QAASN,EAAQO,QAASH,EAAY7N,SAC/CC,gBAACyC,OAAG,CAAC9C,MAAOC,GAAOsB,UAAUnB,SAAA,CAC3BN,eAACyH,QAAI,CAACzG,QAAQ,YAAYd,MAAO,CAAEuJ,WAAY,OAAQnJ,SAAC,kBACvDk/C,EAAqBxB,qBACtBwB,EAAqBvB,gBACnB19C,gBAACC,UAAM,CAACmb,EAAG,GAAIlV,QAAQ,SAASC,MAAM,SAAShG,QAAS,GACtDR,MAAO,CACL4B,gBAAiB9H,EAAME,OAAOk0C,eAC9BC,gBAAiB,EACjBC,gBAAiBt0C,EAAME,OAAO9D,OAC9BkK,SAAA,CACFN,eAAC6G,WAAa,CAAC5M,KAAK,OAAOuN,KAAM,GAAI3G,MAAO7G,EAAME,OAAO9D,QACzD4J,eAACyH,QAAI,CAAC5G,MAAO7G,EAAME,OAAOb,KAAKiH,SAAEk/C,EAAqBvB,oBAI1Dj+C,eAAC6D,GAAS,CACRI,MAAM,eACNI,aAAc,SAAAjB,GAAI,OAAI41C,EAAkB,cAAe51C,IACvDnN,MAAOo1B,EAAM4K,YACb3xB,UAAW,KAGbtE,eAAC6D,GAAS,CACRI,MAAM,qBACN08C,oBAAqB,CAAEr3B,WAAY,IACnCjlB,aAAc,SAAAjB,GAAI,OAAI41C,EAAkB,cAAe51C,IACvDnN,MAAOo1B,EAAMqK,YACbkrB,WAAS,EACTC,cAAe,IAGjBtgD,gBAACyC,OAAG,CAAC9C,MAAOC,GAAOwN,WAAWrN,SAAA,CAC5BN,eAACW,UAAM,CACLE,MAAO7G,EAAME,OAAOqU,OACpBvN,QAAQ,OACRJ,MAAM,WACNG,QAASoN,EACT7G,SAAUwH,IAEZ9O,eAACW,UAAM,CACLC,MAAM,SACNG,QApGa,SAACwK,GACtBA,EAAMO,iBACNiD,GAAW,GAEX,IAAM+xC,EAAiC,CACrC3pB,QAAS/6B,EAAOY,WAChBi5B,YAAa5K,EAAM4K,YACnBP,YAAarK,EAAMqK,YACnB0B,QAASh7B,EAAOg7B,QAChB7kB,gBAAiBnW,EAAOmW,gBACxB8kB,WAAYj7B,EAAOi7B,WACnBzmB,cAAexU,EAAO4kB,SAGxBm/B,EACGzoD,IAAIopD,GACJ95C,MAAK,SAAA+D,GACJ,IAAIA,EAKF,MAAM,IAAIvV,MAAM,uCAJhB+qD,EAAaO,EAAgB/1C,GAC7BiD,GAAQ,GACR0yC,OAKHx5C,MAAM8V,GACN5V,QAAQ+G,IA2EH7G,SAAUwH,IAAcuc,EAAM4K,YAAYh/B,SAAWo0B,EAAMqK,YAAYz+B,kBC1ItEqpD,GAAoB9hD,eAAK,CACpCxI,IAAK,oBACLyI,SAAS,IAGE4hD,GAAiB7hD,eAAK,CACjCxI,IAAK,iBACLyI,SAAS,IAGE2hD,GAAgB5hD,eAAK,CAChCxI,IAAK,WACLyI,QAAS,CACPw3B,YAAa,GACbP,YAAa,MCZJv1B,GAASc,WAAWC,OAAO,CACtCO,UAAW,CACTH,QAAS,QAEXV,MAAO,CACL6I,WAAY,MACZ1H,aAAc,K,qkBCMlB,IAEag/C,GAAoD,SAAH7hD,GAGvD,IAAD8hD,EAAAC,EAAAC,EAAAC,EAAAC,EAAAC,EAFJC,EAAepiD,EAAfoiD,gBACAh5B,EAAWppB,EAAXopB,YAEMtuB,EAAQ0F,KACN2K,EAAaC,KAAbD,SACA3M,EAAerC,IAAfqC,WACFmQ,EAASC,KACfxS,EAAiCC,yBAAegjD,IAAsB9iD,EAAAC,IAAAJ,EAAA,GAA/D+iD,EAAY5iD,EAAA,GAAE6vB,EAAQ7vB,EAAA,GAC7BqJ,EAAgCvJ,yBAAegmD,IAAqBx8C,EAAArJ,IAAAoJ,EAAA,GAA7DgK,EAAS/J,EAAA,GAAEgK,EAAUhK,EAAA,GAEtBhH,EAAUL,EAAW2gD,EAAaa,UAAU3pB,aAElDrwB,qBAAU,WAAO,IAADs8C,EACY,OAA1BA,EAAInD,EAAaa,YAAbsC,EAAwBxjD,aAC1B+Q,GAAW,GAEXuyC,EACGG,eAAe,CAAEC,SAAUrD,EAAaa,UAAUlhD,aAClDgJ,MAAK,SAAA26C,GAAW,OAAIr2B,GAAS,SAAA9tB,GAAY,OAAArD,MAAA,GAAUqD,GAAY,IAAEmkD,sBACjEz6C,OAAM,SAAA9Q,GAAK,OAAIyX,EAAOW,KAAKpY,EAAM+Q,QAAS,CAAEnG,QAAS,aACrDoG,SAAQ,kBAAM2H,GAAW,SAE7B,IAEH,IAgBwB6G,EAhBlBzH,EAAc,WAClBmd,GAAS,SAAA9tB,GAAY,OAAArD,MAAA,GAChBqD,GAAY,IACf0hD,UAAW,KACXyC,YAAa,SAoBjB,OACE3hD,eAACoO,GAAS,CAACC,UAAWgwC,EAAaa,UAAW5wC,QAASH,EAAY7N,SACjEC,gBAACyC,OAAG,CAAC9C,MAAOC,GAAOsB,UAAUnB,SAAA,CAC3BC,gBAACyC,OAAG,CAAA1C,SAAA,CACFC,gBAACC,UAAM,CAACiG,QAAQ,UAAUiV,GAAI,EAAEpb,SAAA,CAC9BN,eAAC4hD,WAAM,CAAC1hD,MAAO,CAAEwJ,SAAU,IAAMzP,KAAK,wBACtC+F,eAACsQ,GAAI,CAAClN,KAAI,UAA8B,OAA9B49C,EAAQ3C,EAAaa,gBAAS,EAAtB8B,EAAwBnC,MAAM3yC,WAAWkD,SAAS,EAAG,WAEzE7O,gBAACyC,OAAG,CAAC9C,MAAO,CAAE6B,aA3DH,GA2DgCzB,SAAA,CACzCN,eAACyH,QAAI,CAACzG,QAAQ,YAAYd,MAAOC,GAAOS,MAAMN,SAAC,gBAC/CN,eAACyH,QAAI,CAACzG,QAAQ,YAAWV,SAAwB,OAAxB2gD,EAAE5C,EAAaa,gBAAS,EAAtB+B,EAAwBhrB,YAAYl5B,mBAEjEwD,gBAACC,UAAM,CAACkb,GA/DG,EA+Dcpb,SAAA,CACvBC,gBAACyC,OAAG,CAAC9C,MAAO,CAAEwB,KAAM,GAAIpB,SAAA,CACtBN,eAACyH,QAAI,CAACvH,MAAOC,GAAOS,MAAOI,QAAQ,YAAWV,SAAC,WAC/CN,eAACsQ,GAAI,CACHlN,MAxBUwS,EAwBiC,OAAvBsrC,EAAC7C,EAAaa,gBAAS,EAAtBgC,EAAwBtrC,OAvBlD,CACL8oC,EAAG,SACHC,EAAG,UACHC,EAAG,YACHhpC,IAoBUqQ,eAAgB,CAAEnkB,gBAjCP,SAAC8T,GACxB,MAAO,CACL8oC,EAAG1kD,EAAME,OAAOxB,QAChBimD,EAAG3kD,EAAME,OAAO9D,MAChBwoD,EAAG5kD,EAAME,OAAOL,MAChB+b,GA4B6C6oC,CAAuC,OAAvB0C,EAAC9C,EAAaa,gBAAS,EAAtBiC,EAAwBvrC,SAC5EsQ,UAAW,CAAExc,SAAU,SAG3BnJ,gBAACyC,OAAG,CAAA1C,SAAA,CACFN,eAACyH,QAAI,CAACzG,QAAQ,YAAYd,MAAOC,GAAOS,MAAMN,SAAC,kBAC/CN,eAACyH,QAAI,CAACzG,QAAQ,YAAWV,SACtBgoB,EAAYnxB,OAA6B,OAAvBiqD,EAAC/C,EAAaa,gBAAS,EAAtBkC,EAAwBrC,aAAc,4BAIhE/+C,eAACiD,cAAU,CAAC/C,MAAO,CAAEgyC,UAAW,QAAS5xC,SACvCC,gBAACyC,OAAG,CAAC9C,MAAO,CAAE6B,aAhFL,GAgFkCzB,SAAA,CACzCN,eAACyH,QAAI,CAACzG,QAAQ,YAAYd,MAAOC,GAAOS,MAAMN,SAAC,sBAC/CN,eAACyH,QAAI,CAACzG,QAAQ,YAAWV,SACA,OADA+gD,EACtBhD,EAAaa,gBAAS,EAAtBmC,EAAwB3rB,mBAI/Bn1B,gBAACC,UAAM,CAACkG,MAAM,SAASmmC,GAvFZ,EAuF8BnxB,GAAI,GAAGpb,SAAA,CAC9CN,eAACi/C,WAAU,CAAChlD,KAAK,SAASiG,MAAO,CAAEwJ,SAAU,GAAIid,kBAxFxC,GAwF2E9lB,MAAO7G,EAAME,OAAOb,OACxGkH,gBAACkb,UAAM,CAACvb,MAAO,CAAE6B,aAAc,GAAIia,SAAU,eAAgB1b,SAAA,CAC3DN,eAACyH,QAAI,CAACvH,MAAO,CAAEwJ,SAAU,GAAID,WAAY,OAAQnJ,SAAS,MAAPvC,OAAO,EAAPA,EAAS8jD,cAAc9kD,gBAC1EiD,eAACyH,QAAI,CAACzG,QAAQ,YAAYd,MAAO,CAAEwJ,SAAU,IAAKpJ,WAC7CvC,IACAsM,EACMtM,EAAQ6kC,SAAQ,KAAK7kC,EAAQiuC,OAAM,MAAMjuC,EAAQs9C,OACjDt9C,EAAQ6kC,SAAQ,KAAK7kC,EAAQiuC,OAAM,MAAMjuC,EAAQs9C,OAAM,MAAMt9C,EAAQo9C,OAAM,IAAIp9C,EAAQq9C,OAAM,MAAMr9C,EAAQi9C,aAK1Hh7C,eAACwqC,WAAO,QAERngC,IACAyE,EAAY9O,eAACyE,GAAO,IAAMzE,eAAC8hD,GAAa,CAACx5B,YAAaA,KAExDtoB,eAACQ,UAAM,CAAAF,SACLN,eAACW,UAAM,CACLE,MAAO7G,EAAME,OAAOZ,SACpB0H,QAAQ,OACRJ,MAAM,SACNG,QAASoN,EACT7G,SAAUwH,EACV5O,MAAO,CAAEgC,WAAY,kBC7HpBq/C,GAAuB/iD,eAAK,CACvCxI,IAAK,uBACLyI,SAAS,IAGE8/C,GAAwB//C,eAAK,CACxCxI,IAAK,wBACLyI,QAAS,CACPygD,UAAW,KACXyC,YAAa,MCRJxhD,GAASc,WAAWC,OAAO,CACtC6gD,qBAAsB,CACpBxgD,cAAe,MACfS,UAAW,GACXkwC,UAAW,QAEbtxC,MAAO,CACL6I,WAAY,MACZ1H,aAAc,GAEhBigD,iBAAkB,CAChBv4C,WAAY,MACZ1H,aAAc,EACd2H,SAAU,IAEZu4C,gBAAiB,CACfv4C,SAAU,M,qkBCPP,IAAMo4C,GAA8C,SAAH5iD,GAAyB,IAADgjD,EAAlB55B,EAAWppB,EAAXopB,YACtD+1B,EAAeviD,yBAAeyiD,IAC5B1qC,EAAmBN,KAAnBM,eAER,OACEtT,gBAAC0C,cAAU,CAAC/C,MAAOC,GAAO4hD,qBAAqBzhD,SAAA,GAC1C+9C,EAAasD,YAAY1qD,QAAU+I,eAACyH,QAAI,CAACvH,MAAK/F,MAAA,GAAOgG,GAAOS,OAAK,IAAEmB,aAAc,KAAKzB,SAAC,iBAC/D,OADkF4hD,EAC1G7D,EAAasD,kBAAW,EAAxBO,EAA0BltD,KAAI,SAACmtD,EAAY7+B,GAAK,OAC/C/iB,gBAACkb,UAAM,CAAAnb,SAAA,CACLC,gBAACC,UAAM,CAAAF,SAAA,CACLN,eAACyH,QAAI,CAACvH,MAAOC,GAAO6hD,iBAAiB1hD,SAAE,iBACvCN,eAACyH,QAAI,CAAAnH,SAAE6hD,EAAWC,iBAEpB7hD,gBAACC,UAAM,CAACiG,QAAQ,UAASnG,SAAA,CACvBC,gBAACC,UAAM,CAAAF,SAAA,CACLN,eAACyH,QAAI,CAACvH,MAAOC,GAAO6hD,iBAAiB1hD,SAAE,gBACvCN,eAACyH,QAAI,CAACvH,MAAOC,GAAO8hD,gBAAgB3hD,SAAEgoB,EAAYnxB,OAAOgrD,EAAW1P,WAAY,yBAElFlyC,gBAACC,UAAM,CAAAF,SAAA,CACLN,eAACyH,QAAI,CAACvH,MAAOC,GAAO6hD,iBAAiB1hD,SAAE,iBACvCN,eAACyH,QAAI,CAACvH,MAAOC,GAAO8hD,gBAAgB3hD,SAAEgoB,EAAYnxB,OAAOgrD,EAAWE,YAAa,4BAGrF9hD,gBAACyC,OAAG,CAAC9C,MAAO,CAAE8b,SAAU,KAAM1b,SAAA,CAC5BN,eAACyH,QAAI,CAACvH,MAAOC,GAAO6hD,iBAAiB1hD,SAAC,sBACtCN,eAACyH,QAAI,CAACvH,MAAOC,GAAO8hD,gBAAgB3hD,SAAEuT,EAAesuC,EAAWzsB,kBAElE11B,eAACwqC,WAAO,CAACtqC,MAAO,CAAE8B,UAAW,GAAID,aAAc,QAAQ,sBAnBtBuhB,U,+NClBtC,IAAMnjB,GAASc,WAAWC,OAAO,CACtCO,UAAW,CACTC,KAAM,EACNuH,WAAY,WAEdoW,Q,mWAAOllB,CAAA,GACF0tC,GAAaC,aAElBC,OAAQ,CACNC,cAAe,M,8OCSZ,IAAM9d,GAA8C,SAAHhrB,GAKjD,IAJLqgD,EAAgBrgD,EAAhBqgD,iBACAY,EAAQjhD,EAARihD,SACAmB,EAAepiD,EAAfoiD,gBACAh5B,EAAWppB,EAAXopB,YAEMtuB,EAAQ0F,KACRmO,EAASC,KACPzD,EAAaC,KAAbD,SACF2S,EAAc5E,KACZxb,EAAcvB,IAAduB,UACA0F,EAAmBC,KAAnBD,eACA48C,EAAcpjD,yBAAeyiD,IAA7BW,UACR5jD,EAA0CC,yBAAesiD,IAAmBpiD,EAAAC,IAAAJ,EAAA,GAArEukD,EAAapkD,EAAA,GAAEikD,EAAgBjkD,EAAA,GACtCqJ,EAAuDvJ,yBAAeuiD,IAA0B/4C,EAAArJ,IAAAoJ,EAAA,GAAzF06C,EAAoBz6C,EAAA,GAAE06C,EAAsB16C,EAAA,GACnDkB,EAAgC1K,yBAAeqiD,IAA4Bz3C,EAAAzK,IAAAuK,EAAA,GAApE6I,EAAS3I,EAAA,GAAE4I,EAAU5I,EAAA,GACtBm8C,EAAkB1iD,4BAAkBygD,IACpC/N,EAAUx2C,yBAAeujD,IACzBrxC,EAAUpO,4BAAkBw/C,IAC5BhI,EAAgBC,iBAAO,MAEvBj7C,EAASQ,IACTgG,EAAcN,IAEpBipB,0BACEpvB,uBAAY,WACV4S,GAAW,GAEX,IAAM6wC,EAAkB,CACtBvP,SAAUiC,EAAQjC,SAClB9V,cAAen+B,EAAOY,WACtB4T,cAAexU,EAAO4kB,QACtB4zB,YAAatC,EAAQG,WACjBnqB,EAAYnxB,OAAOm7C,EAAQG,WAAY,cACvCnqB,EAAYnxB,OAAOmxB,EAAYq3B,SAAS/qD,oBAAiB1B,GAAG6B,mBAAoB,cACpF8/C,UAAWvC,EAAQI,QACfpqB,EAAYnxB,OAAOm7C,EAAQI,QAAS,cACpCpqB,EAAYnxB,OAAOmxB,EAAY/wB,QAAQ2U,WAAY,eAGzDqzC,EACG5kD,IAAIilD,GACJ54C,MAAK,SAAA64C,GACJ,IAAQC,EAAwBD,EAAxBC,QAAY77B,EAAOF,KAAK87B,EAAa77B,IAC7C07B,EAAiBI,GACjBL,EAAuBx7B,MAExB/c,MAAM8V,GACN5V,SAAQ,kBAAM2H,GAAW,QAC3B,KAGL,IAAMowC,EAAiBhjD,uBAAY,WACjC,GAAIqjD,EAAqBzB,yBACkB,MAAb8B,OAAa,EAAbA,EAAe/+B,MAAK,SAAA/T,GAAE,OAAIA,EAAG6I,SAAWhjB,sBAAmBsiC,WAGrF,YADArnB,EAAOW,KAAK,4GAA2F,CAAExN,QAAS,UAKtHshD,GAAgB,KACf,CAAC9C,EAAqBzB,yBAEzB,OACEx9C,gBAAC2mC,WAAY,CAAChnC,MAAOC,GAAOsB,UAAUnB,SAAA,CACpCN,eAAC8zC,GAAW,CAACyL,iBAAkBA,EAAkBj3B,YAAaA,IAC9DtoB,eAACiD,cAAU,CAAC+0C,IAAKZ,EAAe/tB,sBAAuBlpB,GAAO4nC,OAAOznC,SACnEC,gBAACyC,OAAG,CAAC9C,MAAOC,GAAOkf,QAAQ/e,SAAA,CACzBN,eAACwoC,GAAU,CACTplC,KAAK,uBACLqlC,KAAMzoC,eAAC6G,WAAa,CAACW,KAAM,GAAI3G,MAAO7G,EAAME,OAAOb,KAAMY,KAAK,iBAC9Dm+C,YAAa,kBAAMpqC,GAAQ,MAE7BhO,eAACoyC,GAAgB,CAAC9pB,YAAaA,EAAa62B,eAAgBA,IAC5Dn/C,eAACgnB,GAAQ,CACPlY,UAAWA,EACXmY,SAAU44B,EAAc5oD,OACxBkwB,YAAY,gCAA4B7mB,SAE1B,MAAbu/C,OAAa,EAAbA,EAAe7qD,KAAI,SAACqpD,EAAc/6B,GAAK,OACtCtjB,eAACo+C,GAAM,CAELC,aAAcA,EACd/1B,YAAaA,GAAY,qBAFChF,aAQjCjZ,GACCrK,eAACP,GAAc,CAAAa,SACbN,eAACuiD,OAAG,CACFt+C,MAAM,WACNlD,QAASo+C,EACTn+C,QAAQ,WACRynC,KAAM,SAAA7hC,GAAK,OAAI5G,eAACoM,W,mWAAsBjS,CAAA,CAACF,KAAK,QAAW2M,KAAW/F,MAAO+B,EAAYoB,eAI3F8K,GAAa9O,eAACkgD,GAAa,CAACC,SAAUA,EAAU73B,YAAaA,MAC5D42B,GAAal/C,eAAC+gD,GAAW,CAACz4B,YAAaA,EAAag5B,gBAAiBA,QCpHjEkB,GAA2B,SAAHtjD,GAA2D,IAArDs5C,EAAUt5C,EAAVs5C,WACzC,OACEj4C,gBAAA2C,YAAA,CAAA5C,SAAA,CACEN,eAACkqB,GAAa,CACZq1B,iBAAkB1b,KAClBvb,YAAc1wB,IACduoD,SAAU3e,KACV8f,gBAAiBxd,OAEnB9jC,eAACy4C,GAAkB,CAACD,WAAYA,QCbzBj6C,GAAiBC,eAAK,CACjCxI,IAAK,qBACLyI,SAAS,I,qkBCSX,IAAMgkD,GAAa,CACjBx1C,OAAQ,UACRF,GAAI,UACJQ,IAAK,UACLP,WAAY,UACZE,cAAe,UACfE,OAAQ,UACRs1C,cAAe,UACfv1C,OAAQ,UACRE,eAAgB,UAChBC,gBAAiB,UACjBE,aAAc,UACdC,SAAU,WAGCk1C,GAAoC,SAAHzjD,GAA8B,IAAxB0jD,EAAI1jD,EAAJ0jD,KAAMpK,EAAUt5C,EAAVs5C,WAClDx+C,EAAQ0F,KACdmjD,EAA4Bv4C,KAApBD,EAAQw4C,EAARx4C,SAAUlB,EAAK05C,EAAL15C,MAEZ25C,EAAWt6B,mBAAQ,iBAAO,CAC9Bvb,OAAQjN,eAAC6G,WAAa,CAAC5M,KAAK,eAAeuN,KAAM6C,EAAW,GAAK,GAAIxJ,MAAO7G,EAAME,OAAOnC,QACzFgV,GAAI/M,eAAC6G,WAAa,CAAC5M,KAAK,eAAeuN,KAAM6C,EAAW,GAAK,GAAIxJ,MAAO7G,EAAME,OAAOnC,QACrFwV,IAAKvN,eAAC6G,WAAa,CAAC5M,KAAK,gBAAgBuN,KAAM6C,EAAW,GAAK,GAAIxJ,MAAO7G,EAAME,OAAOnC,QACvFiV,WAAYhN,eAACoM,WAAsB,CAACnS,KAAK,wBAAwBuN,KAAM6C,EAAW,GAAK,GAAIxJ,MAAO7G,EAAME,OAAOnC,QAC/GmV,cAAelN,eAACoM,WAAsB,CAACnS,KAAK,sBAAsBuN,KAAM6C,EAAW,GAAK,GAAIxJ,MAAO7G,EAAME,OAAOnC,QAChHyV,aAAcxN,eAAC6G,WAAa,CAAC5M,KAAK,gBAAgBuN,KAAM6C,EAAW,GAAK,GAAIxJ,MAAO7G,EAAME,OAAOnC,QAChGqV,OAAQpN,eAACoM,WAAsB,CAACnS,KAAK,sBAAsBuN,KAAM6C,EAAW,GAAK,GAAIxJ,MAAO7G,EAAME,OAAOnC,QACzG2qD,cAAe1iD,eAACoM,WAAsB,CAACnS,KAAK,6BAA6BuN,KAAM6C,EAAW,GAAK,GAAIxJ,MAAO7G,EAAME,OAAOnC,QACvHoV,OAAQnN,eAACoM,WAAsB,CAACnS,KAAK,iBAAiBuN,KAAM6C,EAAW,GAAK,GAAIxJ,MAAO7G,EAAME,OAAOnC,QACpGsV,eAAgBrN,eAACoM,WAAsB,CAACnS,KAAK,6BAA6BuN,KAAM6C,EAAW,GAAK,GAAIxJ,MAAO7G,EAAME,OAAOnC,QACxHuV,gBAAiBtN,eAACoM,WAAsB,CAACnS,KAAK,6BAA6BuN,KAAM6C,EAAW,GAAK,GAAIxJ,MAAO7G,EAAME,OAAOnC,QACzH0V,SAAUzN,eAACoM,WAAsB,CAACnS,KAAK,oBAAoBuN,KAAM6C,EAAW,GAAK,GAAIxJ,MAAO7G,EAAME,OAAOnC,SACzG6qD,KAAQ,CAACA,IAYLhiD,EAAQ,CACZqM,OAAQ,aACRF,GAAI1C,EAAW,SAAW,uBAC1BkD,IAAK,MACLP,WAAY3C,EAAW,QAAU,gBACjC6C,cAAe,gBACfM,aAAc,eACdJ,OAAQ,YACRs1C,cAAer4C,EAAW,SAAW,iBACrC8C,OAAQ9C,EAAW,SAAW,kBAC9BgD,eAAgBhD,EAAW,YAAc,qBACzCiD,gBAAiBjD,EAAW,WAAa,oBACzCoD,SAAUpD,EAAW,WAAa,gBAClCu4C,GAEIG,EAAQ,CACZ91C,OAAQyc,GAAgBI,UACxB/c,GAAI2c,GAAgBQ,cACpB3c,IAAKmc,GAAgBM,IACrBhd,WAAY0c,GAAgBK,SAC5B7c,cAAewc,GAAgBa,WAC/B/c,aAAckc,GAAgBc,MAC9Bpd,OAAQsc,GAAgBS,WACxBu4B,cAAeh5B,GAAgBO,eAC/B9c,OAAQuc,GAAgBU,YACxB/c,eAAgB,qBAChBC,gBAAiB,oBACjBG,SAAUic,GAAgBgB,UAC1Bk4B,GAEIx8B,EAAejsB,SAAA,GAChBgG,GAAOsB,WACL4I,EAMD,CACE3I,KAAM,GACNgrC,UAAW,KAPb,CACEwF,UAAW,IACXl2B,SAAU,IACV0wB,UAAW,MAKV,GAAF,CACLjrB,SAAUpX,GAAYlB,EAAQ,IAAM,EAAI,MACxCrH,gBAAiB2gD,GAAWG,KAG9B,OACEriD,gBAAC+a,WAAgB,CACfC,cAAe,GACfrb,MAAOkmB,EACPrlB,QAAS,kBAAMy3C,EAAWwK,SAASD,IAAOziD,SAAA,CAE1CN,eAACQ,UAAM,CAACob,MAAI,EAAAtb,SA7DdN,eAACgD,OAAG,CAAC9C,MAAOC,GAAO8iD,cAAc3iD,SAC/BN,eAACgD,OAAG,CAAC9C,MAAK/F,MAAA,GACLgG,GAAO+iD,aAAW,IACrBphD,gBAAoB2gD,GAAWG,GAAK,OACpCtiD,SACCwiD,QA2DH9iD,eAACQ,UAAM,CAACob,MAAI,EAAClV,MAAM,MAAKpG,SACtBN,eAACyH,QAAI,CACH5G,MAAO7G,EAAME,OAAOnC,MACpBmI,MAAK/F,MAAA,GACAgG,GAAOS,OAAK,IACf8I,SAAUW,EAAW,GAAK,KAC1B/J,SAEDM,UAOLT,GAASc,WAAWC,OAAO,CAC/BO,UAAW,CACTD,eAAgB,SAChBolB,gBAAiB,GACjBvlB,aAAc,GACdiO,SAAU,QAEZ1O,MAAO,CACL6I,WAAY,MACZkd,kBAAmB,IAErBs8B,cAAe,CACb5hD,aAAc,EACdS,gBAAiB,UACjBI,WAAY,IAEdghD,YAAa,CACX7hD,aAAc,EACdslB,kBAAmB,GACnBnlB,eAAgB,SAChByH,WAAY,SACZvH,KAAM,K,qkBCjJH,IAAMvB,GAASc,WAAWC,OAAO,CACtCO,UAAStH,MAAA,GACJ0tC,GAAaC,aAAW,IAC3B9rB,SAAU,MAEZqD,QAAS,CACP9d,cAAe,MACf+N,SAAU,OACV5B,IAAK,GACLzE,WAAY,SACZzH,eAAgB,cAElB2hD,SAAU,CACRlhD,YAAa,GACbF,aAAc,GACdkH,WAAY,WACZ8c,UAAW,WACXrkB,KAAM,K,qkBCZV,IAAM0hD,GAAiB,CACrB,aACA,iBACA,kBACA,aACA,SACA,SACA,2BACA,mBAOWlzC,GAA4B,SAAHhR,GAAwB,IAAlBs5C,EAAUt5C,EAAVs5C,WAClCnuC,EAAaC,KAAbD,SACAzN,EAAcvB,IAAduB,UACFkS,EAAYhT,yBAAeyC,IAE3BnC,EAASQ,IAETymD,GAAkB,MAANjnD,OAAM,EAANA,EAAQ0wB,SAAUn3B,OACjCD,KAAK0G,EAAO0wB,QACZ7hB,QAAO,SAAC23C,GAAwC,OAAMQ,GAAe/tC,SAASutC,EAAKzvC,kBAAoB/W,EAAO0wB,OAAO81B,MAYxH,OACE5iD,eAACgD,OAAG,CAAC9C,MAAOC,GAAOsB,UAAW6hD,OAAO,OAAOC,mBAAmB,OAAMjjD,SAClEwO,IAAc1S,EACX4D,eAACyE,GAAO,CAACrB,KAAK,0CAZpBpD,eAACgD,OAAG,CAAC9C,MAAK/F,MAAA,GACLgG,GAAOkf,UACLhV,GAAY,CAAErI,UAAW,KAC9B1B,SACU,MAAT+iD,OAAS,EAATA,EAAWruD,KAAI,SAAC4tD,EAA0Ct/B,GAAa,OACtEtjB,eAAC2iD,GAAQ,CAA4BC,KAAMA,EAAMpK,WAAYA,GAAW,aAA5Cl1B,W,qkBCtB7B,IAAMuG,GAA4B,SAAH3qB,GAK/B,IAJLskD,EAAetkD,EAAfskD,gBACAhL,EAAUt5C,EAAVs5C,WACAiL,EAAYvkD,EAAZukD,aACAn7B,EAAWppB,EAAXopB,YAEMtL,EAAc5E,KACpBikC,EAAwChhD,IAAhCoC,EAAS4+C,EAAT5+C,UAAWlB,EAAgB8/C,EAAhB9/C,iBACbwS,EAAanP,4BAAkBrB,IACrCjD,EAA2CC,yBAAeC,IAAoBC,EAAAC,IAAAJ,EAAA,GAAvEK,EAAaF,EAAA,GAAEG,EAAiBH,EAAA,GAEjCioD,EAAgBnnD,IA+BtB,OA7BAgvB,0BACEpvB,uBAAY,WACV4S,GAAW,GAEPzR,SAASomD,EAAe,IAAM,GAChCF,EACGG,UAAU,CAAElvB,UAAWn3B,SAASomD,EAAe,MAC/C18C,MAAK,SAAA5K,GACJqB,EAAUrB,GAENT,EAAcW,eACXmnD,EACFnI,SAAS,CACRsI,eAAgBt7B,EAAYnxB,OAAOmxB,EAAY/wB,QAAS,wBACxD6F,MAAOhB,EAAOgB,MACd4jB,QAAS5kB,EAAO4kB,QAChB9O,QAAS9V,EAAOY,WAAWkP,WAC3B23C,OAAQlG,aAET32C,MAAK,kBAAMpL,GAAkB,SAAA4B,GAAY,OAAArD,MAAA,GAAUqD,GAAY,IAAElB,eAAe,UAChF4K,MAAM2O,QAAQzf,UAGpB8Q,MAAM8V,GACN5V,SAAQ,kBAAM2H,GAAW,QAE7B,CAAC20C,KAIJnjD,gBAAC2mC,WAAY,CAAChnC,MAAO,CAAEwB,KAAM,GAAIpB,SAAA,CAC/BN,eAACkQ,GAAI,CAACsoC,WAAYA,IAClBx4C,eAAC8jD,GAAU,QCzDJC,GAAkB,SAAH7kD,GAA2D,IAArDs5C,EAAUt5C,EAAVs5C,WAChC,OACEx4C,eAAC6pB,GAAI,CACH2uB,WAAYA,EACZgL,gBAAiB7iB,KACjBrY,YAAa1wB,IACb6rD,aAAc1iB,Q,+NCTb,IAAM5gC,GAASc,WAAWC,OAAO,CACtCO,UAAW,CACTC,KAAM,GAER2d,Q,mWAAOllB,CAAA,GACF0tC,GAAaC,e,qkBCWb,IAAMkc,GAAgC,SAAH9kD,GAA+B,IAAzB+kD,EAAO/kD,EAAP+kD,QAASC,EAAQhlD,EAARglD,SACjDlqD,EAAQ0F,KACRmO,EAASC,KACPlR,EAAcvB,IAAduB,UACA0F,EAAmBC,KAAnBD,eACRhH,EAAoCC,yBAAeswC,IAAgBpwC,EAAAC,IAAAJ,EAAA,GAA5D6wC,EAAU1wC,EAAA,GAAE2xC,EAAa3xC,EAAA,GAChCqJ,EAAgCvJ,yBAAegD,IAAewG,EAAArJ,IAAAoJ,EAAA,GAAvDgK,EAAS/J,EAAA,GAAEgK,EAAUhK,EAAA,GAC5BkB,EAAkC1K,yBAAeqwC,IAAgBzlC,EAAAzK,IAAAuK,EAAA,GAA1DmmC,EAAUjmC,EAAA,GAAEknC,EAAWlnC,EAAA,GACxBg+C,EAA0BvkD,4BAAkButC,IAC5CnwB,EAAc5E,KAEdhc,EAASQ,IACTgG,EAAcN,IAEpBipB,0BACEpvB,uBAAY,WACV4S,GAAW,GACXs+B,GAAY,GAEZ,IAAM+W,EAAqC,CACzCpnD,WAAYZ,EAAOY,YAGrBinD,EACGI,YAAYD,GACZp9C,MAAK,SAACylC,GACDA,GACFW,EAAcX,GACdY,GAAY,IAEZA,GAAY,MAGfnmC,MAAM8V,GACN5V,SAAQ,kBAAM2H,GAAW,QAC3B,KAiFL,OACExO,gBAAC2mC,WAAY,CAAChnC,MAAOC,GAAOsB,UAAUnB,SAAA,CACpCN,eAACiD,cAAU,CAAA3C,SACTC,gBAACyC,OAAG,CAAC9C,MAAOC,GAAOkf,QAAQ/e,SAAA,CACzBN,eAACwoC,GAAU,CACTplC,KAAK,0BACLqlC,KAAMzoC,eAACoM,WAAsB,CAAC5E,KAAM,GAAI3G,MAAO7G,EAAME,OAAOb,KAAMY,KAAK,0BAEzEsG,gBAACkb,UAAM,CAAChV,QAAQ,SAASC,MAAM,SAAQpG,SAAA,CACrCN,eAACksC,GAAgB,CACfC,WAAYA,EACZxyB,SApCS,SAAC1f,EAAchE,GAClCm3C,GAAc,SAAC3hB,GAAS,OAAAtxB,MAAA,GACnBsxB,GAAS,GAAA1oB,gBAAA,GACX9I,EAAOhE,GAAK,OACP+0C,GAAkBvf,EAAUugB,SAAO,OACnC/5C,kBAAew5B,EAAUpU,OAAK,QAC7Bjb,EAAOgB,YA+BNgvC,WAAYA,EACZt9B,UAAWA,IAEb9O,eAACmqB,GAAU,CAACgiB,WAAYA,OAE1B5rC,gBAACC,UAAM,CACLkG,MAAM,SACND,QAAQ,MACRomC,GAAI,GACJ0B,GAAI,GACJ7yB,GAAI4oC,GAA8B,GAClC5jD,QAAS,EAAEJ,SAAA,EAETwO,IAAcs9B,IACdpsC,eAACW,UAAM,CACLC,MAAM,UACNI,QAAQ,OACRH,MAAO7G,EAAME,OAAOf,YACpB4H,QA5GW,SAACwK,GACxBA,EAAMO,iBACNq4C,GAAwB,OA6Gbr1C,GAAas9B,GACdpsC,eAACW,UAAM,CACLC,MAAM,SACNI,QAAQ,OACRH,MAAO7G,EAAME,OAAOf,YACpB4H,QArDU,SAACwK,GACvBA,EAAMO,iBAENshC,GAAc,SAAC3hB,GAAS,OAAAtxB,MAAA,GACnBsxB,GAAS,IACZugB,OAAQ,GACR7uC,KAAM,GACN2uC,IAAK,GACLpc,UAAW,GACXqc,KAAM,sBACN10B,KAAM,UACN40B,WAAY,WA6CNjsC,eAACW,UAAM,CACLC,MAAM,SACNI,QAAQ,WACRH,MAAO+B,EAAYoB,UACnBjD,QAxGiB,SAACwK,GAC5BA,EAAMO,iBAENshC,GAAc,SAAC5vC,GAAY,OAAArD,MAAA,GACtBqD,GACCA,EAAakyB,WAAa,CAAEuc,WAAYf,GAAgB1tC,EAAakyB,gBAG3E,IAAM60B,EAAuC,CAC3CvnD,WAAYZ,EAAOY,WACnBI,MAAOhB,EAAOgB,MACd4jB,QAAS5kB,EAAO4kB,QAChB3J,KAAM2zB,GAAkBmB,EAAWH,QACnCD,KAAM95C,kBAAek6C,EAAW90B,MAChCy0B,IAAKK,EAAWL,IAChBpc,UAAWyc,EAAWzc,UACtBvyB,KAAMgvC,EAAWhvC,KACjB6uC,OAAQG,EAAWH,OACnBC,WAAYE,EAAWF,YA9BtBE,EAAWhvC,MACXgvC,EAAWH,QACXG,EAAWzc,WACXyc,EAAWL,MACZK,EAAWH,OAAO32B,SAAS,MA8B3BtG,GAAW,GAEXm1C,EACGj1C,KAAKs1C,GACLv9C,KAAK6G,EAAOW,MACZtH,MAAM8V,GACN5V,SAAQ,kBAAM2H,GAAW,OAE5BiO,EAAY,IAAIxnB,MAAM,sDA2Ed8R,SAAUwH,IAAcs9B,YAKhCpsC,eAACktC,GAA0B,QCrLpBsX,GAA4B,SAAHtlD,GAA8C,IAAxCs5C,EAAUt5C,EAAVs5C,WAC1C,OACEj4C,gBAAA2C,YAAA,CAAA5C,SAAA,CACEN,eAACgkD,GAAM,CACLC,QAAS5jB,KACT6jB,SAAU3jB,OAEZvgC,eAACy4C,GAAkB,CAACD,WAAYA,QCTzBiM,GAA8BjmD,eAAK,CAC9CxI,IAAK,8BACLyI,SAAS,IAGEimD,GAAqBlmD,eAAK,CACrCxI,IAAK,qBACLyI,QAAS,KAGEkmD,GAA4BnmD,eAAK,CAC5CxI,IAAK,4BACLyI,SAAU,I,SCbC0B,GAASc,WAAWC,OAAO,CACtCO,UAAW,CACTC,KAAM,EACNsa,SAAU,IACV5a,QAAS,GACTqgB,SAAU,IACV/X,SAAU,GACVpI,QAAS,OACT2H,WAAY,UACZgB,SAAU,SACV5I,aAAc,EACd0rC,YAAa,sBACbC,aAAc,CACZ7jC,MAAO,EACPwJ,OAAQ,GAEVs6B,aAAc,GAEhB/D,gBAAiB,CACf5nC,QAAS,OACTC,cAAe,MACfC,eAAgB,gBAChByH,WAAY,SACZgf,YAAa,EACbC,aAAc,GAEhB08B,YAAa,CACX/jD,MAAO,sBACP4I,WAAY,MACZC,SAAU,GACVO,SAAU,SACVC,WAAY,SACZC,aAAc,YAGhBvR,QAAS,CACPkJ,gBAAiB,uBAGnBM,YAAa,CACXb,cAAe,SACf0mB,YAAa,EACbC,aAAc,EACd5mB,QAAS,OACToM,IAAK,GAEPm3C,YAAa,CACXvjD,QAAS,OACTC,cAAe,MACf+N,SAAU,SACVrF,SAAU,SACVE,aAAc,YAEhB26C,oBAAqB,CACnBxjD,QAAS,OACTC,cAAe,MACfC,eAAgB,gBAChByI,SAAU,SACVC,WAAY,SACZC,aAAc,WACduD,IAAK,GAEPq3C,aAAc,CACZlkD,MAAO,sBACP4I,WAAY,OAEdu7C,aAAc,CACZxjD,eAAgB,mB,qkBCjDb,IAAMyjD,GAAsD,SAAH/lD,GAKzD,IAJLgmD,EAAMhmD,EAANgmD,OACA58B,EAAWppB,EAAXopB,YACA68B,EAAgBjmD,EAAhBimD,iBACAC,EAAkBlmD,EAAlBkmD,mBAEMv3C,EAASC,KACTkP,EAAc5E,KACpB9c,EAAwDC,yBAAeopD,IAA0BlpD,EAAAC,IAAAJ,EAAA,GAA1F+pD,EAAoB5pD,EAAA,GAAE6pD,EAAuB7pD,EAAA,GAE9C8pD,EAAuC,eAAxBL,EAAOjtB,aAEtButB,EAAwB,SAACj6C,GAC7BA,EAAMO,iBAEN,IAAM25C,EAAa,CACjBxtB,aAAcitB,EAAOjtB,aACrBC,UAAWgtB,EAAOhtB,WAGpBitB,EACGO,KAAKD,GACLz+C,MAAK,kBAAM6G,EAAOW,KAAK,kDACvBtH,MAAM8V,GACN5V,QAAQu+C,IA2BPA,EAAkBxpD,uBAAY,WAClCmpD,GAAyB,KACxB,IAEGM,EAAY,CAChBC,eAAW7rD,EAAME,OAAO/B,QACxB2tD,SAAU9rD,EAAME,OAAOL,KACvBksD,QAAS/rD,EAAME,OAAOH,KACtB0E,QAASzE,EAAME,OAAO/B,SACtB+sD,EAAOc,YAEH5/B,EAAejsB,MAAA,GAChBgG,GAAOsB,WAAS,IACnBK,gBAAiB9H,EAAME,OAAOnC,MAC9B8I,MAAO7G,EAAME,OAAOf,cAGhB8sD,EAAiB9rD,MAAA,GAClBgG,IAAM,IACT2B,gBAAiB8jD,IAGbM,EAAmB/rD,MAAA,GACpBgG,IAAM,IACT2B,gBAAkByjD,EAAwCvrD,EAAME,OAAOxB,QAAtCsB,EAAME,OAAO3B,YAGhD,OACEgI,gBAACyC,OAAG,CAAC9C,MAAOkmB,EAAgB9lB,SAAA,CAC1BC,gBAACC,UAAM,CAACkG,MAAM,SAASD,QAAQ,UAAU/F,QAAS,EAAGgb,GAAI,EAAEpb,SAAA,CACzDN,eAACyH,QAAI,CAACzG,QAAQ,YAAYd,MAAOC,GAAOykD,YAAYtkD,SACjD4kD,EAAOiB,aAEVnmD,eAAComD,GAAW,CAEV/3C,QAASg3C,GAAwB,GAAKA,IAAyBH,EAAOmB,SACtEl2C,UAAWw1C,EACXt1C,OACErQ,eAAC4wC,cAAU,CACT7vC,QAAS,kBA3CGslD,EA2CkBnB,EAAOmB,cA1C/Cf,EAAwBe,GADH,IAACA,GA4CZnmD,MAAO,CAAEiJ,MAAO,GAAIwJ,OAAQ,IAC5B81B,KAAM,SAAC7hC,GAAU,OAAK5G,eAACoM,WAAsBjS,GAAA,CAACF,KAAK,iBAAoB2M,OAE1EtG,SACEilD,EACGhlD,gBAAA2C,YAAA,CAAA5C,SAAA,CACEN,eAACkQ,WAAKS,KAAI,CACR5P,QAvEe,SAACwK,GAChCA,EAAMO,iBAEN,IAAMw6C,EAAuC,CAC3CruB,aAAcitB,EAAOjtB,aACrBU,aAAcusB,EAAOmB,UAGvBjB,EACGjzB,KAAKm0B,GACLt/C,MAAK,kBAAM6G,EAAOW,KAAK,6CACvBtH,MAAM8V,GACN5V,QAAQu+C,IA4DK/kD,MAAO2kD,EAAe,uBAAyB,kBAC/CgB,YAAa,SAAA3/C,GAAK,OAAI5G,eAACoM,WAAsBjS,GAAA,CAACF,KAAK,QAAW2M,OAEhE5G,eAACkQ,WAAKS,KAAI,CACR5P,QAASykD,EACT5kD,MAAO2kD,EAAe,yBAA2B,kBACjDgB,YAAa,SAAA3/C,GAAK,OAAI5G,eAACoM,WAAsBjS,GAAA,CAACF,KAAK,QAAW2M,UAGlE5G,eAACkQ,WAAKS,KAAI,CACR5P,QAASykD,EACT5kD,MAAsB,kBACtB2lD,YAAa,SAAA3/C,GAAK,OAAI5G,eAACoM,WAAsBjS,GAAA,CAACF,KAAK,QAAW2M,QAC9D,QA3BKs+C,EAAOmB,aAgCxB9lD,gBAACkb,UAAM,CAAC/a,QAAS,EAAGR,MAAO,CAAEwB,KAAM,GAAIpB,SAAA,CACrCN,eAACwqC,WAAO,CAACtqC,MAAOC,GAAOvH,UACvB2H,gBAACC,UAAM,CAACiG,QAAQ,UAASnG,SAAA,CACvBC,gBAACkH,QAAI,CAACzG,QAAQ,YAAYd,MAAOC,GAAO2kD,oBAAoBxkD,SAAA,CAC1DN,eAAA,QAAME,MAAOC,GAAO4kD,aAAazkD,SAC/B,UAEFN,eAACsQ,GAAI,CACHlN,KAAM8hD,EAAOc,WACb//B,eAAgBggC,OAGpB1lD,gBAACkH,QAAI,CAACzG,QAAQ,YAAYd,MAAOC,GAAO2kD,oBAAoBxkD,SAAA,CAC1DN,eAAA,QAAME,MAAOC,GAAO4kD,aAAazkD,SAC9B,YAEHN,eAACsQ,GAAI,CACHlN,KAAM8hD,EAAOjtB,aACbhS,eAAgBigC,UAItB3lD,gBAACkH,QAAI,CAACzG,QAAQ,YAAYd,MAAOC,GAAO0kD,YAAYvkD,SAAA,CAClDN,eAAA,QAAME,MAAOC,GAAO4kD,aAAazkD,SAC9B,YAEFgoB,EAAYnxB,OAAO+tD,EAAOsB,UAAW,0BAGR,KAA9BtB,EAAOuB,oBACPlmD,gBAACC,UAAM,CAACkG,MAAM,SAAShG,QAAS,EAAEJ,SAAA,CAChCN,eAACoM,WAAsB,CAAC5E,KAAM,GAAI3G,MAAO7G,EAAME,OAAOb,KAAMY,KAAK,gBACjEsG,gBAACkH,QAAI,CAACzG,QAAQ,YAAYd,MAAOC,GAAO0kD,YAAYvkD,SAAA,CAClDN,eAAA,QAAME,MAAOC,GAAO4kD,aAAazkD,SAC9B,WAEF4kD,EAAOuB,sBAEVzmD,eAAC0mD,WAAS,CAAC3lD,QAAS,kBAjHNo3B,EAiH2B+sB,EAAOuB,mBAhHxDhX,KAAUC,UAAUvX,QACpBtqB,EAAOW,KAAK,8CAFS,IAAC2pB,GAiHsD73B,SAClEN,eAACoM,WAAsB,CACrBnS,KAAK,eACLuN,KAAM,GACN3G,MAAO7G,EAAME,OAAOd,wBCzKvBg5C,GAAoD,SAAHlzC,GAAyB,IAAnBopB,EAAWppB,EAAXopB,YAC5Dta,EAAUpO,4BAAkB+mD,IAC5BrU,EAAUx2C,yBAAe8qD,IAEzBpU,EAASlqB,EAAYnxB,OAAOm7C,EAAQuU,UAAW,cACnD,WACAv+B,EAAYnxB,OAAOm7C,EAAQwU,QAAS,cAEhCnU,EAAY,CAChBoU,UAAW,oBACXC,YAAa,sBACbC,MAAO,SACP3U,EAAQ18B,QAEV,OACErV,gBAACC,UAAM,CAACE,QAAS,EAAGgb,GAAI,GAAIgtB,MAAI,EAAApoC,SAAA,CAC9BN,eAACgD,OAAG,CAAA1C,SACFN,eAACymB,GAAU,CACT7lB,MAAM,aACN8lB,SAAU8rB,EACVzxC,QAAS,kBAAMiN,GAAQ,QAG3BhO,eAACgD,OAAG,CAAA1C,SACFN,eAACymB,GAAU,CACT7lB,MAAM,SACN8lB,SAAUisB,EACV5xC,QAAS,kBAAMiN,GAAQ,Y,qkBCZ1B,IAEM8lC,GAA0C,SAAH50C,GAA6D,IAAvDgoD,EAAgBhoD,EAAhBgoD,iBAAkB5+B,EAAWppB,EAAXopB,YAClE1rB,EAAcvB,IAAduB,UACRtB,EAA0BC,yBAAeorD,IAAgClrD,EAAAC,IAAAJ,EAAA,GAAlEyS,EAAMtS,EAAA,GAAEuS,EAAOvS,EAAA,GACtBqJ,EAAgCvJ,yBAAekpD,IAA4B1/C,EAAArJ,IAAAoJ,EAAA,GAApEgK,EAAS/J,EAAA,GAAEgK,EAAUhK,EAAA,GAC5BkB,EAA8B1K,yBAAeqrD,IAA0BzgD,EAAAzK,IAAAuK,EAAA,GAAhEqsC,EAAOnsC,EAAA,GAAE6tC,EAAU7tC,EAAA,GACpBghD,EAAavnD,4BAAkB8kD,IAC/BxlC,EAAe9G,KAEfhc,EAASQ,IAEfsI,qBAAU,WACR8uC,EAAW,CACTp+B,OAAQ/hB,qBAAkBX,GAAGM,eAC7BqzD,UAAWv+B,EAAY6rB,QAAQtgD,qBAAkBX,GAAGI,kBAAkB4Y,WACtE46C,QAASx+B,EAAY8rB,UAAUvgD,qBAAkBX,GAAGG,oBAAoB6Y,eAEzE,IAEH,IA6BMmoC,EAAmBl4C,uBAAY,SAACm4C,EAAyBz9C,GAC7Dm9C,GAAW,SAAAO,GAAc,OAAAp6C,MAAA,GACpBo6C,GAAc,GAAAxxC,IAAA,GAChBuxC,EAAQz9C,EAAKqV,kBAEf,IAIH,OACE3L,gBAACi0C,EAAWC,OAAM,CAChBtiB,KAAMpkB,EACNO,QALgB,WAAH,OAAeN,GAAQ,IAMpC3G,QAASyH,EACT4lC,SAnCa,SAACnpC,GAChBA,EAAMO,iBAEN,IAAMs7C,EAAyB,CAC7BpqD,WAAYZ,EAAOY,WACnB6pD,UAAWv+B,EAAYnxB,OAAOm7C,EAAQuU,UAAW,cACjDC,QAASx+B,EAAYnxB,OAAOm7C,EAAQwU,QAAS,cAC7ClxC,OAAQ08B,EAAQ18B,QAGlB7G,GAAW,GAEXm4C,EACGvsD,IAAIysD,GACJpgD,KAAKmgD,GACLjgD,MAAMgY,GACN9X,SAAQ,kBAAM2H,GAAW,MAE5Bf,GAAQ,IAkBN+mC,WA5CqB,WACvBf,EAAW,CACTp+B,OAAQ/hB,qBAAkBX,GAAGM,eAC7BqzD,UAAWv+B,EAAY6rB,QAAQtgD,qBAAkBX,GAAGI,kBAAkB4Y,WACtE46C,QAASx+B,EAAY8rB,UAAUvgD,qBAAkBX,GAAGG,oBAAoB6Y,cAwC3C5L,SAAA,CAE7BC,gBAACyC,OAAG,CAAA1C,SAAA,CACFN,eAACw0C,EAAWpxB,MAAK,CAACxiB,MAAM,qBACxBL,gBAAC6pC,GAAU,CAAA9pC,SAAA,CACTN,eAACmoB,GAAU,CACTlkB,MAAM,KACNqD,SAAUwH,EACV7Y,MAAOq8C,EAAQuU,UAAYv+B,EAAYntB,MAAMm3C,EAAQuU,gBAAa3vD,EAClEyiB,SAAU,SAAC9iB,GAAI,OAAKw9C,EAAiB,YAAiB,MAAJx9C,IAAQyxB,EAAY6rB,QAAQtgD,qBAAkBX,GAAGI,oBACnGg1B,YAAaA,IAEftoB,eAACwqC,WAAO,IACRxqC,eAACmoB,GAAU,CACTlkB,MAAM,SACNqD,SAAUwH,EACV7Y,MAAOq8C,EAAQwU,QAAUx+B,EAAYntB,MAAMm3C,EAAQwU,cAAW5vD,EAC9DyiB,SAAU,SAAC9iB,GAAI,OAAKw9C,EAAiB,UAAe,MAAJx9C,IAAQyxB,EAAY8rB,UAAUvgD,qBAAkBX,GAAGG,sBACnGi1B,YAAaA,UAInB/nB,gBAACyC,OAAG,CAAA1C,SAAA,CACFN,eAACw0C,EAAWpxB,MAAK,CAACxiB,MAAM,WACxBZ,eAACqnD,GAAwB,WC9GpBV,GAAkCnoD,eAAK,CAClDxI,IAAK,kCACLyI,SAAS,IAGEmoD,GAA4BpoD,eAAK,CAC5CxI,IAAK,uBACLyI,QAAS,CACPmX,OAAQ/hB,qBAAkBX,GAAGM,eAC7BqzD,UAAW,GACXC,QAAS,M,qkBCPN,IAAMO,GAA2B,WACtC,IAAQ/kD,EAAmBC,KAAnBD,eACA+H,EAAaC,KAAbD,SACR/O,EAA8BC,yBAAeqrD,IAA0BnrD,EAAAC,IAAAJ,EAAA,GAAhEg3C,EAAO72C,EAAA,GAAEu4C,EAAUv4C,EAAA,GACpB6rD,EAAexrD,yBAAeyrD,IAE9B3kD,EAAcN,IAMpB,OACEtC,eAAAkD,YAAA,CAAA5C,SAEIgnD,EAAatyD,KAAI,SAACmgD,GAAY,OAC5Bn1C,eAACo1C,WAAYzkC,KAAI,CAEf1M,MAAOkxC,EAAal/C,MACpBA,MAAOk/C,EAAal/C,MACpB2f,OAAQ08B,EAAQ18B,SAAWu/B,EAAal/C,MAAQ,UAAY,YAC5D8K,QAAS,kBAbKs0C,EAagBF,EAAal/C,WAZnD+9C,GAAW,SAACO,GAAc,OAAAp6C,MAAA,GAAWo6C,GAAc,IAAE3+B,OAAQy/B,OADxC,IAACA,GAcdC,WAAY,CAAE5rC,SAAUW,EAAW,GAAK,IACxCnK,MAAO,CACLmB,aAAc,EACdmb,YAAa,EACbD,YAAgB3Z,EAAYoB,UAAS,KACrCjC,aAAc,EACd6kB,gBAAiBvc,EAAW,EAAI,IAElCxJ,MAAO+B,EAAYoB,WAbdmxC,EAAaI,WCrBjBgS,GAAoB/oD,eAAK,CACpCxI,IAAK,0BACLyI,QAAS,CACP,CAAE82C,IAAK,QAASt/C,MAAO,SACvB,CAAEs/C,IAAK,cAAet/C,MAAO,eAC7B,CAAEs/C,IAAK,YAAat/C,MAAO,gB,+NCJxB,IAAMkK,GAASc,WAAWC,OAAO,CACtCO,UAAW,CACTC,KAAM,EACNuH,WAAY,WAEdoW,Q,mWAAOllB,CAAA,GACF0tC,GAAaC,aAElBC,OAAQ,CACNC,cAAe,MCQNwf,GAA8C,SAAHtoD,GAK7B,IAJzBopB,EAAWppB,EAAXopB,YACA4+B,EAAgBhoD,EAAhBgoD,iBACA9B,EAAkBlmD,EAAlBkmD,mBACAqC,EAAmBvoD,EAAnBuoD,oBAEMztD,EAAQ0F,KACN9C,EAAcvB,IAAduB,UACFogB,EAAc5E,KACpB9c,EAA8BC,yBAAempD,IAAmBjpD,EAAAC,IAAAJ,EAAA,GAAzDosD,EAAOjsD,EAAA,GAAE0rD,EAAU1rD,EAAA,GAC1BqJ,EAAgCvJ,yBAAekpD,IAA4B1/C,EAAArJ,IAAAoJ,EAAA,GAApEgK,EAAS/J,EAAA,GAAEgK,EAAUhK,EAAA,GACtBiJ,EAAUpO,4BAAkB+mD,IAE5BvqD,EAASQ,IAEf2uB,0BACEpvB,uBAAY,WACV4S,GAAW,GAEX,IAAMq4C,EAAyB,CAC7BpqD,WAAYZ,EAAOY,WACnB6pD,UAAWv+B,EAAYnxB,OAAOmxB,EAAY6rB,QAAQtgD,qBAAkBX,GAAGI,kBAAmB,cAC1FwzD,QAASx+B,EAAYnxB,OAAOmxB,EAAY8rB,UAAUvgD,qBAAkBX,GAAGG,oBAAqB,cAC5FuiB,OAAQ/hB,qBAAkBX,GAAGM,gBAG/B0zD,EACGvsD,IAAIysD,GACJpgD,KAAKmgD,GACLjgD,MAAM8V,GACN5V,SAAQ,kBAAM2H,GAAW,QAC3B,KAEL,IAAMgpC,EAAiB57C,uBAAY,WACjC6R,GAAQ,KACP,IAEH,OACEzN,gBAAC2mC,WAAY,CAAChnC,MAAOC,GAAOsB,UAAUnB,SAAA,CACpCN,eAAC8zC,GAAW,CAACxrB,YAAaA,EAAa4+B,iBAAkBA,IACzDlnD,eAACiD,cAAU,CAAC/C,MAAOC,GAAO4nC,OAAOznC,SAC/BC,gBAACyC,OAAG,CAAC9C,MAAOC,GAAOkf,QAAQ/e,SAAA,CACzBN,eAACwoC,GAAU,CACTC,KAAMzoC,eAACoM,WAAsB,CAAC5E,KAAM,GAAI3G,MAAO7G,EAAME,OAAOb,KAAMY,KAAK,+BACvEmJ,KAAK,iBACLg1C,YAAaL,IAEf/3C,eAACoyC,GAAgB,CAAC9pB,YAAaA,IAC/BtoB,eAACgnB,GAAQ,CACPlY,UAAWA,EACXmY,SAAUygC,EAAQzwD,OAClBkwB,YAAY,0BAAyB7mB,SAE7B,MAAPonD,OAAO,EAAPA,EAAS1yD,KAAI,SAAAkwD,GAAM,OAClBllD,eAACilD,GAAiB,CAEhBC,OAAQA,EACR58B,YAAaA,EACb68B,iBAAkBsC,EAClBrC,mBAAoBA,GAJfF,EAAOmB,wBCrEfsB,GAA2B,SAAHzoD,GAA2D,IAArDs5C,EAAUt5C,EAAVs5C,WACzC,OACEj4C,gBAAA2C,YAAA,CAAA5C,SAAA,CACEN,eAACwnD,GAAa,CACZl/B,YAAa1wB,IACbsvD,iBAAkBjnB,KAClBwnB,oBAAqBtnB,KACrBilB,mBAAoBhlB,OAEtBpgC,eAACy4C,GAAkB,CAACD,WAAYA,QCZzBoP,GAAmBppD,eAAK,CACnCxI,IAAK,mBACLyI,SAAS,IAGEopD,GAAiBrpD,eAAK,CACjCxI,IAAK,iBACLyI,QAAS,CACPqpD,aAAa,EACbC,YAAY,KAIHC,GAAWxpD,eAAK,CAC3BxI,IAAK,WACLyI,QAAS,KAGEwpD,GAAUzpD,eAAK,CAC1BxI,IAAK,UACLyI,QAAS,KAGEypD,GAAoB1pD,eAAK,CACpCxI,IAAK,oBACLyI,QAAS,KCrBE0pD,GAAgC,SAAHjpD,GAAmC,IAA7BoB,EAAQpB,EAARoB,SAC9C,OACEN,eAAC8mB,GAAQ,CAAAxmB,SACNA,KCAM8xC,GAAoD,SAAHlzC,GAAyB,IAAnBopB,EAAWppB,EAAXopB,YAC5Dta,EAAUpO,4BAAkBwoD,IAC5B9V,EAAUx2C,yBAAeusD,IAEzB7V,EAASlqB,EAAYnxB,OAAOm7C,EAAQG,WAAY,cACpD,WACAnqB,EAAYnxB,OAAOm7C,EAAQI,QAAS,cAEtC,OACE1yC,eAACQ,UAAM,CAACE,QAAS,EAAGgb,GAAI,GAAIgtB,MAAI,EAAApoC,SAC9BN,eAACymB,GAAU,CACT7lB,MAAM,qBACN8lB,SAAU8rB,EACVzxC,QAAS,kBAAMiN,GAAQ,S,qkBCpBxB,IAAM7N,GAASc,WAAWC,OAAO,CACtCO,UAAW,CACTC,KAAM,EACNsmC,cAAe,IAEjB3oB,QAAOllB,MAAA,GACF0tC,GAAaC,aAAW,IAC3B/f,eAAgB,EAChBC,iBAAkB,SAEpBsgC,SAAU,CACRhnD,QAAS,OACTC,cAAe,MACfC,eAAgB,gBAChB8N,SAAU,OACVnG,MAAO,OACPuE,IAAK,IAEP66C,KAAM,CACJ9+C,WAAY,OAEd7I,MAAO,CACL4nD,kBAAmB,EACnBC,kBAAmB,sBACnBzgB,cAAe,EACf1mC,QAAS,OACTC,cAAe,MACfC,eAAgB,gBAChByH,WAAY,UAEdy/C,QAAS,CACPpnD,QAAS,OACT2H,WAAY,SACZzH,eAAgB,SAChBE,KAAM,EACNgM,IAAK,IAEPq6B,OAAQ,CACNC,cAAe,M,qkBCvBZ,IAAM2gB,GAA4C,SAAHzpD,GAA2C,IAArC0pD,EAAgB1pD,EAAhB0pD,iBAAkBtgC,EAAWppB,EAAXopB,YACtEtuB,EAAQ0F,KACRmO,EAASC,KACP0F,EAAmBD,KAAnBC,eACFwJ,EAAc5E,KACdywC,EAAgB/sD,yBAAeosD,IACrC5sD,EAAgCC,yBAAeqsD,IAAiBnsD,EAAAC,IAAAJ,EAAA,GAAzDwT,EAASrT,EAAA,GAAEsT,EAAUtT,EAAA,GAC5BqtD,EAAwCC,IAAMrmD,UAAU,GAAEsmD,EAAAttD,IAAAotD,EAAA,GAAnDG,EAAYD,EAAA,GAAEE,EAAeF,EAAA,GAC9BG,EAAiBvpD,4BAAkBwoD,IAGnCgB,EAAY,WAAH,OAAeF,GAAiB,IAEzCG,EAAyBltD,uBAAY,SAACoP,EAA8B+9C,GACxE/9C,EAAMO,iBACNiD,GAAW,GAEX,IAAMw6C,EAAiD,CACrDC,aAAcF,EAAOG,cAGvBb,EACGz2B,KAAKo3B,GACLviD,MAAK,kBAAM6G,EAAOW,KAAK,mCAA0B86C,EAAOI,WAAU,kCAClExiD,MAAM8V,GACN5V,SAAQ,kBAAM2H,GAAW,QAC3B,IAEGgpC,EAAiB57C,uBAAY,WACjCgtD,GAAe,KACd,IAEH,OACEnpD,eAACiD,cAAU,CAAC/C,MAAOC,GAAO4nC,OAAOznC,SAC/BC,gBAACyC,OAAG,CAAC9C,MAAOC,GAAOkf,QAAQ/e,SAAA,CACzBN,eAACwoC,GAAU,CACTC,KAAMzoC,eAACoM,WAAsB,CAAC5E,KAAM,GAAI3G,MAAO7G,EAAME,OAAOb,KAAMY,KAAK,0BACvEmJ,KAAK,2BACLg1C,YAAaL,IAEf/3C,eAACoyC,GAAgB,CAAC9pB,YAAaA,IAC/BtoB,eAACgnB,GAAQ,CACPC,UAAuB,MAAb4hC,KAAe5xD,QACzB6X,UAAWA,EACXqY,YAAY,oCAA6B7mB,SAE3B,MAAbuoD,OAAa,EAAbA,EAAe7zD,KAAI,SAACs0D,EAAQhmC,GAAK,OAChC/iB,gBAAC4nD,GAAM,CAAA7nD,SAAA,CACLC,gBAACyC,OAAG,CAAC9C,MAAOC,GAAOS,MAAMN,SAAA,CACvBC,gBAACkH,QAAI,CAACvH,MAAOC,GAAOooD,KAAKjoD,SAAA,CAAEgpD,EAAOI,WAAWx9C,WAAWkD,SAAS,EAAG,IAAI,IAAEk6C,EAAOK,aACjF3pD,eAAComD,GAAW,CAEV/3C,QAAS46C,GAAgB,GAAKA,IAAiB3lC,EAC/CnT,UAAWi5C,EACX/4C,OAAQrQ,eAAC4wC,cAAU,CACjB7vC,QAAS,kBA7CV,SAACuiB,GAAa,OAAW4lC,EAAgB5lC,GA6CzBsmC,CAAStmC,IACxBpjB,MAAO,CAAEiJ,MAAO,GAAIwJ,OAAQ,IAC5B81B,KAAM,SAAC7hC,GAAU,OAAK5G,eAACoM,WAAsBjS,GAAA,CAACF,KAAK,iBAAoB2M,OACxEtG,SAEDN,eAACkQ,WAAKS,KAAI,CACR5P,QAAS,SAACwK,GAAK,OAAK89C,EAAuB99C,EAAO+9C,IAClD1oD,MAAM,qCACN2lD,YAAa,SAAA3/C,GAAK,OAAI5G,eAACoM,WAAsBjS,GAAA,CAACF,KAAK,QAAW2M,QAC9D,QAbW0iD,EAAOI,eAgBxBnpD,gBAACkH,QAAI,CAAAnH,SAAA,CAACN,eAAA,QAAME,MAAOC,GAAOooD,KAAKjoD,SAAC,YAAekT,EAAe81C,EAAOO,cACrEtpD,gBAACkH,QAAI,CAAAnH,SAAA,CAACN,eAAA,QAAME,MAAOC,GAAOooD,KAAKjoD,SAAC,iBAAiB,IAAI6a,KAAKmuC,EAAOQ,UAAUC,mBAAmB,cArBnFT,EAAOI,uB,qkBC9CzB,IAAMM,GAAsC,SAAH9qD,GAAoC,IAA9B+qD,EAAS/qD,EAAT+qD,UAAW3hC,EAAWppB,EAAXopB,YACzDza,EAASC,KACP0F,EAAmBD,KAAnBC,eACA5W,EAAcvB,IAAduB,UACFogB,EAAc5E,KACpB3V,EAAwCC,oBAAU,GAAEgD,EAAAhK,IAAA+G,EAAA,GAA7CwmD,EAAYvjD,EAAA,GAAEwjD,EAAexjD,EAAA,GACpCpK,EAAcC,yBAAe0sD,IAAtBiC,EAA8BxuD,IAAAJ,EAAA,GAA3B,GACVwJ,EAAgCvJ,yBAAeqsD,IAAiB7iD,EAAArJ,IAAAoJ,EAAA,GAAzDgK,EAAS/J,EAAA,GAAEgK,EAAUhK,EAAA,GACtBokD,EAAiBvpD,4BAAkBwoD,IAEnChsD,EAASQ,IAGTwsD,EAAY,WAAH,OAAeF,GAAiB,IAEzCiB,EAAkBhuD,uBAAY,SAACoP,EAA8B6+C,GACjE7+C,EAAMO,iBACNiD,GAAW,GAEX,IAAMs7C,EAAmC,CACvC51B,UAAWr4B,EAAOY,WAClBgQ,WAAYo9C,GAGdH,EACG93B,KAAKk4B,GACLrjD,MAAK,kBAAM6G,EAAOW,KAAK,qBAAkB47C,EAAGV,WAAU,IAAIU,EAAGT,UAAS,kCACtEziD,MAAM8V,GACN5V,SAAQ,kBAAM2H,GAAW,QAC3B,IAEGgpC,EAAiB57C,uBAAY,WACjCgtD,GAAe,KACd,IAEH,OACEnpD,eAACiD,cAAU,CAAC/C,MAAOC,GAAO4nC,OAAOznC,SAC/BC,gBAACyC,OAAG,CAAC9C,MAAOC,GAAOkf,QAAQ/e,SAAA,CACzBN,eAACwoC,GAAU,CACTC,KAAMzoC,eAACoM,WAAsB,CAAC5E,KAAM,GAAI3G,MAAO7G,EAAME,OAAOb,KAAMY,KAAK,0BACvEmJ,KAAK,2BACLg1C,YAAaL,IAEf/3C,eAACoyC,GAAgB,CAAC9pB,YAAaA,IAC/BtoB,eAACgnB,GAAQ,CACPC,UAAa,MAAHijC,KAAKjzD,QACf6X,UAAWA,EACXqY,YAAY,kCAAiC7mB,SAEzC,MAAH4pD,OAAG,EAAHA,EAAKl1D,KAAI,SAACo1D,EAAI9mC,GAAK,OAClB/iB,gBAAC4nD,GAAM,CAAA7nD,SAAA,CACLC,gBAACyC,OAAG,CAAC9C,MAAOC,GAAOS,MAAMN,SAAA,CACvBC,gBAACkH,QAAI,CAACvH,MAAOC,GAAOooD,KAAKjoD,SAAA,CAAE8pD,EAAGV,WAAWx9C,WAAWkD,SAAS,EAAG,KAAK,IAAEg7C,EAAGT,eACvES,EAAGE,aACJtqD,eAAComD,GAAW,CAEV/3C,QAAS46C,GAAgB,GAAKA,IAAiB3lC,EAC/CnT,UAAWi5C,EACX/4C,OAAQrQ,eAAC4wC,cAAU,CACjB7vC,QAAS,kBA/CZ,SAACuiB,GAAa,OAAW4lC,EAAgB5lC,GA+CvBsmC,CAAStmC,IACxBpjB,MAAO,CAAEiJ,MAAO,GAAIwJ,OAAQ,IAC5B81B,KAAM,SAAC7hC,GAAU,OAAK5G,eAACoM,WAAsBjS,GAAA,CAACF,KAAK,iBAAoB2M,OACxEtG,SACCN,eAACkQ,WAAKS,KAAI,CACR5P,QAAS,SAACwK,GAAK,OAAK4+C,EAAgB5+C,EAAO6+C,IAC3CxpD,MAAM,mBACN2lD,YAAa,SAAA3/C,GAAK,OAAI5G,eAACoM,WAAsBjS,GAAA,CAACF,KAAK,QAAW2M,QAC9D,QAZSwjD,EAAGV,eAgBtBnpD,gBAACkH,QAAI,CAAAnH,SAAA,CAACN,eAAA,QAAME,MAAOC,GAAOooD,KAAKjoD,SAAC,YAAekT,EAAe42C,EAAGP,cACjEtpD,gBAACkH,QAAI,CAAAnH,SAAA,CAACN,eAAA,QAAME,MAAOC,GAAOooD,KAAKjoD,SAAC,iBAAiB,IAAI6a,KAAKivC,EAAGN,UAAUC,mBAAmB,aACtFK,EAAGE,aACH/pD,gBAACC,UAAM,CAACkG,MAAM,SAAShG,QAAS,EAAEJ,SAAA,CAChCN,eAAC6G,WAAa,CAAChG,MAAO7G,EAAME,OAAOd,UAAW8G,MAAO,CAAEwJ,SAAU,IAAMzP,KAAK,iBAC5E+F,eAACyH,QAAI,CAACvH,MAAO,CAAEW,MAAO7G,EAAME,OAAOd,UAAWsQ,SAAU,IAAKpJ,SAAC,qCA1BzD8pD,EAAGV,uB,qkBCnDrB,IAAMa,GAAsC,SAAHrrD,GAAmC,IAA7BsrD,EAAQtrD,EAARsrD,SAAUliC,EAAWppB,EAAXopB,YACxDtuB,EAAQ0F,KACRmO,EAASC,KACP0F,EAAmBD,KAAnBC,eACRs1C,EAAwCC,IAAMrmD,UAAU,GAAEsmD,EAAAttD,IAAAotD,EAAA,GAAnDG,EAAYD,EAAA,GAAEE,EAAeF,EAAA,GACpC1tD,EAAgCC,yBAAeqsD,IAAiBnsD,EAAAC,IAAAJ,EAAA,GAAzDwT,EAASrT,EAAA,GAAEsT,EAAUtT,EAAA,GACtBgvD,EAAa3uD,yBAAe+rD,IAC5BqC,EAAMpuD,yBAAeksD,IACrBmB,EAAiBvpD,4BAAkBwoD,IACnCprC,EAAc5E,KAGdgxC,EAAY,WAAH,OAAeF,GAAiB,IAEzCwB,EAAiBvuD,uBAAY,SAACoP,EAA8B6+C,GAChE7+C,EAAMO,iBACN,IAAM6+C,EAAiC,CACrCC,WAAYR,EAAGhzB,QACf4P,WAAYojB,EAAGppC,QACf6pC,UAAWT,EAAGV,WACdoB,SAAUV,EAAGT,UACbh1B,kBAAmBy1B,EAAGz1B,kBACtBC,mBAAoBw1B,EAAGx1B,oBAGzB41B,EACGr4B,KAAKw4B,GACL3jD,MAAK,kBAAM6G,EAAOW,KAAK,UAAU47C,EAAGV,WAAU,IAAIU,EAAGT,UAAS,kCAC9DziD,MAAM8V,GACN5V,SAAQ,kBAAM2H,GAAW,QAC3B,IAEGgpC,EAAiB57C,uBAAY,WACjCgtD,GAAe,KACd,IAEH,OACEnpD,eAACiD,cAAU,CAAC/C,MAAOC,GAAO4nC,OAAOznC,SAC/BC,gBAACyC,OAAG,CAAC9C,MAAOC,GAAOkf,QAAQ/e,SAAA,CACzBN,eAACwoC,GAAU,CACTC,KAAMzoC,eAACoM,WAAsB,CAAC5E,KAAM,GAAI3G,MAAO7G,EAAME,OAAOb,KAAMY,KAAK,0BACvEmJ,KAAK,8BACLg1C,YAAaL,IAEf/3C,eAACoyC,GAAgB,CAAC9pB,YAAaA,IAC/BtoB,eAACgnB,GAAQ,CACPC,UAAa,MAAHijC,KAAKjzD,QACf6X,UAAWA,EACXqY,YAAY,oCAAgC7mB,SAExC,MAAH4pD,OAAG,EAAHA,EAAKl1D,KAAI,SAAC+1D,EAAMznC,GAAK,OACpB/iB,gBAAC4nD,GAAM,CAAA7nD,SAAA,CACLC,gBAACyC,OAAG,CAAC9C,MAAOC,GAAOS,MAAMN,SAAA,CACvBC,gBAACkH,QAAI,CAACvH,MAAOC,GAAOooD,KAAKjoD,SAAA,CAAEyqD,EAAKC,eAAe,IAAED,EAAKpB,aACtDppD,gBAAC6lD,GAAW,CAEV/3C,QAAS46C,GAAgB,GAAKA,IAAiB3lC,EAC/CnT,UAAWi5C,EACX/4C,OAAQrQ,eAAC4wC,cAAU,CACjB7vC,QAAS,kBAhDV,SAACuiB,GAAa,OAAW4lC,EAAgB5lC,GAgDzBsmC,CAAStmC,IACxBpjB,MAAO,CAAEiJ,MAAO,GAAIwJ,OAAQ,IAC5B81B,KAAM,SAAC7hC,GAAU,OAAK5G,eAACoM,WAAsBjS,GAAA,CAACF,KAAK,iBAAoB2M,OACxEtG,SAAA,EACIyqD,EAAKp2B,oBAAqBo2B,EAAKn2B,oBAAwB61B,EAAW1C,WAMjE/nD,eAAAkD,YAAA,IALAlD,eAACkQ,WAAKS,KAAI,CACV5P,QAAS,SAACwK,GAAK,OAAKm/C,EAAen/C,EAAOw/C,IAC1CnqD,MAAM,kBACN2lD,YAAa,SAAA3/C,GAAK,OAAI5G,eAACoM,WAAsBjS,GAAA,CAACF,KAAK,QAAW2M,OAIjEmkD,EAAKE,uBACFjrD,eAACkQ,WAAKS,KAAI,CACV5P,QAAS,kBAAM8R,OAAOsf,KAAK44B,EAAKE,uBAAwB,WACxDrqD,MAAM,6BACN2lD,YAAa,SAAA3/C,GAAK,OAAI5G,eAACoM,WAAsBjS,GAAA,CAACF,KAAK,QAAW2M,OAE9D5G,eAAAkD,YAAA,MAAK,QAtBE6nD,EAAKC,mBA0BtBzqD,gBAACkH,QAAI,CAAAnH,SAAA,CAACN,eAAA,QAAME,MAAOC,GAAOooD,KAAKjoD,SAAC,YAAekT,EAAeu3C,EAAKlB,cACnEtpD,gBAACkH,QAAI,CAAAnH,SAAA,CAACN,eAAA,QAAME,MAAOC,GAAOooD,KAAKjoD,SAAC,iBAAiBgoB,EAAYnxB,OAAOmxB,EAAYntB,MAAM4vD,EAAKjB,UAAW,mBA/B3FiB,EAAKC,2B,qkBClDvB,IAEMlX,GAAyC,SAAH50C,GAAiC,IAA3BgsD,EAAMhsD,EAANgsD,OAAQ5iC,EAAWppB,EAAXopB,YACvD1rB,EAAcvB,IAAduB,UACFogB,EAAc5E,KACpB9c,EAA8BC,yBAAe8sD,IAAgB5sD,EAAAC,IAAAJ,EAAA,GAAtDg3C,EAAO72C,EAAA,GAAEu4C,EAAUv4C,EAAA,GAC1BqJ,EAAgCvJ,yBAAeqsD,IAAiB7iD,EAAArJ,IAAAoJ,EAAA,GAAzDgK,EAAS/J,EAAA,GAAEgK,EAAUhK,EAAA,GAC5BkB,EAA0B1K,yBAAe6sD,IAAsBjiD,EAAAzK,IAAAuK,EAAA,GAAxD8H,EAAM5H,EAAA,GAAE6H,EAAO7H,EAAA,GAChBglD,EAAgBvrD,4BAAkBioD,IAClCuD,EAASxrD,4BAAkBqoD,IAC3BoD,EAAUzrD,4BAAkBooD,IAC5BsD,EAAmB1rD,4BAAkBsoD,IAErC9rD,EAASQ,IAEfsI,qBAAU,WACR,IAAMqmD,EAAc,CAClBx9C,QAAQ,EACR0kC,WAAYnqB,EAAYq3B,SAAS7rD,UAAOZ,GAAGa,oBAAoBmY,WAC/DwmC,QAASpqB,EAAY/wB,QAAQ2U,YAG1BomC,EAAQG,YAAeH,EAAQI,SAClCsB,EAAWuX,KAEZ,IAEH,IAmCMlX,EAAmBl4C,uBAAY,SAACm4C,EAAyBz9C,GAC7Dm9C,GAAW,SAAAO,GAAc,OAAAp6C,MAAA,GACpBo6C,GAAc,GAAAxxC,IAAA,GAChBuxC,EAAQz9C,EAAKqV,kBAEf,IAIH,OACElM,eAACw0C,EAAWC,OAAM,CAChBtiB,KAAMpkB,EACNO,QALgB,WAAH,OAAeN,GAAQ,IAMpC3G,QAASyH,EACT4lC,SAzCa,SAACnpC,GAChBA,EAAMO,iBACNiD,GAAW,GAEX,IAAM4lC,EAAgC,CACpClgB,UAAWr4B,EAAOY,WAClB6pD,UAAWv+B,EAAYnxB,OAAOm7C,EAAQG,WAAY,cAClDqU,QAASx+B,EAAYnxB,OAAOm7C,EAAQI,QAAS,eAG/CwY,EACGvwD,IAAIg6C,GACJ3tC,MAAK,SAAAwkD,GACJL,EAAc,CACZrD,YAAa0D,EAAS1D,YACtBC,WAAYyD,EAASzD,aAEvBuD,EAAiBE,EAASC,YAC1BL,EAAOI,EAASE,OAChBL,EAAQG,EAASG,WAElBzkD,MAAM8V,GACN5V,SAAQ,kBAAM2H,GAAW,MAE5Bf,GAAQ,IAkBN+mC,WAlDqB,WACvBf,GAAW,SAAAx2C,GAAY,OAAArD,MAAA,GAClBqD,GAAY,IACfi1C,WAAYnqB,EAAYnxB,OAAOmxB,EAAYq3B,SAAS7rD,UAAOZ,GAAGa,oBAAqB,cACnF2+C,QAASpqB,EAAYnxB,OAAOmxB,EAAY/wB,QAAS,oBA8CpB+I,SAE7BC,gBAACyC,OAAG,CAAA1C,SAAA,CACFN,eAACw0C,EAAWpxB,MAAK,CAACxiB,MAAM,uBACxBL,gBAAC6pC,GAAU,CAAA9pC,SAAA,CACTN,eAACmoB,GAAU,CACTlkB,MAAM,KACNhO,MAAOq8C,EAAQG,WAAanqB,EAAYntB,MAAMm3C,EAAQG,iBAAcv7C,EACpEoQ,SAAUwH,EACVwZ,YAAaA,EACb3O,SAAU,SAAC9iB,GAAI,OAAKw9C,EAAiB,aAAkB,MAAJx9C,IAAQyxB,EAAYq3B,SAAS7rD,UAAOZ,GAAGa,wBAE5FiM,eAACwqC,WAAO,IACRxqC,eAACmoB,GAAU,CACTlkB,MAAM,SACNhO,MAAOq8C,EAAQI,QAAUpqB,EAAYntB,MAAMm3C,EAAQI,cAAWx7C,EAC9DoQ,SAAUwH,EACVwZ,YAAaA,EACb3O,SAAU,SAAC9iB,GAAI,OAAKw9C,EAAiB,UAAe,MAAJx9C,IAAQyxB,EAAY/wB,qBChHnE6wD,GAAwB5pD,eAAK,CACxCxI,IAAK,wBACLyI,SAAS,IAGE4pD,GAAkB7pD,eAAK,CAClCxI,IAAK,kBACLyI,QAAS,CACPg0C,WAAY,GACZC,QAAS,MCAP/L,GAAMC,qBAUCglB,GAAwC,SAAH1sD,GAM3C,IALLgsD,EAAMhsD,EAANgsD,OACAjB,EAAS/qD,EAAT+qD,UACAO,EAAQtrD,EAARsrD,SACA5B,EAAgB1pD,EAAhB0pD,iBACAtgC,EAAWppB,EAAXopB,YAEMtuB,EAAQ0F,KACN2K,EAAaC,KAAbD,SACAzN,EAAcvB,IAAduB,UACA0F,EAAmBC,KAAnBD,eACF0a,EAAc5E,KACd+yC,EAAgBvrD,4BAAkBioD,IAClCuD,EAASxrD,4BAAkBqoD,IAC3BoD,EAAUzrD,4BAAkBooD,IAC5BsD,EAAmB1rD,4BAAkBsoD,IACrCn5C,EAAanP,4BAAkBgoD,IAE/BxrD,EAASQ,IACTgG,EAAcN,IA4BpB,OA1BAipB,0BACEpvB,uBAAY,WACV4S,GAAW,GAEX,IAAM88C,EAA6B,CACjCp3B,UAAWr4B,EAAOY,WAClB6pD,UAAWv+B,EAAYnxB,OAAOmxB,EAAYq3B,SAAS7rD,UAAOZ,GAAGa,oBAAqB,cAClF+yD,QAASx+B,EAAYnxB,OAAOmxB,EAAY/wB,QAAS,eAGnD2zD,EACGvwD,IAAIkxD,GACJ7kD,MAAK,SAAAwkD,GACJL,EAAc,CACZrD,YAAa0D,EAAS1D,YACtBC,WAAYyD,EAASzD,aAEvBuD,EAAiBE,EAASC,YAC1BL,EAAOI,EAASE,OAChBL,EAAQG,EAASG,WAElBzkD,MAAM8V,GACN5V,SAAQ,kBAAM2H,GAAW,QAC3B,KAIHxO,gBAAC2mC,WAAY,CAAChnC,MAAOC,GAAOsB,UAAUnB,SAAA,CACpCN,eAAC8zC,GAAW,CAACxrB,YAAaA,EAAa4iC,OAAQA,IAE/C3qD,gBAAComC,GAAIS,UAAS,CACZC,cAAe,CACbC,gBAAiB,GACjBC,iBAAkB,CAAE1mC,MAAO7G,EAAME,OAAOrB,YACxC2uC,qBAAsB,CAAE1lC,gBAAiB9H,EAAME,OAAOnC,OACtD0vC,YAAa,CAAE3lC,gBAAiBc,EAAYoB,UAAWiF,WAAY,WACnE3I,SAAA,CAEFN,eAAC2mC,GAAIe,OAAM,CAACztC,KAAK,cAAW0tC,UAAW,kBAAM4iB,GAAU,CAAEC,WAAUliC,mBACnEtoB,eAAC2mC,GAAIe,OAAM,CAACztC,KAAK,WAAW0tC,UAAW,kBAAMqiB,GAAU,CAAEC,YAAW3hC,mBACpEtoB,eAAC2mC,GAAIe,OAAM,CAACztC,KAAMoQ,EAAW,UAAY,2BAAsBs9B,UAAW,kBAAMghB,GAAa,CAAEC,mBAAkBtgC,0BC5E5GwjC,GAAgB,SAAH5sD,GAA2D,IAArDs5C,EAAUt5C,EAAVs5C,WAC9B,OACEj4C,gBAAA2C,YAAA,CAAA5C,SAAA,CACEN,eAAC4rD,GAAU,CACTV,OAAQ/pB,KACR8oB,UAAW7oB,KACXopB,SAAUnpB,KACVunB,iBAAkBtnB,KAClBhZ,YAAa1wB,MAEfoI,eAACy4C,GAAkB,CAACD,WAAYA,QCbzBj6C,GAAiBC,eAAK,CACjCxI,IAAK,oBACLyI,SAAS,IAGEstD,GAAWvtD,eAAK,CAC3BxI,IAAK,WACLyI,QAAS,CACPutD,iBAAkB,GAClBC,qBAAsB,M,qkBCInB,IAAMC,GAAkC,SAAHhtD,GAA4C,IAADitD,EAAAC,EAArC7+C,EAAGrO,EAAHqO,IAAK+a,EAAWppB,EAAXopB,YAC7Cje,EAAaC,KAAbD,SACA4hD,EAAyBnwD,yBAAeiwD,IAAxCE,qBAEF7lC,EAAejsB,SAAA,GAChBgG,GAAOsB,YACL4I,GAAY,CACf3I,KAAM,EACNsa,SAAU,MACT,GAAF,CACDla,gBAAiB9H,EAAME,OAAOnC,MAC9B8I,MAAO7G,EAAME,OAAOf,cAGhBysD,EAAY,CAChByG,EAAGryD,EAAME,OAAOxB,QAChB4zD,EAAGtyD,EAAME,OAAO9D,MAChBm2D,EAAGvyD,EAAME,OAAOL,MAChB0T,EAAI4nB,MAEAq3B,EAAiF,OAA1EL,EAAuB,MAApBF,GAA4D,OAAxCG,EAApBH,EAAsBnuD,MAAK,SAAAq3B,GAAI,OAAIA,EAAKpqB,SAAWwC,EAAI4nB,cAAnC,EAApBi3B,EAA8D//C,WAAS8/C,EAAI,mBAErFlG,EAAiB9rD,MAAA,GAClBgG,IAAM,IACT2B,gBAAiB8jD,IAGbpH,EAAerkD,MAAA,GAChBgG,GAAOS,OAAK,IACfC,MAAO7G,EAAME,OAAOP,QAGtB,OACE4G,gBAACyC,OAAG,CAAC9C,MAAOkmB,EAAgB9lB,SAAA,CAC1BC,gBAACC,UAAM,CAACkG,MAAM,SAAShG,QAAS,EAAGgb,GAAI,EAAEpb,SAAA,CACvCN,eAACyH,QAAI,CACHvH,MAAK/F,MAAA,GACAgG,GAAOS,OAAK,IACfC,MAAO7G,EAAME,OAAON,UACpB8H,KAAM,IAERV,QAAQ,KAAIV,SAEXiN,EAAIk/C,WAAW1vD,gBAElBwD,gBAACkH,QAAI,CACHvH,MAAK/F,MAAA,GACAgG,GAAOg+C,iBAAe,IACzBt9C,MAAO7G,EAAME,OAAON,YAEtBoH,QAAQ,KAAIV,SAAA,CACb,SACKiN,EAAIm/C,iBAEV1sD,eAAC8+C,WAAU,CACTt3C,KAAM,GACN3G,MAAO+kD,EACP3rD,KAAK,cAKTsG,gBAACkb,UAAM,CAAChV,QAAQ,UAAUvG,MAAO,CAAEwB,KAAM,GAAIpB,SAAA,CAC3CC,gBAACkb,UAAM,CAAChV,QAAQ,UAAU/F,QAAS,EAAEJ,SAAA,CACnCN,eAACwqC,WAAO,IACRjqC,gBAACkH,QAAI,CAACvH,MAAOs+C,EAAiBx9C,QAAQ,KAAIV,SAAA,CAAC,YAEzCN,eAAA,QAAME,MAAOC,GAAOomB,WAAWjmB,SAC5BgoB,EAAYnxB,OAAOoW,EAAI2U,KAAM,4BAGlC3hB,gBAACkH,QAAI,CAACvH,MAAOs+C,EAAiBx9C,QAAQ,KAAIV,SAAA,CAAC,mBAEzCN,eAAA,QAAME,MAAOC,GAAOomB,WAAWjmB,SAC5BiN,EAAIo/C,mBAKXpsD,gBAACC,UAAM,CAACE,QAAS,EAAGmsC,GAAI,EAAEvsC,SAAA,CACxBN,eAACyH,QAAI,CAACvH,MAAOs+C,EAAiBx9C,QAAQ,KAAIV,SAAC,UAG1CksD,GACCxsD,eAACsQ,GAAI,CACHlN,KAAMopD,EACNvmC,eAAgBggC,cASjB9lD,GAASc,WAAWC,OAAO,CACtCO,UAAW,CACTL,QAAS,GACTqgB,SAAU,IACV/X,SAAU,GACVpI,QAAS,OACT2H,WAAY,UACZgB,SAAU,SACV5I,aAAc,EACd0rC,YAAa,sBACbC,aAAc,CACZ7jC,MAAO,EACPwJ,OAAQ,GAEVs6B,aAAc,GAEhBlvC,QAAS,CACP4U,OAAQ,GACRqT,WAAY,GACZtc,SAAU,IAEZw0C,aAAc,CACZ/0C,MAAO,OACPpH,aAAc,GAEhBwkB,WAAY,CACVrkB,WAAY,EACZwH,SAAU,GACVD,WAAY,OAEd00C,gBAAiB,CACfx3B,kBAAmB,EACnBjd,SAAU,GACVD,WAAY,OAEd7I,MAAO,CACL6I,WAAY,MACZC,SAAU,M,qkBC5HP,IAAMkjD,GAA0C,SAAH1tD,GAAsD,IAAhD2tD,EAAS3tD,EAAT2tD,UAAWvkC,EAAWppB,EAAXopB,YAC7DtuB,EAAQ0F,KACRmO,EAASC,KACPlR,EAAcvB,IAAduB,UACFogB,EAAc5E,KACpB9c,EAA4BC,yBAAeuxD,IAAYrxD,EAAAC,IAAAJ,EAAA,GAAhDyxD,EAAMtxD,EAAA,GAAEuxD,EAASvxD,EAAA,GAClBwxD,EAAUrtD,4BAAkBmsD,IAC5Bh9C,EAAanP,4BAAkBstD,IACrCpoD,EAA0BvJ,yBAAe4xD,IAAkBpoD,EAAArJ,IAAAoJ,EAAA,GAApDiJ,EAAMhJ,EAAA,GAAEiJ,EAAOjJ,EAAA,GAEhB3I,EAASQ,IAETo8C,EAAoB,SAAC/+C,EAA+BhE,GACxD+2D,GAAU,SAAA/T,GAAa,OAAA9+C,MAAA,GAAU8+C,GAAa,GAAAl2C,IAAA,GAAG9I,EAAOhE,QA0CpDm3D,EAAgB,SAAC5M,EAAkCz1C,GACvDkiD,GAAQ,SAAAzvD,GAAY,OAAArD,MAAA,GACfqD,GAAY,IACfwuD,iBAAiB,GAAD9gD,OAAAC,KACX3N,EAAawuD,kBAAgB,CAAA7xD,MAAA,GAE3BqmD,GAAe,IAClBkM,cAAepvD,SAASyN,YAK9B8C,EAAOnV,QAAQ,4BAGX20D,EAAc,WAClBt+C,GAAW,GACXf,GAAQ,GACRg/C,GAAU,SAAAxvD,GAAY,OAAArD,MAAA,GACjBqD,GAAY,IACfmvD,WAAY,GACZF,WAAY,GACZt3B,KAAM,IACNm4B,cAAe,eAIbpU,EAAmB/8C,uBAAY,WACnC4S,GAAW,GACXf,GAAQ,KACP,IAEH,OACEhO,eAACoO,GAAS,CAACC,QAASN,EAAQO,QAAS4qC,EAAiB54C,SACpDC,gBAACyC,OAAG,CAAC9C,MAAOC,GAAOsB,UAAUnB,SAAA,CAC3BN,eAACyH,QAAI,CAACzG,QAAQ,YAAWV,SAAC,wCAE1BC,gBAACyC,OAAG,CAAC9C,MAAO,CAAEoB,QAAS,OAAQC,cAAe,MAAOC,eAAgB,iBAAkBlB,SAAA,CACrFC,gBAACyC,OAAG,CAAC9C,MAAO,CAAEoB,QAAS,OAAQC,cAAe,MAAO0H,WAAY,UAAW3I,SAAA,CAC1EN,eAACo1C,WAAW,CACVn/C,MAAM,IACN2f,OAAwB,MAAhBm3C,EAAO53B,KAAe,UAAY,YAC1Cp0B,QAAS,kBAAMi4C,EAAkB,OAAQ,QAE3Ch5C,eAACyH,QAAI,CACHvH,MAAK/F,MAAA,GACAgG,GAAOg+C,iBAAe,IACzBt9C,MAAO7G,EAAME,OAAOP,QAEtBqH,QAAQ,KAAIV,SACb,cAIHC,gBAACyC,OAAG,CAAC9C,MAAO,CAAEoB,QAAS,OAAQC,cAAe,MAAO0H,WAAY,UAAW3I,SAAA,CAC1EN,eAACo1C,WAAW,CACVn/C,MAAM,IACN2f,OAAwB,MAAhBm3C,EAAO53B,KAAe,UAAY,YAC1Cp0B,QAAS,kBAAMi4C,EAAkB,OAAQ,QAE3Ch5C,eAACyH,QAAI,CACHvH,MAAK/F,MAAA,GACAgG,GAAOg+C,iBAAe,IACzBt9C,MAAO7G,EAAME,OAAOP,QAEtBqH,QAAQ,KAAIV,SACb,yBAIHC,gBAACyC,OAAG,CAAC9C,MAAO,CAAEoB,QAAS,OAAQC,cAAe,MAAO0H,WAAY,UAAW3I,SAAA,CAC1EN,eAACo1C,WAAW,CACVn/C,MAAM,IACN2f,OAAwB,MAAhBm3C,EAAO53B,KAAe,UAAY,YAC1Cp0B,QAAS,kBAAMi4C,EAAkB,OAAQ,QAE3Ch5C,eAACyH,QAAI,CACHvH,MAAK/F,MAAA,GACAgG,GAAOg+C,iBAAe,IACzBt9C,MAAO7G,EAAME,OAAOP,QAEtBqH,QAAQ,KAAIV,SACb,2BAMLN,eAAC6D,aAAS,CACRI,MAAM,YACNI,aAAc,SAAAjB,GAAI,OAAI41C,EAAkB,aAAc51C,IACtDnN,MAAO82D,EAAON,aAEhBzsD,eAAC6D,aAAS,CACRI,MAAM,8BACNI,aAAc,SAAAjB,GAAI,OAAI41C,EAAkB,aAAc51C,IACtDnN,MAAO82D,EAAOJ,WACd/L,WAAS,IAGXrgD,gBAACyC,OAAG,CAAC9C,MAAOC,GAAOwN,WAAWrN,SAAA,CAC5BN,eAACW,UAAM,CACLE,MAAO7G,EAAME,OAAOqU,OACpBvN,QAAQ,OACRJ,MAAM,WACNG,QAASm4C,EACT5xC,SAAUylD,EAAOj+C,YAEnB9O,eAACW,UAAM,CACLK,QAAQ,OACRJ,MAAM,YACNG,QAtJW,SAACwK,GACpBA,EAAMO,iBACN,IAAMyhD,EAAkB,CACtBlB,EAAG,SACHE,EAAG,oBACHD,EAAG,oBACHS,EAAO53B,MAEHq4B,EAAYllC,EAAY/wB,QAAQ2U,WAEhCs0C,EAAmC,CACvCiM,WAAYM,EAAON,WACnBE,WAAYI,EAAOJ,WACnB3vD,WAAYZ,EAAOY,WACnBm4B,KAAM43B,EAAO53B,KACbjT,KAAMsrC,EACNC,KAAMD,EACNzO,aAAcyO,EACdvwD,YAAab,EAAOa,YACpBywD,iBAAkBF,EAClBG,kBAAmBH,EACnBxsC,QAAS5kB,EAAO4kB,QAChBssC,cAAeC,GAGjBV,EACG3rD,OAAOs/C,GACPx5C,MAAK,SAAA+D,GACJ,IAAIA,EAIF,MAAM,IAAIvV,MAAM,wCAHhB43D,EAAc5M,EAAiBz1C,GAC/BsiD,OAKHnmD,MAAM8V,GACN5V,QAAQ8xC,IAmHH5xC,SAAUylD,EAAOj+C,YAAci+C,EAAON,WAAWx1D,SAAW81D,EAAOJ,WAAW11D,kBAQpFkJ,GAASc,WAAWC,OAAO,CAC/BO,UAAW,CACTH,QAAS,OACToM,IAAK,IAEPC,WAAY,CACVrM,QAAS,OACTC,cAAe,MACfC,eAAgB,WAChBkM,IAAK,GAEPywC,gBAAiB,CACfz0C,SAAU,GACVD,WAAY,SClNHyjD,GAAuB1uD,eAAK,CACvCxI,IAAK,uBACLyI,SAAS,IAGE0uD,GAAoB3uD,eAAK,CACpCxI,IAAK,oBACLyI,SAAS,IAGEquD,GAActuD,eAAK,CAC9BxI,IAAK,aACLyI,QAAS,CACPqQ,WAAW,EACXqmB,KAAM,IACNm4B,cAAe,SACfb,WAAY,GACZE,WAAY,M,+NChBT,IAAMxsD,GAASc,WAAWC,OAAO,CACtCO,UAAW,CACTC,KAAM,EACNuH,WAAY,UACZqc,SAAU,YAEZjG,Q,mWAAOllB,CAAA,GACF0tC,GAAaC,aAElBC,OAAQ,CACNC,cAAe,IAEjB4lB,aAAc,CACZtoC,SAAU,WACVC,OAAQ,GACRC,MAAO,M,+NCCJ,IAAMqoC,GAA0B,SAAH3uD,GAA0D,IAAD4uD,EAAAC,EAAnDzlC,EAAWppB,EAAXopB,YAAa0lC,EAAU9uD,EAAV8uD,WAAYnB,EAAS3tD,EAAT2tD,UAC3D7yD,EAAQ0F,KACN4C,EAAmBC,KAAnBD,eACF0a,EAAc5E,KACZxb,EAAcvB,IAAduB,UACRtB,EAAwBC,yBAAewwD,IAAStwD,EAAAC,IAAAJ,EAAA,GAAzC2yD,EAAIxyD,EAAA,GAAEwxD,EAAOxxD,EAAA,GACpBqJ,EAAgCvJ,yBAAegD,IAAewG,EAAArJ,IAAAoJ,EAAA,GAAvDgK,EAAS/J,EAAA,GAAEgK,EAAUhK,EAAA,GACtBmpD,EAAgBtuD,4BAAkButD,IAClC/V,EAAgBC,iBAAO,MAEvBj7C,EAASQ,IACTgG,EAAcN,IAEpBipB,0BACEpvB,uBAAY,WACV4S,GAAW,GAEXi/C,EACGrzD,IAAI,CAAE4/B,cAAen+B,EAAOY,aAC5BgK,KAAKimD,GACL/lD,MAAM8V,GACN5V,SAAQ,kBAAM2H,GAAW,QAC3B,KAOL,OACExO,gBAAC2mC,WAAY,CAAChnC,MAAOC,GAAOsB,UAAUnB,SAAA,CACpCN,eAACiD,cAAU,CAAC+0C,IAAKZ,EAAe/tB,sBAAuBlpB,GAAO4nC,OAAOznC,SACnEC,gBAACyC,OAAG,CAAC9C,MAAOC,GAAOkf,QAAQ/e,SAAA,CACzBN,eAACwoC,GAAU,CACTplC,KAAK,MACLqlC,KAAMzoC,eAAC6G,WAAa,CAACW,KAAM,GAAI3G,MAAO7G,EAAME,OAAOb,KAAMY,KAAK,oBAEhE+F,eAACgnB,GAAQ,CACPlY,UAAWA,EACXmY,UAAc,MAAJgnC,GAAsB,OAAlBH,EAAJG,EAAMjC,mBAAN8B,EAAwB72D,QAClCkwB,YAAY,gBAAe7mB,SAEL,OAFKytD,EAE1BE,EAAKjC,uBAAgB,EAArB+B,EAAuB/4D,KAAI,SAAAsX,GAAI,OAC9BtM,eAACksD,GAAO,CAEN5jC,YAAaA,EACb/a,IAAKjB,GAFAA,EAAKogD,yBASpB1sD,eAACP,GAAc,CAAAa,SACbN,eAACuiD,OAAG,CACFxhD,QA9BiB,WACvBmtD,GAAc,IA8BRzlB,KAAM,SAAA7hC,GAAK,OAAI5G,eAACoM,W,mWAAsBjS,CAAA,CAACF,KAAK,QAAW2M,KAAW/F,MAAO+B,EAAYoB,cAGzFhE,eAAC4sD,GAAW,CAACC,UAAWA,EAAWvkC,YAAaA,QCxEzC6lC,GAAiB,SAAHjvD,GAA2D,IAArDs5C,EAAUt5C,EAAVs5C,WAC/B,OACEj4C,gBAAA2C,YAAA,CAAA5C,SAAA,CACEN,eAAC6tD,GAAG,CACFvlC,YAAa1wB,IACbo2D,WAAYnpB,KACZgoB,UAAW/nB,OAEb9kC,eAACy4C,GAAkB,CAACD,WAAYA,Q,UCXzB4V,GAAiB5vD,eAAK,CACjCxI,IAAK,gBACLyI,QAAS,KAGE4vD,GAAkB7vD,eAAK,CAClCxI,IAAK,kBACLyI,QAAS,KAGE6vD,GAAwB9vD,eAAuB,CAC1DxI,IAAK,wBACLyI,QAAS,CACPu+B,gBAAiB,EACjBD,UAAW,M,qkBCFR,IAAM+W,GAA0C,SAAH50C,GAE7C,IADLopB,EAAWppB,EAAXopB,YAGMlsB,GAASQ,EADOvB,IAAduB,aAGRtB,EAAwDC,yBAAegzD,IAA2B9yD,EAAAC,IAAAJ,EAAA,GAA3FkzD,EAAoB/yD,EAAA,GAAEgzD,EAAuBhzD,EAAA,GAC9CizD,EAAkB9uD,4BAAkB+uD,IACpCC,EAAiBhvD,4BAAkBivD,IACzC/pD,EAA0BvJ,yBAAeuzD,IAA6B/pD,EAAArJ,IAAAoJ,EAAA,GAA/DiJ,EAAMhJ,EAAA,GAAEiJ,EAAOjJ,EAAA,GAChBgqD,EAAuBnvD,4BAAkBovD,IAE/ClG,EAA8CC,IAAMrmD,SAAS,CAC3DkyC,YAAa,GACbC,UAAW,KACXmU,EAAAttD,IAAAotD,EAAA,GAHKmG,EAAejG,EAAA,GAAEkG,EAAkBlG,EAAA,GAKpCl6C,EAAYhT,yBAAeqzD,IAE3BC,EAAmB,WACvBX,GAAwB,SAAAjxD,GAAY,OAAArD,MAAA,GAC/BqD,GAAY,IACfo3C,YAAa,GACbC,UAAW,QAIb6Z,EAAgB,CAAEW,oBAAqB,EAAGC,cAAe,KAEzDV,EAAe,CAAEW,UAAW,KAAoCC,gBAAiB,MAKnFjkC,0BACEpvB,uBAAY,WACVizD,MACC,KAGL,IAYM/a,EAAmBl4C,uBAAY,SAACtF,GACpC,IAAM+9C,EAActsB,EAAYnxB,OAAOmxB,EAAY6rB,QAAQ3/C,kBAAetB,GAAGuB,aAAcoC,GAAMqV,WAAY,cACvG2oC,EAAYvsB,EAAYnxB,OAAON,EAAKqV,WAAY,cAEtDgjD,EAAmB,CAAEta,cAAaC,gBACjC,IAEH,OACEt0C,gBAACi0C,EAAWC,OAAM,CAChBtiB,KAAMpkB,EACNO,QA9BgB,WAAH,OAAeN,GAAQ,IA+BpC3G,QAASyH,EACT4lC,SAxBa,SAACnpC,GAChBA,EAAMO,iBACNkC,GAAQ,GACR+gD,GAAqB,GAErBN,GAAwB,SAAAjxD,GAAY,OAAArD,MAAA,GAC/BqD,GAAY,IACfo3C,YAAaqa,EAAgBra,YAC7BC,UAAWoa,EAAgBpa,gBAiB3BE,WAAYqa,EAAiB9uD,SAAA,CAE7BC,gBAACyC,OAAG,CAAA1C,SAAA,CACFN,eAACw0C,EAAWpxB,MAAK,CAACxiB,MAAM,2BACxBZ,eAACyH,QAAI,CAACvH,MAAO,CAAEgoB,aAAc,MAAOD,YAAa,MAAO+f,cAAe,OAAQ1nC,SAAC,4DAChFN,eAACmoB,GAAU,CACTlkB,MAAOgrD,EAAgBpa,UAAYvsB,EAAYnxB,OAAO83D,EAAgBpa,UAAW,cAAgB,sBACjGvtC,SAAUwH,EACV7Y,MACE,CAAClE,wBAAqB09D,YAAa19D,wBAAqB09D,aAAap6C,SAASjZ,EAAO08B,cACnF01B,EAAqB3Z,UACnBvsB,EAAYntB,MAAMqzD,EAAqB3Z,gBACvC39C,EAENyiB,SAAU,SAAC9iB,GAAI,OAAKw9C,EAAqB,MAAJx9C,IAAQyxB,EAAY/wB,UACzD+wB,YAAaA,OAIf,CAACv2B,wBAAqB09D,aAAap6C,SAASjZ,EAAO08B,cACnDv4B,gBAACyC,OAAG,CAAA1C,SAAA,CACFN,eAACw0C,EAAWpxB,MAAK,CAACxiB,MAAM,sBACxBZ,eAAC0vD,GAAoB,aAEGx4D,MCrGrB43D,GAA+BtwD,eAAK,CAC/CxI,IAAK,+BACLyI,SAAS,IAGE8vD,GAA6B/vD,eAAK,CAC7CxI,IAAK,6BACLyI,QAAS,CACPm2C,YAAa,GACbC,UAAW,MAIF8Z,GAAoBnwD,eAAK,CACpCxI,IAAK,oBACLyI,QAAS,CACP4wD,oBAAqB,EACrBC,cAAe,MAINT,GAAmBrwD,eAAK,CACnCxI,IAAK,mBACLyI,QAAS,CACP8wD,UAAW,KACXC,gBAAiB,M,+CC1BRrvD,GAASc,WAAWC,OAAO,CACtCO,UAAW,CACTN,OAAQ,GACR2I,OAAQ,WAEV6lD,YAAa,CACXruD,QAAS,OACTC,cAAe,MACfC,eAAgB,gBAChBJ,QAAS,GACTsI,SAAU,GACV8S,YAAa,EACbD,YAAa,OACblb,aAAc,EACdS,gBAAiB,QAEnB8tD,eAAgB,CACdluD,KAAM,EACNF,eAAgB,SAChByH,WAAY,SACZnH,gBAAiB,sBAEnB+tD,aAAc,CACZ/tD,gBAAiB,OACjBV,QAAS,GACTC,aAAc,EACd8H,MAAO,KAET2mD,WAAY,CACVlpC,gBAAiB,GACjB4hC,kBAAmB,EACnBC,kBAAmB,U,qkBC3BU,IAE5BsH,GAAqB,SAArBA,GAAqB,OAArBA,EAAqB,gBAArBA,EAAqB,kBAArBA,EAAqB,mCAArBA,EAAqB,kBAArBA,EAAqB,wBAArBA,EAAqB,8BAArBA,EAAqB,6BAArBA,EAAqB,CAArBA,IAAqB,IAUbL,GAAuB,WAClC,IAAAjtD,EAAwCC,oBAAS,GAAMgD,EAAAhK,IAAA+G,EAAA,GAAhDutD,EAAYtqD,EAAA,GAAEuqD,EAAevqD,EAAA,GACpCpK,EAA8BC,yBAAeszD,IAAiBpzD,EAAAC,IAAAJ,EAAA,GAAvDg3C,EAAO72C,EAAA,GAAEu4C,EAAUv4C,EAAA,GAwBpBy0D,EAAe/1D,MAAA,GAChBgG,IAAM,IACTgB,OAAQ,IAGV,OACEZ,gBAAC4vD,WAAI,CAACjwD,MAAOgwD,EAAgB5vD,SAAA,CAC3BN,eAACowD,WAAwB,CAACrvD,QA3BN,WACtBkvD,GAAgB,IA0BqC3vD,SACjDC,gBAAC4vD,WAAI,CAACjwD,MAAOC,GAAOwvD,YAAYrvD,SAAA,CAC9BN,eAACyH,WAAI,CAAAnH,SAAEgyC,EAAQkd,iBAAmB,qBAClCxvD,eAAAkD,YAAA,CAAA5C,SAAEN,eAACqwD,WAAS,CAACp2D,KAAK,OAAOuN,KAAM,GAAI3G,MAAM,iBAI7Cb,eAACgiB,WAAK,CACJsuC,cAAc,QACdC,aAAa,EACbliD,QAAS2hD,EACTQ,eAlCmB,WACvBP,GAAgB,IAiCqB3vD,SAEjCN,eAACmwD,WAAI,CAACjwD,MAAOC,GAAOyvD,eAAetvD,SACjCN,eAACmwD,WAAI,CAACjwD,MAAOC,GAAO0vD,aAAavvD,SA3CI,CAAC,QAAS,SAAU,sBAAoB,SAAU,YAAa,eAAgB,mBA4ChGtL,KAAI,SAACy7D,GAAM,OAC3BzwD,eAACsb,WAAgB,CAEfva,QAAS,kBArCG,SAAC0vD,GACzB,IAAMlB,EAAYkB,EAAOx5D,OAAS84D,GAAsBU,GAAU,UAElEzc,GAAW,SAAAO,GAAc,OAAAp6C,MAAA,GACpBo6C,GAAc,IACjBgb,YACAC,gBAAiBiB,OAGnBR,GAAgB,GA4BWS,CAAkBD,IACjCvwD,MAAOC,GAAO2vD,WAAWxvD,SAEzBN,eAACyH,WAAI,CAAAnH,SAAEmwD,KAJFA,gBC5DRE,ICNsBnyD,eAAK,CACtCxI,IAAK,sBACLyI,QAAS,CACP,CAAE82C,IAAK,QAASt/C,MAAO,WACvB,CAAEs/C,IAAK,SAAUt/C,MAAO,YACxB,CAAEs/C,IAAK,sBAAoBt/C,MAAO,aAClC,CAAEs/C,IAAK,SAAUt/C,MAAO,YACxB,CAAEs/C,IAAK,YAAat/C,MAAO,eAC3B,CAAEs/C,IAAK,eAAgBt/C,MAAO,eAC9B,CAAEs/C,IAAK,kBAAmBt/C,MAAO,cDHa,WAChD,IAAQ2G,EAAcvB,IAAduB,UACA0F,EAAmBC,KAAnBD,eACA+H,EAAaC,KAAbD,SAER5H,EAAkCC,oBAAS,GAAMgD,EAAAhK,IAAA+G,EAAA,GAA1CkN,EAAUjK,EAAA,GAAEkK,EAAWlK,EAAA,GAC9BpK,EAAqCC,yBAAeozD,IAAkBlzD,EAAAC,IAAAJ,EAAA,GAA/Ds1D,EAAcn1D,EAAA,GAAEo1D,EAAUp1D,EAAA,GAC3Bq1D,EAAgBlxD,4BAAkBovD,IAClC+B,EAAiBnxD,4BAAkBoxD,IACnCC,EAAerxD,4BAAkBsxD,IACjCC,EAAkBvxD,4BAAkBwxD,IAEpCh1D,EAASQ,IACTgG,EAAcN,IAEd+uD,EAAkB,MAANj1D,OAAM,EAANA,EAAQk1D,sBAMpBC,EAAsB,SAACC,IAJL,SAACA,GACvBX,EAAW,CAAExB,oBAAqBmC,EAAQC,YAAanC,cAAekC,EAAQE,cAI9EC,CAAgBH,GAChB5hD,GAAY,GAEZkhD,GAAc,GACdC,GAAe,GACfE,GAAa,GACbE,GAAgB,IAelB,OACEnxD,eAACgD,OAAG,CAAC9C,MAZDmK,EACK,CACLlJ,OAAQ,QAGH,CACLe,WAAY,QAMU5B,SACxBN,eAACkQ,WAAI,CACH0hD,aAAc,CACZzoD,MAAO,IACPnH,UAAW,GAEbqM,QAASsB,EACTQ,UAAW,kBAAMP,GAAY,IAC7BQ,eAAe,SACfC,OACErQ,eAACuiD,OAAG,CACF1hD,MAAO+B,EAAYoB,UACnBhD,QAAQ,WACRiD,MAAO2sD,EAAetB,cAAa,GAAMsB,EAAetB,cAAkB,0BAC1EvuD,QAAS,kBAAM6O,GAAY,IAC3BpI,KAAK,SAERlH,SAEA+wD,EAAUr8D,KAAI,SAACw8D,GAAO,OACrBxxD,eAACkQ,WAAKS,KAAI,CAER5P,QAAS,kBAAMwwD,EAAoBC,IACnC5wD,MAAO4wD,EAAQE,aAFVF,EAAQC,sBEtEZI,GAA0BrzD,eAAK,CAC1CxI,IAAK,0BACLyI,QAAS,KCIEqzD,GAAgC,WAC3C,IAAQxvD,EAAmBC,KAAnBD,eACRG,EAAkCC,oBAAS,GAAMgD,EAAAhK,IAAA+G,EAAA,GAA1CkN,EAAUjK,EAAA,GAAEkK,EAAWlK,EAAA,GAC9BpK,EAAoCC,yBAAes2D,IAAwBp2D,EAAAC,IAAAJ,EAAA,GAApEy2D,EAAUt2D,EAAA,GAAEu2D,EAAav2D,EAAA,GAC1B/F,EAAOoG,yBAAesyD,IACtBxrD,EAAcN,IACZ+H,EAAaC,KAAbD,SAmBR,OACErK,eAACgD,OAAG,CAAC9C,MAZDmK,EACK,CACLlJ,OAAQ,QAGH,CACLe,WAAY,QAMU5B,SACxBN,eAACkQ,WAAI,CACH0hD,aAAc,CACZzoD,MAAO,IACPnH,UAAW,GAEbqM,QAASsB,EACTQ,UAAW,kBAAMP,GAAY,IAC7BQ,eAAe,SACfC,OACErQ,eAACuiD,OAAG,CACF1hD,MAAO+B,EAAYoB,UACnBhD,QAAQ,WACRiD,MAAO8tD,EAAWE,aAAY,YAAeF,EAAWE,aAAa/lD,WAAU,aAAa6lD,EAAWG,MAAK,IAAIH,EAAWI,SAAa,iCACxIpxD,QAAS,kBAAM6O,GAAY,IAC3BpI,KAAK,SAERlH,SAEA5K,EAAKV,KAAI,SAACgB,GAAG,OACZgK,eAACkQ,WAAKS,KAAI,CAER5P,QAAS,kBAvCjBixD,EAuC2Ch8D,QAtC3C4Z,GAAY,IAuCJhP,MAAK,YAAc5K,EAAIi8D,aAAa/lD,WAAU,aAAalW,EAAIk8D,MAAK,IAAIl8D,EAAIm8D,UAFvEn8D,EAAIo8D,yBC5CRhgB,GAAoD,SAAHlzC,GAAyB,IAAnBopB,EAAWppB,EAAXopB,YAC5Dta,EAAUpO,4BAAkBkvD,IAC5Bxc,EAAUx2C,yBAAeyyD,IACvB3xD,EAAcvB,IAAduB,UACAyN,EAAaC,KAAbD,SACFwD,EAASC,KAEPuhD,EAAwBvzD,yBAAe6yD,IAAvCU,oBACFgD,EAAmBv2D,yBAAewyD,IAClCgE,EAAkBx2D,yBAAe+1D,IAEjCz1D,EAASQ,IAET41C,EAASF,EAAQsC,aAAetC,EAAQuC,UACvCvsB,EAAYnxB,OAAOm7C,EAAQsC,YAAa,cAAa,WAAQtsB,EAAYnxB,OAAOm7C,EAAQuC,UAAW,cACtGvC,EAAQuC,UAAS,GACZvsB,EAAYnxB,OAAOm7C,EAAQuC,UAAW,cAAa,GACnDvsB,EAAYnxB,OAAOm7C,EAAQsC,YAAa,cAkBjD,OACE50C,eAACQ,UAAM,CAACqsC,GAAIxiC,EAAW,EAAI,EAAGq+B,MAAI,EAAApoC,SAChCN,eAACymB,GAAU,CACT7lB,MAAM,aACN8lB,SAAU8rB,EACVzxC,QArBa,WACEgC,oBAAA,GAChBhR,wBAAqBwgE,OAAiC,IAAxBlD,GAC9Bt9D,wBAAqBygE,KAA8B,IAAvBp2D,EAAO08B,aACnC/mC,wBAAqB09D,eAAiB6C,EAAgBt1D,YAA6C,IAA/Bs1D,EAAgBt1D,aACpFjL,wBAAqB0gE,cAAgBH,EAAgBt1D,YAA6C,IAA/Bs1D,EAAgBt1D,aACnFjL,wBAAqB2gE,WAAaL,EAAiBr1B,iBAAwD,IAArCq1B,EAAiBr1B,kBACxF5gC,EAAO08B,aAGP9qB,GAAQ,GAERH,EAAOW,KAAK,gDAAiD,CAAExN,QAAS,gB,qkBCnBvE,ICrBMmuD,GAAgC3wD,eAAK,CAChDxI,IAAK,gCACLyI,SAAS,IAGEk0D,GAA2Bn0D,eAAK,CAC3CxI,IAAK,2BACLyI,QAAS,KAGEuwD,GAAyBxwD,eAAK,CACzCxI,IAAK,yBACLyI,SAAS,I,qkBCMJ,IClBMm0D,GAA6Bp0D,eAAK,CAC7CxI,IAAK,6BACLyI,SAAS,IAGEo0D,GAAkBr0D,eAAK,CAClCxI,IAAK,kBACLyI,QAAS,KAGEuyD,GAAqBxyD,eAAK,CACrCxI,IAAK,qBACLyI,SAAS,ICbE0B,GAASc,WAAWC,OAAO,CACtCO,UAAW,CACTL,QAAS,GACTqgB,SAAU,IACV/X,SAAU,GACVpI,QAAS,OACT2H,WAAY,UACZgB,SAAU,SACV5I,aAAc,EACd0rC,YAAa,sBACbC,aAAc,CACZ7jC,MAAO,EACPwJ,OAAQ,GAEVs6B,aAAc,GAEhB/D,gBAAiB,CACf5nC,QAAS,OACTC,cAAe,MACfC,eAAgB,gBAChByH,WAAY,SACZgf,YAAa,EACbC,aAAc,GAEhB08B,YAAa,CACX/jD,MAAO,sBACP4I,WAAY,MACZC,SAAU,GACVO,SAAU,SACVC,WAAY,SACZC,aAAc,YAGhBvR,QAAS,CACPkJ,gBAAiB,uBAGnBM,YAAa,CACXb,cAAe,SACf0mB,YAAa,EACbC,aAAc,EACd5mB,QAAS,OACToM,IAAK,GAEPm3C,YAAa,CACXvjD,QAAS,OACTC,cAAe,MACf+N,SAAU,SACVrF,SAAU,SACVE,aAAc,YAEhB26C,oBAAqB,CACnBxjD,QAAS,OACTC,cAAe,MACfC,eAAgB,gBAChByI,SAAU,SACVC,WAAY,SACZC,aAAc,YAEhB46C,aAAc,CACZlkD,MAAO,sBACP4I,WAAY,MACZxH,YAAa,GAEf+iD,aAAc,CACZxjD,eAAgB,mB,qkBCrDb,IAAMsxD,GAA0D,SAAH5zD,GAA0D,IAApDqM,EAAKrM,EAALqM,MAAO+c,EAAWppB,EAAXopB,YACvEje,EAAaC,KAAbD,SAEFjO,GAASQ,EADOvB,IAAduB,aAGFwpB,EAAejsB,SAAA,GAChBgG,GAAOsB,YACL4I,GAAY,CACf3I,KAAM,EACNsa,SAAU,MACT,GAAF,CACDla,gBAAiB9H,EAAME,OAAOnC,MAC9B8I,MAAO7G,EAAME,OAAOf,cAGhBqlD,EAAerkD,MAAA,GAChBgG,GAAO0kD,aAAW,IACrBhkD,MAAO7G,EAAME,OAAOP,QAGtB,OACE4G,gBAACyC,OAAG,CAAC9C,MAAOkmB,EAAgB9lB,SAAA,CAC1BN,eAACQ,UAAM,CAACkG,MAAM,SAAShG,QAAS,EAAGgb,GAAI,EAAGmxB,GAAI,EAAEvsC,UACxC,MAALiL,OAAK,EAALA,EAAO2Z,SACN3kB,gBAACkH,QAAI,CAACzG,QAAQ,YAAYd,MAAOs+C,EAAgBl+C,SAAA,CAC/CN,eAAA,QAAME,MAAOC,GAAO4kD,aAAazkD,SAAC,YAGjCiL,EAAM2Z,YAIb3kB,gBAACkb,UAAM,CAAC/a,QAAS,EAAGR,MAAO,CAAEwB,KAAM,GAAIpB,SAAA,CACrCN,eAACwqC,WAAO,CAACtqC,MAAOC,GAAOvH,UAErB2S,EAAMsuB,KACNt5B,gBAACkH,QAAI,CAACzG,QAAQ,YAAYd,MAAOs+C,EAAgBl+C,SAAA,CAC/CC,gBAAA,QAAML,MAAOC,GAAO4kD,aAAazkD,SAAA,CAC9B,CAACvO,wBAAqB09D,YAAa19D,wBAAqB0gE,YAAYp9C,SAASjZ,EAAO08B,cAAgB,WACpG,CAAC/mC,wBAAqBygE,MAAMn9C,SAASjZ,EAAO08B,cAAgB,UAE9DvtB,EAAMsuB,OAGXt5B,gBAACkH,QAAI,CAACzG,QAAQ,YAAYd,MAAOs+C,EAAgBl+C,SAAA,CAC/CN,eAAA,QAAME,MAAOC,GAAO4kD,aAAazkD,SAAC,UAGjCgoB,EAAYnxB,OAAOoU,EAAMouB,WAAY,0BAExCp5B,gBAACkH,QAAI,CAACzG,QAAQ,YAAYd,MAAOs+C,EAAgBl+C,SAAA,CAC/CN,eAAA,QAAME,MAAOC,GAAO4kD,aAAazkD,SAAC,qBAGjCiL,EAAMc,aAGP,CAACta,wBAAqBwgE,QAAQl9C,SAASjZ,EAAO08B,cAAgBvtB,EAAM2G,SACpE3R,gBAACkH,QAAI,CAACzG,QAAQ,YAAYd,MAAOs+C,EAAgBl+C,SAAA,CAC/CN,eAAA,QAAME,MAAOC,GAAO4kD,aAAazkD,SAAC,aAGjCiL,EAAM2G,kB,UC1EN/R,GAASc,WAAWC,OAAO,CACtCO,UAAW,CACTL,QAAS,GACTqgB,SAAU,IACV/X,SAAU,GACVpI,QAAS,OACT2H,WAAY,UACZgB,SAAU,SACV5I,aAAc,EACd0rC,YAAa,sBACbC,aAAc,CACZ7jC,MAAO,EACPwJ,OAAQ,GAEVs6B,aAAc,GAEhB/D,gBAAiB,CACf5nC,QAAS,OACTC,cAAe,MACfC,eAAgB,gBAChByH,WAAY,SACZgf,YAAa,EACbC,aAAc,GAEhB08B,YAAa,CACX/jD,MAAO,sBACP4I,WAAY,MACZC,SAAU,GACVO,SAAU,SACVC,WAAY,SACZC,aAAc,YAGhBvR,QAAS,CACPkJ,gBAAiB,uBAGnBM,YAAa,CACXb,cAAe,SACf0mB,YAAa,EACbC,aAAc,EACd5mB,QAAS,OACToM,IAAK,GAEPm3C,YAAa,CACXvjD,QAAS,OACTC,cAAe,MACf+N,SAAU,SACVrF,SAAU,SACVE,aAAc,YAEhB26C,oBAAqB,CACnBxjD,QAAS,OACTC,cAAe,MACfC,eAAgB,gBAChByI,SAAU,SACVC,WAAY,SACZC,aAAc,YAEhB46C,aAAc,CACZlkD,MAAO,sBACP4I,WAAY,MACZxH,YAAa,GAEf+iD,aAAc,CACZxjD,eAAgB,mB,qkBCvDb,IAAMuxD,GAAwC,SAAH7zD,GAAqC,IAA/Bi7B,EAAMj7B,EAANi7B,OAC9C9vB,EAAaC,KAAbD,SAEFjO,GAASQ,EADOvB,IAAduB,aAGFwpB,EAAejsB,SAAA,GAChBgG,GAAOsB,YACL4I,GAAY,CACf3I,KAAM,EACNsa,SAAU,MACT,GAAF,CACDla,gBAAiB9H,EAAME,OAAOnC,MAC9B8I,MAAO7G,EAAME,OAAOf,cAGhBqlD,EAAerkD,MAAA,GAChBgG,GAAO0kD,aAAW,IACrBhkD,MAAO7G,EAAME,OAAOP,QAGtB,OACE4G,gBAACyC,OAAG,CAAC9C,MAAOkmB,EAAgB9lB,SAAA,CAC1BC,gBAACC,UAAM,CAACkG,MAAM,SAASD,QAAQ,UAAU/F,QAAS,EAAGgb,GAAI,EAAGmxB,GAAI,EAAEvsC,SAAA,CAChEC,gBAACkH,QAAI,CAACzG,QAAQ,YAAYd,MAAOs+C,EAAgBl+C,SAAA,CAC/CN,eAAA,QAAME,MAAOC,GAAO4kD,aAAazkD,SAC9B,CAACvO,wBAAqB2gE,QAAS3gE,wBAAqB09D,aAAap6C,SAASjZ,EAAO08B,aAC9E,QACA,WAELqB,EAAOh9B,SAGH,MAANg9B,OAAM,EAANA,EAAQoC,aACPh8B,gBAACkH,QAAI,CAACzG,QAAQ,YAAYd,MAAOs+C,EAAgBl+C,SAAA,CAC/CN,eAAA,QAAME,MAAOC,GAAO4kD,aAAazkD,SAAC,eAGjC65B,EAAOoC,iBAIdh8B,gBAACkb,UAAM,CAAC/a,QAAS,EAAGR,MAAO,CAAEwB,KAAM,GAAIpB,SAAA,CACrCN,eAACwqC,WAAO,CAACtqC,MAAOC,GAAOvH,UACvB2H,gBAAA2C,YAAA,CAAA5C,SAAA,EACS,MAAN65B,OAAM,EAANA,EAAQI,gBACPh6B,gBAACkH,QAAI,CAACzG,QAAQ,YAAYd,MAAOs+C,EAAgBl+C,SAAA,CAC/CN,eAAA,QAAME,MAAOC,GAAO4kD,aAAazkD,SAAC,uBAGjC65B,EAAOI,kBAEL,MAANJ,OAAM,EAANA,EAAQE,gBACP95B,gBAACkH,QAAI,CAACzG,QAAQ,YAAYd,MAAOs+C,EAAgBl+C,SAAA,CAC/CN,eAAA,QAAME,MAAOC,GAAO4kD,aAAazkD,SAAC,uBAGjC65B,EAAOE,kBAEL,MAANF,OAAM,EAANA,EAAQ1b,QACPle,gBAACkH,QAAI,CAACzG,QAAQ,YAAYd,MAAOs+C,EAAgBl+C,SAAA,CAC/CN,eAAA,QAAME,MAAOC,GAAO4kD,aAAazkD,SAAC,YAGjC65B,EAAO1b,MAAQ,QAAU,eAEvB,MAAN0b,OAAM,EAANA,EAAQqD,aACPj9B,gBAACkH,QAAI,CAACzG,QAAQ,YAAYd,MAAOs+C,EAAgBl+C,SAAA,CAC/CN,eAAA,QAAME,MAAOC,GAAO4kD,aAAazkD,SAAC,sBAG3B,MAAN65B,OAAM,EAANA,EAAQqD,wB,qkBChEhB,ICfMw1B,GAA6Bx0D,eAAK,CAC7CxI,IAAK,6BACLyI,SAAS,IAGEw0D,GAAmBz0D,eAAK,CACnCxI,IAAK,mBACLyI,QAAS,KAGE2yD,GAAsB5yD,eAAK,CACtCxI,IAAK,sBACLyI,SAAS,ICbE0B,GAASc,WAAWC,OAAO,CACtCO,UAAW,CACTL,QAAS,GACTqgB,SAAU,IACV/X,SAAU,GACVpI,QAAS,OACT2H,WAAY,UACZgB,SAAU,SACV5I,aAAc,EACd0rC,YAAa,sBACbC,aAAc,CACZ7jC,MAAO,EACPwJ,OAAQ,GAEVs6B,aAAc,GAEhB/D,gBAAiB,CACf5nC,QAAS,OACTC,cAAe,MACfC,eAAgB,gBAChByH,WAAY,SACZgf,YAAa,EACbC,aAAc,GAEhB08B,YAAa,CACX/jD,MAAO,sBACP4I,WAAY,MACZC,SAAU,GACVO,SAAU,SACVC,WAAY,SACZC,aAAc,YAGhBvR,QAAS,CACPkJ,gBAAiB,uBAGnBM,YAAa,CACXb,cAAe,SACf0mB,YAAa,EACbC,aAAc,EACd5mB,QAAS,OACToM,IAAK,GAEPm3C,YAAa,CACXvjD,QAAS,OACTC,cAAe,MACf+N,SAAU,SACVrF,SAAU,SACVE,aAAc,YAEhB26C,oBAAqB,CACnBxjD,QAAS,OACTC,cAAe,MACfC,eAAgB,gBAChByI,SAAU,SACVC,WAAY,SACZC,aAAc,YAEhB46C,aAAc,CACZlkD,MAAO,sBACP4I,WAAY,MACZxH,YAAa,GAEf+iD,aAAc,CACZxjD,eAAgB,mB,qkBCvDb,IAAM0xD,GAA0C,SAAHh0D,GAAuC,IAAjCg8B,EAAOh8B,EAAPg8B,QAChD7wB,EAAaC,KAAbD,SAEF+b,EAAejsB,SAAA,GAChBgG,GAAOsB,YACL4I,GAAY,CACf3I,KAAM,EACNsa,SAAU,MACT,GAAF,CACDla,gBAAiB9H,EAAME,OAAOnC,MAC9B8I,MAAO7G,EAAME,OAAOf,cAGhBqlD,EAAerkD,MAAA,GAChBgG,GAAO0kD,aAAW,IACrBhkD,MAAO7G,EAAME,OAAOP,QAGtB,OACE4G,gBAACyC,OAAG,CAAC9C,MAAOkmB,EAAgB9lB,SAAA,CAC1BC,gBAACC,UAAM,CAACkG,MAAM,SAASD,QAAQ,UAAU/F,QAAS,EAAGgb,GAAI,EAAGmxB,GAAI,EAAEvsC,SAAA,CAEhEC,gBAACkH,QAAI,CAACzG,QAAQ,YAAYd,MAAOs+C,EAAgBl+C,SAAA,CAC/CN,eAAA,QAAME,MAAOC,GAAO4kD,aAAazkD,SAAC,gBAG1B,MAAP46B,OAAO,EAAPA,EAASG,gBAEJ,MAAPH,OAAO,EAAPA,EAASC,YACR56B,gBAACkH,QAAI,CAACzG,QAAQ,YAAYd,MAAOs+C,EAAgBl+C,SAAA,CAC/CN,eAAA,QAAME,MAAOC,GAAO4kD,aAAazkD,SAAC,QAG1B,MAAP46B,OAAO,EAAPA,EAASC,gBAKhB56B,gBAACkb,UAAM,CAAC/a,QAAS,EAAGR,MAAO,CAAEwB,KAAM,GAAIpB,SAAA,CACrCN,eAACwqC,WAAO,CAACtqC,MAAOC,GAAOvH,UACvB2H,gBAAA2C,YAAA,CAAA5C,SAAA,CACG46B,EAAQS,eACPp7B,gBAACkH,QAAI,CAACzG,QAAQ,YAAYd,MAAOs+C,EAAgBl+C,SAAA,CAC/CN,eAAA,QAAME,MAAOC,GAAO4kD,aAAazkD,SAAC,QAGjC46B,EAAQS,kBAEL,MAAPT,OAAO,EAAPA,EAASY,kBACRv7B,gBAACkH,QAAI,CAACzG,QAAQ,YAAYd,MAAOs+C,EAAgBl+C,SAAA,CAC/CN,eAAA,QAAME,MAAOC,GAAO4kD,aAAazkD,SAAC,iBAGjC46B,EAAQY,mBAEZZ,EAAQK,OACPh7B,gBAACkH,QAAI,CAACzG,QAAQ,YAAYd,MAAOs+C,EAAgBl+C,SAAA,CAC/CN,eAAA,QAAME,MAAOC,GAAO4kD,aAAazkD,SAAC,UAGjC46B,EAAQK,SAEZL,EAAQO,OACPl7B,gBAACkH,QAAI,CAACzG,QAAQ,YAAYd,MAAOs+C,EAAgBl+C,SAAA,CAC/CN,eAAA,QAAME,MAAOC,GAAO4kD,aAAazkD,SAAC,YAG1B,MAAP46B,OAAO,EAAPA,EAASO,mB,qkBC3DjB,ICjBM03B,GAA2B30D,eAAK,CAC3CxI,IAAK,2BACLyI,SAAS,IAGE20D,GAAgB50D,eAAK,CAChCxI,IAAK,eACLyI,QAAS,KAGEyyD,GAAmB1yD,eAAK,CACnCxI,IAAK,mBACLyI,SAAS,ICbE0B,GAASc,WAAWC,OAAO,CACtCO,UAAW,CACTL,QAAS,GACTqgB,SAAU,IACV/X,SAAU,GACVpI,QAAS,OACT2H,WAAY,UACZgB,SAAU,SACV5I,aAAc,EACd0rC,YAAa,sBACbC,aAAc,CACZ7jC,MAAO,EACPwJ,OAAQ,GAEVs6B,aAAc,GAEhB/D,gBAAiB,CACf5nC,QAAS,OACTC,cAAe,MACfC,eAAgB,gBAChByH,WAAY,SACZgf,YAAa,EACbC,aAAc,GAEhB08B,YAAa,CACX/jD,MAAO,sBACP4I,WAAY,MACZC,SAAU,GACVO,SAAU,SACVC,WAAY,SACZC,aAAc,YAGhBvR,QAAS,CACPkJ,gBAAiB,uBAGnBM,YAAa,CACXb,cAAe,SACf0mB,YAAa,EACbC,aAAc,EACd5mB,QAAS,OACToM,IAAK,GAEPm3C,YAAa,CACXvjD,QAAS,OACTC,cAAe,MACf+N,SAAU,SACVrF,SAAU,SACVE,aAAc,YAEhB26C,oBAAqB,CACnBxjD,QAAS,OACTC,cAAe,MACfC,eAAgB,gBAChByI,SAAU,SACVC,WAAY,SACZC,aAAc,YAEhB46C,aAAc,CACZlkD,MAAO,sBACP4I,WAAY,MACZxH,YAAa,GAEf+iD,aAAc,CACZxjD,eAAgB,mB,qkBCvDb,IAAM6xD,GAAoC,SAAHn0D,GAAiC,IAA3BZ,EAAIY,EAAJZ,KAC1C+L,EAAaC,KAAbD,SAEF+b,EAAejsB,SAAA,GAChBgG,GAAOsB,YACL4I,GAAY,CACf3I,KAAM,EACNsa,SAAU,MACT,GAAF,CACDla,gBAAiB9H,EAAME,OAAOnC,MAC9B8I,MAAO7G,EAAME,OAAOf,cAGhBqlD,EAAerkD,MAAA,GAChBgG,GAAO0kD,aAAW,IACrBhkD,MAAO7G,EAAME,OAAOP,QAGtB,OACE4G,gBAACyC,OAAG,CAAC9C,MAAOkmB,EAAgB9lB,SAAA,CAC1BC,gBAACC,UAAM,CAACkG,MAAM,SAASD,QAAQ,UAAU/F,QAAS,EAAGgb,GAAI,EAAGmxB,GAAI,EAAEvsC,SAAA,EAE3D,MAAJhC,OAAI,EAAJA,EAAMnB,OACLoD,gBAACkH,QAAI,CAACzG,QAAQ,YAAYd,MAAOs+C,EAAgBl+C,SAAA,CAC/CN,eAAA,QAAME,MAAOC,GAAO4kD,aAAazkD,SAAC,UAGjChC,EAAKnB,QAGTmB,EAAKtB,YACJuD,gBAACkH,QAAI,CAACzG,QAAQ,YAAYd,MAAOs+C,EAAgBl+C,SAAA,CAC/CN,eAAA,QAAME,MAAOC,GAAO4kD,aAAazkD,SAAC,uBAGjChC,EAAKtB,iBAIXsB,EAAKi9B,OACJh7B,gBAACkb,UAAM,CAAC/a,QAAS,EAAGR,MAAO,CAAEwB,KAAM,GAAIpB,SAAA,CACrCN,eAACwqC,WAAO,CAACtqC,MAAOC,GAAOvH,UACvB2H,gBAAA2C,YAAA,CAAA5C,SAAA,CACEC,gBAACkH,QAAI,CAACzG,QAAQ,YAAYd,MAAOs+C,EAAgBl+C,SAAA,CAC/CN,eAAA,QAAME,MAAOC,GAAO4kD,aAAazkD,SAAC,UAGjChC,EAAKo+B,QAAO,IAAOp+B,EAAKo+B,QAAO,IAAM,GACrCp+B,EAAKi9B,SAEPj9B,EAAKm9B,OACJl7B,gBAACkH,QAAI,CAACzG,QAAQ,YAAYd,MAAOs+C,EAAgBl+C,SAAA,CAC/CN,eAAA,QAAME,MAAOC,GAAO4kD,aAAazkD,SAAC,YAG7B,MAAJhC,OAAI,EAAJA,EAAMm9B,SAGVn9B,EAAKg1D,OACJ/yD,gBAACkH,QAAI,CAACzG,QAAQ,YAAYd,MAAOs+C,EAAgBl+C,SAAA,CAC/CN,eAAA,QAAME,MAAOC,GAAO4kD,aAAazkD,SAAC,YAG7B,MAAJhC,OAAI,EAAJA,EAAMg1D,mBCzEVC,GAAuB/0D,eAAK,CACvCxI,IAAK,uBACLyI,QAAS,CACP+0D,qBAAsB,EACtBtB,MAAO,GACPC,SAAU,M,kBCEDsB,GAA4B,WACvC,IAAM/9D,EAAOoG,yBAAeuyD,IACpB/rD,EAAmBC,KAAnBD,eACRG,EAAkCC,oBAAS,GAAMgD,EAAAhK,IAAA+G,EAAA,GAA1CkN,EAAUjK,EAAA,GAAEkK,EAAWlK,EAAA,GAC9BpK,EAAsBC,yBAAeg4D,IAAqB93D,EAAAC,IAAAJ,EAAA,GAAnDtF,EAAGyF,EAAA,GAAEi4D,EAAMj4D,EAAA,GACV4O,EAAaC,KAAbD,SAEFzH,EAAcN,IAmBpB,OACEtC,eAACgD,OAAG,CAAC9C,MAZDmK,EACK,CACLlJ,OAAQ,QAGH,CACLe,WAAY,QAMU5B,SACxBN,eAACkQ,WAAI,CACH0hD,aAAc,CACZzoD,MAAO,IACPnH,UAAW,GAEbqM,QAASsB,EACTQ,UAAW,kBAAMP,GAAY,IAC7BQ,eAAe,SACfC,OACErQ,eAACuiD,OAAG,CACF1hD,MAAO+B,EAAYoB,UACnBhD,QAAQ,WACRiD,MAAOjO,EAAIk8D,MAAK,WAAcl8D,EAAIw9D,qBAAoB,YAAYx9D,EAAIk8D,MAAK,IAAIl8D,EAAIm8D,SAAa,4BAChGpxD,QAAS,kBAAM6O,GAAY,IAC3BpI,KAAK,SAERlH,SAEA5K,EAAKV,KAAI,SAAC2+D,EAAYrwC,GAAK,OAC1BtjB,eAACkQ,WAAKS,KAAI,CAER5P,QAAS,kBAxCS,SAAC4yD,GACIA,EAAvB32D,WAAR,IAAuBhH,EAAG+tB,KAAK4vC,EAAU3vC,IACzC0vC,EAAO19D,GAsCgBu7D,CAAoBoC,IACnC/yD,MAAK,WAAa+yD,EAAWH,qBAAoB,YAAYG,EAAWzB,MAAK,KAAKyB,EAAWxB,UAFxF7uC,W,+NCtDV,IAAMnjB,GAASc,WAAWC,OAAO,CACtCO,UAAW,CACTC,KAAM,GAER2d,Q,mWAAOllB,CAAA,GACF0tC,GAAaC,eCOdnB,GAAMC,qBAyBCgtB,GAAgC,SAAH10D,GAqBnC,IApBLopB,EAAWppB,EAAXopB,YACAurC,EAAW30D,EAAX20D,YACAC,EAAc50D,EAAd40D,eACAC,EAAe70D,EAAf60D,gBACAC,EAAgB90D,EAAhB80D,iBACAC,EAAc/0D,EAAd+0D,eACAC,EAAiBh1D,EAAjBg1D,kBACAC,EAAaj1D,EAAbi1D,cACAC,EAAcl1D,EAAdk1D,eACAC,EAAYn1D,EAAZm1D,aACAC,EAAep1D,EAAfo1D,gBACAC,EAAgBr1D,EAAhBq1D,iBACAC,EAAct1D,EAAds1D,eACAC,EAAav1D,EAAbu1D,cACAC,EAAmBx1D,EAAnBw1D,oBACAC,EAAoBz1D,EAApBy1D,qBACAC,EAAkB11D,EAAlB01D,mBACAC,EAAiB31D,EAAjB21D,kBACAC,EAAmB51D,EAAnB41D,oBACAC,EAAoB71D,EAApB61D,qBAEM/6D,EAAQ0F,KACN2K,EAAaC,KAAbD,SACA/H,EAAmBC,KAAnBD,eACR+5C,EAA8BhhD,IAAtBuB,EAASy/C,EAATz/C,UAAWV,EAAMmgD,EAANngD,OACnBZ,EAAkCC,yBAAe6yD,IAAe3yD,EAAAC,IAAAJ,EAAA,GAAzD05D,EAASv5D,EAAA,GAAEw5D,EAAYx5D,EAAA,GAExBy5D,EAAoBt1D,4BAAkByuD,IACtC8G,EAAoBr5D,yBAAey3D,IACnC6B,EAAsBx1D,4BAAkB0uD,IAExC1rD,EAAcN,IACdlG,EAASQ,IACTiR,EAASC,KAETmmC,EAAe,SAAC79C,GACpByX,EAAOW,KAAKpY,EAAM+Q,QAAS,CAAEnG,QAAS,UAElC5K,aAAiB4hB,IACnB9b,KAmCJ,OA/BAqvB,0BACEpvB,uBAAY,WAER,CAACpK,wBAAqB09D,YAAa19D,wBAAqB0gE,YACrDp9C,SAASjZ,EAAO08B,eAClBk8B,EAAU/9D,OACX49D,EACGQ,QAAQ,CAAEr4D,WAAYZ,EAAOY,aAC7BgK,KAAKiuD,GACL/tD,MAAM+sC,GAEL,CAACliD,wBAAqB2gE,SAASr9C,SAASjZ,EAAO08B,cACjD27B,EACGY,QAAQ,CAAEr4D,WAAYZ,EAAOY,WAAYgkB,QAAS5kB,EAAO4kB,UACzDha,KAAKkuD,GACLhuD,MAAM+sC,KAEZ,KAGL/uC,qBAAU,WACJ,CAACnT,wBAAqB2gE,SAASr9C,SAASjZ,EAAO08B,cACjDq8B,EAAkBjD,OAElBwC,EACGY,cAAcH,GACdnuD,KAAKouD,GACLluD,MAAM+sC,KAEV,CAACkhB,EAAkBjD,QAGpB3xD,gBAAC2mC,gBAAY,CAAChnC,MAAOC,GAAOsB,UAAUnB,SAAA,CACpCN,eAAC8zC,GAAW,CACVxrB,YAAaA,IAEQ,MAAtBlsB,EAAO08B,YACJv4B,gBAAComC,GAAIS,UAAS,CACdC,cAAe,CACbC,gBAAiB,CAAE3gB,kBAAmB,IACtC4gB,iBAAkB,CAAE1mC,MAAO7G,EAAME,OAAOrB,YACxC2uC,qBAAsB,CAAE1lC,gBAAiB9H,EAAME,OAAOnC,OACtD0vC,YAAa,CAAE3lC,gBAAiBc,EAAYoB,YAC5C1D,SAAA,CAEFN,eAAC2mC,GAAIe,OAAM,CACTztC,KAAMoQ,EAAW,UAAY,oBAC7Bs9B,UAAW,kBnB3GiD,SAAHzoC,GAO9D,IANLopB,EAAWppB,EAAXopB,YACAurC,EAAW30D,EAAX20D,YACAM,EAAaj1D,EAAbi1D,cACAL,EAAc50D,EAAd40D,eACAC,EAAe70D,EAAf60D,gBACAO,EAAep1D,EAAfo1D,gBAEMzmD,EAASC,KACPlR,EAAcvB,IAAduB,UACA0F,EAAmBC,KAAnBD,eACA+H,EAAaC,KAAbD,SACF2S,EAAc5E,KAEpB9c,EAAgCC,yBAAe4zD,IAA8B1zD,EAAAC,IAAAJ,EAAA,GAAtEwT,EAASrT,EAAA,GAAEsT,EAAUtT,EAAA,GAC5BqJ,EAAsDvJ,yBAAeo3D,IAAyB5tD,EAAArJ,IAAAoJ,EAAA,GAAvFywD,EAAmBxwD,EAAA,GAAEywD,EAAsBzwD,EAAA,GAClDkB,EAAgC1K,yBAAeyzD,IAAuB7oD,EAAAzK,IAAAuK,EAAA,GAA/DwvD,EAAQtvD,EAAA,GAAEuvD,EAAWvvD,EAAA,GACtB6H,EAAUpO,4BAAkBkvD,IAClC9uC,EAA8BzkB,yBAAegzD,IAA2BruC,EAAAxkB,IAAAskB,EAAA,GAAjEsyB,EAAOpyB,EAAA,GAAE8zB,EAAU9zB,EAAA,GAClBmvC,EAAwBvzD,yBAAe6yD,IAAvCU,oBACFgD,EAAmBv2D,yBAAewyD,IAClCgE,EAAkBx2D,yBAAe+1D,IACjC8D,EAAkB75D,yBAAe+yD,IAEjCzyD,EAASQ,IACTgG,EAAcN,IAEpB4C,qBAAU,WACR,IAAM0vC,EAActsB,EAAYnxB,OAAOmxB,EAAY6rB,QAAQ3/C,kBAAetB,GAAGuB,cAAcyX,WAAY,cACjG2oC,EAAYvsB,EAAYnxB,OAAOmxB,EAAY/wB,QAAS,cAC1Dy8C,EAAW,CAAEY,cAAaC,gBACzB,IAEHtpB,0BACEpvB,uBAAY,WACS4G,oBAAA,GAChBhR,wBAAqBwgE,OAASlD,GAA+C,IAAxBA,GACrDt9D,wBAAqBygE,KAA8B,IAAvBp2D,EAAO08B,aACnC/mC,wBAAqB09D,cAAiB6C,EAAgBt1D,YACtDjL,wBAAqB0gE,aAAgBH,EAAgBt1D,YACrDjL,wBAAqB2gE,UAAaL,EAAiBr1B,iBACpD5gC,EAAO08B,eACU28B,GAAYG,MAEjC,CACEx5D,EAAOg7B,QACPi4B,EACAiD,EAAgBt1D,WAChBs1D,EAAgBL,aAChBI,EAAiBr1B,gBACjBsV,EAAQsC,YACR+gB,EAAgBpG,UAChBkG,KAIJ,IAAMxhB,EAAe,SAAC79C,GACpB4mB,EAAY5mB,GACZs/D,GAAY,IA0CRG,EAAsB,WAC1B,IAAMC,EAAqBxtC,EAAYnxB,OAAOmxB,EAAY6rB,QAAQ3/C,kBAAetB,GAAGuB,cAAcyX,WAAY,cACxG6pD,EAAmBztC,EAAYnxB,OAAOmxB,EAAY/wB,QAAS,cAE3Do1B,EAA+B,CACnCyK,QAASh7B,EAAOg7B,QAChBD,QAASm7B,EAAgBt1D,WACzBg5D,QAAS1jB,EAAQsC,aAAuC,KAAxBtC,EAAQsC,YAAqBtC,EAAQsC,YAAckhB,EACnFjhB,UAAWvC,EAAQuC,WAAmC,KAAtBvC,EAAQuC,UAAmBvC,EAAQuC,UAAYkhB,EAC/EE,OAAQN,EAAgBpG,UAAYoG,EAAgBpG,UAAY/6D,kBAAetB,GAAGwB,oBAClFy/B,QAASm+B,EAAgBL,cAG3B6B,EACGoC,UAAUvpC,GACV3lB,KAAKwuD,GACLtuD,MAAM+sC,GACN7sC,SAAQ,kBAAM2H,GAAW,OAmBxB6mD,EAAsB7yD,oBAAA,GACzBhR,wBAAqBygE,MAxDG,WACzB,IAAM2D,EAAc7tC,EAAYnxB,OAAOmxB,EAAY6rB,QAAQ3/C,kBAAetB,GAAGuB,cAAcyX,WAAY,cAEjGygB,EAA8B,CAClC3L,QAAS5kB,EAAO4kB,QAAQ9U,WACxBkqD,YAAah6D,EAAOo3D,qBAAqBtnD,WACzClP,WAAYZ,EAAOY,WACnB43C,YAAatC,EAAQsC,aAAuC,KAAxBtC,EAAQsC,YAAqBtC,EAAQsC,YAAcuhB,GAGzFpnD,GAAW,GAEXolD,EACG+B,UAAUvpC,GACV3lB,KAAKwuD,GACLtuD,MAAM+sC,GACN7sC,SAAQ,kBAAM2H,GAAW,SAyC3Bhd,wBAAqB09D,YAAcoG,GACnC9jE,wBAAqB0gE,WAAaoD,GAClC9jE,wBAAqBwgE,QA/EK,WAC3B,IAAMuD,EAAqBxtC,EAAYnxB,OAAOmxB,EAAY6rB,QAAQ3/C,kBAAetB,GAAGuB,cAAcyX,WAAY,cACxG6pD,EAAmBztC,EAAYnxB,OAAOmxB,EAAY/wB,QAAS,cAE3Do1B,EAAgC,CACpC0N,cAAeg1B,EACfmE,qBAAsBp3D,EAAOo3D,qBAC7B6C,SAAU/jB,EAAQsC,aAAuC,KAAxBtC,EAAQsC,YAAqBtC,EAAQsC,YAAckhB,EACpFQ,MAAOhkB,EAAQuC,WAAmC,KAAtBvC,EAAQuC,UAAmBvC,EAAQuC,UAAYkhB,GAG7EhnD,GAAW,GAEXglD,EACGmC,UAAUvpC,GACV3lB,KAAKwuD,GACLtuD,MAAM+sC,GACN7sC,SAAQ,kBAAM2H,GAAW,SA+D3Bhd,wBAAqB2gE,SArBK,WAC3B,IAAMyD,EAAc7tC,EAAYnxB,OAAOmxB,EAAY6rB,QAAQ3/C,kBAAetB,GAAGuB,cAAcyX,WAAY,cAEjGygB,EAAgC,CACpCsQ,yBAA0BqV,EAAQsC,aAAuC,KAAxBtC,EAAQsC,YAAqBtC,EAAQsC,YAAcuhB,EACpGn5B,gBAAiBq1B,EAAiBr1B,gBAClCD,UAAWs1B,EAAiBt1B,WAG9Bu3B,EACG4B,UAAUvpC,GACV3lB,KAAKwuD,GACLtuD,MAAM+sC,GACN7sC,SAAQ,kBAAM2H,GAAW,SAS5B3S,EAAO08B,aA4CT,OACEv4B,gBAACyC,OAAG,CAAC9C,MAAK/F,GAAA,GAAO0tC,GAAaC,aAAcxnC,SAAA,CAC1CN,eAACwoC,GAAU,CACTplC,KAAMiH,EAAW,UAAY,oBAC7Bo+B,KAAMzoC,eAACoM,WAAsB,CAACnS,KAAK,sBAAsBuN,KAAM,GAAI3G,MAAO7G,EAAME,OAAOb,OACvF++C,YArBe,WACAr1C,oBAAA,GAChBhR,wBAAqBwgE,OAAiC,IAAxBlD,GAC9Bt9D,wBAAqBygE,KAA8B,IAAvBp2D,EAAO08B,aACnC/mC,wBAAqB09D,eAAiB6C,EAAgBt1D,YAA6C,IAA/Bs1D,EAAgBt1D,aACpFjL,wBAAqB0gE,cAAgBH,EAAgBt1D,YAA6C,IAA/Bs1D,EAAgBt1D,aACnFjL,wBAAqB2gE,WAAaL,EAAiBr1B,iBAAwD,IAArCq1B,EAAiBr1B,kBACxF5gC,EAAO08B,aAGP9qB,GAAQ,GAERH,EAAOW,KAAK,gDAAiD,CAAExN,QAAS,aAYxET,gBAACgG,SAAK,CACJC,UAAW6D,EAAW,iBAAmB,MACzCksD,GAAI1jD,OAAO2jD,YAAc,KAAO,GAAKnsD,EAAW,OAAS,EACzD1C,GAAIkL,OAAO2jD,YAAc,KAAO,GAAKnsD,EAAW,OAAS,EACzD5D,QAAS6rC,EAAQsC,YAAc,UAAY,MAC3CluC,MAAM,SACNhG,QAAS,EAAEJ,SAAA,CAEVgyC,EAAQsC,aAAe50C,eAACoyC,GAAgB,CAAC9pB,YAAaA,IACtD,CAACv2B,wBAAqBwgE,QAAQl9C,SAASjZ,EAAO08B,cAAgB94B,eAAC2wD,GAAwB,IACvF,CAAC5+D,wBAAqB09D,YAAa19D,wBAAqB0gE,YAAYp9C,SAASjZ,EAAO08B,cAAgB94B,eAAC8xD,GAAmB,IACxH,CAAC//D,wBAAqB2gE,SAASr9C,SAASjZ,EAAO08B,cAAgB94B,eAACyzD,GAAe,OAGlFzzD,eAACiD,cAAU,CAAC/C,MAAO,CAAEkB,QAAS,QAASd,SACrCN,eAACgnB,GAAQ,CACPlY,UAAWA,EACXmY,SAAUsuC,EAAoBt+D,OAC9BkwB,YAAa,mBACbD,UAAU,4CAAqC5mB,SAE3B,MAAnBi1D,OAAmB,EAAnBA,EAAqBvgE,KAAI,SAACuW,EAAO+X,GAAK,OACrCtjB,eAAC8yD,GAAmB,CAElBvnD,MAAOA,EACP+c,YAAaA,GAAY,cAFNhF,YAQvBiyC,EAAoBt+D,QACtB+I,eAACP,GAAc,CAAAa,SACbN,eAACuiD,OAAG,CACFxhD,QApFU,WAClB,IAYM01D,EAAc,CAClB39B,YAAa18B,EAAO08B,YACpB5W,KAAM9lB,EAAO08B,cAAgB/mC,wBAAqBygE,KAAO+C,EAbfA,EAAoBvgE,KAAI,SAAAuW,GAChE,MAAO,CACL2Z,OAAQ3Z,EAAM2Z,OACdyU,WAAYpuB,EAAMouB,WAClBttB,UAAWd,EAAMc,UACjB4lD,aAAc71D,EAAOo3D,0BAW3BK,EAAY6C,MAAMD,GACfzvD,MAAK,SAAAwkB,GAAG,OAAIA,KACZtkB,OAAM,SAAA9Q,GACLyX,EAAOW,KAAKpY,EAAM+Q,QAAS,CAAEnG,QAAS,UACtC6U,QAAQzf,MAAM,CAAEugE,WAAYvgE,QA+DxBqyC,KAAM,SAAA7hC,GAAK,OAAI5G,eAACoM,WAAsBjS,GAAA,CAACF,KAAK,mBAAsB2M,KAAW/F,MAAO+B,EAAYoB,iBmB1H/E4yD,CAAoB,CACnCtuC,cACAurC,cACAM,gBACAL,iBACAC,kBACAO,kBACAI,2BAKF,CACE3iE,wBAAqBwgE,OACrBxgE,wBAAqBygE,KACrBzgE,wBAAqB2gE,QACrB3gE,wBAAqB09D,YACrB19D,wBAAqB0gE,YAEpBp9C,SAASjZ,EAAO08B,cACnB94B,eAAC2mC,GAAIe,OAAM,CACTztC,KAAM,CAAClI,wBAAqB2gE,SAASr9C,SAASjZ,EAAO08B,aACjD,QACA,UACJ6O,UAAW,kBjBtI4B,SAAHzoC,GAM3C,IALL80D,EAAgB90D,EAAhB80D,iBACAI,EAAcl1D,EAAdk1D,eACAG,EAAgBr1D,EAAhBq1D,iBACAI,EAAoBz1D,EAApBy1D,qBACAG,EAAmB51D,EAAnB41D,oBAEQl4D,EAAcvB,IAAduB,UACAyN,EAAaC,KAAbD,SACF2S,EAAc5E,KACdhc,EAASQ,IAEftB,EAAgCC,yBAAey1D,IAAmBv1D,EAAAC,IAAAJ,EAAA,GAA3Dm6D,EAAQh6D,EAAA,GAAEi6D,EAAWj6D,EAAA,GAC5BqJ,EAAgCvJ,yBAAeq3D,IAA2B7tD,EAAArJ,IAAAoJ,EAAA,GAAnEgK,EAAS/J,EAAA,GAAEgK,EAAUhK,EAAA,GAC5BkB,EAAoC1K,yBAAes3D,IAAgB1sD,EAAAzK,IAAAuK,EAAA,GAA5D4wD,EAAU1wD,EAAA,GAAE2wD,EAAa3wD,EAAA,GACxBkpD,EAAwBvzD,yBAAe6yD,IAAvCU,oBACFiD,EAAkBx2D,yBAAe+1D,IACjCQ,EAAmBv2D,yBAAewyD,IAExC/iC,0BACEpvB,uBAAY,WACS4G,oBAAA,GAChBhR,wBAAqBwgE,OAAiC,IAAxBlD,GAA6BA,GAC3Dt9D,wBAAqBygE,KAAOp2D,EAAO08B,aAAsC,IAAvB18B,EAAO08B,aACzD/mC,wBAAqB09D,cAAiB6C,EAAgBt1D,YACtDjL,wBAAqB0gE,aAAgBH,EAAgBt1D,YACrDjL,wBAAqB2gE,UAAaL,EAAiBr1B,iBACpD5gC,EAAO08B,eAEU28B,GAAYsB,MAEjC,CACE36D,EAAOg7B,QACPi4B,EACAiD,EAAgBt1D,WAChBs1D,EAAgBL,aAChBI,EAAiBr1B,gBACjBy4B,KAIJ,IAAMxhB,EAAe,SAAC79C,GACpB4mB,EAAY5mB,GACZs/D,GAAY,IAiFRqB,EAAkBh0D,oBAAA,GACrBhR,wBAAqBygE,MA/EQ,WAC9B,IAAM7lC,EAA+B,CACnC3L,QAAS5kB,EAAO4kB,QAChBo1C,YAAah6D,EAAOo3D,qBACpBx2D,WAAYZ,EAAOY,YAGrB+R,GAAW,GAEXqlD,EACG4C,WAAWrqC,GACX3lB,KAAK8vD,GACL5vD,MAAM+sC,GACN7sC,SAAQ,kBAAM2H,GAAW,SAmE3Bhd,wBAAqBwgE,QAhEU,WAChC,IAAM5lC,EAAiC,CACrC0N,cAAeg1B,EACfmE,qBAAsBp3D,EAAOo3D,sBAG/BzkD,GAAW,GAEXilD,EACGgD,WAAWrqC,GACX3lB,KAAK8vD,GACL5vD,MAAM+sC,GACN7sC,SAAQ,kBAAM2H,GAAW,SAqD3Bhd,wBAAqB2gE,SAlDU,WAChC,IAAMuE,EAAgD,CACpDj6B,gBAAiBq1B,EAAiBr1B,gBAClCD,UAAWs1B,EAAiBt1B,WAG9BhuB,GAAW,GAEXwlD,EACG2C,SAASD,GACTjwD,KAAK8vD,GACL5vD,MAAM+sC,GACN7sC,SAAQ,kBAAM2H,GAAW,SAuC3Bhd,wBAAqB09D,aApCc,WACpC,IAAM9iC,EAAqC,CACzCulC,MAAOI,EAAgBJ,MACvBC,SAAUG,EAAgBH,SAC1BnxC,QAASsxC,EAAgBL,cAG3BljD,GAAW,GAEX4lD,EACGuC,SAASvqC,GACT3lB,KAAK8vD,GACL5vD,MAAM+sC,GACN7sC,SAAQ,kBAAM2H,GAAW,SAwB3Bhd,wBAAqB0gE,YArBa,WACnC,IAAM9lC,EAAmC,CACvCslC,aAAcK,EAAgBL,aAC9BkF,UAAW7E,EAAgBt0D,WAC3BgjB,QAASsxC,EAAgBL,cAG3BljD,GAAW,GAEX+lD,EACGsC,UAAUzqC,GACV3lB,KAAK8vD,GACL5vD,MAAM+sC,GACN7sC,SAAQ,kBAAM2H,GAAW,SAS5B3S,EAAO08B,aAET,OACEv4B,gBAACyC,OAAG,CAAC9C,MAAK/F,GAAA,GAAO0tC,GAAaC,aAAcxnC,SAAA,CAC1CN,eAACwoC,GAAU,CACTplC,KACE,CAACrR,wBAAqB2gE,SAASr9C,SAASjZ,EAAO08B,aAC3C,QACA,UAEN2P,KAAMzoC,eAACoM,WAAsB,CAACnS,KAAK,sBAAsBuN,KAAM,GAAI3G,MAAO7G,EAAME,OAAOb,SAGzFkH,gBAACgG,SAAK,CACJC,UAAW6D,EAAW,iBAAmB,MACzCksD,GAAI1jD,OAAO2jD,YAAc,KAAO,GAAKnsD,EAAW,OAAS,EACzD1C,GAAIkL,OAAO2jD,YAAc,KAAO,GAAKnsD,EAAW,OAAS,EACzD5D,QAAQ,UACRC,MAAM,SACNhG,QAAS,EAAEJ,SAAA,CAEV,CAACvO,wBAAqBwgE,QAAQl9C,SAASjZ,EAAO08B,cAAgB94B,eAAC2wD,GAAwB,IACvF,CAAC5+D,wBAAqB09D,YAAa19D,wBAAqB0gE,YAAYp9C,SAASjZ,EAAO08B,cAAgB94B,eAAC8xD,GAAmB,IACxH,CAAC//D,wBAAqB2gE,SAASr9C,SAASjZ,EAAO08B,cAAgB94B,eAACyzD,GAAe,OAGlFzzD,eAACiD,WAAU,CAAC/C,MAAO,CAAEkB,QAAS,QAASd,SACrCN,eAACgnB,GAAQ,CACPC,SAAU4vC,EAAW5/D,OACrB6X,UAAWA,EACXqY,YACE,CAACp1B,wBAAqB2gE,SAASr9C,SAASjZ,EAAO08B,aAC3C,iBACA,mBACLx4B,SAEU,MAAVu2D,OAAU,EAAVA,EAAY7hE,KAAI,SAACmlC,EAAQ7W,GAAK,OAC7BtjB,eAAC+yD,GAAU,CAET54B,OAAQA,GAAO,cADI7W,aiBlCF+zC,CAAW,CAC1BrD,mBACAI,iBACAG,mBACAI,uBACAG,2BAKJ,CACE/iE,wBAAqBwgE,OACrBxgE,wBAAqBygE,KACrBzgE,wBAAqB2gE,QACrB3gE,wBAAqB09D,aAEpBp6C,SAASjZ,EAAO08B,cACnB94B,eAAC2mC,GAAIe,OAAM,CACTztC,KAAM,WACN0tC,UAAW,kBP1Jc,SAAHzoC,GAKT,IAJzBm1D,EAAYn1D,EAAZm1D,aACAJ,EAAc/0D,EAAd+0D,eACAO,EAAct1D,EAAds1D,eACAI,EAAkB11D,EAAlB01D,mBAEQh4D,EAAcvB,IAAduB,UACFogB,EAAc5E,KACZ/N,EAAaC,KAAbD,SACFjO,EAASQ,IAEftB,EAAgCC,yBAAe21D,IAAiBz1D,EAAAC,IAAAJ,EAAA,GAAzDm6D,EAAQh6D,EAAA,GAAEi6D,EAAWj6D,EAAA,GACpB4zD,EAAwBvzD,yBAAe6yD,IAAvCU,oBACFiD,EAAkBx2D,yBAAe+1D,IACvC/sD,EAAgCvJ,yBAAe43D,IAAyBpuD,EAAArJ,IAAAoJ,EAAA,GAAjEgK,EAAS/J,EAAA,GAAEgK,EAAUhK,EAAA,GAC5BkB,EAAgC1K,yBAAe63D,IAAcjtD,EAAAzK,IAAAuK,EAAA,GAAtDqxD,EAAQnxD,EAAA,GAAEoxD,EAAWpxD,EAAA,GACtBksD,EAAmBv2D,yBAAewyD,IAExC/iC,0BACEpvB,uBAAY,WACS4G,oBAAA,GAChBhR,wBAAqBwgE,OAASlD,GAA+C,IAAxBA,GACrDt9D,wBAAqBygE,KAA8B,IAAvBp2D,EAAO08B,aACnC/mC,wBAAqB09D,cAAiB6C,EAAgBt1D,YACtDjL,wBAAqB0gE,aAAgBH,EAAgBt1D,YACrDjL,wBAAqB2gE,UAAaL,EAAiBr1B,iBACpD5gC,EAAO08B,eAEU28B,GAAY+B,MAC9B,CACDp7D,EAAOY,WACPqyD,EACAiD,EACAA,EAAgBt1D,WAChBq1D,EAAiBr1B,mBAIrB,IAAMiX,EAAe,SAAC79C,GACpB4mB,EAAY5mB,GACZs/D,GAAY,IAgER8B,EAAez0D,oBAAA,GAClBhR,wBAAqBygE,MA9DM,WAC5B,IAAM7lC,EAA6B,CACjC3L,QAAS5kB,EAAO4kB,QAChBo1C,YAAah6D,EAAOo3D,qBACpBx2D,WAAYZ,EAAOY,YAGrB+R,GAAW,GAEXslD,EACGoD,SAAS9qC,GACT3lB,KAAKuwD,GACLrwD,MAAM+sC,GACN7sC,SAAQ,kBAAM2H,GAAW,SAkD3Bhd,wBAAqBwgE,QA/CQ,WAC9B,IAAM5lC,EAA+B,CACnC0N,cAAeg1B,EACfmE,qBAAsBp3D,EAAOo3D,sBAG/BzkD,GAAW,GAEXklD,EACGwD,SAAS9qC,GACT3lB,KAAKuwD,GACLrwD,MAAM+sC,GACN7sC,SAAQ,kBAAM2H,GAAW,SAoC3Bhd,wBAAqB09D,aAlBY,WAClC,IAAM9iC,EAAmC,CACvC+qC,WAAYpF,EAAgBt0D,WAC5Bi0D,aAAcK,EAAgBL,cAGhCljD,GAAW,GAEX6lD,EACG6C,SAAS9qC,GACT3lB,KAAKuwD,GACLrwD,MAAM+sC,GACN7sC,SAAQ,kBAAM2H,GAAW,SAO3Bhd,wBAAqB0gE,YAAa,eAClC1gE,wBAAqB2gE,SAnCQ,WAC9B,IAAM/lC,EAA+B,CACnCoQ,UAAWs1B,EAAiBt1B,UAC5BC,gBAAiBq1B,EAAiBr1B,iBAGpCjuB,GAAW,GAEXylD,EACGiD,SAAS9qC,GACT3lB,KAAKuwD,GACLrwD,MAAM+sC,GACN7sC,SAAQ,kBAAM2H,GAAW,SAwB5B3S,EAAO08B,aAET,OACEv4B,gBAACyC,OAAG,CAAC9C,MAAK/F,GAAA,GAAO0tC,GAAaC,aAAcxnC,SAAA,CAC1CN,eAACwoC,GAAU,CACTplC,KAAK,WACLqlC,KAAMzoC,eAACoM,WAAsB,CAACnS,KAAK,sBAAsBuN,KAAM,GAAI3G,MAAO7G,EAAME,OAAOb,SAGzFkH,gBAACgG,SAAK,CACJC,UAAW6D,EAAW,iBAAmB,MACzCksD,GAAI1jD,OAAO2jD,YAAc,KAAO,GAAKnsD,EAAW,OAAS,EACzD1C,GAAIkL,OAAO2jD,YAAc,KAAO,GAAKnsD,EAAW,OAAS,EACzD5D,QAAQ,UACRC,MAAM,SACNhG,QAAS,EAAEJ,SAAA,CAEV,CAACvO,wBAAqBwgE,QAAQl9C,SAASjZ,EAAO08B,cAAgB94B,eAAC2wD,GAAwB,IACvF,CAAC5+D,wBAAqB09D,aAAap6C,SAASjZ,EAAO08B,cAAgB94B,eAAC8xD,GAAmB,IACvF,CAAC//D,wBAAqB2gE,SAASr9C,SAASjZ,EAAO08B,cAAgB94B,eAACyzD,GAAe,OAGlFzzD,eAACiD,WAAU,CAAC/C,MAAO,CAAEkB,QAAS,QAASd,SACrCN,eAACgnB,GAAQ,CACPC,SAAUqwC,EAASrgE,OACnB6X,UAAWA,EACXqY,YAAY,yCAAkC7mB,SAErC,MAARg3D,OAAQ,EAARA,EAAUtiE,KAAI,SAACsJ,EAAMglB,GAAK,OACzBtjB,eAACqzD,GAAQ,CAEP/0D,KAAMA,GAAK,YADMglB,aOcAq0C,CAAc,CAC7B1D,iBACAI,eACAG,iBACAI,0BAKJ,CACE7iE,wBAAqBwgE,OACrBxgE,wBAAqB0gE,YAEpBp9C,SAASjZ,EAAO08B,cACnB94B,eAAC2mC,GAAIe,OAAM,CACTztC,KAAM,WACN0tC,UAAW,kBX5KwC,SAAHzoC,GAGhC,IAF5Bg1D,EAAiBh1D,EAAjBg1D,kBACAa,EAAoB71D,EAApB61D,qBAEQn4D,EAAcvB,IAAduB,UACFogB,EAAc5E,KACZ/N,EAAaC,KAAbD,SACFjO,EAASQ,IAEftB,EAAgCC,yBAAe61D,IAAoB31D,EAAAC,IAAAJ,EAAA,GAA5Dm6D,EAAQh6D,EAAA,GAAEi6D,EAAWj6D,EAAA,GACtB62D,EAAkBx2D,yBAAe+1D,IAC/BxC,EAAwBvzD,yBAAe6yD,IAAvCU,oBACRvqD,EAAsCvJ,yBAAe03D,IAAiBluD,EAAArJ,IAAAoJ,EAAA,GAA/D8yD,EAAW7yD,EAAA,GAAE8yD,EAAc9yD,EAAA,GAClCkB,EAAgC1K,yBAAey3D,IAA2B7sD,EAAAzK,IAAAuK,EAAA,GAAnE6I,EAAS3I,EAAA,GAAE4I,EAAU5I,EAAA,GAE5BolB,0BACEpvB,uBAAY,WACS4G,oBAAA,GAChBhR,wBAAqBwgE,OAASlD,GAA+C,IAAxBA,GACrDt9D,wBAAqBygE,MAAO,GAC5BzgE,wBAAqB09D,cAAiB6C,EAAgBt1D,YACtDjL,wBAAqB0gE,aAAgBH,EAAgBt1D,YACrDjL,wBAAqB2gE,SAAU,GAChCt2D,EAAO08B,eAEU28B,GAAYqC,MAC9B,CAAC17D,EAAOg7B,QAASi4B,EAAqBiD,EAAgBt1D,WAAYs1D,EAAgBL,gBAGvF,IAAMhe,EAAe,SAAC79C,GACpB4mB,EAAY5mB,GACZs/D,GAAY,IAkCRoC,EAAmB/0D,oBAAA,GACtBhR,wBAAqBygE,MAAO,eAC5BzgE,wBAAqBwgE,QAjCW,WACjC,IAAM5lC,EAAkC,CACtC0N,cAAeg1B,EACfmE,qBAAsBp3D,EAAOo3D,sBAG/BzkD,GAAW,GAEXmlD,EACG6D,YAAYprC,GACZ3lB,KAAK6wD,GACL3wD,MAAM+sC,GACN7sC,SAAQ,kBAAM2H,GAAW,SAsB3Bhd,wBAAqB09D,aAAc,eACnC19D,wBAAqB0gE,YApBc,WACpC,IAAM9lC,EAAqC,CACzCslC,aAAcK,EAAgBL,aAC9BkF,UAAW7E,EAAgBt0D,WAC3BgjB,QAASsxC,EAAgBL,cAG3BljD,GAAW,GAEXgmD,EACGgD,YAAYprC,GACZ3lB,KAAK6wD,GACL3wD,MAAM+sC,GACN7sC,SAAQ,kBAAM2H,GAAW,SAQ3Bhd,wBAAqB2gE,SAAU,eAChCt2D,EAAO08B,aAET,OACEv4B,gBAACyC,OAAG,CAAC9C,MAAK/F,GAAA,GAAO0tC,GAAaC,aAAcxnC,SAAA,CAC1CN,eAACwoC,GAAU,CACTplC,KAAK,WACLqlC,KAAMzoC,eAACoM,WAAsB,CAACnS,KAAK,sBAAsBuN,KAAM,GAAI3G,MAAO7G,EAAME,OAAOb,SAEzFkH,gBAACgG,SAAK,CACJC,UAAW6D,EAAW,iBAAmB,MACzCksD,GAAI1jD,OAAO2jD,YAAc,KAAO,GAAKnsD,EAAW,OAAS,EACzD1C,GAAIkL,OAAO2jD,YAAc,KAAO,GAAKnsD,EAAW,OAAS,EACzD5D,QAAQ,UACRC,MAAM,SACNhG,QAAS,EAAEJ,SAAA,CAEV,CAACvO,wBAAqBwgE,QAAQl9C,SAASjZ,EAAO08B,cAAgB94B,eAAC2wD,GAAwB,IACvF,CAAC5+D,wBAAqB0gE,YAAYp9C,SAASjZ,EAAO08B,cAAgB94B,eAAC8xD,GAAmB,OAEzF9xD,eAACiD,WAAU,CAAC/C,MAAO,CAAEkB,QAAS,QAASd,SACrCN,eAACgnB,GAAQ,CACPC,SAAU2wC,EAAY3gE,OACtB6X,UAAWA,EACXqY,YAAY,+BAA8B7mB,SAE9B,MAAXs3D,OAAW,EAAXA,EAAa5iE,KAAI,SAACkmC,EAAS5X,GAAK,OAC/BtjB,eAACkzD,GAAW,CAEVh4B,QAASA,GAAQ,eADG5X,aW0EH00C,CAAiB,CAChC9D,oBACAa,+BAMN/0D,eAACqnB,GAAS,CAACjkB,KAAK,wEC7Lb60D,GAAoB,SAAH/4D,GAA2D,IAArDs5C,EAAUt5C,EAAVs5C,WAC5Bqb,ECLuB,WAC7B,IAAMrnC,EAAM0T,GAAI1rB,QACViY,EAAauT,KAEnB,OAAO,IAAIpH,GAAkBpM,EAAKC,GDCdyrC,GACd5vC,EAAc1wB,IACdm8D,EEPkC,WACxC,IAAMvnC,EAAM0T,GAAI1rB,QACViY,EAAauT,KAEnB,OAAO,IAAI/G,GAAsBzM,EAAKC,GFGd0rC,GAClBnE,EGPmC,WACzC,IAAMxnC,EAAM0T,GAAI1rB,QACViY,EAAauT,KAEnB,OAAO,IAAIhG,GAAuBxN,EAAKC,GHGd2rC,GACnBnE,EIRiC,WACvC,IAAMznC,EAAM0T,GAAI1rB,QACViY,EAAauT,KAEnB,OAAO,IAAItF,GAA0BlO,EAAKC,GJInB4rC,GACjBnE,EKToC,WAC1C,IAAM1nC,EAAM0T,GAAI1rB,QACViY,EAAauT,KAEnB,OAAO,IAAIjF,GAAwBvO,EAAKC,GLKd6rC,GACpBnE,EMTgC,WACtC,IAAM3nC,EAAM0T,GAAI1rB,QACViY,EAAauT,KACb1X,EAAc1wB,IAEpB,OAAO,IAAIokC,GAAoBxP,EAAKC,EAAYnE,GNI1BiwC,GAChBlE,EOZ+B,WACrC,IAAM7nC,EAAM0T,GAAI1rB,QACViY,EAAauT,KAEnB,OAAO,IAAIxD,GAAwBhQ,EAAKC,GPQnB+rC,GACfpE,EQbiC,WACvC,IAAM5nC,EAAM0T,GAAI1rB,QACViY,EAAauT,KAEnB,OAAO,IAAI5D,GAAqB5P,EAAKC,GRSdgsC,GACjBnE,ESbkC,WACxC,IAAM9nC,EAAM0T,GAAI1rB,QACViY,EAAauT,KAEnB,OAAO,IAAInD,GAAsBrQ,EAAKC,GTSdisC,GAClBnE,EUdmC,WACzC,IAAM/nC,EAAM0T,GAAI1rB,QACViY,EAAauT,KAEnB,OAAO,IAAI5C,GAAuB5Q,EAAKC,GVUdksC,GACnBnE,EWfiC,WACvC,IAAMhoC,EAAM0T,GAAI1rB,QACViY,EAAauT,KAEnB,OAAO,IAAItC,GAAqBlR,EAAKC,GXWdmsC,GACjBnE,EYhBgC,WACtC,IAAMjoC,EAAM0T,GAAI1rB,QACViY,EAAauT,KAEnB,OAAO,IAAIlC,GAAoBtR,EAAKC,GZYdosC,GAChBnE,EajBsC,WAC5C,IAAMloC,EAAM0T,GAAI1rB,QACViY,EAAauT,KAEnB,OAAO,IAAIhC,GAA0BxR,EAAKC,GbadqsC,GACtBhF,EclBiC,WACvC,IAAMtnC,EAAM0T,GAAI1rB,QACViY,EAAauT,KAEnB,OAAO,IAAI9B,GAAqB1R,EAAKC,GdcdssC,GACjBpE,EenBuC,WAC7C,IAAMnoC,EAAM0T,GAAI1rB,QACViY,EAAauT,KAEnB,OAAO,IAAI5B,GAA2B5R,EAAKC,GfedusC,GACvBpE,EgBpBqC,WAC3C,IAAMpoC,EAAM0T,GAAI1rB,QACViY,EAAauT,KAEnB,OAAO,IAAItB,GAAyBlS,EAAKC,GhBgBdwsC,GACrBpE,EiBrBoC,WAC1C,IAAMroC,EAAM0T,GAAI1rB,QACViY,EAAauT,KAEnB,OAAO,IAAIpB,GAAwBpS,EAAKC,GjBiBdysC,GACpBpE,EkBtBsC,WAC5C,IAAMtoC,EAAM0T,GAAI1rB,QACViY,EAAauT,KAEnB,OAAO,IAAInB,GAA0BrS,EAAKC,GlBkBd0sC,GACtBpE,EmBvBuC,WAC7C,IAAMvoC,EAAM0T,GAAI1rB,QACViY,EAAauT,KAEnB,OAAO,IAAIjB,GAA2BvS,EAAKC,GnBmBd2sC,GAE7B,OACE74D,gBAAA2C,YAAA,CAAA5C,SAAA,CAEEN,eAAC4zD,GAAM,CACLC,YAAaA,EACbvrC,YAAaA,EACbyrC,gBAAiBA,EACjBC,iBAAkBA,EAClBC,eAAgBA,EAChBC,kBAAmBA,EACnBC,cAAeA,EACfC,eAAgBA,EAChBC,aAAcA,EACdC,gBAAiBA,EACjBC,iBAAkBA,EAClBC,eAAgBA,EAChBC,cAAeA,EACfC,oBAAqBA,EACrBZ,eAAgBA,EAChBa,qBAAsBA,EACtBC,mBAAoBA,EACpBC,kBAAmBA,EACnBC,oBAAqBA,EACrBC,qBAAsBA,IAExB/0D,eAACy4C,GAAkB,CAACD,WAAYA,QoBpDzBj6C,GAAiBC,eAAK,CACjCxI,IAAK,0BACLyI,SAAS,IAGE46D,GAAmB76D,eAAK,CACnCxI,IAAK,mBACLyI,QAAS,CACPw3B,YAAa,GACb74B,MAAO,GACPg5B,UAAW,GACXE,UAAW,GACXV,UAAW,GACXC,UAAW,GACXC,YAAa,GACbC,YAAa,GACbkB,cAAe,GACfT,yBAAyB,EACzBG,mBAAmB,EACnBG,+BAA+B,KAItBwiC,GAAmC96D,eAAK,CACnDxI,IAAK,mCACLyI,QAAS,KAGE86D,GAA8B/6D,eAAK,CAC9CxI,IAAK,8BACLyI,QAAS,KAGE+6D,GAA2Bh7D,eAAK,CAC3CxI,IAAK,2BACLyI,QAAS,KCrCE0B,GAASc,WAAWC,OAAO,CACtCO,UAAW,CACTH,QAAS,OACToM,IAAK,IAEPC,WAAY,CACVrM,QAAS,OACTC,cAAe,MACfC,eAAgB,WAChBkM,IAAK,K,qkBCFF,IAAM+rD,GAAgC,WAC3C,IAAMz/D,EAAQ0F,KACN4C,EAAmBC,KAAnBD,eACA+H,EAAaC,KAAbD,SACR/O,EAAmCC,yBAAem+D,IAAoBj+D,EAAAC,IAAAJ,EAAA,GAA/D0nC,EAAcvnC,EAAA,GAAE6vB,EAAQ7vB,EAAA,GAC/BqJ,EAAoCvJ,yBAAeo+D,IAAgB50D,EAAArJ,IAAAoJ,EAAA,GAA5D4+B,EAAU3+B,EAAA,GAAE60D,EAAa70D,EAAA,GAChCkB,EAAoC1K,yBAAes+D,IAA+B1zD,EAAAzK,IAAAuK,EAAA,GAA3E6zD,EAAU3zD,EAAA,GAAE4zD,EAAa5zD,EAAA,GAC1B6zD,EAAkBp6D,4BAAkBq6D,IACpCC,EAA6Bt6D,4BAAkB25D,IAC/CY,EAAiCv6D,4BAAkB05D,IAEnD12D,EAAcN,IACd83D,IAAkB12B,EAAWN,MAE7B4V,EAAoB,SAAC/+C,EAAyChE,GAClEq1B,GAAS,SAAA2tB,GAAa,OAAA9+C,MAAA,GAAU8+C,GAAa,GAAAl2C,IAAA,GAAG9I,EAAOhE,QAGnDokE,EAAuBl+D,uBAAY,SAACoP,GACxCA,EAAMO,iBAEN,IAAM62B,EAA2C,CAC/CxtC,IAAI,IAAIgmB,MAAOC,kBACfje,KAAM6lC,EAAe7lC,KACrBylC,SAAUI,EAAeJ,SACzBxM,UAAW4M,EAAe5M,UAC1BE,UAAW0M,EAAe1M,UAC1BkH,WAAYwF,EAAexF,YAG7B,OAAQs8B,EAAWQ,aACjB,KAAKzlE,iCAA8B0lE,WACjCL,GAA2B,SAAA18D,GAAY,SAAA0N,OAAAC,KAClC3N,GAAY,CACfmlC,OAEF,MACF,KAAK9tC,iCAA8B2lE,KACjCL,GAA+B,SAAA38D,GAAY,SAAA0N,OAAAC,KACtC3N,GAAY,CACfmlC,OAEF,MACF,KAAK9tC,iCAA8B4lE,aACjCb,GAAc,SAAAp8D,GAAY,OAAArD,MAAA,GACrBqD,GAAY,IACf8lC,aAAa,GAADp4B,OAAAC,KACP3N,EAAa8lC,cAAY,CAC5BX,SAGJ,MACF,KAAK9tC,iCAA8B6lE,mBACjCd,GAAc,SAAAp8D,GAAY,OAAArD,MAAA,GACrBqD,GAAY,IACfo5B,YAAY,GAAD1rB,OAAAC,KACN3N,EAAao5B,aAAW,CAC3B+L,SAQRx0B,IACAwsD,MACC,CAAC33B,EAAgB82B,EAAWQ,cAEzBK,EAAc,WAClBrvC,EAAS,CACPn2B,GAAI,EACJgI,KAAM,GACNylC,SAAU,GACVxM,UAAW,GACXE,UAAW,GACXkH,WAAY,MAIVrvB,EAAc,WAClB4rD,GAAc,SAAAv8D,GAAY,OAAArD,MAAA,GAAUqD,GAAY,IAAEuQ,QAAQ,OAC1DqsD,GAAiBJ,GAAgB,IAGnC,OACEh6D,eAACoO,GAAS,CAACC,QAASyrD,EAAW/rD,OAAQO,QAASH,EAAY7N,SAC1DC,gBAACyC,OAAG,CAAC9C,MAAOC,GAAOsB,UAAUnB,SAAA,CAC3BC,gBAACkH,QAAI,CAACzG,QAAQ,YAAWV,SAAA,CAAC,2BACzB,CAACzL,iCAA8B4lE,aAAc5lE,iCAA8B6lE,oBAAoBrlD,SAASykD,EAAWQ,aAAe,gBAAe,MAGlJt6D,eAAC6D,GAAS,CACRI,MAAM,QACNI,aAAc,SAAAjB,GAAI,OAAI41C,EAAkB,OAAQ51C,IAChDnN,MAAqB,MAAd+sC,OAAc,EAAdA,EAAgB7lC,KACvBmH,UAAW,KAGb/D,gBAACgG,SAAK,CACJ7F,QAAS,GACTR,MAAO,CAAEiJ,MAAO,QAChB3C,UAAW6D,EAAW,SAAW,MAAM/J,SAAA,CAEvCN,eAAC6D,GAAS,CACR5N,MAAqB,MAAd+sC,OAAc,EAAdA,EAAgB5M,UACvBkW,aAAa,YACbroC,MAAM,cACNI,aAAc,SAACjB,GAAI,OAAK41C,EAAkB,YAAa51C,IACvDlD,MAAO,CAAEwB,KAAM,KAGjB1B,eAAC6D,GAAS,CACR5N,MAAqB,MAAd+sC,OAAc,EAAdA,EAAgB1M,UACvBgW,aAAa,YACbroC,MAAM,aACNI,aAAc,SAACjB,GAAI,OAAK41C,EAAkB,YAAa51C,IACvDlD,MAAO,CAAEwB,KAAM,QAInB1B,eAAC6D,GAAS,CACRI,MAAM,cACNI,aAAc,SAAAjB,GAAI,OAAI41C,EAAkB,WAAY51C,IACpDnN,MAAqB,MAAd+sC,OAAc,EAAdA,EAAgBJ,SACvBt+B,UAAW,MAGbtE,eAAC6D,GAAS,CACRI,MAAM,oBACNI,aAAc,SAAAjB,GAAI,OAAI41C,EAAkB,aAAc51C,IACtDnN,MAAqB,MAAd+sC,OAAc,EAAdA,EAAgBxF,WACvBojB,WAAS,EACTC,cAAe,IAGjBtgD,gBAACyC,OAAG,CAAC9C,MAAOC,GAAOwN,WAAWrN,SAAA,EAC1B+J,GACArK,eAACW,UAAM,CACLE,MAAO7G,EAAME,OAAOqU,OACpBvN,QAAQ,OACRJ,MAAM,WACNG,QAASoN,IAGbnO,eAACW,UAAM,CACLE,MAAO7G,EAAME,OAAOqU,OACpBvN,QAAQ,OACRJ,MAAM,SACNG,QAAS45D,IAEX36D,eAACW,UAAM,CACLC,MAAM,SACNG,QAASs5D,EACT/yD,WAAyB,MAAd07B,KAAgB7lC,SAAuB,MAAd6lC,KAAgB5M,WACpDv1B,MAAO+B,EAAYoB,qBCjKlB61D,GAAiCr7D,eAAK,CACjDxI,IAAK,iCACLyI,QAAS,CACPsP,QAAQ,EACRusD,YAAazlE,iCAA8B0lE,cAIlCb,GAAsBl7D,eAAkC,CACnExI,IAAK,sBACLyI,QAAS,CACPtJ,GAAI,EACJgI,KAAM,GACNylC,SAAU,GACVxM,UAAW,GACXE,UAAW,GACXkH,WAAY,MCjBHr9B,GAASc,WAAWC,OAAO,CACtCO,UAAW,CACTH,QAAS,OACToM,IAAK,IAEPC,WAAY,CACVrM,QAAS,OACTC,cAAe,MACfC,eAAgB,WAChBkM,IAAK,EACL1L,UAAW,M,qkBCGR,IAAM44D,GAA4B,WACvC,IAAM5gE,EAAQ0F,KACRmO,EAASC,KACPzD,EAAaC,KAAbD,SACA/H,EAAmBC,KAAnBD,eACRhH,EAAoCC,yBAAeo+D,IAAgBl+D,EAAAC,IAAAJ,EAAA,GAA5DooC,EAAUjoC,EAAA,GAAEm+D,EAAan+D,EAAA,GAChCqJ,EAA0BvJ,yBAAe0+D,IAA4Bl1D,EAAArJ,IAAAoJ,EAAA,GAA9DiJ,EAAMhJ,EAAA,GAAEiJ,EAAOjJ,EAAA,GAChB81D,EAAwBj7D,4BAAkBi6D,IAC1CiB,EAA2Bl7D,4BAAkB45D,IAE7C52D,EAAcN,IAqBdq4D,EAAc,WAClBf,EAAc,CACZzkE,GAAI,EACJiuC,MAAO,GACPE,aAAc,GACd1M,YAAa,GACbyM,oBAAoB,EACpB1M,mBAAmB,KAIjBxoB,EAAc,WAClBH,GAAQ,GACR2sD,KAGF,OACE36D,eAACoO,GAAS,CAACC,QAASN,EAAQO,QAASH,EAAY7N,SAC/CC,gBAACyC,OAAG,CAAC9C,MAAOC,GAAOsB,UAAUnB,SAAA,CAC3BC,gBAACC,UAAM,CAACE,QAAS,EAAEJ,SAAA,CACjBN,eAACoM,WAAsB,CAACnS,KAAK,WAAWuN,KAAM,KAC9CxH,eAACyH,QAAI,CAACzG,QAAQ,YAAWV,SAAC,4BAG5BN,eAAC6D,GAAS,CACRI,MAAM,SACNI,aAAc,SAAAjB,GAAI,OA7CCnJ,EA6CqB,QA7CShE,EA6CAmN,OA5CvDw2D,GAAc,SAAA3gB,GAAa,OAAA9+C,MAAA,GAAU8+C,GAAa,GAAAl2C,IAAA,GAAG9I,EAAOhE,OADpC,IAACgE,EAA8BhE,GA8CjDA,MAAOytC,EAAWN,MAClB9+B,UAAW,KAGb/D,gBAACkb,UAAM,CAAAnb,SAAA,CACLN,eAACuG,SAAK,CAAC7F,QAAS,EAAG8F,UAAU,MAAMC,QAAQ,UAASnG,SAClDN,eAACyH,QAAI,CAACzG,QAAQ,YAAYd,MAAO,CAAEuJ,WAAY,OAAQnJ,SAAC,6CAE1DN,eAAC+6D,GAAiB,CAChB/5D,QAAQ,OACRsG,UAAWo8B,EAAWN,MACtBN,aAAcY,EAAWJ,aACzB03B,SAAU,WACRhtD,GAAQ,GACR6sD,EAAsB,CACpB9sD,QAAQ,EACRusD,YAAazlE,iCAA8B4lE,gBAG/CQ,SAAU,SAACC,GACTtB,GAAc,SAAAp8D,GAAY,OAAArD,MAAA,GACrBqD,GAAY,IACf8lC,aAAc9lC,EAAa8lC,aAAar4B,QAAO,SAAA0K,GAAI,OAAIA,EAAKxgB,KAAO+lE,gBAM3E36D,gBAACkb,UAAM,CAAAnb,SAAA,CACLN,eAACuG,SAAK,CAAC7F,QAAS,EAAG8F,UAAU,MAAMC,QAAQ,UAASnG,SAClDN,eAACyH,QAAI,CAACzG,QAAQ,YAAYd,MAAO,CAAEuJ,WAAY,OAAQnJ,SAAC,0CAE1DN,eAAC+6D,GAAiB,CAChB/5D,QAAQ,OACRsG,UAAWo8B,EAAWN,MACtBN,aAAcY,EAAW9M,YACzBokC,SAAU,WACRhtD,GAAQ,GACR6sD,EAAsB,CACpB9sD,QAAQ,EACRusD,YAAazlE,iCAA8B6lE,sBAG/CO,SAAU,SAACC,GACTtB,GAAc,SAAAp8D,GAAY,OAAArD,MAAA,GACrBqD,GAAY,IACfo5B,YAAap5B,EAAao5B,YAAY3rB,QAAO,SAAAi4B,GAAO,OAAIA,EAAQ/tC,KAAO+lE,gBAM/E36D,gBAACyC,OAAG,CAAC9C,MAAOC,GAAOwN,WAAWrN,SAAA,EAC1B+J,GACArK,eAACW,UAAM,CACLE,MAAO7G,EAAME,OAAOqU,OACpBvN,QAAQ,OACRJ,MAAM,WACNG,QAASoN,IAGbnO,eAACW,UAAM,CACLE,MAAO7G,EAAME,OAAOqU,OACpBvN,QAAQ,OACRJ,MAAM,SACNG,QAAS45D,IAEX36D,eAACW,UAAM,CACLC,MAAM,YACNG,QA/Ge,WACvB,IAAMmiC,EAAU,CACd/tC,IAAI,IAAIgmB,MAAOC,kBACfgoB,MAAOM,EAAWN,MAClBE,aAAcI,EAAWJ,aACzB1M,YAAa8M,EAAW9M,YACxBD,oBAAqB+M,EAAW9M,YAAY3/B,OAC5CosC,qBAAsBK,EAAWJ,aAAarsC,QAGhD6jE,GAAyB,SAAAt9D,GAAY,SAAA0N,OAAAC,KAAQ3N,GAAY,CAAE0lC,OAC3D/0B,IACAN,EAAOW,KAAK,oBAAiB00B,EAAQE,MAAK,6BAoGlC97B,UAAWo8B,EAAWN,MACtBviC,MAAO+B,EAAYoB,qBC7IlBi2D,GAA8Bz7D,eAAK,CAC9CxI,IAAK,8BACLyI,SAAS,IAGEk7D,GAAkBn7D,eAA8B,CAC3DxI,IAAK,kBACLyI,QAAS,CACPtJ,GAAI,EACJiuC,MAAO,GACPE,aAAc,GACd1M,YAAa,GACbyM,oBAAoB,EACpB1M,mBAAmB,K,iPCDhB,IAAMokC,GAAsD,SAAH77D,GAMzD,IALL4jC,EAAY5jC,EAAZ4jC,aACAk4B,EAAQ97D,EAAR87D,SACAC,EAAQ/7D,EAAR+7D,SACAj6D,EAAO9B,EAAP8B,QAAOm6D,EAAAj8D,EACPoI,gBAAQ,IAAA6zD,GAAQA,EAEVnhE,EAAQ0F,KACN2K,EAAaC,KAAbD,SAGFzH,GAAcN,EAFOC,KAAnBD,kBAiBR,OACE/B,gBAAA2C,YAAA,CAAA5C,SAAA,CACEN,eAACuG,SAAK,CAACmiC,MAAI,EAAChoC,QAAS,GAAI8F,UAAW6D,EAAW,SAAW,MAAM/J,SAC/DwiC,EACE9tC,KAAI,SAAC2gB,EAAM2N,GACV,IAAI/B,EAAW,eAAkB5L,EAAKygB,UAAS,OAG/C,OAFA7U,GAAW,GAAO5L,EAAKitB,SAGrB5iC,eAACo7D,WAAO,CACN/6D,UAAW,EAEXH,MAAO,CACLwB,KAAM,EACNsa,SAAU,IACVla,gBAAiB9H,EAAME,OAAOjB,gBAC9BoI,aAAc,EACdW,UAAW,EACXZ,QAAS,IACTd,SAEFC,gBAACC,UAAM,CAACkG,MAAM,SAAShG,QAAS,GAAIkb,MAAI,EAAAtb,SAAA,CACtCN,eAACoM,WAAsB,CAACnS,KAAK,UAAUuN,KAAM,KAC7CjH,gBAACkb,UAAM,CAACG,MAAI,EAAAtb,SAAA,CACVN,eAACyH,QAAI,CACHvH,MAAO,CACLuJ,WAAY,MACZC,SAAsB,SAAZ1I,EAAqB,GAAK,IACpCV,SACCqV,EAAKxY,KAAKJ,gBAEF,SAAZiE,GACChB,eAACyH,QAAI,CAACvH,MAAO,CAAEwJ,SAAU,GAAI7I,MAAO7G,EAAME,OAAOb,MAAOiH,SAAEihB,OAG9DvhB,eAAC4wC,WAAU,CACTppC,KAAM,GACNihC,KAAM,YACN4yB,UAAWrhE,EAAME,OAAO9D,MACxB2K,QAAS,kBAAMk6D,EAAStlD,EAAKxgB,WAExB,eA9BWwgB,EAAKxY,KAAK2W,QAAQ,IAAK,KAAI,IAAIwP,SAoC9C,MAAZwf,OAAY,EAAZA,EAAc7rC,QAAS,GA3D1B+I,eAACQ,UAAM,CAACob,MAAI,EAACixB,GAAI,GAAGvsC,SAClBN,eAACuiD,OAAG,CACFvhD,QAAQ,WACRiD,MAAM,iBACNlD,QAASi6D,EACTxzD,KAAK,OACLF,SAAUA,EACVmhC,KAAM,SAAA7hC,GAAK,OAAI5G,eAACoM,W,mWAAsBjS,CAAA,CAACF,KAAK,QAAW2M,KACvD/F,MAAOyG,EAAWtN,EAAME,OAAOd,UAAYwJ,EAAYoB,kB,qkBCvBxD,IAAMs3D,GAAgD,SAAHp8D,GAAyB,IAAnBopB,EAAWppB,EAAXopB,YACxDtuB,EAAQ0F,KACN4C,EAAmBC,KAAnBD,eACA+H,EAAaC,KAAbD,SACR/O,EAAsCC,yBAAe89D,IAAiB59D,EAAAC,IAAAJ,EAAA,GAA/DigE,EAAW9/D,EAAA,GAAE+/D,EAAc//D,EAAA,GAC5BqT,EAAYhT,yBAAeyC,IAC3Bk9D,EAAqB77D,4BAAkB87D,IAEvC94D,EAAcN,IAEpB4C,qBAAU,WACRs2D,GAAe,SAAAh+D,GAAY,OAAArD,MAAA,GACtBqD,GAAY,IACfo4B,UAAWtN,EAAY/wB,QAAQ2U,WAC/B4pB,YAAaxN,EAAY8rB,UAAU,IAAIloC,kBAExC,IAEH,IAAMmoC,EAAmBl4C,uBAAY,SAACm4C,EAAgCz9C,GACpE2kE,GAAe,SAAAjnB,GAAc,OAAAp6C,MAAA,GAAUo6C,GAAc,GAAAxxC,IAAA,GAAGuxC,EAAkBz9C,EAAKqV,kBAC9E,IAEH,OACE3L,gBAAA2C,YAAA,CAAA5C,SAAA,CACEC,gBAACgG,SAAK,CACJ7F,QAAS,GACT8F,UAAW6D,EAAW,SAAW,MACjCnK,MAAK/F,MAAA,GACAgG,GAAOw7D,UACLtxD,GAAY,CAAEpB,WAAY,WAC/B3I,SAAA,CAEFN,eAACmoB,GAAU,CACTlkB,MAAM,YACNhO,MAAOslE,EAAY3lC,UACftN,EAAYntB,MAAMogE,EAAY3lC,WAC9BtN,EAAY/wB,QAEhB+P,SAAUwH,EACV6K,SAAU,SAAC9iB,GAAI,OAAKw9C,EAAiB,YAAiB,MAAJx9C,IAAQyxB,EAAY/wB,UACtE+wB,YAAaA,IAEftoB,eAAC6D,GAAS,CACRhD,MAAO+B,EAAYoB,UACnB0V,UAAU,EACVzjB,MAAOslE,EAAY1lC,UACnByW,aAAa,aACbroC,MAAM,iBACNjD,QAAQ,SACR2F,SACE3G,eAACsb,WAAgB,CAACva,QAAS,kBAAM06D,EAAmB,CAAE1tD,QAAQ,EAAM6tD,YAAa,eAAet7D,SAC9FN,eAACoM,WAAsB,CAAC5E,KAAM,GAAI3G,MAAO7G,EAAME,OAAOb,KAAMY,KAAK,oCAKzEsG,gBAACgG,SAAK,CACJ7F,QAAS,GACTR,MAAOC,GAAOw7D,QACdn1D,UAAW6D,EAAW,SAAW,MAAM/J,SAAA,CAEvCN,eAACmoB,GAAU,CACTlkB,MAAM,WACNhO,MAAOslE,EAAYzlC,YACfxN,EAAYntB,MAAMogE,EAAYzlC,aAC9BxN,EAAY8rB,UAAU,IAE1B9sC,SAAUwH,EACV6K,SAAU,SAAC9iB,GAAI,OAAKw9C,EAAiB,cAAmB,MAAJx9C,IAAQyxB,EAAY8rB,UAAU,MAClF9rB,YAAaA,IAEftoB,eAAC6D,GAAS,CACRhD,MAAO+B,EAAYoB,UACnB0V,UAAU,EACVzjB,MAAOslE,EAAYxlC,YACnBuW,aAAa,aACbroC,MAAM,gBACNjD,QAAQ,SACR2F,SACE3G,eAACsb,WAAgB,CAACva,QAAS,kBAAM06D,EAAmB,CAAE1tD,QAAQ,EAAM6tD,YAAa,iBAAiBt7D,SAChGN,eAACoM,WAAsB,CAAC5E,KAAM,GAAI3G,MAAO7G,EAAME,OAAOb,KAAMY,KAAK,wCASzEkG,GAASc,WAAWC,OAAO,CAC/By6D,QAAS,CACPxyD,MAAO,OACPuE,IAAK,MCvGIguD,GAA6Bl9D,eAAK,CAC7CxI,IAAK,6BACLyI,QAAS,CACPsP,QAAQ,EACR6tD,YAAa,M,+NCMV,IAAMC,GAA4C,SAAH38D,GAAkC,IAA5B48D,EAAU58D,EAAV48D,WAAYb,EAAQ/7D,EAAR+7D,SAChEjhE,EAAQ0F,KACN2K,EAAaC,KAAbD,SACA/H,EAAmBC,KAAnBD,eACFkhC,EAAW1nC,yBAAe09D,IAE1B52D,EAAcN,IAapB,OACE/B,gBAAA2C,YAAA,CAAA5C,SAAA,CACEN,eAACuG,SAAK,CAACmiC,MAAI,EAAChoC,QAAS,GAAI8F,UAAW6D,EAAW,SAAW,MAAM/J,SAC/DkjC,EACExuC,KAAI,SAACkuC,EAAS5f,GAAK,OAClBtjB,eAACo7D,WAAO,CACN/6D,UAAW,EAEXH,MAAO,CACLwB,KAAM,EACNsa,SAAU,IACVla,gBAAiB9H,EAAME,OAAOjB,gBAC9BoI,aAAc,EACdW,UAAW,EACXZ,QAAS,IACTd,SAEFC,gBAACC,UAAM,CAACkG,MAAM,SAAShG,QAAS,GAAIkb,MAAI,EAAAtb,SAAA,CACtCN,eAACoM,WAAsB,CACnBnS,KAAK,WACLuN,KAAM,GACN3G,MAAO+B,EAAYoB,YAErBhE,eAACyb,UAAM,CAACG,MAAI,EAAAtb,SACVN,eAACyH,QAAI,CACHvH,MAAO,CACLuJ,WAAY,MACZC,SAAUW,EAAW,GAAK,IAC1B/J,SACC4iC,EAAQE,MAAMrmC,kBAGrBiD,eAAC4wC,WAAU,CACTppC,KAAM,GACNihC,KAAM,YACN4yB,UAAWrhE,EAAME,OAAO9D,MACxB2K,QAAS,kBAAMk6D,EAAS/3B,EAAQ/tC,WAE7B,eA/BW+tC,EAAQE,MAAK,IAAI9f,SAoClC,MAARkgB,OAAQ,EAARA,EAAUvsC,SAAU,GArDvB+I,eAACQ,UAAM,CAACob,MAAI,EAACixB,GAAI,GAAGvsC,SAClBN,eAACuiD,OAAG,CACFvhD,QAAQ,WACRiD,MAAOoG,EAAW,uBAAsB,4BACxCtJ,QAAS+6D,EACTt0D,KAAK,OACLihC,KAAM,SAAA7hC,GAAK,OAAI5G,eAACoM,W,mWAAsBjS,CAAA,CAACF,KAAK,QAAW2M,KAAW/F,MAAO+B,EAAYoB,kB,+NCzBtF,IAAM7D,GAASc,WAAWC,OAAO,CACtCO,UAAW,CACTC,KAAM,GAER2d,Q,mWAAOllB,CAAA,GACF0tC,GAAaC,aAElBuE,SAAU,CACRrqC,UAAW,GACXmH,MAAO,OACP/H,QAAS,GACT4mB,iBAAkB,OAClBta,IAAK,IAEP0L,MAAO,CACL1X,KAAM,EACNM,UAAW,IAEb2qC,WAAY,CACVh6B,OAAQ,GACRxJ,MAAO,IACP4c,UAAW,YAEb6mB,SAAU,CACRj6B,OAAQ,GACRxJ,MAAO,GACPjH,WAAY,IAEd65D,gBAAiB,CACfz6D,QAAS,OACToM,IAAK,GAEPtK,KAAM,CACJsG,SAAU,GACVojC,cAAe,GAEjBkvB,IAAK,CACH16D,QAAS,OACTC,cAAe,MACfC,eAAgB,gBAChBkM,IAAK,IAEPuuD,aAAc,CACZ36D,QAAS,OACTC,cAAe,MACfmM,IAAK,M,qkBCfF,IAAM0c,GAA0C,SAAHlrB,GAAuD,IAAjDs5C,EAAUt5C,EAAVs5C,WAAYlwB,EAAWppB,EAAXopB,YAAa4zC,EAAgBh9D,EAAhBg9D,iBAC3EliE,EAAQ0F,KACRmO,EAASC,KACPlR,EAAcvB,IAAduB,UACAyN,EAAaC,KAAbD,SACA/H,EAAmBC,KAAnBD,eACRhH,EAA8CC,yBAAemgE,IAA2BjgE,EAAAC,IAAAJ,EAAA,GAAjF6gE,EAAe1gE,EAAA,GAAEggE,EAAkBhgE,EAAA,GAC1CqJ,EAAgCvJ,yBAAegD,IAAewG,EAAArJ,IAAAoJ,EAAA,GAAvDgK,EAAS/J,EAAA,GAAEgK,EAAUhK,EAAA,GAC5BkB,EAAsC1K,yBAAe89D,IAAiBlzD,EAAAzK,IAAAuK,EAAA,GAA/Ds1D,EAAWp1D,EAAA,GAAEq1D,EAAcr1D,EAAA,GAClC6Z,EAAsCzkB,yBAAeg+D,IAA4Br5C,EAAAxkB,IAAAskB,EAAA,GAA1Eo8C,EAAWl8C,EAAA,GAAEm8C,EAAcn8C,EAAA,GAClCG,EAAgD9kB,yBAAe+9D,IAAiC/4C,EAAA7kB,IAAA2kB,EAAA,GAAzFi8C,EAAgB/7C,EAAA,GAAEg8C,EAAmBh8C,EAAA,GAC5Ci8C,EAAgCjhE,yBAAei+D,IAAyBiD,EAAA/gE,IAAA8gE,EAAA,GAAjEh5B,EAAQi5B,EAAA,GAAEC,EAAWD,EAAA,GACtB5B,EAAwBj7D,4BAAkBi6D,IAC1C8C,EAAoB/8D,4BAAkBq6D,IACtCr5C,EAAQ9D,8BAAoBu8C,IAC5BuD,EAAmB9/C,8BAAoBy8C,IACvCsD,EAAuB//C,8BAAoBw8C,IAC3CwD,EAAgBhgD,8BAAoB08C,IACpCuD,EAAsBjgD,8BAAoB48C,IAC1C18C,EAAc5E,KAEdhc,EAASQ,IACTgG,EAAcN,IAgCd06D,EAA2B,WAC/B,SACGzB,EAAYn+D,OACZm+D,EAAYnlC,WACZmlC,EAAYzlC,aACZylC,EAAYxlC,aACZwlC,EAAY3lC,WACZ2lC,EAAY1lC,WACZ0lC,EAAYtkC,gBAQXp0B,EAAe,SAAC5I,EAA+BhE,GACnDulE,GAAe,SAAAh+D,GAAY,OAAArD,MAAA,GAAUqD,GAAY,GAAAuF,IAAA,GAAG9I,EAAOhE,QAGvDgnE,EAAmB9gE,uBAAY,SAACm4C,EAAgC4oB,GACpE,IAAMC,EAAQD,EAAKC,MAAMjxD,WAAWkD,SAAS,EAAG,KAC1CguD,EAAUF,EAAKE,QAAQlxD,WAAWkD,SAAS,EAAG,KAEpDosD,GAAe,SAAAjnB,GAAc,OAAAp6C,MAAA,GACxBo6C,GAAc,GAAAxxC,IAAA,GAChBuxC,EAAW6oB,EAAK,IAAIC,SAEtB,CAACjB,EAAgBP,cAEdztD,EAAchS,uBAAY,WAC9Bs/D,GAAmB,SAAAj+D,GAAY,OAAArD,MAAA,GAAUqD,GAAY,IAAEuQ,QAAQ,SAC9D,IAEG4sD,EAAc,WAClB/5C,IACAg8C,IACAC,IACAC,IACAC,KAGF,OACEx8D,gBAAC2mC,WAAY,CAAChnC,MAAOC,GAAOsB,UAAUnB,SAAA,CACpCN,eAACiD,cAAU,CAAC/C,MAAO,CAAEonB,SAAU,GAAIhnB,SAChCwO,EACG9O,eAACyE,GAAO,CAACrB,KAAK,gCACd7C,gBAACyC,OAAG,CAAC9C,MAAOC,GAAOkf,QAAQ/e,SAAA,CAC3BN,eAACwoC,GAAU,CACTplC,KAAK,kBACLqlC,KAAMzoC,eAACoM,WAAsB,CAAC5E,KAAM,GAAI3G,MAAO7G,EAAME,OAAOb,KAAMY,KAAK,qBAEzEsG,gBAACN,WAAI,CAACC,MAAOC,GAAOksC,SAAS/rC,SAAA,CAC3BC,gBAAC6pC,GAAU,CAAA9pC,SAAA,CACTN,eAAC6D,GAAS,CACRhD,MAAO+B,EAAYoB,UACnB0V,UAAW5K,EACX7Y,MAAkB,MAAXslE,OAAW,EAAXA,EAAatlC,YACpBhyB,MAAM,cACNI,aAAc,SAACjB,GAAI,OAAKP,EAAa,cAAeO,IACpDlD,MAAOC,GAAOiZ,QAEhBpZ,eAAC6D,GAAS,CACRhD,MAAO+B,EAAYoB,UACnB0V,UAAW5K,EACX7Y,MAAkB,MAAXslE,OAAW,EAAXA,EAAan+D,MACpBkvC,aAAa,gBACbroC,MAAM,UACN/D,MAAOC,GAAOiZ,MACd/U,aAAc,SAACjB,GAAI,OAAKP,EAAa,QAASO,SAIlD7C,gBAAC6pC,GAAU,CAAA9pC,SAAA,CACTN,eAAC6D,GAAS,CACRhD,MAAO+B,EAAYoB,UACnB0V,UAAW5K,EACX7Y,MAAkB,MAAXslE,OAAW,EAAXA,EAAanlC,UACpBkW,aAAa,YACbroC,MAAM,cACN/D,MAAOC,GAAOiZ,MACd/U,aAAc,SAACjB,GAAI,OAAKP,EAAa,YAAaO,MAEpDpD,eAAC6D,GAAS,CACRhD,MAAO+B,EAAYoB,UACnB0V,UAAW5K,EACX7Y,MAAkB,MAAXslE,OAAW,EAAXA,EAAajlC,UACpBgW,aAAa,YACbroC,MAAM,aACN/D,MAAOC,GAAOiZ,MACd/U,aAAc,SAACjB,GAAI,OAAKP,EAAa,YAAaO,SAItDpD,eAACs7D,GAAc,CAAChzC,YAAaA,IAE7BtoB,eAACoqC,GAAU,CAAA9pC,SACTN,eAAC6D,GAAS,CACRhD,MAAO+B,EAAYoB,UACnB0V,UAAW5K,EACX7Y,MAAkB,MAAXslE,OAAW,EAAXA,EAAatkC,cACpBhzB,MAAM,uBACN/D,MAAOC,GAAOiZ,MACd/U,aAAc,SAACjB,GAAI,OAAKP,EAAa,gBAAiBO,IACtDw9C,WAAS,EACTC,cAAe,SAMrBtgD,gBAACkb,UAAM,CAACoxB,GAAI,GAAGvsC,SAAA,CACbN,eAACmD,GAAU,CACTC,KAAK,6EACLnN,MAAOslE,EAAY/kC,wBACnBhP,kBAAkB,EAClBlkB,aAAc,kBAAMT,EAAa,2BAA4B04D,EAAY/kC,0BAAyBl2B,SAElGN,eAAC+6D,GAAiB,CAChBj4B,aAAcw5B,EACdtB,SAAU,WACRH,EAAsB,CACpB9sD,QAAQ,EACRusD,YAAazlE,iCAA8B2lE,QAG/CS,SAAU,SAACC,GACTqB,EAAoBD,EAAiBrxD,QAAO,SAAA0K,GAAI,OAAIA,EAAKxgB,KAAO+lE,WAKtEl7D,eAACmD,GAAU,CACTC,KAAK,8DACLnN,MAAOslE,EAAY5kC,kBACnBrzB,aAAc,kBAAMT,EAAa,qBAAsB04D,EAAY5kC,oBAAmBr2B,SAEtFN,eAAC+6D,GAAiB,CAChBj4B,aAAcs5B,EACdpB,SAAU,WACRH,EAAsB,CACpB9sD,QAAQ,EACRusD,YAAazlE,iCAA8B0lE,cAG/CU,SAAU,SAACC,GACTmB,EAAeD,EAAYnxD,QAAO,SAAA0K,GAAI,OAAIA,EAAKxgB,KAAO+lE,WAK5Dl7D,eAACmD,GAAU,CACTC,KAAK,iEACLnN,MAAOslE,EAAYzkC,8BACnBxzB,aAAc,kBAAMT,EAAa,iCAAkC04D,EAAYzkC,gCAA+Bx2B,SAE9GN,eAAC67D,GAAY,CACXC,WAAY,kBAAMa,GAAkB,IACpC1B,SAAU,SAACoC,GACTX,GAAY,SAAAl5B,GAAQ,OAAIA,EAASv4B,QAAO,SAAAi4B,GAAO,OAAIA,EAAQ/tC,KAAOkoE,qBAShF98D,gBAACC,UAAM,CACLkG,MAAM,SACND,QAAQ,MACRc,GAAI,GACJgnC,GAAI,GACJ7yB,GAAIrR,EAAYi6C,GAA8B,GAAM,GACpD5jD,QAAS,EAAEJ,SAAA,CAEXN,eAACW,UAAM,CACLC,MAAM,SACNI,QAAQ,OACRH,MAAO7G,EAAME,OAAOf,YACpB4H,QAAS45D,EACTrzD,SAAUwH,IAEZ9O,eAACW,UAAM,CACLC,MAAM,SACNI,QAAQ,WACRH,MAAO+B,EAAYoB,UACnBjD,QAzNuB,SAACwK,GAG9B,GAFAA,EAAMO,iBAEFkxD,IAA4B,CAC9BjuD,GAAW,GAEX,IAAMuuD,EAAyCnjE,MAAA,GAC1CohE,GAAW,IACdpkC,QAAS/6B,EAAOY,WAChBo6B,QAASh7B,EAAOg7B,QAChBC,WAAYj7B,EAAOi7B,WACnBZ,kBAAmB6lC,EACnB1lC,YAAawlC,EACbrlC,SAAUyM,IAGZ04B,EACGxkE,IAAI4lE,GACJt2D,MAAK,SAAA63C,GACJrG,EAAWwK,SAASt5B,GAAgBQ,eACpCrc,EAAOW,KAAK,sDAA0D,MAALqwC,OAAK,EAALA,EAAO3yC,WAAWkD,SAAS,EAAG,OAC/FurD,OAEDzzD,MAAM8V,GACN5V,SAAQ,kBAAM2H,GAAW,WAE5BiO,EAAY,IAAIxnB,MAAM,uEAgMlB8R,SAAUwH,IAAckuD,SAI5Bh9D,eAACy5D,GAAmB,IACpBz5D,eAAC46D,GAAe,IAChB56D,eAACu9D,GAAU,CACTt5D,MAAM,mBACNu5D,UAAW,SAACN,GACVD,EAAiBd,EAAgBP,YAAasB,GAC9C/uD,KAEFsvD,SAAUtvD,EACV+uD,KAAM,CAAEC,MAAO,GAAIC,QAAS,IAC5B/uD,QAAS8tD,EAAgBpuD,aC3RpB2vD,GAAmC,SAAHx+D,GAA8C,IAAxCs5C,EAAUt5C,EAAVs5C,WACjD,OACEj4C,gBAAA2C,YAAA,CAAA5C,SAAA,CACEN,eAACoqB,GAAW,CACVouB,WAAYA,EACZlwB,YAAa1wB,IACbskE,iBAAkBt4B,OAEpB5jC,eAACy4C,GAAkB,CAACD,WAAYA,Q,qkBCP/B,IAAMmlB,GAA0Bn/D,eAA8B,CACnExI,IAAK,qBACLyI,QAAOtE,MAAA,GACF,MAAI,IACP2U,WAAW,MCTF3O,GAASc,WAAWC,OAAO,CACtC08D,UAAW,CACTpV,kBAAmB,EACnBC,kBAAmB,sBACnBzgB,cAAe,GACfrhB,kBAAmB,GACnBrlB,QAAS,OACTC,cAAe,MACfC,eAAgB,gBAChByH,WAAY,SACZE,MAAO,OACPpH,aAAc,IAEhB6iD,YAAa,CACXn7C,WAAY,MACZC,SAAU,MCVD8+B,GAAuB,WAClC,IAEwB5yB,EAQEioD,EAVpBC,EAAqBhiE,yBAAe6hE,IAqB1C,OACEp9D,gBAACyC,OAAG,CAAC9C,MAAOC,GAAOy9D,UAAUt9D,SAAA,CAC3BN,eAACgD,OAAG,CAAA1C,SACFN,eAAC27C,GAAS,CAAChpC,OAAQ,OAErBpS,gBAACyC,OAAG,CAAA1C,SAAA,CACFC,gBAACkH,QAAI,CAACvH,MAAOC,GAAOykD,YAAYtkD,SAAA,CAAC,MAAIw9D,EAAmBC,SACxD/9D,eAACyH,QAAI,CAAAnH,UAlBeu9D,EAkBIC,EAAmB3oC,KAjBxC,CACL6oC,EAAG,6BACHC,EAAG,0BACHC,EAAG,8BACHxf,EAAG,yBACH4N,EAAG,uBACH6R,EAAG,WACHN,MAWE79D,eAACyH,QAAI,CAAAnH,UA3BasV,EA2BIkoD,EAAmBloD,OA1BtC,CACL8oC,EAAG,SACHC,EAAG,UACHC,EAAG,YACHhpC,aCbOzV,GAASc,WAAWC,OAAO,CACtConD,SAAU,CACR/mD,cAAe,MACfC,eAAgB,gBAChB8N,SAAU,OACVnG,MAAO,OACPuE,IAAK,IAEPnE,SAAU,CACRi/C,kBAAmB,EACnBC,kBAAmB,sBACnBzgB,cAAe,EACf1mC,QAAS,OACTC,cAAe,MACfC,eAAgB,gBAChByH,WAAY,UAEdm1D,SAAU,CACR30D,WAAY,MACZC,SAAU,GACV3H,aAAc,GACdC,UAAW,IAEbumD,KAAM,CACJ9+C,WAAY,OAEd40D,eAAgB,CACd30D,SAAU,GACV2gC,UAAW,UAEbi0B,kBAAmB,CACjBC,eAAgB,EAChBC,eAAgB,sBAChBl1C,WAAY,EACZhoB,QAAS,OACTC,cAAe,MACfC,eAAgB,gBAChByH,WAAY,UAEdw1D,iBAAkB,CAChBz8D,UAAW,GACXD,aAAc,GACdT,QAAS,OACTC,cAAe,SACf0H,WAAY,cCxCHy1D,GAAuB,WAClC,IAAMZ,EAAqBhiE,yBAAe6hE,IAE1C,OACAp9D,gBAAA2C,YAAA,CAAA5C,SAAA,CACEN,eAACyH,QAAI,CAACvH,MAAOC,GAAOi+D,SAAS99D,SAAC,iCAC9BC,gBAACo+D,GAAO,CAAAr+D,SAAA,CACNC,gBAACq+D,GAAW,CAAC5iD,SAAU,OAAO1b,SAAA,CAC5BN,eAACgD,OAAG,CAAC9C,MAAOC,GAAOoJ,SAASjJ,SAC1BN,eAACyH,QAAI,CAACvH,MAAOC,GAAOooD,KAAKjoD,SAAC,YAE5BC,gBAACkH,QAAI,CAAAnH,SAAA,CAACN,eAAA,QAAME,MAAOC,GAAOooD,KAAKjoD,SAAC,WAAcw9D,EAAmB9gE,WAAW,MAAI8gE,EAAmB3mC,WACnG52B,gBAACkH,QAAI,CAAAnH,SAAA,CAACN,eAAA,QAAME,MAAOC,GAAOooD,KAAKjoD,SAAC,eAAkBw9D,EAAmBe,YACrEt+D,gBAACkH,QAAI,CAAAnH,SAAA,CAACN,eAAA,QAAME,MAAOC,GAAOooD,KAAKjoD,SAAC,WAAcw9D,EAAmB9pD,OACjEzT,gBAACyC,OAAG,CAAC9C,MAAOC,GAAOm+D,kBAAkBh+D,SAAA,CACnCC,gBAACkH,QAAI,CAAAnH,SAAA,CAACN,eAAA,QAAME,MAAOC,GAAOooD,KAAKjoD,SAAC,iBAAoBw9D,EAAmBzmC,cACvE92B,gBAACkH,QAAI,CAAAnH,SAAA,CAACN,eAAA,QAAME,MAAOC,GAAOooD,KAAKjoD,SAAC,+BAA4Bw9D,EAAmBgB,2BAGnFv+D,gBAACq+D,GAAW,CAAC5iD,SAAU,OAAO1b,SAAA,CAC5BN,eAACgD,OAAG,CAAC9C,MAAOC,GAAOoJ,SAASjJ,SAC1BN,eAACyH,QAAI,CAACvH,MAAOC,GAAOooD,KAAKjoD,SAAC,4BAE5BC,gBAACkH,QAAI,CAAAnH,SAAA,CAACN,eAAA,QAAME,MAAOC,GAAOooD,KAAKjoD,SAAC,eAAkBw9D,EAAmBviC,SACrEh7B,gBAACkH,QAAI,CAAAnH,SAAA,CAACN,eAAA,QAAME,MAAOC,GAAOooD,KAAKjoD,SAAC,qBAAqBw9D,EAAmBiB,eACxEx+D,gBAACkH,QAAI,CAAAnH,SAAA,CAACN,eAAA,QAAME,MAAOC,GAAOooD,KAAKjoD,SAAC,kBAAkBw9D,EAAmBl7B,SAAS,MAAIk7B,EAAmBziB,OAAO,KAAGyiB,EAAmB3iB,OAAO,OAAK2iB,EAAmB1iB,oBCpB5J4jB,GAAgC,SAAH9/D,GAEnC,IADLopB,EAAWppB,EAAXopB,YAEMw1C,EAAqBhiE,yBAAe6hE,IAEpCsB,EAAmB,SAACC,GACxB,MAAuB,wBAAhBA,EAAwC,GAAKA,GAGtD,OACA3+D,gBAAA2C,YAAA,CAAA5C,SAAA,CACEN,eAACyH,QAAI,CAACvH,MAAOC,GAAOi+D,SAAS99D,SAAC,4BAC9BC,gBAACo+D,GAAO,CAAAr+D,SAAA,CACNC,gBAACq+D,GAAW,CAACn9C,SAAU,IAAInhB,SAAA,CACzBN,eAACgD,OAAG,CAAC9C,MAAOC,GAAOoJ,SAASjJ,SAC1BN,eAACyH,QAAI,CAACvH,MAAOC,GAAOooD,KAAKjoD,SAAC,aAE5BC,gBAACkH,QAAI,CAAAnH,SAAA,CAACN,eAAA,QAAME,MAAOC,GAAOooD,KAAKjoD,SAAC,cAAiBw9D,EAAmB1mC,WACpE72B,gBAACkH,QAAI,CAAAnH,SAAA,CAACN,eAAA,QAAME,MAAOC,GAAOooD,KAAKjoD,SAAC,mBAAmBw9D,EAAmBqB,aACtE5+D,gBAACkH,QAAI,CAAAnH,SAAA,CAACN,eAAA,QAAME,MAAOC,GAAOooD,KAAKjoD,SAAC,eAAkBw9D,EAAmBsB,gBACrEp/D,eAACgD,OAAG,CAAC9C,MAAOC,GAAOm+D,kBAAkBh+D,SACnCC,gBAACkH,QAAI,CAAAnH,SAAA,CAACN,eAAA,QAAME,MAAOC,GAAOooD,KAAKjoD,SAAC,kBAAqBw9D,EAAmB7nC,oBAG5E11B,gBAACq+D,GAAW,CAACn9C,SAAU,IAAInhB,SAAA,CACzBN,eAACgD,OAAG,CAAC9C,MAAOC,GAAOoJ,SAASjJ,SAC1BN,eAACyH,QAAI,CAACvH,MAAOC,GAAOooD,KAAKjoD,SAAC,mBAE5BC,gBAACkH,QAAI,CAAAnH,SAAA,CAACN,eAAA,QAAME,MAAOC,GAAOooD,KAAKjoD,SAAC,2BAA8Bw9D,EAAmBuB,SAAW,MAAQ,YACnGvB,EAAmBuB,UAClB9+D,gBAAA2C,YAAA,CAAA5C,SAAA,CACEC,gBAACkH,QAAI,CAAAnH,SAAA,CAACN,eAAA,QAAME,MAAOC,GAAOooD,KAAKjoD,SAAC,oBAAuBgoB,EAAYnxB,OAAO2mE,EAAmBwB,WAAY,0BACzG/+D,gBAACkH,QAAI,CAAAnH,SAAA,CAACN,eAAA,QAAME,MAAOC,GAAOooD,KAAKjoD,SAAC,mBAAmBgoB,EAAYnxB,OAAO2mE,EAAmByB,SAAU,6BAGvGv/D,eAACgD,OAAG,CAAC9C,MAAOC,GAAOm+D,kBAAkBh+D,SACnCC,gBAACkH,QAAI,CAAAnH,SAAA,CAACN,eAAA,QAAME,MAAOC,GAAOooD,KAAKjoD,SAAC,wBAA2BgoB,EAAYnxB,OAAO2mE,EAAmByB,SAAU,sBAI/Gh/D,gBAACq+D,GAAW,CAACn9C,SAAU,IAAInhB,SAAA,CACzBN,eAACgD,OAAG,CAAC9C,MAAOC,GAAOoJ,SAASjJ,SAC1BN,eAACyH,QAAI,CAACvH,MAAOC,GAAOooD,KAAKjoD,SAAC,eAE5BC,gBAACkH,QAAI,CAAAnH,SAAA,CAACN,eAAA,QAAME,MAAOC,GAAOooD,KAAKjoD,SAAC,uBAA0BgoB,EAAYnxB,OAAO2mE,EAAmB0B,SAAU,0BAC1Gj/D,gBAACkH,QAAI,CAAAnH,SAAA,CAACN,eAAA,QAAME,MAAOC,GAAOooD,KAAKjoD,SAAC,kBAAqBw9D,EAAmB2B,WACxEl/D,gBAACkH,QAAI,CAAAnH,SAAA,CAACN,eAAA,QAAME,MAAOC,GAAOooD,KAAKjoD,SAAC,uBAA0Bw9D,EAAmB4B,WAC7E1/D,eAACgD,OAAG,CAAC9C,MAAOC,GAAOm+D,kBAAkBh+D,SACnCC,gBAACkH,QAAI,CAAAnH,SAAA,CAACN,eAAA,QAAME,MAAOC,GAAOooD,KAAKjoD,SAAC,iBAAoBw9D,EAAmB6B,wBAG3Ep/D,gBAACq+D,GAAW,CAACn9C,SAAU,IAAInhB,SAAA,CACzBN,eAACgD,OAAG,CAAC9C,MAAOC,GAAOoJ,SAASjJ,SAC1BN,eAACyH,QAAI,CAACvH,MAAOC,GAAOooD,KAAKjoD,SAAC,qBAE5BC,gBAACkH,QAAI,CAAAnH,SAAA,CAACN,eAAA,QAAME,MAAOC,GAAOooD,KAAKjoD,SAAC,iBAAiBw9D,EAAmB1b,eACpE7hD,gBAACkH,QAAI,CAAAnH,SAAA,CAACN,eAAA,QAAME,MAAOC,GAAOooD,KAAKjoD,SAAC,yBAAyBw9D,EAAmB8B,aAC5Er/D,gBAACkH,QAAI,CAAAnH,SAAA,CAACN,eAAA,QAAME,MAAOC,GAAOooD,KAAKjoD,SAAC,iBAAiBw9D,EAAmB+B,gBAGtEt/D,gBAACq+D,GAAW,CAACn9C,SAAU,IAAInhB,SAAA,CACzBN,eAACgD,OAAG,CAAC9C,MAAOC,GAAOoJ,SAASjJ,SAC1BN,eAACyH,QAAI,CAACvH,MAAOC,GAAOooD,KAAKjoD,SAAC,iBAE5BC,gBAACkH,QAAI,CAAAnH,SAAA,CAACN,eAAA,QAAME,MAAOC,GAAOooD,KAAKjoD,SAAC,yBAA4B2+D,EAAiB32C,EAAYnxB,OAAO2mE,EAAmB9e,eAAgB,2BACnIz+C,gBAACkH,QAAI,CAAAnH,SAAA,CAACN,eAAA,QAAME,MAAOC,GAAOooD,KAAKjoD,SAAC,oBAAiBw9D,EAAmBgC,aACpE9/D,eAACgD,OAAG,CAAC9C,MAAOC,GAAOm+D,kBAAkBh+D,SACnCC,gBAACkH,QAAI,CAAAnH,SAAA,CAACN,eAAA,QAAME,MAAOC,GAAOooD,KAAKjoD,SAAC,kBAAqBw9D,EAAmBiC,0BAG5Ex/D,gBAACq+D,GAAW,CAACn9C,SAAU,IAAInhB,SAAA,CACzBN,eAACgD,OAAG,CAAC9C,MAAOC,GAAOoJ,SAASjJ,SAC1BN,eAACyH,QAAI,CAACvH,MAAOC,GAAOooD,KAAKjoD,SAAC,kBAE5BC,gBAACkH,QAAI,CAAAnH,SAAA,CACLN,eAAA,QAAME,MAAOC,GAAOooD,KAAKjoD,SAAC,4BAAyBw9D,EAAmBkC,YACtEhgE,eAAA,QAAME,MAAOC,GAAOooD,KAAKjoD,SAAC,0BAA0B2+D,EAAiB32C,EAAYnxB,OAAO2mE,EAAmBhnB,YAAa,iCAI5Hv2C,gBAACo+D,GAAO,CAAAr+D,SAAA,CACNC,gBAACq+D,GAAW,CAAAt+D,SAAA,CACVN,eAACgD,OAAG,CAAC9C,MAAOC,GAAOoJ,SAASjJ,SAC1BN,eAACyH,QAAI,CAACvH,MAAOC,GAAOooD,KAAKjoD,SAAC,oCAE5BN,eAACyH,QAAI,CAAAnH,SAAEw9D,EAAmBmC,cAE5B1/D,gBAACq+D,GAAW,CAAAt+D,SAAA,CACVN,eAACgD,OAAG,CAAC9C,MAAOC,GAAOoJ,SAASjJ,SAC1BN,eAACyH,QAAI,CAACvH,MAAOC,GAAOooD,KAAKjoD,SAAC,iCAE5BN,eAACyH,QAAI,CAAAnH,SAAEw9D,EAAmBoC,uBAE5B3/D,gBAACq+D,GAAW,CAAAt+D,SAAA,CACVN,eAACgD,OAAG,CAAC9C,MAAOC,GAAOoJ,SAASjJ,SAC1BN,eAACyH,QAAI,CAACvH,MAAOC,GAAOooD,KAAKjoD,SAAC,sCAE5BN,eAACyH,QAAI,CAAAnH,SAAEw9D,EAAmBqC,0BCrGrBC,GAAuB,WAAO,IAADC,EAAAC,EAClCxC,EAAqBhiE,yBAAe6hE,IAClCnqD,EAAmBD,KAAnBC,eAEF+sD,EAAqD,OAAnCF,EAAGvC,EAAmB0C,oBAAa,EAAhCH,EAAkCI,QAC3D,SAACC,EAAKC,GAAO,OAAKD,EAAOC,EAAQC,SAAWD,EAAQE,aACpD,GAGF,OACE7gE,eAAAkD,YAAA,CAAA5C,WACqC,OAAjCggE,EAACxC,EAAmB0C,iBAAnBF,EAAkCrpE,SACnCsJ,gBAAA2C,YAAA,CAAA5C,SAAA,CACEN,eAACyH,QAAI,CAACvH,MAAOC,GAAOi+D,SAAS99D,SAAC,mBAC9BC,gBAAC2iB,WAAS,CAAA5iB,SAAA,CACRC,gBAAC2iB,WAAUC,OAAM,CAAA7iB,SAAA,CACfN,eAACkjB,WAAUE,MAAK,CAAA9iB,SAAC,cACjBN,eAACkjB,WAAUE,MAAK,CAAA9iB,SAAC,oBACjBN,eAACkjB,WAAUE,MAAK,CAAA9iB,SAAC,eACjBN,eAACkjB,WAAUE,MAAK,CAAA9iB,SAAC,gBACjBN,eAACkjB,WAAUE,MAAK,CAAA9iB,SAAC,UACjBN,eAACkjB,WAAUE,MAAK,CAAA9iB,SAAC,gBACjBN,eAACkjB,WAAUE,MAAK,CAAA9iB,SAAC,WACjBN,eAACkjB,WAAUE,MAAK,CAAA9iB,SAAC,iBAGlBw9D,EAAmB0C,cAAcxrE,KAAI,SAAC2rE,EAASr9C,GAAK,OACnD/iB,gBAAC2iB,WAAUK,IAAG,CAAAjjB,SAAA,CACVN,eAACkjB,WAAUO,KAAI,CAAAnjB,SAAEqgE,EAAQG,aACzB9gE,eAACkjB,WAAUO,KAAI,CAAAnjB,SAAEqgE,EAAQt0D,YACzBrM,eAACkjB,WAAUO,KAAI,CAAAnjB,SAAEqgE,EAAQE,aACzB7gE,eAACkjB,WAAUO,KAAI,CAAAnjB,SAAEkT,EAAemtD,EAAQC,YACxC5gE,eAACkjB,WAAUO,KAAI,CAAAnjB,SAAEkT,EAAemtD,EAAQC,SAAWD,EAAQE,cAC3D7gE,eAACkjB,WAAUO,KAAI,CAAAnjB,SAAEqgE,EAAQI,aAAe,MAAQ,WAChD/gE,eAACkjB,WAAUO,KAAI,CAAAnjB,SAAEqgE,EAAQK,SACzBhhE,eAACkjB,WAAUO,KAAI,CAAAnjB,SAAEqgE,EAAQM,aART39C,SAYxB/iB,gBAACyC,OAAG,CAAC9C,MAAOC,GAAOs+D,iBAAiBn+D,SAAA,CAChCC,gBAACkH,QAAI,CAAAnH,SAAA,CAACN,eAAA,QAAME,MAAOC,GAAOooD,KAAKjoD,SAAC,8BAAiCkT,EAAe+sD,MAChFhgE,gBAACkH,QAAI,CAAAnH,SAAA,CAACN,eAAA,QAAME,MAAOC,GAAOooD,KAAKjoD,SAAC,8BAAiCw9D,EAAmBoD,UAAU,OAAK1tD,EAAesqD,EAAmBqD,iBACrI5gE,gBAACkH,QAAI,CAAAnH,SAAA,CAACN,eAAA,QAAME,MAAOC,GAAOooD,KAAKjoD,SAAC,mCAAmCkT,EAAesqD,EAAmBsD,2BC1CtGC,GAAuB,WAAO,IAADhB,EAAAC,EAClCxC,EAAqBhiE,yBAAe6hE,IAClCnqD,EAAmBD,KAAnBC,eAEF8tD,EAAuD,OAArCjB,EAAGvC,EAAmByD,sBAAe,EAAlClB,EAAoCI,QAC7D,SAACC,EAAKc,GAAO,OAAKd,EAAMc,EAAQC,QAChC,GAGF,OACEzhE,eAAAkD,YAAA,CAAA5C,WACuC,OAAnCggE,EAACxC,EAAmByD,mBAAnBjB,EAAoCrpE,SACrCsJ,gBAAA2C,YAAA,CAAA5C,SAAA,CACEN,eAACyH,QAAI,CAACvH,MAAOC,GAAOi+D,SAAS99D,SAAC,sBAC9BC,gBAAC2iB,WAAS,CAAA5iB,SAAA,CACRC,gBAAC2iB,WAAUC,OAAM,CAAA7iB,SAAA,CACfN,eAACkjB,WAAUE,MAAK,CAAA9iB,SAAC,cACjBN,eAACkjB,WAAUE,MAAK,CAAA9iB,SAAC,oBACjBN,eAACkjB,WAAUE,MAAK,CAAA9iB,SAAC,eACjBN,eAACkjB,WAAUE,MAAK,CAAA9iB,SAAC,gBACjBN,eAACkjB,WAAUE,MAAK,CAAA9iB,SAAC,UACjBN,eAACkjB,WAAUE,MAAK,CAAA9iB,SAAC,mBAGlBw9D,EAAmByD,gBAAgBvsE,KAAI,SAACwsE,EAASl+C,GAAK,OACrD/iB,gBAAC2iB,WAAUK,IAAG,CAAAjjB,SAAA,CACZN,eAACkjB,WAAUO,KAAI,CAAAnjB,SAAEkhE,EAAQE,aACzB1hE,eAACkjB,WAAUO,KAAI,CAAAnjB,SAAEkhE,EAAQn1D,YACzBrM,eAACkjB,WAAUO,KAAI,CAAAnjB,SAAEkhE,EAAQX,aACzB7gE,eAACkjB,WAAUO,KAAI,CAAAnjB,SAAEkT,EAAeguD,EAAQZ,YACxC5gE,eAACkjB,WAAUO,KAAI,CAAAnjB,SAAEkT,EAAeguD,EAAQC,SACxCzhE,eAACkjB,WAAUO,KAAI,CAAAnjB,SAAEkhE,EAAQT,aAAe,MAAQ,aAN9Bz9C,SAUxB/iB,gBAACyC,OAAG,CAAC9C,MAAOC,GAAOs+D,iBAAiBn+D,SAAA,CAChCC,gBAACkH,QAAI,CAAAnH,SAAA,CAACN,eAAA,QAAME,MAAOC,GAAOooD,KAAKjoD,SAAC,iCAAiCkT,EAAe8tD,MAChF/gE,gBAACkH,QAAI,CAAAnH,SAAA,CAACN,eAAA,QAAME,MAAOC,GAAOooD,KAAKjoD,SAAC,8BAAiCkT,EAAesqD,EAAmB6D,kBAAkB,OAAKnuD,EAAesqD,EAAmB8D,iBAC5JrhE,gBAACkH,QAAI,CAAAnH,SAAA,CAACN,eAAA,QAAME,MAAOC,GAAOooD,KAAKjoD,SAAC,sCAAmCkT,EAAesqD,EAAmB+D,2BCtCtGC,GAAwB,WACnC,IAAMhE,EAAqBhiE,yBAAe6hE,IAClCnqD,EAAmBD,KAAnBC,eAER,OACExT,eAAC2+D,GAAO,CAAAr+D,SACNC,gBAACq+D,GAAW,CAAAt+D,SAAA,CACVN,eAACgD,OAAG,CAAC9C,MAAOC,GAAOoJ,SAASjJ,SAC1BN,eAACyH,QAAI,CAACvH,MAAOC,GAAOooD,KAAKjoD,SAAC,qBAE5BC,gBAACkH,QAAI,CAAAnH,SAAA,CAACN,eAAA,QAAME,MAAOC,GAAOooD,KAAKjoD,SAAC,mCAAmCkT,EAAesqD,EAAmBsD,kBACrG7gE,gBAACkH,QAAI,CAAAnH,SAAA,CAACN,eAAA,QAAME,MAAOC,GAAOooD,KAAKjoD,SAAC,sCAAmCkT,EAAesqD,EAAmB+D,kBACrGthE,gBAACkH,QAAI,CAAAnH,SAAA,CAACN,eAAA,QAAME,MAAOC,GAAOooD,KAAKjoD,SAAC,yBAA4BkT,EAAesqD,EAAmBqD,aAAerD,EAAmB8D,iBAChIrhE,gBAACkH,QAAI,CAAAnH,SAAA,CAACN,eAAA,QAAME,MAAOC,GAAOooD,KAAKjoD,SAAC,oBAAuBkT,EAAesqD,EAAmBiE,cACzF/hE,eAACgD,OAAG,CAAC9C,MAAOC,GAAOm+D,kBAAkBh+D,SACnCN,eAACyH,QAAI,CAAAnH,SAACC,gBAAA,QAAML,MAAOC,GAAOi+D,SAAS99D,SAAA,CAAC,gBAAckT,EAAesqD,EAAmBsD,cAAgBtD,EAAmB+D,4BCXpHG,GAA4C,SAAH9iE,GAE/C,IAADmhE,EADJ/3C,EAAWppB,EAAXopB,YAEMw1C,EAAqBhiE,yBAAe6hE,IAqC1C,OACE39D,eAAAkD,YAAA,CAAA5C,WACyC,OAArC+/D,EAACvC,EAAmBmE,qBAAnB5B,EAAsCppE,SACvCsJ,gBAAA2C,YAAA,CAAA5C,SAAA,CACEN,eAACyH,QAAI,CAACvH,MAAOC,GAAOi+D,SAAS99D,SAAC,8BAC9BC,gBAAC2iB,WAAS,CAAA5iB,SAAA,CACRC,gBAAC2iB,WAAUC,OAAM,CAAA7iB,SAAA,CACfN,eAACkjB,WAAUE,MAAK,CAAA9iB,SAAC,eACjBN,eAACkjB,WAAUE,MAAK,CAAA9iB,SAAC,SACjBN,eAACkjB,WAAUE,MAAK,CAAA9iB,SAAC,cACjBN,eAACkjB,WAAUE,MAAK,CAAA9iB,SAAC,UACjBN,eAACkjB,WAAUE,MAAK,CAAA9iB,SAAC,sBAGlBw9D,EAAmBmE,kBAAkBjtE,KAAI,SAACktE,EAAa5+C,GAAK,OAC3D/iB,gBAAA2C,YAAA,CAAA5C,SAAA,CACEC,gBAAC2iB,WAAUK,IAAG,CAAAjjB,SAAA,CACZC,gBAAC2iB,WAAUO,KAAI,CAAAnjB,SAAA,CAAE4hE,EAAYC,WAAW,MAAID,EAAYE,WACxDpiE,eAACkjB,WAAUO,KAAI,CAAAnjB,SAAEgoB,EAAYnxB,OAAO+qE,EAAYhgD,KAAM,gBACtDliB,eAACkjB,WAAUO,KAAI,CAAAnjB,SAAEgoB,EAAYnxB,OAAO+qE,EAAYG,SAAU,cAC1DriE,eAACkjB,WAAUO,KAAI,CAAAnjB,SAAEgoB,EAAYnxB,OAAO+qE,EAAYI,MAAO,cACvDtiE,eAACkjB,WAAUO,KAAI,CAAAnjB,SAAE4hE,EAAYnD,gBALXz7C,GAOnB4+C,EAAYxsC,aACX11B,eAACkjB,WAAUK,IAAG,CAAAjjB,SACZN,eAACkjB,WAAUO,KAAI,CAAAnjB,SAACN,eAAA,QAAME,MAAOC,GAAOk+D,eAAe/9D,SAAE4hE,EAAYxsC,2BAM3E11B,eAACgD,OAAG,CAAC9C,MAAOC,GAAOs+D,iBAAiBn+D,SAClCC,gBAACkH,QAAI,CAAAnH,SAAA,CAACN,eAAA,QAAME,MAAOC,GAAOooD,KAAKjoD,SAAC,qBAvDb,WAC3B,IAAIiiE,EAAa,EACbC,EAAe,EACfC,EAAe,EAiBnB,OAfA3E,EAAmBmE,kBAAkBl/B,SAAQ,SAACm/B,GAC5C,IAAAQ,EAlBoB,SAACC,EAAqBC,GAC5C,IAAMC,EAAc,IAAI1nD,KAAK,cAAcwnD,GAErCG,EADY,IAAI3nD,KAAK,cAAcynD,GACAG,UAAYF,EAAYE,UAE3D5F,EAAQ6F,KAAKC,MAAMH,EAAyB,MAC5C1F,EAAU4F,KAAKC,MAAOH,EAAyB,KAAW,KAC1DI,EAAUF,KAAKC,MAAOH,EAAyB,IAAS,KAE9D,OAAU3F,EAAMjxD,WAAWkD,SAAS,EAAG,KAAI,IAAIguD,EAAQlxD,WAAWkD,SAAS,EAAG,KAAI,IAAI8zD,EAAQh3D,WAAWkD,SAAS,EAAG,KASjF+zD,CAChC76C,EAAYnxB,OAAO+qE,EAAYG,SAAU,YACzC/5C,EAAYnxB,OAAO+qE,EAAYI,MAAO,aACtChtD,MAAM,KAAKtgB,IAAIgW,QAAOo4D,EAAA1nE,IAAAgnE,EAAA,GAHjBvF,EAAKiG,EAAA,GAAEhG,EAAOgG,EAAA,GAAEF,EAAOE,EAAA,GAI9Bb,GAAcpF,EACdqF,GAAgBpF,EAChBqF,GAAgBS,KAGlBV,GAAgBQ,KAAKC,MAAMR,EAAe,IAC1CA,GAAgB,GAChBF,GAAcS,KAAKC,MAAMT,EAAe,IACxCA,GAAgB,GAEND,EAAWr2D,WAAWkD,SAAS,EAAG,KAAI,IAAIozD,EAAat2D,WAAWkD,SAAS,EAAG,KAAI,IAAIqzD,EAAav2D,WAAWkD,SAAS,EAAG,KAmCpEi0D,cC5EvDC,GAAuB,WAAO,IAADjD,EAAAC,EAClCxC,EAAqBhiE,yBAAe6hE,IAClCnqD,EAAmBD,KAAnBC,eAEF+sD,EAA4D,OAA1CF,EAAGvC,EAAmByF,2BAAoB,EAAvClD,EAAyCI,QAClE,SAACC,EAAKC,GAAO,OAAKD,EAAMC,EAAQc,QAChC,GAGF,OACEzhE,eAAAkD,YAAA,CAAA5C,WAC4C,OAAxCggE,EAACxC,EAAmByF,wBAAnBjD,EAAyCrpE,SAC1CsJ,gBAAA2C,YAAA,CAAA5C,SAAA,CACEN,eAACyH,QAAI,CAACvH,MAAOC,GAAOi+D,SAAS99D,SAAC,kCAC9BC,gBAAC2iB,WAAS,CAAA5iB,SAAA,CACRC,gBAAC2iB,WAAUC,OAAM,CAAA7iB,SAAA,CACfN,eAACkjB,WAAUE,MAAK,CAAA9iB,SAAC,oBACjBN,eAACkjB,WAAUE,MAAK,CAAA9iB,SAAC,eACjBN,eAACkjB,WAAUE,MAAK,CAAA9iB,SAAC,gBACjBN,eAACkjB,WAAUE,MAAK,CAAA9iB,SAAC,UACjBN,eAACkjB,WAAUE,MAAK,CAAA9iB,SAAC,gBACjBN,eAACkjB,WAAUE,MAAK,CAAA9iB,SAAC,cAGlBw9D,EAAmByF,qBAAqBvuE,KAAI,SAACwuE,EAASlgD,GAAK,OAC1D/iB,gBAAC2iB,WAAUK,IAAG,CAAAjjB,SAAA,CACVN,eAACkjB,WAAUO,KAAI,CAAAnjB,SAAEkjE,EAAQn3D,YACzBrM,eAACkjB,WAAUO,KAAI,CAAAnjB,SAAEkjE,EAAQ3C,aACzB7gE,eAACkjB,WAAUO,KAAI,CAAAnjB,SAAEkjE,EAAQ5C,WACzB5gE,eAACkjB,WAAUO,KAAI,CAAAnjB,SAAEkjE,EAAQ/B,QACzBzhE,eAACkjB,WAAUO,KAAI,CAAAnjB,SAAEkjE,EAAQzC,aAAe,MAAQ,WAChD/gE,eAACkjB,WAAUO,KAAI,CAAAnjB,SAAEkjE,EAAQxC,WANT19C,SAUxBtjB,eAACgD,OAAG,CAAC9C,MAAOC,GAAOs+D,iBAAiBn+D,SAChCC,gBAACkH,QAAI,CAAAnH,SAAA,CAACN,eAAA,QAAME,MAAOC,GAAOooD,KAAKjoD,SAAC,kCAAqCkT,EAAe+sD,cChCrFkD,GAA0C,SAAHvkE,GAE7C,IAADmhE,EADJ/3C,EAAWppB,EAAXopB,YAEMw1C,EAAqBhiE,yBAAe6hE,IAE1C,OACE39D,eAAAkD,YAAA,CAAA5C,WACiC,OAA7B+/D,EAACvC,EAAmB4F,aAAnBrD,EAA8BppE,SAC/BsJ,gBAAA2C,YAAA,CAAA5C,SAAA,CACEN,eAACyH,QAAI,CAACvH,MAAOC,GAAOi+D,SAAS99D,SAAC,4BAC9BC,gBAAC2iB,WAAS,CAAA5iB,SAAA,CACRC,gBAAC2iB,WAAUC,OAAM,CAAA7iB,SAAA,CACfN,eAACkjB,WAAUE,MAAK,CAAA9iB,SAAC,SACjBN,eAACkjB,WAAUE,MAAK,CAAA9iB,SAAC,kBACjBN,eAACkjB,WAAUE,MAAK,CAAA9iB,SAAC,YACjBN,eAACkjB,WAAUE,MAAK,CAAA9iB,SAAC,gBACjBN,eAACkjB,WAAUE,MAAK,CAAA9iB,SAAC,cACjBN,eAACkjB,WAAUE,MAAK,CAAA9iB,SAAC,YACjBN,eAACkjB,WAAUE,MAAK,CAAA9iB,SAAC,eACjBN,eAACkjB,WAAUE,MAAK,CAAA9iB,SAAC,kBAGlBw9D,EAAmB4F,UAAU1uE,KAAI,SAAC2uE,EAAcrgD,GAAK,OACpD/iB,gBAAC2iB,WAAUK,IAAG,CAAAjjB,SAAA,CACVN,eAACkjB,WAAUO,KAAI,CAAAnjB,SAAEgoB,EAAYnxB,OAAOwsE,EAAaC,cAAe,gBAChE5jE,eAACkjB,WAAUO,KAAI,CAAAnjB,SAAEqjE,EAAaznC,aAC9Bl8B,eAACkjB,WAAUO,KAAI,CAAAnjB,SAAEqjE,EAAaE,UAC9B7jE,eAACkjB,WAAUO,KAAI,CAAAnjB,SAAEqjE,EAAaG,OAC9B9jE,eAACkjB,WAAUO,KAAI,CAAAnjB,SAAEqjE,EAAa54D,SAC9B/K,eAACkjB,WAAUO,KAAI,CAAAnjB,SAAEqjE,EAAahD,UAC9B3gE,eAACkjB,WAAUO,KAAI,CAAAnjB,SAAEqjE,EAAa9C,aAC9B7gE,eAACkjB,WAAUO,KAAI,CAAAnjB,SAAEqjE,EAAazxD,YARdoR,eCvBrBygD,GAAwC,SAAH7kE,GAE3C,IAADmhE,EADJ/3C,EAAWppB,EAAXopB,YAEMw1C,EAAqBhiE,yBAAe6hE,IAE1C,OACE39D,eAAAkD,YAAA,CAAA5C,WACsC,OAAlC+/D,EAACvC,EAAmBkG,kBAAnB3D,EAAmCppE,SACpCsJ,gBAAA2C,YAAA,CAAA5C,SAAA,CACEN,eAACyH,QAAI,CAACvH,MAAOC,GAAOi+D,SAAS99D,SAAC,8CAC9BC,gBAAC2iB,WAAS,CAAA5iB,SAAA,CACRC,gBAAC2iB,WAAUC,OAAM,CAAA7iB,SAAA,CACfN,eAACkjB,WAAUE,MAAK,CAAA9iB,SAAC,WACjBN,eAACkjB,WAAUE,MAAK,CAAA9iB,SAAC,oBACjBN,eAACkjB,WAAUE,MAAK,CAAA9iB,SAAC,WACjBN,eAACkjB,WAAUE,MAAK,CAAA9iB,SAAC,4BAGlBw9D,EAAmBkG,eAAehvE,KAAI,SAACivE,EAAU3gD,GAAK,OACrD/iB,gBAAA2C,YAAA,CAAA5C,SAAA,CACEC,gBAAC2iB,WAAUK,IAAG,CAAAjjB,SAAA,CACZN,eAACkjB,WAAUO,KAAI,CAAAnjB,SAAEgoB,EAAYnxB,OAAO8sE,EAASrvB,YAAa,sBAC1D50C,eAACkjB,WAAUO,KAAI,CAAAnjB,SAAEgoB,EAAYnxB,OAAO8sE,EAASpvB,UAAW,sBACxD70C,eAACkjB,WAAUO,KAAI,CAAAnjB,SAAE2jE,EAASC,SAC1BlkE,eAACkjB,WAAUO,KAAI,CAAAnjB,SAAE2jE,EAASE,gBAJR7gD,GAMnB2gD,EAASG,WACRpkE,eAACkjB,WAAUK,IAAG,CAAAjjB,SACZN,eAACkjB,WAAUO,KAAI,CAAAnjB,SAACN,eAAA,QAAME,MAAOC,GAAOk+D,eAAe/9D,SAAE2jE,EAASG,+BCjCrEC,GAAyB,WACpC,IAAMvG,EAAqBhiE,yBAAe6hE,IAE1C,OACE39D,eAAAkD,YAAA,CAAA5C,UACIw9D,EAAmBwG,kBAAoBxG,EAAmByG,0BAC1DhkE,gBAAA2C,YAAA,CAAA5C,SAAA,CACEN,eAACyH,QAAI,CAACvH,MAAOC,GAAOi+D,SAAS99D,SAAC,gBAC9BC,gBAACo+D,GAAO,CAAAr+D,SAAA,CACNC,gBAACq+D,GAAW,CAAAt+D,SAAA,CACVN,eAACgD,OAAG,CAAC9C,MAAOC,GAAOoJ,SAASjJ,SAC1BN,eAACyH,QAAI,CAACvH,MAAOC,GAAOooD,KAAKjoD,SAAC,4BAE5BN,eAAA,OAAKwkE,IAAG,yBAA2B1G,EAAmByG,6BAExDhkE,gBAACq+D,GAAW,CAAAt+D,SAAA,CACVN,eAACgD,OAAG,CAAC9C,MAAOC,GAAOoJ,SAASjJ,SAC1BN,eAACyH,QAAI,CAACvH,MAAOC,GAAOooD,KAAKjoD,SAAC,yBAE5BN,eAAA,OAAKwkE,IAAG,yBAA2B1G,EAAmBwG,+B,qkBCT7D,IAAMG,GAAwD,SAAHvlE,GAG3D,IAFLwlE,EAAqBxlE,EAArBwlE,sBACAp8C,EAAWppB,EAAXopB,YAEMtL,EAAc5E,KACpB9c,EAAoDC,yBAAeoiE,IAAwBliE,EAAAC,IAAAJ,EAAA,GAApFwiE,EAAkBriE,EAAA,GAAEkpE,EAAqBlpE,EAAA,GAEhD8vB,0BACEpvB,uBAAY,WACVwoE,GAAsB,SAAAnnE,GAAY,OAAArD,MAAA,GAAUqD,GAAY,IAAEsR,WAAW,OAMrE41D,EACGE,UALqB,CACtBC,SAAU,SAKT79D,MAAK,SAAA64C,GACJ8kB,GAAsB,SAAAnnE,GAAY,OAAArD,MAAA,GAAUqD,GAAiBqiD,SAE9D34C,MAAM8V,GACN5V,SAAQ,kBAAMu9D,GAAsB,SAAAnnE,GAAY,OAAArD,MAAA,GAAUqD,GAAY,IAAEsR,WAAW,YACrF,KAGL,IAAM3O,EAASc,WAAWC,OAAO,CAC/BO,UAAW,CACTC,KAAM,EACNsmC,cAAe,IAEjB3oB,QAAS,CACP0I,eAAgB,EAChBC,iBAAkB,OAClBtmB,KAAM,EACNN,QAAS,GACT+H,MAAO,QAET4+B,OAAQ,CACNrmC,KAAM,EACN4nB,WAAY,MAIhB,OACEtpB,eAACknC,WAAY,CAAChnC,MAAOC,EAAOsB,UAAUnB,SACpCN,eAACgD,OAAG,CAAC9C,MAAOC,EAAOkf,QAAQ/e,SACxBw9D,EAAmBhvD,UAChB9O,eAACyE,GAAO,CAACrB,KAAK,gBACd7C,gBAAC0C,cAAU,CAAC/C,MAAOC,EAAO4nC,OAAOznC,SAAA,CACjCN,eAACwoC,GAAU,IACXxoC,eAAC0+D,GAAU,IACX1+D,eAACg/D,GAAM,CAAC12C,YAAaA,IACrBtoB,eAACogE,GAAU,IACXpgE,eAACqhE,GAAU,IACXrhE,eAAC8hE,GAAW,IACZ9hE,eAACgiE,GAAY,CAAC15C,YAAaA,IAC3BtoB,eAACsjE,GAAU,IACXtjE,eAACyjE,GAAW,CAACn7C,YAAaA,IAC1BtoB,eAAC+jE,GAAU,CAACz7C,YAAaA,IACzBtoB,eAACqkE,GAAY,YCrEZS,GAAgC,SAAH5lE,GAA2D,IAArDs5C,EAAUt5C,EAAVs5C,WAC9C,OACEj4C,gBAAA2C,YAAA,CAAA5C,SAAA,CACEN,eAACykE,GAAkB,CAACn8C,YAAa1wB,IAA0B8sE,sBAAuB3gC,OAClF/jC,eAACy4C,GAAkB,CAACD,WAAYA,Q,+NCP/B,IAAMr4C,GAASc,WAAWC,OAAO,CACtCO,UAAW,CACTC,KAAM,EACNuH,WAAY,WAEdoW,Q,mWAAOllB,CAAA,GACF0tC,GAAaC,aAElBC,OAAQ,CACNC,cAAe,MCTN+8B,GAAsBvmE,eAAK,CACtCxI,IAAK,sBACLyI,SAAS,IAGEumE,GAAaxmE,eAAK,CAC7BxI,IAAK,aACLyI,QAAS,KCRE0B,GAASc,WAAWC,OAAO,CACtCO,UAAW,CACTqI,OAAQ,UACRpI,KAAM,EACNN,QAAS,GACTD,OAAQ,EACRgI,MAAO,OACPsY,SAAU,IACV9O,OAAQ,OACRjJ,SAAU,GACVO,SAAU,SACV5I,aAAc,GACd0rC,YAAa,sBACbC,aAAc,CACZ7jC,MAAO,EACPwJ,OAAQ,GAEVs6B,aAAc,EACduB,mBAAoB,OACpBC,eAAgB,WAChBC,iBAAkB,aAEpB9tC,MAAO,CACL6I,WAAY,MACZC,SAAU,IAEZklC,WAAY,CACV5sC,UAAW,EACX0H,SAAU,MCdDu7D,GAAsC,SAAH/lE,GAAoC,IAA9BsmC,EAAKtmC,EAALsmC,MAAO0/B,EAAehmE,EAAfgmE,gBACrDlrE,EAAQ0F,KAERtD,GAASQ,EADOvB,IAAduB,aAEFmS,EAAanP,4BAAkBulE,IAC/BC,EAAaxlE,4BAAkBylE,IAC/BC,EAAgB1lE,4BAAkB2lE,IAClCvoD,EAAc5E,KAEZpa,EAA0BwnC,EAA1BxnC,WAAY7I,EAAcqwC,EAAdrwC,GAAIiuC,EAAUoC,EAAVpC,MAoBxB,OACEpjC,eAACsb,WAAgB,CAACva,QAAS,kBAnBP,SAAC/C,GACrB,IAAM2uB,EAAgC,CACpC3vB,WAAYZ,EAAOY,WAAWkP,WAC9BlO,WAAYA,EAAWkO,YAGzB6C,GAAW,GAEXm2D,EACGM,WAAW74C,GACX3lB,MAAK,SAAAy+D,GACJL,EAAWK,GACXH,GAAc,MAEfp+D,MAAM8V,GACN5V,SAAQ,kBAAM2H,GAAW,MAIK22D,CAAc1nE,IAAYsC,SACzDN,eAACgD,OAAG,CAAC9C,MAAOC,GAAOsB,UAAUnB,SAC3BC,gBAACC,UAAM,CAACN,MAAO,CAAEwB,KAAM,GAAKgF,MAAM,SAAShG,QAAS,EAAEJ,SAAA,CACpDN,eAACoM,WAAsB,CAACnS,KAAK,cAAcuN,KAAM,GAAI3G,MAAO7G,EAAME,OAAOb,OACzEkH,gBAACkb,UAAM,CAAAnb,SAAA,CACJ8iC,GACCpjC,eAACyH,QAAI,CAACvH,MAAOC,GAAOS,MAAOI,QAAQ,KAAIV,SACpC8iC,IAIHjuC,GACA6K,eAACyH,QAAI,CAACvH,MAAOC,GAAOyuC,WAAY/tC,MAAO7G,EAAME,OAAOR,WAAW4G,SAC5DnL,eCzDJgL,GAASc,WAAWC,OAAO,CACtCO,UAAW,CACTH,QAAS,QAEXV,MAAO,CACL6I,WAAY,MACZ1H,aAAc,KCAL4jE,GAAyB,WACpC,IAAArqE,EAA8BC,yBAAe8pE,IAAkB5pE,EAAAC,IAAAJ,EAAA,GAAxDsqE,EAAOnqE,EAAA,GAAE2pE,EAAU3pE,EAAA,GACpBqT,EAAYhT,yBAAeqpE,IACjCrgE,EAA0BvJ,yBAAegqE,IAAwBxgE,EAAArJ,IAAAoJ,EAAA,GAA1DiJ,EAAMhJ,EAAA,GAAEiJ,EAAOjJ,EAAA,GAChB/K,EAAQ0F,KAEN2K,EAAaC,KAAbD,SAEAg8B,EAA6Cu/B,EAA7Cv/B,YAAaN,EAAgC6/B,EAAhC7/B,IAAK5wC,EAA2BywE,EAA3BzwE,GAAIgxC,EAAuBy/B,EAAvBz/B,OAAQ/C,EAAewiC,EAAfxiC,MAAO6C,EAAQ2/B,EAAR3/B,IAEvC4/B,EAAiB9iE,4BAAA,GACpB/P,YAAS8yE,eAAiB,kBAC1B9yE,YAAS+yE,OAAS,UAClB/yE,YAASgzE,SAAW,YACpBhzE,YAASizE,OAAS,UAClBjzE,YAASkzE,IAAM,OACflzE,YAASmzE,SAAW,YACpBnzE,YAASozE,QAAU,WACpB//B,GAEIl4B,EAAc,WAClBH,GAAQ,GACRo3D,EAAW,KAGb,OACEplE,eAACoO,GAAS,CAACC,QAASN,EAAQO,QAASH,EAAY7N,SAC/CC,gBAACyC,OAAG,CAAC9C,MAAOC,GAAOsB,UAAUnB,SAAA,CAC1BwO,EACG9O,eAACyE,GAAO,IACRlE,gBAACyC,OAAG,CAAA1C,SAAA,CACJN,eAACyH,QAAI,CAACzG,QAAQ,KAAKd,MAAO,CAAEsB,eAAgB,SAAUyH,WAAY,UAAW3I,SAAC,6BAI9EN,eAACwqC,WAAO,CAAC3pC,MAAO7G,EAAME,OAAOtB,QAASsH,MAAO,CAAEiB,OAAQ,SAEvDZ,gBAACgG,SAAK,CAACC,UAAW6D,EAAW,SAAW,MAAO5D,QAAQ,UAASnG,SAAA,CAC7D8iC,GACC7iC,gBAACkb,UAAM,CAAAnb,SAAA,CACLN,eAACyH,QAAI,CAACvH,MAAOC,GAAOS,MAAOI,QAAQ,YAAWV,SAAC,WAC/CN,eAACyH,QAAI,CAACzG,QAAQ,YAAWV,SACtB8iC,OAGNjuC,GACCoL,gBAACkb,UAAM,CAACvb,MAAO,CAAE+I,WAAYoB,EAAW,aAAe,YAAa/J,SAAA,CAClEN,eAACyH,QAAI,CAACvH,MAAOC,GAAOS,MAAOI,QAAQ,YAAWV,SAAC,QAC/CN,eAACyH,QAAI,CAACzG,QAAQ,YAAWV,SAAEnL,UAIjCoL,gBAACgG,SAAK,CAACC,UAAW6D,EAAW,SAAW,MAAO5D,QAAQ,UAASnG,SAAA,CAC7DylC,GACCxlC,gBAACkb,UAAM,CAAAnb,SAAA,CACLN,eAACyH,QAAI,CAACvH,MAAOC,GAAOS,MAAOI,QAAQ,YAAWV,SAAC,SAC/CN,eAACyH,QAAI,CAACzG,QAAQ,YAAWV,SACtBylC,OAGNE,GACC1lC,gBAACkb,UAAM,CAACvb,MAAO,CAAE+I,WAAYoB,EAAW,aAAe,YAAa/J,SAAA,CAClEN,eAACyH,QAAI,CAACvH,MAAOC,GAAOS,MAAOI,QAAQ,YAAWV,SAAC,SAC/CN,eAACyH,QAAI,CAACzG,QAAQ,YAAWV,SAAE2lC,UAIhCE,GACC5lC,gBAACkb,UAAM,CAAAnb,SAAA,CACLN,eAACyH,QAAI,CAACvH,MAAOC,GAAOS,MAAOI,QAAQ,YAAWV,SAAC,YAC/CN,eAACyH,QAAI,CAACzG,QAAQ,YAAWV,SACtB6lC,OAGNE,GACC9lC,gBAACkb,UAAM,CAAAnb,SAAA,CACLN,eAACyH,QAAI,CAACvH,MAAOC,GAAOS,MAAOI,QAAQ,YAAWV,SAAC,iBAC/CN,eAACyH,QAAI,CAACzG,QAAQ,YAAWV,SACtBulE,UAMX7lE,eAACW,UAAM,CACLE,MAAO7G,EAAME,OAAOZ,SACpB0H,QAAQ,OACRJ,MAAM,SACNG,QAASoN,EACTjO,MAAO,CAAEgC,WAAY,gBC9FlBijE,GAA6B3mE,eAAK,CAC7CxI,IAAK,6BACLyI,SAAS,IAGE4mE,GAAoB7mE,eAAK,CACpCxI,IAAK,oBACLyI,QAAS,KAGE8mE,GAA0B/mE,eAAK,CAC1CxI,IAAK,0BACLyI,SAAS,ICGE+rB,GAA8B,SAAHtrB,GAAuD,IAAjDmnE,EAAYnnE,EAAZmnE,aAAcnB,EAAehmE,EAAfgmE,gBACpDlrE,EAAQ0F,KACN9C,EAAcvB,IAAduB,UACFogB,EAAc5E,KACpB9c,EAAgCC,yBAAewpE,IAAoBtpE,EAAAC,IAAAJ,EAAA,GAA5DwT,EAASrT,EAAA,GAAEsT,EAAUtT,EAAA,GAC5BqJ,EAA4BvJ,yBAAeypE,IAAWjgE,EAAArJ,IAAAoJ,EAAA,GAA/CwhE,EAAMvhE,EAAA,GAAEwhE,EAASxhE,EAAA,GAElB3I,EAASQ,IAkBf,OAhBA2uB,0BACEpvB,uBAAY,WACV4S,GAAW,GAEX,IAAM4d,EAAyB,CAC7B3vB,WAAYZ,EAAOY,YAGrBqpE,EACGA,aAAa15C,GACb3lB,KAAKu/D,GACLr/D,MAAM8V,GACN5V,SAAQ,kBAAM2H,GAAW,QAC3B,KAIH/O,eAACknC,WAAY,CAAChnC,MAAOC,GAAOsB,UAAUnB,SACpCC,gBAACyC,OAAG,CAAC9C,MAAOC,GAAOkf,QAAQ/e,SAAA,CACzBN,eAACwoC,GAAU,CACTplC,KAAK,eACLqlC,KAAMzoC,eAAC6G,WAAa,CAAC5M,KAAK,gBAAgBuN,KAAM,GAAI3G,MAAO7G,EAAME,OAAOb,SAE1E2G,eAACiD,cAAU,CAAA3C,SACTN,eAACgnB,GAAQ,CACPlY,UAAWA,EACXmY,UAAgB,MAANq/C,KAAQrvE,QAClBkwB,YAAY,0BAAsB7mB,SAG1B,MAANgmE,OAAM,EAANA,EAAQtxE,KAAI,SAACwwC,EAAOliB,GAAK,OACvBtjB,eAACilE,GAAS,CAERz/B,MAAOA,EACP0/B,gBAAiBA,GAAgB,MAFtB5hD,UAQrBtjB,eAAC2lE,GAAY,UC9DRa,GAA6B,SAAHtnE,GAA8C,IAAxCs5C,EAAUt5C,EAAVs5C,WAC3C,OACEj4C,gBAAA2C,YAAA,CAAA5C,SAAA,CACEN,eAACwqB,GAAK,CACJ67C,aAAc9/B,KACd2+B,gBAAiB1+B,OAEnBxmC,eAACy4C,GAAkB,CAACD,WAAYA,QCVzBiuB,GAA6BjoE,eAAK,CAC7CxI,IAAK,6BACLyI,SAAS,I,+NCDJ,IAAM0B,GAASc,WAAWC,OAAO,CACtCO,UAAW,CACTC,KAAM,EACNuH,WAAY,WAEdoW,Q,mWAAOllB,CAAA,GACF0tC,GAAaC,aAElBC,OAAQ,CACNC,cAAe,IAEjB0+B,UAAW,CACT5kE,gBAAiB,OACjB4kC,cAAe,YACfh9B,SAAU,IAEZu+B,gBAAiB,CACf1mC,cAAe,cACf0H,WAAY,SACZ0J,OAAQ,OACRvR,QAAS,IAEX8mC,QAAS,CACP5mC,QAAS,OACTC,cAAe,MACf0H,WAAY,SACZzH,eAAgB,iBAElB+mD,KAAM,CACJ9+C,WAAY,OAEdF,SAAU,CACRi/C,kBAAmB,EACnBC,kBAAmB,sBACnBzgB,cAAe,EACf1mC,QAAS,OACTC,cAAe,MACfC,eAAgB,gBAChByH,WAAY,UAEdq1D,kBAAmB,CACjBC,eAAgB,EAChBC,eAAgB,sBAChBl1C,WAAY,EACZhoB,QAAS,OACTC,cAAe,MACfC,eAAgB,gBAChByH,WAAY,UAEd09D,eAAgB,CACd5+C,eAAgB,EAChB9lB,YAAa,GACbX,QAAS,OACTC,cAAe,MACf0H,WAAY,SACZzH,eAAgB,cCrDPolE,GAAwB,WACnC,IAEMxqE,GAASQ,EAFOvB,IAAduB,aAIR,OACEoD,eAACQ,UAAM,CACLE,QAAS,GACT+F,QAAQ,UACRvG,MAAO,CAAEiJ,MAAO,QAChBu/B,MAAI,EAAApoC,SAEJC,gBAACq+D,GAAW,CAAC5iD,SAAU,OAAO1b,SAAA,CAC5BN,eAACgD,OAAG,CAAC9C,MAAOC,GAAOoJ,SAASjJ,SAC1BN,eAACyH,QAAI,CAACvH,MAAOC,GAAOooD,KAAKjoD,SAAC,mBAE5BC,gBAAC6pC,GAAU,CAAA9pC,SAAA,CACTC,gBAACkb,UAAM,CAACvb,MAAO,CAAEwB,KAAM,GAAIpB,SAAA,CACzBN,eAACyH,QAAI,CAACvH,MAAOC,GAAOooD,KAAKjoD,SAAC,oBAC1BN,eAACyH,QAAI,CAAAnH,SAAGlE,EAAOa,iBAEjBsD,gBAACkb,UAAM,CAACvb,MAAO,CAAEwB,KAAM,GAAIpB,SAAA,CACzBN,eAACyH,QAAI,CAACvH,MAAOC,GAAOooD,KAAKjoD,SAAC,aAC1BN,eAACyH,QAAI,CAAAnH,SAAGlE,EAAOyiE,SAAWziE,EAAOyiE,SAAW,wBAE9Ct+D,gBAACkb,UAAM,CAACvb,MAAO,CAAEwB,KAAM,GAAIpB,SAAA,CACzBN,eAACyH,QAAI,CAACvH,MAAOC,GAAOooD,KAAKjoD,SAAC,aAC1BN,eAACyH,QAAI,CAAAnH,SAAGlE,EAAOyqE,gBAGnBtmE,gBAAC6pC,GAAU,CAAA9pC,SAAA,CACTC,gBAACkb,UAAM,CAACvb,MAAO,CAAEwB,KAAM,GAAIpB,SAAA,CACzBN,eAACyH,QAAI,CAACvH,MAAOC,GAAOooD,KAAKjoD,SAAC,WAC1BN,eAACyH,QAAI,CAAAnH,SAAGlE,EAAOgB,MAAQhB,EAAOgB,MAAQ,wBAExCmD,gBAACkb,UAAM,CAACvb,MAAO,CAAEwB,KAAM,GAAIpB,SAAA,CACzBN,eAACyH,QAAI,CAACvH,MAAOC,GAAOooD,KAAKjoD,SAAC,aAC1BN,eAACyH,QAAI,CAAAnH,SAAGlE,EAAOg6B,WAAah6B,EAAOk6B,UAAel6B,EAAOg6B,UAAS,IAAIh6B,EAAOk6B,UAAc,wBAE7F/1B,gBAACkb,UAAM,CAACvb,MAAO,CAAEwB,KAAM,GAAIpB,SAAA,CACzBN,eAACyH,QAAI,CAACvH,MAAOC,GAAOooD,KAAKjoD,SAAC,gBAC1BN,eAACyH,QAAI,CAAAnH,SACAlE,EAAO0qE,cAAclkC,SAAQ,KAAKxmC,EAAO0qE,cAAc96B,OAAM,MAC7D5vC,EAAO0qE,cAAczrB,OAAM,MAAMj/C,EAAO0qE,cAAc3rB,OAAM,IAAI/+C,EAAO0qE,cAAc1rB,qBCnCzF2rB,GAA4C,SAAH7nE,GAAyB,IAAnBopB,EAAWppB,EAAXopB,YACpDtuB,EAAQ0F,KACN9C,EAAcvB,IAAduB,UACA0F,EAAmBC,KAAnBD,eAEF0L,GADqBuF,KAAnBC,eACQ5T,4BAAkB6mE,KAE5BrqE,EAASQ,IACTgG,EAAcN,IAEpB,OACEtC,eAAC2+D,GAAO,CAAAr+D,SACNC,gBAACq+D,GAAW,CAAC5iD,SAAU,OAAO1b,SAAA,CAC5BN,eAACgD,OAAG,CAAC9C,MAAOC,GAAOoJ,SAASjJ,SAC1BC,gBAACkH,QAAI,CAACvH,MAAOC,GAAOooD,KAAKjoD,SAAA,CAAC,YAAUlE,EAAO4qE,aAAe5qE,EAAO4qE,iBAEnEzmE,gBAAC6pC,GAAU,CAAA9pC,SAAA,CACTC,gBAACkb,UAAM,CAACvb,MAAO,CAAEwB,KAAM,GAAIpB,SAAA,CACzBN,eAACyH,QAAI,CAACvH,MAAOC,GAAOooD,KAAKjoD,SAAC,cAC1BN,eAACyH,QAAI,CAAAnH,SAAEgoB,EAAYnxB,OAAOiF,EAAO6qE,oBAAqB,mBAExD1mE,gBAACkb,UAAM,CAACvb,MAAO,CAAEwB,KAAM,GAAIpB,SAAA,CACzBN,eAACyH,QAAI,CAACvH,MAAOC,GAAOooD,KAAKjoD,SAAC,uBAC1BN,eAACyH,QAAI,CAAAnH,SAAElE,EAAO8qE,sBAGjB9qE,EAAOqJ,2BACNzF,eAACQ,UAAM,CAACiG,QAAQ,MAAKnG,SACnBN,eAACW,UAAM,CACLgrB,QAAS3rB,eAACoM,WAAsB,CAACvL,MAAO7G,EAAME,OAAOnC,MAAOyP,KAAM,GAAIvN,KAAK,QAC3E2G,MAAM,eACNC,MAAO+B,EAAYoB,UACnBlD,UAAW9G,EAAME,OAAOnC,MACxBgJ,QAAS,kBAAMiN,GAAQ,c,qkBCjC9B,IAAMm5D,GAA4D,SAAHjoE,GAAyB,IAADkoE,EAAlB9+C,EAAWppB,EAAXopB,YACpEtuB,EAAQ0F,KACN8T,EAAmBD,KAAnBC,eACRlY,EAA0BC,yBAAekrE,IAA2BhrE,EAAAC,IAAAJ,EAAA,GAA7DyS,EAAMtS,EAAA,GAAEuS,EAAOvS,EAAA,GAGhBW,GAASQ,EAFOvB,IAAduB,aAIFuR,EAAc,WAAH,OAAeH,GAAQ,IAElCq5D,EAAeltE,MAAA,GAChBgG,GAAOumE,WAAS,IACnB7lE,MAAO7G,EAAME,OAAOR,aAGtB,OACE6G,gBAAC6N,GAAS,CAACC,QAASN,EAAQO,QAASH,EAAY7N,SAAA,CAC/CN,eAACiD,cAAU,CAAC/C,MAAOC,GAAO4nC,OAAOznC,SAC/BC,gBAACkb,UAAM,CAACvb,MAAOC,GAAOsB,UAAWf,QAAS,GAAGJ,SAAA,CAC3CN,eAACgD,OAAG,CAAC9C,MAAOC,GAAOoJ,SAASjJ,SAC1BN,eAACyH,QAAI,CAACzG,QAAQ,KAAKd,MAAOC,GAAOooD,KAAKjoD,SAAElE,EAAO4qE,YAAW,wBAA2B5qE,EAAO4qE,YAAgB,8BAE9GzmE,gBAACyC,OAAG,CAAA1C,SAAA,CACFN,eAACyH,QAAI,CAACvH,MAAOC,GAAOooD,KAAKjoD,SAAC,6BAC1BN,eAACyH,QAAI,CAAAnH,SAAEgoB,EAAYnxB,OAAOiF,EAAO6qE,oBAAqB,mBAExD1mE,gBAACyC,OAAG,CAAA1C,SAAA,CACFN,eAACyH,QAAI,CAACvH,MAAOC,GAAOooD,KAAKjoD,SAAC,8BAC1BN,eAACyH,QAAI,CAAAnH,SAC2D,eAA7DgoB,EAAYnxB,OAAOiF,EAAOkrE,gBAAiB,cACxC,kBACAh/C,EAAYnxB,OAAOiF,EAAOkrE,gBAAiB,mBAInD/mE,gBAACyC,OAAG,CAAA1C,SAAA,CACFN,eAACyH,QAAI,CAACvH,MAAOC,GAAOooD,KAAKjoD,SAAC,uBAC1BN,eAACyH,QAAI,CAAAnH,SAAElE,EAAO8qE,mBAEhB3mE,gBAACyC,OAAG,CAAA1C,SAAA,CACFN,eAACyH,QAAI,CAACvH,MAAOC,GAAOooD,KAAKjoD,SAAC,iBAC1BN,eAACyH,QAAI,CAAAnH,SAAEkT,EAAepX,EAAOmrE,kBAE/BvnE,eAACgD,OAAG,CAAA1C,SACFN,eAACyH,QAAI,CAACvH,MAAOC,GAAOooD,KAAKjoD,SAAC,kBAE5BN,eAACyb,UAAM,CAAC/a,QAAS,EAAG8mE,GAAI,EAAElnE,SACS,OADT8mE,EACvBhrE,EAAOqrE,gCAAyB,EAAhCL,EAAkCpyE,KAAI,SAACwsE,EAASl+C,GAAK,OACpDtjB,eAAC2+D,GAAO,CAAAr+D,SACNC,gBAACq+D,GAAW,CAACn9C,SAAU,OAAOnhB,SAAA,CAC5BN,eAACgD,OAAG,CAAC9C,MAAOC,GAAOoJ,SAASjJ,SAC1BN,eAACyH,QAAI,CAACzG,QAAQ,YAAYd,MAAOC,GAAOooD,KAAKjoD,SAAEkhE,EAAQkG,wBAEzDnnE,gBAACyC,OAAG,CAAA1C,SAAA,CACFN,eAACyH,QAAI,CAACzG,QAAQ,YAAYd,MAAOC,GAAOooD,KAAKjoD,SAAC,eAC9CN,eAACyH,QAAI,CAACzG,QAAQ,YAAYd,MAAO,CAAEuJ,WAAY,UAAWnJ,SAAEkhE,EAAQmG,0BAEtEpnE,gBAACyC,OAAG,CAAA1C,SAAA,CACFN,eAACyH,QAAI,CAACzG,QAAQ,YAAYd,MAAOC,GAAOooD,KAAKjoD,SAAC,gBAC9CN,eAACyH,QAAI,CAACzG,QAAQ,YAAYd,MAAO,CAAEuJ,WAAY,UAAWnJ,SAAEkT,EAAeguD,EAAQoG,sBAErFrnE,gBAACyC,OAAG,CAAA1C,SAAA,CACFN,eAACyH,QAAI,CAACzG,QAAQ,YAAYd,MAAOC,GAAOooD,KAAKjoD,SAAC,iCAC9CC,gBAACkH,QAAI,CAACzG,QAAQ,YAAYd,MAAO,CAAEuJ,WAAY,UAAWnJ,SAAA,CAAEuV,QAAQC,IAAIwS,EAAYnxB,OAAOqqE,EAAQqG,aAAc,eACnD,eAA3Dv/C,EAAYnxB,OAAOqqE,EAAQqG,aAAc,cACtCv/C,EAAYnxB,OAAOqqE,EAAQqG,aAAc,cACzCv/C,EAAYnxB,OAAOiF,EAAO6qE,oBAAqB,wBAI3C,sBAtBoB3jD,aA4B5C/iB,gBAACyC,OAAG,CAAA1C,SAAA,CACFN,eAACwqC,WAAO,CAAC3pC,MAAO7G,EAAME,OAAOX,aAC7BgH,gBAACC,UAAM,CAACN,MAAOC,GAAOwmE,eAAgBjmE,QAAS,EAAEJ,SAAA,CAC/CN,eAACwqC,WAAO,CAAC3pC,MAAO7G,EAAME,OAAOX,aAC7ByG,eAACW,UAAM,CACLK,QAAQ,OACRJ,MAAM,SACNo5C,WAAYqtB,EACZh+C,sBAAuBg+C,EACvBtmE,QAASoN,cCpFRuc,GAAoC,SAAHxrB,GAAyB,IAAnBopB,EAAWppB,EAAXopB,YAC5CtuB,EAAQ0F,KAEd,OACEa,gBAAC2mC,WAAY,CAAChnC,MAAOC,GAAOsB,UAAUnB,SAAA,CACpCN,eAACiD,cAAU,CAAC/C,MAAOC,GAAO4nC,OAAOznC,SAC/BC,gBAACyC,OAAG,CAAC9C,MAAOC,GAAOkf,QAAQ/e,SAAA,CACzBN,eAACwoC,GAAU,CACXplC,KAAK,eACLqlC,KAAMzoC,eAACoM,WAAsB,CAAC5E,KAAM,GAAI3G,MAAO7G,EAAME,OAAOb,KAAMY,KAAK,yBAErEsG,gBAACgG,SAAK,CAACC,UAAW,SAASlG,SAAA,CACzBN,eAAC4mE,GAAW,IACZ5mE,eAAC+mE,GAAY,CAACz+C,YAAaA,YAInCtoB,eAACmnE,GAAoB,CAAC7+C,YAAaA,QC1B5Bw/C,GAAsB,SAAH5oE,GAA2D,IAArDs5C,EAAUt5C,EAAVs5C,WACpC,OACEj4C,gBAAA2C,YAAA,CAAA5C,SAAA,CACEN,eAAC0qB,GAAQ,CAACpC,YAAa1wB,MACvBoI,eAACy4C,GAAkB,CAACD,WAAYA,QCPzBuvB,GAA2BvpE,eAAK,CAC3CxI,IAAK,2BACLyI,SAAS,IASEupE,GAAiBxpE,eAAiB,CAC7CxI,IAAK,iBACLyI,QAAS,O,+NCZJ,IAAM0B,GAASc,WAAWC,OAAO,CACtCO,UAAW,CACTC,KAAM,EACNuH,WAAY,WAEdoW,Q,mWAAOllB,CAAA,GACF0tC,GAAaC,aAElBC,OAAQ,CACNC,cAAe,IAEjBr6B,WAAY,CACVrM,QAAS,OACTC,cAAe,MACfC,eAAgB,WAChBkM,IAAK,K,qkBCFF,IAAMid,GAAoD,SAAHzrB,GAA+C,IAAzC+oE,EAAoB/oE,EAApB+oE,qBAAsB3/C,EAAWppB,EAAXopB,YAClFtuB,EAAQ0F,KACN9C,EAAcvB,IAAduB,UACFogB,EAAc5E,KACpB9c,EAAoDC,yBAAewsE,IAAyBtsE,EAAAC,IAAAJ,EAAA,GAArF4sE,EAAmBzsE,EAAA,GAAE0sE,EAAoB1sE,EAAA,GAChDqJ,EAAkCvJ,yBAAeysE,IAAejjE,EAAArJ,IAAAoJ,EAAA,GAAzDsjE,EAASrjE,EAAA,GAAEsjE,EAAYtjE,EAAA,GAExB3I,EAASQ,IAmBT0rE,EAAsB,WAC1B,IAAMC,EAA4B,MAATH,OAAS,EAATA,EAAWtqE,MAAK,SAAC0qE,GAAc,OAAKA,EAAKrmD,cAElE,OAAOomD,EAAmBA,EAAiBpzE,GAAK,GA2BlD,OAFA+P,qBAAU,kBA7CoB,WAI5B,IAHA,IAAM+qB,EAAc3H,EAAY/wB,QAAQkxB,cAClCggD,EAAqB,GAElBt0D,EAAI,EAAGA,EAAI,EAAGA,IAAK,CAC1B,IAAMu0D,EAAqB,CACzBvzE,GAAI86B,EAAc9b,EAClB9H,UAAU,IAAI4jB,EAAc9b,GAC5BgO,YAAY,GAGdsmD,EAAmBvxD,KAAKwxD,GAG1BL,EAAaI,GA+BCE,KAAyB,IAGvCpoE,gBAAC2mC,WAAY,CAAChnC,MAAOC,GAAOsB,UAAUnB,SAAA,CACpCC,gBAACyC,OAAG,CAAC9C,MAAOC,GAAOkf,QAAQ/e,SAAA,CACzBN,eAACwoC,GAAU,CACTplC,KAAK,iCACLqlC,KAAMzoC,eAAC6G,WAAa,CAACW,KAAM,GAAI3G,MAAO7G,EAAME,OAAOb,KAAMY,KAAK,mBAEhE+F,eAACqhB,EAAOC,QAAO,CACbrd,MAAO,0BACPsd,YAAuC,IAA1B+mD,IAA8B,GAAKA,IAAsBp8D,WACtEsV,OAAQ,kBAAM2mD,GAAqB,IACnCjoE,MAAO,CAAE6B,aAAc,KAEzB/B,eAACgD,OAAG,CAAC9C,MAAOC,GAAOwN,WAAWrN,SAC5BN,eAACW,UAAM,CACL2G,SAAoC,IAA1BghE,IACV1nE,MAAM,SACNG,QA9ByB,WACjC,IAAMulD,EAAyC,CAC7CtpD,WAAYZ,EAAOY,WACnBipC,IAAKqiC,KAGPL,EACGW,kBAAkBtiB,GAClBp/C,MAAM8V,IAuBDlc,UAAW9G,EAAME,OAAOnC,MACxB8I,MAAO7G,EAAME,OAAOxB,eAI1BsH,eAACqhB,EAAOW,MAAK,CACXjU,OAAQm6D,EACR55D,QAAS,kBAAM65D,GAAqB,IACpC/lD,SAAU,SAACjtB,GAAE,OAlDU,SAACA,GAC5B,IAAM0zE,EAAmBT,EAAUpzE,KAAI,SAAC0zE,GACtC,OAAIA,EAASvzE,KAAOA,EAAIgF,MAAA,GAAYuuE,GAAQ,IAAEvmD,YAAY,IACjDumD,EAASvmD,WAAYhoB,MAAA,GAAYuuE,GAAQ,IAAEvmD,YAAY,IAEzDumD,KAGTL,EAAaQ,GA0CSC,CAAqB3zE,IACvCyL,MAAO,sCACP8F,MAAO0hE,QC9FFW,GAA8B,SAAH7pE,GAA2D,IAArDs5C,EAAUt5C,EAAVs5C,WAC5C,OACEj4C,gBAAA2C,YAAA,CAAA5C,SAAA,CACEN,eAAC2qB,GAAgB,CACfs9C,qBAAsB7iC,KACtB9c,YAAa1wB,MAEfoI,eAACy4C,GAAkB,CAACD,WAAYA,Q,qkBCoBtC,IAAM/D,GAASu0B,qBAEFC,GAA6B,WAAO,IAADC,EAAAC,EAAAC,EAAAC,EAAAC,EAAAC,EAAAC,EAAAC,EAAAC,EAAAC,EAAAC,EAAAC,EAAAC,EAAAC,EAAAC,EAAAC,EAAAC,EAAAC,EAAAC,EAAAC,EAAAC,EACtChoE,EAAmBC,KAAnBD,eAGFlG,GAASQ,EAFOvB,IAAduB,aAGFgG,EAAcN,IAEdioE,EAAoC,OAArBrB,EAAS,MAAN9sE,GAAc,OAAR+sE,EAAN/sE,EAAQ0wB,aAAF,EAANq8C,EAAgBp8D,KAAEm8D,EACpCsB,EAA6C,OAAzBpB,EAAS,MAANhtE,GAAc,OAARitE,EAANjtE,EAAQ0wB,aAAF,EAANu8C,EAAgBp8D,SAAMm8D,EAC7CqB,EAA4C,OAA7BnB,EAAS,MAANltE,GAAc,OAARmtE,EAANntE,EAAQ0wB,aAAF,EAANy8C,EAAgBv8D,aAAUs8D,EAC5CoB,EAAmD,OAAhClB,EAAS,MAANptE,GAAc,OAARqtE,EAANrtE,EAAQ0wB,aAAF,EAAN28C,EAAgB/mB,gBAAa8mB,EACnDmB,EAA4C,OAAzBjB,EAAS,MAANttE,GAAc,OAARutE,EAANvtE,EAAQ0wB,aAAF,EAAN68C,EAAgBv8D,SAAMs8D,EAC5CkB,EAAsC,OAAtBhB,EAAS,MAANxtE,GAAc,OAARytE,EAANztE,EAAQ0wB,aAAF,EAAN+8C,EAAgBt8D,MAAGq8D,EACtCiB,EAAuD,OAAhCf,EAAS,MAAN1tE,GAAc,OAAR2tE,EAAN3tE,EAAQ0wB,aAAF,EAANi9C,EAAgB78D,gBAAa48D,EACvDgB,EAA4C,OAAzBd,EAAS,MAAN5tE,GAAc,OAAR6tE,EAAN7tE,EAAQ0wB,aAAF,EAANm9C,EAAgB98D,SAAM68D,EAC5Ce,EAAwD,OAA/Bb,EAAS,MAAN9tE,GAAc,OAAR+tE,EAAN/tE,EAAQ0wB,aAAF,EAANq9C,EAAgB38D,eAAY08D,EACxDc,EAAiD,OAA3BZ,EAAS,MAANhuE,GAAc,OAARiuE,EAANjuE,EAAQ0wB,aAAF,EAANu9C,EAAgB58D,WAAQ28D,EAEjDa,E3bhCkB,U2bgCF,MAAN7uE,OAAM,EAANA,EAAQY,cAAmC,MAANZ,GAAa,OAAPkuE,EAANluE,EAAQgB,YAAF,EAANktE,EAAeptE,SAAS,2BACvEguE,GAAYD,EAKP9wE,MAAA,GACFwvB,IACAiB,IAoMT,OACE5qB,eAACmrE,WAAmB,CAACC,SAAUprE,eAACyE,GAAO,IAAInE,SACzCC,gBAACk0C,GAAOrN,UAAS,CACfC,cAAe,CACbgkC,sBAAuBzoE,EAAYoB,UACnCsnE,gBAAiB,GACjBC,OAAQ,SAAC3kE,GAAU,OAAK5G,eAACmjB,GAAMhpB,GAAA,GAAKyM,MAEtC4kE,cAAe,SAAA5kE,GAAK,OAAI5G,eAACipB,GAAY9uB,GAAA,GAAKyM,KAC1C6kE,iBAAkBR,EAAU,OAAS,OAAO3qE,SAAA,CAE3C4qE,GA1JL3qE,gBAAA2C,YAAA,CAAA5C,SAAA,CACEN,eAACy0C,GAAO/M,OAAM,CACZ3pB,QAAS,CACPnd,MAAO,2BACP8qE,YAAa,OACbC,WAAY,SAAC/kE,GAAK,OAAM5G,eAACoM,WAAsBjS,GAAA,CAACF,KAAK,gBAAmB2M,MAE1E3M,KAAMyvB,GAAgBG,KACtB8d,UAAWoc,KAEZymB,GACCxqE,eAACy0C,GAAO/M,OAAM,CACZ3pB,QAAS,CACPnd,MAAO,iCACP8qE,YAAa,aACbC,WAAY,SAAC/kE,GAAK,OAAM5G,eAAC6G,WAAa1M,GAAA,CAACF,KAAK,gBAAmB2M,MAEjE3M,KAAMyvB,GAAgBI,UACtB6d,UAAW4Q,KAGdiyB,GACCxqE,eAACy0C,GAAO/M,OAAM,CACZ3pB,QAAS,CACPnd,MAAO,qDACP8qE,YAAa,iCACbC,WAAY,SAAC/kE,GAAK,OAAM5G,eAAC6G,WAAa1M,GAAA,CAACF,KAAK,gBAAmB2M,MAEjE3M,KAAMyvB,GAAgBiB,iBACtBgd,UAAWohC,KAGdwB,GACCvqE,eAACy0C,GAAO/M,OAAM,CACZ3pB,QAAS,CACPnd,MAAO,wCACP8qE,YAAa,uBACbC,WAAY,SAAC/kE,GAAK,OAAM5G,eAAC6G,WAAa1M,GAAA,CAACF,KAAK,gBAAmB2M,MAEjE3M,KAAMyvB,GAAgBQ,cACtByd,UAAW6a,KAGdioB,GACCzqE,eAACy0C,GAAO/M,OAAM,CACZ3pB,QAAS,CACPnd,MAAO,oCACP8qE,YAAa,gBACbC,WAAY,SAAC/kE,GAAK,OAAM5G,eAACoM,WAAsBjS,GAAA,CAACF,KAAK,yBAA4B2M,MAEnF3M,KAAMyvB,GAAgBK,SACtB4d,UAAWmkB,KAGd6e,GACC3qE,eAACy0C,GAAO/M,OAAM,CACZ3pB,QAAS,CACPnd,MAAO,gCACP8qE,YAAa,YACbC,WAAY,SAAC/kE,GAAK,OAAM5G,eAACoM,WAAsBjS,GAAA,CAACF,KAAK,uBAA0B2M,MAEjF3M,KAAMyvB,GAAgBS,WACtBwd,UAAW6c,KAGdsmB,GACC9qE,eAACy0C,GAAO/M,OAAM,CACZ3pB,QAAS,CACPnd,MAAO,mCACP8qE,YAAa,kBACbC,WAAY,SAAC/kE,GAAK,OAAM5G,eAACoM,WAAsBjS,GAAA,CAACF,KAAK,kBAAqB2M,MAE5E3M,KAAMyvB,GAAgBU,YACtBud,UAAW+1B,KAGdgN,GACC1qE,eAACy0C,GAAO/M,OAAM,CACZ3pB,QAAS,CACPnd,MAAO,uCACP8qE,YAAa,mBACbC,WAAY,SAAC/kE,GAAK,OAAM5G,eAACoM,WAAsBjS,GAAA,CAACF,KAAK,8BAAiC2M,MAExF3M,KAAMyvB,GAAgBO,eACtB0d,UAAWggB,KAGdkjB,GACC7qE,eAACy0C,GAAO/M,OAAM,CACZ3pB,QAAS,CACPnd,MAAO,oCACP8qE,YAAa,gBACbC,WAAY,SAAC/kE,GAAK,OAAM5G,eAACoM,WAAsBjS,GAAA,CAACF,KAAK,uBAA0B2M,MAEjF3M,KAAMyvB,GAAgBa,WACtBod,UAAWswB,KAGd2S,GACC5qE,eAACy0C,GAAO/M,OAAM,CACZ3pB,QAAS,CACPnd,MAAO,0BACP8qE,YAAa,MACbC,WAAY,SAAC/kE,GAAK,OAAM5G,eAAC6G,WAAa1M,GAAA,CAACF,KAAK,iBAAoB2M,MAElE3M,KAAMyvB,GAAgBM,IACtB2d,UAAWwmB,KAGd4c,GACC/qE,eAACy0C,GAAO/M,OAAM,CACZ3pB,QAAS,CACPnd,MAAO,mCACP8qE,YAAa,eACbC,WAAY,SAAC/kE,GAAK,OAAM5G,eAAC6G,WAAa1M,GAAA,CAACF,KAAK,iBAAoB2M,MAElE3M,KAAMyvB,GAAgBc,MACtBmd,UAAW6+B,KAGfxmE,eAACy0C,GAAO/M,OAAM,CACZ3pB,QAAS,CACPnd,MAAO,kCACPgrE,aAAa,EACbF,YAAa,cACbJ,gBAAiB,CAAEhqE,QAAS,SAE9BrH,KAAMyvB,GAAgBe,SACtBkd,UAAWm9B,KAEZkG,GACChrE,eAACy0C,GAAO/M,OAAM,CACZ3pB,QAAS,CACPnd,MAAO,mCACP8qE,YAAa,eACbC,WAAY,SAAC/kE,GAAK,OAAM5G,eAACoM,WAAsBjS,GAAA,CAACF,KAAK,qBAAwB2M,MAE/E3M,KAAMyvB,GAAgBgB,SACtBid,UAAWmgC,QAiBZmD,GA1ML1qE,gBAAA2C,YAAA,CAAA5C,SAAA,CACEN,eAACy0C,GAAO/M,OAAM,CACZ3pB,QAAS,CACPnd,MAAO,2BACP8qE,YAAa,OACbC,WAAY,SAAC/kE,GAAK,OAAM5G,eAACoM,WAAsBjS,GAAA,CAACF,KAAK,iBAAoB2M,MAE3E3M,KAAMyvB,GAAgBmB,MACtB8c,UAAWiB,KACb5oC,eAACy0C,GAAO/M,OAAM,CACZ3pB,QAAS,CACPnd,MAAO,gCACP8qE,YAAa,uBACbC,WAAY,SAAC/kE,GAAK,OAAM5G,eAACoM,WAAsBjS,GAAA,CAACF,KAAK,iBAAoB2M,MAE3E3M,KAAMyvB,GAAgBsB,iBACtB2c,UAAWsB,KACbjpC,eAACy0C,GAAO/M,OAAM,CACZ3pB,QAAS,CACPnd,MAAO,8BACP8qE,YAAa,UACbC,WAAY,SAAC/kE,GAAK,OAAM5G,eAACoM,WAAsBjS,GAAA,CAACF,KAAK,uBAA0B2M,MAEjF3M,KAAMyvB,GAAgB7E,eACtB8iB,UAAWiD,KAEb5qC,eAACy0C,GAAO/M,OAAM,CACZ3pB,QAAS,CACPnd,MAAO,8BACP8qE,YAAa,sBACbC,WAAY,SAAC/kE,GAAK,OAAM5G,eAACoM,WAAsBjS,GAAA,CAACF,KAAK,eAAkB2M,MAEzE3M,KAAMyvB,GAAgBoB,QACtB6c,UAAWC,KAEb5nC,eAACy0C,GAAO/M,OAAM,CACZ3pB,QAAS,CACPnd,MAAO,oCACP8qE,YAAa,gBACbC,WAAY,SAAC/kE,GAAK,OAAM5G,eAACoM,WAAsBjS,GAAA,CAACF,KAAK,SAAY2M,MAEnE3M,KAAMyvB,GAAgBqB,YACtB4c,UAAWlB,cCpGNhiC,GAAiC,SAAHvF,GAAkB,IAAZkE,EAAIlE,EAAJkE,KAGzCR,GAAcN,EAFOC,KAAnBD,kBAIR,OACE/B,gBAACyC,OAAG,CAAC9C,MAAOC,GAAOsB,UAAUnB,SAAA,CAC3BN,eAACmnC,qBAAiB,CAAC3/B,KAAK,QAAQ3G,MAAO+B,EAAYoB,cAChDZ,GACDpD,eAACyH,QAAI,CAACvH,MAAO,CAAEuJ,WAAY,MAAOzH,UAAW,IAAK1B,SAAE8C,QAMtDjD,GAASc,WAAWC,OAAO,CAC/BO,UAAW,CACTC,KAAM,EACNuH,WAAY,SACZzH,eAAgB,SAChBkrC,UAAW,UC3BFvsC,GAASc,WAAWC,OAAO,CACtCO,UAAW,CACTH,QAAS,OACToM,IAAK,IAEPC,WAAY,CACVrM,QAAS,OACTC,cAAe,MACfC,eAAgB,WAChBkM,IAAK,KCIIm+D,GAAgC,SAAH3sE,GAInC,IAHL4sE,EAAY5sE,EAAZ4sE,aACAC,EAAa7sE,EAAb6sE,cACAzjD,EAAWppB,EAAXopB,YAEMtuB,EAAQ0F,KACd28C,EAAgDhhD,IAAxCa,EAAMmgD,EAANngD,OAAQU,EAASy/C,EAATz/C,UAAWL,EAAgB8/C,EAAhB9/C,iBAC3BjB,EAA0BC,yBAAeywE,IAAkBvwE,EAAAC,IAAAJ,EAAA,GAApDyS,EAAMtS,EAAA,GAAEuS,EAAOvS,EAAA,GAEhBW,EAASQ,IAsBTuR,EAAc,WAAH,OAAeH,GAAQ,IAExC,OACEhO,eAACoO,GAAS,CAACC,QAASN,EAAQO,QAASH,EAAY7N,SAC/CC,gBAACyC,OAAG,CAAC9C,MAAOC,GAAOsB,UAAUnB,SAAA,CAC3BN,eAACyH,QAAI,CAACzG,QAAQ,YAAWV,SAAC,iCAE1BC,gBAACyC,OAAG,CAAC9C,MAAOC,GAAOwN,WAAWrN,SAAA,CAC5BN,eAACW,UAAM,CACLE,MAAO7G,EAAME,OAAOqU,OACpBzN,UAAW9G,EAAME,OAAOnC,MACxBiJ,QAAQ,OACRJ,MAAM,WACNG,QAASoN,IAEXnO,eAACW,UAAM,CACLC,MAAM,OACNG,QArCW,WACnB,IAAMkrE,EAAY1vE,IAClBL,IACI+vE,I9bRkB,Q8bQO//D,aACtB4/D,EACF5vE,OAAO,CAAEi7B,QAAS75B,SAAS2uE,GAAYtuB,qBACvCz2C,MAAM2O,QAAQzf,OACZ21E,EACFzwB,SAAS,CACRsI,eAAgBt7B,EAAYnxB,OAAOmxB,EAAY/wB,QAAS,wBACxD6F,MAAOhB,EAAOgB,MACd4jB,QAAS5kB,EAAO4kB,QAChB9O,QAAS9V,EAAOY,WAAWkP,WAC3B23C,OAAQlG,aAETz2C,MAAM2O,QAAQzf,QAEnB4X,GAAQ,IAqBAlN,UAAW9G,EAAME,OAAOnC,MACxB8I,MAAO7G,EAAME,OAAOxB,mBC/DnBszE,GAAoBxtE,eAAK,CACpCxI,IAAK,oBACLyI,SAAS,ICKE2rC,GAAwC,SAAHlrC,GAA+B,IAAzBoB,EAAQpB,EAARoB,SAAUmG,EAAOvH,EAAPuH,QACxD4D,EAAaC,KAAbD,SAER,OACErK,eAACuG,SAAK,CACJ7F,QAAS,GACTR,MAAO,CAAEiJ,MAAO,QAChB3C,UAAW6D,EAAW,SAAW,MACjC5D,QAASA,EAAQnG,SAEhBA,K,+kBCXA,IAGM4rE,GAA0B,WACrC,IAAMlyE,EAAQ0F,KACR7D,EAAsBC,yBAAeC,IAC3C8mD,EAA2Cv4C,KAAnCD,EAAQw4C,EAARx4C,SAAU2I,EAAS6vC,EAAT7vC,UAAWJ,EAASiwC,EAATjwC,UACrBtQ,EAAmBC,KAAnBD,eACRG,EAA0BC,oBAAS,GAAMgD,EAAAhK,IAAA+G,EAAA,GAAlCsL,EAAMrI,EAAA,GAAEsI,EAAOtI,EAAA,GAChBymE,EAAevsE,4BAAkBwsE,IAEjCxpE,EAAcN,IAChB+pE,EAAsB,KAE1BnnE,qBAAU,WACR2N,OAAOy5D,iBAAiB,uBAAuB,SAAC/gE,GAI9C,GAHAA,EAAMO,iBACNugE,EAAiB9gE,EAEgB,WAA7BsH,OAAO05D,SAASC,WAA0B55D,EAAW,CACvD,IAAM65D,EAAyB5wE,EAAoBlB,IAnBxB,mBAoB3B,GAAqB,MAAjB8xE,KAAmBC,UAAW,CAChC,IAAMn1E,GAAQ,IAAI4jB,MAAO4nD,UACnB4J,EAA2BF,EAAkBC,UAC7CE,EAA0B5J,KAAK6J,IAAIF,EAAmBp1E,GAG5DyW,EAFwB4+D,EAAuB,KAzBjB,QA6B9B5+D,GAAQ,SAIb,IAEH,IAAM8+D,EAAgB3wE,uBAAY,WAGxB,IAAD4wE,EAFH/5D,EACFm5D,GAAa,IAEC,OAAdY,EAAAV,IAAAU,EAAgBC,SAChBh/D,GAAQ,MAET,CAACq+D,IAkBJ,OACErsE,eAACC,WAAI,CAACC,MAAK/F,MAAA,GACNgG,GAAOC,eAAa,IACvBkB,QAASyM,EAAS,OAAS,QACvB1D,EAfgB,CACtBmb,MAAO,GACPynD,IAAK,GACLxrD,SAAU,OAGM,CAChB+D,MAAO,GACPynD,IAAK,KAQF5sE,UAAW,EAAEC,SACdC,gBAACC,UAAM,CAACkG,MAAM,SAASD,QAAQ,SAASvG,MAAO,CAAEwB,KAAM,GAAKhB,QAAS,EAAEJ,SAAA,CACrEN,eAACktE,WAAM,CAACjzE,KAAK,UAAUuN,KAAM,GAAI3G,MAAO+B,EAAYoB,YACpDhE,eAACW,UAAM,CACLC,MAAM,eACNC,MAAO+B,EAAYoB,UACnBlD,UAAW9G,EAAME,OAAOnC,MACxBgJ,QAAS+rE,IAEX9sE,eAAC4wC,cAAU,CACT7vC,QA/BkB,WACxBlF,EAAoBrB,IA5CW,kBA4Cc,CAAEkyE,WAAW,IAAIvxD,MAAO4nD,YACrE/0D,GAAQ,IA8BFy6B,KAAMzoC,eAACoM,WAAsB,CAACnS,KAAK,QAAQuN,KAAM,GAAI3G,MAAO7G,EAAME,OAAOd,oBAO7E+G,GAASc,WAAWC,OAAO,CAC/Bd,cAAe,CACbklB,SAAU,WACVlkB,QAAS,EACTC,aAAc,KC7FLlB,GAASc,WAAWC,OAAO,CACtCO,UAAW,CACTH,QAAS,OACToM,IAAK,IAEPC,WAAY,CACVrM,QAAS,OACTC,cAAe,MACfC,eAAgB,WAChBkM,IAAK,KCJIy/D,GAAmC,WAC9C,IAAMnzE,EAAQ0F,KACN4C,EAAmBC,KAAnBD,eACFzG,EAAsBC,yBAAeC,IAC3CT,EAA0BC,yBAAe6wE,IAAwB3wE,EAAAC,IAAAJ,EAAA,GAA1DyS,EAAMtS,EAAA,GAAEuS,EAAOvS,EAAA,GAOhBmH,EAAcN,IAIpB,OACEtC,eAACoO,GAAS,CAACC,QAASN,EAAQO,QAHV,WAAH,OAAeN,GAAQ,IAGW1N,SAC/CC,gBAACyC,OAAG,CAAC9C,MAAOC,GAAOsB,UAAUnB,SAAA,CAC3BN,eAACyH,QAAI,CAACzG,QAAQ,YAAYd,MAAO,CAAEuJ,WAAY,OAAQnJ,SAAC,yCACxDN,eAACwqC,WAAO,CAAC3pC,MAAO7G,EAAME,OAAOd,YAC7B4G,eAAC6b,WAAK,CACJC,WAAW,UACXC,OAAQ5B,EAAQ,KAChBja,MAAO,CAAEiJ,MAAO,OAAQwJ,OAAQ,UAGlC3S,eAACQ,UAAM,CAACob,MAAI,EAAAtb,SACVN,eAACW,UAAM,CACLT,MAAO,CAAEiJ,MAAO,QAChBvI,MAAM,SACNI,QAAQ,WACRH,MAAO+B,EAAYoB,UACnBjD,QA1BmB,WAC3BlF,EAAoBrB,IFLW,kBEKc,CAAEkyE,WAAW,IAAIvxD,MAAO4nD,YACrE/0D,GAAQ,cCbCo+D,GAA0B5tE,eAAK,CAC1CxI,IAAK,0BACLyI,SAAS,I,+kBCKJ,IAAM4U,GAAiB,GACjBC,GAAyB,GAEzB6P,GAAyC,SAAHjkB,GAAwB,IAAlBs5C,EAAUt5C,EAAVs5C,WAC/C57C,EAAcvB,IAAduB,UACA0F,EAAmBC,KAAnBD,eACRugD,EAA2Cv4C,KAAnCsI,EAASiwC,EAATjwC,UAAWI,EAAS6vC,EAAT7vC,UAAW3I,EAAQw4C,EAARx4C,SACxB+iE,EAAkBxtE,4BAAkBytE,IAEpCjxE,EAASQ,IACTgG,EAAcN,IAEdgrE,EAA+B,CACnCrkE,WAAY,cAGToB,GrcJmB,UqcIA,MAANjO,OAAM,EAANA,EAAQY,cACxBswE,EAAkBrkE,WAAa,UAwBjC,OACE1I,gBAACgtE,WAAOpqD,OAAM,CAACjjB,MAAK/F,MAAA,GACfgG,GAAOqtE,QAAM,IAChB1rE,gBAAiBc,EAAYoB,WACzB4O,GAAaI,GAAa,CAAEsW,WAAYhW,KAC5ChT,SAAA,CACAN,eAACutE,WAAOE,OAAM,CACZhlC,KAAM,SAAC7hC,GAAU,OAAK5G,eAACoM,WAAsBjS,GAAA,CAACF,KAAK,QAAW2M,KAC9D7F,QAAS,kBAAMy3C,EAAWk1B,gBAC1BC,WAAS,EACT9sE,MAAO+B,EAAY2V,YAErBvY,gBAjC2B,WAAH,OAC1BA,eAACutE,WAAOxmD,QAAO,CACbnmB,MACEL,gBAAC4vD,WAAI,CAACjwD,MAAOC,GAAOytE,SAASttE,SAAA,CAC3BN,eAAC27C,GAAS,CAAChpC,OAAQ,KACnB3S,eAACyH,QAAI,CACH1G,QAAS,kBAAMy3C,EAAWwK,SAASt5B,GAAgBG,OACnD3pB,MAAK/F,MAAA,GACAgG,GAAOS,OACNyJ,GAAY,CAAEX,SAAU,KAE9B1I,QAAQ,KAAIV,SACb,yBAKLJ,MAAQotE,MAgBK,IACbttE,eAAC4wC,cAAU,CACT/vC,MAAO+B,EAAY2V,UACnBxX,QAAS,kBAAMqsE,GAAgB,IAC/B9lE,UAAWlL,EACXqsC,KAAM,SAAA7hC,GAAK,OAAI5G,eAAC6G,WAAa1M,GAAA,CAACF,KAAK,kBAAqB2M,WAM1DzG,GAASc,WAAWC,OAAO,CAC/BssE,OAAQ,CACN9gC,UAAWr5B,IAEbu6D,SAAU,CACRtsE,QAAS,OACT2H,WAAY,SACZ1H,cAAe,OAEjBX,MAAO,CACLC,MAAO,OACPa,KAAM,K,OCtEWyY,EAAQ,KAkCdlZ,WAAWC,OAAO,CAC/BO,UAAW,CACT6jB,SAAU,YAEZuoD,eAAgB,CACdl7D,OAAQ,IACRxJ,MAAO,OACP7H,QAAS,OACT2H,WAAY,SACZzH,eAAgB,SAChBH,aAAc,GAEhB4T,MAAO,CACLvT,KAAM,EACNF,eAAgB,SAChBukB,UAAW,WAEb3iB,KAAM,CACJvC,MAAO,SAETitE,UAAW,CACT3kE,MAAO,oBACPmc,SAAU,WACV2nD,IAAK,EACLznD,MAAO,EACPu0B,KAAM,EACNg0B,OAAQ,IACRzsE,QAAS,OACTC,cAAe,MACfC,eAAgB,mBA7BpB,IC9CarB,GAASc,WAAWC,OAAO,CACtCO,UAAW,CACTH,QAAS,OACT2H,WAAY,SACZzH,eAAgB,SAChB2H,MAAO,OACPwJ,OAAQ,MACR+5B,UAAW,QAEbrtB,QAAS,CACP/d,QAAS,OACT2H,WAAY,SACZzH,eAAgB,UAElBZ,MAAO,CACLc,KAAM,EACNM,UAAW,U,qkBCPR,IAAMqlB,GAAsC,SAAHnoB,GAEzC,IAAD8uE,EAAA9uE,EADJkE,YAAI,IAAA4qE,EAAG,iCAA0BA,EAE3Bh0E,EAAQ0F,KACN2K,EAAaC,KAAbD,SAER,OACErK,eAACgD,OAAG,CAAC9C,MAAOC,GAAOsB,UAAUnB,SAC3BC,gBAACyC,OAAG,CAAC9C,MAAOC,GAAOkf,QAAQ/e,SAAA,CACzBN,eAACoM,WAAsB,CAACnS,KAAK,0BAA0BuN,KAAM,GAAI3G,MAAM,wBACvEb,eAACyH,QAAI,CACHvH,MAAK/F,MAAA,GACAgG,GAAOS,OAAK,IACfC,MAAO7G,EAAME,OAAON,YAEtBoH,QAASqJ,EAAW,KAAO,KAAK/J,SAE/B8C,U,+kBChBJ,IAAMolC,GAAwC,SAAHtpC,GAK3C,IAJLkE,EAAIlE,EAAJkE,KACA9C,EAAQpB,EAARoB,SACAmoC,EAAIvpC,EAAJupC,KACA2P,EAAWl5C,EAAXk5C,YAEMp+C,EAAQ0F,KACN2K,EAAaC,KAAbD,SAGFzH,GAAcN,EAFOC,KAAnBD,kBAIR,OACE/B,gBAACC,UAAM,CAACkG,MAAM,SAASD,QAAQ,UAAUiV,GAAI,EAAEpb,SAAA,CAC7CC,gBAACC,UAAM,CAACkG,MAAM,SAAShG,QAAS,EAAEJ,SAAA,CAC/BmoC,EACDzoC,eAACyH,QAAI,CAAC5G,MAAO7G,EAAME,OAAOb,KAAM2H,QAAQ,YAAWV,SAAE8C,OAEtD9C,EACA83C,GACCp4C,eAACW,UAAM,CACLC,MAAM,UACN+F,SAAU,SAAAC,GAAK,OAAI5G,eAACiuE,WAAa9zE,MAAA,CAACF,KAAK,UAAa2M,GAAK,IAAEY,KAAM6C,EAAW,GAAK,OACjFxJ,MAAO+B,EAAYoB,UACnBjD,QAASq3C,QC7BNvH,GAAkC,SAAH3xC,GAAgC,IAA1B2B,EAAK3B,EAAL2B,MAAKg7C,EAAA38C,EAAEyT,cAAM,IAAAkpC,EAAG,GAAEA,EAClE,OACE77C,eAAA,OACEkuE,MAAM,6BACNC,QAAQ,YACRx7D,OAAWA,EAAM,KAAKrS,SAEtBN,eAAA,QAAM4b,KAAM/a,EAAOutE,EAAE,6kDCLdhiD,GAAgC,SAAHltB,GAAsB,IAAhBoB,EAAQpB,EAARoB,SAC9C,OACEC,gBAACyC,OAAG,CAAC9C,MAAOC,GAAOsB,UAAUnB,SAAA,CAC3BN,eAACwqC,WAAO,IACPlqC,MAKDH,GAASc,WAAWC,OAAO,CAC/BO,UAAW,CACTkR,OAAQ,GACR7Q,gBAAiB,OACjBG,YAAa,GACbC,WAAY,MCZHkkD,GAA0C,SAAHlnD,GAAkD,IAA5CoB,EAAQpB,EAARoB,SAAU6P,EAASjR,EAATiR,UAAWE,EAAMnR,EAANmR,OAAQhC,EAAOnP,EAAPmP,QAC/ErU,EAAQ0F,KAEd,OACEM,eAACkQ,WAAI,CACH0hD,aAAc,CAAE9vD,gBAAiB9H,EAAME,OAAOrB,WAAY4oB,SAAU,KACpEpT,QAASA,EACT8B,UAAWA,EACXE,OAAQA,EACRD,eAAe,SAAQ9P,SAEpBA,KCVI8gB,GAAsC,SAAHliB,GAGzC,IAADmvE,EAAAnvE,EAFJ0W,cAAM,IAAAy4D,EAAG,OAAMA,EACflnE,EAAOjI,EAAPiI,QAEMnN,EAAQ0F,KAER++C,EAAmB,CACvB5kD,KAAMG,EAAME,OAAOL,KACnBnB,QAASsB,EAAME,OAAOxB,QACtBtC,MAAO4D,EAAME,OAAO9D,MACpBk4E,QAASt0E,EAAME,OAAO3B,WACtBqd,GAEI24D,EAA4B,CAChC10E,KAAMG,EAAME,OAAOJ,cACnBpB,QAASsB,EAAME,OAAOvB,iBACtBvC,MAAO4D,EAAME,OAAOk0C,eACpBkgC,QAASt0E,EAAME,OAAOzB,oBACtBmd,GAEF,OACErV,gBAACC,UAAM,CAAC2tC,GAAI,EAAGxyB,EAAG,GAAIlV,QAAQ,SAASC,MAAM,SAAShG,QAAS,GAC7DR,MAAO,CACL4B,gBAAiBysE,EACjBlgC,gBAAiB,EACjBC,gBAAiBmQ,GACjBn+C,SAAA,CACFN,eAAC6G,WAAa,CAAC5M,KAAK,OAAOuN,KAAM,GAAI3G,MAAO49C,IAC5Cz+C,eAACyH,QAAI,CAAC5G,MAAO7G,EAAME,OAAOb,KAAKiH,SAC5B6G,Q,qkBC5BF,IAEMiH,GAAsC,SAAHlP,GAAwC,IAAlCmP,EAAOnP,EAAPmP,QAASC,EAAOpP,EAAPoP,QAAShO,EAAQpB,EAARoB,SACtEuiD,EAAoCv4C,KAA5BD,EAAQw4C,EAARx4C,SAAUlB,EAAK05C,EAAL15C,MAAOwJ,EAAMkwC,EAANlwC,OAEzB,OACE3S,eAACgiB,WAAK,CACJwsD,UAAWngE,EACXogE,gBAAiBngE,EACjBogE,gBAAiBpgE,EACjBqgE,eAAe,QACfC,YAAY,cACZC,aAAa,kBACb3uE,MAAO,CAAE+I,WAAY,UAAW3I,SAEhCN,eAACgD,OAAG,CAAC9C,MAAK/F,MAAA,GACLgG,GAAOyvD,gBAAc,IACxB5zC,SAAU3R,EAAWlB,EAjBA,GAiBwB,IAC7C+oC,UAAW7nC,EAAWsI,EAlBD,GAkB0B,MAC/CrS,SACCA,OAMHH,GAASc,WAAWC,OAAO,CAC/B0uD,eAAgB,CACdzmD,MAAO,OACPrH,gBAAiB,QACjBT,aAAc,EACdD,QAAS,GACT6H,WAAY,aCiBDhI,WAAWC,OAAO,CAC/Bd,cAAe,CACbklB,SAAU,WACVlkB,QAAS,EACTC,aAAc,K,qkBC3ClB,IAAMytE,GAAsB,CAC1B,8CACA,+CAGIC,GAAmB,CACvB,SACA,WA0JaC,GAvJuB,SAAH9vE,GAQ5B,IAPL4sE,EAAY5sE,EAAZ4sE,aACA3jC,EAAQjpC,EAARipC,SACA/c,EAAelsB,EAAfksB,gBACAyd,EAAkB3pC,EAAlB2pC,mBACAomC,EAAc/vE,EAAd+vE,eACA3mD,EAAWppB,EAAXopB,YACAtsB,EAAUkD,EAAVlD,WAEMhC,EAAQ0F,KACRmO,EAASC,KACfuuC,EAAqChhD,IAA7Ba,EAAMmgD,EAANngD,OAAQK,EAAgB8/C,EAAhB9/C,iBACRid,EAAmBjX,KAAnBiX,eACAhK,EAAgBuP,KAAhBvP,YACAnT,EAAgBP,yBAAeN,IAA/Ba,YACRf,EAA0BC,yBAAe8pB,IAAe5pB,EAAAC,IAAAJ,EAAA,GAAjDlF,EAAKqF,EAAA,GAAEuyC,EAAQvyC,EAAA,GAChByzE,EAAiBtvE,4BAAkBupB,IACnCgmD,EAAgBvvE,4BAAkBwvE,IAElCpyE,EAAaT,IAEnB2I,qBAAU,WACRijC,EACGxtC,MACAqM,KAAKwS,GACLtS,MAAM2O,QAAQzf,OAEjBg1B,EACGA,kBACApkB,MAAK,SAACqoE,GACLH,EAAeG,GACfF,EAAcE,EAAa3jD,UAG5BxkB,MAAM2O,QAAQzf,OAEjByyC,EACG5B,SACAjgC,KAAKwI,GACLtI,MAAM2O,QAAQzf,SAChB,IAEH,IAAMk5E,EAAenzE,uBAAY,WAC/B,IAAM5E,EAAQ+wB,EAAY/wB,QACpBg4E,EAAa,IAAIp0D,KAAK,GAE5B,GAAgB,MAAX9e,MAAaK,aAChB,OAAO,EAGT,IAAMi9C,EAAO39C,EAAWS,OAAkB,MAAXJ,OAAW,EAAXA,EAAaK,cAC5C,IAAKi9C,IAASm1B,GAAoBz5D,SAASskC,EAAK61B,KAG9C,OAFA3hE,EAAOzX,MAAM,iDACb8F,KACO,EAGT,IAAMuzE,EAAQ91B,EAAK,0BAA4BA,EAAK,kBACpD,GAAqB,kBAAV81B,GACT,IAAKV,GAAiB15D,SAASo6D,GAG7B,OAFA5hE,EAAOzX,MAAM,iDACb8F,KACO,OAGT,GAAKuzE,EAAavxD,OAAM,SAAAwxD,GAAI,OAAKX,GAAiB15D,SAASq6D,MAGzD,OAFA7hE,EAAOzX,MAAM,iDACb8F,KACO,EAOX,OAHAqzE,EAAWI,cAAch2B,EAAKi2B,OACZr4E,EAAQg4E,KAGxB1hE,EAAOzX,MAAM,kDACb8F,IACIc,GACG8uE,EACF5vE,OAAO,CAAEi7B,QAAS75B,SAASN,GAAa2gD,qBACxCz2C,MAAM2O,QAAQzf,QAGZ,KAIR,CAACiG,IAEE8D,EAASc,WAAWC,OAAO,CAC/BO,UAAW,CACT6jB,SAAU,WACVnc,MAAO,OACPwJ,OAAQ,cACRo7D,OAAQ,EACRzkD,WAAY,GACZ3C,kBAAmB,GACnBsmD,IAAK,MAIH7mD,EAAkB,CACtBvsB,KAAM,GACNnB,QAAS,CACPoJ,gBAAiB9H,EAAME,OAAOxB,QAC9BmI,MAAO7G,EAAME,OAAOnC,OAEtB3B,MAAO,CACL0L,gBAAiB9H,EAAME,OAAO9D,MAC9ByK,MAAO7G,EAAME,OAAOnC,QAIxB,OACEwI,gBAAA2C,YAAA,CAAA5C,SAAA,GACKlK,EAAMa,QACP+I,eAAC6vE,YAAQ,CACP1oE,QAAS/Q,EACT05E,OACE9vE,eAACW,UAAM,CACLK,QAAQ,OACRJ,MAAM,SACNG,QAAS,kBAAMitC,EAAS,KACxB+hC,SAAO,IAGX7vE,MAAK/F,SAAA,GACAisB,GACAjmB,EAAOsB,WAAS,IACnBH,QAASlL,EAAMa,OAAS,OAAS,WAIvC+I,eAACgwE,GAAgB,IACjBhwE,eAAC6rE,GAAM,CACLC,aAAcA,EACdxjD,YAAa1wB,IACbm0E,cAAejrC,OAEjB9gC,eAACiwE,GAAe,CAAChB,eAAgBA,IACjCjvE,eAACmtE,GAAsB,IACtBmC,IACGtvE,eAACipE,GAAgB,IC1KvBjpE,eAACm8C,GAAK,CACJ7C,eAAgB9Y,KAChBzS,oBAAqB0S,KACrB2b,QAASxb,KACTmY,eAAgB/X,KAChBkZ,qBAAsB9V,ODwKtBpkC,eAAC8jD,GAAU,Q,mBErKJr6B,GAA4C,SAAHvqB,GAAuC,IAAjCgqB,EAAYhqB,EAAZgqB,aAAcroB,EAAK3B,EAAL2B,MAAO2G,EAAItI,EAAJsI,KACvE6C,EAAaC,KAAbD,SACFrQ,EAAQ0F,KACRwwE,EAAetwE,4BAAkBuwE,IACjCC,EAAiBxwE,4BAAkBwvE,IAMnCiB,EAAa,SAAC3kD,GAClB,IAAI4kD,EAAc5kD,EAAM5X,QAAQ,IAAK,IAChC,CAAC,UAAW,OAAOuB,SAASk7D,WAASC,IAKxCJ,EADAE,EAAW,OAAU5kD,GAFrB0kD,EADAE,EAAW,aAAgB5kD,GAOzBrhB,EACFomE,WAAQC,WAAWJ,GAChBtpE,KAAK,WAAD,IAAAqT,EAAArF,MAAC,UAAO27D,GACX,GAAKA,EAGH,aAAaF,WAAQG,QAAQN,GAF7Bz6D,QAAQzf,MAAM,uBAIjB,gBAAA6f,GAAA,OAAAoE,EAAAnE,MAAA,KAAAlf,YANK,IAOLkQ,OAAM,SAAA2pE,GAAG,OAAIh7D,QAAQC,IAAI+6D,MAtB9BX,GAAa,IA0Cf,OACElwE,eAACQ,UAAM,CAACE,QAAS,EAAGgG,MAAM,SAASD,QAAQ,SAASiiC,MAAI,EAAApoC,SACrD3K,OAAOD,KAAKwzB,GAAcl0B,KAAI,SAAC4R,EAAgC0c,GAAK,QACjE4F,EAAatiB,IACd5G,eAAC4wC,cAAU,CAEV/vC,MAAY,MAALA,IAAS7G,EAAME,OAAO9D,MAC7BqyC,KAAMzoC,eAAC4rB,WAAI,CAAuB/qB,MAAY,MAALA,IAAS7G,EAAME,OAAOnC,MAAOyP,KAAU,MAAJA,IAAQ,GAAIvN,KAAM2M,GAA1E0c,EAAK,SACzBviB,QAAS,WAtBG,IAAC/K,EACP,WADOA,EAsBc4Q,GApB/BypE,EAAWnnD,EAAalzB,IACP,aAARA,EACJy6E,WAAQC,WAAW,2BAA2BxnD,EAAalzB,GAAK8d,QAAQ,SAAU,IAAG,UACvF9M,KAAIgO,MAAC,YACJnC,OAAOsf,KAAK,yCAAyCjJ,EAAalzB,GAAK8d,QAAQ,SAAU,SAGxF28D,WAAQC,WAAWxnD,EAAalzB,IAClCgR,KAAIgO,MAAC,yBAAkBy7D,WAAQG,QAAQ1nD,EAAalzB,UAS3CstB,EAAK,sBCjEV6F,GAAmB3qB,eAAK,CACnCxI,IAAK,mBACLyI,QAAS,K,8kBCQX,IAAMqyE,GAAc,SAACC,EAAiBC,EAA6B/yD,EAAkBgzD,GACnF,OAAOC,WAASC,OACdH,EACA,CACED,UACA9yD,WACAgzD,QACAG,iBAAiB,KAKhB,SAASC,GAAQnyE,GAIQ,IAH9B/J,EAAE+J,EAAF/J,GACAgS,EAAOjI,EAAPiI,QAAOgf,EAAAjnB,EACP8B,eAAO,IAAAmlB,EAAG,OAAMA,EAEVnsB,EAAQ0F,KACR4xE,EAAYvoB,SAAa,IAAImoB,WAASK,MAAM,IAAItiC,QACtD6Z,EAA0BC,YAAe,GAAKC,EAAAttD,IAAAotD,EAAA,GAAvC/6C,EAAMi7C,EAAA,GAAEh7C,EAAOg7C,EAAA,GAChBn7C,EAASC,KAEfi7C,aAAgB,WACd,IAAMyoB,EAAiB,CAACV,GAAY,EAAGQ,EAAW,MAClDJ,WAASO,SAASD,GAAgBE,UACjC,IAEH,IAUMtrD,EAAkB,CACtBvsB,KAAM,GACNnB,QAAS,CACPoJ,gBAAiB9H,EAAME,OAAOxB,QAC9BmI,MAAO7G,EAAME,OAAOnC,OAEtB3B,MAAO,CACL0L,gBAAiB9H,EAAME,OAAO9D,MAC9ByK,MAAO7G,EAAME,OAAOnC,QAEtBiJ,GAEF,OACEhB,eAAC6vE,YAAQ,CACP1oE,QAASA,EACT2oE,OACE9vE,eAACW,UAAM,CACLK,QAAQ,OACRJ,MAAM,SACNC,MAAO7G,EAAME,OAAOd,UACpB2H,QA9BY,SAACwK,GACnBA,EAAMO,iBACNolE,WAASO,SAAS,CAChBX,GAAY,EAAGQ,EAAW,OACzBI,OAAM,WACP1jE,GAAQ,GACRH,EAAOwQ,OAAOlpB,OAyBV46E,SAAO,IAGX7vE,MAAK/F,SAAA,GACAisB,GACAjmB,GAAOsB,WAAS,IACnBqkB,QAASwrD,EACThwE,QAASyM,EAAS,OAAS,WAMnC,IAAM5N,GAASc,WAAWC,OAAO,CAC/BO,UAAW,CACTssE,OAAQ,EACR/rE,UAAW,K,qkBClFR,SAASguE,KACd,IAAMnyD,EAAW/hB,yBAAe8hB,IAEhC,OACE5d,eAACgD,OAAG,CACF9C,MAAK/F,MAAA,GACAgG,GAAOsB,WAAS,IACnBH,QAAiB,MAARuc,KAAU5mB,OAAS,OAAS,SACrCqJ,SAEK,MAARud,OAAQ,EAARA,EAAU7oB,KAAI,SAAA6Y,GAAM,OACnB7N,eAACqxE,GAAQ,CACPl8E,GAAI0Y,EAAO1Y,GAEXgS,QAAS0G,EAAO1G,QAChB8pE,MAAOpjE,EAAOojE,MACdjwE,QAAS6M,EAAO7M,QAChBid,SAAUpQ,EAAOoQ,UAJZpQ,EAAO1Y,SAWpB,IAAMgL,GAASc,WAAWC,OAAO,CAC/BO,UAAW,CACT6jB,SAAU,WACVnc,MAAO,OACPwJ,OAAQ,cACRo7D,OAAQ,EACRzkD,WAAY,GACZ3C,kBAAmB,GACnBsmD,IAAK,MCnCI9sE,GAASc,WAAWC,OAAO,CACtCO,UAAW,CACT0H,MAAO,OACP5H,cAAe,MACf+jB,SAAU,WACVyoD,OAAQ,EACRd,IAAK,EACLznD,MAAO,EACPvb,SAAU,SACV3I,QAAS,QAEXsuD,eAAgB,CACd9tD,gBAAiB,QACjBT,aAAc,GAEhBswE,OAAQ,CACNrwE,QAAS,QAEX+d,QAAS,CACPlW,MAAO,OACPrH,gBAAiB,QAEnBlB,MAAO,CACLO,OAAQ,GACRuI,SAAU,GACVD,WAAY,OAEdid,SAAU,CACRxkB,WAAY,EACZF,UAAW,GACXD,aAAc,EACd2H,SAAU,GACVD,WAAY,OAEd6oC,QAAS,CACP5wC,KAAM,EACNP,OAAQ,IAEVywE,YAAa,CACXtsD,SAAU,WACV2nD,IAAK,EACLznD,MAAO,GACPrc,MAAO,GACPwJ,OAAQ,IAEVg0D,eAAgB,CACd5+C,eAAgB,EAChB9lB,YAAa,GACbX,QAAS,OACTC,cAAe,MACf0H,WAAY,SACZzH,eAAgB,YAElBklE,UAAW,CACT5kE,gBAAiB,OACjB4kC,cAAe,YACfh9B,SAAU,IAEZmoE,gBAAiB,CACf1oE,MAAO,OACPnH,UAAW,K,qkBC/CR,IAAM8vE,GAAgB,GAEhBr9B,GAA0C,SAAHv1C,GAAoE,IAA9DizB,EAAIjzB,EAAJizB,KAAMuiB,EAAQx1C,EAARw1C,SAAUpmC,EAAOpP,EAAPoP,QAAShO,EAAQpB,EAARoB,SAAU+G,EAAOnI,EAAPmI,QAAS0tC,EAAU71C,EAAV61C,WAC9F/6C,EAAQ0F,KACdmjD,EAA0Cv4C,KAAlCD,EAAQw4C,EAARx4C,SAAU+I,EAAYyvC,EAAZzvC,aAAcjK,EAAK05C,EAAL15C,MAE1Bid,EAAejsB,YAAA,GAChBgG,GAAOyvD,gBAAc,IACxB5zC,SAAU3R,EAAWlB,EAAQ2oE,GAAgB,KACzCznE,EACA,CAAEsI,OAAO,iBAAkBS,EAAekxC,IAA2B,OACrE,CAAE3xC,OAAO,iBAAkBS,EAAe,IAAE,QAC7CjT,GAAOsB,WAAS,IACnBL,QAASiJ,EAAW,EAAI,GACxBlJ,OAAQkJ,EAAW,GAAK,KAGpB0nE,EAAa53E,MAAA,GACdgG,GAAOkf,SAAO,IACjBoC,SAAUtY,EAAQ,IAAM,cAAgB,MAGpC6oE,EAAW73E,MAAA,GACZgG,GAAOS,OAAK,IACfC,MAAO7G,EAAME,OAAOP,QAGhB0tE,EAAeltE,MAAA,GAChBgG,GAAOumE,WAAS,IACnB7lE,MAAO7G,EAAME,OAAOR,aAGtB,OACEsG,eAACgiB,WAAK,CACJwsD,UAAWr8C,EACXu8C,gBAAiBpgE,EACjBsgE,YAAY,iBACZC,aAAa,kBACb3uE,MAAOkmB,EAAgB9lB,SAEvBC,gBAACyC,OAAG,CAAC9C,MAAO6xE,EAAczxE,SAAA,CACxBC,gBAACyC,OAAG,CAAA1C,SAAA,CACFN,eAACyH,QAAI,CAACvH,MAAO8xE,EAAY1xE,SAAC,YAC1BN,eAACwqC,WAAO,CAAC3pC,MAAO7G,EAAME,OAAOX,gBAE/ByG,eAACgD,OAAG,CAAC9C,MAAOC,GAAOmyC,QAAQhyC,SACtBA,IAELC,gBAACyC,OAAG,CAAA1C,SAAA,CACAN,eAACwqC,WAAO,CAAC3pC,MAAO7G,EAAME,OAAOX,aAC7BgH,gBAACC,UAAM,CAACN,MAAOC,GAAOwmE,eAAgBjmE,QAAS,EAAEJ,SAAA,CAC/CN,eAACwqC,WAAO,CAAC3pC,MAAO7G,EAAME,OAAOX,aAC7ByG,eAACW,UAAM,CACLK,QAAQ,OACRJ,MAAM,iBACNo5C,WAAYqtB,EACZh+C,sBAAuBg+C,EACvBnnE,MAAO,CAAEoB,QAAS,QAClBgG,SAAUD,EACVtG,QAASg0C,IAEX/0C,eAACW,UAAM,CACLK,QAAQ,OACRJ,MAAM,SACNo5C,WAAYqtB,EACZh+C,sBAAuBg+C,EACvB//D,SAAUD,EACVtG,QAASuN,IAEXtO,eAACW,UAAM,CACLC,MAAM,UACNC,MAAO7G,EAAME,OAAOxB,QACpBoI,UAAW9G,EAAME,OAAOnC,MACxBuP,SAAUD,EACVtG,QAAS2zC,gBAaZtxB,GAA8B,SAAH/I,GAAmB,IAAbzZ,EAAKyZ,EAALzZ,MAC5C,OACEZ,eAACyH,QAAI,CAACvH,MAAOC,GAAOumB,SAASpmB,SAAEM,KCtGtBT,GAASc,WAAWC,OAAO,CACtCO,UAAW,CACTywC,UAAW,IACX5wC,QAAS,OACTC,cAAe,MACfC,eAAgB,gBAChB8N,SAAU,QAEZ3B,WAAY,CACVrM,QAAS,OACTC,cAAe,MACfC,eAAgB,WAChBkM,IAAK,GAEPukE,QAAS,CACPj2D,SAAU,IACVja,aAAc,GACdX,QAAS,K,ymBCGN,IAAM4gB,GAAoC,SAAH9iB,GAMvC,IALL0B,EAAK1B,EAAL0B,MACAmN,EAAM7O,EAAN6O,OACArH,EAAKxH,EAALwH,MACA0b,EAAQljB,EAARkjB,SACA9T,EAAOpP,EAAPoP,QAEMtU,EAAQ0F,KACN4C,EAAmBC,KAAnBD,eACA+H,EAAaC,KAAbD,SAEFzH,EAAcN,IAOpB,OACE/B,gBAAC6N,GAAS,CAACC,QAASN,EAAQO,QAASA,EAAQhO,SAAA,CAC3CN,eAACyH,QAAI,CAACzG,QAAQ,YAAYd,MAAO,CAAE6B,aAAc,GAAI0H,WAAY,OAAQnJ,SAAEM,IAC3EZ,eAACgD,OAAG,CAAC9C,MAAO,CAACC,GAAOsB,UAAW,CAAEwI,SAAUI,EAAW,SAAW,WAAaJ,SAAS,UAAS3J,SACxF,MAALoG,OAAK,EAALA,EAAO1R,KAAI,SAACsX,GAAI,OACftM,eAACW,UAAM,CAELK,QAASsL,EAAK6V,WAAa,YAAc,WACzCvhB,MAAO0L,EAAKD,UACZxL,MAAO+B,EAAYoB,UACnBlD,UAAW9G,EAAME,OAAOnC,MACxBgJ,QAAS,kBAhBG5L,EAgBgBmX,EAAKnX,GAhBT+sB,EAgBa5V,EAAK4V,KAflDE,EAASjtB,EAAI+sB,QACb5T,IAFmB,IAACnZ,EAAY+sB,GAiBxBhiB,MAAOC,GAAO8xE,SANT3lE,EAAKnX,SAUhB6K,eAACgD,OAAG,CAAC9C,MAAOC,GAAOwN,WAAWrN,SAC5BN,eAACW,UAAM,CACLE,MAAO7G,EAAME,OAAOqU,OACpBvN,QAAQ,OACRJ,MAAM,WACNG,QAASuN,UAaNgT,GAAwC,SAAHjH,GAK3C,IAJLpW,EAAKoW,EAALpW,MACAud,EAAMnH,EAANmH,OACAD,EAAWlH,EAAXkH,YACG2wD,EAAcnuD,KAAA1J,EAAA2J,IAIXphB,GAAcN,EAFOC,KAAnBD,kBAIR,OACEtC,eAAC6D,GAAS1J,GAAA,CACR+F,MAAO,CAAEwB,KAAM,EAAGwwC,UAAW,GAAI/oC,MAAO,QACxClF,MAAOA,GAAS,GAChBhO,MAAOsrB,EACP7H,UAAU,EACV7Y,MAAO+B,EAAYoB,UACnB2C,SAAU,SAAAC,GAAK,OACb5G,eAAC4wC,WAAUz2C,MAAA,CAACsuC,KAAK,gBAAmB7hC,GAAK,IAAE7F,QAASygB,OAElD0wD,K,qkBCnFH,IAAM75B,GAAsD,SAAHn5C,GAAoC,IAA9By4C,EAAWz4C,EAAXy4C,YAAaW,EAASp5C,EAATo5C,UAG3E11C,GAAcN,EAFOC,KAAnBD,kBAIR4C,qBAAU,WACR,IAMMitE,EAAW,IAAIC,qBAAqBC,EAN1B,CACdC,KAAM,KACNC,WAAY,OACZC,UAAW,MASb,OAJIl6B,EAAUrJ,SACZkjC,EAASM,QAAQn6B,EAAUrJ,SAGtB,WACDqJ,EAAUrJ,SACZkjC,EAASO,UAAUp6B,EAAUrJ,YAGhC,IAEH,IAAMojC,EAAqB,SAACM,KAE5B,OACE3yE,eAAC4wC,WAAU,CACT1wC,MAAOC,GAAOsB,UACdqC,KAAK,YACL/C,QAAS42C,EACT0jB,UAAWz4D,EAAYoB,UACvBykC,KAAM,SAAC7hC,GAAK,OAAK5G,eAACqwD,WAASl2D,MAAA,CAACF,KAAK,MAAS2M,GAAK,IAAEY,KAAM,UAKvDrH,GAASc,WAAWC,OAAO,CAC/BO,UAAW,CACTsrC,YAAa,sBACbC,aAAc,CACZ7jC,MAAO,EACPwJ,OAAQ,GAEVs6B,aAAc,KCrDL9sC,GAASc,WAAWC,OAAmB,CAClDkY,MAAO,CACLC,aAAc,K,qkBCAX,IAAMxV,GAAsC,SAAC+C,GAClD,IAAM5M,EAAQ0F,KAEd,OACEM,eAAC4yE,aAAKz4E,GAAA,CACJ0G,MAAO7G,EAAME,OAAO/B,QACpBshB,WAAUtf,GAAA,GAAOgG,GAAOiZ,QACpBxS,KCVGzG,GAASc,WAAWC,OAAO,CACtCO,UAAW,CACTH,QAAS,OACToM,IAAK,IAEPmlE,UAAW,CACTppE,WAAY,MACZD,UAAW,UAEbspE,SAAU,CACRppE,SAAU,M,qkBCLP,IAAMqpE,GAAqB,WAChC,IAAQn2E,EAAcvB,IAAduB,UACRtB,EAA0BC,yBAAe8xE,IAAoB5xE,EAAAC,IAAAJ,EAAA,GAAtDyS,EAAMtS,EAAA,GAAEuS,EAAOvS,EAAA,GAChBu3E,EAAgBpzE,4BAAkBosE,IAClCiH,EAAwBrzE,4BAAkBszE,IAE1C92E,EAASQ,IAETuR,EAAc,WAAH,OAAeH,GAAQ,IAElCmlE,EAA2Bh3E,uBAAY,WAC3CgS,IACA8kE,GAAsB,KACrB,IAEGG,EAAiBj3E,uBAAY,WACjCgS,IACA6kE,GAAc,KACb,IAEH,OACEhzE,eAACoO,GAAS,CAACC,QAASN,EAAQO,QAASH,EAAY7N,SAC/CC,gBAACyC,OAAG,CAAC9C,MAAOC,GAAOsB,UAAUnB,SAAA,CAC3BC,gBAACkb,UAAM,CAAC/a,QAAS,EAAGib,EAAG,EAAGjV,MAAM,SAAQpG,SAAA,CACtCN,eAACyH,QAAI,CAACzG,QAAQ,YAAYd,MAAOC,GAAO0yE,UAAUvyE,SAAQ,MAANlE,OAAM,EAANA,EAAQa,cAC5D+C,eAACyH,QAAI,CAACzG,QAAQ,UAASV,SAAQ,MAANlE,OAAM,EAANA,EAAQyqE,aAEnC7mE,eAACwqC,WAAO,I9dbU,U8dcX,MAANpuC,OAAM,EAANA,EAAQY,aACPgD,eAACkQ,WAAKS,KAAI,CACRqpC,WAAY75C,GAAO2yE,SACnBlyE,MAAM,gBACNG,QAASoyE,EACT5sB,YAAa,SAAA3/C,GAAK,OAAI5G,eAACoM,WAAsBjS,GAAA,CAACF,KAAK,yBAA4B2M,OAGnF5G,eAACkQ,WAAKS,KAAI,CACRqpC,WAAY75C,GAAO2yE,SACnBlyE,MAAM,OACNG,QAASqyE,EACT7sB,YAAa,SAAA3/C,GAAK,OAAI5G,eAACoM,WAAsBjS,GAAA,CAACF,KAAK,UAAa2M,aC7C7DymE,GAAsB7uE,eAAK,CACtCxI,IAAK,sBACLyI,SAAS,ICDEy0E,GAA4B10E,eAAK,CAC5CxI,IAAK,4BACLyI,SAAS,IAQE40E,GAAsB70E,eAA+B,CAChExI,IAAK,sBACLyI,QAAS,CACPqQ,WAAW,EACXqoB,QAAS,EACT9H,WAAY,GACZC,UAAW,GACXF,iBAAkB,MClBTjvB,GAASc,WAAWC,OAAO,CACtCO,UAAW,CACTH,QAAS,OACToM,IAAK,IAEPC,WAAY,CACVrM,QAAS,OACTC,cAAe,MACfC,eAAgB,WAChBkM,IAAK,K,qkBCEF,IAAMuiE,GAAiD,SAAH/wE,GAA4B,IAAtB+vE,EAAc/vE,EAAd+vE,eACzDj1E,EAAQ0F,KACRmO,EAASC,KACPlR,EAAcvB,IAAduB,UACFogB,EAAc5E,KACpB9c,EAA0BC,yBAAe83E,IAAoB53E,EAAAC,IAAAJ,EAAA,GAAtD+vB,EAAK5vB,EAAA,GAAE6vB,EAAQ7vB,EAAA,GACtBqJ,EAA0BvJ,yBAAe23E,IAA0BnuE,EAAArJ,IAAAoJ,EAAA,GAA5DiJ,EAAMhJ,EAAA,GAAEiJ,EAAOjJ,EAAA,GAEhB3I,EAASQ,IACT02E,EAAiBjoD,EAAMiE,WAC3BjE,EAAM+D,kBACN/D,EAAMiE,YAAcjE,EAAM+D,iBAuBtB4pB,EAAoB,SAAC/+C,EAAsChE,GAC/Dq1B,GAAS,SAAA2tB,GAAa,OAAA9+C,MAAA,GAAU8+C,GAAa,GAAAl2C,IAAA,GAAG9I,EAAOhE,QAGnDkY,EAAc,WAClBH,GAAQ,GACR2sD,KAGIA,EAAc,WAClBrvC,GAAS,SAAA2tB,GAAa,OAAA9+C,MAAA,GACjB8+C,GAAa,IAChB5pB,WAAY,GACZC,UAAW,GACXF,iBAAkB,SAItB,OACEpvB,eAACoO,GAAS,CAACC,QAASN,EAAQO,QAASH,EAAY7N,SAC/CC,gBAACyC,OAAG,CAAC9C,MAAOC,GAAOsB,UAAUnB,SAAA,CAC3BN,eAACyH,QAAI,CAACzG,QAAQ,YAAWV,SAAC,kBAE1BN,eAAC6D,GAAS,CACRI,MAAM,cACNI,aAAc,SAAAjB,GAAI,OAAI41C,EAAkB,aAAc51C,IACtDnN,MAAOo1B,EAAMgE,WACbguB,iBAAe,EACf/4C,UAAW,KAEbtE,eAAC6D,GAAS,CACRI,MAAM,aACNo5C,iBAAe,EACfh5C,aAAc,SAAAjB,GAAI,OAAI41C,EAAkB,YAAa51C,IACrDnN,MAAOo1B,EAAMiE,UACbhrB,UAAW,KAEbtE,eAAC6D,GAAS,CACRI,MAAM,uBACNo5C,iBAAe,EACfh5C,aAAc,SAAAjB,GAAI,OAAI41C,EAAkB,mBAAoB51C,IAC5DnN,MAAOo1B,EAAM+D,iBACb9qB,UAAW,KAGb/D,gBAACyC,OAAG,CAAC9C,MAAOC,GAAOwN,WAAWrN,SAAA,CAC5BN,eAACW,UAAM,CACLE,MAAO7G,EAAME,OAAOqU,OACpBzN,UAAW9G,EAAME,OAAOnC,MACxBiJ,QAAQ,OACRJ,MAAM,WACNG,QAASoN,EACT7G,SAAU+jB,EAAMvc,YAElB9O,eAACW,UAAM,CACLC,MAAM,SACNG,QA7EmB,SAACwK,GAC5BA,EAAMO,iBACNwf,GAAS,SAAA9tB,GAAY,OAAArD,MAAA,GAAUqD,GAAY,IAAEsR,WAAW,OAExD,IAAMykE,EAA6C,CACjDp8C,QAAS/6B,EAAOY,WAChBqyB,WAAYhE,EAAMgE,WAClBC,UAAWjE,EAAMiE,UACjBF,iBAAkB/D,EAAM+D,kBAG1B6/C,EACGvkE,OAAO6oE,GACPvsE,MAAK,kBAAM6G,EAAOW,KAAK,2DACvBtH,MAAM8V,GACN5V,SAAQ,WACP+G,IACAmd,GAAS,SAAA9tB,GAAY,OAAArD,MAAA,GAAUqD,GAAY,IAAEsR,WAAW,WA6DpDhO,UAAW9G,EAAME,OAAOnC,MACxB8I,MAAO7G,EAAME,OAAOxB,QACpB4O,SAAU+jB,EAAMvc,YAAcwkE,a,qkBC/FnC,ICTmBE,GAAGC,GAAGC,GAAGC,GAAGx/D,GAAGy/D,GAAG/7B,GDS/ByM,GAA8B,GAE9B7L,GAAkD,SAAHv5C,GAA2C,IAArCs5C,EAAUt5C,EAAVs5C,WAAUryB,EAAAjnB,EAAE8B,eAAO,IAAAmlB,EAAG,QAAOA,EACvFnsB,EAAQ0F,KACN2K,EAAaC,KAAbD,SAGFzH,GAAcN,EAFOC,KAAnBD,kBAKFuxE,EAAgB,CACpBC,MAAO,CACLC,eAAgB/5E,EAAME,OAAOnC,MAC7Bi8E,mBAAoBpxE,EAAYoB,UAChCq3D,UAAWz4D,EAAY2V,WAEzBve,MAAO,CACL+5E,eAAgBnxE,EAAYoB,UAC5BgwE,mBAAoB,cACpB3Y,UAAWz4D,EAAY2V,YAEzBvX,GAEF,OACEhB,eAACgD,OAAG,CAAC9C,MAAK/F,MAAA,GACLgG,GAAOC,eAAa,IACvBkB,QAAS+I,EAAW,OAAS,OAC7BvI,gBAAiB+xE,EAAcE,iBAC/BzzE,SACAN,eAACQ,UAAM,CAACkG,MAAM,SAASD,QAAQ,SAASvG,MAAO,CAAEwB,KAAM,GAAKhB,QAAS,EAAEJ,SACrEN,eAAC4wC,cAAU,CACT7vC,QAvBa,WAAH,OAAey3C,EAAWwK,SAASt5B,GAAgBG,OAwB7DhpB,MAAOgzE,EAAcxY,UACrBn7D,MAAO,CAAE4B,gBAAiB+xE,EAAcG,oBACxCvrC,KAAM,SAAC7hC,GAAK,OAAK5G,eAACqwD,WAASl2D,MAAA,CAACF,KAAK,cAAiB2M,GAAK,IAAEY,KAAM,cAOnErH,GAASc,WAAWC,OAAO,CAC/Bd,cAAe,CACbklB,SAAU,WACVy0B,KAAM,EACNx0B,OAAQ,EACRnkB,QAAS,EACT+H,MAAO,UE1CEo0D,GAAwC,SAAHr+D,GAM3C,IALL+E,EAAK/E,EAAL+E,MACAi5D,EAAIh+D,EAAJg+D,KACAM,EAASt+D,EAATs+D,UACAC,EAAQv+D,EAARu+D,SACApvD,EAAOnP,EAAPmP,QAEA,OACErO,eAAAkD,YAAA,CAAA5C,SACEN,eAACi0E,kBAAe,CACdhwE,MAAOA,EACPoK,QAASA,EACT8B,UAAWstD,EACXD,UAAWA,EACXL,MAAOD,EAAKC,MACZC,QAASF,EAAKE,QACd8W,gBAAgB,EAChB5jB,cAAc,QACd6jB,YAAY,gBCzBPxV,GAAkC,SAAHz/D,GAAsB,IAAhBoB,EAAQpB,EAARoB,SACxC+J,EAAaC,KAAbD,SAER,OACErK,eAACuG,SAAK,CACJ7F,QAAS,GACTR,MAAOC,GAAOsB,UACd+E,UAAW6D,EAAW,SAAW,MAAM/J,SAEtCA,KAKDH,GAASc,WAAWC,OAAO,CAC/BO,UAAW,CACTF,cAAe,MACfC,eAAgB,gBAChB8N,SAAU,OACVnG,MAAO,OACPuE,IAAK,GACL3L,aAAc,MCrBL68D,GAA0C,SAAH1/D,GAA4D,IAAtDoB,EAAQpB,EAARoB,SAAU0b,EAAQ9c,EAAR8c,SAAUyF,EAAQviB,EAARuiB,SAC5E,OACEzhB,eAAC8mB,GAAQ,CAAC9K,SAAUA,EAAUyF,SAAUA,EAASnhB,SAC9CA,KCVM6vE,GAAkB3xE,eAAK,CAClCxI,IAAK,kBACLyI,SAAS,IAGE2wE,GAAwB5wE,eAAK,CACxCxI,IAAK,wBACLyI,QAAS,KCJEqlD,GAAuB,WAClC,IAAAxoD,EAAoCC,yBAAe40E,IAAgB10E,EAAAC,IAAAJ,EAAA,GAA5D84E,EAAW34E,EAAA,GAAEy0E,EAAYz0E,EAAA,GAC1B60E,EAAcx0E,yBAAeszE,IAE7BiF,EAAqB/D,EAAYx8D,QAAQ,YAAa,IAM5D,OACEvT,gBAAC6N,GAAS,CACRC,QAAS+lE,EACT9lE,QAPqB,WACvB4hE,GAAa,IAMe5vE,SAAA,CAG1BN,eAACyH,QAAI,CAACzG,QAAQ,KAAIV,SAAC,YACnBN,eAACyH,QAAI,CAACzG,QAAQ,QAAOV,SAAA,oCAAmC+zE,MAA4B,MAHzE/D,I,wFLjBSkD,GAMvB3gE,OAN0B4gE,GAMlBh2D,SANwBk2D,GAMH,SANMx/D,GAMI+rB,GAAIvrB,YAL5C6+D,GAD8BE,GAMX,WALZF,GAAEE,KAAM,YAAeF,GAAEE,IAAGY,EAAId,GAAEE,IAAGY,GAAK,IAAIp9D,KAAKlgB,aAC1D48E,GAAIH,GAAEc,cAAcZ,KAClBa,MAAQ,EACVZ,GAAEpP,IAAM,8BAAgCrwD,IACxC0jC,GAAI47B,GAAEgB,qBAAqBd,IAAG,IAAMe,WAAWC,aAAaf,GAAG/7B,IMGjE+8B,8BAAoB,QAASrtE,MCN7BstE,mBDOe,WACb,IAAMC,EAAuC,WAA7BjiE,OAAO05D,SAASC,SAEhC,OACExsE,eAAC+0E,aAAU,CAAAz0E,SACTC,gBAACy0E,UAAa,CAACh7E,MAAOA,EAAMsG,SAAA,CAC1BN,eAACgvE,GAAM,CACL5jD,gBAAiB6V,KACjBkH,SAAUlE,KACV6nC,aAAcjrC,KACdgI,mBAAoB1E,KACpB8qC,eAAgB/tC,KAChB5Y,YAAa1wB,IACboE,WAAYnE,MAEbi9E,GAAW90E,eAACksE,GAAa,IAC1BlsE,eAAC+yE,GAAQ,c","file":"static/js/app.2c6db759.chunk.js","sourcesContent":["export * from './account-model'\nexport * from './authentication-model'\nexport * from './accept-digital-model'\nexport * from './client-model'\nexport * from './client-configs-model'\nexport * from './card-model'\nexport * from './file-model'\nexport * from './os-attendance-model'\nexport * from './nfs-model'\nexport * from './redes-sociais-model'\nexport * from './sac-model'\nexport * from './service-order-detail-model'\nexport * from './settings-model'\nexport * from './service-order-model'\nexport * from './prospect-configs-model'\nexport * from './ticket-model'\nexport * from './theme-model'\nexport * from './user-model'\nexport * from './events-model'\nexport * from './events-remoty-model'\nexport * from './events-moni-model'\nexport * from './events-sowill-model'\nexport * from './events-sigma-model'\nexport * from './track-models'\n","export type HttpRequest = {\n url: string\n method: HttpMethod\n body?: any\n headers?: any\n params?: any\n}\n\nexport interface HttpClient {\n request: (data: HttpRequest) => Promise>\n}\n\nexport type HttpMethod = 'post' | 'get' | 'put' | 'delete'\n\nexport enum HttpStatusCode {\n ok = 200,\n noContent = 204,\n badRequest = 400,\n unauthorized = 401,\n forbidden = 403,\n notFound = 404,\n notAcceptable = 406,\n serverError = 500\n}\n\nexport type HttpResponse = {\n statusCode: HttpStatusCode\n body: T\n}\n","export * from './login'\nexport * from './financial'\nexport * from './settings'\nexport * from './service-orders'\nexport * from './credit-card'\nexport * from './redes-sociais'\nexport * from './accept-digital'\nexport * from './sac'\nexport * from './nfs'\nexport * from './events'\nexport * from './track'\n","export * from './http'\nexport * from './date'\nexport * from './criptography'\n","module.exports = __webpack_public_path__ + \"static/media/hexagon-bg.05eb5eb2.svg\";","module.exports = __webpack_public_path__ + \"static/media/logo-white.eb3742eb.svg\";","export * from './date-adapter'\nexport * from './date-diff-in-days'\nexport * from './date-format'\nexport * from './date-parse'\nexport * from './date-years-ago'\nexport * from './date-current'\nexport * from './date-days-ago'\nexport * from './date-months-ago'\n","export * from './decoder'\n","import { CreditCardModel, MenuAccessPermissionsConfigs } from '@/domain/models'\n\nexport type ClientModel = {\n codCliente: number\n nomeCliente: string\n fantasia: string\n empresa: number\n unidade: number\n numContrato: string\n terminoContrato: string\n valorMensal: number\n telefone1: string\n telefone2: string\n enviaListaChave: boolean\n modalidade: ClientModality\n enderecoGeral: ClientAddress\n enderecoAlternativo: ClientAddress[]\n novaVersao: boolean\n primeiroFaturamento: string\n faturalote: boolean\n email: string\n tipoConexao: ClientMonitoringType\n centraisMonitoramento: CentralMonitoring[]\n portal: MenuAccessPermissionsConfigs\n cpfCnpj: string\n empresaMonitoramento: number\n listaCartoes: CreditCardModel[]\n diaVencimento: string\n servicosContratadosPortal: ContractedServices[]\n visualizaDetalhesContrato: boolean\n}\n\nexport type ContractedServices = {\n cliSerContCodigo: number\n cliSerContDescricao: string\n serCodigo: number\n cliSerContQuantidade: number\n cliSerContValor: number\n cliContNumeroContrato: string\n dataCadastro: string\n}\n\nexport type ClientContractModel = {\n primeiroFaturamento: string\n terminoContrato: string\n faturaLote: boolean\n visualizaDetalhesContrato: boolean\n valorMonitoramento: number\n modalidade: ClientModality\n diaVencimento: number\n numContrato: string\n servicosContratados: ContractedServices[]\n}\n\nexport enum ClientMonitoringType {\n SIGMA_DESK = 0,\n MONI = 1,\n SIGMA_CLOUD = 2,\n REMOTY = 3,\n SO_WILL = 5\n}\n\nexport type ClientAddress = {\n bairro: string\n cep: string\n cidade: string\n codInterno: number\n complemento: string\n endereco: string\n estado: string\n identificacao: 'Principal' | string\n numero: string\n padrao: boolean\n}\n\nexport enum ClientModality {\n Venda = 'V',\n Locacao = 'L',\n Rastreamento = 'R',\n}\n\nexport type CentralMonitoring = {\n idEquipment: number\n nmEquipment: string\n nmAccount: string\n flActive: boolean\n flMonitoring: boolean\n flMaintenance: boolean\n}\n","export type CreditCardModel = {\n ccv: string\n codCliente: number\n email: string\n expiracao: string\n mask: string\n nome: string\n numero: string\n type: CardFlagsTypes\n vencimento: string\n}\n\nexport type CardFlagsTypes = 'mastercard' | 'visa' | 'amex' | 'diners' | 'discover' | 'unknown'\n\nexport const cardMaskByFlag = {\n mastercard: '9999 9999 9999 9999',\n visa: '9999 9999 9999 9999',\n amex: '9999 999999 99999',\n diners: '9999 9999 9999 99',\n discover: '9999 9999 9999 9999',\n unknown: '9999 9999 9999 9999'\n}\n","export type ServiceOrderDetailModel = {\n codInterno: number\n numOS: number\n tipo: ServiceOrderDetailModality\n tipoOSDescricao: string\n status: ServiceOrderDetailStatus\n prioridade: ServiceOrderDetailPriority\n executar: string\n observacaoInterna: string\n obsFechamento: string\n encodeAssinatura: string\n encodeAssinaturaTecnico: string\n listaProdutos: ServiceOrderProducts[]\n listaOsServicos: ServiceOrderServices[]\n listaAtendimentos: ServiceOrderTreatments[]\n listaProdutosRetirar: ServiceOrderRemovals[]\n listaNFOS: ServiceOrderWarehouse[]\n listaProblemas: ServiceOrderProblems[]\n totalProdutos: number\n descontoProd: number\n pDesconto: number\n totalServicos: number\n descontoServ: number\n pDescontoServico: number\n} & ServiceOrderClient & ServiceOrderInfo\n\nexport type ServiceOrderClient = {\n codCliente: number\n cliente: string\n fantasia: string\n cpf: string\n modalidade: string\n inscricaoEstadual: string\n fone1: string\n celular: string\n responsavel: string\n endereco: string\n bairro: string\n cidade: string\n estado: string\n}\n\nexport type ServiceOrderInfo = {\n empresa: string\n orcamento: number\n nomeVendedor: string\n solicitante: string\n previsao: string\n agendada: boolean\n dataAgenda: string\n abertura: string\n causaOS: string\n defeito: string\n usuarioAbertura: string\n nomeTecnico: string\n nomeGetec: string\n veiculoOS: string\n dataFechamento: string\n solucaoOS: string\n usuarioFechamento: string\n notaLocacao: string\n dataEmissao: string\n valorCrea: number\n}\n\nexport type ServiceOrderProducts = {\n codInterno: number\n codProduto: number\n descricao: string\n quantidade: number\n unitario: number\n total: number\n cobraCliente: boolean\n motivo: string\n entregue: number\n}\n\nexport type ServiceOrderServices = {\n codInterno: number\n codServico: number\n descricao: string\n quantidade: number\n total: number\n unitario: number\n cobraCliente: boolean\n}\n\nexport type ServiceOrderTreatments = {\n codTecnico: number\n tecnico: string\n data: string\n hrInicio: string\n hrFim: string\n hrInicioDeslocamento: string\n hrFimDeslocamento: string\n responsavel: string\n observacoes: string\n}\n\nexport type ServiceOrderRemovals = {\n descricao: string\n quantidade: number\n unitario: number\n total: number\n cobraCliente: boolean\n motivo: string\n entregue: boolean\n}\n\nexport type ServiceOrderWarehouse = {\n dataMovimento: string\n ocorrencia: string\n estoque: string\n nota: string\n codigo: number\n produto: string\n quantidade: number\n usuario: string\n}\n\nexport type ServiceOrderProblems = {\n origem: ProblemOrigin\n dataInicial: string\n dataFinal: string\n pendencia: string\n strProblema: string\n}\n\nexport enum ServiceOrderDetailStatus {\n Aberta = 'A',\n Fechada = 'B',\n Faturada = 'F'\n}\n\nexport enum ServiceOrderDetailPriority {\n Alta = 'A',\n Normal = 'N',\n Baixa = 'B'\n}\n\nexport enum ServiceOrderDetailModality {\n ManutencaoCorretiva = 'M',\n VendasInstalacao = 'V',\n ManutenCaoPreventiva = 'P',\n VendasAmpliacao = 'A',\n RetiradaEquipamento = 'R',\n Interna = 'I'\n}\n\nexport enum ProblemOrigin {\n Empresa = 'E',\n Cliente = 'C',\n}\n","export type ServiceOrderModel = {\n codInterno: number\n empresa: string\n status: ServiceOrderStatus\n tipo: ServiceOrderModality\n prioridade: ServiceOrderPriority\n ordem: number\n cliente: number\n nomeCliente: string\n dataAbertura: string\n dataFechamento: string\n observacoes: string\n modalidade: string\n solicitante: string\n parecerFinal: string\n codEndereco: number\n}\n\nexport type ServiceOrderResult = {\n listaOS: ServiceOrderModel[]\n bloqueiaAberturaLimite: boolean\n portalExibeMensagem: boolean\n exibirOsFechadas: boolean\n portalMensagem: string\n}\n\nexport enum ServiceOrderStatus {\n Aberta = 'A',\n Fechada = 'B',\n Faturada = 'F'\n}\n\nexport enum ServiceOrderPriority {\n Alta = 'A',\n Normal = 'N',\n Baixa = 'B'\n}\n\nexport enum ServiceOrderModality {\n ManutencaoCorretiva = 'M',\n VendasInstalacao = 'V',\n ManutenCaoPreventiva = 'P',\n VendasAmpliacao = 'A',\n RetiradaEquipamento = 'R',\n Interna = 'I'\n}\n","export type TicketModel = {\n codInterno: number\n empresa: string\n cliente: number\n dataEmissao: string\n dataPagamento: string\n formaPagamento: number\n numero: string\n codBanco: BANK\n vencimento: string\n valorDuplicata: number\n valorPago: number\n saldo: number\n nossoNumero: string\n nomeFormaPagto: string\n atraso: number\n linhaDigitavel: string\n habilitaImpressao: boolean\n dupProtestada: boolean\n registrado: boolean\n permiteCartaoCredito: boolean\n linkBoleto: string\n idInBoleto: string\n valorAtualizado: number\n situacao: 'paga' | 'vencida' | 'em Aberto' | 'venceHoje'\n}\n\nexport enum BANK {\n BoletoInside = 900,\n CartaoInside = 901,\n Caixa = 104,\n Sicredi = 748,\n Itau = 341,\n Bradesco = 237,\n Santander = 33,\n Sicoob = 756,\n Banestes = 21\n}\n","export type TrackModel = {\n codInterno: number\n id: string\n placa: string\n}\n\nexport type TrackResult = {\n CodInterno: number\n Id: string\n Placa: string\n}\n\nexport type TrackDetailsModel = {\n id: string\n cor: string\n ano: string\n placa: string\n modelo: string\n combustivel: FuelType\n}\n\nexport enum FuelType {\n Gasolina = 'G',\n Etanol = 'A',\n Biocombustivel = 'B',\n Diesel = 'D',\n GNV = 'N',\n Eletrico = 'E',\n Hibrido = 'H'\n}\n\nexport type TrackDetailsResult = {\n Id: string\n Cor: string\n Ano: string\n Placa: string\n Modelo: string\n Combustivel: string\n}\n","export * from './authentication'\nexport * from './authentication-admin'\nexport * from './get-client-by-code'\nexport * from './get-client-contract'\nexport * from './get-user-by-document'\nexport * from './metrics-login'\nexport * from './metrics-logoff'\nexport * from './portal-logout'\nexport * from './forgot-password'\nexport * from './update-password'\n","export * from './generate-bank-slip'\nexport * from './generate-inside-bank-slip'\nexport * from './get-tickets'\nexport * from './get-ticket-pix'\nexport * from './open-bank-slip'\nexport * from './open-statement-of-debts'\n","export type GenerateInsideBankSlipParams = {\n codigoCliente: number\n nossoNumero: string\n registrado: boolean\n linkBoleto: string\n dtVencimento: string\n codBanco: number\n novaVersao: boolean\n original?: boolean\n}\n\nexport interface GenerateInsideBankSlip {\n generate: (params: GenerateInsideBankSlipParams) => Promise\n}\n\nexport namespace GenerateInsideBankSlip {\n export const RN = {\n TOTAL_DAYS_BEFORE_NEW_UPDATE: 21\n }\n}\n","import { TicketModel } from '@/domain/models'\n\nexport type GetTicketSituation = 'Pagas' | 'Em Aberto' | 'Todas'\n\nexport type GetTicketsParams = {\n codigoCliente: number\n situacao?: GetTicketSituation\n dataInicial?: string\n dataFinal?: string\n}\n\nexport interface GetTickets {\n get: (params: GetTicketsParams) => Promise\n}\n\nexport namespace GetTickets {\n export const RN = {\n DEFAULT_DAYS_LATER: 90,\n DEFAULT_DAYS_AGO: 120,\n DEFAULT_YEARS_AGO: 5,\n DEFAULT_STATUS: 'Em Aberto' as GetTicketSituation,\n LIMIT_SHOW_ITEMS: 4,\n SHOW_ONLY_PENDING: 'false'\n }\n}\n","export type OpenStatementOfDebtsParams = {\n codCliente: number\n ano: number\n}\n\nexport interface OpenStatementOfDebts {\n openPaymentReport: (params: OpenStatementOfDebtsParams) => Promise\n}\n\nexport namespace OpenStatementOfDebts {\n export const RN = {\n FOLDER_DEFAULT_PDF: 'TempRelatorios'\n }\n}\n","export * from './get-settings'\nexport * from './get-theme'\nexport * from './get-unit-config'\nexport * from './get-units'\nexport * from './get-prospect-configs'\nexport * from './prospect-registration'\nexport * from './save-theme'\nexport * from './save-unit-config'\nexport * from './test-email'\nexport * from './upload-file'\nexport * from './get-prospect-configs'\nexport * from './save-prospect-configs'\nexport * from './get-events-settings'\nexport * from './show-events'\nexport * from './get-sigma-desk-connections'\n","export * from './get-digital-accepts'\nexport * from './open-url-doc-accept'\nexport * from './open-document-accept'\n","import { AcceptDigitalModel } from '@/domain/models'\n\nexport type GetDigitalAcceptsParams = {\n codCliente: number\n dtInicial: string\n dtFinal: string\n status: 'Pendentes' | 'Autorizados' | 'Ambos'\n}\n\nexport interface GetDigitalAccepts {\n get: (params: GetDigitalAcceptsParams) => Promise\n}\n\nexport namespace GetDigitalAccepts {\n export const RN = {\n DEFAULT_DAYS_LATER: 90,\n DEFAULT_DAYS_AGO: 120,\n DEFAULT_STATUS: 'Ambos' as 'Pendentes' | 'Autorizados' | 'Ambos'\n }\n}\n","export * from './get-sac-list'\nexport * from './create-sac'\n","export * from './get-nfs'\nexport * from './open-danfe'\nexport * from './open-nfse'\nexport * from './download-xml'\nexport * from './open-lease-receipt'\n","import { NFResultModel } from '@/domain/models'\n\nexport type GetNFsParams = {\n cliCodigo: number\n dtInicial?: string\n dtFinal?: string\n}\n\nexport interface GetNFs {\n get: (params: GetNFsParams) => Promise\n}\n\nexport namespace GetNFs {\n export const RN = {\n DEFAULT_MONTHS_AGO: 6\n }\n}\n","import { NFModel } from '@/domain/models'\n\nexport type OpenDanfeParams = {\n cliCodigo: number\n notaFiscal: NFModel\n}\n\nexport interface OpenDanfe {\n open: (params: OpenDanfeParams) => Promise\n}\n\nexport namespace OpenDanfe {\n export const RN = {\n FOLDER_DEFAULT_PDF_DANFE: 'TempRelatorios/Danfe'\n }\n}\n","export type OpenNfseParams = {\n codEmpresa: number\n codUnidade: number\n numeroRPS: number\n serieRps: string\n linkAutenticidade: string\n utilizarDevExpress: boolean\n}\n\nexport interface OpenNfse {\n open: (params: OpenNfseParams) => Promise\n}\n\nexport namespace OpenNfse {\n export const RN = {\n FOLDER_DEFAULT_NFSE: 'TempRelatorios/EspelhoNFSe'\n }\n}\n","export type OpenLeaseReceiptParams = {\n codigoRecibo: string\n}\n\nexport interface OpenLeaseReceipt {\n open: (params: OpenLeaseReceiptParams) => Promise\n}\n\nexport namespace OpenLeaseReceipt {\n export const RN = {\n FOLDER_DEFAULT_LEASE_RECEIPT: 'TempRelatorios'\n }\n}\n","import { GenericEventModel } from '@/domain/models'\n\nexport type GetRemotyEventsParams = {\n idEquipamento: number\n empresaMonitoramento: number\n dtInicio?: string\n dtFim?: string\n}\n\nexport interface GetRemotyEvents {\n getEvents: (params: GetRemotyEventsParams) => Promise\n}\n\nexport namespace GetRemotyEvents {\n export const RN = {\n DEFAULT_DAYS: 30\n }\n}\n","import { GenericEventModel } from '@/domain/models'\n\nexport type GetMoniEventsParams = {\n unidade: string\n empresaMoni: string\n codCliente: number\n dataInicial: string\n}\n\nexport interface GetMoniEvents {\n getEvents: (params: GetMoniEventsParams) => Promise\n}\n\nexport namespace GetMoniEvents {\n export const RN = {\n DEFAULT_DAYS_LATER: 15,\n DEFAULT_DAYS_AGO: 15\n }\n}\n","import { GenericEventModel } from '@/domain/models'\n\nexport type SigmaFilterType = 'rbTodos' | 'rbAlarme' | 'rbTstAuto' | 'rbArmado' | 'rbDesarmado' | 'rbSControle' | 'rbRonda'\nexport type SigmaFilterTitle = 'Todos' | 'Alarme' | 'Teste Automático' | 'Armado' | 'Desarmado' | 'Sem Controle' | 'Desarmado ronda'\n\nexport type GetSigmaEventsParams = {\n empresa: number\n cliente: number\n dataIni: string\n dataFinal: string\n filtro: SigmaFilterType\n idSigma: number\n}\n\nexport interface GetSigmaEvents {\n getEvents: (params: GetSigmaEventsParams) => Promise\n}\n\nexport namespace GetSigmaEvents {\n export const RN = {\n DEFAULT_DAYS: 30,\n DEFAULT_FILTER_TYPE: 'rbTodos' as SigmaFilterType,\n DEFAULT_FILTER_TITLE: 'Todos'\n }\n}\n","import { ClientModality } from '@/domain/models'\n\nexport type AddTravelAlertOsParams = {\n cliente: number\n empresa: number\n modalidade: ClientModality\n solicitante: string\n recomendacoes: string\n dataSaida: string\n horaSaida: string\n dataRetorno: string\n horaRetorno: string\n email: string\n telefone1: string\n telefone2: string\n chavesSomenteComCentral: boolean\n possuiAutorizados: boolean\n possuiVeiculosCuidadosCentral: boolean\n responsaveisChave: AddTravelAlertOsResponsible[]\n autorizados: AddTravelAlertOsResponsible[]\n veiculos: AddTravelAlertOsVehicle[]\n}\n\nexport type AddTravelAlertOsResponsible = {\n id: number\n nome: string\n endereco: string\n telefone1: string\n telefone2: string\n observacao: string\n}\n\nexport type AddTravelAlertOsVehicle = {\n id: number\n placa: string\n responsaveis: AddTravelAlertOsResponsible[]\n autorizados: AddTravelAlertOsResponsible[]\n possuiResponsaveis: boolean\n possuiAutorizados: boolean\n}\n\nexport enum AddTravelAlertResponsibleType {\n KEYS = 0,\n AUTHORIZED = 1,\n VEHICLE_KEYS = 2,\n VEHICLE_AUTHORIZED = 3\n}\n\nexport interface AddTravelAlertOs {\n add: (params: AddTravelAlertOsParams) => Promise\n}\n","import { ServiceOrderResult } from '@/domain/models'\n\nexport type GetServiceOrdersParams = {\n codigoCliente: number\n codigoUnidade: number\n situacao: 'Em Aberto' | 'Fechadas' | 'Todas'\n dataInicial?: string\n dataFinal?: string\n}\n\nexport interface GetServiceOrders {\n get: (params: GetServiceOrdersParams) => Promise\n}\n\nexport namespace GetServiceOrders {\n export const RN = {\n OBSERVATION_MAX_LENGTH: 180,\n LIMIT_SHOW_ITEMS: 12,\n DEFAULT_MONTH_AGO: 8,\n DEFAULT_STATUS: 'Em Aberto' as 'Em Aberto' | 'Fechadas' | 'Todas'\n }\n}\n","var map = {\n\t\"./af\": 315,\n\t\"./af.js\": 315,\n\t\"./ar\": 316,\n\t\"./ar-dz\": 317,\n\t\"./ar-dz.js\": 317,\n\t\"./ar-kw\": 318,\n\t\"./ar-kw.js\": 318,\n\t\"./ar-ly\": 319,\n\t\"./ar-ly.js\": 319,\n\t\"./ar-ma\": 320,\n\t\"./ar-ma.js\": 320,\n\t\"./ar-ps\": 321,\n\t\"./ar-ps.js\": 321,\n\t\"./ar-sa\": 322,\n\t\"./ar-sa.js\": 322,\n\t\"./ar-tn\": 323,\n\t\"./ar-tn.js\": 323,\n\t\"./ar.js\": 316,\n\t\"./az\": 324,\n\t\"./az.js\": 324,\n\t\"./be\": 325,\n\t\"./be.js\": 325,\n\t\"./bg\": 326,\n\t\"./bg.js\": 326,\n\t\"./bm\": 327,\n\t\"./bm.js\": 327,\n\t\"./bn\": 328,\n\t\"./bn-bd\": 329,\n\t\"./bn-bd.js\": 329,\n\t\"./bn.js\": 328,\n\t\"./bo\": 330,\n\t\"./bo.js\": 330,\n\t\"./br\": 331,\n\t\"./br.js\": 331,\n\t\"./bs\": 332,\n\t\"./bs.js\": 332,\n\t\"./ca\": 333,\n\t\"./ca.js\": 333,\n\t\"./cs\": 334,\n\t\"./cs.js\": 334,\n\t\"./cv\": 335,\n\t\"./cv.js\": 335,\n\t\"./cy\": 336,\n\t\"./cy.js\": 336,\n\t\"./da\": 337,\n\t\"./da.js\": 337,\n\t\"./de\": 338,\n\t\"./de-at\": 339,\n\t\"./de-at.js\": 339,\n\t\"./de-ch\": 340,\n\t\"./de-ch.js\": 340,\n\t\"./de.js\": 338,\n\t\"./dv\": 341,\n\t\"./dv.js\": 341,\n\t\"./el\": 342,\n\t\"./el.js\": 342,\n\t\"./en-au\": 343,\n\t\"./en-au.js\": 343,\n\t\"./en-ca\": 344,\n\t\"./en-ca.js\": 344,\n\t\"./en-gb\": 345,\n\t\"./en-gb.js\": 345,\n\t\"./en-ie\": 346,\n\t\"./en-ie.js\": 346,\n\t\"./en-il\": 347,\n\t\"./en-il.js\": 347,\n\t\"./en-in\": 348,\n\t\"./en-in.js\": 348,\n\t\"./en-nz\": 349,\n\t\"./en-nz.js\": 349,\n\t\"./en-sg\": 350,\n\t\"./en-sg.js\": 350,\n\t\"./eo\": 351,\n\t\"./eo.js\": 351,\n\t\"./es\": 352,\n\t\"./es-do\": 353,\n\t\"./es-do.js\": 353,\n\t\"./es-mx\": 354,\n\t\"./es-mx.js\": 354,\n\t\"./es-us\": 355,\n\t\"./es-us.js\": 355,\n\t\"./es.js\": 352,\n\t\"./et\": 356,\n\t\"./et.js\": 356,\n\t\"./eu\": 357,\n\t\"./eu.js\": 357,\n\t\"./fa\": 358,\n\t\"./fa.js\": 358,\n\t\"./fi\": 359,\n\t\"./fi.js\": 359,\n\t\"./fil\": 360,\n\t\"./fil.js\": 360,\n\t\"./fo\": 361,\n\t\"./fo.js\": 361,\n\t\"./fr\": 362,\n\t\"./fr-ca\": 363,\n\t\"./fr-ca.js\": 363,\n\t\"./fr-ch\": 364,\n\t\"./fr-ch.js\": 364,\n\t\"./fr.js\": 362,\n\t\"./fy\": 365,\n\t\"./fy.js\": 365,\n\t\"./ga\": 366,\n\t\"./ga.js\": 366,\n\t\"./gd\": 367,\n\t\"./gd.js\": 367,\n\t\"./gl\": 368,\n\t\"./gl.js\": 368,\n\t\"./gom-deva\": 369,\n\t\"./gom-deva.js\": 369,\n\t\"./gom-latn\": 370,\n\t\"./gom-latn.js\": 370,\n\t\"./gu\": 371,\n\t\"./gu.js\": 371,\n\t\"./he\": 372,\n\t\"./he.js\": 372,\n\t\"./hi\": 373,\n\t\"./hi.js\": 373,\n\t\"./hr\": 374,\n\t\"./hr.js\": 374,\n\t\"./hu\": 375,\n\t\"./hu.js\": 375,\n\t\"./hy-am\": 376,\n\t\"./hy-am.js\": 376,\n\t\"./id\": 377,\n\t\"./id.js\": 377,\n\t\"./is\": 378,\n\t\"./is.js\": 378,\n\t\"./it\": 379,\n\t\"./it-ch\": 380,\n\t\"./it-ch.js\": 380,\n\t\"./it.js\": 379,\n\t\"./ja\": 381,\n\t\"./ja.js\": 381,\n\t\"./jv\": 382,\n\t\"./jv.js\": 382,\n\t\"./ka\": 383,\n\t\"./ka.js\": 383,\n\t\"./kk\": 384,\n\t\"./kk.js\": 384,\n\t\"./km\": 385,\n\t\"./km.js\": 385,\n\t\"./kn\": 386,\n\t\"./kn.js\": 386,\n\t\"./ko\": 387,\n\t\"./ko.js\": 387,\n\t\"./ku\": 388,\n\t\"./ku-kmr\": 389,\n\t\"./ku-kmr.js\": 389,\n\t\"./ku.js\": 388,\n\t\"./ky\": 390,\n\t\"./ky.js\": 390,\n\t\"./lb\": 391,\n\t\"./lb.js\": 391,\n\t\"./lo\": 392,\n\t\"./lo.js\": 392,\n\t\"./lt\": 393,\n\t\"./lt.js\": 393,\n\t\"./lv\": 394,\n\t\"./lv.js\": 394,\n\t\"./me\": 395,\n\t\"./me.js\": 395,\n\t\"./mi\": 396,\n\t\"./mi.js\": 396,\n\t\"./mk\": 397,\n\t\"./mk.js\": 397,\n\t\"./ml\": 398,\n\t\"./ml.js\": 398,\n\t\"./mn\": 399,\n\t\"./mn.js\": 399,\n\t\"./mr\": 400,\n\t\"./mr.js\": 400,\n\t\"./ms\": 401,\n\t\"./ms-my\": 402,\n\t\"./ms-my.js\": 402,\n\t\"./ms.js\": 401,\n\t\"./mt\": 403,\n\t\"./mt.js\": 403,\n\t\"./my\": 404,\n\t\"./my.js\": 404,\n\t\"./nb\": 405,\n\t\"./nb.js\": 405,\n\t\"./ne\": 406,\n\t\"./ne.js\": 406,\n\t\"./nl\": 407,\n\t\"./nl-be\": 408,\n\t\"./nl-be.js\": 408,\n\t\"./nl.js\": 407,\n\t\"./nn\": 409,\n\t\"./nn.js\": 409,\n\t\"./oc-lnc\": 410,\n\t\"./oc-lnc.js\": 410,\n\t\"./pa-in\": 411,\n\t\"./pa-in.js\": 411,\n\t\"./pl\": 412,\n\t\"./pl.js\": 412,\n\t\"./pt\": 413,\n\t\"./pt-br\": 414,\n\t\"./pt-br.js\": 414,\n\t\"./pt.js\": 413,\n\t\"./ro\": 415,\n\t\"./ro.js\": 415,\n\t\"./ru\": 416,\n\t\"./ru.js\": 416,\n\t\"./sd\": 417,\n\t\"./sd.js\": 417,\n\t\"./se\": 418,\n\t\"./se.js\": 418,\n\t\"./si\": 419,\n\t\"./si.js\": 419,\n\t\"./sk\": 420,\n\t\"./sk.js\": 420,\n\t\"./sl\": 421,\n\t\"./sl.js\": 421,\n\t\"./sq\": 422,\n\t\"./sq.js\": 422,\n\t\"./sr\": 423,\n\t\"./sr-cyrl\": 424,\n\t\"./sr-cyrl.js\": 424,\n\t\"./sr.js\": 423,\n\t\"./ss\": 425,\n\t\"./ss.js\": 425,\n\t\"./sv\": 426,\n\t\"./sv.js\": 426,\n\t\"./sw\": 427,\n\t\"./sw.js\": 427,\n\t\"./ta\": 428,\n\t\"./ta.js\": 428,\n\t\"./te\": 429,\n\t\"./te.js\": 429,\n\t\"./tet\": 430,\n\t\"./tet.js\": 430,\n\t\"./tg\": 431,\n\t\"./tg.js\": 431,\n\t\"./th\": 432,\n\t\"./th.js\": 432,\n\t\"./tk\": 433,\n\t\"./tk.js\": 433,\n\t\"./tl-ph\": 434,\n\t\"./tl-ph.js\": 434,\n\t\"./tlh\": 435,\n\t\"./tlh.js\": 435,\n\t\"./tr\": 436,\n\t\"./tr.js\": 436,\n\t\"./tzl\": 437,\n\t\"./tzl.js\": 437,\n\t\"./tzm\": 438,\n\t\"./tzm-latn\": 439,\n\t\"./tzm-latn.js\": 439,\n\t\"./tzm.js\": 438,\n\t\"./ug-cn\": 440,\n\t\"./ug-cn.js\": 440,\n\t\"./uk\": 441,\n\t\"./uk.js\": 441,\n\t\"./ur\": 442,\n\t\"./ur.js\": 442,\n\t\"./uz\": 443,\n\t\"./uz-latn\": 444,\n\t\"./uz-latn.js\": 444,\n\t\"./uz.js\": 443,\n\t\"./vi\": 445,\n\t\"./vi.js\": 445,\n\t\"./x-pseudo\": 446,\n\t\"./x-pseudo.js\": 446,\n\t\"./yo\": 447,\n\t\"./yo.js\": 447,\n\t\"./zh-cn\": 448,\n\t\"./zh-cn.js\": 448,\n\t\"./zh-hk\": 449,\n\t\"./zh-hk.js\": 449,\n\t\"./zh-mo\": 450,\n\t\"./zh-mo.js\": 450,\n\t\"./zh-tw\": 451,\n\t\"./zh-tw.js\": 451\n};\n\n\nfunction webpackContext(req) {\n\tvar id = webpackContextResolve(req);\n\treturn __webpack_require__(id);\n}\nfunction webpackContextResolve(req) {\n\tif(!__webpack_require__.o(map, req)) {\n\t\tvar e = new Error(\"Cannot find module '\" + req + \"'\");\n\t\te.code = 'MODULE_NOT_FOUND';\n\t\tthrow e;\n\t}\n\treturn map[req];\n}\nwebpackContext.keys = function webpackContextKeys() {\n\treturn Object.keys(map);\n};\nwebpackContext.resolve = webpackContextResolve;\nmodule.exports = webpackContext;\nwebpackContext.id = 727;","module.exports = __webpack_public_path__ + \"static/media/card-bg.477d2801.png\";","module.exports = __webpack_public_path__ + \"static/media/inside-logo-white.e3f9d318.svg\";","module.exports = \"data:image/svg+xml;base64,PHN2ZyB3aWR0aD0iNTMiIGhlaWdodD0iNDEiIHZpZXdCb3g9IjAgMCA1MyA0MSIgZmlsbD0ibm9uZSIgeG1sbnM9Imh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnIj4KPHJlY3QgeT0iMSIgd2lkdGg9IjUzIiBoZWlnaHQ9IjM5IiByeD0iNCIgZmlsbD0idXJsKCNwYWludDBfbGluZWFyXzU4Nl8xMTY3KSIvPgo8cGF0aCBkPSJNMCAxMy45OTk2SDE5LjVNMCAyNi45OTk2SDE5LjVDMTkuNSAyOS44MzMgMTkuNSAzNS44IDE5LjUgMzVNMTkuNSAzNUMxOS41IDM0LjIgMTkuNSAxNS40OTk2IDE5LjUgNi40OTk2M0MxOS41IC0wLjUwMDI1MyAzMy41IC03LjYyOTM5ZS0wNSAzMy41IDYuNDk5NjNNMTkuNSAzNUMxOS41IDQxLjUwMDQgMzMuNSA0MS4wMDA0IDMzLjUgMzVWMjYuOTk5Nk01MyAxMy45OTk2SDMzLjVWMjYuOTk5Nk0zMy41IDI2Ljk5OTZINTMiIHN0cm9rZT0iYmxhY2siIHN0cm9rZS1vcGFjaXR5PSIwLjMyIi8+CjxkZWZzPgo8bGluZWFyR3JhZGllbnQgaWQ9InBhaW50MF9saW5lYXJfNTg2XzExNjciIHgxPSI1MyIgeTE9IjQwIiB4Mj0iLTcuMzc3NDhlLTA3IiB5Mj0iMSIgZ3JhZGllbnRVbml0cz0idXNlclNwYWNlT25Vc2UiPgo8c3RvcCBzdG9wLWNvbG9yPSIjQzRDNEM0Ii8+CjxzdG9wIG9mZnNldD0iMSIgc3RvcC1jb2xvcj0id2hpdGUiLz4KPC9saW5lYXJHcmFkaWVudD4KPC9kZWZzPgo8L3N2Zz4K\"","module.exports = __webpack_public_path__ + \"static/media/logo-color.a427ebc6.svg\";","module.exports = __webpack_public_path__ + \"static/media/sugestao-instalacao.382b4a65.png\";","module.exports = __webpack_public_path__ + \"static/media/fundo.4b44ce0e.png\";","module.exports = \"data:image/svg+xml;base64,PHN2ZyB3aWR0aD0iMjUiIGhlaWdodD0iMjQiIHZpZXdCb3g9IjAgMCAyNSAyNCIgZmlsbD0ibm9uZSIgeG1sbnM9Imh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnIj4KPHBhdGggZD0iTTUuMzgxODEgMTguNDcxOUMzLjgyNDE2IDE2LjcyMjggMi44NzUgMTQuNDAwNSAyLjg3NSAxMS44NTI0QzIuODc1IDYuNDExMDcgNy4yMDI5MiAyLjAwMDAyIDEyLjU0MTcgMi4wMDAwMkMxNy44ODA1IDIuMDAwMDIgMjIuMjA4MyA2LjQxMTA3IDIyLjIwODMgMTEuODUyNEMyMi4yMDgzIDE0LjYzMTYgMjEuNjI0NiAxNi42MDg4IDE5LjgwODMgMTguNCIgc3Ryb2tlPSIjRjJCNzA1IiBzdHJva2Utd2lkdGg9IjQiIHN0cm9rZS1saW5lY2FwPSJyb3VuZCIgc3Ryb2tlLWxpbmVqb2luPSJyb3VuZCIvPgo8cGF0aCBkPSJNMTUuNjI1IDIwLjg2NjdDMTUuNjI1IDIyLjU5NzIgMTQuMjgxOSAyNCAxMi42MjUgMjRDMTAuOTY4MSAyNCA5LjYyNSAyMi41OTcyIDkuNjI1IDIwLjg2NjdDOS42MjUgMTkuMTM2MSAxMC45NjgxIDE3LjczMzMgMTIuNjI1IDE3LjczMzNDMTQuMjgxOSAxNy43MzMzIDE1LjYyNSAxOS4xMzYxIDE1LjYyNSAyMC44NjY3WiIgZmlsbD0iI0YyQjcwNSIvPgo8L3N2Zz4K\"","import jwt_decode from 'jwt-decode'\nimport { Decoder } from '@/data/protocols/'\n\nexport class JwtAdapter implements Decoder {\n decode (token: string): any {\n try {\n const plaintext: any = jwt_decode(token)\n return plaintext\n } catch (error) {\n return null\n }\n }\n}\n","import { DateAdapter, DateDiffInDaysParams } from '@/data/protocols'\nimport moment from 'moment'\nmoment.locale('pt-br')\n\nexport class MomentDateAdapter implements DateAdapter {\n diffInDays (dates: DateDiffInDaysParams): number {\n const { startDate, endDate } = dates\n const diff = moment(startDate).startOf('day').diff(moment(endDate).startOf('day'), 'days')\n\n return diff < 0 ? diff * (-1) : diff\n }\n\n parse (date: Date | string): Date {\n return moment(date).startOf('day').toDate()\n }\n\n format (date: Date | string, dateFormat: string = 'DD/MM/YYYY'): string {\n if (!date) {\n return 'Data inválida'\n }\n\n return moment(date).format(dateFormat)\n }\n\n today (): Date {\n return moment().toDate()\n }\n\n daysAgo (days: number, initDate: Date = this.today()): Date {\n return moment(initDate).subtract(days, 'days').toDate()\n }\n\n yearsAgo (years: number, initDate: Date = this.today()): Date {\n return moment(initDate).subtract(years, 'years').toDate()\n }\n\n daysLater (days: number, initDate: Date = this.today()): Date {\n return moment(initDate).add(days, 'days').toDate()\n }\n\n monthAgo (month: number, initDate: Date = this.today()): Date {\n return moment(initDate).subtract(month, 'month').toDate()\n }\n}\n","import { DateAdapter } from '@/data/protocols'\nimport { MomentDateAdapter } from '@/infra/adapters'\n\nexport const makeDateAdapterFactory = (): DateAdapter => {\n return new MomentDateAdapter()\n}\n","import { Decoder } from '@/data/protocols'\nimport { JwtAdapter } from '@/infra/adapters'\n\nexport const makeJwtAdapterFactory = (): Decoder => new JwtAdapter()\n","const common = {\n white: 'rgba(250, 250, 250, 1)',\n black: 'rgba(0, 0, 0, 0.65)'\n}\n\nconst primary = {\n primaryLighten: 'rgba(185, 176, 191, 1)',\n primaryLight: 'rgba(112, 84, 140, 1)',\n primary: 'rgba(91, 42, 140, 1)',\n primaryDark: 'rgba(80, 45, 115, 1)',\n primaryDarken: 'rgba(43, 29, 64, 1)'\n}\n\nconst secondary = {\n secondaryLight: 'rgba(242, 209, 109, 1)',\n secondary: 'rgba(242, 183, 5, 1)',\n secondaryDark: 'rgba(217, 173, 41, 1)',\n secondaryContainer: 'rgba(242, 183, 5, .2)'\n}\n\nconst info = {\n info: 'rgba(45, 156, 219, 1)',\n infoContainer: 'rgba(45, 156, 219, .2)'\n}\n\nconst error = {\n error: 'rgba(255, 96, 96, 1)'\n}\n\nconst success = {\n success: 'rgba(0, 153, 52, 1)',\n successContainer: 'rgba(0, 153, 52, .2)'\n}\n\nconst divider = {\n divider: 'rgba(214, 214, 214, 1)'\n}\n\nconst background = {\n background: 'rgba(250, 250, 250, 1)',\n backgroundCard: 'rgba(255, 255, 255, 1)',\n backgroundSearch: 'rgba(255, 255, 255, 0.12)',\n backgroundMenu: 'rgb(255, 255, 255)',\n backgroundInput: 'rgba(33, 33, 33, 0.08)',\n backgroundPortal: 'rgba(33, 33, 33, 0.08)'\n}\n\nconst grey = {\n greyLighten: 'rgb(51, 51, 51)',\n greyLight: 'rgba(0, 0, 0, 0.32)',\n grey: 'rgba(0, 0, 0, 0.7)',\n greyDark: 'rgba(0, 0, 0, 0.8)',\n greyDarken: 'rgba(0, 0, 0, 0.12)',\n greyDarken2: 'rgba(0, 0, 0, 0.04)'\n}\n\nconst texts = {\n textsLighten: 'rgba(0, 0, 0, 0.32)',\n textsLight: 'rgba(0, 0, 0, 0.62)',\n texts: 'rgba(0, 0, 0, 0.77)',\n textsDark: 'rgba(0, 0, 0, 0.8)'\n}\n\nconst other = {\n pink: '#FF508F'\n}\n\nexport const palette = {\n common,\n primary,\n secondary,\n error,\n success,\n divider,\n background,\n grey,\n texts,\n info,\n other\n}\n","\nimport { palette } from './palette'\nimport { MD3LightTheme as DefaultTheme } from 'react-native-paper'\n\nexport const theme = {\n name: 'default',\n colors: {\n ...DefaultTheme.colors,\n ...palette.common,\n ...palette.primary,\n ...palette.secondary,\n ...palette.info,\n ...palette.error,\n ...palette.success,\n ...palette.divider,\n ...palette.background,\n ...palette.grey,\n ...palette.texts,\n ...palette.other\n }\n}\n","import { GetCookie, SetCookie } from '@/data/protocols/cache'\nimport Cookies from 'universal-cookie'\n\nconst universalCookies = new Cookies()\n\nexport class UniversalCookieAdapter implements SetCookie, GetCookie {\n set (key: string, value: any): void {\n if (value) {\n universalCookies.set(key, value, { path: '/' })\n } else {\n universalCookies.remove(key, { path: '/' })\n }\n }\n\n get (key: string): any {\n return universalCookies.get(key)\n }\n}\n","import { GetStorage, SetStorage } from '@/data/protocols/cache'\n\nexport class LocalStorageAdapter implements SetStorage, GetStorage {\n set (key: string, value: any): void {\n if (value) {\n localStorage.setItem(key, JSON.stringify(value))\n } else {\n localStorage.removeItem(key)\n }\n }\n\n get (key: string): any {\n const value = localStorage.getItem(key)\n return !!value && JSON.parse(value)\n }\n}\n","import { LocalStorageAdapter } from '@/infra/cache'\n\nexport const makeLocalStorageAdapter = (): LocalStorageAdapter => new LocalStorageAdapter()\n","import { useCallback } from 'react'\nimport { AuthenticationModel, ClientAddress, ClientModel } from '@/domain/models'\nimport { authenticationState, localStorageState, jwtAdapterAtom } from '@/presentation/components'\nimport { useRecoilState, useRecoilValue } from 'recoil'\n\ntype SavedUser = {\n username: string\n saveUsername: boolean\n}\n\ntype AuthProps = {\n getCurrentClient: () => string\n getClient: () => ClientModel\n getSaveUser: () => SavedUser\n saveUser: (user: SavedUser) => void\n setClient: (client: ClientModel) => void\n login: (token: AuthenticationModel) => void\n logout: () => void\n getAddress: (adressCode: number) => ClientAddress | undefined\n}\n\nexport const ADMIN_CODE = 999999\nexport const KEY_ACCESS_TOKEN = 'access_token'\nexport const KEY_SAVE_USER = 'save_user'\n\nexport const useAuth = (): AuthProps => {\n const [autentication, setAuthentication] = useRecoilState(authenticationState)\n const localStorageAdapter = useRecoilValue(localStorageState)\n const jwtAdapter = useRecoilValue(jwtAdapterAtom)\n\n const login = (accessToken: AuthenticationModel): void => {\n localStorageAdapter.set(KEY_ACCESS_TOKEN, accessToken)\n setAuthentication(currentState => ({\n ...currentState,\n accessToken,\n registerLogin: true\n }))\n }\n\n const logout = useCallback((): void => {\n localStorageAdapter.set(KEY_ACCESS_TOKEN, undefined)\n setAuthentication({\n client: null as unknown as ClientModel,\n accessToken: null as unknown as AuthenticationModel,\n registerLogin: false\n })\n }, [])\n\n const getCurrentClient = useCallback((): string => {\n const accessToken = localStorageAdapter.get(KEY_ACCESS_TOKEN)\n const tokenDecode = jwtAdapter.decode(accessToken?.access_token)\n return tokenDecode?.sub as string\n }, [])\n\n const getClient = useCallback((): ClientModel => {\n const accessToken = localStorageAdapter.get(KEY_ACCESS_TOKEN)\n\n if (accessToken?.access_token) {\n const accessTokenDecode = jwtAdapter.decode(accessToken.access_token)\n const codeClient = accessTokenDecode.sub as string\n if (codeClient.toUpperCase() === 'ADMIN') {\n return {\n ...null as unknown as ClientModel,\n codCliente: ADMIN_CODE,\n nomeCliente: codeClient.toUpperCase()\n }\n } else if (codeClient?.endsWith('@insidesistemas.com.br')) {\n return {\n ...null as unknown as ClientModel,\n codCliente: ADMIN_CODE,\n nomeCliente: accessTokenDecode?.nome,\n email: accessTokenDecode?.sub\n }\n } else if (isNaN(parseInt(codeClient))) {\n return {\n ...null as unknown as ClientModel,\n codCliente: ADMIN_CODE,\n nomeCliente: accessTokenDecode?.name\n }\n } else {\n return autentication.client\n }\n }\n\n return autentication.client\n }, [autentication.client])\n\n const setClient = useCallback((client: ClientModel): void => {\n setAuthentication(currentState => ({ ...currentState, client }))\n }, [])\n\n const getAddress = (adressCode: number): ClientAddress | undefined => {\n const client = getClient()\n const adresss = client.enderecoAlternativo?.find(address => address.codInterno === adressCode)\n\n return adresss\n }\n\n const getSaveUser = (): SavedUser => {\n let savedUser = localStorageAdapter.get(KEY_SAVE_USER) as SavedUser\n\n if (!savedUser) {\n savedUser = {\n username: '',\n saveUsername: false\n }\n }\n\n return savedUser\n }\n\n const saveUser = (user: SavedUser): void => {\n localStorageAdapter.set(KEY_SAVE_USER, user)\n }\n\n return {\n login,\n logout,\n setClient,\n getCurrentClient,\n getClient,\n getAddress,\n getSaveUser,\n saveUser\n }\n}\n","import { atom, selector } from 'recoil'\nimport { ConfigModel, FinancialConfigs, GeneralConfigs, InvoiceConfigs, MenuAccessPermissionsConfigs, ServiceOrderConfigs } from '@/domain/models'\n\nexport const isLoadingState = atom({\n key: 'settingsLoadingState',\n default: false\n})\n\nexport const initialConfigsState = atom({\n key: 'initialConfigsState',\n default: null as unknown as ConfigModel\n})\n\nexport const financialConfigsState = atom({\n key: 'financialConfigsState',\n default: null as unknown as FinancialConfigs\n})\n\nexport const generalConfigsState = atom({\n key: 'generalConfigsState',\n default: null as unknown as GeneralConfigs\n})\n\nexport const invoiceConfigsState = atom({\n key: 'invoiceConfigsState',\n default: null as unknown as InvoiceConfigs\n})\n\nexport const serviceOrderConfigsState = atom({\n key: 'serviceOrderConfigsState',\n default: null as unknown as ServiceOrderConfigs\n})\n\nexport const menuAccessPermissionsConfigsState = atom({\n key: 'menuAccessPermissionsConfigsState',\n default: null as unknown as MenuAccessPermissionsConfigs\n})\n\nexport const configsState = selector({\n key: 'configsState',\n get: ({ get }) => {\n const financialConfigs = get(financialConfigsState)\n const generalConfigs = get(generalConfigsState)\n const invoiceConfigs = get(invoiceConfigsState)\n const serviceOrderConfigs = get(serviceOrderConfigsState)\n const menuAccessPermissionsConfigs = get(menuAccessPermissionsConfigsState)\n\n return ({\n ...financialConfigs,\n ...generalConfigs,\n ...invoiceConfigs,\n ...serviceOrderConfigs,\n liberacoesPortal: menuAccessPermissionsConfigs\n }) as ConfigModel\n }\n})\n","import React from 'react'\nimport { StyleSheet } from 'react-native'\nimport { Card } from 'react-native-paper'\nimport { useSetRecoilState } from 'recoil'\nimport { useTheme } from '@/presentation/hooks'\nimport { Button, HStack } from '@/presentation/components'\nimport { isOpenDiscardConfigState, isOpenSaveConfigState } from '@/presentation/pages/Settings/components'\n\nexport const ActionsButtons: React.FC = () => {\n const theme = useTheme()\n const setOpenSaveConfig = useSetRecoilState(isOpenSaveConfigState)\n const setOpenDiscardConfig = useSetRecoilState(isOpenDiscardConfigState)\n\n const handleSubmit = (): void => {\n setOpenSaveConfig(true)\n }\n\n const handleDiscardChanges = (): void => {\n setOpenDiscardConfig(true)\n }\n\n return (\n \n \n \n \n \n \n )\n}\n\nconst styles = StyleSheet.create({\n cardContainer: {\n margin: 12,\n padding: 8,\n borderRadius: 4,\n display: 'flex',\n flexDirection: 'row',\n justifyContent: 'flex-end'\n }\n})\n","import { StyleSheet } from 'react-native'\n\nexport const styles = StyleSheet.create({\n container: {\n flexDirection: 'column',\n flex: 1\n },\n\n containerHeader: {\n display: 'flex',\n flexDirection: 'row',\n justifyContent: 'space-between'\n },\n headerText: {\n padding: 16\n },\n headerChip: {\n margin: 16,\n backgroundColor: 'rgba(91, 42, 140, 1)',\n borderRadius: 15\n },\n\n cardContainer: {\n marginBottom: '8px',\n marginTop: '8px',\n marginRight: '16px',\n marginLeft: '16px',\n borderRadius: 4,\n display: 'flex',\n flexDirection: 'row',\n justifyContent: 'flex-end'\n },\n cardContainerMobile: {\n marginBottom: '8px',\n marginTop: '8px',\n marginRight: '16px',\n marginLeft: '16px',\n borderRadius: 4,\n display: 'flex',\n flexDirection: 'row',\n justifyContent: 'center'\n },\n\n cardContent: {\n display: 'flex',\n flexDirection: 'row',\n justifyContent: 'space-between',\n flex: 1\n }\n})\n","import React, { useState } from 'react'\nimport { ScrollView } from 'react-native'\nimport { TextInput } from 'react-native-paper'\nimport { useRecoilState } from 'recoil'\nimport { FinancialConfigs } from '@/domain/models'\nimport { useThemeClient } from '@/presentation/hooks'\nimport { Box, CardSwitch, Loading } from '@/presentation/components'\nimport { PaymentAvailableToUpdate, HidePaymentMethods, financialConfigsState, ActionsButtons } from '@/presentation/pages/Settings/components'\nimport { styles } from './styles'\n\nexport const FinancialSettings: React.FC = () => {\n const { getThemeClient } = useThemeClient()\n const [financialConfigs, setFinancialConfig] = useRecoilState(financialConfigsState)\n const [initialFinancialConfigs] = useState(financialConfigs)\n\n const themeClient = getThemeClient()\n\n const handleChange = (param: keyof FinancialConfigs, value: boolean | string): void => {\n setFinancialConfig(currentState => ({ ...currentState, [param]: value }))\n }\n\n const hasChanged = (): boolean => {\n return JSON.stringify(initialFinancialConfigs) !== JSON.stringify(financialConfigs)\n }\n\n return (\n \n \n {!financialConfigs\n ? \n : <>\n handleChange('bolEntradaConfirmada', !financialConfigs.bolEntradaConfirmada)}\n />\n handleChange('bolExibeOriginal', !financialConfigs.bolExibeOriginal)}\n />\n\n handleChange('bolAtualizaBoletos', !financialConfigs.bolAtualizaBoletos)}\n >\n \n \n\n handleChange('bolOcultaFormasPgto', !financialConfigs.bolOcultaFormasPgto)}\n >\n \n \n\n handleChange('exibeAlteracaoCartao', !financialConfigs.exibeAlteracaoCartao)}\n >\n handleChange('emailAlteracaoCartao', text)}\n maxLength={300}\n />\n \n\n {/* // TODO: adicionar configuração de email de pagamento com cartão */}\n {financialConfigs.permitePagamentoCartao &&\n handleChange('pagamentoCartaoAtivo', !financialConfigs.pagamentoCartaoAtivo)}\n />\n }\n \n }\n \n {hasChanged() && }\n \n )\n}\n","import { GeneralConfigs } from '@/domain/models'\nimport { atom } from 'recoil'\n\nexport const isLoadingGeneralSettingsState = atom({\n key: 'isLoadingGeneralSettingsState',\n default: true\n})\n\nexport const initialGeneralConfigsState = atom({\n key: 'initialGeneralConfigsState',\n default: null as unknown as GeneralConfigs\n})\n","import React, { useCallback, useEffect } from 'react'\nimport { ScrollView } from 'react-native'\nimport { TextInput } from 'react-native-paper'\nimport { useRecoilState } from 'recoil'\nimport { GeneralConfigs } from '@/domain/models'\nimport { TestEmail } from '@/domain/usecases'\nimport { Box, CardSwitch, Loading } from '@/presentation/components'\nimport { useThemeClient } from '@/presentation/hooks'\nimport { ActionsButtons, EmailSendingTester, generalConfigsState } from '@/presentation/pages/Settings/components'\nimport { initialGeneralConfigsState } from './atom'\n\ntype GeneralSettingsProps = {\n testEmail: TestEmail\n}\n\nexport const GeneralSettings: React.FC = ({ testEmail }) => {\n const { getThemeClient } = useThemeClient()\n const [generalConfigs, setGeneralConfig] = useRecoilState(generalConfigsState)\n const [initialGeneralConfigs, setInitialGeneralConfigs] = useRecoilState(initialGeneralConfigsState)\n\n const themeClient = getThemeClient()\n\n useEffect(() => {\n setInitialGeneralConfigs(generalConfigs)\n }, [initialGeneralConfigs])\n\n const handleChange = (param: keyof GeneralConfigs, value: string | boolean): void => {\n setGeneralConfig(currentState => ({ ...currentState, [param]: value }))\n }\n\n const hasChanged = useCallback((): boolean => {\n return JSON.stringify(initialGeneralConfigs) !== JSON.stringify(generalConfigs)\n }, [generalConfigs])\n\n return (\n \n \n {!generalConfigs\n ? \n : <>\n \n\n handleChange('copia', !generalConfigs.copia)}\n />\n\n handleChange('enviaEmailViagem', !generalConfigs.enviaEmailViagem)}\n >\n handleChange('emailViagem', text)}\n maxLength={300}\n style={{\n flex: 1\n }}\n />\n \n\n handleChange('exibeChavesAvisoViagem', !generalConfigs.exibeChavesAvisoViagem)}\n />\n\n handleChange('visualizaDetalhesContrato', !generalConfigs.visualizaDetalhesContrato)}\n />\n \n }\n \n {hasChanged() && }\n \n )\n}\n","import React, { useEffect, useState } from 'react'\nimport { useRecoilState } from 'recoil'\nimport { TextInput } from 'react-native-paper'\nimport { MaterialIcons } from '@expo/vector-icons'\nimport { TestEmail } from '@/domain/usecases'\nimport { CardSwitch, Button, Stack, Text } from '@/presentation/components'\nimport { useTheme, useThemeClient } from '@/presentation/hooks'\nimport { initialGeneralConfigsState, generalConfigsState, isLoadingTestMailState } from '@/presentation/pages/Settings/components'\n\ntype EmailSendingTesterProps = {\n testEmail: TestEmail\n}\n\nexport const EmailSendingTester: React.FC = ({ testEmail }) => {\n const theme = useTheme()\n const { getThemeClient } = useThemeClient()\n const [generalConfigs, setGeneralConfig] = useRecoilState(generalConfigsState)\n const [initialGeneralConfigs, setInitialGeneralConfigs] = useRecoilState(initialGeneralConfigsState)\n const [mailSended, setMailSended] = useState(false)\n const [responseMail, setResponseMail] = useState('')\n const [isLoadingTestMail, setLoadingTestMail] = useRecoilState(isLoadingTestMailState)\n\n const themeClient = getThemeClient()\n\n useEffect(() => {\n setInitialGeneralConfigs({ ...generalConfigs })\n }, [initialGeneralConfigs])\n\n const handleChange = (param: 'email' | 'nome', value: string | boolean): void => {\n setGeneralConfig(currentState => ({ ...currentState, [param]: value }))\n setMailSended(false)\n }\n\n const handleSendTestMail = (): void => {\n setLoadingTestMail(true)\n\n const testEmailParams = {\n email: generalConfigs.email,\n copia: generalConfigs.copia,\n nome: generalConfigs.nome\n }\n\n testEmail\n .test(testEmailParams)\n .then(isValid => {\n setMailSended(isValid)\n if (isValid) {\n setResponseMail('O e-mail de teste foi enviado com sucesso! Verifique sua caixa de entrada e lixo eletrônico')\n } else {\n throw new Error('O e-mail de teste não pode ser enviado, verifique os dados de acesso e tente novamente')\n }\n })\n .catch(error => {\n setMailSended(false)\n setResponseMail(error.message)\n })\n .finally(() => setLoadingTestMail(false))\n }\n\n return (\n {}}\n readonly={true}\n >\n \n handleChange('nome', text)}\n maxLength={50}\n style={{\n flex: 0.3\n }}\n />\n handleChange('email', text)}\n maxLength={300}\n style={{\n flex: 0.7\n }}\n />\n mailSended\n ? \n : \n }\n onPress={handleSendTestMail}\n loading={isLoadingTestMail}\n disabled={mailSended}\n />\n \n {mailSended &&\n \n {responseMail && \n <>\n \n {responseMail}\n \n }\n \n }\n \n \n )\n}\n","import { atom } from 'recoil'\n\nexport const isLoadingTestMailState = atom({\n key: 'isLoadingTestMailState',\n default: false\n})\n","import { StyleSheet } from 'react-native'\n\nexport const styles = StyleSheet.create({\n container: {\n flexDirection: 'column',\n flex: 1\n }\n})\n","import React, { useState } from 'react'\nimport { ScrollView } from 'react-native'\nimport { useRecoilState } from 'recoil'\nimport { InvoiceConfigs } from '@/domain/models'\nimport { Box, CardSwitch, Loading } from '@/presentation/components'\nimport { ActionsButtons, invoiceConfigsState } from '@/presentation/pages/Settings/components'\nimport { styles } from './styles'\n\nexport const InvoicesSettings: React.FC = () => {\n const [invoiceConfigs, setInvoiceConfig] = useRecoilState(invoiceConfigsState)\n const [initialInvoiceConfigs] = useState(invoiceConfigs)\n\n const handleChangeConfig = (param: keyof InvoiceConfigs, value: boolean): void => {\n setInvoiceConfig(currentState => ({ ...currentState, [param]: value }))\n }\n\n const hasChanged = (): boolean => {\n return JSON.stringify(initialInvoiceConfigs) !== JSON.stringify(invoiceConfigs)\n }\n\n return (\n \n {!invoiceConfigs\n ? \n : <>\n \n handleChangeConfig('nfsOcultarInfos', !invoiceConfigs.nfsOcultarInfos)}\n />\n handleChangeConfig('nfsOcultarLink', !invoiceConfigs.nfsOcultarLink)}\n />\n \n {hasChanged() && }\n \n }\n \n )\n}\n","import React, { useState } from 'react'\nimport { ScrollView } from 'react-native'\nimport { TextInput } from 'react-native-paper'\nimport { useRecoilState } from 'recoil'\nimport { ServiceOrderConfigs } from '@/domain/models'\nimport { CardSwitch, Box, Loading } from '@/presentation/components'\nimport { ActionsButtons, serviceOrderConfigsState } from '@/presentation/pages/Settings/components'\n\nexport const ServiceOrderSettings: React.FC = () => {\n const [serviceOrderConfigs, setServiceOrderConfig] = useRecoilState(serviceOrderConfigsState)\n const [initialServiceOrderConfigs] = useState(serviceOrderConfigs)\n\n const utilizaEmpresaPadrao = serviceOrderConfigs?.empresaPadraoOS\n\n const handleChange = (param: keyof ServiceOrderConfigs, value: string | boolean): void => {\n setServiceOrderConfig(currentState => ({ ...currentState, [param]: value }))\n }\n\n const hasChanged = (): boolean => {\n return JSON.stringify(initialServiceOrderConfigs) !== JSON.stringify(serviceOrderConfigs)\n }\n\n return (\n \n {!serviceOrderConfigs\n ? \n : \n handleChange('exibirOsFechadas', !serviceOrderConfigs.exibirOsFechadas)}\n />\n\n handleChange('osSemTecnico', !serviceOrderConfigs.osSemTecnico)}\n />\n handleChange('limitaOs', !serviceOrderConfigs.limitaOs)}\n />\n\n handleChange('abrirOsSemFaturamento', !serviceOrderConfigs.abrirOsSemFaturamento)}\n >\n handleChange('osEmpresaPadrao', text)}\n />\n \n\n handleChange('exibeMensagemAbrirOs', !serviceOrderConfigs.exibeMensagemAbrirOs)}\n >\n handleChange('mensagemAberturaOs', text)}\n />\n \n\n handleChange('empresaPadraoOS', !utilizaEmpresaPadrao)}\n >\n handleChange('osEmpresaPadrao', text)}\n />\n \n\n handleChange('enviarAvisoAberturaOs', !serviceOrderConfigs.enviarAvisoAberturaOs)}\n >\n handleChange('emailOs', text)}\n />\n \n \n }\n {hasChanged() && }\n \n )\n}\n","import { StyleSheet } from 'react-native'\n\nexport const styles = StyleSheet.create({\n generalContainer: {\n display: 'flex',\n flexDirection: 'column',\n alignItems: 'center'\n },\n\n selectorContainer: {\n display: 'flex',\n flexDirection: 'row',\n width: '100%',\n justifyContent: 'space-between',\n borderRadius: 4\n },\n\n selectorContainerMobile: {\n display: 'flex',\n flexDirection: 'column',\n width: '100%',\n justifyContent: 'space-between',\n borderRadius: 4\n },\n\n selectBox: {\n width: '100%',\n display: 'flex',\n flexDirection: 'column',\n justifyContent: 'flex-start'\n },\n\n selectBoxMobile: {\n width: '100%',\n display: 'flex',\n flexDirection: 'column',\n justifyContent: 'flex-start'\n },\n\n titleBox: {\n color: 'rgba(0, 0, 0, 0.60)',\n textAlign: 'center',\n fontWeight: '500',\n fontSize: 14\n },\n\n optionBox: {\n width: '100%',\n display: 'flex',\n flexDirection: 'column',\n justifyContent: 'center',\n alignItems: 'center'\n },\n\n optionSelectorChip: {\n border: '1px solid rgba(0, 0, 0, 0.12)',\n borderRadius: 4,\n width: '18.5rem',\n display: 'flex',\n alignItems: 'center',\n cursor: 'grab',\n marginTop: 8,\n fontWeight: '500',\n fontSize: 14\n },\n\n optionIcon: {\n color: 'rgba(0, 0, 0, 0.32)',\n marginTop: 12,\n marginBottom: 12,\n marginLeft: 16,\n marginRight: 16\n },\n\n optionText: {\n color: 'rgba(0, 0, 0, 0.32)',\n fontWeight: '500',\n fontSize: 14,\n overflow: 'hidden',\n whiteSpace: 'noWrap',\n textOverflow: 'ellipsis',\n marginRight: 16\n },\n\n tooltip: {\n marginTop: 32,\n fontWeight: '500',\n color: 'rgba(0, 0, 0, 0.32)',\n fontSize: 14\n }\n\n})\n","import React from 'react'\nimport { ScrollView } from 'react-native'\nimport { useRecoilState } from 'recoil'\nimport { MaterialCommunityIcons } from '@expo/vector-icons'\nimport { FormaPagamento } from '@/domain/models'\nimport { useMediaQueries } from '@/presentation/hooks'\nimport { Text, Box, Loading } from '@/presentation/components'\nimport { financialConfigsState } from '@/presentation/pages/Settings/components'\nimport { styles } from './styles'\n\nexport const PaymentAvailableToUpdate: React.FC = () => {\n const { isMobile } = useMediaQueries()\n const [financialConfigs, setFinancialConfigs] = useRecoilState(financialConfigsState)\n\n const handleChoosePaymentForm = (codFormaPagamento: string, update: boolean): void => {\n let formasPagamentoAtualiza: FormaPagamento[]\n let formasPagamentoNaoAtualiza: FormaPagamento[]\n\n if (update) {\n const formaPagamentoSelecionada = financialConfigs.formasPagamentoNaoAtualiza\n .find(formaPagamento => formaPagamento.codigo === Number(codFormaPagamento)) as FormaPagamento\n\n formasPagamentoNaoAtualiza = financialConfigs.formasPagamentoNaoAtualiza\n .filter(formaPagamento => formaPagamento.codigo !== formaPagamentoSelecionada.codigo)\n\n formasPagamentoAtualiza = [...financialConfigs.formasPagamentoAtualiza, formaPagamentoSelecionada]\n } else {\n const formaPagamentoSelecionada = financialConfigs.formasPagamentoAtualiza\n .find(formaPagamento => formaPagamento.codigo === Number(codFormaPagamento)) as FormaPagamento\n\n formasPagamentoAtualiza = financialConfigs.formasPagamentoAtualiza\n .filter(formaPagamento => formaPagamento.codigo !== formaPagamentoSelecionada.codigo)\n\n formasPagamentoNaoAtualiza = [...financialConfigs.formasPagamentoNaoAtualiza, formaPagamentoSelecionada]\n }\n\n const newConfig = Object.assign({}, financialConfigs)\n newConfig.formasPagamentoAtualiza = formasPagamentoAtualiza\n newConfig.formasPagamentoNaoAtualiza = formasPagamentoNaoAtualiza\n\n setFinancialConfigs(newConfig)\n }\n\n const onDrag = (event: React.DragEvent, codFormaPagamento: string): void => {\n event.dataTransfer.setData('codFormaPagamento', codFormaPagamento)\n }\n\n const onDrop = (event: React.DragEvent, update: boolean): void => {\n const codFormaPagamento = event.dataTransfer.getData('codFormaPagamento')\n handleChoosePaymentForm(codFormaPagamento, update)\n }\n\n const handleClick = (codFormaPagamento: string, update: boolean): void => {\n handleChoosePaymentForm(codFormaPagamento, update)\n }\n\n const acceptDrop = (e: React.DragEvent): void => {\n e.preventDefault()\n }\n\n return (\n \n {!financialConfigs\n ? \n : <>\n \n onDrop(event, true)}\n onDragOver={(event) => acceptDrop(event)}\n >\n Formas de pagamento atualizadas\n \n {financialConfigs.formasPagamentoAtualiza.map((formaPagamento) =>\n onDrag(event, formaPagamento.codigo.toString())}\n style={styles.optionSelectorChip}\n onClick={() => handleClick(formaPagamento.codigo.toString(), false)}\n >\n \n {`${formaPagamento.codigo} - ${formaPagamento.descricao}`}\n \n )}\n \n \n\n onDrop(event, false)}\n onDragOver={(event) => acceptDrop(event)}\n >\n Formas de pagamento não atualizadas\n
\n {financialConfigs.formasPagamentoNaoAtualiza.map((item) =>\n onDrag(event, item.codigo.toString())}\n onClick={() => handleClick(item.codigo.toString(), true)}\n style={styles.optionSelectorChip}\n >\n \n {`${item.codigo} - ${item.descricao}`}\n
\n )}\n \n \n
\n Clique e arraste o elemento pra a lista desejada.\n \n }\n
\n )\n}\n","import { StyleSheet } from 'react-native'\n\nexport const styles = StyleSheet.create({\n generalContainer: {\n display: 'flex',\n flexDirection: 'column',\n alignItems: 'center'\n },\n\n selectorContainer: {\n display: 'flex',\n flexDirection: 'row',\n width: '100%',\n justifyContent: 'space-between',\n borderRadius: 4\n },\n\n selectorContainerMobile: {\n display: 'flex',\n flexDirection: 'column',\n width: '100%',\n justifyContent: 'space-between',\n borderRadius: 4\n },\n\n selectBox: {\n width: '100%',\n display: 'flex',\n flexDirection: 'column',\n justifyContent: 'flex-start'\n },\n\n titleBox: {\n color: 'rgba(0, 0, 0, 0.60)',\n textAlign: 'center',\n fontWeight: '500',\n fontSize: 14\n },\n\n optionBox: {\n width: '100%',\n display: 'flex',\n flexDirection: 'column',\n justifyContent: 'center',\n alignItems: 'center'\n },\n\n optionSelectorChip: {\n border: '1px solid rgba(0, 0, 0, 0.12)',\n borderRadius: 4,\n width: '18.5rem',\n display: 'flex',\n alignItems: 'center',\n cursor: 'pointer',\n marginTop: 8,\n fontWeight: '500',\n fontSize: 14\n },\n\n optionIcon: {\n color: 'rgba(0, 0, 0, 0.32)',\n marginTop: 12,\n marginBottom: 12,\n marginLeft: 16,\n marginRight: 16\n },\n\n optionText: {\n color: 'rgba(0, 0, 0, 0.32)',\n fontWeight: '500',\n fontSize: 14,\n overflow: 'hidden',\n whiteSpace: 'noWrap',\n textOverflow: 'ellipsis',\n marginRight: 16\n },\n\n tooltip: {\n marginTop: 32,\n fontWeight: '500',\n color: 'rgba(0, 0, 0, 0.32)',\n fontSize: 14\n }\n\n})\n","import React from 'react'\nimport { MaterialCommunityIcons } from '@expo/vector-icons'\nimport { useRecoilState } from 'recoil'\nimport { FormaPagamento } from '@/domain/models'\nimport { Text, Box, Loading } from '@/presentation/components'\nimport { useMediaQueries } from '@/presentation/hooks'\nimport { financialConfigsState } from '@/presentation/pages/Settings/components'\nimport { styles } from './styles'\n\nexport const HidePaymentMethods: React.FC = () => {\n const { isMobile } = useMediaQueries()\n const [financialConfigs, setFinancialConfigs] = useRecoilState(financialConfigsState)\n\n const handleChoosePaymentForm = (codFormaPagamento: string, hide: boolean): void => {\n let formasPagamento: FormaPagamento[]\n let formasPagamentoOculta: FormaPagamento[]\n\n if (hide) {\n const formaPagamentoSelecionada = financialConfigs.formasPagamento\n .find(formaPagamento => formaPagamento.codigo === Number(codFormaPagamento)) as FormaPagamento\n\n formasPagamento = financialConfigs.formasPagamento\n .filter(formaPagamento => formaPagamento.codigo !== formaPagamentoSelecionada.codigo)\n\n formasPagamentoOculta = [...financialConfigs.formasPagamentoOcultas, formaPagamentoSelecionada]\n } else {\n const formaPagamentoSelecionada = financialConfigs.formasPagamentoOcultas\n .find(formaPagamento => formaPagamento.codigo === Number(codFormaPagamento)) as FormaPagamento\n\n formasPagamentoOculta = financialConfigs.formasPagamentoOcultas\n .filter(formaPagamento => formaPagamento.codigo !== formaPagamentoSelecionada.codigo)\n\n formasPagamento = [...financialConfigs.formasPagamento, formaPagamentoSelecionada]\n }\n\n const newConfig = Object.assign({}, financialConfigs)\n newConfig.formasPagamento = formasPagamento\n newConfig.formasPagamentoOcultas = formasPagamentoOculta\n\n setFinancialConfigs(newConfig)\n }\n\n const onDrag = (event: React.DragEvent, codFormaPagamento: string): void => {\n event.dataTransfer.setData('codFormaPagamento', codFormaPagamento)\n }\n\n const onDrop = (event: React.DragEvent, hide: boolean): void => {\n const codFormaPagamento = event.dataTransfer.getData('codFormaPagamento')\n handleChoosePaymentForm(codFormaPagamento, hide)\n }\n\n const handleClick = (codFormaPagamento: string, hide: boolean): void => {\n handleChoosePaymentForm(codFormaPagamento, hide)\n }\n\n const acceptDrop = (event: React.DragEvent): void => {\n event.preventDefault()\n }\n\n return (\n \n {!financialConfigs\n ? \n : <>\n \n onDrop(event, false)}\n onDragOver={(event) => acceptDrop(event)}\n >\n Formas de pagamento a apresentar\n
\n {financialConfigs.formasPagamento.map((formaPagamento) =>\n onDrag(event, formaPagamento.codigo.toString())}\n style={styles.optionSelectorChip}\n onClick={() => handleClick(formaPagamento.codigo.toString(), true)}\n >\n \n {`${formaPagamento.codigo} - ${formaPagamento.descricao}`}\n
\n )}\n \n \n\n onDrop(event, true)}\n onDragOver={(event) => acceptDrop(event)}\n >\n Formas de pagamento ocultas\n
\n {financialConfigs.formasPagamentoOcultas.map((formaPagamento) => (\n onDrag(event, formaPagamento.codigo.toString())}\n onClick={() => handleClick(formaPagamento.codigo.toString(), false)}\n style={styles.optionSelectorChip}\n >\n \n {`${formaPagamento.codigo} - ${formaPagamento.descricao}`}\n
\n ))}\n \n \n
\n Clique e arraste o elemento pra a lista desejada.\n \n }\n
\n )\n}\n","import React, { useState } from 'react'\nimport { useRecoilState } from 'recoil'\nimport { ScrollView } from 'react-native'\nimport { MenuAccessPermissionsConfigs } from '@/domain/models'\nimport { CardSwitch, Box, Loading } from '@/presentation/components'\nimport { ActionsButtons, menuAccessPermissionsConfigsState } from '@/presentation/pages/Settings/components'\n\nexport const MenuAccessPermissions: React.FC = () => {\n const [menuAccessPermissionsConfigs, setMenuAccessPermissionsConfig] = useRecoilState(menuAccessPermissionsConfigsState)\n const [initialMenuAccessPermissionsConfigs] = useState(menuAccessPermissionsConfigs)\n\n const handleChangeSetting = (param: keyof MenuAccessPermissionsConfigs, value: boolean): void => {\n setMenuAccessPermissionsConfig(currentState => ({ ...currentState, [param]: value }))\n }\n\n const hasChanged = (): boolean => {\n return JSON.stringify(initialMenuAccessPermissionsConfigs) !== JSON.stringify(menuAccessPermissionsConfigs)\n }\n\n return (\n \n {!menuAccessPermissionsConfigs\n ? \n : <>\n \n handleChangeSetting('os', !menuAccessPermissionsConfigs.os)}\n />\n handleChangeSetting('notaFiscal', !menuAccessPermissionsConfigs.notaFiscal)}\n />\n handleChangeSetting('boleto', !menuAccessPermissionsConfigs.boleto)}\n />\n {\n handleChangeSetting('monitoramento', !menuAccessPermissionsConfigs.monitoramento)\n }}\n />\n handleChangeSetting('viagem', !menuAccessPermissionsConfigs.viagem)}\n />\n handleChangeSetting('cartao', !menuAccessPermissionsConfigs.cartao)}\n />\n handleChangeSetting('telefonesUteis', !menuAccessPermissionsConfigs.telefonesUteis)}\n />\n handleChangeSetting('documentosUteis', !menuAccessPermissionsConfigs.documentosUteis)}\n />\n handleChangeSetting('sac', !menuAccessPermissionsConfigs.sac)}\n />\n handleChangeSetting('rastreamento', !menuAccessPermissionsConfigs.rastreamento)}\n />\n handleChangeSetting('contrato', !menuAccessPermissionsConfigs.contrato)}\n />\n \n {hasChanged() && }\n \n }\n \n )\n}\n","import { StyleSheet } from 'react-native'\n\nexport const styles = StyleSheet.create({\n container: {\n display: 'flex',\n gap: 18\n },\n buttonArea: {\n display: 'flex',\n flexDirection: 'row',\n justifyContent: 'flex-end',\n gap: 8\n }\n})\n","import React from 'react'\nimport { useRecoilState } from 'recoil'\nimport { Box, Button, Text, ModalBase } from '@/presentation/components'\nimport { useNotify, useSettings, useTheme } from '@/presentation/hooks'\nimport { isOpenDiscardConfigState } from '@/presentation/pages/Settings/components'\nimport { styles } from './styles'\n\nexport const ModalOnDiscardChanges: React.FC = () => {\n const theme = useTheme()\n const notify = useNotify()\n const [isOpen, setOpen] = useRecoilState(isOpenDiscardConfigState)\n const { discardChanges } = useSettings()\n\n const handleDiscardChanges = (): void => {\n discardChanges()\n setOpen(false)\n notify.show('As alterações foram descartadas')\n }\n\n const handleClose = (): void => setOpen(false)\n\n return (\n \n \n Deseja realmente desfazer as alterações?\n\n \n \n \n \n \n \n )\n}\n","import { atom } from 'recoil'\n\nexport const isOpenDiscardConfigState = atom({\n key: 'isOpenDiscardConfigState',\n default: false\n})\n","import { atom } from 'recoil'\n\nexport const isOpenSaveOrDiscardConfigState = atom({\n key: 'isOpenSaveOrDiscardConfigState',\n default: false\n})\n\nexport const isLoadingSaveOrDiscardConfigState = atom({\n key: 'isLoadingSaveOrDiscardConfigState',\n default: false\n})\n","import { StyleSheet } from 'react-native'\n\nexport const styles = StyleSheet.create({\n container: {\n display: 'flex',\n gap: 18\n },\n buttonArea: {\n display: 'flex',\n flexDirection: 'row',\n justifyContent: 'flex-end',\n gap: 8\n }\n})\n","import React from 'react'\nimport { useRecoilState, useRecoilValue, useSetRecoilState } from 'recoil'\nimport { SaveUnitConfig } from '@/domain/usecases'\nimport { Box, Button, Text, ModalBase, Loading } from '@/presentation/components'\nimport { useNotify, useSettings, useTheme } from '@/presentation/hooks'\nimport { configsState, initialConfigsState } from '@/presentation/pages/Settings/components'\nimport { isLoadingSaveOrDiscardConfigState, isOpenSaveOrDiscardConfigState } from './atom'\nimport { styles } from './styles'\n\ntype ModalOnSaveOrDiscardProps = {\n saveUnitConfig: SaveUnitConfig\n}\n\nexport const ModalOnSaveOrDiscard: React.FC = ({ saveUnitConfig }) => {\n const theme = useTheme()\n const notify = useNotify()\n const { discardChanges } = useSettings()\n const currentConfig = useRecoilValue(configsState)\n const [isLoading, setLoading] = useRecoilState(isLoadingSaveOrDiscardConfigState)\n const [isOpen, setOpen] = useRecoilState(isOpenSaveOrDiscardConfigState)\n const setInitialConfigs = useSetRecoilState(initialConfigsState)\n\n const handleDiscardChanges = (): void => {\n discardChanges()\n handleClose()\n notify.show('As alterações foram descartadas')\n }\n\n const handleSaveChanges = (): void => {\n setLoading(true)\n handleClose()\n\n saveUnitConfig\n .save(currentConfig)\n .then(hasUpdated => {\n if (hasUpdated) {\n notify.show(`As configurações da unidade ${currentConfig.uniCodigo.toString().padStart(4, '0')} foram gravadas com sucesso`)\n setInitialConfigs(currentConfig)\n } else {\n notify.show(`Não foi possível gravar as configurações da unidade ${currentConfig.uniCodigo}, tente novamente`, { variant: 'error' })\n }\n })\n .catch(error => {\n notify.show(error.message, { variant: 'error' })\n handleClose()\n })\n .finally(() => setLoading(false))\n }\n\n const handleClose = (): void => setOpen(false)\n\n return (\n \n {isLoading\n ? \n : \n Existem alterações que ainda não foram gravadas na unidade.
Descarte ou grave as alterações para prosseguir
\n\n \n \n \n \n
\n }\n
\n )\n}\n","import { atom } from 'recoil'\n\nexport const isOpenSaveConfigState = atom({\n key: 'isOpenSaveConfigState',\n default: false\n})\n\nexport const isLoadingSaveConfigState = atom({\n key: 'isLoadingSaveConfigState',\n default: false\n})\n","import { StyleSheet } from 'react-native'\n\nexport const styles = StyleSheet.create({\n container: {\n display: 'flex',\n gap: 18\n },\n buttonArea: {\n display: 'flex',\n flexDirection: 'row',\n flexWrap: 'wrap',\n justifyContent: 'flex-end',\n gap: 8\n }\n})\n","import React, { useCallback } from 'react'\nimport { useRecoilState, useRecoilValue } from 'recoil'\nimport { SaveUnitConfig } from '@/domain/usecases'\nimport { Box, Button, Text, ModalBase, Loading } from '@/presentation/components'\nimport { useNotify, useSettings, useTheme } from '@/presentation/hooks'\nimport { configsState } from '@/presentation/pages/Settings/components'\nimport { isOpenSaveConfigState, isLoadingSaveConfigState } from './atom'\nimport { styles } from './styles'\n\ntype ModalOnSaveChangesProps = {\n saveUnitConfig: SaveUnitConfig\n}\n\nexport const ModalOnSaveChanges: React.FC = ({ saveUnitConfig }) => {\n const theme = useTheme()\n const notify = useNotify()\n const { startConfig } = useSettings()\n const currentConfig = useRecoilValue(configsState)\n const [isLoading, setLoading] = useRecoilState(isLoadingSaveConfigState)\n const [isOpen, setOpen] = useRecoilState(isOpenSaveConfigState)\n\n const handleSaveChanges = useCallback((): void => {\n setLoading(true)\n\n saveUnitConfig\n .save(currentConfig)\n .then(hasUpdated => {\n if (hasUpdated) {\n notify.show(`As configurações da unidade ${currentConfig.uniCodigo.toString().padStart(4, '0')} foram gravadas com sucesso`)\n startConfig(currentConfig)\n handleClose()\n } else {\n notify.show(`Não foi possível gravar as configurações da unidade ${currentConfig.uniCodigo}, tente novamente`, { variant: 'error' })\n }\n })\n .catch(error => {\n notify.show(error.message, { variant: 'error' })\n handleClose()\n })\n .finally(() => setLoading(false))\n }, [currentConfig])\n\n const handleClose = (): void => setOpen(false)\n\n return (\n \n {isLoading\n ? \n : \n Deseja realmente gravar as alterações?\n\n \n {false && }\n \n \n \n \n }\n \n )\n}\n","import { StyleSheet } from 'react-native'\n\nexport const styles = StyleSheet.create({\n headerChip: {\n margin: 12,\n borderRadius: 15\n }\n})\n","import React, { useState } from 'react'\nimport { Chip, Menu } from 'react-native-paper'\nimport { useRecoilState, useRecoilValue } from 'recoil'\nimport { Box } from '@/presentation/components'\nimport { useTheme, useThemeClient } from '@/presentation/hooks'\nimport { isLoadingState, unitsState } from '@/presentation/pages/Settings/components'\nimport { styles } from './styles'\n\nexport const UnitsSelector: React.FC = () => {\n const theme = useTheme()\n const { getThemeClient } = useThemeClient()\n const [isMenuOpen, setMenuOpen] = useState(false)\n const [{ units, currentUnit }, setUnits] = useRecoilState(unitsState)\n const isLoading = useRecoilValue(isLoadingState)\n\n const themeClient = getThemeClient()\n\n const handleSelectUnit = (currentUnit: number): void => {\n setUnits(currentState => ({ ...currentState, currentUnit }))\n setMenuOpen(false)\n }\n\n return (\n \n setMenuOpen(false)}\n anchorPosition='bottom'\n anchor={\n setMenuOpen(true)}\n >\n {currentUnit.toString().padStart(4, '0')}\n \n }\n >\n {units?.map((config) => (\n handleSelectUnit(config.codigoUnidade)}\n title={`${config.codigoUnidade.toString().padStart(4, '0')} - ${config.nomeUnidade}`}\n />\n ))}\n \n \n )\n}\n","import { Unidade } from '@/domain/models'\nimport { atom } from 'recoil'\n\nexport const unitsState = atom({\n key: 'unitsState',\n default: {\n units: [] as Unidade[],\n currentUnit: 0\n }\n})\n","import { useCallback } from 'react'\nimport { ConfigModel, FinancialConfigs, GeneralConfigs, InvoiceConfigs, ServiceOrderConfigs } from '@/domain/models'\nimport { useRecoilState, useSetRecoilState } from 'recoil'\nimport { initialConfigsState, generalConfigsState, financialConfigsState, invoiceConfigsState, menuAccessPermissionsConfigsState, serviceOrderConfigsState } from '@/presentation/pages/Settings/components'\n\ntype SettingsProps = {\n startConfig: (config: ConfigModel) => void\n discardChanges: () => void\n}\n\nexport const useSettings = (): SettingsProps => {\n const [initialConfigs, setInitialConfigs] = useRecoilState(initialConfigsState)\n const setFinancialConfigs = useSetRecoilState(financialConfigsState)\n const setGeneralConfigs = useSetRecoilState(generalConfigsState)\n const setInvoiceConfigs = useSetRecoilState(invoiceConfigsState)\n const setServiceOrderConfigs = useSetRecoilState(serviceOrderConfigsState)\n const setMenuAccessPermissionsConfigs = useSetRecoilState(menuAccessPermissionsConfigsState)\n\n const discardChanges = useCallback((): void => {\n startConfig(initialConfigs)\n }, [initialConfigs])\n\n const startConfig = (config: ConfigModel): void => {\n setInitialConfigs(config)\n\n setFinancialConfigs({\n bolEntradaConfirmada: config.bolEntradaConfirmada,\n bolExibeOriginal: config.bolExibeOriginal,\n bolAtualizaBoletos: config.bolAtualizaBoletos,\n formasPagamentoAtualiza: config.formasPagamentoAtualiza,\n formasPagamentoNaoAtualiza: config.formasPagamentoNaoAtualiza,\n bolOcultaFormasPgto: config.bolOcultaFormasPgto,\n formasPagamentoOcultas: config.formasPagamentoOcultas,\n formasPagamento: config.formasPagamento,\n exibeAlteracaoCartao: config.exibeAlteracaoCartao,\n emailAlteracaoCartao: config.emailAlteracaoCartao,\n pagamentoCartaoAtivo: config.pagamentoCartaoAtivo,\n permitePagamentoCartao: config.permitePagamentoCartao,\n validaCartaoCredito: config.validaCartaoCredito,\n visualizaFaturaCartaoVencida: config.visualizaFaturaCartaoVencida,\n assuntoEmailConfirmacaoPgto: config.assuntoEmailConfirmacaoPgto,\n atualizaAutomaticoCartao: config.atualizaAutomaticoCartao,\n mensagemSMSConfirmacaoPgto: config.mensagemSMSConfirmacaoPgto,\n mensagemEmailConfirmacaoPgto: config.mensagemEmailConfirmacaoPgto\n } as FinancialConfigs)\n\n setGeneralConfigs({\n uniCodigo: config.uniCodigo,\n uniUnidade: config.uniUnidade,\n nome: config.nome,\n email: config.email,\n copia: config.copia,\n enviaEmailViagem: config.enviaEmailViagem,\n emailViagem: config.emailViagem,\n emailAlteracaoCadastro: config.emailAlteracaoCadastro,\n emailSac: config.emailSac,\n chaveResidencia: config.chaveResidencia,\n exibeChavesAvisoViagem: config.exibeChavesAvisoViagem,\n exibeAlteracaoCadastro: config.exibeAlteracaoCadastro,\n conPorCodigo: config.conPorCodigo,\n servidorSmtp: config.servidorSmtp,\n autentica: config.autentica,\n usuario: config.usuario,\n senha: config.senha,\n porta: config.porta,\n ssl: config.ssl,\n leitura: config.leitura,\n liberacoesPortal: config.liberacoesPortal,\n visualizaDetalhesContrato: config.visualizaDetalhesContrato\n } as GeneralConfigs)\n\n setInvoiceConfigs({\n nfsOcultarInfos: config.nfsOcultarInfos,\n nfsOcultarLink: config.nfsOcultarLink\n } as InvoiceConfigs)\n\n setServiceOrderConfigs({\n exibirOsFechadas: config.exibirOsFechadas,\n osSemTecnico: config.osSemTecnico,\n limitaOs: config.limitaOs,\n abrirOsSemFaturamento: config.abrirOsSemFaturamento,\n exibeMensagemAbrirOs: config.exibeMensagemAbrirOs,\n mensagemAberturaOs: config.mensagemAberturaOs,\n empresaPadraoOS: config.empresaPadraoOS,\n enviarAvisoAberturaOs: config.enviarAvisoAberturaOs,\n emailOs: config.emailOs,\n enviaListaChave: config.enviaListaChave,\n osEmpresaPadrao: config.osEmpresaPadrao,\n exibeAvisoAberturaOs: config.exibeAvisoAberturaOs,\n avisoAberturaOs: config.avisoAberturaOs\n } as ServiceOrderConfigs)\n\n setMenuAccessPermissionsConfigs(config.liberacoesPortal)\n }\n\n return {\n startConfig,\n discardChanges\n }\n}\n","import { Dimensions } from 'react-native'\nimport { APP_BAR_HEIGTH, PADDING_STATUS_BAR_IOS } from '@/presentation/components'\n\nconst width = Dimensions.get('window').width\nconst height = Dimensions.get('window').height\n\ntype DimensionsProps = {\n width: number\n height: number\n appBarHeight: number\n isMobile: boolean\n openInIOS: boolean\n openInPWA: boolean\n}\n\nconst useMediaQueries = (): DimensionsProps => {\n const isMobile = width < 600\n\n const openInPWA = window.window.matchMedia('(display-mode: standalone)').matches\n\n const openInIOS = /iphone|ipad|ipod/.test(window.window.navigator.userAgent.toLowerCase())\n\n const appBarHeight = APP_BAR_HEIGTH + (openInPWA && openInIOS ? PADDING_STATUS_BAR_IOS : 0)\n\n return {\n width,\n height,\n isMobile,\n openInIOS,\n appBarHeight,\n openInPWA\n }\n}\n\nexport default useMediaQueries\n","type FormatProps = {\n formatCurrency: (amount: number) => string\n removeNewLines: (text: string) => string\n validateCPF: (cpf: string) => boolean\n}\n\nexport const useFormat = (): FormatProps => {\n const formatCurrency = (amount: number): string => {\n return new Intl.NumberFormat(\n 'pt-BR', {\n style: 'currency',\n currency: 'BRL'\n }).format(amount)\n }\n\n const removeNewLines = (text: string): string => {\n return text.replace(/(\\r\\n|\\n|\\r)/gm, ' ')\n }\n\n const validateCPF = (cpf: string): boolean => {\n const cpfNumeros = cpf.replace(/\\D/g, '')\n\n if (cpfNumeros.length !== 11) {\n return false\n }\n\n if (/^(\\d)\\1{10}$/.test(cpfNumeros)) {\n return false\n }\n\n let soma = 0\n for (let i = 0; i < 9; i++) {\n soma += parseInt(cpfNumeros[i]) * (10 - i)\n }\n\n let resto = soma % 11\n const digito1 = resto < 2 ? 0 : 11 - resto\n\n soma = 0\n for (let i = 0; i < 10; i++) {\n soma += parseInt(cpfNumeros[i]) * (11 - i)\n }\n\n resto = soma % 11\n const digito2 = resto < 2 ? 0 : 11 - resto\n\n if (parseInt(cpfNumeros[9]) !== digito1 || parseInt(cpfNumeros[10]) !== digito2) {\n return false\n }\n\n return true\n }\n\n return {\n formatCurrency,\n removeNewLines,\n validateCPF\n }\n}\n","import { theme } from '@/presentation/styles'\nimport { useTheme as useThemePaper } from 'react-native-paper'\n\nexport type AppTheme = typeof theme\n\nexport const useTheme = (): AppTheme => useThemePaper()\n","export const environment: 'production' | 'development' = 'production'\n\nexport default {\n /*\n Em **desenvolvimento** preencher API_URL com endereço do integra exemplo http://localhost:5002.\n Antes de gerar o build o valor da API_URL deve ser removido e mantido em branco para que o build\n ocorra de forma correta.\n */\n API_URL: environment === 'development' ? 'http://localhost:5002' : '',\n API_LOGIN_URL: 'https://login.insidesistemas.com.br',\n API_LOGIN_IDENTIFICADOR_APP: '226f8ce0-d48e-4af7-8f54-2d02cfdbe587',\n CLARITY_KEY: 'hr379143ky',\n METRICS_LOG_IN_OUT: 'https://servicewebmetrics.azurewebsites.net',\n FIREBASE_PUBLIC_KEY_VAPID: 'BBV7B9l_nBEBZbR4KvX67cD9eVUcELSOsbd3OOa5MuLgHWFFedo7cLHqiDSyDPK9G-7yTyLu79KV77o_0M7wJ7M'\n}\n","import { environment } from '@/main/config/env'\n\nexport type ImageBackground = {\n uri: any\n}\n\ntype ImageProps = {\n getImage: (image: string, defaultImage?: 'logo' | 'login') => Promise\n base64toFile: (b64Data: string, fileName: string, contentType?: string, sliceSize?: number) => File\n}\n\nexport const useImage = (): ImageProps => {\n const DEFAULT_PATH_IMAGES = environment === 'development' ? '/img/' : '/portalservice/img/'\n\n const getImage = async (image: string, defaultImage: 'logo' | 'login' = 'logo'): Promise => {\n const file = image?.includes('/img/')\n ? image?.split('/img/').pop()?.split('\\')').shift() as string\n : image\n const imageFolder = `${DEFAULT_PATH_IMAGES}${file}`\n try {\n return await fetch(imageFolder)\n .then(resp => {\n return resp.status === 200 ? imageFolder : ''\n })\n } catch (error) {\n console.log(`Não foi possível localizar a imagem em ${imageFolder}`, error)\n return {\n logo: `${DEFAULT_PATH_IMAGES}logo-inside.svg`,\n login: `${DEFAULT_PATH_IMAGES}background.svg`,\n default: 'LOGO_DEFAULT'\n }[defaultImage]\n }\n }\n\n const base64toFile = (\n b64Data: string,\n fileName: string,\n contentType: string = 'image/png',\n sliceSize: number = 512\n ): File => {\n const byteCharacters = window.atob(b64Data)\n const byteArrays = []\n\n for (let offset = 0; offset < byteCharacters.length; offset += sliceSize) {\n const slice = byteCharacters.slice(offset, offset + sliceSize)\n\n const byteNumbers = new Array(slice.length)\n for (let i = 0; i < slice.length; i++) {\n byteNumbers[i] = slice.charCodeAt(i)\n }\n\n const byteArray = new Uint8Array(byteNumbers)\n byteArrays.push(byteArray)\n }\n\n const blob = new Blob(byteArrays, { type: contentType })\n const file = new File([blob], fileName)\n return file\n }\n\n return { getImage, base64toFile }\n}\n","export class InvalidCredentialsError extends Error {\n constructor (message?: string) {\n super(message ?? 'Credenciais inválidas')\n this.name = 'InvalidCredentialsError'\n }\n}\n","export class InvalidRelationCompany extends Error {\n constructor (message: string) {\n super(message)\n this.name = 'InvalidRelationCompany'\n }\n}\n","export class UnexpectedError extends Error {\n constructor () {\n super('Algo de errado aconteceu.Tente novamente mais tarde.')\n this.name = 'UnexpectedError'\n }\n}\n","export class UnexpectedResultFormatError extends Error {\n constructor () {\n super('Algo de errado aconteceu. Resultado com formato inválido')\n this.name = 'UnexpectedResultFormatError'\n }\n}\n","export class AccessDeniedError extends Error {\n constructor () {\n super('Sessão Expirada, faça o login novamente')\n this.name = 'AccessDeniedError'\n }\n}\n","export class ForbiddenError extends Error {\n constructor (message: string) {\n super(message)\n this.name = 'ForbiddenError'\n }\n}\n","export class ResultWithoutRecordsError extends Error {\n constructor () {\n super('Sem Registro, não há dados para exibir!')\n this.name = 'ResultWithoutRecordsError'\n }\n}\n","export class SamePasswordError extends Error {\n constructor () {\n super('Senha e nova senha são iguais, por favor informe uma nova senha diferente da atual!')\n this.name = 'SamePasswordError'\n }\n}\n","import { AccessDeniedError, ResultWithoutRecordsError } from '@/domain/errors'\nimport { useAuth, useNotify } from '@/presentation/hooks'\n\ntype CallBackType = (error: Error) => void\ntype ResultType = CallBackType\n\nexport const useErrorHandler = (callback?: CallBackType): ResultType => {\n const notify = useNotify()\n const { logout } = useAuth()\n\n return (error: Error): void => {\n if (error instanceof AccessDeniedError) {\n notify.error(error.message)\n logout()\n } else if (error instanceof ResultWithoutRecordsError) {\n notify.info(error.message)\n } else {\n notify.error(error?.message || 'Ocorreu um erro desconhecido, tente novamente em alguns instantes')\n callback?.(error)\n }\n }\n}\n","import { ThemeColors, ThemeModel } from '@/domain/models'\nimport { atom } from 'recoil'\nimport { theme } from '@/presentation/styles'\nimport { makeLocalStorageAdapter } from '@/main/factories/cache'\n\nexport const isLoadingState = atom({\n key: 'isLoadingThemeState',\n default: true\n})\n\ntype ThemeProps = {\n theme: ThemeModel\n colorSelect: keyof ThemeColors\n}\n\nconst initialTheme: ThemeModel = makeLocalStorageAdapter().get('portalTheme') || {\n ...null as unknown as ThemeModel,\n mainColor: theme.colors.primary,\n menuColor: theme.colors.white,\n loginColor: theme.colors.white,\n buttonSave: theme.colors.secondary\n}\n\nexport const initialThemeState = atom({\n key: 'initialThemeState',\n default: initialTheme\n})\n\nexport const colorSelectState = atom({\n key: 'colorSelectState',\n default: 'mainColor'\n})\n\nexport const themeState = atom({\n key: 'themeClient',\n default: {\n theme: initialTheme,\n colorSelect: 'mainColor'\n }\n})\n\ntype ImageProps = {\n file: File\n scope: 'logo' | 'loginBackground'\n}\n\nexport const imagesState = atom({\n key: 'imagesState',\n default: []\n})\n\nexport const selectedLogoState = atom({\n key: 'selectedLogoState',\n default: null as unknown as File\n})\n\nexport const selectedBackgroundState = atom({\n key: 'selectedBackgroundState',\n default: null as unknown as File\n})\n","import { atom } from 'recoil'\n\nexport const modalOnDiscardChangesThemeState = atom({\n key: 'modalOnDiscardChangesThemeState',\n default: false\n})\n","import { atom } from 'recoil'\n\nexport const modalOnSaveChangeThemeState = atom({\n key: 'modalOnSaveChangeThemeState',\n default: false\n})\n","import React from 'react'\nimport { StyleSheet } from 'react-native'\nimport { Card } from 'react-native-paper'\nimport { useSetRecoilState } from 'recoil'\nimport { SaveTheme, UploadFile } from '@/domain/usecases'\nimport { useTheme } from '@/presentation/hooks'\nimport { Button, HStack } from '@/presentation/components'\nimport { modalOnDiscardChangesThemeState } from '../ModalOnDiscardChanges/atom'\nimport { modalOnSaveChangeThemeState } from '../ModalOnSaveChanges/atom'\n\ntype ActionsButtonsProps = {\n saveTheme: SaveTheme\n uploadFile: UploadFile\n}\n\nexport const ActionsButtons: React.FC = ({ saveTheme, uploadFile }) => {\n const theme = useTheme()\n const setOpenDiscardChanges = useSetRecoilState(modalOnDiscardChangesThemeState)\n const setOpenSaveChanges = useSetRecoilState(modalOnSaveChangeThemeState)\n\n const handleSubmit = (): void => {\n setOpenSaveChanges(true)\n }\n\n const handleDiscardChanges = (): void => {\n setOpenDiscardChanges(true)\n }\n\n return (\n <>\n \n \n \n \n \n \n \n )\n}\n\nconst styles = StyleSheet.create({\n cardContainer: {\n margin: 12,\n padding: 8,\n borderRadius: 4,\n display: 'flex',\n flexDirection: 'row',\n justifyContent: 'flex-end'\n }\n})\n","import { StyleSheet } from 'react-native'\n\nexport const styles = StyleSheet.create({\n input: {\n outlineWidth: 0,\n marginLeft: 12,\n marginBottom: 12\n },\n inputColor: {\n marginLeft: -56\n }\n})\n","import React from 'react'\nimport { useRecoilState } from 'recoil'\nimport { ThemeColors, ThemeModel } from '@/domain/models'\nimport { TextInput } from '@/presentation/components'\nimport { useMediaQueries } from '@/presentation/hooks'\nimport { themeState } from '@/presentation/pages/Theme/components'\nimport { styles } from './styles'\n\ntype ColorPickerProps = {\n name: keyof ThemeColors\n label: string\n}\n\nexport const ColorPicker: React.FC = ({ name, label }) => {\n const { isMobile } = useMediaQueries()\n const [themeClient, setThemeClient] = useRecoilState(themeState)\n\n const inputStyle = {\n ...styles.input,\n ...(isMobile\n ? { width: '100%' }\n : { flex: 1 }\n )\n }\n\n const handleSelect = (param: keyof ThemeColors, color: string): void => {\n setThemeClient(currentState => ({\n ...currentState,\n theme: ({ ...currentState.theme, [param]: color }) as ThemeModel\n }))\n }\n\n return (\n \n handleSelect(name, event.target.value)}\n />\n }\n />\n )\n}\n","import React, { useState } from 'react'\nimport { Image, StyleSheet } from 'react-native'\nimport { useSetRecoilState } from 'recoil'\nimport { TouchableOpacity } from 'react-native-gesture-handler'\nimport * as ImagePicker from 'expo-image-picker'\nimport { environment } from '@/main/config/env'\nimport { ThemeModel } from '@/domain/models'\nimport { HStack, Text, VStack } from '@/presentation/components'\nimport { useImage, useMediaQueries, useTheme, useThemeClient } from '@/presentation/hooks'\nimport { selectedBackgroundState, themeState } from '@/presentation/pages/Theme/components'\n\ntype LoginBackgroundSelectorProps = {\n fileName: string\n}\n\nexport const LoginBackgroundSelector: React.FC = ({ fileName }) => {\n const theme = useTheme()\n const { base64toFile } = useImage()\n const { isMobile } = useMediaQueries()\n const { getThemeClient } = useThemeClient()\n const setTheme = useSetRecoilState(themeState)\n const setSelectedBackground = useSetRecoilState(selectedBackgroundState)\n const [background, setBackground] = useState()\n\n const themeClient = getThemeClient()\n\n const backgroundImage = environment === 'production' && fileName\n ? { uri: fileName }\n : require('../../../../../../assets/hexagon-bg.svg')\n\n const handlePickImage = async (): Promise => {\n const result = await ImagePicker.launchImageLibraryAsync({\n mediaTypes: ImagePicker.MediaTypeOptions.Images,\n allowsEditing: true,\n aspect: [4, 3],\n quality: 1\n })\n\n if (!result.canceled) {\n const base64Background = result.assets?.[0].uri?.split(',')[1]\n const file = base64toFile(base64Background, `Background_${new Date().getMilliseconds()}.jpeg`)\n setSelectedBackground(file)\n setTheme(currentState => ({ ...currentState, theme: ({ ...currentState.theme, bgLogin: file.name }) as ThemeModel }))\n setBackground(result.assets?.[0].uri)\n }\n }\n\n return (\n \n \n \n Imagem de Fundo do Login\n \n \n \n \n \n \n )\n}\n\nconst styles = StyleSheet.create({\n backgroundImage: {\n width: '100%',\n maxWidth: 720,\n borderRadius: 4\n }\n})\n","import React, { useState } from 'react'\nimport { Image, StyleSheet, TouchableOpacity } from 'react-native'\nimport { useSetRecoilState } from 'recoil'\nimport * as ImagePicker from 'expo-image-picker'\nimport { environment } from '@/main/config/env'\nimport { ThemeModel } from '@/domain/models'\nimport { useImage, useTheme, useThemeClient } from '@/presentation/hooks'\nimport { selectedLogoState, themeState } from '@/presentation/pages/Theme/components'\nimport { Text, VStack } from '@/presentation/components'\n\ntype LogoSelectorProps = {\n fileName: string\n}\n\nexport const LogoSelector: React.FC = ({ fileName }) => {\n const theme = useTheme()\n const { base64toFile } = useImage()\n const { getThemeClient } = useThemeClient()\n const setTheme = useSetRecoilState(themeState)\n const setSelectedLogo = useSetRecoilState(selectedLogoState)\n const [logo, setLogo] = useState()\n\n const themeClient = getThemeClient()\n const logoImage = environment === 'production' && fileName\n ? { uri: fileName }\n : require('../../../../../../assets/logo-white.svg')\n\n const handlePickImage = async (): Promise => {\n const result = await ImagePicker.launchImageLibraryAsync({\n mediaTypes: ImagePicker.MediaTypeOptions.Images,\n allowsEditing: true,\n aspect: [4, 3],\n quality: 1\n })\n\n if (!result.canceled) {\n const base64Logo = result.assets?.[0].uri?.replace('data:image/png;base64,', '')\n const file = base64toFile(base64Logo, `Logo_${new Date().getMilliseconds()}.png`)\n setSelectedLogo(file)\n setTheme(currentState => ({ ...currentState, theme: ({ ...currentState.theme, imageLogo: file.name }) as ThemeModel }))\n setLogo(result.assets?.[0].uri)\n }\n }\n\n return (\n \n \n \n Logo da empresa\n \n \n \n \n )\n}\n\nconst styles = StyleSheet.create({\n imageLogo: {\n width: 80,\n height: 40,\n borderWidth: 1,\n borderStyle: 'dashed'\n }\n})\n","import { StyleSheet } from 'react-native'\n\nexport const styles = StyleSheet.create({\n container: {\n display: 'flex',\n gap: 18\n },\n buttonArea: {\n display: 'flex',\n flexDirection: 'row',\n flexWrap: 'wrap',\n justifyContent: 'flex-end',\n gap: 8\n }\n})\n","import React, { useCallback } from 'react'\nimport { useRecoilState, useRecoilValue, useResetRecoilState } from 'recoil'\nimport { SaveTheme, UploadFile } from '@/domain/usecases'\nimport { Box, Button, Text, ModalBase } from '@/presentation/components'\nimport { useErrorHandler, useNotify, useTheme, useThemeClient } from '@/presentation/hooks'\nimport { isLoadingState, selectedBackgroundState, selectedLogoState, themeState } from '@/presentation/pages/Theme/components'\nimport { modalOnSaveChangeThemeState } from './atom'\nimport { styles } from './styles'\n\ntype ModalOnSaveChangesProps = {\n saveTheme: SaveTheme\n uploadFile: UploadFile\n}\n\nexport const ModalOnSaveChanges: React.FC = ({ saveTheme, uploadFile }) => {\n const theme = useTheme()\n const notify = useNotify()\n const [themeClient] = useRecoilState(themeState)\n const selectedLogo = useRecoilValue(selectedLogoState)\n const selectedBackgroundLogo = useRecoilValue(selectedBackgroundState)\n const { setThemeClient } = useThemeClient()\n const [isLoading, setLoading] = useRecoilState(isLoadingState)\n const [isOpenSaveChanges, setOpenSaveChanges] = useRecoilState(modalOnSaveChangeThemeState)\n const resetSelectedLogo = useResetRecoilState(selectedLogoState)\n const resetSelectedBackgroundLogo = useResetRecoilState(selectedBackgroundState)\n const handleError = useErrorHandler(() => {\n setLoading(false)\n handleClose()\n })\n\n const handleSaveChanges = async (): Promise => {\n setLoading(true)\n\n try {\n selectedLogo && await uploadFile.upload({ file: selectedLogo, scope: 'logo' })\n selectedBackgroundLogo && await uploadFile.upload({ file: selectedBackgroundLogo, scope: 'loginBackground' })\n\n const themeResult = await saveTheme.save(themeClient.theme)\n notify.show(themeResult)\n\n setThemeClient(themeClient.theme)\n resetSelectedLogo()\n resetSelectedBackgroundLogo()\n setLoading(false)\n handleClose()\n } catch (error) {\n handleError(error)\n }\n }\n\n const handleClose = useCallback(() => setOpenSaveChanges(false), [])\n\n return (\n \n \n Deseja realmente gravar as alterações?\n\n \n \n \n \n \n )\n}\n","import { StyleSheet } from 'react-native'\n\nexport const styles = StyleSheet.create({\n container: {\n display: 'flex',\n gap: 18\n },\n buttonArea: {\n display: 'flex',\n flexDirection: 'row',\n justifyContent: 'flex-end',\n gap: 8\n }\n})\n","import React from 'react'\nimport { useRecoilState, useRecoilValue, useSetRecoilState } from 'recoil'\nimport { Box, Button, Text, ModalBase } from '@/presentation/components'\nimport { useNotify, useTheme } from '@/presentation/hooks'\nimport { initialThemeState, themeState } from '@/presentation/pages/Theme/components'\nimport { modalOnDiscardChangesThemeState } from './atom'\nimport { styles } from './styles'\n\nexport const ModalOnDiscardChanges: React.FC = () => {\n const theme = useTheme()\n const notify = useNotify()\n const setThemeClient = useSetRecoilState(themeState)\n const initialTheme = useRecoilValue(initialThemeState)\n const [isOpenDiscardChanges, setOpenDiscardChanges] = useRecoilState(modalOnDiscardChangesThemeState)\n\n const handleDiscardChanges = (): void => {\n setThemeClient(currentState => ({ ...currentState, theme: initialTheme }))\n setOpenDiscardChanges(false)\n notify.show('As alterações foram descartadas')\n }\n\n const handleClose = (): void => setOpenDiscardChanges(false)\n\n return (\n \n \n Deseja realmente desfazer as alterações?\n\n \n \n \n \n \n \n )\n}\n","import { useCallback } from 'react'\nimport { useRecoilState, useRecoilValue } from 'recoil'\nimport { ThemeModel } from '@/domain/models'\nimport { localStorageState } from '@/presentation/components'\nimport { initialThemeState, selectedBackgroundState, selectedLogoState, themeState } from '@/presentation/pages/Theme/components'\n\ntype ThemeClient = {\n getThemeClient: () => ThemeModel\n setThemeClient: (theme: ThemeModel) => void\n hasChanged: () => boolean\n}\n\nexport const KEY_THEME_STORAGE = 'portalTheme'\n\nexport const useThemeClient = (): ThemeClient => {\n const [themeClient, setTheme] = useRecoilState(themeState)\n const [initialTheme, setInitialTheme] = useRecoilState(initialThemeState)\n const selectedLogo = useRecoilValue(selectedLogoState)\n const selectedBackground = useRecoilValue(selectedBackgroundState)\n const localStorageAdapter = useRecoilValue(localStorageState)\n\n const setThemeClient = useCallback((theme: ThemeModel): void => {\n setInitialTheme(theme)\n setTheme(currentState => ({ ...currentState, theme }))\n\n const themeColorClient = document?.querySelector('meta[name=\"theme-color\"]')\n if (themeColorClient) {\n themeColorClient.setAttribute('content', theme.mainColor)\n }\n\n localStorageAdapter.set(KEY_THEME_STORAGE, theme)\n }, [])\n\n const getThemeClient = useCallback((): ThemeModel => {\n return themeClient.theme\n }, [themeClient.theme])\n\n const hasChanged = useCallback((): boolean => {\n return JSON.stringify(themeClient.theme) !== JSON.stringify(initialTheme)\n }, [themeClient.theme, selectedLogo, selectedBackground])\n\n return {\n getThemeClient,\n setThemeClient,\n hasChanged\n }\n}\n","import { useCallback } from 'react'\nimport { useRecoilState } from 'recoil'\nimport { SnackBarProps, snackBarProviderState } from '@/presentation/components'\n\ntype NotifyProps = {\n show: (message: string, options?: NotifyParams) => void\n success: (message: string, options?: NotifyParams) => void\n info: (message: string, options?: NotifyParams) => void\n error: (message: string, options?: NotifyParams) => void\n dimiss: (messageId: string) => void\n}\n\ntype NotifyParams = {\n variant?: 'success' | 'error' | 'info'\n duration?: number\n delay?: number\n}\n\nfunction useNotify (): NotifyProps {\n const [messages, setMessages] = useRecoilState(snackBarProviderState)\n\n const show = useCallback((message: string, options: NotifyParams): void => {\n const newMessage: SnackBarProps = {\n id: new Date().getMilliseconds().toString(),\n variant: 'success',\n duration: 7000,\n message,\n ...options\n }\n\n if (messages.every(currentMessages => currentMessages.message !== message)) {\n setMessages(currentMessages => [...currentMessages, newMessage])\n\n setTimeout(() => dimiss(newMessage.id), newMessage.duration)\n }\n }, [])\n\n const success = (message: string, options: NotifyParams): void => {\n const newMessage: SnackBarProps = {\n id: new Date().getMilliseconds().toString(),\n variant: 'success',\n duration: 7000,\n message,\n ...options\n }\n\n if (messages.every(currentMessages => currentMessages.message !== message)) {\n setMessages(currentMessages => [...currentMessages, newMessage])\n\n setTimeout(() => dimiss(newMessage.id), newMessage.duration)\n }\n }\n\n const info = (message: string, options: NotifyParams): void => {\n const newMessage: SnackBarProps = {\n id: new Date().getMilliseconds().toString(),\n variant: 'info',\n duration: 7000,\n message,\n ...options\n }\n\n if (messages.every(currentMessages => currentMessages.message !== message)) {\n setMessages(currentMessages => [...currentMessages, newMessage])\n\n setTimeout(() => dimiss(newMessage.id), newMessage.duration)\n }\n }\n\n const error = (message: string, options: NotifyParams): void => {\n const newMessage: SnackBarProps = {\n id: new Date().getMilliseconds().toString(),\n variant: 'error',\n duration: 7000,\n message,\n ...options\n }\n\n if (messages.every(currentMessages => currentMessages.message !== message)) {\n setMessages(currentMessages => [...currentMessages, newMessage])\n\n setTimeout(() => dimiss(newMessage.id), newMessage.duration)\n }\n }\n\n const dimiss = useCallback((messageId: string): void => {\n setMessages(messages.filter(message => message.id !== messageId))\n }, [])\n\n return {\n show,\n success,\n info,\n error,\n dimiss\n }\n}\n\nexport default useNotify\n","import { atom } from 'recoil'\nimport { AreaInterest, EntidadeService, ProspectConfigsModel, Unidade } from '@/domain/models'\n\nexport const isLoadingState = atom({\n key: 'prospectSettingsLoadingState',\n default: true\n})\n\nexport const initialProspectConfigsState = atom({\n key: 'initialProspectConfigsState',\n default: {} as ProspectConfigsModel\n})\n\nexport const prospectConfigsState = atom({\n key: 'prospectConfigsState',\n default: {\n ativo: false,\n descricao: '',\n moduloLiberado: false,\n listaInteresse: [] as EntidadeService[]\n }\n})\n\nexport const prospectInterestAreaState = atom({\n key: 'prospectInterestAreaState',\n default: [] as AreaInterest[]\n})\n\nexport const prospectUnitsState = atom({\n key: 'prospectUnitsState',\n default: [] as Unidade[]\n})\n","import React from 'react'\nimport { StyleSheet } from 'react-native'\nimport { Card } from 'react-native-paper'\nimport { useSetRecoilState } from 'recoil'\nimport { useTheme } from '@/presentation/hooks'\nimport { Button, HStack } from '@/presentation/components'\nimport { isOpenDiscardConfigState, isOpenSaveConfigState } from '@/presentation/pages/ProspectSettings/components'\n\nexport const ActionsButtons: React.FC = () => {\n const theme = useTheme()\n const setOpenSaveConfig = useSetRecoilState(isOpenSaveConfigState)\n const setOpenDiscardConfig = useSetRecoilState(isOpenDiscardConfigState)\n\n const handleSubmit = (): void => {\n setOpenSaveConfig(true)\n }\n\n const handleDiscardChanges = (): void => {\n setOpenDiscardConfig(true)\n }\n\n return (\n \n \n \n \n \n \n )\n}\n\nconst styles = StyleSheet.create({\n cardContainer: {\n margin: 12,\n padding: 8,\n borderRadius: 4,\n flexDirection: 'row',\n justifyContent: 'flex-end'\n }\n})\n","import { atom } from 'recoil'\n\nexport const isOpenSaveConfigState = atom({\n key: 'isOpenSaveProspectConfigState',\n default: false\n})\n\nexport const isLoadingSaveConfigState = atom({\n key: 'isLoadingSaveProspectConfigState',\n default: false\n})\n","import { StyleSheet } from 'react-native'\n\nexport const styles = StyleSheet.create({\n container: {\n display: 'flex',\n gap: 18\n },\n buttonArea: {\n display: 'flex',\n flexDirection: 'row',\n flexWrap: 'wrap',\n justifyContent: 'flex-end',\n gap: 8\n }\n})\n","import React, { useCallback } from 'react'\nimport { useRecoilState, useRecoilValue } from 'recoil'\nimport { SaveProspectConfigs, SaveProspectConfigsParams } from '@/domain/usecases'\nimport { Box, Button, Text, ModalBase, Loading } from '@/presentation/components'\nimport { useErrorHandler, useNotify, useProspectSettings, useTheme } from '@/presentation/hooks'\nimport { prospectInterestAreaState, prospectConfigsState } from '@/presentation/pages/ProspectSettings/components'\nimport { isOpenSaveConfigState, isLoadingSaveConfigState } from './atom'\nimport { styles } from './styles'\n\ntype ModalOnSaveChangesProps = {\n saveProspectConfigs: SaveProspectConfigs\n}\n\nexport const ModalOnSaveChanges: React.FC = ({ saveProspectConfigs }) => {\n const theme = useTheme()\n const notify = useNotify()\n const { startConfig } = useProspectSettings()\n const prospectConfigs = useRecoilValue(prospectConfigsState)\n const areaInterests = useRecoilValue(prospectInterestAreaState)\n const [isLoading, setLoading] = useRecoilState(isLoadingSaveConfigState)\n const [isOpen, setOpen] = useRecoilState(isOpenSaveConfigState)\n const handlerError = useErrorHandler()\n\n const handleSaveChanges = useCallback((): void => {\n setLoading(true)\n\n const newProspectConfigs: SaveProspectConfigsParams = {\n ...prospectConfigs,\n areaInteresse: areaInterests\n }\n\n saveProspectConfigs\n .save(newProspectConfigs)\n .then(() => {\n notify.show('As configurações foram gravadas com sucesso')\n\n startConfig(newProspectConfigs)\n handleClose()\n })\n .catch(error => {\n handlerError(error)\n handleClose()\n })\n .finally(() => setLoading(false))\n }, [prospectConfigs, areaInterests])\n\n const handleClose = (): void => setOpen(false)\n\n return (\n \n {isLoading\n ? \n : \n Deseja realmente gravar as alterações?\n\n \n \n \n \n \n }\n \n )\n}\n","import { StyleSheet } from 'react-native'\n\nexport const styles = StyleSheet.create({\n container: {\n display: 'flex',\n gap: 18\n },\n buttonArea: {\n display: 'flex',\n flexDirection: 'row',\n justifyContent: 'flex-end',\n gap: 8\n }\n})\n","import React from 'react'\nimport { useRecoilState } from 'recoil'\nimport { Box, Button, Text, ModalBase } from '@/presentation/components'\nimport { useNotify, useProspectSettings, useTheme } from '@/presentation/hooks'\nimport { isOpenDiscardConfigState } from '@/presentation/pages/ProspectSettings/components'\nimport { styles } from './styles'\n\nexport const ModalOnDiscardChanges: React.FC = () => {\n const theme = useTheme()\n const notify = useNotify()\n const [isOpen, setOpen] = useRecoilState(isOpenDiscardConfigState)\n const { discardChanges } = useProspectSettings()\n\n const handleDiscardChanges = (): void => {\n discardChanges()\n setOpen(false)\n notify.show('As alterações foram descartadas')\n }\n\n const handleClose = (): void => setOpen(false)\n\n return (\n \n \n Deseja realmente desfazer as alterações?\n\n \n \n \n \n \n \n )\n}\n","import { atom } from 'recoil'\n\nexport const isOpenDiscardConfigState = atom({\n key: 'isOpenDiscardProspectConfigState',\n default: false\n})\n","import { StyleSheet } from 'react-native'\n\nexport const styles = StyleSheet.create({\n container: {\n display: 'flex',\n gap: 18\n },\n buttonArea: {\n display: 'flex',\n flexDirection: 'row',\n justifyContent: 'flex-end',\n gap: 8\n },\n content: {\n display: 'flex',\n justifyContent: 'space-between',\n alignItems: 'center'\n }\n})\n","import React from 'react'\nimport { useRecoilState, useRecoilValue, useResetRecoilState, useSetRecoilState } from 'recoil'\nimport { AreaInterest } from '@/domain/models'\nimport { Box, Button, Text, ModalBase, TextInput, HStack, Stack, Select, MessageBlock } from '@/presentation/components'\nimport { useMediaQueries, useTheme } from '@/presentation/hooks'\nimport { addConfigUnitState, isDuplicatedOptionSate, isOpenAddConfigUnitState, isOpenSelectInterestState, isOpenSelectUnitState, prospectConfigsState, prospectInterestAreaState, prospectUnitsState } from '@/presentation/pages/ProspectSettings/components'\nimport { styles } from './styles'\n\nexport const ModalAddConfigUnit: React.FC = () => {\n const theme = useTheme()\n const { isMobile } = useMediaQueries()\n const [isOpen, setOpen] = useRecoilState(isOpenAddConfigUnitState)\n const [areaInterest, setAreaInterest] = useRecoilState(addConfigUnitState)\n const [isDuplicated, setIsDuplicated] = useRecoilState(isDuplicatedOptionSate)\n const units = useRecoilValue(prospectUnitsState)\n const [isOpenSelectUnit, setOpenSelectUnit] = useRecoilState(isOpenSelectUnitState)\n const [isOpenSelectInterest, setOpenSelectInterest] = useRecoilState(isOpenSelectInterestState)\n const areaInterestsList = useRecoilValue(prospectInterestAreaState)\n const prospectConfigs = useRecoilValue(prospectConfigsState)\n const setProspectInterestAreaList = useSetRecoilState(prospectInterestAreaState)\n const reset = useResetRecoilState(addConfigUnitState)\n\n const handleSave = (): void => {\n if (existUnit()) {\n setIsDuplicated(true)\n } else {\n const newInterestArea: AreaInterest = {\n descricao: areaInterest?.descricao,\n email: areaInterest?.email,\n interesse: areaInterest?.interesse,\n unidade: areaInterest?.unidade\n }\n\n setProspectInterestAreaList((currentInterestAreaList) => ([...currentInterestAreaList, newInterestArea]))\n setOpen(false)\n reset()\n }\n }\n\n const existUnit = (): boolean => {\n return areaInterestsList.some(\n (interest) => interest.unidade === areaInterest.unidade && interest.interesse.descreve === areaInterest.interesse.descreve\n )\n }\n\n const handleInputChange = (param: keyof AreaInterest, value: number | string): void => {\n setAreaInterest(currentState => ({ ...currentState, [param]: value }))\n }\n\n const validValues = (): boolean => {\n const emailRegex = /^[^\\s@]+@[^\\s@]+\\.[^\\s@]+$/\n const isValidEmail = emailRegex.test(areaInterest.email)\n return !!(areaInterest.descricao && areaInterest.unidade && areaInterest.interesse?.codInterno !== 0 && isValidEmail && !isDuplicated)\n }\n\n const handleClose = (): void => {\n setOpen(false)\n reset()\n }\n\n return (\n \n \n Adicionar nova opção para cliente\n\n {isDuplicated &&\n \n }\n\n \n setOpenSelectUnit(true)}\n />\n handleInputChange('descricao', text)}\n maxLength={50}\n />\n \n \n setOpenSelectInterest(true)}\n style={{ minWidth: '100%' }}\n />\n \n handleInputChange('email', text)}\n textContentType='emailAddress'\n />\n\n \n \n \n \n \n setOpenSelectUnit(false)}\n items={units.map(unit => ({\n id: unit.codigoUnidade,\n descricao: unit.codigoUnidade.toString(),\n data: unit,\n isSelected: unit.codigoUnidade === areaInterest.unidade\n }))}\n onSelect={(unitCode, _) => {\n setAreaInterest(currentState => ({ ...currentState, unidade: unitCode }))\n isDuplicated && setIsDuplicated(false)\n }}\n />\n setOpenSelectInterest(false)}\n items={prospectConfigs.listaInteresse?.map(interest => ({\n id: interest.codInterno,\n descricao: interest.descreve,\n data: interest,\n isSelected: interest.codInterno === areaInterest.interesse?.codInterno\n }))}\n onSelect={(_, data) => {\n setAreaInterest(currentState => ({ ...currentState, interesse: data }))\n isDuplicated && setIsDuplicated(false)\n }}\n />\n \n )\n}\n","import { atom } from 'recoil'\nimport { AreaInterest, EntidadeService } from '@/domain/models'\n\nexport const isOpenAddConfigUnitState = atom({\n key: 'isOpenAddConfigUnitState',\n default: false\n})\n\nexport const addConfigUnitState = atom({\n key: 'addConfigUnitState',\n default: {\n descricao: '',\n email: '',\n interesse: null as unknown as EntidadeService,\n unidade: 0\n }\n})\n\nexport const isDuplicatedOptionSate = atom({\n key: 'isDuplicatedProspectOptionState',\n default: false\n})\n\nexport const isOpenSelectInterestState = atom({\n key: 'isOpenProspectSelectInterestState',\n default: false\n})\n\nexport const isOpenSelectUnitState = atom({\n key: 'isOpenProspectSelectUnitState',\n default: false\n})\n","import { StyleSheet } from 'react-native'\n\nexport const styles = StyleSheet.create({\n container: {\n display: 'flex',\n gap: 18\n },\n buttonArea: {\n display: 'flex',\n flexDirection: 'row',\n flexWrap: 'wrap',\n justifyContent: 'flex-end',\n gap: 8\n }\n})\n","import React from 'react'\nimport { useRecoilState, useRecoilValue, useResetRecoilState, useSetRecoilState } from 'recoil'\nimport { Box, Button, Text, ModalBase } from '@/presentation/components'\nimport { useTheme } from '@/presentation/hooks'\nimport { deleteProspectOptionState, isOpenDeleteProspectOptionState, prospectInterestAreaState } from '@/presentation/pages/ProspectSettings/components'\nimport { styles } from './styles'\n\nexport const ModalDeleteOption: React.FC = () => {\n const theme = useTheme()\n const [isOpen, setOpen] = useRecoilState(isOpenDeleteProspectOptionState)\n const deleteOption = useRecoilValue(deleteProspectOptionState)\n const setAreaInterests = useSetRecoilState(prospectInterestAreaState)\n const resetDeleteOption = useResetRecoilState(deleteProspectOptionState)\n\n const handleDeleteOption = (): void => {\n setAreaInterests((prevInterests) => {\n const updatedInterests = prevInterests.filter(\n (interest) => (interest.unidade !== deleteOption.unidade) || (interest.interesse.descreve !== deleteOption.interesse)\n )\n return updatedInterests\n })\n resetDeleteOption()\n setOpen(false)\n }\n\n const handleClose = (): void => setOpen(false)\n\n return (\n \n \n Deseja realmente remover a opção de interesse \"{deleteOption.interesse.replace(/\\s+(?!\\b)/g, '')}\" da unidade {deleteOption.unidade}?\n\n \n \n \n \n \n \n )\n}\n","import { atom } from 'recoil'\n\nexport const isOpenDeleteProspectOptionState = atom({\n key: 'isOpenDeleteProspectOptionState',\n default: false\n})\n\nexport type deleteProspectOptionProps = {\n unidade: number\n interesse: string\n}\n\nexport const deleteProspectOptionState = atom({\n key: 'deleteProspectOptionState',\n default: {\n unidade: 0,\n interesse: ''\n }\n})\n","import React from 'react'\nimport { useRecoilValue, useSetRecoilState } from 'recoil'\nimport { MaterialCommunityIcons } from '@expo/vector-icons'\nimport { useMediaQueries, useTheme } from '@/presentation/hooks'\nimport { DataTable } from '@/presentation/components'\nimport { deleteProspectOptionState, isOpenDeleteProspectOptionState, prospectInterestAreaState } from '@/presentation/pages/ProspectSettings/components'\n\nexport const TableAreaOfInterest: React.FC = () => {\n const theme = useTheme()\n const { isMobile } = useMediaQueries()\n const areaInterests = useRecoilValue(prospectInterestAreaState)\n const setDeleteOptionOpen = useSetRecoilState(isOpenDeleteProspectOptionState)\n const setDeleteOption = useSetRecoilState(deleteProspectOptionState)\n\n const handleDeleteOption = (unit: number, interestArea: string): void => {\n setDeleteOption({\n interesse: interestArea,\n unidade: unit\n })\n setDeleteOptionOpen(true)\n }\n\n return (\n \n \n {!isMobile && Opção}\n Unidade\n Interesse\n {!isMobile && Email}\n \n\n {areaInterests.map((area, index) => (\n \n {!isMobile && {area.descricao}}\n {area.unidade}\n {area.interesse.descreve}\n {!isMobile && {area.email}}\n handleDeleteOption(area.unidade, area.interesse.descreve)}\n style={{ maxWidth: 'fit-content', padding: 4 }}\n >\n \n \n \n ))}\n \n )\n}\n","import { useCallback } from 'react'\nimport { ProspectConfigsModel } from '@/domain/models'\nimport { useRecoilState, useRecoilValue, useSetRecoilState } from 'recoil'\nimport { initialProspectConfigsState, prospectConfigsState, prospectInterestAreaState } from '@/presentation/pages/ProspectSettings/components'\n\ntype ProspectSettingsProps = {\n startConfig: (config: ProspectConfigsModel) => void\n discardChanges: () => void\n hasChanged: () => boolean\n}\n\nexport const useProspectSettings = (): ProspectSettingsProps => {\n const [initialConfigs, setInitialConfigs] = useRecoilState(initialProspectConfigsState)\n const [prospectConfigs, setProspectConfigs] = useRecoilState(prospectConfigsState)\n const areaInterest = useRecoilValue(prospectInterestAreaState)\n const setProspectInterestArea = useSetRecoilState(prospectInterestAreaState)\n\n const discardChanges = useCallback((): void => {\n startConfig(initialConfigs)\n }, [initialConfigs])\n\n const startConfig = (intialProspectConfigs: ProspectConfigsModel): void => {\n const { areaInteresse, ...prospectConfigs } = intialProspectConfigs\n\n prospectConfigs.ativo = areaInteresse.length > 0\n setInitialConfigs({ ...prospectConfigs, areaInteresse })\n setProspectConfigs(prospectConfigs)\n setProspectInterestArea(areaInteresse)\n }\n\n const hasChanged = useCallback((): boolean => {\n const configs: ProspectConfigsModel = {\n ...prospectConfigs,\n areaInteresse: areaInterest\n }\n return JSON.stringify(initialConfigs) !== JSON.stringify(configs)\n }, [prospectConfigs, areaInterest])\n\n return {\n startConfig,\n discardChanges,\n hasChanged\n }\n}\n","import { atom } from 'recoil'\nimport { EventsSettingsModel, GenericSigmaDeskConnectionModel } from '@/domain/models'\n\nexport const isLoadingState = atom({\n key: 'eventsSettingsLoadingState',\n default: true\n})\n\nexport const initialEventsSettingsState = atom({\n key: 'initialEventsSettingsState',\n default: {} as EventsSettingsModel\n})\n\nexport const eventsSettingsState = atom({\n key: 'eventsSettingsState',\n default: {} as EventsSettingsModel\n})\n\nexport const sigmaDeskConnectionsState = atom({\n key: 'sigmaDeskConnectionsState',\n default: [] as unknown as GenericSigmaDeskConnectionModel[]\n})\n\nexport const isOpenConnectionMenuState = atom({\n key: 'isOpenConnectionMenuState',\n default: false\n})\n","import React from 'react'\nimport { StyleSheet } from 'react-native'\nimport { Card } from 'react-native-paper'\nimport { useSetRecoilState } from 'recoil'\nimport { useTheme } from '@/presentation/hooks'\nimport { Button, HStack } from '@/presentation/components'\nimport { isOpenDiscardSettingsState, isOpenSaveSettingsState } from '@/presentation/pages/EventsSettings/components'\n\nexport const ActionsButtons: React.FC = () => {\n const theme = useTheme()\n const setOpenSaveConfig = useSetRecoilState(isOpenSaveSettingsState)\n const setOpenDiscardConfig = useSetRecoilState(isOpenDiscardSettingsState)\n\n const handleSubmit = (): void => {\n setOpenSaveConfig(true)\n }\n\n const handleDiscardChanges = (): void => {\n setOpenDiscardConfig(true)\n }\n\n return (\n \n \n \n \n \n \n )\n}\n\nconst styles = StyleSheet.create({\n cardContainer: {\n margin: 12,\n padding: 8,\n borderRadius: 4,\n flexDirection: 'row',\n justifyContent: 'flex-end'\n }\n})\n","import { StyleSheet } from 'react-native'\n\nexport const styles = StyleSheet.create({\n container: {\n display: 'flex',\n gap: 18\n },\n buttonArea: {\n display: 'flex',\n flexDirection: 'row',\n flexWrap: 'wrap',\n justifyContent: 'flex-end',\n gap: 8\n }\n})\n","import React, { useCallback } from 'react'\nimport { useRecoilState, useRecoilValue } from 'recoil'\nimport { ShowEvents } from '@/domain/usecases'\nimport { Box, Button, Text, ModalBase, Loading } from '@/presentation/components'\nimport { useErrorHandler, useNotify, useEventsSettings, useTheme } from '@/presentation/hooks'\nimport { eventsSettingsState, isLoadingSaveSettingsState, isOpenSaveSettingsState } from '@/presentation/pages/EventsSettings/components'\nimport { styles } from './styles'\n\ntype ModalOnSaveChangesProps = {\n showEvents: ShowEvents\n}\n\nexport const ModalOnSaveChanges: React.FC = ({ showEvents }) => {\n const theme = useTheme()\n const notify = useNotify()\n const { startConfig } = useEventsSettings()\n const eventsSettings = useRecoilValue(eventsSettingsState)\n const [isLoading, setLoading] = useRecoilState(isLoadingSaveSettingsState)\n const [isOpen, setOpen] = useRecoilState(isOpenSaveSettingsState)\n const handlerError = useErrorHandler()\n\n const handleSaveChanges = useCallback((): void => {\n setLoading(true)\n\n showEvents\n .show(eventsSettings.listaExibidos)\n .then(() => {\n notify.show('As configurações foram gravadas com sucesso')\n\n startConfig(eventsSettings)\n handleClose()\n })\n .catch(error => {\n handlerError(error)\n handleClose()\n })\n .finally(() => setLoading(false))\n }, [eventsSettings])\n\n const handleClose = (): void => setOpen(false)\n\n return (\n \n {isLoading\n ? \n : \n Deseja realmente gravar as alterações?\n\n \n \n \n \n \n }\n \n )\n}\n","import { atom } from 'recoil'\n\nexport const isOpenSaveSettingsState = atom({\n key: 'isOpenSaveEventsSettingsState',\n default: false\n})\n\nexport const isLoadingSaveSettingsState = atom({\n key: 'isLoadingSaveEventsSettingsState',\n default: false\n})\n","import { StyleSheet } from 'react-native'\n\nexport const styles = StyleSheet.create({\n container: {\n display: 'flex',\n gap: 18\n },\n buttonArea: {\n display: 'flex',\n flexDirection: 'row',\n justifyContent: 'flex-end',\n gap: 8\n }\n})\n","import React from 'react'\nimport { useRecoilState } from 'recoil'\nimport { Box, Button, Text, ModalBase } from '@/presentation/components'\nimport { useNotify, useEventsSettings, useTheme } from '@/presentation/hooks'\nimport { isOpenDiscardSettingsState } from '@/presentation/pages/EventsSettings/components'\nimport { styles } from './styles'\n\nexport const ModalOnDiscardChanges: React.FC = () => {\n const theme = useTheme()\n const notify = useNotify()\n const [isOpen, setOpen] = useRecoilState(isOpenDiscardSettingsState)\n const { discardChanges } = useEventsSettings()\n\n const handleDiscardChanges = (): void => {\n discardChanges()\n setOpen(false)\n notify.show('As alterações foram descartadas')\n }\n\n const handleClose = (): void => setOpen(false)\n\n return (\n \n \n Deseja realmente desfazer as alterações?\n\n \n \n \n \n \n \n )\n}\n","import { atom } from 'recoil'\n\nexport const isOpenDiscardSettingsState = atom({\n key: 'isOpenDiscardEventsSettingsState',\n default: false\n})\n","import { useCallback } from 'react'\nimport { useRecoilState } from 'recoil'\nimport { EventsSettingsModel } from '@/domain/models'\nimport { initialEventsSettingsState, eventsSettingsState } from '@/presentation/pages/EventsSettings/components'\n\ntype EventsSettingsProps = {\n startConfig: (config: EventsSettingsModel) => void\n discardChanges: () => void\n hasChanged: () => boolean\n}\n\nexport const useEventsSettings = (): EventsSettingsProps => {\n const [initialConfigs, setInitialConfigs] = useRecoilState(initialEventsSettingsState)\n const [EventsSettings, setEventsSettings] = useRecoilState(eventsSettingsState)\n\n const discardChanges = useCallback((): void => {\n startConfig(initialConfigs)\n }, [initialConfigs])\n\n const startConfig = (initialEventsSettings: EventsSettingsModel): void => {\n const eventosExibidos = initialEventsSettings.listaTipos.filter((evento) => {\n const hasMatchingCode = initialEventsSettings.listaExibidos.some((oculto) => oculto.codigo === evento.codigo)\n return !hasMatchingCode\n })\n\n const treatedBody: EventsSettingsModel = {\n listaExibidos: initialEventsSettings.listaExibidos,\n listaTipos: eventosExibidos\n }\n\n setInitialConfigs(treatedBody)\n setEventsSettings(treatedBody)\n }\n\n const hasChanged = useCallback((): boolean => {\n return JSON.stringify(initialConfigs) !== JSON.stringify(EventsSettings)\n }, [EventsSettings])\n\n return {\n startConfig,\n discardChanges,\n hasChanged\n }\n}\n","import { ClientModel } from '@/domain/models'\nimport { makeLocalStorageAdapter } from '@/main/factories/cache'\nimport { KEY_ACCESS_TOKEN } from '@/presentation/hooks'\nimport { atom } from 'recoil'\n\nexport const authenticationState = atom({\n key: 'autenticationState',\n default: {\n client: null as unknown as ClientModel,\n registerLogin: false,\n accessToken: makeLocalStorageAdapter().get(KEY_ACCESS_TOKEN)\n }\n})\n","import { atom } from 'recoil'\nimport { SnackBarProps } from '@/presentation/components'\n\nexport const snackBarProviderState = atom({\n key: 'snackBarProvider',\n default: []\n})\n\nexport const errorAuthState = atom({\n key: 'errorAuthState',\n default: ''\n})\n","import { atom } from 'recoil'\nimport { makeLocalStorageAdapter } from '@/main/factories/cache'\n\nexport const localStorageState = atom({\n key: 'localStorage',\n default: makeLocalStorageAdapter()\n})\n","import { atom } from 'recoil'\nimport { makeUniversalCookieAdapter } from '@/main/factories/cache'\n\nexport const cookieState = atom({\n key: 'cookie',\n default: makeUniversalCookieAdapter()\n})\n","import { UniversalCookieAdapter } from '@/infra/cache'\n\nexport const makeUniversalCookieAdapter = (): UniversalCookieAdapter => new UniversalCookieAdapter()\n","import { atom } from 'recoil'\nimport { makeJwtAdapterFactory } from '@/main/adapters'\n\nexport const jwtAdapterAtom = atom({\n key: 'jwtAdapter',\n default: makeJwtAdapterFactory()\n})\n","import React from 'react'\nimport { HStack } from '@react-native-material/core'\nimport { useMediaQueries } from '@/presentation/hooks'\n\ntype ActionsButtonsProps = {\n children: React.ReactNode\n}\n\nexport const ActionsButtons: React.FC = ({ children }) => {\n const { isMobile } = useMediaQueries()\n\n return (\n \n {children}\n \n )\n}\n","import React, { useEffect, useState } from 'react'\nimport { ImageBackground, StyleSheet } from 'react-native'\nimport { environment } from '@/main/config/env'\nimport { useImage, useThemeClient } from '@/presentation/hooks'\n\nexport const BackgroundTheme: React.FC = () => {\n const { getImage } = useImage()\n const { getThemeClient } = useThemeClient()\n const [backgroundEmpresa, setBackgroundEmpresa] = useState('')\n\n const themeClient = getThemeClient()\n const backgroundDefault = environment === 'production' && backgroundEmpresa\n ? { uri: backgroundEmpresa }\n : require('../../../../assets/hexagon-bg.svg')\n\n useEffect(() => {\n themeClient.bgLogin && environment !== 'development' &&\n getImage(themeClient.bgLogin, 'login')\n .then(background => { setBackgroundEmpresa(background) })\n .catch(console.error)\n }, [themeClient.bgLogin])\n\n return (\n \n )\n}\n\nconst styles = StyleSheet.create({\n image: {\n flex: 1,\n justifyContent: 'center',\n alignSelf: 'stretch'\n }\n})\n","import { StyleSheet } from 'react-native'\n\nexport const styles = StyleSheet.create({\n container: {\n borderRadius: 50,\n borderWidth: 1,\n display: 'flex',\n alignItems: 'center',\n justifyContent: 'center',\n height: 20,\n width: 'fit-content'\n },\n title: {\n lineHeight: 13\n }\n})\n","import React from 'react'\nimport { ViewStyle, TextStyle } from 'react-native'\nimport { Chip as ChipPaper, Text } from 'react-native-paper'\nimport { useTheme } from '@/presentation/hooks'\nimport { styles } from './styles'\n\ntype ChipProps = {\n text: string\n color?: string\n variant?: 'filled' | 'outlined'\n containerStyle?: ViewStyle\n textStyle?: TextStyle\n onClick?: () => void\n}\n\nexport const Chip: React.FC = ({\n text,\n color,\n containerStyle,\n textStyle,\n onClick,\n variant = 'filled'\n}: ChipProps) => {\n const theme = useTheme()\n\n const containerStyles = {\n filled: {\n ...styles.container,\n backgroundColor: color ?? theme.colors.primary,\n color: 'transparent',\n borderColor: 'transparent',\n ...containerStyle\n },\n outlined: {\n ...styles.container,\n backgroundColor: 'transparent',\n color: color ?? theme.colors.error,\n borderColor: color ?? theme.colors.error,\n ...containerStyle\n }\n }[variant]\n\n const textStyles = {\n ...styles.title,\n color: variant === 'filled' ? theme.colors.white : color ?? theme.colors.error,\n ...textStyle\n }\n\n return (\n \n \n {text}\n \n \n )\n}\n","import React from 'react'\nimport { Text } from '@react-native-material/core'\nimport { MaterialIcons } from '@expo/vector-icons'\nimport { TouchableOpacity } from 'react-native-gesture-handler'\nimport { useThemeClient } from '@/presentation/hooks'\nimport { HStack } from '@/presentation/components'\n\ntype ChipFilterProps = {\n title: string\n subtitle: string\n onPress: () => void\n}\n\nexport const ChipFilter: React.FC = ({\n title,\n subtitle,\n onPress\n}) => {\n const { getThemeClient } = useThemeClient()\n\n const themeClient = getThemeClient()\n\n return (\n \n \n \n {title}\n \n \n \n \n {subtitle}\n \n \n )\n}\n","import { StyleSheet } from 'react-native'\n\nexport const styles = StyleSheet.create({\n cardBase: {\n display: 'flex',\n borderRadius: 4,\n flex: 1\n },\n cardContent: {\n display: 'flex',\n gap: 8\n }\n})\n","import React from 'react'\nimport { Card } from 'react-native-paper'\nimport { useMediaQueries, useTheme } from '@/presentation/hooks'\nimport { styles } from './styles'\n\ntype CardBaseProps = {\n children: JSX.Element | JSX.Element[]\n key?: number | string\n maxWidth?: number | string\n minWidth?: number | string\n}\n\nexport const CardBase: React.FC = ({ children, key, maxWidth, minWidth }) => {\n const theme = useTheme()\n const { isMobile } = useMediaQueries()\n\n return (\n \n \n {children}\n \n \n )\n}\n","import React from 'react'\nimport { StyleSheet } from 'react-native'\nimport { useMediaQueries } from '@/presentation/hooks'\nimport { Box, EmptyList, Loading } from '@/presentation/components'\n\ntype CardListProps = {\n children: React.ReactNode\n isLoading: boolean\n isEmpty: boolean\n textLoading: string\n textEmpty?: string\n}\n\nexport const CardList: React.FC = ({\n children,\n isLoading,\n isEmpty,\n textEmpty,\n textLoading\n}) => {\n const { isMobile } = useMediaQueries()\n\n return (\n \n {isLoading\n ? \n : isEmpty\n ? \n : children\n }\n \n )\n}\n\nconst styles = StyleSheet.create({\n container: {\n flexWrap: 'wrap',\n flexDirection: 'row',\n flexGrow: 1,\n gap: 16\n },\n containerMobile: {\n flexWrap: 'nowrap',\n flexGrow: 1,\n gap: 16\n }\n})\n","import React from 'react'\nimport { StyleSheet } from 'react-native'\nimport { Switch, Card, Text } from '@/presentation/components'\nimport { useThemeClient } from '@/presentation/hooks'\n\ntype CardSWitchProps = {\n text: string\n value: boolean\n handleSwitch: () => void\n children?: JSX.Element[] | JSX.Element | boolean\n readonly?: boolean\n showIfValueFalsy?: boolean\n}\n\nexport const CardSwitch: React.FC = ({\n text,\n children,\n value,\n handleSwitch,\n readonly,\n showIfValueFalsy = false\n}) => {\n const { getThemeClient } = useThemeClient()\n\n const themeCliente = getThemeClient()\n const showChildren = showIfValueFalsy ? !value : !!value\n\n return (\n \n \n \n {text}\n {!readonly && }\n \n {children && showChildren &&\n \n {children}\n \n }\n \n \n )\n}\n\nconst styles = StyleSheet.create({\n cardContainer: {\n marginVertical: 8,\n marginHorizontal: 16,\n borderRadius: 4\n },\n cardContent: {\n justifyContent: 'space-between',\n flex: 1\n },\n cardContentHeader: {\n flexDirection: 'row',\n justifyContent: 'space-between',\n flex: 1,\n paddingLeft: 0,\n paddingRight: 0\n },\n cardChildren: {\n marginBottom: 8,\n marginTop: 16\n }\n})\n","import { StyleSheet } from 'react-native'\n\nexport const styles = StyleSheet.create({\n container: {\n width: '100%',\n marginTop: 8\n }\n})\n","import React, { useMemo } from 'react'\nimport { DatePickerInput } from 'react-native-paper-dates'\nimport { DateAdapter } from '@/data/protocols'\nimport { useTheme } from '@/presentation/hooks'\nimport { styles } from './styles'\n\ntype DatePickerProps = {\n dateAdapter: DateAdapter\n label: string\n value: Date | undefined\n onChange: (date: Date | undefined) => void\n disabled?: boolean\n initYear?: number\n finalYear?: number\n}\n\nexport const DatePicker: React.FC = ({\n label,\n value,\n onChange,\n disabled,\n initYear,\n finalYear,\n dateAdapter\n}) => {\n const theme = useTheme()\n\n const INITIAL_YEAR = useMemo(() => initYear ?? dateAdapter.today().getFullYear() - 5, [])\n const FINAL_YEAR = useMemo(() => finalYear ?? dateAdapter.today().getFullYear() + 12, [])\n\n const inputStyle = {\n ...styles.container,\n backgroundColor: theme.colors.backgroundInput,\n color: theme.colors.greyDark\n }\n\n return (\n \n )\n}\n","import * as React from 'react'\nimport { useRecoilValue } from 'recoil'\nimport { ScrollView } from 'react-native-gesture-handler'\nimport { DrawerContentScrollView, DrawerItemList } from '@react-navigation/drawer'\nimport { useTheme, useThemeClient } from '@/presentation/hooks'\nimport { Box, SocialMidias, socialMediaState } from '@/presentation/components'\n\nexport function CustomDrawer (props: any): JSX.Element {\n const theme = useTheme()\n const { getThemeClient } = useThemeClient()\n const socialMidias = useRecoilValue(socialMediaState)\n\n const themeClient = getThemeClient()\n\n return (\n \n \n \n \n \n \n \n \n \n \n \n \n )\n}\n","export enum NavigationRoute {\n Home = 'home',\n Financial = 'financeiro',\n ServiceOrders = 'ordens-servico',\n SAC = 'sac',\n Invoices = 'notas-fiscais',\n DigitalAccepts = 'aceites-digitais',\n CreditCard = 'cartao',\n TravelAlert = 'aviso-viagem',\n PhoneUtils = 'telefone-uteis',\n DocumentsUtils = 'documentos-uteis',\n Monitoring = 'monitoramento',\n Track = 'rastreamento',\n Contract = 'contrato',\n OsDetail = 'detalhe-os',\n StatementOfDebts = 'declaracao-debitos',\n\n Theme = 'theme',\n Configs = 'configs',\n SocialMedia = 'redes-socias',\n ProspectSettings = 'prospect-settings',\n EventsSettings = 'events-settings'\n}\n\nexport const screensClientNavigator = {\n [NavigationRoute.Home]: { path: NavigationRoute.Home.toString() },\n [NavigationRoute.Financial]: { path: NavigationRoute.Financial.toString() },\n [NavigationRoute.Invoices]: { path: NavigationRoute.Invoices.toString() },\n [NavigationRoute.SAC]: { path: NavigationRoute.SAC.toString() },\n [NavigationRoute.DigitalAccepts]: { path: NavigationRoute.DigitalAccepts.toString() },\n [NavigationRoute.ServiceOrders]: { path: NavigationRoute.ServiceOrders.toString() },\n [NavigationRoute.CreditCard]: { path: NavigationRoute.CreditCard.toString() },\n [NavigationRoute.TravelAlert]: { path: NavigationRoute.TravelAlert.toString() },\n [NavigationRoute.PhoneUtils]: { path: NavigationRoute.PhoneUtils.toString() },\n [NavigationRoute.DocumentsUtils]: { path: NavigationRoute.DocumentsUtils.toString() },\n [NavigationRoute.Monitoring]: { path: NavigationRoute.Monitoring.toString() },\n [NavigationRoute.Track]: { path: NavigationRoute.Track.toString() },\n [NavigationRoute.OsDetail]: { path: NavigationRoute.OsDetail.toString() },\n [NavigationRoute.Contract]: { path: NavigationRoute.Contract.toString() },\n [NavigationRoute.StatementOfDebts]: { path: NavigationRoute.StatementOfDebts.toString() }\n}\n\nexport const screensAdminNavigator = {\n [NavigationRoute.Theme]: { path: NavigationRoute.Theme.toString() },\n [NavigationRoute.Configs]: { path: NavigationRoute.Configs.toString() },\n [NavigationRoute.SocialMedia]: { path: NavigationRoute.SocialMedia.toString() },\n [NavigationRoute.ProspectSettings]: { path: NavigationRoute.ProspectSettings.toString() },\n [NavigationRoute.EventsSettings]: { path: NavigationRoute.EventsSettings.toString() }\n}\n","import { StyleSheet } from 'react-native'\n\nexport const styles = StyleSheet.create({\n container: {\n flex: 1,\n padding: 16,\n gap: 16\n },\n footer: {\n display: 'flex',\n flexDirection: 'row-reverse',\n alignItems: 'center',\n height: '100%',\n padding: 16\n }\n})\n","import React, { useCallback } from 'react'\nimport { FontAwesome5 as Icon } from '@expo/vector-icons'\nimport { useFocusEffect } from '@react-navigation/native'\nimport { useRecoilState } from 'recoil'\nimport { RedesSociaisModel } from '@/domain/models'\nimport { GetRedesSociais, SaveRedesSociais, SaveRedesSociaisParams } from '@/domain/usecases'\nimport { useErrorHandler, useNotify } from '@/presentation/hooks'\nimport { Box, Button, TextInput, Footer, socialMediaState } from '@/presentation/components'\nimport { styles } from './styles'\n\ntype RedesSociasProps = {\n saveRedesSociais: SaveRedesSociais\n getRedesSociais: GetRedesSociais\n}\n\nexport const RedesSociais: React.FC = ({ saveRedesSociais, getRedesSociais }) => {\n const notify = useNotify()\n const handleError = useErrorHandler()\n const [state, setState] = useRecoilState(socialMediaState)\n\n useFocusEffect(\n useCallback(() => {\n void getRedesSociais.getRedesSociais()\n .then((res) => setState(currentState => ({ ...currentState, ...res })))\n .catch(handleError)\n }, [])\n )\n\n const handleChange = (name: keyof RedesSociaisModel, value: string): void => {\n setState((prevState) => ({ ...prevState, [name]: value }))\n }\n\n const handleSave = (): void => {\n const saveParams: SaveRedesSociaisParams = {\n facebook: state.facebook,\n instagram: state.instagram,\n linkedin: state.linkedin,\n phone: state.phone,\n telegram: state.telegram,\n tiktok: state.tiktok,\n whatsapp: state.whatsapp,\n youtube: state.youtube\n }\n\n void saveRedesSociais.save(saveParams)\n .then(() => notify.show('Sucesso! Os links foram salvos!'))\n .catch(handleError)\n }\n\n return (\n <>\n \n handleChange('phone', text)}\n leading={(props) => }\n label='Número do Telefone'\n />\n handleChange('whatsapp', text)}\n leading={(props) => }\n label='Whatsapp'\n />\n handleChange('facebook', text)}\n leading={(props) => }\n label='Link do Facebook'\n />\n handleChange('linkedin', text)}\n leading={(props) => }\n label='Link do Linkedin'\n />\n handleChange('instagram', text)}\n leading={(props) => }\n label='Link do Instagram'\n />\n handleChange('tiktok', text)}\n leading={(props) => }\n label='Link do Tiktok'\n />\n handleChange('telegram', text)}\n leading={(props) => }\n label='Link do Telegram'\n />\n \n
\n \n
\n \n )\n}\n","import { ForbiddenError, InvalidCredentialsError, UnexpectedError } from '@/domain/errors'\nimport { AuthenticationModel } from '@/domain/models'\nimport { AuthenticationParams, Authentication } from '@/domain/usecases'\nimport { HttpClient, HttpRequest, HttpStatusCode } from '@/data/protocols/http'\n\nexport class RemoteAuthentication implements Authentication {\n constructor (\n private readonly url: string,\n private readonly httpClient: HttpClient\n ) {}\n\n async auth (params: AuthenticationParams): Promise {\n const dataParams = {\n ...params,\n grant_type: 'password',\n portal: true\n }\n\n const authParams: HttpRequest = {\n url: `${this.url}/api/token`,\n method: 'post',\n body: dataParams,\n headers: {\n 'content-type': 'application/x-www-form-urlencoded'\n }\n }\n\n const { statusCode, body } = await this.httpClient.request(authParams)\n\n switch (statusCode) {\n case HttpStatusCode.ok: return body\n case HttpStatusCode.badRequest: throw new ForbiddenError(body?.error_description)\n case HttpStatusCode.unauthorized: throw new InvalidCredentialsError(body?.error_description)\n default: throw new UnexpectedError()\n }\n }\n}\n","import { AuthenticationAdminParams, AuthenticationAdminResult, AuthenticationAdmin } from '@/domain/usecases'\nimport { ForbiddenError, InvalidCredentialsError, UnexpectedError } from '@/domain/errors'\nimport { HttpClient, HttpRequest, HttpStatusCode } from '@/data/protocols/http'\nimport { AuthenticationModel } from '@/domain/models'\n\nexport class RemoteAuthenticationAdmin implements AuthenticationAdmin {\n constructor (\n private readonly url: string,\n private readonly identificadorAplicacao: string,\n private readonly httpClient: HttpClient\n ) {}\n\n async auth (params: AuthenticationAdminParams): Promise {\n const dataParams = {\n ...params,\n IdentificadorAplicacao: this.identificadorAplicacao\n }\n\n const authParams: HttpRequest = {\n url: `${this.url}/api/v1/autenticacao/autenticar`,\n method: 'post',\n body: dataParams,\n headers: {\n 'content-type': 'multipart/form-data'\n }\n }\n\n const { statusCode, body } = await this.httpClient.request(authParams)\n\n switch (statusCode) {\n case HttpStatusCode.ok: return this.mapToModel(body)\n case HttpStatusCode.forbidden: throw new ForbiddenError(body?.message)\n case HttpStatusCode.unauthorized: throw new InvalidCredentialsError(body?.message)\n default: throw new UnexpectedError()\n }\n }\n\n mapToModel (authenticationAdmin: AuthenticationAdminResult): AuthenticationModel {\n return {\n ...authenticationAdmin.data,\n access_token: authenticationAdmin.data.token\n }\n }\n}\n","import { GetUserByDocument, GetUserByDocumentParams } from '@/domain/usecases/'\nimport { HttpClient, HttpStatusCode } from '@/data/protocols/http'\nimport { AccessDeniedError, InvalidCredentialsError, UnexpectedError, UnexpectedResultFormatError } from '@/domain/errors'\nimport { UserModel } from '@/domain/models'\n\nexport class RemoteGetUser implements GetUserByDocument {\n constructor (\n private readonly url: string,\n private readonly httpCliente: HttpClient\n ) {}\n\n async getUsersByDocument (params: GetUserByDocumentParams): Promise {\n const { statusCode, body } = await this.httpCliente.request({\n method: 'post',\n url: `${this.url}/api/portal/acessofacilitado`,\n body: params\n })\n\n switch (statusCode) {\n case HttpStatusCode.ok:\n if (!body) {\n throw new UnexpectedResultFormatError()\n }\n if (!body.length) {\n throw new InvalidCredentialsError()\n }\n return body\n case HttpStatusCode.unauthorized: throw new AccessDeniedError()\n default: throw new UnexpectedError()\n }\n }\n}\n","import { HttpClient, HttpStatusCode } from '@/data/protocols/http'\nimport { AccessDeniedError, UnexpectedError } from '@/domain/errors'\nimport { ForgotPassword, ForgotPasswordParams } from '@/domain/usecases'\n\nexport class RemoteForgotPassword implements ForgotPassword {\n constructor (\n private readonly url: string,\n private readonly httpPostClient: HttpClient\n ) {}\n\n async requestAccess (params: ForgotPasswordParams): Promise {\n const httpResponse = await this.httpPostClient.request({\n method: 'post',\n url: `${this.url}/api/LoginPortalService`,\n params\n })\n\n switch (httpResponse.statusCode) {\n case HttpStatusCode.ok: return httpResponse.body\n case HttpStatusCode.unauthorized: throw new AccessDeniedError()\n default: throw new UnexpectedError()\n }\n }\n}\n","import { HttpClient, HttpStatusCode } from '@/data/protocols/http'\nimport { AccessDeniedError, UnexpectedError } from '@/domain/errors'\nimport { PortalLogout, PortalLogoutParams } from '@/domain/usecases'\n\nexport class RemotePortalLogout implements PortalLogout {\n constructor (\n private readonly url: string,\n private readonly httpPostClient: HttpClient\n ) {}\n\n async logout (params: PortalLogoutParams): Promise {\n const { statusCode } = await this.httpPostClient.request({\n method: 'post',\n url: `${this.url}/api/portal/RealizaLogoutPortal`,\n params\n })\n switch (statusCode) {\n case HttpStatusCode.ok: break\n case HttpStatusCode.unauthorized: throw new AccessDeniedError()\n default: throw new UnexpectedError()\n }\n }\n}\n","import { MetricsLogin, MetricsParams } from '@/domain/usecases'\nimport { HttpClient, HttpRequest } from '@/data/protocols/http'\n\nexport class RemoteMetricsLogin implements MetricsLogin {\n constructor (\n private readonly url: string,\n private readonly httpClient: HttpClient\n ) {}\n\n async register (params: MetricsParams): Promise {\n const authParams: HttpRequest = {\n url: `${this.url}/v2/acessos/logInOut`,\n method: 'post',\n body: {\n ...params,\n acao: 'LOGIN',\n plataforma: 'Portal Service'\n }\n }\n\n await this.httpClient.request(authParams)\n }\n}\n","import { MetricsLogoff, MetricsParams } from '@/domain/usecases'\nimport { HttpClient, HttpRequest } from '@/data/protocols/http'\n\nexport class RemoteMetricsLogoff implements MetricsLogoff {\n constructor (\n private readonly url: string,\n private readonly httpClient: HttpClient\n ) {}\n\n async register (params: MetricsParams): Promise {\n const authParams: HttpRequest = {\n url: `${this.url}/v2/acessos/logInOut`,\n method: 'post',\n body: {\n ...params,\n acao: 'LOGOFF',\n plataforma: 'Portal Service'\n }\n }\n\n await this.httpClient.request(authParams)\n }\n}\n","import { GetClientByCode, GetClientByCodeParams } from '@/domain/usecases/'\nimport { HttpClient, HttpStatusCode } from '@/data/protocols/http'\nimport { AccessDeniedError, UnexpectedError, UnexpectedResultFormatError } from '@/domain/errors'\nimport { ClientModel } from '@/domain/models'\n\nexport class RemoteGetClientByCode implements GetClientByCode {\n constructor (\n private readonly url: string,\n private readonly httpCliente: HttpClient\n ) {}\n\n async getByCode (params: GetClientByCodeParams): Promise {\n const { statusCode, body } = await this.httpCliente.request({\n method: 'get',\n url: `${this.url}/api/clientes`,\n params\n })\n\n switch (statusCode) {\n case HttpStatusCode.ok:\n if (!body) {\n throw new UnexpectedResultFormatError()\n }\n return body\n case HttpStatusCode.unauthorized: throw new AccessDeniedError()\n default: throw new UnexpectedError()\n }\n }\n}\n","import { GetClientContract, GetClientContractParams } from '@/domain/usecases/'\nimport { HttpClient, HttpStatusCode } from '@/data/protocols/http'\nimport { AccessDeniedError, UnexpectedError, UnexpectedResultFormatError } from '@/domain/errors'\nimport { ClientContractModel } from '@/domain/models'\n\nexport class RemoteGetClientContract implements GetClientContract {\n constructor (\n private readonly url: string,\n private readonly httpCliente: HttpClient\n ) {}\n\n async getContract (params: GetClientContractParams): Promise {\n const { statusCode, body } = await this.httpCliente.request({\n method: 'get',\n url: `${this.url}/api/portal/dados-contrato`,\n params\n })\n\n switch (statusCode) {\n case HttpStatusCode.ok:\n if (!body) {\n throw new UnexpectedResultFormatError()\n }\n return body\n case HttpStatusCode.unauthorized: throw new AccessDeniedError()\n default: throw new UnexpectedError()\n }\n }\n}\n","import { HttpClient, HttpStatusCode } from '@/data/protocols/http'\nimport { ForbiddenError, InvalidCredentialsError, SamePasswordError, UnexpectedError } from '@/domain/errors'\nimport { UpdatePassword, UpdatePasswordParams } from '@/domain/usecases'\n\nexport class RemoteUpdatePassword implements UpdatePassword {\n constructor (\n private readonly url: string,\n private readonly httpPostClient: HttpClient\n ) {}\n\n async update (params: UpdatePasswordParams): Promise {\n const { confirmacaoSenha, ...dataParams } = params\n\n if (dataParams.senhaAtual === dataParams.novaSenha) {\n throw new SamePasswordError()\n }\n\n const { statusCode, body } = await this.httpPostClient.request({\n method: 'post',\n url: `${this.url}/api/Clientes`,\n params: dataParams\n })\n\n switch (statusCode) {\n case HttpStatusCode.ok: break\n case HttpStatusCode.forbidden: throw new ForbiddenError(body as string)\n case HttpStatusCode.unauthorized: throw new InvalidCredentialsError()\n default: throw new UnexpectedError()\n }\n }\n}\n","import { GetCreditCard, GetCreditCardParams } from '@/domain/usecases/'\nimport { HttpClient, HttpStatusCode } from '@/data/protocols/http'\nimport { AccessDeniedError, UnexpectedError, UnexpectedResultFormatError } from '@/domain/errors'\nimport { CreditCardModel } from '@/domain/models'\n\nexport class RemoteGetCreditCard implements GetCreditCard {\n constructor (\n private readonly url: string,\n private readonly httpCliente: HttpClient\n ) {}\n\n async getByClient (params: GetCreditCardParams): Promise {\n const { statusCode, body } = await this.httpCliente.request({\n method: 'get',\n url: `${this.url}/api/portal/buscar-cartao-credito`,\n params\n })\n\n switch (statusCode) {\n case HttpStatusCode.ok:\n if (!body) {\n throw new UnexpectedResultFormatError()\n }\n body.expiracao = `${body.expiracao.split('/')[0]}/${body.expiracao.split('/')[1].substring(2)}`\n return body\n case HttpStatusCode.noContent: return null as unknown as CreditCardModel\n case HttpStatusCode.unauthorized: throw new AccessDeniedError()\n default: throw new UnexpectedError()\n }\n }\n}\n","import { HttpClient, HttpStatusCode } from '@/data/protocols/http'\nimport { AccessDeniedError, ForbiddenError, UnexpectedError, UnexpectedResultFormatError } from '@/domain/errors'\nimport { CreditCardModel } from '@/domain/models'\nimport { SaveCreditCard } from '@/domain/usecases'\n\nexport class RemoteSaveCreditCard implements SaveCreditCard {\n constructor (\n private readonly url: string,\n private readonly httpCliente: HttpClient\n ) {}\n\n async save (params: CreditCardModel): Promise {\n const { expiracao, ...dataParams } = params\n\n const { statusCode, body } = await this.httpCliente.request({\n method: 'post',\n url: `${this.url}/api/portal/gravar-cartao-credito`,\n body: {\n ...dataParams,\n expiracao: this.formatExpiration(expiracao)\n }\n })\n\n switch (statusCode) {\n case HttpStatusCode.ok:\n if (!body) {\n throw new UnexpectedResultFormatError()\n }\n return body\n case HttpStatusCode.forbidden: throw new ForbiddenError(body)\n case HttpStatusCode.unauthorized: throw new AccessDeniedError()\n default: throw new UnexpectedError()\n }\n }\n\n formatExpiration (expiration: string): string {\n const currentYear = new Date()\n .getFullYear()\n .toString()\n .substring(0, 2)\n\n return `${expiration.split('/')[0]}/${currentYear}${expiration.split('/')[1]}`\n }\n}\n","import { HttpClient, HttpStatusCode } from '@/data/protocols/http'\nimport { AccessDeniedError, ForbiddenError, UnexpectedError, UnexpectedResultFormatError } from '@/domain/errors'\nimport { PayWithCreditCard, PayWithCreditCardParams } from '@/domain/usecases'\n\nexport class RemotePayWithCreditCard implements PayWithCreditCard {\n constructor (\n private readonly url: string,\n private readonly httpCliente: HttpClient\n ) {}\n\n async pay (params: PayWithCreditCardParams): Promise {\n const { statusCode, body } = await this.httpCliente.request({\n method: 'post',\n url: `${this.url}/api/pagamentocartao`,\n body: {\n duplicata: params.duplicata,\n cartao: {\n ...params.cartao,\n expiracao: this.formatExpiration(params.cartao.expiracao)\n }\n }\n })\n\n switch (statusCode) {\n case HttpStatusCode.ok:\n if (!body) {\n throw new UnexpectedResultFormatError()\n }\n return body\n case HttpStatusCode.notAcceptable: throw new ForbiddenError(body)\n case HttpStatusCode.unauthorized: throw new AccessDeniedError()\n default: throw new UnexpectedError()\n }\n }\n\n formatExpiration (expiration: string): string {\n const currentYear = new Date()\n .getFullYear()\n .toString()\n .substring(0, 2)\n\n return `${expiration.split('/')[0]}/${currentYear}${expiration.split('/')[1]}`\n }\n}\n","import { TicketModel } from '@/domain/models'\nimport { GetTickets, GetTicketsParams } from '@/domain/usecases'\nimport { AccessDeniedError, ForbiddenError, UnexpectedError, UnexpectedResultFormatError } from '@/domain/errors'\nimport { HttpClient, HttpRequest, HttpStatusCode } from '@/data/protocols'\n\nexport class RemoteGetTickets implements GetTickets {\n constructor (\n private readonly url: string,\n private readonly httpClient: HttpClient\n ) {}\n\n async get (params: GetTicketsParams): Promise {\n const request: HttpRequest = {\n url: `${this.url}/api/lista-boletos`,\n method: 'get',\n params\n }\n\n const { statusCode, body } = await this.httpClient.request(request)\n\n switch (statusCode) {\n case HttpStatusCode.ok:\n if (!body) {\n throw new UnexpectedResultFormatError()\n }\n return body as TicketModel[]\n case HttpStatusCode.unauthorized: throw new AccessDeniedError()\n case HttpStatusCode.forbidden: throw new ForbiddenError(body as string)\n default: throw new UnexpectedError()\n }\n }\n}\n","import { GetTicketPix, GetTicketPixParams } from '@/domain/usecases'\nimport { AccessDeniedError, ForbiddenError, UnexpectedError, UnexpectedResultFormatError } from '@/domain/errors'\nimport { HttpClient, HttpRequest, HttpStatusCode } from '@/data/protocols'\n\nexport class RemoteGetTicketPix implements GetTicketPix {\n constructor (\n private readonly url: string,\n private readonly httpClient: HttpClient\n ) {}\n\n async getPix (params: GetTicketPixParams): Promise {\n const request: HttpRequest = {\n url: `${this.url}/api/boleto/pix`,\n method: 'get',\n params\n }\n\n const { statusCode, body } = await this.httpClient.request(request)\n\n switch (statusCode) {\n case HttpStatusCode.ok:\n if (!body) {\n throw new UnexpectedResultFormatError()\n }\n return body\n case HttpStatusCode.forbidden: throw new ForbiddenError(body)\n case HttpStatusCode.unauthorized: throw new AccessDeniedError()\n default: throw new UnexpectedError()\n }\n }\n}\n","import { GenerateBankSlip, GenerateBankSlipParams } from '@/domain/usecases'\nimport { AccessDeniedError, UnexpectedError, UnexpectedResultFormatError } from '@/domain/errors'\nimport { HttpClient, HttpRequest, HttpStatusCode } from '@/data/protocols'\nimport { BANK } from '@/domain/models'\n\nexport const TEMP_FOLDER_REPORTS_INTEGRA = 'TempRelatorios'\n\nexport class RemoteGenerateBankSlip implements GenerateBankSlip {\n constructor (\n private readonly url: string,\n private readonly httpClient: HttpClient\n ) {}\n\n async generate (params: GenerateBankSlipParams): Promise {\n const request: HttpRequest = {\n url: `${this.url}/api/boletos`,\n method: 'get',\n params\n }\n\n const { statusCode, body } = await this.httpClient.request(request)\n\n switch (statusCode) {\n case HttpStatusCode.ok:\n if (!body || typeof body !== 'string') {\n throw new UnexpectedResultFormatError()\n }\n\n if ([BANK.BoletoInside, BANK.CartaoInside].includes(params.codBanco)) {\n return body\n }\n return `/${TEMP_FOLDER_REPORTS_INTEGRA}/${body}`\n case HttpStatusCode.unauthorized: throw new AccessDeniedError()\n default: throw new UnexpectedError()\n }\n }\n}\n","import { GenerateBankSlip, GenerateBankSlipParams, GenerateInsideBankSlip, GenerateInsideBankSlipParams } from '@/domain/usecases'\nimport { DateAdapter } from '@/data/protocols'\n\nexport class RemoteGenerateInsideBankSlip implements GenerateInsideBankSlip {\n constructor (\n private readonly dateAdapter: DateAdapter,\n private readonly generateBankSlip: GenerateBankSlip\n ) {}\n\n async generate (params: GenerateInsideBankSlipParams): Promise {\n const { registrado, linkBoleto, dtVencimento, ...originalGenerateParams } = params\n const generateParams: GenerateBankSlipParams = originalGenerateParams\n\n if (registrado) {\n const dates = {\n startDate: this.dateAdapter.today(),\n endDate: this.dateAdapter.parse(dtVencimento)\n }\n\n if (this.dateAdapter.diffInDays(dates) <= GenerateInsideBankSlip.RN.TOTAL_DAYS_BEFORE_NEW_UPDATE) {\n generateParams.original = true\n }\n } else if (linkBoleto) {\n generateParams.original = true\n }\n\n return await this.generateBankSlip.generate(generateParams)\n }\n}\n","import { GenerateBankSlip, OpenBankSlip, OpenBankSlipParams, GenerateInsideBankSlip } from '@/domain/usecases'\nimport { BANK } from '@/domain/models'\n\nexport class RemoteOpenBankSlip implements OpenBankSlip {\n constructor (\n private readonly generateBankSlip: GenerateBankSlip,\n private readonly generateInsideBankSlip: GenerateInsideBankSlip\n ) {}\n\n async openPDF (params: OpenBankSlipParams): Promise {\n let bankSlipUrl: string = ''\n\n if ([BANK.BoletoInside, BANK.CartaoInside].includes(params.codBanco)) {\n bankSlipUrl = await this.generateInsideBankSlip.generate(params)\n } else {\n if (params.registrado) {\n bankSlipUrl = {\n [BANK.Caixa]: 'https://bloquetoexpresso.caixa.gov.br/bloquetoexpresso/index.jsp',\n [BANK.Sicredi]: 'https://www.sicredi.com.br/segundaviaboleto/',\n [BANK.Itau]: 'https://www.itau.com.br/servicos/boletos/atualizar/',\n [BANK.Bradesco]: 'https://www.ib12.bradesco.com.br/ibpfsegundaviaboleto/segundaViaBoletoPesquisarLinhaDigitavel.do',\n [BANK.Santander]: 'https://www.santander.com.br/2-via-boleto',\n [BANK.Sicoob]: 'http://www.sicoob.com.br/segunda-via-de-boleto',\n [BANK.Banestes]: 'https://wwws.banestes.com.br/formularios_consultas/servicos/serv_boletos.htm',\n [BANK.BoletoInside]: '',\n [BANK.CartaoInside]: ''\n }[params.codBanco]\n } else {\n bankSlipUrl = await this.generateBankSlip.generate(params)\n }\n }\n\n window.open(bankSlipUrl, '_blank')\n }\n}\n","import { HttpClient, HttpRequest, HttpStatusCode } from '@/data/protocols'\nimport { AccessDeniedError, ResultWithoutRecordsError, UnexpectedError, UnexpectedResultFormatError } from '@/domain/errors'\nimport { OpenStatementOfDebts, OpenStatementOfDebtsParams } from '@/domain/usecases'\n\nexport class RemoteOpenStatementOfDebts implements OpenStatementOfDebts {\n constructor (\n private readonly url: string,\n private readonly httpClient: HttpClient\n ) {}\n\n async openPaymentReport (params: OpenStatementOfDebtsParams): Promise {\n const request: HttpRequest = {\n url: `${this.url}/api/portal/imprimir-quitacao`,\n method: 'post',\n params\n }\n\n const { statusCode, body } = await this.httpClient.request(request)\n\n switch (statusCode) {\n case HttpStatusCode.ok:\n if (!body) {\n throw new UnexpectedResultFormatError()\n }\n window.open?.(`/${OpenStatementOfDebts.RN.FOLDER_DEFAULT_PDF}/${body}`, '_blank')\n break\n case HttpStatusCode.noContent: throw new ResultWithoutRecordsError()\n case HttpStatusCode.unauthorized: throw new AccessDeniedError()\n default: throw new UnexpectedError()\n }\n }\n}\n","import { ThemeModel } from '@/domain/models'\nimport { GetTheme } from '@/domain/usecases'\nimport { AccessDeniedError, UnexpectedError, UnexpectedResultFormatError } from '@/domain/errors'\nimport { HttpClient, HttpRequest, HttpStatusCode } from '@/data/protocols'\n\nexport class RemoteGetTheme implements GetTheme {\n constructor (\n private readonly url: string,\n private readonly httpClient: HttpClient\n ) { }\n\n async get (): Promise {\n const request: HttpRequest = {\n url: `${this.url}/api/portal/tema`,\n method: 'get'\n }\n\n const { statusCode, body } = await this.httpClient.request(request)\n\n switch (statusCode) {\n case HttpStatusCode.ok:\n if (!body) {\n throw new UnexpectedResultFormatError()\n }\n return body\n case HttpStatusCode.unauthorized: throw new AccessDeniedError()\n default: throw new UnexpectedError()\n }\n }\n}\n","import { ConfigModel } from '@/domain/models'\nimport { AccessDeniedError, UnexpectedError, UnexpectedResultFormatError } from '@/domain/errors'\nimport { HttpClient, HttpRequest, HttpStatusCode } from '@/data/protocols'\nimport { GetUnitConfig, GetUnitConfigParams } from '@/domain/usecases'\n\nexport class RemoteGetUnitConfig implements GetUnitConfig {\n constructor (\n private readonly url: string,\n private readonly httpClient: HttpClient\n ) { }\n\n async getAll (params: GetUnitConfigParams): Promise {\n const request: HttpRequest = {\n url: `${this.url}/api/portal/configs`,\n method: 'get',\n params\n }\n\n const { statusCode, body } = await this.httpClient.request(request)\n\n switch (statusCode) {\n case HttpStatusCode.ok:\n if (!body) {\n throw new UnexpectedResultFormatError()\n }\n return body\n case HttpStatusCode.unauthorized: throw new AccessDeniedError()\n default: throw new UnexpectedError()\n }\n }\n}\n","import { Unidade } from '@/domain/models'\nimport { GetUnits } from '@/domain/usecases'\nimport { AccessDeniedError, UnexpectedError, UnexpectedResultFormatError } from '@/domain/errors'\nimport { HttpClient, HttpRequest, HttpStatusCode } from '@/data/protocols'\n\nexport class RemoteGetUnits implements GetUnits {\n constructor (\n private readonly url: string,\n private readonly httpClient: HttpClient\n ) { }\n\n async getAll (): Promise {\n const request: HttpRequest = {\n url: `${this.url}/api/portal/unidades`,\n method: 'get'\n }\n\n const { statusCode, body } = await this.httpClient.request(request)\n\n switch (statusCode) {\n case HttpStatusCode.ok:\n if (typeof body !== typeof []) {\n throw new UnexpectedResultFormatError()\n }\n return body\n case HttpStatusCode.unauthorized: throw new AccessDeniedError()\n default: throw new UnexpectedError()\n }\n }\n}\n","import { GetProspectConfigs } from '@/domain/usecases'\nimport { UnexpectedError, UnexpectedResultFormatError } from '@/domain/errors'\nimport { HttpClient, HttpRequest, HttpStatusCode } from '@/data/protocols'\nimport { ProspectConfigsModel } from '@/domain/models'\n\nexport class RemoteGetProspectConfigs implements GetProspectConfigs {\n constructor (\n private readonly url: string,\n private readonly httpClient: HttpClient\n ) { }\n\n async getAll (): Promise {\n const request: HttpRequest = {\n url: `${this.url}/api/portal/configuracoes-prospect`,\n method: 'get'\n }\n\n const { statusCode, body } = await this.httpClient.request(request)\n\n switch (statusCode) {\n case HttpStatusCode.ok:\n if (!body) {\n throw new UnexpectedResultFormatError()\n }\n return body\n default: throw new UnexpectedError()\n }\n }\n}\n","import { SaveTheme, SaveThemeParams } from '@/domain/usecases'\nimport { AccessDeniedError, ForbiddenError, UnexpectedError, UnexpectedResultFormatError } from '@/domain/errors'\nimport { HttpClient, HttpRequest, HttpStatusCode } from '@/data/protocols'\n\nexport class RemoteSaveTheme implements SaveTheme {\n constructor (\n private readonly url: string,\n private readonly httpClient: HttpClient\n ) { }\n\n async save (params: SaveThemeParams): Promise {\n const request: HttpRequest = {\n url: `${this.url}/api/portal/tema`,\n method: 'post',\n body: params\n }\n\n const { statusCode, body } = await this.httpClient.request(request)\n\n switch (statusCode) {\n case HttpStatusCode.ok:\n if (!body) {\n throw new UnexpectedResultFormatError()\n }\n return body\n case HttpStatusCode.forbidden: throw new ForbiddenError(body)\n case HttpStatusCode.unauthorized: throw new AccessDeniedError()\n default: throw new UnexpectedError()\n }\n }\n}\n","import { SaveUnitConfig, SaveUnitConfigParams } from '@/domain/usecases/'\nimport { AccessDeniedError, InvalidRelationCompany, UnexpectedError } from '@/domain/errors'\nimport { HttpClient, HttpStatusCode } from '@/data/protocols/http'\n\nexport class RemoteSaveUnitConfig implements SaveUnitConfig {\n constructor (\n private readonly url: string,\n private readonly httpClient: HttpClient\n ) { }\n\n async save (config: SaveUnitConfigParams): Promise {\n const { statusCode, body } = await this.httpClient.request({\n method: 'put',\n url: `${this.url}/api/portal/config`,\n body: config\n })\n\n switch (statusCode) {\n case HttpStatusCode.ok: return body as boolean\n case HttpStatusCode.forbidden: throw new InvalidRelationCompany(body as string)\n case HttpStatusCode.unauthorized: throw new AccessDeniedError()\n default: throw new UnexpectedError()\n }\n }\n}\n","import { ProspectRegistration, ProspectRegistrationParams, ProspectRegistrationResult } from '@/domain/usecases'\nimport { ForbiddenError, UnexpectedError, UnexpectedResultFormatError } from '@/domain/errors'\nimport { HttpClient, HttpRequest, HttpStatusCode } from '@/data/protocols'\n\nexport class RemoteProspectRegistration implements ProspectRegistration {\n constructor (\n private readonly url: string,\n private readonly httpClient: HttpClient\n ) { }\n\n async register (params: ProspectRegistrationParams): Promise {\n const { email, ...bodyParams } = params\n\n const request: HttpRequest = {\n url: `${this.url}/api/portal/gravar-prospect`,\n method: 'post',\n params: {\n email,\n origemSistema: 'P'\n },\n body: {\n ...bodyParams,\n fichaCadastral: 'Prospect cadastrado através do Portal do Cliente.',\n status: 'A',\n usuario: 'PortalService'\n }\n }\n\n const { statusCode, body } = await this.httpClient.request(request)\n\n switch (statusCode) {\n case HttpStatusCode.ok:\n if (!body) {\n throw new UnexpectedResultFormatError()\n }\n return (body as ProspectRegistrationResult).codProspect\n case HttpStatusCode.forbidden: throw new ForbiddenError(body as string)\n default: throw new UnexpectedError()\n }\n }\n}\n","import { TestEmail, TestEmailParams } from '@/domain/usecases'\nimport { AccessDeniedError, UnexpectedError } from '@/domain/errors'\nimport { HttpClient, HttpStatusCode } from '@/data/protocols/http'\n\nexport class RemoteTestEmail implements TestEmail {\n constructor (\n private readonly url: string,\n private readonly httpClient: HttpClient\n ) { }\n\n async test (params: TestEmailParams): Promise {\n const { statusCode, body } = await this.httpClient.request({\n method: 'post',\n url: `${this.url}/api/portal/testaemail`,\n body: params\n })\n\n switch (statusCode) {\n case HttpStatusCode.ok: return body\n case HttpStatusCode.unauthorized: throw new AccessDeniedError()\n default: throw new UnexpectedError()\n }\n }\n}\n","import { FileModel } from '@/domain/models'\nimport { UploadFile, UploadFileParams } from '@/domain/usecases'\nimport { AccessDeniedError, UnexpectedError } from '@/domain/errors'\nimport { HttpClient, HttpStatusCode } from '@/data/protocols/http'\n\nexport class RemoteUploadFile implements UploadFile {\n constructor (\n private readonly url: string,\n private readonly httpClient: HttpClient\n ) { }\n\n async upload (params: UploadFileParams): Promise {\n const formData = new FormData()\n formData.append('file', params.file)\n formData.append('name', params.scope)\n\n const { statusCode, body } = await this.httpClient.request({\n method: 'post',\n url: `${this.url}/api/portal/image`,\n body: formData,\n headers: {\n ContentType: 'multipart/form-data'\n }\n })\n\n switch (statusCode) {\n case HttpStatusCode.ok: return body\n case HttpStatusCode.unauthorized: throw new AccessDeniedError()\n default: throw new UnexpectedError()\n }\n }\n}\n","import { SaveProspectConfigs, SaveProspectConfigsParams } from '@/domain/usecases/'\nimport { AccessDeniedError, ForbiddenError, UnexpectedError } from '@/domain/errors'\nimport { HttpClient, HttpStatusCode } from '@/data/protocols/http'\n\nexport class RemoteSaveProspectConfig implements SaveProspectConfigs {\n constructor (\n private readonly url: string,\n private readonly httpClient: HttpClient\n ) { }\n\n async save (config: SaveProspectConfigsParams): Promise {\n const { statusCode, body } = await this.httpClient.request({\n method: 'post',\n url: `${this.url}/api/portal/configuracoes-prospect`,\n body: config\n })\n\n switch (statusCode) {\n case HttpStatusCode.ok: return\n case HttpStatusCode.forbidden: throw new ForbiddenError(body as unknown as string)\n case HttpStatusCode.unauthorized: throw new AccessDeniedError()\n default: throw new UnexpectedError()\n }\n }\n}\n","import { GetEventsSettings, GetEventsSettingsParams } from '@/domain/usecases'\nimport { AccessDeniedError, UnexpectedError, UnexpectedResultFormatError } from '@/domain/errors'\nimport { HttpClient, HttpRequest, HttpStatusCode } from '@/data/protocols'\nimport { EventsSettingsModel } from '@/domain/models'\n\nexport class RemoteGetEventsSettings implements GetEventsSettings {\n constructor (\n private readonly url: string,\n private readonly httpClient: HttpClient\n ) { }\n\n async getAll (params: GetEventsSettingsParams): Promise {\n const request: HttpRequest = {\n url: `${this.url}/api/portal/sigmadesk/listar-eventos`,\n method: 'get',\n params\n }\n\n const { statusCode, body } = await this.httpClient.request(request)\n\n switch (statusCode) {\n case HttpStatusCode.ok:\n if (!body) {\n throw new UnexpectedResultFormatError()\n }\n return body\n case HttpStatusCode.unauthorized: throw new AccessDeniedError()\n default: throw new UnexpectedError()\n }\n }\n}\n","import { ShowEvents, ShowEventsParams } from '@/domain/usecases'\nimport { AccessDeniedError, ForbiddenError, UnexpectedError, UnexpectedResultFormatError } from '@/domain/errors'\nimport { HttpClient, HttpRequest, HttpStatusCode } from '@/data/protocols'\n\nexport class RemoteShowEvents implements ShowEvents {\n constructor (\n private readonly url: string,\n private readonly httpClient: HttpClient\n ) { }\n\n async show (params: ShowEventsParams): Promise {\n const request: HttpRequest = {\n url: `${this.url}/api/portal/sigmadesk/gravar-eventos-exibidos`,\n method: 'post',\n body: params\n }\n\n const { statusCode, body } = await this.httpClient.request(request)\n\n switch (statusCode) {\n case HttpStatusCode.ok:\n if (!body) {\n throw new UnexpectedResultFormatError()\n }\n return body\n case HttpStatusCode.unauthorized: throw new AccessDeniedError()\n case HttpStatusCode.forbidden: throw new ForbiddenError(body)\n default: throw new UnexpectedError()\n }\n }\n}\n","import { GetSigmaDeskConnections } from '@/domain/usecases'\nimport { AccessDeniedError, UnexpectedError, UnexpectedResultFormatError } from '@/domain/errors'\nimport { HttpClient, HttpRequest, HttpStatusCode } from '@/data/protocols'\nimport { GenericSigmaDeskConnectionModel, SigmaDeskConnectionModel } from '@/domain/models'\n\nexport class RemoteGetSigmaDeskConnections implements GetSigmaDeskConnections {\n constructor (\n private readonly url: string,\n private readonly httpClient: HttpClient\n ) { }\n\n async getAll (): Promise {\n const request: HttpRequest = {\n url: `${this.url}/api/portal/sigmadesk/listar-conexoes`,\n method: 'get'\n }\n\n const { statusCode, body } = await this.httpClient.request(request)\n\n switch (statusCode) {\n case HttpStatusCode.ok:\n if (!body) {\n throw new UnexpectedResultFormatError()\n }\n return this.mapToGeneric(body)\n case HttpStatusCode.unauthorized: throw new AccessDeniedError()\n default: throw new UnexpectedError()\n }\n }\n\n mapToGeneric (connections: SigmaDeskConnectionModel[]): GenericSigmaDeskConnectionModel[] {\n return connections.map((connection: SigmaDeskConnectionModel) => {\n return {\n id: connection.codigo,\n descricao: `${connection.banco} - ${connection.idSigma}`,\n isSelected: false\n }\n })\n }\n}\n","import { HttpClient, HttpStatusCode } from '@/data/protocols/http'\nimport { AccessDeniedError, UnexpectedError, UnexpectedResultFormatError } from '@/domain/errors'\nimport { NFResultModel } from '@/domain/models'\nimport { GetNFs, GetNFsParams } from '@/domain/usecases'\n\nexport class RemoteGetNFs implements GetNFs {\n constructor (\n private readonly url: string,\n private readonly httpGetClient: HttpClient\n ) {}\n\n async get (params: GetNFsParams): Promise {\n const { body, statusCode } = await this.httpGetClient.request({\n url: `${this.url}/api/NotasFiscais`,\n method: 'get',\n params,\n headers:\n {\n 'content-type': 'application/json',\n 'cache-control': 'no-cache'\n }\n })\n\n switch (statusCode) {\n case HttpStatusCode.ok:\n if (!body) {\n throw new UnexpectedResultFormatError()\n }\n\n return body\n case HttpStatusCode.unauthorized: throw new AccessDeniedError()\n default: throw new UnexpectedError()\n }\n }\n}\n","import { HttpClient, HttpStatusCode } from '@/data/protocols/http'\nimport { AccessDeniedError, ResultWithoutRecordsError, UnexpectedError } from '@/domain/errors'\nimport { OpenDanfe, OpenDanfeParams } from '@/domain/usecases'\n\nexport class RemoteOpenDanfe implements OpenDanfe {\n constructor (\n private readonly url: string,\n private readonly httpGetClient: HttpClient\n ) {}\n\n async open (params: OpenDanfeParams): Promise {\n const { body, statusCode } = await this.httpGetClient.request({\n url: `${this.url}/api/portal/gerar-danfe`,\n method: 'post',\n body: params\n })\n\n switch (statusCode) {\n case HttpStatusCode.ok:\n if (!body) {\n throw new ResultWithoutRecordsError()\n }\n window.open(`/${OpenDanfe.RN.FOLDER_DEFAULT_PDF_DANFE}/${params.cliCodigo}/${body}`, '_blank')\n break\n case HttpStatusCode.unauthorized: throw new AccessDeniedError()\n default: throw new UnexpectedError()\n }\n }\n}\n","import { AccessDeniedError, ResultWithoutRecordsError, UnexpectedError } from '@/domain/errors'\nimport { OpenNfse, OpenNfseParams } from '@/domain/usecases'\nimport { HttpClient, HttpStatusCode } from '@/data/protocols/http'\n\nexport class RemoteOpenNfse implements OpenNfse {\n constructor (\n private readonly url: string,\n private readonly httpGetClient: HttpClient\n ) {}\n\n async open (params: OpenNfseParams): Promise {\n const { linkAutenticidade, ...dataParams } = params\n\n if (linkAutenticidade) {\n window.open(linkAutenticidade, '_blank')\n return\n } else if (!dataParams.utilizarDevExpress) {\n return\n }\n\n const { body, statusCode } = await this.httpGetClient.request({\n url: `${this.url}/api/EspelhoNotaFiscal`,\n method: 'get',\n params: {\n ...dataParams,\n producao: true\n }\n })\n\n switch (statusCode) {\n case HttpStatusCode.ok:\n if (!body) {\n throw new ResultWithoutRecordsError()\n }\n\n window.open(`/${OpenNfse.RN.FOLDER_DEFAULT_NFSE}/${body}`, '_blank')\n break\n case HttpStatusCode.unauthorized: throw new AccessDeniedError()\n default: throw new UnexpectedError()\n }\n }\n}\n","import { HttpClient, HttpStatusCode } from '@/data/protocols/http'\nimport { AccessDeniedError, ResultWithoutRecordsError, UnexpectedError } from '@/domain/errors'\nimport { OpenLeaseReceipt, OpenLeaseReceiptParams } from '@/domain/usecases'\n\nexport class RemoteOpenLeaseReceipt implements OpenLeaseReceipt {\n constructor (\n private readonly url: string,\n private readonly httpGetClient: HttpClient\n ) {}\n\n async open (params: OpenLeaseReceiptParams): Promise {\n const { body, statusCode } = await this.httpGetClient.request({\n url: `${this.url}/api/portal/gerar-recibo-locacao`,\n method: 'get',\n params\n })\n\n switch (statusCode) {\n case HttpStatusCode.ok:\n if (!body) {\n throw new ResultWithoutRecordsError()\n }\n\n window.open(`/${OpenLeaseReceipt.RN.FOLDER_DEFAULT_LEASE_RECEIPT}/${body}`, '_blank')\n break\n case HttpStatusCode.unauthorized: throw new AccessDeniedError()\n default: throw new UnexpectedError()\n }\n }\n}\n","import { ServiceOrderModality, ServiceOrderPriority, ServiceOrderStatus } from '@/domain/models'\nimport { AddNewOs, AddNewOsParams } from '@/domain/usecases'\nimport { ForbiddenError, AccessDeniedError, UnexpectedError, UnexpectedResultFormatError } from '@/domain/errors'\nimport { HttpClient, HttpRequest, HttpStatusCode } from '@/data/protocols'\n\nexport class RemoteAddNewOs implements AddNewOs {\n constructor (\n private readonly url: string,\n private readonly httpClient: HttpClient\n ) {}\n\n async add (params: AddNewOsParams): Promise {\n const bodyParams = {\n ...params,\n avisoViagem: false,\n status: ServiceOrderStatus.Aberta,\n tipo: ServiceOrderModality.ManutencaoCorretiva,\n prioridade: ServiceOrderPriority.Normal,\n codEndereco: 0\n }\n\n const request: HttpRequest = {\n url: `${this.url}/api/os`,\n method: 'post',\n body: bodyParams\n }\n\n const { statusCode, body } = await this.httpClient.request(request)\n\n switch (statusCode) {\n case HttpStatusCode.ok:\n if (!body) {\n throw new UnexpectedResultFormatError()\n }\n return body as number\n case HttpStatusCode.forbidden: throw new ForbiddenError(body as string)\n case HttpStatusCode.unauthorized: throw new AccessDeniedError()\n default: throw new UnexpectedError()\n }\n }\n}\n","import { ServiceOrderModality, ServiceOrderPriority, ServiceOrderStatus } from '@/domain/models'\nimport { AddTravelAlertOs, AddTravelAlertOsParams } from '@/domain/usecases'\nimport { ForbiddenError, AccessDeniedError, UnexpectedError, UnexpectedResultFormatError } from '@/domain/errors'\nimport { HttpClient, HttpRequest, HttpStatusCode } from '@/data/protocols'\nimport { TravelAlertBuilder } from '@/data/builders'\n\nexport class RemoteAddTravelAlertOs implements AddTravelAlertOs {\n constructor (\n private readonly url: string,\n private readonly httpClient: HttpClient,\n private readonly travelAlertBuilder: TravelAlertBuilder\n ) {}\n\n async add (params: AddTravelAlertOsParams): Promise {\n const observacoes = this.travelAlertBuilder\n .setDates(params.dataSaida, params.horaSaida, params.dataRetorno, params.horaRetorno)\n .requester(params.solicitante)\n .emailRequester(params.email)\n .phone1Requester(params.telefone1)\n .phone2Requester(params.telefone2)\n .addResponsibles(params.chavesSomenteComCentral, params.responsaveisChave)\n .addAuthorized(params.possuiAutorizados, params.autorizados)\n .addVehicles(params.possuiVeiculosCuidadosCentral, params.veiculos)\n .addRecommendations(params.recomendacoes)\n .build()\n\n const bodyParams = {\n cliente: params.cliente,\n empresa: params.empresa,\n modalidade: params.modalidade,\n solicitante: params.solicitante,\n status: ServiceOrderStatus.Aberta,\n tipo: ServiceOrderModality.ManutencaoCorretiva,\n prioridade: ServiceOrderPriority.Normal,\n avisoViagem: true,\n observacoes\n }\n\n const request: HttpRequest = {\n url: `${this.url}/api/os`,\n method: 'post',\n body: bodyParams\n }\n\n const { statusCode, body } = await this.httpClient.request(request)\n\n switch (statusCode) {\n case HttpStatusCode.ok:\n if (!body) {\n throw new UnexpectedResultFormatError()\n }\n return body as number\n case HttpStatusCode.forbidden: throw new ForbiddenError(body as string)\n case HttpStatusCode.unauthorized: throw new AccessDeniedError()\n default: throw new UnexpectedError()\n }\n }\n}\n","import { ServiceOrderResult } from '@/domain/models'\nimport { GetServiceOrders, GetServiceOrdersParams } from '@/domain/usecases'\nimport { AccessDeniedError, ForbiddenError, UnexpectedError, UnexpectedResultFormatError } from '@/domain/errors'\nimport { HttpClient, HttpRequest, HttpStatusCode } from '@/data/protocols'\n\nexport class RemoteGetServiceOrders implements GetServiceOrders {\n constructor (\n private readonly url: string,\n private readonly httpClient: HttpClient\n ) {}\n\n async get (params: GetServiceOrdersParams): Promise {\n const request: HttpRequest = {\n url: `${this.url}/api/portal/lista-oss`,\n method: 'get',\n params\n }\n\n const { statusCode, body } = await this.httpClient.request(request)\n\n switch (statusCode) {\n case HttpStatusCode.ok:\n if (!body) {\n throw new UnexpectedResultFormatError()\n }\n\n return body as ServiceOrderResult\n case HttpStatusCode.unauthorized: throw new AccessDeniedError()\n case HttpStatusCode.forbidden: throw new ForbiddenError(body as string)\n default: throw new UnexpectedError()\n }\n }\n}\n","import { OsAttendanceModel } from '@/domain/models'\nimport { GetOsAttendance, GetOsAttendanceParams } from '@/domain/usecases'\nimport { HttpClient, HttpRequest, HttpStatusCode } from '@/data/protocols'\nimport { AccessDeniedError, UnexpectedError, UnexpectedResultFormatError } from '@/domain/errors'\n\nexport class RemoteGetOsAttendance implements GetOsAttendance {\n constructor (\n private readonly url: string,\n private readonly httpClient: HttpClient\n ) {}\n\n async getAttendences (params: GetOsAttendanceParams): Promise {\n const request: HttpRequest = {\n url: `${this.url}/api/osatendimentos`,\n method: 'get',\n params\n }\n\n const { statusCode, body } = await this.httpClient.request(request)\n\n switch (statusCode) {\n case HttpStatusCode.ok:\n if (!body) {\n throw new UnexpectedResultFormatError()\n }\n\n return body\n case HttpStatusCode.unauthorized: throw new AccessDeniedError()\n default: throw new UnexpectedError()\n }\n }\n}\n","import { ServiceOrderDetailModel } from '@/domain/models'\nimport { GetServiceOrderDetailParams, GetServiceOrderDetail } from '@/domain/usecases'\nimport { HttpClient, HttpRequest, HttpStatusCode } from '@/data/protocols'\nimport { AccessDeniedError, UnexpectedError, UnexpectedResultFormatError } from '@/domain/errors'\n\nexport class RemoteGetServiceOrderDetail implements GetServiceOrderDetail {\n constructor (\n private readonly url: string,\n private readonly httpClient: HttpClient\n ) {}\n\n async getDetail (params: GetServiceOrderDetailParams): Promise {\n const request: HttpRequest = {\n url: `${this.url}/api/os/detalhes`,\n method: 'get',\n params\n }\n\n const { statusCode, body } = await this.httpClient.request(request)\n\n switch (statusCode) {\n case HttpStatusCode.ok:\n if (!body) {\n throw new UnexpectedResultFormatError()\n }\n\n return body\n case HttpStatusCode.unauthorized: throw new AccessDeniedError()\n default: throw new UnexpectedError()\n }\n }\n}\n","import { HttpClient, HttpRequest, HttpStatusCode } from '@/data/protocols'\nimport { AccessDeniedError, UnexpectedError, UnexpectedResultFormatError } from '@/domain/errors'\nimport { RedesSociaisModel } from '@/domain/models'\nimport { GetRedesSociais } from '@/domain/usecases/redes-sociais/get-redes-sociais'\n\nexport class RemoteGetRedesSociais implements GetRedesSociais {\n constructor (\n private readonly url: string,\n private readonly httpClient: HttpClient\n ) {}\n\n async getRedesSociais (): Promise {\n const authParams: HttpRequest = {\n url: `${this.url}/api/Portal/LinksRedesSociais`,\n method: 'get',\n headers: {\n 'content-type': 'application/x-www-form-urlencoded'\n }\n }\n\n const { statusCode, body } = await this.httpClient.request(authParams)\n\n switch (statusCode) {\n case HttpStatusCode.ok:\n if (!body) {\n throw new UnexpectedResultFormatError()\n }\n return body\n case HttpStatusCode.unauthorized: throw new AccessDeniedError()\n default: throw new UnexpectedError()\n }\n }\n}\n","import { RedesSociaisModel } from '@/domain/models'\nimport { SaveRedesSociais, SaveRedesSociaisParams } from '@/domain/usecases/'\nimport { AccessDeniedError, UnexpectedError, UnexpectedResultFormatError } from '@/domain/errors'\nimport { HttpClient, HttpRequest, HttpStatusCode } from '@/data/protocols'\n\nexport class RemoteSaveRedesSociais implements SaveRedesSociais {\n constructor (\n private readonly url: string,\n private readonly httpClient: HttpClient\n ) {}\n\n async save (params: SaveRedesSociaisParams): Promise {\n const authParams: HttpRequest = {\n url: `${this.url}/api/Portal/LinksRedesSociais`,\n method: 'post',\n body: params\n }\n\n const { statusCode, body } = await this.httpClient.request(authParams)\n\n switch (statusCode) {\n case HttpStatusCode.ok:\n if (!body) {\n throw new UnexpectedResultFormatError()\n }\n return body\n case HttpStatusCode.unauthorized: throw new AccessDeniedError()\n default: throw new UnexpectedError()\n }\n }\n}\n","import { HttpClient, HttpStatusCode } from '@/data/protocols/http'\nimport { AccessDeniedError, ForbiddenError, UnexpectedError } from '@/domain/errors'\nimport { AcceptDigitalModel } from '@/domain/models'\nimport { GetDigitalAccepts, GetDigitalAcceptsParams } from '@/domain/usecases'\n\nexport class RemoteGetAcceptDigital implements GetDigitalAccepts {\n constructor (\n private readonly url: string,\n private readonly httpGetClient: HttpClient\n ) {}\n\n async get (params: GetDigitalAcceptsParams): Promise {\n const { body, statusCode } = await this.httpGetClient.request({\n url: `${this.url}/api/portal/lista-aceite-eletronico`,\n method: 'get',\n params\n })\n\n switch (statusCode) {\n case HttpStatusCode.ok: return body as AcceptDigitalModel[]\n case HttpStatusCode.forbidden: throw new ForbiddenError(body as string)\n case HttpStatusCode.unauthorized: throw new AccessDeniedError()\n default: throw new UnexpectedError()\n }\n }\n}\n","import { AccessDeniedError, UnexpectedError, UnexpectedResultFormatError } from '@/domain/errors'\nimport { OpenUrlDocumentAcceptParams, OpenUrlDocumentAccept } from '@/domain/usecases'\nimport { HttpClient, HttpRequest, HttpStatusCode } from '@/data/protocols/http'\n\nexport class RemoteOpenUrlDocAccept implements OpenUrlDocumentAccept {\n constructor (\n private readonly httpGetClient: HttpClient\n ) { }\n\n async view (params: OpenUrlDocumentAcceptParams): Promise {\n const { statusAceite, urlAceite } = params\n\n if (statusAceite === 'Pendente') {\n window.open(urlAceite, '_blank')\n } else {\n const hash = urlAceite.substring(urlAceite.indexOf('#/aceite/') + 9)\n const urlBaseAceite = urlAceite.substring(0, urlAceite.indexOf('AceiteDigital/#'))\n\n const request: HttpRequest = {\n url: `${urlBaseAceite}api/AceiteEletronico?link=${hash}`,\n method: 'post',\n params: {\n enviarEmail: false\n }\n }\n\n const { statusCode, body } = await this.httpGetClient.request(request)\n\n switch (statusCode) {\n case HttpStatusCode.ok:\n if (!body) {\n throw new UnexpectedResultFormatError()\n }\n\n const certificadoHtml = new Blob([body], { type: 'text/html;charset=utf-8' })\n const html = URL.createObjectURL(certificadoHtml)\n window.open(html, '_blank')\n\n break\n case HttpStatusCode.unauthorized: throw new AccessDeniedError()\n default: throw new UnexpectedError()\n }\n }\n }\n}\n","import { AccessDeniedError, ForbiddenError, UnexpectedError, UnexpectedResultFormatError } from '@/domain/errors'\nimport { OpenDocumentAccept, OpenDocumentAcceptParams } from '@/domain/usecases'\nimport { HttpClient, HttpStatusCode } from '@/data/protocols/http'\n\nexport class RemoteOpenDocumentAccept implements OpenDocumentAccept {\n constructor (\n private readonly url: string,\n private readonly httpClient: HttpClient\n ) { }\n\n async open (params: OpenDocumentAcceptParams): Promise {\n const { codigoAceite, statusAceite } = params\n\n if (statusAceite === 'Autorizado') {\n const { statusCode, body } = await this.httpClient.request({\n url: `${this.url}/api/AceiteEletronico/ObterDocumentoAceite`,\n method: 'get',\n params: { codigoAceite }\n })\n\n switch (statusCode) {\n case HttpStatusCode.ok:\n if (!body) {\n throw new UnexpectedResultFormatError()\n }\n\n window.open(`${this.url}/${body}`, '_blank')\n break\n case HttpStatusCode.forbidden: throw new ForbiddenError(body)\n case HttpStatusCode.unauthorized: throw new AccessDeniedError()\n default: throw new UnexpectedError()\n }\n }\n }\n}\n","import { HttpClient, HttpRequest, HttpStatusCode } from '@/data/protocols'\nimport { AccessDeniedError, ResultWithoutRecordsError, UnexpectedError, UnexpectedResultFormatError } from '@/domain/errors'\nimport { PrintEvents, PrintEventsParams } from '@/domain/usecases'\n\nexport class RemotePrintEvents implements PrintEvents {\n constructor (\n private readonly url: string,\n private readonly httpClient: HttpClient\n ) {}\n\n async print (params: PrintEventsParams): Promise {\n const { tipoConexao, data } = params\n const request: HttpRequest = {\n url: `${this.url}/api/eventosmonitoramento`,\n method: 'post',\n params: { tipoConexao },\n body: data\n }\n\n const { statusCode, body } = await this.httpClient.request(request)\n\n const oldUrlIndex = this.url.toLowerCase().indexOf('/portalservice')\n const newUrl = oldUrlIndex === -1 ? this.url : this.url.substring(oldUrlIndex)\n\n switch (statusCode) {\n case HttpStatusCode.ok:\n if (!body) {\n throw new UnexpectedResultFormatError()\n }\n window.open(`${newUrl}/TempRelatorios/${body}`, '_blank')\n break\n case HttpStatusCode.noContent: throw new ResultWithoutRecordsError()\n case HttpStatusCode.unauthorized: throw new AccessDeniedError()\n default: throw new UnexpectedError()\n }\n }\n}\n","import { HttpClient, HttpStatusCode } from '@/data/protocols/http'\nimport { AccessDeniedError, ForbiddenError, UnexpectedError } from '@/domain/errors'\nimport { GenericEventModel, RemotyEventModel } from '@/domain/models'\nimport { GetRemotyEvents, GetRemotyEventsParams } from '@/domain/usecases'\n\nexport class RemoteGetRemotyEvents implements GetRemotyEvents {\n constructor (\n private readonly url: string,\n private readonly httpClient: HttpClient\n ) {}\n\n async getEvents (params: GetRemotyEventsParams): Promise {\n const { body, statusCode } = await this.httpClient.request({\n url: `${this.url}/api/portal/remoty/eventos`,\n method: 'get',\n params\n })\n\n switch (statusCode) {\n case HttpStatusCode.ok: return this.mapToGeneric(body)\n case HttpStatusCode.unauthorized: throw new AccessDeniedError()\n case HttpStatusCode.forbidden: throw new ForbiddenError(body)\n\n default: throw new UnexpectedError()\n }\n }\n\n mapToGeneric (eventsRaw: string): GenericEventModel[] {\n const events = eventsRaw\n ? JSON.parse(eventsRaw) as RemotyEventModel[]\n : []\n\n return events?.map(remotyEvent => ({\n evento: remotyEvent?.event?.codEvent,\n descricao: remotyEvent?.event?.nmEvent,\n dataEvento: remotyEvent?.dtEventFormatted,\n aux: remotyEvent?.event?.idEvent.toString(),\n usuario: remotyEvent?.nmPanelUser\n }))\n }\n}\n","import { AccessDeniedError, ForbiddenError, UnexpectedError } from '@/domain/errors'\nimport { GenericSectorModel, RemotySectorResult } from '@/domain/models'\nimport { GetRemotySectors, GetRemotySectorsParams } from '@/domain/usecases'\nimport { HttpClient, HttpStatusCode } from '@/data/protocols/http'\n\nexport class RemoteGetRemotySectors implements GetRemotySectors {\n constructor (\n private readonly url: string,\n private readonly httpClient: HttpClient\n ) { }\n\n async getSectors (params: GetRemotySectorsParams): Promise {\n const { body, statusCode } = await this.httpClient.request({\n url: `${this.url}/api/portal/remoty/lista-setores`,\n method: 'get',\n params\n })\n\n switch (statusCode) {\n case HttpStatusCode.ok:\n return this.mapToGeneric(body as RemotySectorResult)\n case HttpStatusCode.unauthorized: throw new AccessDeniedError()\n case HttpStatusCode.forbidden: throw new ForbiddenError(body as string)\n default: throw new UnexpectedError()\n }\n }\n\n mapToGeneric (sectors: RemotySectorResult): GenericSectorModel[] {\n return sectors?.map(sector => ({\n nome: sector.nmZone,\n idEquipamento: sector.idEquipmentZone.toString(),\n codigoCliente: sector.codZone.toString(),\n ativo: sector.flActive\n }))\n }\n}\n","import { AccessDeniedError, ForbiddenError, UnexpectedError } from '@/domain/errors'\nimport { GenericUserModel, RemotyUserResult } from '@/domain/models'\nimport { GetRemotyUsers, GetRemotyUsersParams } from '@/domain/usecases'\nimport { HttpClient, HttpStatusCode } from '@/data/protocols/http'\n\nexport class RemoteGetRemotyUserEvents implements GetRemotyUsers {\n constructor (\n private readonly url: string,\n private readonly httpClient: HttpClient\n ) { }\n\n async getUsers (params: GetRemotyUsersParams): Promise {\n const { body, statusCode } = await this.httpClient.request({\n url: `${this.url}/api/portal/remoty/listaUsuarios`,\n method: 'get',\n params\n })\n\n switch (statusCode) {\n case HttpStatusCode.ok: return this.maptoGeneric(body as RemotyUserResult)\n case HttpStatusCode.unauthorized: throw new AccessDeniedError()\n case HttpStatusCode.forbidden: throw new ForbiddenError(body as string)\n default: throw new UnexpectedError()\n }\n }\n\n maptoGeneric (users: RemotyUserResult): GenericUserModel[] {\n return users.map(user => ({\n nome: user.nmUserPassword\n }))\n }\n}\n","import { AccessDeniedError, ForbiddenError, UnexpectedError } from '@/domain/errors'\nimport { GenericContactModel, RemotyContactModel } from '@/domain/models'\nimport { GetRemotyContacts, GetRemotyContactsParams } from '@/domain/usecases'\nimport { HttpClient, HttpStatusCode } from '@/data/protocols/http'\n\nexport class RemoteGetRemotyContacts implements GetRemotyContacts {\n constructor (\n private readonly url: string,\n private readonly httpClient: HttpClient\n ) { }\n\n async getContacts (params: GetRemotyContactsParams): Promise {\n const { body, statusCode } = await this.httpClient.request({\n url: `${this.url}/api/portal/remoty/listaContato`,\n method: 'get',\n params\n })\n\n switch (statusCode) {\n case HttpStatusCode.ok: return this.mapToGeneric(body as RemotyContactModel[])\n case HttpStatusCode.unauthorized: throw new AccessDeniedError()\n case HttpStatusCode.forbidden: throw new ForbiddenError(body as string)\n default: throw new UnexpectedError()\n }\n }\n\n mapToGeneric (contacts: RemotyContactModel[]): GenericContactModel[] {\n return contacts?.map(contact => ({\n idUsuario: contact.idDevice.toString(),\n nomeUsuario: contact.nmDeviceUser,\n fone1: contact.nmDevicePhone,\n fone2: contact.nmDevicePhone2,\n idDispositivo: contact.deviceGroup.idDeviceGroup.toString(),\n nomeDispositivo: contact.deviceGroup.nmDeviceGroup\n }))\n }\n}\n","import { DateAdapter } from '@/data/protocols'\nimport { HttpClient, HttpStatusCode } from '@/data/protocols/http'\nimport { AccessDeniedError, ForbiddenError, UnexpectedError } from '@/domain/errors'\nimport { GenericEventModel, MoniEventModel } from '@/domain/models'\nimport { GetMoniEvents, GetMoniEventsParams } from '@/domain/usecases'\n\nexport class RemoteGetMoniEvents implements GetMoniEvents {\n constructor (\n private readonly url: string,\n private readonly httpClient: HttpClient,\n private readonly dateAdapter: DateAdapter\n\n ) {}\n\n async getEvents (params: GetMoniEventsParams): Promise {\n const { body, statusCode } = await this.httpClient.request({\n url: `${this.url}/api/portal/moni/lista-eventos-central`,\n method: 'get',\n params\n })\n\n switch (statusCode) {\n case HttpStatusCode.ok: return this.mapToGeneric(body as MoniEventModel[])\n case HttpStatusCode.unauthorized: throw new AccessDeniedError()\n case HttpStatusCode.forbidden: throw new ForbiddenError(body as string)\n default: throw new UnexpectedError()\n }\n }\n\n mapToGeneric (events: MoniEventModel[]): GenericEventModel[] {\n return events?.map(event => ({\n evento: event?.codigoOcorrencia,\n descricao: event?.ocorrencia,\n dataEvento: this.dateAdapter.format(event?.dataHora)\n }))\n }\n}\n","import { HttpClient, HttpStatusCode } from '@/data/protocols/http'\nimport { AccessDeniedError, ForbiddenError, UnexpectedError } from '@/domain/errors'\nimport { GenericSectorModel, MoniSectorResult } from '@/domain/models'\nimport { GetMoniSectorsParams, GetMoniSectors } from '@/domain/usecases/events/get-moni-sectors'\n\nexport class RemoteGetMoniSectors implements GetMoniSectors {\n constructor (\n private readonly url: string,\n private readonly httpClient: HttpClient\n ) { }\n\n async getSectors (params: GetMoniSectorsParams): Promise {\n const { body, statusCode } = await this.httpClient.request({\n url: `${this.url}/api/portal/moni/lista-setores`,\n method: 'get',\n params\n })\n\n switch (statusCode) {\n case HttpStatusCode.ok: return this.mapToGeneric(body)\n case HttpStatusCode.unauthorized: throw new AccessDeniedError()\n case HttpStatusCode.forbidden: throw new ForbiddenError(body)\n\n default: throw new UnexpectedError()\n }\n }\n\n mapToGeneric (sectorsRaw: string): GenericSectorModel[] {\n const sectors = sectorsRaw\n ? JSON.parse(sectorsRaw) as MoniSectorResult\n : []\n\n return sectors?.map(sector => ({\n nome: sector.descricao,\n idEquipamento: sector.equipamento,\n codigoCliente: sector.cliente.toString(),\n codigoZona: sector.equipamento\n }))\n }\n}\n","import { AccessDeniedError, UnexpectedError } from '@/domain/errors'\nimport { GenericUserModel, MoniUserResult } from '@/domain/models'\nimport { GetMoniUsers, GetMoniUsersParams } from '@/domain/usecases'\nimport { HttpClient, HttpStatusCode } from '@/data/protocols/http'\n\nexport class RemoteGeMoniUsersEvents implements GetMoniUsers {\n constructor (\n private readonly url: string,\n private readonly httpClient: HttpClient\n ) { }\n\n async getUsers (params: GetMoniUsersParams): Promise {\n const { body, statusCode } = await this.httpClient.request({\n url: `${this.url}/api/portal/moni/lista-usuarios`,\n method: 'get',\n params\n })\n\n switch (statusCode) {\n case HttpStatusCode.ok: return this.maptoGeneric(body)\n case HttpStatusCode.unauthorized: throw new AccessDeniedError()\n\n default: throw new UnexpectedError()\n }\n }\n\n maptoGeneric (usersRaw: string): GenericUserModel[] {\n const users = usersRaw\n ? JSON.parse(usersRaw) as MoniUserResult\n : []\n\n return users?.map(user => ({\n nome: user.nome,\n codCliente: user.codCliente.toString(),\n dddFone: user.dddCelular,\n fone1: user.celular\n }))\n }\n}\n","import { AccessDeniedError, UnexpectedError } from '@/domain/errors'\nimport { GenericEventModel, SoWillEventModel } from '@/domain/models'\nimport { GetSowillEvents, GetSowillEventsParams } from '@/domain/usecases'\nimport { HttpClient, HttpStatusCode } from '@/data/protocols/http'\n\nexport class RemoteGetSowillEvents implements GetSowillEvents {\n constructor (\n private readonly url: string,\n private readonly httpClient: HttpClient\n ) { }\n\n async getEvents (params: GetSowillEventsParams): Promise {\n const bodyParams = {\n IdCliente: params.idCliente,\n codInternoChave: params.codInternoChave\n }\n\n const { body, statusCode } = await this.httpClient.request({\n url: `${this.url}/api/sowill/listaeventos`,\n method: 'post',\n params: { dateTimeInicioManutencao: params.dateTimeInicioManutencao },\n body: bodyParams\n })\n\n switch (statusCode) {\n case HttpStatusCode.ok: return this.mapToGeneric(body)\n case HttpStatusCode.unauthorized: throw new AccessDeniedError()\n default: throw new UnexpectedError()\n }\n }\n\n mapToGeneric (events: SoWillEventModel[]): GenericEventModel[] {\n return events?.map(sowillEvent => ({\n evento: sowillEvent?.code,\n descricao: sowillEvent?.description,\n dataEvento: sowillEvent?.startDate,\n aux: sowillEvent?.id,\n usuario: sowillEvent.account\n }))\n }\n}\n","import { GenericSectorModel, SowillSectorResult } from '@/domain/models'\nimport { AccessDeniedError, ForbiddenError, UnexpectedError } from '@/domain/errors'\nimport { GetSowillSectors, GetSowillSectorsParams } from '@/domain/usecases'\nimport { HttpClient, HttpStatusCode } from '@/data/protocols/http'\n\nexport class RemoteGetSowillSectors implements GetSowillSectors {\n constructor (\n private readonly url: string,\n private readonly httpClient: HttpClient\n ) { }\n\n async getZones (params: GetSowillSectorsParams): Promise {\n const bodyParams = {\n IdCliente: params.idCliente,\n CodInternoChave: params.codInternoChave\n }\n\n const { body, statusCode } = await this.httpClient.request({\n url: `${this.url}/api/sowill/listazonas`,\n method: 'post',\n body: bodyParams\n })\n\n switch (statusCode) {\n case HttpStatusCode.ok:\n return this.mapToGeneric(body as SowillSectorResult)\n case HttpStatusCode.unauthorized: throw new AccessDeniedError()\n case HttpStatusCode.forbidden: throw new ForbiddenError(body as string)\n default: throw new UnexpectedError()\n }\n }\n\n mapToGeneric (sectors: SowillSectorResult): GenericSectorModel[] {\n return sectors?.map(sector => ({\n nome: sector.descricao,\n idEquipamento: sector.numeroSerie,\n codigoCliente: sector.id,\n observacao: sector.auxiliar\n }))\n }\n}\n","import { AccessDeniedError, ForbiddenError, UnexpectedError } from '@/domain/errors'\nimport { GenericUserModel, SowillUserResult } from '@/domain/models'\nimport { GetSowillUsers, GetSowillUsersParams } from '@/domain/usecases'\nimport { HttpClient, HttpStatusCode } from '@/data/protocols/http'\n\nexport class RemoteGetSowillUsers implements GetSowillUsers {\n constructor (\n private readonly url: string,\n private readonly httpClient: HttpClient\n ) { }\n\n async getUsers (params: GetSowillUsersParams): Promise {\n const bodyParams = {\n IdCliente: params.idCliente,\n CodInternoChave: params.codInternoChave\n }\n\n const { body, statusCode } = await this.httpClient.request({\n url: `${this.url}/api/sowill/listaUsuarios`,\n method: 'post',\n body: bodyParams\n })\n\n switch (statusCode) {\n case HttpStatusCode.ok: return this.mapToGeneric(body as SowillUserResult)\n case HttpStatusCode.unauthorized: throw new AccessDeniedError()\n case HttpStatusCode.forbidden: throw new ForbiddenError(body as string)\n default: throw new UnexpectedError()\n }\n }\n\n mapToGeneric (users: SowillUserResult): GenericUserModel[] {\n return users.map(user => ({\n nome: user.usuarioAlarme,\n codCliente: user.nroUserSistema?.toString(),\n fone1: user.telefone1,\n fone2: user.telefone2\n }))\n }\n}\n","import { HttpClient, HttpStatusCode } from '@/data/protocols/http'\nimport { AccessDeniedError, UnexpectedError } from '@/domain/errors'\nimport { GetSowillKeys, GetSowillKeysParams } from '@/domain/usecases'\nimport { SowillKeyResult } from '@/domain/models'\n\nexport class RemoteGetSowillKeys implements GetSowillKeys {\n constructor (\n private readonly url: string,\n private readonly httpClient: HttpClient\n ) { }\n\n async getKeys (params: GetSowillKeysParams): Promise {\n const { body, statusCode } = await this.httpClient.request({\n url: `${this.url}/api/soWill/listaChavesCliente`,\n method: 'get',\n params\n })\n\n switch (statusCode) {\n case HttpStatusCode.ok: return body\n case HttpStatusCode.unauthorized: throw new AccessDeniedError()\n default: throw new UnexpectedError()\n }\n }\n}\n","import { HttpClient, HttpStatusCode } from '@/data/protocols/http'\nimport { AccessDeniedError, UnexpectedError } from '@/domain/errors'\nimport { GetSowillIdentifier, GetSowillIdentifierParams } from '@/domain/usecases'\nimport { SowillIdentifier, SowillIdentifierResult } from '@/domain/models'\n\nexport class RemoteGetSowillIdentifier implements GetSowillIdentifier {\n constructor (\n private readonly url: string,\n private readonly httpClient: HttpClient\n ) { }\n\n async getIdentifier (params: GetSowillIdentifierParams): Promise {\n const { body, statusCode } = await this.httpClient.request({\n url: `${this.url}/api/sowill/dados`,\n method: 'get',\n params\n })\n\n switch (statusCode) {\n case HttpStatusCode.ok: return {\n codInternoChave: body.CodInternoChave,\n idCliente: body.IdCliente\n }\n case HttpStatusCode.unauthorized: throw new AccessDeniedError()\n default: throw new UnexpectedError()\n }\n }\n}\n","import { HttpClient, HttpStatusCode } from '@/data/protocols/http'\nimport { AccessDeniedError, UnexpectedError } from '@/domain/errors'\nimport { GenericEventModel, SigmaEventModel } from '@/domain/models'\nimport { GetSigmaEvents, GetSigmaEventsParams } from '@/domain/usecases'\n\nexport class RemoteGetSigmaEvents implements GetSigmaEvents {\n constructor (\n private readonly url: string,\n private readonly httpClient: HttpClient\n ) {}\n\n async getEvents (params: GetSigmaEventsParams): Promise {\n const { body, statusCode } = await this.httpClient.request({\n url: `${this.url}/api/EventosSigma`,\n method: 'get',\n params\n })\n\n switch (statusCode) {\n case HttpStatusCode.ok: return this.mapToGeneric(body)\n case HttpStatusCode.unauthorized: throw new AccessDeniedError()\n default: throw new UnexpectedError()\n }\n }\n\n mapToGeneric (events: SigmaEventModel[]): GenericEventModel[] {\n return events?.map(sigmaEvent => ({\n evento: sigmaEvent?.evento,\n descricao: sigmaEvent?.descricao,\n dataEvento: sigmaEvent?.dataEvento,\n aux: sigmaEvent?.aux\n }))\n }\n}\n","import { GenericSectorModel, SigmaSectorModel } from '@/domain/models'\nimport { GetSigmaCloudSectors, GetSigmaCloudSectorsParams } from '@/domain/usecases'\nimport { AccessDeniedError, UnexpectedError } from '@/domain/errors'\nimport { HttpClient, HttpStatusCode } from '@/data/protocols/http'\n\nexport class RemoteGetSigmaCloudSectors implements GetSigmaCloudSectors {\n constructor (\n private readonly url: string,\n private readonly httpClient: HttpClient\n ) { }\n\n async getZones (params: GetSigmaCloudSectorsParams): Promise {\n const { body, statusCode } = await this.httpClient.request({\n url: `${this.url}/api/sigmaCloudZona`,\n method: 'get',\n params\n })\n\n switch (statusCode) {\n case HttpStatusCode.ok:\n return this.mapToGeneric(body)\n case HttpStatusCode.unauthorized: throw new AccessDeniedError()\n default: throw new UnexpectedError()\n }\n }\n\n mapToGeneric (sectors: SigmaSectorModel[]): GenericSectorModel[] {\n return sectors?.map(sector => ({\n nome: sector.descProduto,\n idEquipamento: sector.idEvento,\n codigoCliente: sector.cdCliente.toString(),\n codigoZona: sector.cdEvento.toString(),\n observacao: sector.obs\n }))\n }\n}\n","import { AccessDeniedError, UnexpectedError } from '@/domain/errors'\nimport { GenericUserModel, SigmaCloudUserResult } from '@/domain/models'\nimport { GetSigmaCloudUsers, GetSigmaCloudUsersParams } from '@/domain/usecases'\nimport { HttpClient, HttpStatusCode } from '@/data/protocols/http'\n\nexport class RemoteGetSigmaCloudUsers implements GetSigmaCloudUsers {\n constructor (\n private readonly url: string,\n private readonly httpClient: HttpClient\n ) { }\n\n async getUsers (params: GetSigmaCloudUsersParams): Promise {\n const { body, statusCode } = await this.httpClient.request({\n url: `${this.url}/api/sigmaCloud/listaUsuarios`,\n method: 'get',\n params\n })\n\n switch (statusCode) {\n case HttpStatusCode.ok:\n return this.mapToGeneric(body)\n case HttpStatusCode.unauthorized: throw new AccessDeniedError()\n default: throw new UnexpectedError()\n }\n }\n\n mapToGeneric (users: SigmaCloudUserResult): GenericUserModel[] {\n return users?.usuarios.map(user => ({\n nome: user.nome,\n codCliente: user.id.toString(),\n fone1: user.fone1,\n fone2: user.fone2\n }))\n }\n}\n","import { HttpClient, HttpStatusCode } from '@/data/protocols/http'\nimport { AccessDeniedError, UnexpectedError } from '@/domain/errors'\nimport { SigmaCloudKeyResponseModel, SigmaCloudKeyResult } from '@/domain/models'\nimport { GetSigmaCloudKeys, GetSigmaCloudKeysParams } from '@/domain/usecases'\n\nexport class RemoteGetSigmaCloudKeys implements GetSigmaCloudKeys {\n constructor (\n private readonly url: string,\n private readonly httpClient: HttpClient\n ) { }\n\n async getKeys (params: GetSigmaCloudKeysParams): Promise {\n const { body, statusCode } = await this.httpClient.request({\n url: `${this.url}/api/sigmacloud/lista-chaves`,\n method: 'get',\n params\n })\n\n switch (statusCode) {\n case HttpStatusCode.ok:\n return body\n case HttpStatusCode.unauthorized: throw new AccessDeniedError()\n default: throw new UnexpectedError()\n }\n }\n}\n","import { GenericSectorModel, SigmaSectorModel } from '@/domain/models'\nimport { AccessDeniedError, UnexpectedError } from '@/domain/errors'\nimport { HttpClient, HttpStatusCode } from '@/data/protocols/http'\nimport { GetSigmaDeskSectors, GetSigmaDeskSectorParams } from '@/domain/usecases'\n\nexport class RemoteGetSigmaDeskSectors implements GetSigmaDeskSectors {\n constructor (\n private readonly url: string,\n private readonly httpClient: HttpClient\n ) { }\n\n async getSector (params: GetSigmaDeskSectorParams): Promise {\n const { body, statusCode } = await this.httpClient.request({\n url: `${this.url}/api/SetorSigma`,\n method: 'get',\n params\n })\n\n switch (statusCode) {\n case HttpStatusCode.ok:\n return this.mapToGeneric(body)\n case HttpStatusCode.unauthorized: throw new AccessDeniedError()\n default: throw new UnexpectedError()\n }\n }\n\n mapToGeneric (sectors: SigmaSectorModel[]): GenericSectorModel[] {\n return sectors?.map(sector => ({\n nome: sector.descProduto,\n idEquipamento: sector.idEvento,\n codigoCliente: sector.cdCliente.toString(),\n codigoZona: sector.cdEvento.toString(),\n observacao: sector.obs\n }))\n }\n}\n","import { AccessDeniedError, ForbiddenError, UnexpectedError } from '@/domain/errors'\nimport { GetSigmaDeskContacts, GetSigmaDeskContactsParams } from '@/domain/usecases'\nimport { GenericContactModel, SigmaDeskContactModel } from '@/domain/models'\nimport { HttpClient, HttpStatusCode } from '@/data/protocols/http'\n\nexport class RemoteGetSigmaDeskContacts implements GetSigmaDeskContacts {\n constructor (\n private readonly url: string,\n private readonly httpClient: HttpClient\n ) { }\n\n async getContacts (params: GetSigmaDeskContactsParams): Promise {\n const { body, statusCode } = await this.httpClient.request({\n url: `${this.url}/api/contatoSigma`,\n method: 'get',\n params\n })\n\n switch (statusCode) {\n case HttpStatusCode.ok: return this.mapToGeneric(body as SigmaDeskContactModel[])\n case HttpStatusCode.unauthorized: throw new AccessDeniedError()\n case HttpStatusCode.forbidden: throw new ForbiddenError(body as string)\n default: throw new UnexpectedError()\n }\n }\n\n mapToGeneric (contacts: SigmaDeskContactModel[]): GenericContactModel[] {\n return contacts?.map(contact => ({\n idUsuario: contact.cdCliente.toString(),\n nomeUsuario: contact.nome,\n fone1: contact.fone1,\n fone2: contact.fone2,\n idDispositivo: contact.idFuncao.toString(),\n nomeDispositivo: contact.descFuncao\n }))\n }\n}\n","import { AccessDeniedError, UnexpectedError } from '@/domain/errors'\nimport { ClaimsResult } from '@/domain/models'\nimport { GetSacList, GetSacListParams } from '@/domain/usecases'\nimport { HttpClient, HttpStatusCode } from '@/data/protocols/http'\n\nexport class RemoteGetSacList implements GetSacList {\n constructor (\n private readonly url: string,\n private readonly httpGetClient: HttpClient\n ) { }\n\n async get (params: GetSacListParams): Promise {\n const { body, statusCode } = await this.httpGetClient.request({\n url: `${this.url}/api/portal/lista-sacs`,\n method: 'get',\n params\n })\n\n switch (statusCode) {\n case HttpStatusCode.ok: return body\n case HttpStatusCode.unauthorized: throw new AccessDeniedError()\n default: throw new UnexpectedError()\n }\n }\n}\n","import { HttpClient, HttpRequest, HttpStatusCode } from '@/data/protocols'\nimport { AccessDeniedError, ForbiddenError, UnexpectedError, UnexpectedResultFormatError } from '@/domain/errors'\nimport { CreateSac, CreateSacParams } from '@/domain/usecases'\n\nexport class RemoteCreateSac implements CreateSac {\n constructor (\n private readonly url: string,\n private readonly httpClient: HttpClient\n ) {}\n\n async create (sacParams: CreateSacParams): Promise {\n const params = {\n isPortal: true\n }\n\n const request: HttpRequest = {\n url: `${this.url}/api/portal/gravar-sac`,\n method: 'post',\n params,\n body: sacParams\n }\n\n const { statusCode, body } = await this.httpClient.request(request)\n\n switch (statusCode) {\n case HttpStatusCode.ok:\n if (!body) {\n throw new UnexpectedResultFormatError()\n }\n return body as number\n case HttpStatusCode.forbidden: throw new ForbiddenError(body as string)\n case HttpStatusCode.unauthorized: throw new AccessDeniedError()\n default: throw new UnexpectedError()\n }\n }\n}\n","import { LocalStorageAdapter } from '@/infra/cache'\nimport { HttpRequest, HttpResponse, HttpClient } from '@/data/protocols'\nimport axios, { AxiosResponse } from 'axios'\n\nexport class AxiosHttpClient implements HttpClient {\n constructor (private readonly localStorageAdapter: LocalStorageAdapter) {}\n\n async request (data: HttpRequest): Promise {\n let axiosResponse: AxiosResponse\n const token = (this.localStorageAdapter.get('access_token'))?.access_token as string\n\n try {\n axiosResponse = await axios.request({\n url: data.url,\n method: data.method,\n data: data.body,\n headers: {\n ...data.headers,\n ...(token && { Authorization: `bearer ${token}` })\n },\n params: data.params\n })\n return {\n statusCode: axiosResponse.status,\n body: axiosResponse.data\n }\n } catch (error: any) {\n return {\n statusCode: error.response?.status || 400,\n body: error.response?.data\n }\n }\n }\n}\n","import { HttpClient } from '@/data/protocols'\nimport { AxiosHttpClient } from '@/infra/http'\nimport { makeLocalStorageAdapter } from '@/main/factories/cache'\n\nexport const makeAxiosHttpClient = (): HttpClient => {\n return new AxiosHttpClient(makeLocalStorageAdapter())\n}\n","import { AcceptDigitalModel } from '@/domain/models'\nimport { GetDigitalAccepts } from '@/domain/usecases/accept-digital'\nimport { RemoteGetAcceptDigital } from '@/data/usecases'\nimport { makeAxiosHttpClient } from '@/main/factories/http'\nimport env from '@/main/config/env'\n\nexport const makeGetAcceptDigital = (): GetDigitalAccepts => {\n const url = env.API_URL\n const httpClient = makeAxiosHttpClient()\n\n return new RemoteGetAcceptDigital(url, httpClient)\n}\n","import { OpenUrlDocumentAccept } from '@/domain/usecases/accept-digital'\nimport { RemoteOpenUrlDocAccept } from '@/data/usecases'\nimport { makeAxiosHttpClient } from '@/main/factories/http'\n\nexport const makeOpenUrlDocAcceptFactory = (): OpenUrlDocumentAccept => {\n const httpClient = makeAxiosHttpClient()\n\n return new RemoteOpenUrlDocAccept(httpClient)\n}\n","\nimport { OpenDocumentAccept } from '@/domain/usecases'\nimport { makeAxiosHttpClient } from '@/main/factories/http'\nimport env from '@/main/config/env'\nimport { RemoteOpenDocumentAccept } from '@/data/usecases'\n\nexport const makeOpenDocumentAcceptFactory = (): OpenDocumentAccept => {\n const url = env.API_URL\n const httpClient = makeAxiosHttpClient()\n\n return new RemoteOpenDocumentAccept(url, httpClient)\n}\n","import { CreditCardModel } from '@/domain/models'\nimport { GetCreditCard } from '@/domain/usecases'\nimport { RemoteGetCreditCard } from '@/data/usecases'\nimport { makeAxiosHttpClient } from '@/main/factories/http'\nimport env from '@/main/config/env'\n\nexport const makeGetCreditCard = (): GetCreditCard => {\n const url = env.API_URL\n const httpClient = makeAxiosHttpClient()\n\n return new RemoteGetCreditCard(url, httpClient)\n}\n","import { PayWithCreditCard } from '@/domain/usecases'\nimport { RemotePayWithCreditCard } from '@/data/usecases'\nimport { makeAxiosHttpClient } from '@/main/factories/http'\nimport env from '@/main/config/env'\n\nexport const makePayWithCreditCard = (): PayWithCreditCard => {\n const url = env.API_URL\n const httpClient = makeAxiosHttpClient()\n\n return new RemotePayWithCreditCard(url, httpClient)\n}\n","import { SaveCreditCard } from '@/domain/usecases'\nimport { RemoteSaveCreditCard } from '@/data/usecases'\nimport { makeAxiosHttpClient } from '@/main/factories/http'\nimport env from '@/main/config/env'\n\nexport const makeSaveCreditCard = (): SaveCreditCard => {\n const url = env.API_URL\n const httpClient = makeAxiosHttpClient()\n\n return new RemoteSaveCreditCard(url, httpClient)\n}\n","import { AuthenticationModel } from '@/domain/models'\nimport { Authentication } from '@/domain/usecases'\nimport { RemoteAuthentication } from '@/data/usecases'\nimport { makeAxiosHttpClient } from '@/main/factories/http'\nimport env from '@/main/config/env'\n\nexport const makeAuthentication = (): Authentication => {\n const url = env.API_URL\n const httpClient = makeAxiosHttpClient()\n\n return new RemoteAuthentication(url, httpClient)\n}\n","import { AuthenticationAdmin, AuthenticationAdminResult } from '@/domain/usecases'\nimport { RemoteAuthenticationAdmin } from '@/data/usecases'\nimport { makeAxiosHttpClient } from '@/main/factories/http'\nimport env from '@/main/config/env'\n\nexport const makeAuthenticationAdmin = (): AuthenticationAdmin => {\n const url = env.API_LOGIN_URL\n const identificadorAplicação = env.API_LOGIN_IDENTIFICADOR_APP\n const httpClient = makeAxiosHttpClient()\n\n return new RemoteAuthenticationAdmin(url, identificadorAplicação, httpClient)\n}\n","import { ClientModel } from '@/domain/models'\nimport { GetClientByCode } from '@/domain/usecases'\nimport { RemoteGetClientByCode } from '@/data/usecases'\nimport { makeAxiosHttpClient } from '@/main/factories/http'\nimport env from '@/main/config/env'\n\nexport const makeGetClientByCode = (): GetClientByCode => {\n const url = env.API_URL\n const httpClient = makeAxiosHttpClient()\n\n return new RemoteGetClientByCode(url, httpClient)\n}\n","import { UserModel } from '@/domain/models'\nimport { GetUserByDocument } from '@/domain/usecases'\nimport { RemoteGetUser } from '@/data/usecases'\nimport { makeAxiosHttpClient } from '@/main/factories/http'\nimport env from '@/main/config/env'\n\nexport const makeGetUser = (): GetUserByDocument => {\n const url = env.API_URL\n const httpClient = makeAxiosHttpClient()\n\n return new RemoteGetUser(url, httpClient)\n}\n","import { PortalLogout } from '@/domain/usecases'\nimport { RemotePortalLogout } from '@/data/usecases'\nimport { makeAxiosHttpClient } from '@/main/factories/http'\nimport env from '@/main/config/env'\n\nexport const makePortalLogout = (): PortalLogout => {\n const url = env.API_URL\n const httpClient = makeAxiosHttpClient()\n\n return new RemotePortalLogout(url, httpClient)\n}\n","import { MetricsLogoff } from '@/domain/usecases'\nimport { RemoteMetricsLogoff } from '@/data/usecases'\nimport { makeAxiosHttpClient } from '@/main/factories/http'\nimport env from '@/main/config/env'\n\nexport const makeMetricsLogoff = (): MetricsLogoff => {\n const url = env.METRICS_LOG_IN_OUT\n const httpClient = makeAxiosHttpClient()\n\n return new RemoteMetricsLogoff(url, httpClient)\n}\n","import { MetricsLogin } from '@/domain/usecases'\nimport { RemoteMetricsLogin } from '@/data/usecases'\nimport { makeAxiosHttpClient } from '@/main/factories/http'\nimport env from '@/main/config/env'\n\nexport const makeMetricsLogin = (): MetricsLogin => {\n const url = env.METRICS_LOG_IN_OUT\n const httpClient = makeAxiosHttpClient()\n\n return new RemoteMetricsLogin(url, httpClient)\n}\n","import { ForgotPassword } from '@/domain/usecases'\nimport { RemoteForgotPassword } from '@/data/usecases'\nimport { makeAxiosHttpClient } from '@/main/factories/http'\nimport env from '@/main/config/env'\n\nexport const makeForgotPassword = (): ForgotPassword => {\n const url = env.API_URL\n const httpClient = makeAxiosHttpClient()\n\n return new RemoteForgotPassword(url, httpClient)\n}\n","import { GetRedesSociais } from '@/domain/usecases'\nimport { makeAxiosHttpClient } from '../../http'\nimport { RedesSociaisModel } from '@/domain/models'\nimport { RemoteGetRedesSociais } from '@/data/usecases'\nimport env from '@/main/config/env'\n\nexport const makeGetRedesSociais = (): GetRedesSociais => {\n const url = env.API_URL\n const httpClient = makeAxiosHttpClient()\n\n return new RemoteGetRedesSociais(url, httpClient)\n}\n","import { UpdatePassword } from '@/domain/usecases'\nimport { RemoteUpdatePassword } from '@/data/usecases'\nimport { makeAxiosHttpClient } from '@/main/factories/http'\nimport env from '@/main/config/env'\n\nexport const makeUpdatePassword = (): UpdatePassword => {\n const url = env.API_URL\n const httpClient = makeAxiosHttpClient()\n\n return new RemoteUpdatePassword(url, httpClient)\n}\n","import { NFResultModel } from '@/domain/models'\nimport { RemoteGetNFs } from '@/data/usecases'\nimport { makeAxiosHttpClient } from '@/main/factories/http'\nimport env from '@/main/config/env'\nimport { GetNFs } from '@/domain/usecases'\n\nexport const makeGetRemoteGetNFs = (): GetNFs => {\n const url = env.API_URL\n const httpClient = makeAxiosHttpClient()\n\n return new RemoteGetNFs(url, httpClient)\n}\n","import { RemoteOpenDanfe } from '@/data/usecases'\nimport { makeAxiosHttpClient } from '@/main/factories/http'\nimport { OpenDanfe } from '@/domain/usecases'\nimport env from '@/main/config/env'\n\nexport const makeOpenDanfe = (): OpenDanfe => {\n const url = env.API_URL\n const httpClient = makeAxiosHttpClient()\n\n return new RemoteOpenDanfe(url, httpClient)\n}\n","import { RemoteOpenNfse } from '@/data/usecases'\nimport { makeAxiosHttpClient } from '@/main/factories/http'\nimport { OpenNfse } from '@/domain/usecases'\nimport env from '@/main/config/env'\n\nexport const makeOpenNfse = (): OpenNfse => {\n const url = env.API_URL\n const httpClient = makeAxiosHttpClient()\n\n return new RemoteOpenNfse(url, httpClient)\n}\n","import { RemoteOpenLeaseReceipt } from '@/data/usecases'\nimport { makeAxiosHttpClient } from '@/main/factories/http'\nimport { OpenLeaseReceipt } from '@/domain/usecases'\nimport env from '@/main/config/env'\n\nexport const makeOpenLeaseReceipt = (): OpenLeaseReceipt => {\n const url = env.API_URL\n const httpClient = makeAxiosHttpClient()\n\n return new RemoteOpenLeaseReceipt(url, httpClient)\n}\n","import { SaveRedesSociais } from '@/domain/usecases'\nimport { RedesSociaisModel } from '@/domain/models'\nimport { makeAxiosHttpClient } from '@/main/factories/http'\nimport { RemoteSaveRedesSociais } from '@/data/usecases'\nimport env from '@/main/config/env'\n\nexport const makeSaveRedesSociais = (): SaveRedesSociais => {\n const url = env.API_URL\n const httpClient = makeAxiosHttpClient()\n\n return new RemoteSaveRedesSociais(url, httpClient)\n}\n","import { AddNewOs } from '@/domain/usecases'\nimport { RemoteAddNewOs } from '@/data/usecases'\nimport { makeAxiosHttpClient } from '@/main/factories/http'\nimport env from '@/main/config/env'\n\nexport const makeAddNewOs = (): AddNewOs => {\n const url = env.API_URL\n const httpClient = makeAxiosHttpClient()\n\n return new RemoteAddNewOs(url, httpClient)\n}\n","import { AddTravelAlertOsResponsible, AddTravelAlertOsVehicle } from '@/domain/usecases'\nimport { DateAdapter } from '@/data/protocols'\n\nexport class TravelAlertBuilder {\n constructor (private readonly dateAdapter: DateAdapter) {}\n\n private observation = ''\n\n private addLine (line: string): TravelAlertBuilder {\n this.observation += line\n this.observation += '\\r\\n'\n return this\n }\n\n setDates (\n dataSaida: string,\n horaMinutoSaida: string,\n dataRetorno: string,\n horaMinutoRetorno: string\n ): TravelAlertBuilder {\n const [horaSaida, minutoSaida] = horaMinutoSaida.split(':')\n const [horaRetorno, minutoRetorno] = horaMinutoRetorno.split(':')\n\n const dateStart = this.dateAdapter.parse(dataSaida)\n dateStart.setHours(parseInt(horaSaida))\n dateStart.setMinutes(parseInt(minutoSaida))\n\n const dateEnd = this.dateAdapter.parse(dataRetorno)\n dateEnd.setHours(parseInt(horaRetorno))\n dateEnd.setMinutes(parseInt(minutoRetorno))\n\n const dataSaidaFormatada = this.dateAdapter.format(dateStart, 'DD/MM/YYYY HH:mm')\n const dataRetornoFormatada = this.dateAdapter.format(dateEnd, 'DD/MM/YYYY HH:mm')\n\n return this.addLine(`Aviso de Viagem de ${dataSaidaFormatada} á ${dataRetornoFormatada}`)\n }\n\n requester (requester: string): TravelAlertBuilder {\n return this.addLine(`Responsável pelo Aviso: ${requester}`)\n }\n\n emailRequester (email: string): TravelAlertBuilder {\n return this.addLine(`E-mail do responsável: ${email}`)\n }\n\n phone1Requester (phone: string): TravelAlertBuilder {\n return this.addLine(`Telefone 1: ${phone}`)\n }\n\n phone2Requester (phone: string): TravelAlertBuilder {\n if (phone) {\n return this.addLine(`Telefone 2: ${phone}`)\n }\n return this\n }\n\n addResponsible (responsible: AddTravelAlertOsResponsible): TravelAlertBuilder {\n this.addLine(`Nome: ${responsible.nome}`)\n responsible.endereco && this.addLine(`Endereço do responsável: ${responsible.endereco}`)\n responsible.telefone1 && this.addLine(`Telefone1 do responsável: ${responsible.telefone1}`)\n responsible.telefone2 && this.addLine(`Telefone2 do responsável: ${responsible.telefone2}`)\n responsible.observacao && this.addLine(`Observações do responsável: ${responsible.observacao}`)\n return this\n }\n\n addResponsibles (chavesSomenteComCentralMonitoramento: boolean, responsibles: AddTravelAlertOsResponsible[]): TravelAlertBuilder {\n if (chavesSomenteComCentralMonitoramento) {\n return this\n .addLine('As chaves da residência ficarão na Central de Monitoramento!')\n .addLine('')\n } else {\n if (responsibles.length) {\n this.addLine(`Responsáve${responsibles.length > 1 ? 'is' : 'l'} das Chaves da residência:`)\n responsibles.forEach(resp => { this.addResponsible(resp) })\n return this.addLine('')\n } else {\n return this\n .addLine('As chaves da residência ficarão na Central de Monitoramento!')\n .addLine('')\n }\n }\n }\n\n addAuthorized (possuiAutorizados: boolean, responsibles: AddTravelAlertOsResponsible[]): TravelAlertBuilder {\n if (!possuiAutorizados) {\n return this\n .addLine('Ninguém está autorizado a entrar na Residência!')\n .addLine('')\n } else {\n if (responsibles.length) {\n this.addLine(`Autorizado${responsibles.length > 1 ? 's' : ''} a entrar na Residência:`)\n responsibles.forEach(resp => { this.addResponsible(resp) })\n return this.addLine('')\n } else {\n return this\n .addLine('Ninguém está autorizado a entrar na Residência!')\n .addLine('')\n }\n }\n }\n\n addVehicle (vehicle: AddTravelAlertOsVehicle): TravelAlertBuilder {\n this.addLine(`Veículo Placa: ${vehicle.placa}`)\n\n if (vehicle.possuiResponsaveis && vehicle.responsaveis.length) {\n this.addLine('Estará com a chave do veículo o seguinte responsável: ')\n vehicle.responsaveis.forEach(resp => { this.addResponsible(resp) })\n } else {\n this\n .addLine('Somente a central de monitoramento estará com as chaves do veículo.')\n }\n\n if (vehicle.possuiAutorizados && vehicle.autorizados.length) {\n this.addLine('Estará autorizado a utilizar o veículo o seguinte responsável: ')\n vehicle.autorizados.forEach(authorized => { this.addResponsible(authorized) })\n } else {\n this\n .addLine('Ninguém está autorizado a utilizar o veículo.')\n }\n\n return this\n }\n\n addVehicles (possuiVeiculosCuidadosCentral: boolean, vehicles: AddTravelAlertOsVehicle[]): TravelAlertBuilder {\n if (!possuiVeiculosCuidadosCentral || !vehicles.length) {\n return this\n .addLine('Não ficarão veículos sobre cuidados da empresa.')\n .addLine('')\n } else {\n this\n .addLine(`Ficará sobre cuidados da empresa o${vehicles.length > 1 ? 's' : ''} seguinte${vehicles.length > 1 ? 's' : ''} veículo${vehicles.length > 1 ? 's' : ''}: `)\n .addLine('')\n\n vehicles.forEach(vehicle => { this.addVehicle(vehicle) })\n\n return this.addLine('')\n }\n }\n\n addRecommendations (recommendations: string): TravelAlertBuilder {\n if (recommendations) {\n return this\n .addLine('')\n .addLine(`Algumas Recomendações: ${recommendations}`)\n }\n return this\n }\n\n build (): string {\n return this.observation\n }\n}\n","import { AddTravelAlertOs } from '@/domain/usecases'\nimport { RemoteAddTravelAlertOs } from '@/data/usecases'\nimport { makeAxiosHttpClient } from '@/main/factories/http'\nimport { makeTravelAlertBuilder } from '@/main/builders'\nimport env from '@/main/config/env'\n\nexport const makeAddTravelAlertOs = (): AddTravelAlertOs => {\n const url = env.API_URL\n const httpClient = makeAxiosHttpClient()\n\n return new RemoteAddTravelAlertOs(\n url,\n httpClient,\n makeTravelAlertBuilder()\n )\n}\n","import { TravelAlertBuilder } from '@/data/builders'\nimport { makeDateAdapterFactory } from '@/main/adapters'\n\nexport const makeTravelAlertBuilder = (): TravelAlertBuilder => {\n return new TravelAlertBuilder(makeDateAdapterFactory())\n}\n","import { ServiceOrderResult } from '@/domain/models'\nimport { GetServiceOrders } from '@/domain/usecases'\nimport { RemoteGetServiceOrders } from '@/data/usecases'\nimport { makeAxiosHttpClient } from '@/main/factories/http'\nimport env from '@/main/config/env'\n\nexport const makeGetServiceOrders = (): GetServiceOrders => {\n const url = env.API_URL\n const httpClient = makeAxiosHttpClient()\n\n return new RemoteGetServiceOrders(url, httpClient)\n}\n","import { OsAttendanceModel } from '@/domain/models'\nimport { GetOsAttendance } from '@/domain/usecases'\nimport { RemoteGetOsAttendance } from '@/data/usecases'\nimport { makeAxiosHttpClient } from '@/main/factories/http'\nimport env from '@/main/config/env'\n\nexport const makeGetOsAttendance = (): GetOsAttendance => {\n const url = env.API_URL\n const httpClient = makeAxiosHttpClient()\n\n return new RemoteGetOsAttendance(url, httpClient)\n}\n","import { ServiceOrderDetailModel } from '@/domain/models'\nimport { GetServiceOrderDetail } from '@/domain/usecases'\nimport { makeAxiosHttpClient } from '@/main/factories/http'\nimport { RemoteGetServiceOrderDetail } from '@/data/usecases/'\nimport env from '@/main/config/env'\n\nexport const makeGetServiceOrderDetail = (): GetServiceOrderDetail => {\n const url = env.API_URL\n const httpClient = makeAxiosHttpClient()\n\n return new RemoteGetServiceOrderDetail(url, httpClient)\n}\n","import { ConfigModel } from '@/domain/models'\nimport { GetUnitConfig } from '@/domain/usecases'\nimport { RemoteGetUnitConfig } from '@/data/usecases'\nimport { makeAxiosHttpClient } from '@/main/factories/http'\nimport env from '@/main/config/env'\n\nexport const makeGetUnitConfig = (): GetUnitConfig => {\n const url = env.API_URL\n const httpClient = makeAxiosHttpClient()\n\n return new RemoteGetUnitConfig(url, httpClient)\n}\n","import { ThemeModel } from '@/domain/models'\nimport { GetTheme } from '@/domain/usecases'\nimport { RemoteGetTheme } from '@/data/usecases'\nimport { makeAxiosHttpClient } from '@/main/factories/http'\nimport env from '@/main/config/env'\n\nexport const makeGetTheme = (): GetTheme => {\n const url = env.API_URL\n const httpClient = makeAxiosHttpClient()\n\n return new RemoteGetTheme(url, httpClient)\n}\n","import { Unidade } from '@/domain/models'\nimport { GetUnits } from '@/domain/usecases'\nimport { RemoteGetUnits } from '@/data/usecases'\nimport { makeAxiosHttpClient } from '@/main/factories/http'\nimport env from '@/main/config/env'\n\nexport const makeGetUnits = (): GetUnits => {\n const url = env.API_URL\n const httpClient = makeAxiosHttpClient()\n\n return new RemoteGetUnits(url, httpClient)\n}\n","import { ProspectConfigsModel } from '@/domain/models'\nimport { GetProspectConfigs } from '@/domain/usecases'\nimport { RemoteGetProspectConfigs } from '@/data/usecases'\nimport { makeAxiosHttpClient } from '@/main/factories/http'\nimport env from '@/main/config/env'\n\nexport const makeGetProspectConfigs = (): GetProspectConfigs => {\n const url = env.API_URL\n const httpClient = makeAxiosHttpClient()\n\n return new RemoteGetProspectConfigs(url, httpClient)\n}\n","import { ProspectRegistration, ProspectRegistrationResult } from '@/domain/usecases'\nimport { RemoteProspectRegistration } from '@/data/usecases'\nimport { makeAxiosHttpClient } from '@/main/factories/http'\nimport env from '@/main/config/env'\n\nexport const makeProspectRegistration = (): ProspectRegistration => {\n const url = env.API_URL\n const httpClient = makeAxiosHttpClient()\n\n return new RemoteProspectRegistration(url, httpClient)\n}\n","import { RemoteTestEmail } from '@/data/usecases'\nimport { TestEmail } from '@/domain/usecases'\nimport { makeAxiosHttpClient } from '@/main/factories/http'\nimport env from '@/main/config/env'\n\nexport const makeTestEmail = (): TestEmail => {\n const url = env.API_URL\n const httpClient = makeAxiosHttpClient()\n\n return new RemoteTestEmail(url, httpClient)\n}\n","import { RemoteSaveUnitConfig } from '@/data/usecases'\nimport { SaveUnitConfig } from '@/domain/usecases'\nimport { makeAxiosHttpClient } from '@/main/factories/http'\nimport env from '@/main/config/env'\n\nexport const makeSaveUnitConfig = (): SaveUnitConfig => {\n const url = env.API_URL\n const httpClient = makeAxiosHttpClient()\n\n return new RemoteSaveUnitConfig(url, httpClient)\n}\n","import { SaveTheme } from '@/domain/usecases'\nimport { RemoteSaveTheme } from '@/data/usecases'\nimport { makeAxiosHttpClient } from '@/main/factories/http'\nimport env from '@/main/config/env'\n\nexport const makeSaveTheme = (): SaveTheme => {\n const url = env.API_URL\n const httpClient = makeAxiosHttpClient()\n\n return new RemoteSaveTheme(url, httpClient)\n}\n","import { UploadFile } from '@/domain/usecases'\nimport { RemoteUploadFile } from '@/data/usecases'\nimport { makeAxiosHttpClient } from '@/main/factories/http'\nimport env from '@/main/config/env'\nimport { FileModel } from '@/domain/models'\n\nexport const makeUploadFile = (): UploadFile => {\n const url = env.API_URL\n const httpClient = makeAxiosHttpClient()\n\n return new RemoteUploadFile(url, httpClient)\n}\n","import { SaveProspectConfigs } from '@/domain/usecases'\nimport { RemoteSaveProspectConfig } from '@/data/usecases'\nimport { makeAxiosHttpClient } from '@/main/factories/http'\nimport env from '@/main/config/env'\n\nexport const makeSaveProspectConfigs = (): SaveProspectConfigs => {\n const url = env.API_URL\n const httpClient = makeAxiosHttpClient()\n\n return new RemoteSaveProspectConfig(url, httpClient)\n}\n","import { EventsSettingsModel } from '@/domain/models'\nimport { GetEventsSettings } from '@/domain/usecases'\nimport { RemoteGetEventsSettings } from '@/data/usecases'\nimport { makeAxiosHttpClient } from '@/main/factories/http'\nimport env from '@/main/config/env'\n\nexport const makeGetEventsSettings = (): GetEventsSettings => {\n const url = env.API_URL\n const httpClient = makeAxiosHttpClient()\n\n return new RemoteGetEventsSettings(url, httpClient)\n}\n","import { ShowEvents } from '@/domain/usecases'\nimport { RemoteShowEvents } from '@/data/usecases'\nimport { makeAxiosHttpClient } from '@/main/factories/http'\nimport env from '@/main/config/env'\n\nexport const makeShowEvents = (): ShowEvents => {\n const url = env.API_URL\n const httpClient = makeAxiosHttpClient()\n\n return new RemoteShowEvents(url, httpClient)\n}\n","import { GetSigmaDeskConnections } from '@/domain/usecases'\nimport { RemoteGetSigmaDeskConnections } from '@/data/usecases'\nimport { makeAxiosHttpClient } from '@/main/factories/http'\nimport { SigmaDeskConnectionModel } from '@/domain/models'\nimport env from '@/main/config/env'\n\nexport const makeGetSigmaDeskConnectionsFactory = (): GetSigmaDeskConnections => {\n const url = env.API_URL\n const httpClient = makeAxiosHttpClient()\n\n return new RemoteGetSigmaDeskConnections(url, httpClient)\n}\n","import { makeAxiosHttpClient } from '@/main/factories/http'\nimport { ClaimsResult } from '@/domain/models'\nimport { RemoteGetSacList } from '@/data/usecases/sac'\nimport { GetSacList } from '@/domain/usecases'\nimport env from '@/main/config/env'\n\nexport const makeGetSacList = (): GetSacList => {\n const url = env.API_URL\n const httpClient = makeAxiosHttpClient()\n return new RemoteGetSacList(url, httpClient)\n}\n","import { makeAxiosHttpClient } from '@/main/factories/http'\nimport { RemoteCreateSac } from '@/data/usecases/sac'\nimport { CreateSac } from '@/domain/usecases'\nimport env from '@/main/config/env'\n\nexport const makeCreateSac = (): CreateSac => {\n const url = env.API_URL\n const httpClient = makeAxiosHttpClient()\n\n return new RemoteCreateSac(url, httpClient)\n}\n","import { TicketModel } from '@/domain/models'\nimport { GetTickets } from '@/domain/usecases'\nimport { RemoteGetTickets } from '@/data/usecases'\nimport { makeAxiosHttpClient } from '@/main/factories/http'\nimport env from '@/main/config/env'\n\nexport const makeGetTickets = (): GetTickets => {\n const url = env.API_URL\n const httpClient = makeAxiosHttpClient()\n\n return new RemoteGetTickets(url, httpClient)\n}\n","import { GetTicketPix } from '@/domain/usecases'\nimport { RemoteGetTicketPix } from '@/data/usecases'\nimport { makeAxiosHttpClient } from '@/main/factories/http'\nimport env from '@/main/config/env'\n\nexport const makeGetTicketPix = (): GetTicketPix => {\n const url = env.API_URL\n const httpClient = makeAxiosHttpClient()\n\n return new RemoteGetTicketPix(url, httpClient)\n}\n","import { GenerateBankSlip } from '@/domain/usecases'\nimport { RemoteGenerateBankSlip } from '@/data/usecases'\nimport { makeAxiosHttpClient } from '@/main/factories/http'\nimport env from '@/main/config/env'\n\nexport const makeGenerateBankSlip = (): GenerateBankSlip => {\n const url = env.API_URL\n const httpClient = makeAxiosHttpClient()\n\n return new RemoteGenerateBankSlip(url, httpClient)\n}\n","import { OpenBankSlip } from '@/domain/usecases'\nimport { RemoteOpenBankSlip } from '@/data/usecases'\nimport { makeGenerateBankSlip, makeGenerateInsideBankSlip } from '@/main/factories/usecases'\n\nexport const makeOpenBankSlip = (): OpenBankSlip => {\n const generateBankSlip = makeGenerateBankSlip()\n const generateInsideBankSlip = makeGenerateInsideBankSlip()\n\n return new RemoteOpenBankSlip(generateBankSlip, generateInsideBankSlip)\n}\n","import { GenerateInsideBankSlip } from '@/domain/usecases'\nimport { RemoteGenerateInsideBankSlip } from '@/data/usecases'\nimport { makeDateAdapterFactory } from '@/main/adapters'\nimport { makeGenerateBankSlip } from '@/main/factories/usecases'\n\nexport const makeGenerateInsideBankSlip = (): GenerateInsideBankSlip => {\n const dateAdapter = makeDateAdapterFactory()\n const generateBankSlip = makeGenerateBankSlip()\n\n return new RemoteGenerateInsideBankSlip(dateAdapter, generateBankSlip)\n}\n","import { OpenStatementOfDebts } from '@/domain/usecases'\nimport { RemoteOpenStatementOfDebts } from '@/data/usecases'\nimport { makeAxiosHttpClient } from '@/main/factories/http'\nimport env from '@/main/config/env'\n\nexport const makeOpenStatementOfDebts = (): OpenStatementOfDebts => {\n const url = env.API_URL\n const httpClient = makeAxiosHttpClient()\n\n return new RemoteOpenStatementOfDebts(url, httpClient)\n}\n","import { TrackModel, TrackResult } from '@/domain/models'\nimport { GetTrackList, GetTrackParams } from '@/domain/usecases'\nimport { AccessDeniedError, UnexpectedError, UnexpectedResultFormatError } from '@/domain/errors'\nimport { HttpClient, HttpRequest, HttpStatusCode } from '@/data/protocols'\n\nexport class RemoteGetTrackList implements GetTrackList {\n constructor (\n private readonly url: string,\n private readonly httpClient: HttpClient\n ) { }\n\n async getTrackList (params: GetTrackParams): Promise {\n const request: HttpRequest = {\n url: `${this.url}/api/portal/rastreamento`,\n method: 'get',\n params\n }\n\n const { statusCode, body } = await this.httpClient.request(request)\n\n switch (statusCode) {\n case HttpStatusCode.ok:\n if (!body) {\n throw new UnexpectedResultFormatError()\n }\n return this.mapToGeneric(body)\n case HttpStatusCode.unauthorized: throw new AccessDeniedError()\n default: throw new UnexpectedError()\n }\n }\n\n mapToGeneric (trackRaw: TrackResult[]): TrackModel[] {\n return trackRaw?.map(track => ({\n codInterno: track.CodInterno,\n id: track.Id,\n placa: track.Placa\n }))\n }\n}\n","import { TrackDetailsModel, TrackDetailsResult, FuelType } from '@/domain/models'\nimport { GetTrackDetails, GetTrackDetailsParams } from '@/domain/usecases'\nimport { AccessDeniedError, UnexpectedError, UnexpectedResultFormatError } from '@/domain/errors'\nimport { HttpClient, HttpRequest, HttpStatusCode } from '@/data/protocols'\n\nexport class RemoteGetDetailTrack implements GetTrackDetails {\n constructor (\n private readonly url: string,\n private readonly httpClient: HttpClient\n ) { }\n\n async getDetails (params: GetTrackDetailsParams): Promise {\n const request: HttpRequest = {\n url: `${this.url}/api/portal/detalhesRastreamento`,\n method: 'get',\n params\n }\n\n const { statusCode, body } = await this.httpClient.request(request)\n\n switch (statusCode) {\n case HttpStatusCode.ok:\n if (!body) {\n throw new UnexpectedResultFormatError()\n }\n return this.mapToModel(body)\n case HttpStatusCode.unauthorized: throw new AccessDeniedError()\n default: throw new UnexpectedError()\n }\n }\n\n mapToModel (trackDetails: TrackDetailsResult): TrackDetailsModel {\n return {\n id: trackDetails.Id,\n cor: trackDetails.Cor,\n ano: trackDetails.Ano,\n placa: trackDetails.Placa,\n modelo: trackDetails.Modelo,\n combustivel: trackDetails.Combustivel.toUpperCase() as FuelType\n }\n }\n}\n","import { TrackResult } from '@/domain/models'\nimport { GetTrackList } from '@/domain/usecases'\nimport { RemoteGetTrackList } from '@/data/usecases/track'\nimport { makeAxiosHttpClient } from '@/main/factories/http'\nimport env from '@/main/config/env'\n\nexport const makeGetTrackListFactory = (): GetTrackList => {\n const url = env.API_URL\n const httpClient = makeAxiosHttpClient()\n\n return new RemoteGetTrackList(url, httpClient)\n}\n","import { TrackDetailsResult } from '@/domain/models'\nimport { GetTrackDetails } from '@/domain/usecases'\nimport { RemoteGetDetailTrack } from '@/data/usecases/track'\nimport { makeAxiosHttpClient } from '@/main/factories/http'\nimport env from '@/main/config/env'\n\nexport const makeGetTrackDetailsFactory = (): GetTrackDetails => {\n const url = env.API_URL\n const httpClient = makeAxiosHttpClient()\n\n return new RemoteGetDetailTrack(url, httpClient)\n}\n","import React from 'react'\nimport { RedesSociais } from '@/presentation/pages/RedesSociais'\nimport { makeGetRedesSociais, makeSaveRedesSociais } from '@/main/factories/usecases'\n\nexport const makeRedesSociaisFactory = (): JSX.Element => {\n return \n}\n","import { StyleSheet } from 'react-native'\n\nexport const styles = StyleSheet.create({\n container: {\n flex: 1\n },\n content: {\n flex: 1\n },\n\n cardContainerMobile: {\n marginBottom: '8px',\n marginTop: '8px',\n marginRight: '16px',\n marginLeft: '16px',\n borderRadius: 4,\n display: 'flex',\n flexDirection: 'row',\n justifyContent: 'center'\n },\n cardContent: {\n display: 'flex',\n flexDirection: 'row',\n justifyContent: 'space-between',\n flex: 1\n },\n\n containerHeader: {\n flexDirection: 'row',\n alignItems: 'center'\n },\n\n headerText: {\n padding: 12,\n fontWeight: '500',\n textTransform: 'uppercase'\n }\n})\n","import React, { useCallback } from 'react'\nimport { SafeAreaView } from 'react-native'\nimport { useRecoilState, useRecoilValue } from 'recoil'\nimport { useFocusEffect } from '@react-navigation/native'\nimport { createMaterialTopTabNavigator } from '@react-navigation/material-top-tabs'\nimport { GetUnitConfig, TestEmail, SaveUnitConfig, GetUnitConfigParams } from '@/domain/usecases'\nimport { ActivityIndicator, Box, HStack, Loading, Text } from '@/presentation/components'\nimport { useSettings, useTheme, useThemeClient, useMediaQueries, useErrorHandler } from '@/presentation/hooks'\nimport { InvoicesSettings, GeneralSettings, UnitsSelector, FinancialSettings, ServiceOrderSettings, MenuAccessPermissions, ModalOnSaveOrDiscard, ModalOnDiscardChanges, ModalOnSaveChanges, isLoadingState, unitsState } from '@/presentation/pages/Settings/components'\nimport { styles } from './styles'\n\ntype SettingsProps = {\n getUnitConfigs: GetUnitConfig\n saveUnitConfig: SaveUnitConfig\n testEmail: TestEmail\n}\n\nconst Tab = createMaterialTopTabNavigator()\n\nexport const Settings: React.FC = ({\n getUnitConfigs,\n saveUnitConfig,\n testEmail\n}) => {\n const theme = useTheme()\n const { getThemeClient } = useThemeClient()\n const handleError = useErrorHandler()\n const { isMobile } = useMediaQueries()\n const { startConfig } = useSettings()\n const { currentUnit } = useRecoilValue(unitsState)\n const [isLoading, setLoading] = useRecoilState(isLoadingState)\n\n const themeClient = getThemeClient()\n\n useFocusEffect(\n useCallback(() => {\n setLoading(true)\n\n const getConfigParams: GetUnitConfigParams = {\n codUnidade: currentUnit\n }\n\n getUnitConfigs\n .getAll(getConfigParams)\n .then(startConfig)\n .catch(handleError)\n .finally(() => setLoading(false))\n }, [currentUnit])\n )\n\n const financialSettings = (): JSX.Element => \n const generalSettings = (): JSX.Element => \n const invoicesSettings = (): JSX.Element => \n const serviceOrderSettings = (): JSX.Element => \n const menuAccessPermissions = (): JSX.Element => \n\n return (\n \n \n \n \n Configurações da Unidade\n \n {isLoading\n ? \n : \n }\n \n \n {isLoading\n ? \n : \n \n \n \n \n \n \n }\n \n\n \n \n \n \n \n )\n}\n","import React from 'react'\nimport { Settings } from '@/presentation/pages/Settings'\nimport { makeGetUnitConfig, makeTestEmail, makeSaveUnitConfig } from '@/main/factories/usecases'\n\nexport const makeSettingsFactory = (): JSX.Element => {\n return (\n \n )\n}\n","import { StyleSheet } from 'react-native'\n\nexport const layoutStyles = StyleSheet.create({\n pageContent: {\n flex: 1,\n padding: 16,\n maxWidth: 1280,\n width: '100%',\n marginHorizontal: 'auto'\n }\n})\n","import { layoutStyles } from '@/presentation/styles/globals'\nimport { StyleSheet } from 'react-native'\n\nexport const styles = StyleSheet.create({\n container: {\n flex: 1,\n alignItems: 'stretch'\n },\n content: {\n ...layoutStyles.pageContent\n },\n scroll: {\n paddingBottom: 60\n },\n\n footerContainer: {\n flexDirection: 'row-reverse',\n alignItems: 'center',\n height: '100%',\n padding: 16\n },\n toolbar: {\n display: 'flex',\n flexDirection: 'row',\n alignItems: 'center',\n justifyContent: 'space-between'\n }\n})\n","import React, { useState, useCallback } from 'react'\nimport { SafeAreaView } from 'react-native'\nimport { useSetRecoilState } from 'recoil'\nimport { useFocusEffect } from '@react-navigation/native'\nimport { ScrollView } from 'react-native-gesture-handler'\nimport { MaterialCommunityIcons } from '@expo/vector-icons'\nimport { GetTheme, GetUnits, SaveTheme, UploadFile } from '@/domain/usecases'\nimport { useErrorHandler, useImage, useTheme, useThemeClient } from '@/presentation/hooks'\nimport { Box, HStack, VStack, PageHeader } from '@/presentation/components'\nimport { unitsState } from '@/presentation/pages/Settings/components'\nimport { ActionsButtons, ColorPicker, LoginBackgroundSelector, LogoSelector, ModalOnDiscardChanges, ModalOnSaveChanges, isLoadingState } from '@/presentation/pages/Theme/components'\nimport { styles } from './styles'\n\nexport type ThemeProps = {\n getTheme: GetTheme\n saveTheme: SaveTheme\n uploadFile: UploadFile\n getUnits: GetUnits\n}\n\nexport const Theme: React.FC = ({\n getTheme,\n saveTheme,\n uploadFile,\n getUnits\n}) => {\n const theme = useTheme()\n const handleError = useErrorHandler()\n const { getImage } = useImage()\n const { hasChanged, setThemeClient } = useThemeClient()\n const [logoEmpresa, setLogoEmpresa] = useState('')\n const [backgroundEmpresa, setBackgroundEmpresa] = useState('')\n const setLoading = useSetRecoilState(isLoadingState)\n const setUnits = useSetRecoilState(unitsState)\n\n useFocusEffect(\n useCallback(() => {\n setLoading(true)\n\n getTheme\n .get()\n .then(async theme => {\n setThemeClient(theme)\n void getImage(theme.imageLogo, 'logo')\n .then(logo => { setLogoEmpresa(logo) })\n .catch(console.error)\n\n void getImage(theme.bgLogin, 'login')\n .then(background => { setBackgroundEmpresa(background) })\n .catch(console.error)\n })\n .catch(handleError)\n .finally(() => setLoading(false))\n\n getUnits\n .getAll()\n .then(units => {\n setUnits({ units, currentUnit: units[0].codigoUnidade })\n })\n .catch(handleError)\n }, [])\n )\n\n return (\n \n \n \n }\n />\n \n \n \n \n \n \n \n \n \n \n \n \n \n \n {hasChanged() && }\n \n \n \n )\n}\n","import React from 'react'\nimport { makeGetTheme, makeGetUnits, makeSaveTheme, makeUploadFile } from '@/main/factories/usecases'\nimport { Theme } from '@/presentation/pages/Theme'\n\nexport const makeThemeFactory = (): JSX.Element => {\n return (\n \n )\n}\n","import { layoutStyles } from '@/presentation/styles/globals'\nimport { StyleSheet } from 'react-native'\n\nexport const styles = StyleSheet.create({\n container: {\n flex: 1,\n alignItems: 'stretch'\n },\n content: {\n ...layoutStyles.pageContent\n },\n scroll: {\n paddingBottom: 60\n },\n\n footerContainer: {\n flexDirection: 'row-reverse',\n alignItems: 'center',\n height: '100%',\n padding: 16\n },\n toolbar: {\n display: 'flex',\n flexDirection: 'row',\n alignItems: 'center',\n justifyContent: 'space-between'\n }\n})\n","import React, { useCallback } from 'react'\nimport { SafeAreaView } from 'react-native'\nimport { useFocusEffect } from '@react-navigation/native'\nimport { ScrollView } from 'react-native-gesture-handler'\nimport { useRecoilState, useSetRecoilState } from 'recoil'\nimport { MaterialCommunityIcons } from '@expo/vector-icons'\nimport { useErrorHandler, useMediaQueries, useProspectSettings, useTheme, useThemeClient } from '@/presentation/hooks'\nimport { GetProspectConfigs, GetUnits, SaveProspectConfigs, SaveProspectConfigsParams } from '@/domain/usecases'\nimport { Box, PageHeader, Loading, HStack, Checkbox, Text, TextInput, Button, VStack } from '@/presentation/components'\nimport { ActionsButtons, ModalAddConfigUnit, ModalDeleteOption, ModalOnDiscardChanges, ModalOnSaveChanges, TableAreaOfInterest, isLoadingState, isOpenAddConfigUnitState, prospectConfigsState, prospectUnitsState } from '@/presentation/pages/ProspectSettings/components'\nimport { styles } from './styles'\n\ntype ProspectSettingsProps = {\n getProspectConfigs: GetProspectConfigs\n saveProspectConfigs: SaveProspectConfigs\n getUnits: GetUnits\n}\n\nexport const ProspectSettings: React.FC = ({\n getProspectConfigs,\n saveProspectConfigs,\n getUnits\n}) => {\n const theme = useTheme()\n const { getThemeClient } = useThemeClient()\n const { isMobile } = useMediaQueries()\n const { startConfig, hasChanged } = useProspectSettings()\n const [isLoading, setLoading] = useRecoilState(isLoadingState)\n const [prospectConfigs, setProspectConfigs] = useRecoilState(prospectConfigsState)\n const setAddOptionOpen = useSetRecoilState(isOpenAddConfigUnitState)\n const setUnits = useSetRecoilState(prospectUnitsState)\n const handleError = useErrorHandler()\n\n const themeClient = getThemeClient()\n\n useFocusEffect(\n useCallback(() => {\n setLoading(true)\n\n getUnits\n .getAll()\n .then(setUnits)\n .catch(handleError)\n\n getProspectConfigs\n .getAll()\n .then(startConfig)\n .catch(handleError)\n .finally(() => setLoading(false))\n }, [])\n )\n\n const handleChange = (param: keyof SaveProspectConfigsParams, value: boolean | string): void => {\n setProspectConfigs(currentState => ({ ...currentState, [param]: value }))\n }\n\n return (\n \n \n {isLoading\n ? \n : <>\n }\n />\n \n \n handleChange('ativo', !prospectConfigs.ativo)}\n color={themeClient.mainColor}\n />\n Ativar cadastro de Prospect\n \n {prospectConfigs.ativo &&\n \n \n handleChange('descricao', text)}\n maxLength={50}\n style={{\n width: isMobile ? '100%' : 500,\n marginBottom: isMobile ? 10 : 0\n }}\n />\n }\n color={themeClient.mainColor}\n tintColor={theme.colors.white}\n onPress={() => setAddOptionOpen(true)}\n style={{ width: isMobile ? '100%' : 'fit-content' }}\n />\n \n \n \n }\n \n {hasChanged() && }\n \n }\n \n \n \n \n \n \n )\n}\n","import React from 'react'\nimport { ProspectSettings } from '@/presentation/pages/ProspectSettings'\nimport { makeGetProspectConfigs, makeGetUnits, makeSaveProspectConfigs } from '@/main/factories/usecases'\n\nexport const makeProspectSettingsFactory = (): JSX.Element => {\n return (\n \n )\n}\n","import { layoutStyles } from '@/presentation/styles/globals'\nimport { StyleSheet } from 'react-native'\n\nexport const styles = StyleSheet.create({\n container: {\n flex: 1,\n alignItems: 'stretch'\n },\n content: {\n ...layoutStyles.pageContent\n },\n scroll: {\n paddingBottom: 60\n },\n\n headerContainer: {\n width: '100%',\n flexDirection: 'row',\n justifyContent: 'space-between'\n },\n\n footerContainer: {\n flexDirection: 'row-reverse',\n alignItems: 'center',\n height: '100%',\n padding: 16\n },\n toolbar: {\n display: 'flex',\n flexDirection: 'row',\n alignItems: 'center',\n justifyContent: 'space-between'\n },\n\n selectorContainer: {\n display: 'flex',\n flexDirection: 'row',\n width: '100%',\n justifyContent: 'space-between',\n borderRadius: 4\n },\n selectorContainerMobile: {\n display: 'flex',\n flexDirection: 'column',\n width: '100%',\n justifyContent: 'space-between',\n borderRadius: 4\n },\n selectBox: {\n width: '100%',\n display: 'flex',\n flexDirection: 'column',\n justifyContent: 'flex-start'\n },\n titleBox: {\n textAlign: 'center',\n fontWeight: '500',\n fontSize: 14\n },\n optionBox: {\n width: '100%',\n display: 'flex',\n flexDirection: 'column',\n justifyContent: 'center',\n alignItems: 'center'\n },\n optionSelectorChip: {\n border: '1px solid rgba(0, 0, 0, 0.40)',\n borderRadius: 4,\n width: '18.5rem',\n display: 'flex',\n alignItems: 'center',\n cursor: 'pointer',\n marginTop: 8,\n fontWeight: '500',\n fontSize: 14\n },\n\n optionIcon: {\n color: 'rgba(0, 0, 0, 0.70)',\n marginTop: 12,\n marginBottom: 12,\n marginLeft: 16,\n marginRight: 16\n },\n\n optionText: {\n color: 'rgba(0, 0, 0, 0.70)',\n fontWeight: '500',\n fontSize: 14,\n overflow: 'hidden',\n whiteSpace: 'noWrap',\n textOverflow: 'ellipsis',\n marginRight: 16\n },\n\n tooltip: {\n marginTop: 32,\n fontWeight: '500',\n color: 'rgba(0, 0, 0, 0.32)',\n fontSize: 14\n }\n})\n","import React, { useCallback, useEffect } from 'react'\nimport { SafeAreaView } from 'react-native'\nimport { useRecoilState, useResetRecoilState } from 'recoil'\nimport { ScrollView } from 'react-native-gesture-handler'\nimport { useFocusEffect } from '@react-navigation/native'\nimport { MaterialCommunityIcons } from '@expo/vector-icons'\nimport { useErrorHandler, useEventsSettings, useMediaQueries, useTheme } from '@/presentation/hooks'\nimport { ShowEvents, GetEventsSettings, GetSigmaDeskConnections } from '@/domain/usecases'\nimport { Box, PageHeader, Loading, VStack, Text, Select, EmptyList, InputField, Divider } from '@/presentation/components'\nimport { ActionsButtons, ModalOnDiscardChanges, ModalOnSaveChanges, eventsSettingsState, isLoadingState, isOpenConnectionMenuState, sigmaDeskConnectionsState } from '@/presentation/pages/EventsSettings/components'\nimport { TiposEventosModel } from '@/domain/models'\nimport { styles } from './styles'\n\ntype EventsSettingsProps = {\n getSigmaDeskConnections: GetSigmaDeskConnections\n getEventsSettings: GetEventsSettings\n showEvents: ShowEvents\n}\n\nexport const EventsSettings: React.FC = ({ getSigmaDeskConnections, getEventsSettings, showEvents }) => {\n const theme = useTheme()\n const { isMobile } = useMediaQueries()\n const [isLoading, setLoading] = useRecoilState(isLoadingState)\n const [connections, setConnections] = useRecoilState(sigmaDeskConnectionsState)\n const [isOpenConnectionMenu, setOpenConnectionMenu] = useRecoilState(isOpenConnectionMenuState)\n const { startConfig, hasChanged } = useEventsSettings()\n const [events, setEvents] = useRecoilState(eventsSettingsState)\n const resetEvents = useResetRecoilState(eventsSettingsState)\n const handleError = useErrorHandler()\n\n const handleBounceEvent = (codEvento: string, show: boolean): void => {\n let eventosTodos: TiposEventosModel[]\n let eventosExibidos: TiposEventosModel[]\n\n if (show) {\n const selectedEvent = events.listaTipos\n .find(event => event.codigo === codEvento) as TiposEventosModel\n\n eventosTodos = events.listaTipos\n .filter(event => event.codigo !== selectedEvent.codigo)\n\n eventosExibidos = [...events.listaExibidos, selectedEvent]\n } else {\n const selectedEvent = events.listaExibidos\n .find(event => event.codigo === codEvento) as TiposEventosModel\n\n eventosExibidos = events.listaExibidos\n .filter(event => event.codigo !== selectedEvent.codigo)\n\n eventosTodos = [...events.listaTipos, selectedEvent]\n }\n\n const newConfig = Object.assign({}, events)\n newConfig.listaTipos = eventosTodos\n newConfig.listaExibidos = eventosExibidos\n\n setEvents(newConfig)\n }\n\n const onDrag = (event: React.DragEvent, codEvento: string): void => {\n event.dataTransfer.setData('codEvento', codEvento)\n }\n\n const onDrop = (event: React.DragEvent, show: boolean): void => {\n const codEvento = event.dataTransfer.getData('codEvento')\n handleBounceEvent(codEvento, show)\n }\n\n const handleClick = (codEvento: string, show: boolean): void => {\n handleBounceEvent(codEvento, show)\n }\n\n const acceptDrop = (event: React.DragEvent): void => {\n event.preventDefault()\n }\n\n const handleGetEvents = (): void => {\n resetEvents()\n setLoading(true)\n\n const params = {\n codInterno: getSelectedConnection() as number\n }\n\n getEventsSettings\n .getAll(params)\n .then(startConfig)\n .catch(handleError)\n .finally(() => setLoading(false))\n }\n\n const handleSelectConnection = (id: number): void => {\n const updatedConnections = connections.map((connection) => {\n if (connection.id === id) return { ...connection, isSelected: true }\n else if (connection.isSelected) return { ...connection, isSelected: false }\n\n return connection\n })\n\n resetEvents()\n setConnections(updatedConnections)\n }\n\n const getSelectedConnection = (type: 'description' | 'id' = 'id'): number | string => {\n const selectedConnection = connections?.find((connection) => connection.isSelected)\n\n if (type === 'description') {\n return selectedConnection ? selectedConnection.descricao : ''\n } else {\n return selectedConnection ? selectedConnection.id : 0\n }\n }\n\n useEffect(() => { getSelectedConnection() !== 0 && handleGetEvents() }, [connections])\n\n useFocusEffect(\n useCallback(() => {\n getSigmaDeskConnections\n .getAll()\n .then(setConnections)\n .catch(handleError)\n }, [])\n )\n\n return (\n \n \n \n }\n />\n setOpenConnectionMenu(true)}\n style={{ marginBottom: 8 }}\n />\n \n {(getSelectedConnection() !== 0)\n ? isLoading\n ? \n : <>\n \n \n * Caso nenhum evento seja selecionado para ser exibido, todos os eventos serão listados.\n \n { isMobile &&\n \n ** Clique sobre o item para muda-lo de listagem.\n \n }\n \n\n \n \n onDrop(event, true)}\n onDragOver={(event) => acceptDrop(event)}\n >\n Eventos Exibidos\n
\n {events?.listaExibidos?.map((eventoExibido) => (\n onDrag(event, eventoExibido.codigo)}\n onClick={() => handleClick(eventoExibido.codigo, false)}\n style={styles.optionSelectorChip}\n >\n \n {`${eventoExibido.codigoExibicao} - ${eventoExibido.descricao}`}\n
\n ))}\n \n \n \n onDrop(event, false)}\n onDragOver={(event) => acceptDrop(event)}\n >\n Eventos Ocultos\n
\n {events?.listaTipos?.map((eventoComum) =>\n onDrag(event, eventoComum.codigo)}\n style={styles.optionSelectorChip}\n onClick={() => handleClick(eventoComum.codigo, true)}\n >\n \n {`${eventoComum.codigoExibicao} - ${eventoComum.descricao}`}\n
\n )}\n \n \n
\n
\n {hasChanged() && }\n \n : (connections.length > 0)\n ? \n : \n }\n
\n \n \n setOpenConnectionMenu(false)}\n onSelect={(id) => handleSelectConnection(id)}\n title={'Selecione a conexão de monitoramento'}\n items={connections}\n />\n
\n )\n}\n","import React from 'react'\nimport { EventsSettings } from '@/presentation/pages/EventsSettings'\nimport { makeShowEvents, makeGetEventsSettings, makeGetSigmaDeskConnectionsFactory } from '@/main/factories/usecases'\n\nexport const makeEventsSettingsFactory = (): JSX.Element => {\n return (\n \n )\n}\n","import { TicketModel } from '@/domain/models'\nimport { atom } from 'recoil'\n\nexport const isLoadingFinancialState = atom({\n key: 'isLoadingFinancialState',\n default: true\n})\n\nexport const isLoadingOpenBankSlip = atom({\n key: 'isLoadingOpenBankSlip',\n default: false\n})\n\nexport const ticketsState = atom({\n key: 'ticketsState',\n default: [] as TicketModel[]\n})\n","import { CardFlagsTypes } from '@/domain/models'\n\nexport const getCreditCardType = (creditCardNumber: string): CardFlagsTypes => {\n let result: CardFlagsTypes | 'unknown' = 'unknown'\n\n if (/^5[1-5]/.test(creditCardNumber)) {\n result = 'mastercard'\n } else if (/^4/.test(creditCardNumber)) {\n result = 'visa'\n } else if (/^3[47]/.test(creditCardNumber)) {\n result = 'amex'\n } else if (/3(?:0[0-5]|[68][0-9])[0-9]{11}/.test(creditCardNumber)) {\n result = 'diners'\n } else if (/6(?:011|5[0-9]{2})[0-9]{12}/.test(creditCardNumber)) {\n result = 'discover'\n }\n\n return result\n}\n","export const getValidityDate = (dataString: string): string => {\n const [mesStr, anoStr] = dataString.split('/')\n const mes = parseInt(mesStr)\n const ano = parseInt(anoStr)\n const dataAtual = new Date()\n const dia = dataAtual.getDate()\n const data = new Date(ano, mes - 1, dia)\n return data.toISOString()\n}\n","\nimport { CardFlagsTypes } from '@/domain/models'\nimport { atom } from 'recoil'\n\nexport const isLoadingState = atom({\n key: 'isLoadingCreditCardState',\n default: true\n})\n\nexport const isEditableState = atom({\n key: 'isEditableCreditCardState',\n default: true\n})\n\nexport const creditCardState = atom({\n key: 'creditCardState',\n default: {\n ccv: '',\n codCliente: 0,\n email: '',\n expiracao: '',\n mask: '9999 9999 9999 9999',\n nome: '',\n numero: '',\n type: 'unknown' as CardFlagsTypes,\n vencimento: ''\n }\n})\n","import React from 'react'\nimport { StyleSheet } from 'react-native'\nimport { MaterialCommunityIcons } from '@expo/vector-icons'\nimport { CreditCardModel } from '@/domain/models'\nimport { useThemeClient } from '@/presentation/hooks'\nimport { Box, HStack, TextInput, VStack } from '@/presentation/components'\nimport { numberMask, validityCardMask } from '@/presentation/utils'\n\ntype AddNewCreditCardProps = {\n creditCard: CreditCardModel\n onChange: (field: string, value: string) => void\n isLoading: boolean\n isEditable: boolean\n}\n\nexport const AddNewCreditCard: React.FC = ({\n creditCard,\n onChange,\n isEditable,\n isLoading\n}) => {\n const { getThemeClient } = useThemeClient()\n\n const themeClient = getThemeClient()\n\n return (\n \n \n onChange('nome', text)}\n />\n onChange('numero', text)}\n />\n \n }\n onChangeText={(text) => onChange('expiracao', validityCardMask(text))}\n />\n onChange('ccv', numberMask(text))}\n />\n \n \n \n )\n}\n\nconst styles = StyleSheet.create({\n formArea: {\n width: '100%',\n maxWidth: 428,\n padding: 16\n }\n})\n","export const validityCardMask = (value: string): string => {\n const cleanedText = value.replace(/[^0-9]/g, '')\n let formattedText = cleanedText\n\n if (cleanedText.length <= 2) {\n formattedText = cleanedText\n } else {\n formattedText = cleanedText.slice(0, 2) + '/' + cleanedText.slice(2)\n }\n\n return formattedText\n}\n","export const numberMask = (value: string): string => {\n return value.replace(/[^0-9]/g, '')\n}\n","import React from 'react'\nimport { StyleSheet, Image, ImageBackground } from 'react-native'\nimport { useMediaQueries, useTheme, useThemeClient } from '@/presentation/hooks'\nimport { Box, HStack, Text, VStack } from '@/presentation/components'\nimport { CreditCardModel } from '@/domain/models'\n\ntype CredCardProps = {\n creditCard: CreditCardModel\n}\n\nexport const CreditCard: React.FC = ({ creditCard }) => {\n const theme = useTheme()\n const { isMobile } = useMediaQueries()\n const { getThemeClient } = useThemeClient()\n\n const themeClient = getThemeClient()\n\n return (\n \n \n \n \n \n \n {creditCard?.numero}\n \n \n {creditCard?.nome}\n \n {creditCard?.expiracao}\n {creditCard?.ccv}\n \n \n \n \n \n )\n}\n\nconst styles = StyleSheet.create({\n container: {\n flex: 1,\n maxWidth: 428,\n borderRadius: 4\n },\n card: {\n width: '100%',\n maxWidth: 428,\n padding: 16,\n paddingBottom: 32,\n flex: 1,\n borderRadius: 4,\n justifyContent: 'space-between',\n shadowColor: 'rgba(0, 0, 0, 0.12)',\n shadowOffset: {\n width: 4,\n height: 8\n },\n shadowRadius: 8,\n borderColor: 'rgba(0, 0, 0, 0.12)',\n borderWidth: 1\n },\n insideLogo: {\n height: 38,\n width: 102,\n alignSelf: 'flex-end'\n },\n chipCard: {\n height: 38,\n width: 52,\n marginLeft: 16\n },\n text: {\n fontSize: 18,\n letterSpacing: 4\n }\n})\n","import { StyleSheet } from 'react-native'\n\nexport const styles = StyleSheet.create({\n container: {\n display: 'flex',\n gap: 18\n },\n buttonArea: {\n display: 'flex',\n flexDirection: 'row',\n justifyContent: 'flex-end',\n gap: 8\n }\n})\n","import React from 'react'\nimport { useRecoilState, useSetRecoilState } from 'recoil'\nimport { Box, Button, Text, ModalBase } from '@/presentation/components'\nimport { useTheme } from '@/presentation/hooks'\nimport { creditCardState, isEditableState, isOpenEditConfirmationState } from '@/presentation/pages/Cartao/components'\nimport { styles } from './styles'\n\nexport const ModalModalEditConfirmation: React.FC = () => {\n const theme = useTheme()\n const [isOpen, setOpen] = useRecoilState(isOpenEditConfirmationState)\n const setCreditCard = useSetRecoilState(creditCardState)\n const setEditable = useSetRecoilState(isEditableState)\n\n const handleClose = (): void => {\n setOpen(false)\n }\n\n const handleEdit = (): void => {\n setEditable(true)\n setOpen(false)\n setCreditCard(currentState => ({\n ...currentState,\n numero: '',\n ccv: ''\n }))\n }\n\n return (\n \n \n Deseja realmente alterar os dados do cartão?\n O número e CVC do cartão deverão ser informados novamente.\n\n \n \n \n \n \n \n )\n}\n","\nimport { atom } from 'recoil'\n\nexport const isOpenEditConfirmationState = atom({\n key: 'isOpenEditConfirmationState',\n default: false\n})\n","import { CardFlagsTypes } from '@/domain/models'\nimport { atom } from 'recoil'\n\nexport const isOpenAddOtherCreditCardState = atom({\n key: 'isOpenAddOtherCreditCardState',\n default: false\n})\n\nexport const otherCreditCardState = atom({\n key: 'otherCreditCardState',\n default: {\n ccv: '',\n codCliente: 0,\n email: '',\n expiracao: '',\n mask: '9999 9999 9999 9999',\n nome: '',\n numero: '',\n type: 'unknown' as CardFlagsTypes,\n vencimento: ''\n }\n})\n\nexport const errorAddOtherCreditCardState = atom({\n key: 'errorAddOtherCreditCardState',\n default: ''\n})\n","import React from 'react'\nimport { useRecoilState, useSetRecoilState } from 'recoil'\nimport { ScrollView } from 'react-native-gesture-handler'\nimport { MaterialIcons } from '@expo/vector-icons'\nimport { CardFlagsTypes, cardMaskByFlag } from '@/domain/models'\nimport { Button, HStack, ModalBase, Text, VStack } from '@/presentation/components'\nimport { getCreditCardType } from '@/presentation/utils'\nimport { AddNewCreditCard, CreditCard } from '@/presentation/pages/Cartao/components'\nimport { useAuth, useMediaQueries, useTheme, useThemeClient } from '@/presentation/hooks'\nimport { creditCardsState, isOpenTicketViewState } from '@/presentation/pages/Financial/components'\nimport { errorAddOtherCreditCardState, isOpenAddOtherCreditCardState, otherCreditCardState } from './atom'\n\nexport const AddOtherCreditCard: React.FC = () => {\n const theme = useTheme()\n const { getClient } = useAuth()\n const { isMobile } = useMediaQueries()\n const { getThemeClient } = useThemeClient()\n const [isOpen, setOpen] = useRecoilState(isOpenAddOtherCreditCardState)\n const [otherCreditCard, setOtherCreditCard] = useRecoilState(otherCreditCardState)\n const setOpenTicketView = useSetRecoilState(isOpenTicketViewState)\n const setCreditCards = useSetRecoilState(creditCardsState)\n const [error, setError] = useRecoilState(errorAddOtherCreditCardState)\n\n const client = getClient()\n const themeClient = getThemeClient()\n\n const handleChange = (name: string, value: string): void => {\n setOtherCreditCard((prevState) => ({\n ...prevState,\n [name]: value,\n type: getCreditCardType(prevState.numero),\n mask: cardMaskByFlag[prevState.type],\n email: client.email\n }))\n setError('')\n }\n\n const handleResetCard = (): void => {\n setOtherCreditCard(currentState => ({\n ...currentState,\n numero: '',\n nome: '',\n ccv: '',\n expiracao: '',\n mask: '9999 9999 9999 9999',\n type: 'unknown' as CardFlagsTypes,\n vencimento: ''\n }))\n }\n\n const handleAddCreditCard = (): void => {\n if (isValidDataCard()) {\n handleClose()\n setCreditCards(currentState => [...currentState, otherCreditCard])\n handleResetCard()\n } else {\n setError('Todos os dados do cartão devem ser informados')\n }\n }\n\n const handleClose = (): void => {\n setOpen(false)\n setOpenTicketView(true)\n setError('')\n }\n\n const isValidDataCard = (): boolean => {\n if (\n !otherCreditCard.nome ||\n !otherCreditCard.numero ||\n !otherCreditCard.expiracao ||\n !otherCreditCard.ccv ||\n otherCreditCard.numero.includes('*')\n ) {\n return false\n } else {\n return true\n }\n }\n\n return (\n \n \n Adicionar Cartão {isMobile ? '' : 'para pagamento'}\n \n \n \n \n {error &&\n \n \n Todos os dados do cartão devem ser informados\n \n }\n \n \n \n \n \n \n \n \n )\n}\n","import { StyleSheet } from 'react-native'\nexport { default as CopyIcon } from '@expo/vector-icons/MaterialCommunityIcons'\nexport { default as MaterialIcons } from '@expo/vector-icons/MaterialIcons'\n\nexport const styles = StyleSheet.create({\n container: {\n padding: 16,\n margin: 0,\n width: '100%',\n minWidth: 280,\n height: 'fit-content',\n fontSize: 14,\n overflow: 'hidden',\n borderRadius: 14,\n shadowColor: 'rgba(0, 0, 0, 0.04)',\n shadowOffset: {\n width: 4,\n height: 8\n },\n shadowRadius: 4,\n backgroundPosition: '100%',\n backgroundSize: '8px 100%',\n backgroundRepeat: 'no-repeat'\n },\n statusIcon: {\n height: 20,\n width: 20\n },\n title: {\n fontWeight: '500',\n fontSize: 24\n },\n textStatus: {\n marginTop: 4,\n fontSize: 14\n }\n})\n","import React from 'react'\nimport { useRecoilState, useSetRecoilState } from 'recoil'\nimport { TouchableOpacity } from 'react-native'\nimport { BANK, TicketModel } from '@/domain/models'\nimport { GenerateInsideBankSlip, GetTicketPix, OpenBankSlip, OpenBankSlipParams } from '@/domain/usecases'\nimport { DateAdapter } from '@/data/protocols'\nimport { useAuth, useFormat, useNotify, useTheme } from '@/presentation/hooks'\nimport { Box, Text, IconButton, HStack, Clipboard, Chip, PixIcon } from '@/presentation/components'\nimport { isLoadingOpenBankSlip, isOpenTicketPixState, isOpenTicketViewState, currentTicketPixState, ticketViewState } from '@/presentation/pages/Financial/components'\nimport { styles, CopyIcon, MaterialIcons } from './styles'\n\nconst FORMAT_DATE_DESCRIPTION = 'DD/MM/YY'\n\ntype CardTicketProps = {\n ticket: TicketModel\n openBankSlip: OpenBankSlip\n getTicketPix: GetTicketPix\n dateAdapter: DateAdapter\n current?: boolean\n}\n\nexport const INFO_INSIDE_SLIP_BANK = `O boleto só será atualizado ${GenerateInsideBankSlip.RN.TOTAL_DAYS_BEFORE_NEW_UPDATE} dias após o vencimento. Você pode realizar o pagamento dele, mesmo estando vencido, em qualquer agência bancária em até 58 dias`\n\nexport const CardTicket: React.FC = ({\n ticket,\n openBankSlip,\n dateAdapter,\n current = false\n}) => {\n const theme = useTheme()\n const notify = useNotify()\n const { getClient } = useAuth()\n const { formatCurrency } = useFormat()\n const setCurrentTicketPix = useSetRecoilState(currentTicketPixState)\n const setOpenPix = useSetRecoilState(isOpenTicketPixState)\n const setOpen = useSetRecoilState(isOpenTicketViewState)\n const setTicketView = useSetRecoilState(ticketViewState)\n\n const [isLoading, setLoading] = useRecoilState(isLoadingOpenBankSlip)\n\n const client = getClient()\n const daysOfArrears = dateAdapter.diffInDays({ startDate: dateAdapter.today(), endDate: dateAdapter.parse(ticket.vencimento) })\n\n const handleCopyBarCode = (): void => {\n Clipboard.setString(ticket.linhaDigitavel)\n notify.show('Código de barras copiado com sucesso')\n }\n\n const handleOpenPDFBankSlip = (): void => {\n setLoading(true)\n\n const params: OpenBankSlipParams = {\n codigoCliente: ticket.cliente,\n nossoNumero: ticket.nossoNumero,\n codBanco: ticket.codBanco,\n dtVencimento: ticket.vencimento,\n registrado: ticket.registrado,\n linkBoleto: ticket.linkBoleto,\n novaVersao: client.novaVersao\n }\n\n openBankSlip\n .openPDF(params)\n .then(() => notify.show(`A fatura Nº ${ticket.numero} e vencimento ${dateAdapter.format(ticket.vencimento)} foi aberta em uma nova aba`))\n .catch(error => notify.show(error, { variant: 'error' }))\n .finally(() => setLoading(false))\n }\n\n const handleOpenPix = (codInterno: number): void => {\n setOpenPix(true)\n setCurrentTicketPix(codInterno)\n }\n\n const handleOpenTicketView = (ticket: TicketModel): void => {\n setTicketView(ticket)\n setOpen(true)\n }\n\n const statusColor = {\n paga: theme.colors.success,\n 'em Aberto': theme.colors.info,\n vencida: theme.colors.error,\n venceHoje: theme.colors.secondary\n }[ticket.situacao]\n\n const containerStyles = {\n ...styles.container,\n backgroundColor: theme.colors.white,\n color: theme.colors.greyLighten,\n backgroundImage: `linear-gradient(to right, ${statusColor}, ${statusColor})`\n }\n\n const textStatusStyles = {\n ...styles.textStatus,\n color: theme.colors.textsLight\n }\n\n const amountStyles = {\n ...styles.title,\n color: ticket.situacao === 'paga' ? theme.colors.textsLighten : theme.colors.texts\n }\n\n const makeTags = (): JSX.Element =>\n \n {current && }\n {ticket.situacao === 'venceHoje' && }\n {ticket.saldo > 0 && ticket.situacao === 'vencida' && ticket.atraso > 0 &&\n 1 ? 's' : ''} de atraso`} />\n }\n \n\n const makePaid = (): JSX.Element => {\n return (\n <>\n \n \n \n Fatura {ticket.numero.toLowerCase().padStart(6, '0')}\n \n \n {formatCurrency(ticket.valorDuplicata)}\n \n \n \n \n \n \n \n Você pagou em {dateAdapter.format(ticket.vencimento, FORMAT_DATE_DESCRIPTION)}\n \n \n vencimento {dateAdapter.format(ticket.vencimento)}\n \n \n \n )\n }\n\n const makeExpired = (): JSX.Element => {\n return (\n <>\n \n \n \n Fatura Vencida {ticket.numero.toLowerCase().padStart(6, '0')}\n \n \n {formatCurrency(ticket.saldo)}\n \n \n \n {[BANK.BoletoInside].includes(ticket.codBanco) &&\n }\n onPress={() => handleOpenPix(ticket.codInterno)}\n disabled={isLoading}\n />\n }\n {!!ticket.linhaDigitavel &&\n !!ticket.nossoNumero &&\n }\n onPress={handleCopyBarCode}\n disabled={isLoading}\n />\n }\n {(!!ticket.nossoNumero || !!ticket.linkBoleto) &&\n }\n onPress={handleOpenPDFBankSlip}\n disabled={isLoading}\n />\n }\n \n \n \n \n venceu em {dateAdapter.format(ticket.vencimento)}\n \n \n {makeTags()}\n \n )\n }\n\n const makeOpened = (): JSX.Element => {\n return (\n <>\n \n \n \n Fatura {current ? 'Atual' : ''} {ticket.numero.toLowerCase().padStart(6, '0')}\n \n \n {formatCurrency(ticket.saldo)}\n \n \n \n {[BANK.BoletoInside].includes(ticket.codBanco) &&\n }\n onPress={() => handleOpenPix(ticket.codInterno)}\n disabled={isLoading}\n />\n }\n {!!ticket.linhaDigitavel &&\n !!ticket.nossoNumero &&\n }\n onPress={handleCopyBarCode}\n disabled={isLoading}\n />\n }\n {(!!ticket.nossoNumero || !!ticket.linkBoleto) &&\n }\n onPress={handleOpenPDFBankSlip}\n disabled={isLoading}\n />\n }\n \n \n \n \n vencimento {dateAdapter.format(ticket.vencimento)}\n \n \n {makeTags()}\n \n )\n }\n\n return (\n handleOpenTicketView(ticket)}\n >\n {{\n paga: makePaid(),\n vencida: makeExpired(),\n 'em Aberto': makeOpened(),\n venceHoje: makeOpened()\n }[ticket.situacao]}\n \n )\n}\n","import React from 'react'\nimport { TouchableOpacity } from 'react-native'\nimport { useRecoilState } from 'recoil'\nimport { MaterialIcons } from '@expo/vector-icons'\nimport { CreditCardModel } from '@/domain/models'\nimport { useMediaQueries, useThemeClient } from '@/presentation/hooks'\nimport { Checkbox, HStack, Text, VStack } from '@/presentation/components'\nimport { creditCardSelectedState } from '@/presentation/pages/Financial/components'\n\ntype CreditCardItemProps = {\n creditCard: CreditCardModel\n isEditable?: boolean\n}\n\nexport const CreditCardItem: React.FC = ({\n creditCard,\n isEditable = true\n}) => {\n const { getThemeClient } = useThemeClient()\n const { isMobile } = useMediaQueries()\n const [creditCardSelected, setCreditCardSelected] = useRecoilState(creditCardSelectedState)\n\n const themeClient = getThemeClient()\n const isSelected = creditCard.numero === creditCardSelected?.numero\n\n return (\n {\n isSelected\n ? setCreditCardSelected(null as unknown as CreditCardModel)\n : setCreditCardSelected(creditCard)\n }}\n >\n \n \n \n \n \n \n {creditCard.nome}\n \n \n **** **** **** {creditCard.numero.slice(-4)}\n \n \n {isEditable &&\n {\n isSelected\n ? setCreditCardSelected(null as unknown as CreditCardModel)\n : setCreditCardSelected(creditCard)\n }}\n />\n }\n \n \n )\n}\n","import { StyleSheet } from 'react-native'\nexport { default as MarkerIcon } from '@expo/vector-icons/Foundation'\n\nexport const styles = StyleSheet.create({\n container: {\n display: 'flex',\n paddingTop: 12\n },\n title: {\n fontWeight: '700',\n marginBottom: 8\n }\n})\n","import React, { useState } from 'react'\nimport { useRecoilState, useRecoilValue, useSetRecoilState } from 'recoil'\nimport { ScrollView } from 'react-native-gesture-handler'\nimport { PayWithCreditCard } from '@/domain/usecases'\nimport { useAuth, useErrorHandler, useFormat, useNotify, useTheme } from '@/presentation/hooks'\nimport { Button, Chip, Loading, Text, VStack } from '@/presentation/components'\nimport { CreditCardItem, creditCardSelectedState, isLoadingCreditCardsState, isOpenAddOtherCreditCardState, isOpenCreditCardsState, isOpenTicketViewState, ticketViewState } from '@/presentation/pages/Financial/components'\nimport { styles } from './styles'\n\ntype PayCreditCardsProps = {\n payWithCreditCard: PayWithCreditCard\n}\n\nexport const PayCreditCards: React.FC = ({ payWithCreditCard }) => {\n const theme = useTheme()\n const notify = useNotify()\n const { getClient } = useAuth()\n const { formatCurrency } = useFormat()\n const [isPaymentConfirmation, setPaymentConfirmation] = useState(false)\n const [isLoading, setLoading] = useRecoilState(isLoadingCreditCardsState)\n const creditCardSelected = useRecoilValue(creditCardSelectedState)\n const setOpen = useSetRecoilState(isOpenCreditCardsState)\n const setOpenOtherCreditCard = useSetRecoilState(isOpenAddOtherCreditCardState)\n const setOpenTicketView = useSetRecoilState(isOpenTicketViewState)\n const ticketView = useRecoilValue(ticketViewState)\n const handlerError = useErrorHandler()\n\n const client = getClient()\n\n const handlePay = (): void => {\n setLoading(true)\n\n payWithCreditCard\n .pay({ duplicata: ticketView, cartao: creditCardSelected })\n .then(message => {\n notify.info(message)\n })\n .catch(handlerError)\n .finally(() => {\n setOpenTicketView(false)\n setLoading(false)\n handleClose()\n })\n }\n\n const handleClose = (): void => {\n setOpen(false)\n setPaymentConfirmation(false)\n }\n\n const handleOpenOtherCreditCard = (): void => {\n setOpenTicketView(false)\n setOpenOtherCreditCard(true)\n setPaymentConfirmation(false)\n }\n\n return (\n isLoading\n ? \n : \n 0\n ? 'Selecione o cartão de crédito'\n : 'Nenhum cartão cadastrado'\n }\n color={theme.colors.info}\n variant='outlined'\n containerStyle={{ marginBottom: 8 }}\n />\n {isPaymentConfirmation\n ? \n Confirma os dados para pagamento com o cartão final {creditCardSelected?.numero?.slice(-4)} no valor de {formatCurrency(ticketView.valorAtualizado)}?\n \n \n : \n {client.listaCartoes?.map(creditCard =>\n \n )}\n \n }\n\n \n {client.listaCartoes.length > 0 &&\n isPaymentConfirmation ? handlePay() : setPaymentConfirmation(true)}\n />\n }\n {!isPaymentConfirmation &&\n \n }\n \n \n \n )\n}\n","import { atom } from 'recoil'\nimport { CreditCardModel } from '@/domain/models'\n\nexport const isLoadingCreditCardsState = atom({\n key: 'isLoadingCreditCardsState',\n default: false\n})\n\nexport const isOpenCreditCardsState = atom({\n key: 'isOpenCreditCardsState',\n default: false\n})\n\nexport const creditCardsState = atom({\n key: 'creditCardsState',\n default: [] as CreditCardModel[]\n})\n\nexport const creditCardSelectedState = atom({\n key: 'creditCardSelectedState',\n default: null as unknown as CreditCardModel\n})\n","import React from 'react'\nimport { useRecoilValue, useSetRecoilState } from 'recoil'\nimport { DateAdapter } from '@/data/protocols'\nimport { Box, ChipFilter, HStack } from '@/presentation/components'\nimport { isOpenFinancialFiltersState, ticketsFiltersState } from '@/presentation/pages/Financial/components'\nimport { useMediaQueries } from '@/presentation/hooks'\n\ntype FiltersChipPanelProps = {\n dateAdapter: DateAdapter\n}\n\nexport const FiltersChipPanel: React.FC = ({ dateAdapter }) => {\n const { isMobile } = useMediaQueries()\n const setOpen = useSetRecoilState(isOpenFinancialFiltersState)\n const filters = useRecoilValue(ticketsFiltersState)\n\n const period = dateAdapter.format(filters.dataInicio, 'DD/MM/YYYY') +\n ' até ' +\n dateAdapter.format(filters.dataFim, 'DD/MM/YYYY')\n\n const situation = {\n 'Em Aberto': isMobile ? 'Em Aberto' : 'Somente em Aberto',\n Todas: isMobile ? 'Todos' : 'Todos Status',\n Pagas: isMobile ? 'Pagas' : 'Somente Pagas'\n }[filters.situacao]\n\n return (\n \n \n setOpen(true)}\n />\n \n \n setOpen(true)}\n />\n \n \n )\n}\n","import { StyleSheet } from 'react-native'\n\nexport const styles = StyleSheet.create({\n container: {\n display: 'flex',\n gap: 18\n },\n content: {\n alignItems: 'center',\n gap: 12\n },\n buttonArea: {\n display: 'flex',\n flexDirection: 'row',\n justifyContent: 'flex-end',\n gap: 8\n }\n})\n","import React, { useCallback, useEffect, useState } from 'react'\nimport { useRecoilState, useRecoilValue } from 'recoil'\nimport { MaterialCommunityIcons } from '@expo/vector-icons'\nimport { GetTicketPix, GetTicketPixParams } from '@/domain/usecases'\nimport { TicketModel } from '@/domain/models'\nimport { DateAdapter } from '@/data/protocols'\nimport { Box, Button, Text, ModalBase, Clipboard, QRCodeSvg, Loading, Chip, HStack, VStack } from '@/presentation/components'\nimport { useErrorHandler, useFormat, useNotify, useTheme, useThemeClient } from '@/presentation/hooks'\nimport { isLoadingTicketPixState, isOpenTicketPixState, currentTicketPixState, ticketsState } from '@/presentation/pages/Financial/components'\nimport { styles } from './styles'\n\ntype ModalTicketPixProps = {\n getTicketPix: GetTicketPix\n dateAdapter: DateAdapter\n}\n\nexport const ModalTicketPix: React.FC = ({\n getTicketPix,\n dateAdapter\n}) => {\n const theme = useTheme()\n const notify = useNotify()\n const { formatCurrency } = useFormat()\n const { getThemeClient } = useThemeClient()\n const handleError = useErrorHandler(() => handleClose())\n const [currentTicketPix, setCurrentTicketPix] = useRecoilState(currentTicketPixState)\n const [isOpen, setOpen] = useRecoilState(isOpenTicketPixState)\n const [isLoading, setLoading] = useRecoilState(isLoadingTicketPixState)\n const tickets = useRecoilValue(ticketsState)\n const [pix, setPix] = useState('')\n const [ticket, setTicket] = useState()\n\n const themeClient = getThemeClient()\n\n useEffect(() => {\n if (currentTicketPix) {\n handleGetPix()\n const ticket = tickets?.find(ticket => ticket.codInterno === currentTicketPix)\n setTicket(ticket)\n } else {\n setPix('')\n }\n }, [currentTicketPix])\n\n const handleGetPix = (): void => {\n setLoading(true)\n\n const params: GetTicketPixParams = {\n codInternoDuplicata: currentTicketPix\n }\n\n getTicketPix\n .getPix(params)\n .then(pix => setPix(pix))\n .catch(handleError)\n .finally(() => setLoading(false))\n }\n\n const handleCopyPix = (): void => {\n if (pix) {\n notify.show('O pix foi copiado para área de transferência')\n Clipboard.setString(pix)\n handleClose()\n }\n }\n\n const handleClose = useCallback((): void => {\n setOpen(false)\n setCurrentTicketPix(0)\n }, [])\n\n return (\n \n \n {isLoading\n ? \n : \n \n \n \n Boleto via PIX\n \n \n \n \n Vencimento {ticket?.vencimento && dateAdapter.format(ticket?.vencimento)}\n \n \n Valor {ticket?.valorDuplicata && formatCurrency(ticket?.valorDuplicata)}\n \n \n Valor Atualizado {ticket?.valorAtualizado && formatCurrency(ticket?.valorAtualizado)}\n \n \n {!!pix &&\n \n }\n \n \n }\n />\n \n \n }\n \n \n )\n}\n","import { atom } from 'recoil'\n\nexport const isOpenTicketPixState = atom({\n key: 'isOpenTicketPixState',\n default: false\n})\n\nexport const isLoadingTicketPixState = atom({\n key: 'isLoadingTicketPixState',\n default: false\n})\n\nexport const currentTicketPixState = atom({\n key: 'currentTicketPixState',\n default: 0\n})\n","import React, { useCallback, useEffect } from 'react'\nimport { GestureResponderEvent } from 'react-native'\nimport { useRecoilState, useSetRecoilState } from 'recoil'\nimport { Box, Divider, DatePicker, InputField, SideFilter } from '@/presentation/components'\nimport { useAuth, useErrorHandler } from '@/presentation/hooks'\nimport { SelectStatusTicketFilter, isLoadingFinancialState, isOpenFinancialFiltersState, ticketsFiltersState, ticketsState } from '@/presentation/pages/Financial/components'\nimport { GetTickets, GetTicketsParams, GetTicketSituation } from '@/domain/usecases'\nimport { DateAdapter } from '@/data/protocols'\n\ntype DateParams = {\n dataInicio: string\n dataFim: string\n}\n\nexport type FiltrosFatura = {\n situacao: GetTicketSituation\n dataInicio: string\n dataFim: string\n}\n\ntype SideFiltersProps = {\n getTickets: GetTickets\n dateAdapter: DateAdapter\n}\n\nexport const MARGIN_MODALS = 30\n\nexport const SideFilters: React.FC = ({ getTickets, dateAdapter }) => {\n const { getClient } = useAuth()\n const [isOpen, setOpen] = useRecoilState(isOpenFinancialFiltersState)\n const [filters, setFilters] = useRecoilState(ticketsFiltersState)\n const [isLoading, setLoading] = useRecoilState(isLoadingFinancialState)\n const errorHandler = useErrorHandler()\n const setTickets = useSetRecoilState(ticketsState)\n\n const client = getClient()\n\n useEffect(() => {\n setFilters({\n situacao: GetTickets.RN.DEFAULT_STATUS,\n dataInicio: dateAdapter.format(dateAdapter.daysAgo(GetTickets.RN.DEFAULT_DAYS_AGO), 'YYYY-MM-DD'),\n dataFim: dateAdapter.format(dateAdapter.daysLater(GetTickets.RN.DEFAULT_DAYS_LATER), 'YYYY-MM-DD')\n })\n }, [])\n\n const handleGetTickets = (event: GestureResponderEvent): void => {\n event.preventDefault()\n setLoading(true)\n\n const paramsGetTicket: GetTicketsParams = {\n codigoCliente: client.codCliente,\n situacao: filters.situacao,\n dataInicial: dateAdapter.format(filters.dataInicio, 'YYYY-MM-DD'),\n dataFinal: dateAdapter.format(filters.dataFim, 'YYYY-MM-DD')\n }\n\n if (filters.situacao === 'Todas') {\n paramsGetTicket.dataInicial = dateAdapter.format(dateAdapter.today(), 'YYYY-MM-DD')\n paramsGetTicket.dataFinal = dateAdapter.format(dateAdapter.yearsAgo(GetTickets.RN.DEFAULT_YEARS_AGO), 'YYYY-MM-DD')\n }\n\n getTickets\n .get(paramsGetTicket)\n .then(setTickets)\n .catch(errorHandler)\n .finally(() => setLoading(false))\n\n setOpen(false)\n }\n\n const handleChangeDate = useCallback((field: keyof DateParams, date: Date): void => {\n setFilters(currentFilters => ({\n ...currentFilters,\n [field]: date.toString()\n }))\n }, [])\n\n const handleResetState = (): void => {\n setFilters({\n situacao: GetTickets.RN.DEFAULT_STATUS,\n dataInicio: dateAdapter.format(dateAdapter.daysAgo(GetTickets.RN.DEFAULT_DAYS_AGO), 'YYYY-MM-DD'),\n dataFim: dateAdapter.format(dateAdapter.daysLater(GetTickets.RN.DEFAULT_DAYS_LATER), 'YYYY-MM-DD')\n })\n }\n\n const handleClose = (): void => setOpen(false)\n\n return (\n \n \n \n \n handleChangeDate('dataInicio', date ?? dateAdapter.daysAgo(GetTickets.RN.DEFAULT_DAYS_AGO))}\n dateAdapter={dateAdapter}\n />\n \n handleChangeDate('dataFim', date ?? dateAdapter.daysLater(GetTickets.RN.DEFAULT_DAYS_LATER))}\n dateAdapter={dateAdapter}\n />\n \n \n \n \n \n \n \n )\n}\n","import { atom } from 'recoil'\nimport { GetTickets } from '@/domain/usecases'\n\nexport const isOpenFinancialFiltersState = atom({\n key: 'isOpenFinancialFiltersState',\n default: false\n})\n\nexport const ticketsFiltersState = atom({\n key: 'ticketsFiltersState',\n default: {\n situacao: GetTickets.RN.DEFAULT_STATUS,\n dataInicio: '',\n dataFim: ''\n }\n})\n","import React from 'react'\nimport { useRecoilState, useRecoilValue } from 'recoil'\nimport { RadioButton } from 'react-native-paper'\nimport { statusTicketState, ticketsFiltersState } from '@/presentation/pages/Financial/components'\nimport { useMediaQueries, useThemeClient } from '@/presentation/hooks'\nimport { GetTicketSituation } from '@/domain/usecases'\n\nexport const SelectStatusTicketFilter = (): JSX.Element => {\n const { getThemeClient } = useThemeClient()\n const { isMobile } = useMediaQueries()\n const [filters, setFilters] = useRecoilState(ticketsFiltersState)\n const statusTicket = useRecoilValue(statusTicketState)\n\n const themeClient = getThemeClient()\n\n const handleOnSelect = (selectedStatus: GetTicketSituation): void => {\n setFilters((currentFilters) => ({ ...currentFilters, situacao: selectedStatus }))\n }\n\n return (\n <>\n {\n statusTicket.map((statusOption) => (\n handleOnSelect(statusOption.value as GetTicketSituation)}\n labelStyle={{ fontSize: isMobile ? 14 : 16 }}\n style={{\n borderRadius: 4,\n borderWidth: 1,\n borderColor: `${themeClient.mainColor}26`,\n marginBottom: 8,\n paddingVertical: isMobile ? 0 : 16\n }}\n color={themeClient.mainColor}\n />\n ))\n }\n \n )\n}\n","import { atom } from 'recoil'\n\nexport const statusTicketState = atom({\n key: 'selectStatusTicketState',\n default: [\n { _id: 'Todas', value: 'Todas' },\n { _id: 'Faturas Pagas', value: 'Pagas' },\n { _id: 'Faturas em Aberto', value: 'Em Aberto' }\n ]\n})\n","import React from 'react'\nimport { useRecoilState, useSetRecoilState } from 'recoil'\nimport { MaterialIcons, MaterialCommunityIcons } from '@expo/vector-icons'\nimport { BANK, TicketModel } from '@/domain/models'\nimport { OpenBankSlip, OpenBankSlipParams } from '@/domain/usecases'\nimport { DateAdapter } from '@/data/protocols'\nimport { useAuth, useNotify, useTheme } from '@/presentation/hooks'\nimport { Button, Clipboard, VStack, PixIcon } from '@/presentation/components'\nimport { isLoadingTicketViewState, isOpenCreditCardsState, isOpenTicketPixState, currentTicketPixState, ticketViewState, isOpenTicketViewState } from '@/presentation/pages/Financial/components'\n\ntype TicketActionsViewProps = {\n openBankSlip: OpenBankSlip\n dateAdapter: DateAdapter\n}\n\nconst MARGIN_ITEMS = 8\n\nexport const TicketActions: React.FC = ({ dateAdapter, openBankSlip }) => {\n const theme = useTheme()\n const notify = useNotify()\n const { getClient } = useAuth()\n const [ticketView, setTicketView] = useRecoilState(ticketViewState)\n const setOpenTicketViewState = useSetRecoilState(isOpenTicketViewState)\n const setLoading = useSetRecoilState(isLoadingTicketViewState)\n const setOpenPix = useSetRecoilState(isOpenTicketPixState)\n const setOpenCreditCards = useSetRecoilState(isOpenCreditCardsState)\n const setCurrentTicketPix = useSetRecoilState(currentTicketPixState)\n\n const client = getClient()\n\n const handleCopyBarCode = (): void => {\n Clipboard.setString(ticketView.linhaDigitavel)\n handleClose()\n notify.show('Código de barras copiado com sucesso')\n }\n\n const handleOpenCreditCard = (): void => setOpenCreditCards(true)\n\n const handleOpenPDFBankSlip = (): void => {\n setLoading(true)\n\n const params: OpenBankSlipParams = {\n codigoCliente: ticketView?.cliente,\n nossoNumero: ticketView?.nossoNumero,\n codBanco: ticketView?.codBanco,\n dtVencimento: ticketView?.vencimento,\n registrado: ticketView?.registrado,\n linkBoleto: ticketView?.linkBoleto,\n novaVersao: client.novaVersao\n }\n\n openBankSlip\n .openPDF(params)\n .then(() => notify.show(`A fatura Nº ${ticketView?.numero} e vencimento ${dateAdapter.format(ticketView?.vencimento)} foi aberta em uma nova aba`))\n .catch(error => notify.show(error, { variant: 'error' }))\n .finally(() => {\n handleClose()\n setLoading(false)\n })\n }\n\n const handleOpenPix = (codInterno: number): void => {\n handleClose()\n setOpenPix(true)\n if (codInterno) {\n setCurrentTicketPix(codInterno)\n }\n }\n\n const handleClose = (): void => {\n setTicketView(null as unknown as TicketModel)\n setOpenTicketViewState(false)\n }\n\n return (\n \n {[BANK.BoletoInside].includes(ticketView.codBanco) &&\n }\n onPress={() => handleOpenPix(ticketView?.codInterno)}\n />\n }\n {ticketView?.permiteCartaoCredito &&\n ticketView?.atraso <= 0 &&\n !ticketView?.dupProtestada &&\n }\n onPress={handleOpenCreditCard}\n />\n }\n {!!ticketView?.linhaDigitavel && !!ticketView?.nossoNumero &&\n }\n onPress={handleCopyBarCode}\n />\n }\n {(!!ticketView?.nossoNumero || !!ticketView?.linkBoleto) &&\n }\n onPress={handleOpenPDFBankSlip}\n />\n }\n \n )\n}\n","import { StyleSheet } from 'react-native'\nexport { default as MarkerIcon } from '@expo/vector-icons/Foundation'\n\nexport const styles = StyleSheet.create({\n container: {\n display: 'flex'\n },\n title: {\n fontWeight: '700',\n marginBottom: 8\n }\n})\n","import React from 'react'\nimport { useRecoilState, useRecoilValue } from 'recoil'\nimport { BANK, TicketModel } from '@/domain/models'\nimport { GenerateInsideBankSlip, OpenBankSlip, PayWithCreditCard } from '@/domain/usecases'\nimport { DateAdapter } from '@/data/protocols'\nimport { useFormat, useTheme, useThemeClient } from '@/presentation/hooks'\nimport { ModalBase, Box, Button, Text, Chip, HStack, VStack, Loading, MessageBlock, MessageBlockStatus } from '@/presentation/components'\nimport { PayCreditCards, TicketActions, isLoadingTicketViewState, isOpenCreditCardsState, isOpenTicketViewState, ticketViewState } from '@/presentation/pages/Financial/components'\nimport { styles } from './styles'\n\ntype TicketViewViewProps = {\n openBankSlip: OpenBankSlip\n payWithCreditCard: PayWithCreditCard\n dateAdapter: DateAdapter\n}\n\nconst MARGIN_ITEMS = 8\nconst INFO_INSIDE_SLIP_BANK = `O boleto só será atualizado ${GenerateInsideBankSlip.RN.TOTAL_DAYS_BEFORE_NEW_UPDATE} dias após o vencimento. Você pode realizar o pagamento dele, mesmo estando vencido, em qualquer agência bancária em até 58 dias`\n\nexport const TicketView: React.FC = ({\n dateAdapter,\n payWithCreditCard,\n openBankSlip\n}) => {\n const theme = useTheme()\n const { getThemeClient } = useThemeClient()\n const { formatCurrency } = useFormat()\n const [ticketView, setTicketView] = useRecoilState(ticketViewState)\n const isLoading = useRecoilValue(isLoadingTicketViewState)\n const [isOpen, setOpen] = useRecoilState(isOpenTicketViewState)\n const [isPayCreditCard, setPayCreditCard] = useRecoilState(isOpenCreditCardsState)\n\n const themeClient = getThemeClient()\n const daysOfArrears = dateAdapter.diffInDays({ startDate: dateAdapter.today(), endDate: dateAdapter.parse(ticketView?.vencimento) })\n\n const handleClose = (): void => {\n setOpen(false)\n setTicketView(null as unknown as TicketModel)\n setPayCreditCard(false)\n }\n\n const colorSituationStyle = {\n paga: theme.colors.success,\n vencida: theme.colors.error,\n venceHoje: theme.colors.secondary,\n 'em Aberto': theme.colors.info\n }[ticketView?.situacao]\n\n const titleSituation = {\n paga: 'Fatura paga',\n vencida: 'Fatura vencida',\n venceHoje: 'Vencendo hoje',\n 'em Aberto': 'Fatura em Aberto'\n }[ticketView?.situacao]\n\n const styleStatusSituation = {\n paga: 'success',\n vencida: 'error',\n venceHoje: 'warning',\n 'em Aberto': 'info'\n }[ticketView?.situacao] as MessageBlockStatus\n\n const descriptionSituation = {\n paga: `Você pagou em ${dateAdapter.format(ticketView?.dataPagamento, 'DD/MM/yyyy')} o valor ${formatCurrency(ticketView?.valorPago)}`,\n vencida: `Atraso de ${daysOfArrears} dia${daysOfArrears > 1 ? 's' : ''} valor atualizado ${formatCurrency(ticketView?.valorAtualizado)}`,\n venceHoje: 'Sua fatura vence hoje efetue o pagamento para evitar juros',\n 'em Aberto': `Fatura em aberto vence em ${daysOfArrears} dia${daysOfArrears > 1 ? 's' : ''}`\n }\n\n const descriptionInsideSlipBank = {\n paga: descriptionSituation.paga,\n vencida: INFO_INSIDE_SLIP_BANK,\n venceHoje: descriptionSituation.venceHoje,\n 'em Aberto': descriptionSituation['em Aberto']\n }[ticketView?.situacao]\n\n return (\n \n \n {!ticketView || isLoading\n ? \n : \n \n \n \n \n \n \n Emissão\n \n {dateAdapter.format(ticketView?.dataEmissao, 'DD/MM/yyyy')}\n \n \n \n Vencimento\n \n {dateAdapter.format(ticketView?.vencimento, 'DD/MM/yyyy')}\n \n \n \n \n \n Valor Duplicata\n {ticketView?.saldo &&\n \n {formatCurrency(ticketView?.saldo) }\n \n }\n \n \n Valor Atualizado\n {ticketView?.valorAtualizado !== ticketView?.saldo\n ? {formatCurrency(ticketView?.valorAtualizado)}\n : {formatCurrency(ticketView?.saldo)}\n }\n \n \n \n \n Forma de Pagamento Faturado\n \n {ticketView?.nomeFormaPagto?.split('-')?.[1]?.trim()?.toUpperCase()}\n \n \n \n {!isPayCreditCard &&\n \n }\n {isPayCreditCard\n ? \n : ticketView?.situacao !== 'paga' &&\n \n }\n \n }\n \n \n \n \n \n )\n}\n","import { atom } from 'recoil'\nimport { TicketModel } from '@/domain/models'\n\nexport const isLoadingTicketViewState = atom({\n key: 'isLoadingTicketViewState',\n default: false\n})\n\nexport const ticketViewState = atom({\n key: 'ticketViewState',\n default: null as unknown as TicketModel\n})\n\nexport const isOpenTicketViewState = atom({\n key: 'isOpenTicketViewState',\n default: false\n})\n","import { layoutStyles } from '@/presentation/styles/globals'\nimport { StyleSheet } from 'react-native'\n\nexport const styles = StyleSheet.create({\n container: {\n flex: 1,\n alignItems: 'stretch'\n },\n content: {\n ...layoutStyles.pageContent\n },\n scroll: {\n paddingBottom: 60\n }\n})\n","import React, { useCallback, useRef, useState } from 'react'\nimport { SafeAreaView, RefreshControl } from 'react-native'\nimport { useRecoilState, useRecoilValue } from 'recoil'\nimport { useFocusEffect } from '@react-navigation/native'\nimport { ScrollView } from 'react-native-gesture-handler'\nimport { MaterialIcons } from '@expo/vector-icons'\nimport { GetTicketPix, GetTickets, GetTicketsParams, OpenBankSlip, PayWithCreditCard } from '@/domain/usecases'\nimport { DateAdapter } from '@/data/protocols'\nimport { useAuth, useErrorHandler, useMediaQueries, useTheme } from '@/presentation/hooks'\nimport { ActionsButtons, Box, ScrollToTopButton, PageHeader, CardList } from '@/presentation/components'\nimport { ticketsState, SideFilters, ticketsFiltersState, CardTicket, ModalTicketPix, isOpenFinancialFiltersState, FiltersChipPanel, isLoadingFinancialState, TicketView, AddOtherCreditCard } from '@/presentation/pages/Financial/components'\nimport { styles } from './styles'\n\ntype FinancialProps = {\n getTickets: GetTickets\n getTicketPix: GetTicketPix\n payWithCreditCard: PayWithCreditCard\n openBankSlip: OpenBankSlip\n dateAdapter: DateAdapter\n}\n\nexport const Financial: React.FC = ({\n dateAdapter,\n getTickets,\n getTicketPix,\n payWithCreditCard,\n openBankSlip\n}) => {\n const theme = useTheme()\n const { getClient } = useAuth()\n const handleError = useErrorHandler()\n const { isMobile } = useMediaQueries()\n const [refreshing, setRefreshing] = useState(false)\n const [tickets, setTickets] = useRecoilState(ticketsState)\n const [isOpen, setOpen] = useRecoilState(isOpenFinancialFiltersState)\n const [isLoading, setLoading] = useRecoilState(isLoadingFinancialState)\n const filters = useRecoilValue(ticketsFiltersState)\n const scrollViewRef = useRef(null)\n\n const client = getClient()\n const RN_TOTAL_ITEMS_SHOW = isMobile ? 2 : 5\n\n const currentTicket = tickets?.find(ticket => dateAdapter.parse(ticket.vencimento).getMonth() === dateAdapter.today().getMonth()) ?? tickets[0]\n const orderTickets = tickets?.filter(ticket => ticket.codInterno !== currentTicket.codInterno)\n\n useFocusEffect(\n useCallback(() => {\n setLoading(true)\n\n const paraGetTickets: GetTicketsParams = {\n codigoCliente: client.codCliente,\n situacao: filters.situacao,\n dataInicial: filters.dataInicio\n ? dateAdapter.format(filters.dataInicio)\n : dateAdapter.format(dateAdapter.daysAgo(GetTickets.RN.DEFAULT_DAYS_AGO), 'YYYY-MM-DD'),\n dataFinal: filters.dataFim\n ? dateAdapter.format(filters.dataFim)\n : dateAdapter.format(dateAdapter.daysLater(GetTickets.RN.DEFAULT_DAYS_LATER), 'YYYY-MM-DD')\n }\n\n getTickets\n .get(paraGetTickets)\n .then(setTickets)\n .catch(handleError)\n .finally(() => setLoading(false))\n }, [])\n )\n\n const handleRefreshing = (): void => {\n setRefreshing(true)\n\n const paraGetTickets: GetTicketsParams = {\n codigoCliente: client.codCliente,\n situacao: filters.situacao,\n dataInicial: filters.dataInicio\n ? dateAdapter.format(filters.dataInicio)\n : dateAdapter.format(dateAdapter.daysAgo(GetTickets.RN.DEFAULT_DAYS_AGO), 'YYYY-MM-DD'),\n dataFinal: filters.dataFim\n ? dateAdapter.format(filters.dataFim)\n : dateAdapter.format(dateAdapter.daysLater(GetTickets.RN.DEFAULT_DAYS_LATER), 'YYYY-MM-DD')\n }\n\n getTickets\n .get(paraGetTickets)\n .then(setTickets)\n .catch(handleError)\n .finally(() => setRefreshing(false))\n }\n\n const scrollToTop = useCallback((): void => {\n if (scrollViewRef.current) {\n (scrollViewRef.current as any).scrollTo({ y: 0, animated: true })\n }\n }, [])\n\n const handleOnFilter = useCallback((): void => {\n setOpen(true)\n }, [])\n\n return (\n \n \n \n }\n >\n \n }\n openFilters={handleOnFilter}\n />\n \n \n {currentTicket &&\n \n }\n {orderTickets?.map(ticket =>\n \n )}\n \n \n \n {tickets?.length > RN_TOTAL_ITEMS_SHOW &&\n !isOpen &&\n \n \n \n }\n \n \n \n \n )\n}\n","import React from 'react'\nimport { Financial } from '@/presentation/pages/Financial'\nimport { NavigationPagesProps, TabBottomNavigator } from '@/presentation/components'\nimport { makeGetTicketPix, makeGetTickets, makeOpenBankSlip, makePayWithCreditCard } from '@/main/factories/usecases'\nimport { makeDateAdapterFactory } from '@/main/adapters'\n\nexport const makeFinancialFactory = ({ navigation }: NavigationPagesProps): JSX.Element => {\n return (\n <>\n \n \n \n )\n}\n","import { atom } from 'recoil'\n\nexport const isLoadingState = atom({\n key: 'isLoadingLoginState',\n default: false\n})\n\nexport const isOpenForgotPasswordState = atom({\n key: 'isOpenForgotPasswordState',\n default: false\n})\n\nexport const loginState = atom({\n key: 'login',\n default: {\n username: '',\n password: '',\n recoveryEmail: ''\n }\n})\n","import { StyleSheet } from 'react-native'\n\nexport const styles = StyleSheet.create({\n container: {\n display: 'flex',\n gap: 18\n },\n buttonArea: {\n display: 'flex',\n flexDirection: 'row',\n justifyContent: 'flex-end',\n gap: 8\n }\n})\n","import React from 'react'\nimport { useRecoilState, useResetRecoilState } from 'recoil'\nimport { GestureResponderEvent } from 'react-native'\nimport { ForgotPassword } from '@/domain/usecases'\nimport { ModalBase, Box, Button, Text, TextInput } from '@/presentation/components'\nimport { styles } from './styles'\nimport { useNotify, useTheme } from '@/presentation/hooks'\nimport { isLoadingState, isOpenForgotPasswordState, loginState } from '../atom'\n\ntype ForgotPasswordProps = {\n username: string\n recoveryEmail: string\n}\n\ntype ModalForgotPasswordProps = {\n forgotPassword: ForgotPassword\n}\n\nexport const ModalForgotPassword: React.FC = ({ forgotPassword }) => {\n const theme = useTheme()\n const notify = useNotify()\n const [state, setState] = useRecoilState(loginState)\n const [isOpen, setOpen] = useRecoilState(isOpenForgotPasswordState)\n const [isLoading, setLoading] = useRecoilState(isLoadingState)\n const reset = useResetRecoilState(loginState)\n\n const handleChangeInput = (name: keyof ForgotPasswordProps, value: string): void => {\n setState(currentValues => ({ ...currentValues, [name]: value }))\n }\n\n const handleOnRequestAccess = (event: GestureResponderEvent): void => {\n event.preventDefault()\n setLoading(true)\n\n forgotPassword\n .requestAccess({\n codigo: state.username,\n email: state.recoveryEmail\n })\n .then(sendedEmail => {\n if (sendedEmail) {\n notify.show('Informações enviados por e-mail')\n reset()\n } else {\n notify.show('O e-mail precisa ser o mesmo utilizado no cadastro. Caso não se lembre entre em contato com a nossa equipe.', {\n variant: 'error'\n })\n }\n })\n .catch(error => notify.show(error.message, { variant: 'error' }))\n .finally(() => setLoading(false))\n\n handleCloseModal()\n }\n\n const handleCloseModal = (): void => setOpen(false)\n\n return (\n \n \n Recuperar senha\n\n handleChangeInput('username', text)}\n value={state.username}\n />\n\n handleChangeInput('recoveryEmail', text)}\n value={state.recoveryEmail}\n />\n\n \n \n \n \n \n \n )\n}\n","import { StyleSheet } from 'react-native'\n\nexport const styles = StyleSheet.create({\n container: {\n display: 'flex',\n gap: 18\n },\n buttonArea: {\n display: 'flex',\n flexDirection: 'row',\n justifyContent: 'flex-end',\n gap: 8\n },\n content: {\n gap: 8\n }\n})\n","import React from 'react'\nimport { GestureResponderEvent, TouchableOpacity } from 'react-native'\nimport { useRecoilState, useRecoilValue, useResetRecoilState } from 'recoil'\nimport { ScrollView } from 'react-native-gesture-handler'\nimport { UserModel } from '@/domain/models'\nimport { Authentication } from '@/domain/usecases'\nimport { useAuth, useNotify, useTheme } from '@/presentation/hooks'\nimport { ModalBase, Box, Button, Text, List, Loading } from '@/presentation/components'\nimport { isLoadingState, isOpenUserSelect, loginState, usersSelectState } from '@/presentation/pages/Login/components'\nimport { styles } from './styles'\n\ntype ModalUserSelectProps = {\n authentication: Authentication\n}\n\nexport const ModalUserSelect: React.FC = ({ authentication }) => {\n const theme = useTheme()\n const notify = useNotify()\n const { login } = useAuth()\n const { password } = useRecoilValue(loginState)\n const [isLoading, setLoading] = useRecoilState(isLoadingState)\n const [users, setUsersSelect] = useRecoilState(usersSelectState)\n const [isOpen, setOpen] = useRecoilState(isOpenUserSelect)\n const reset = useResetRecoilState(loginState)\n\n const handleLogin = (event: GestureResponderEvent, client: UserModel): void => {\n event.preventDefault()\n setLoading(true)\n\n authentication\n .auth({\n username: client.codCliente.toString(),\n password\n })\n .then(authToken => {\n login(authToken)\n reset()\n })\n .catch(error => notify.show(error.message, { variant: 'error' }))\n .finally(() => {\n setLoading(false)\n handleCancel()\n })\n }\n\n const handleCancel = (): void => {\n setOpen(false)\n setUsersSelect([])\n }\n\n return (\n \n \n {isLoading\n ? \n : <>\n Selecione o usuário para Login\n \n \n {users?.map(client =>\n handleLogin(event, client)}\n >\n }\n titleStyle={{ fontWeight: '600' }}\n />\n \n )}\n \n \n \n }\n\n \n \n \n \n \n )\n}\n","import { atom } from 'recoil'\nimport { UserModel } from '@/domain/models'\n\nexport const isOpenUserSelect = atom({\n key: 'isOpenUserSelect',\n default: false\n})\n\nexport const usersSelectState = atom({\n key: 'usersSelectState',\n default: [] as UserModel[]\n})\n","import { StyleSheet } from 'react-native'\n\nexport const styles = StyleSheet.create({\n container: {\n display: 'flex',\n gap: 18\n }\n})\n","import React from 'react'\nimport { GestureResponderEvent } from 'react-native'\nimport { useRecoilState, useRecoilValue, useResetRecoilState } from 'recoil'\nimport { ScrollView } from 'react-native-gesture-handler'\nimport { ProspectRegistration, ProspectRegistrationParams } from '@/domain/usecases'\nimport { ModalBase, Box, Button, Text, TextInput, VStack, InputField, HStack, Select } from '@/presentation/components'\nimport { useErrorHandler, useFormat, useNotify, useTheme } from '@/presentation/hooks'\nimport { isLoadingProspectRegistrationState, isOpenInterestAreaState, isOpenProspectRegistrationState, prospectRegistrationState, selectedInterestAreaState } from '@/presentation/pages/Login/components'\nimport { styles } from './styles'\nimport { prospectConfigsState, prospectInterestAreaState } from '@/presentation/pages/ProspectSettings/components'\n\ntype ProspectRegistrationProps = {\n prospectRegistration: ProspectRegistration\n}\n\nexport const ModalProspectRegistration: React.FC = ({ prospectRegistration }) => {\n const theme = useTheme()\n const notify = useNotify()\n const { validateCPF } = useFormat()\n const [state, setState] = useRecoilState(prospectRegistrationState)\n const [isOpen, setOpen] = useRecoilState(isOpenProspectRegistrationState)\n const [selectedInteresetArea, setSelectedInterestArea] = useRecoilState(selectedInterestAreaState)\n const [isOpenAreaIntereset, setOpenAreaInterest] = useRecoilState(isOpenInterestAreaState)\n const [isLoading, setLoading] = useRecoilState(isLoadingProspectRegistrationState)\n const prospectConfigs = useRecoilValue(prospectConfigsState)\n const interesetArea = useRecoilValue(prospectInterestAreaState)\n const reset = useResetRecoilState(prospectRegistrationState)\n const resetInteresetArea = useResetRecoilState(selectedInterestAreaState)\n const errorHandler = useErrorHandler()\n\n const handleChangeInput = (name: keyof ProspectRegistrationParams, value: string | number): void => {\n setState(currentValues => ({ ...currentValues, [name]: value }))\n }\n\n const handleRegister = (event: GestureResponderEvent): void => {\n event.preventDefault()\n setLoading(true)\n\n const params: ProspectRegistrationParams = {\n ...state,\n email: selectedInteresetArea.email,\n codUnidade: selectedInteresetArea.unidade\n }\n\n prospectRegistration\n .register(params)\n .then(() => {\n notify.show('Cadastro realizado com sucesso, aguarde o contato da empresa para continuar o acesso!')\n resetInteresetArea()\n reset()\n })\n .catch(error => notify.show(error.message, { variant: 'error' }))\n .finally(() => setLoading(false))\n\n handleCloseModal()\n }\n\n const isValidForm = (): boolean => {\n if (!selectedInteresetArea.email) {\n return false\n }\n\n if (state.cpf.length > 13 && validateCPF(state.cpf)) {\n errorHandler(new Error('Por favor, informe um CPF válido'))\n return false\n }\n\n if ((!state.fone || state.fone?.length <= 9) && !state.emailUrl) {\n return false\n }\n\n return true\n }\n\n const handleCloseModal = (): void => setOpen(false)\n\n return (\n \n \n\n \n Seja bem-vindo\n\n setOpenAreaInterest(true)}\n />\n handleChangeInput('nome', text)}\n value={state.nome}\n />\n\n handleChangeInput('fone', text)}\n value={state.fone}\n />\n\n handleChangeInput('emailUrl', text)}\n value={state.emailUrl}\n />\n\n handleChangeInput('cpf', text)}\n value={state.cpf}\n maxLength={17}\n />\n\n \n Endereço\n\n handleChangeInput('cep', text)}\n value={state.cep}\n maxLength={9}\n />\n\n handleChangeInput('endereco', text)}\n value={state.endereco}\n />\n \n handleChangeInput('numeroEndereco', text)}\n value={state.numeroEndereco}\n style={{ flex: 1 }}\n />\n\n handleChangeInput('complemento', text)}\n value={state.complemento}\n style={{ flex: 1 }}\n />\n \n \n handleChangeInput('cidade', text)}\n value={state.cidade}\n style={{ flex: 1 }}\n />\n handleChangeInput('estado', text)}\n value={state.estado}\n style={{ flex: 1 }}\n />\n \n handleChangeInput('bairro', text)}\n value={state.bairro}\n />\n \n\n \n \n \n \n \n \n setOpenAreaInterest(false)}\n onSelect={(id, data) => {\n handleChangeInput('codDEInteresse', id)\n setSelectedInterestArea(data)\n }}\n title={prospectConfigs?.descricao || 'Selecione'}\n items={interesetArea?.map(config => ({\n id: config.interesse.codInterno,\n descricao: config.descricao,\n isSelected: selectedInteresetArea.unidade === config.unidade &&\n selectedInteresetArea.interesse.codInterno === config.interesse.codInterno,\n data: config\n }))}\n />\n \n )\n}\n","import { atom } from 'recoil'\nimport { ProspectRegistrationParams } from '@/domain/usecases'\nimport { AreaInterest, EntidadeService } from '@/domain/models'\n\nexport const isOpenProspectRegistrationState = atom({\n key: 'isOpenProspectRegistrationState',\n default: false\n})\n\nexport const isOpenInterestAreaState = atom({\n key: 'isOpenInterestAreaState',\n default: false\n})\n\nexport const selectedInterestAreaState = atom({\n key: 'selectedInterestAreaState',\n default: {\n descricao: '',\n email: '',\n interesse: null as unknown as EntidadeService,\n unidade: 0\n }\n})\n\nexport const isLoadingProspectRegistrationState = atom({\n key: 'isLoadingProspectRegistrationState',\n default: false\n})\n\nexport const prospectRegistrationState = atom({\n key: 'prospectRegistrationState',\n default: {\n codDEInteresse: 0,\n codUnidade: 0,\n nome: '',\n cpf: '',\n emailUrl: '',\n email: '',\n fax: '',\n fone: '',\n numeroEndereco: '',\n endereco: '',\n bairro: '',\n cep: '',\n cidade: '',\n complemento: '',\n estado: ''\n }\n})\n","import React, { useEffect, useState } from 'react'\nimport { Image } from 'react-native'\nimport { environment } from '@/main/config/env'\nimport { useImage, useThemeClient } from '@/presentation/hooks'\n\ntype LogoThemeProps = {\n height?: number\n width?: number\n}\n\nexport const LogoTheme: React.FC = ({ width = 60, height = 24 }) => {\n const { getImage } = useImage()\n const { getThemeClient } = useThemeClient()\n const [logoEmpresa, setLogoEmpresa] = useState('')\n\n const themeClient = getThemeClient()\n const logoInside = environment === 'production' && logoEmpresa\n ? { uri: logoEmpresa }\n : require('../../../../assets/logo-white.svg')\n\n useEffect(() => {\n themeClient.imageLogo && environment === 'production' &&\n getImage(themeClient.imageLogo, 'logo')\n .then(logo => { setLogoEmpresa(logo) })\n .catch(console.error)\n }, [])\n\n return (\n \n )\n}\n","import { StyleSheet } from 'react-native'\n\nexport const styles = StyleSheet.create({\n container: {\n flex: 1,\n justifyContent: 'center',\n alignItems: 'center'\n },\n loginContent: {\n width: '100%',\n position: 'absolute',\n paddingHorizontal: 40,\n paddingVertical: 20,\n maxWidth: 428,\n justifyContent: 'space-between',\n alignItems: 'center',\n borderWidth: 1,\n borderRadius: 4,\n shadowColor: 'rgba(0, 0, 0, 0.04)',\n shadowOffset: {\n width: 4,\n height: 8\n }\n },\n image: {\n flex: 1,\n justifyContent: 'center',\n alignSelf: 'stretch'\n },\n input: {\n width: '100%',\n outlineWidth: 0,\n backgroundColor: 'transparent'\n },\n form: {\n width: '100%',\n gap: 16\n },\n checkboxArea: {\n flexDirection: 'row',\n alignItems: 'center',\n justifyContent: 'flex-end',\n gap: 32,\n color: '#FFF',\n height: 'min-content'\n },\n buttonArea: {\n width: '100%',\n gap: 16\n },\n snackbar: {\n width: 428,\n maxWidth: '100%',\n marginLeft: 'auto',\n marginRight: 'auto',\n bottom: 32\n },\n center: {\n textAlign: 'center'\n },\n footer: {\n fontSize: 10,\n position: 'absolute',\n width: '100%',\n bottom: 8,\n left: 0,\n textAlign: 'center'\n }\n})\n","import React, { useEffect, useState } from 'react'\nimport { GestureResponderEvent, SafeAreaView } from 'react-native'\nimport { useRecoilState, useRecoilValue, useResetRecoilState, useSetRecoilState } from 'recoil'\nimport { Checkbox, TextInput } from 'react-native-paper'\nimport { Authentication, ForgotPassword, GetUserByDocument, AuthenticationParams, AuthenticationAdmin, AuthenticationAdminParams, ProspectRegistration } from '@/domain/usecases'\nimport { useAuth, useNotify, useTheme, useThemeClient } from '@/presentation/hooks'\nimport { BackgroundTheme, Box, Button, Divider, HStack, SocialMidias, Text, VStack, socialMediaState } from '@/presentation/components'\nimport { prospectConfigsState, prospectInterestAreaState } from '@/presentation/pages/ProspectSettings/components'\nimport { ModalForgotPassword, ModalUserSelect, ModalProspectRegistration, isLoadingState, isOpenForgotPasswordState, isOpenProspectRegistrationState, loginState, usersSelectState, isOpenUserSelect } from '@/presentation/pages/Login/components'\nimport { LogoTheme } from '@/presentation/components/LogoTheme'\nimport { styles } from './styles'\nimport { version } from '../../../../package.json'\n\ntype LoginAuthenticateProps = {\n username: string\n password: string\n}\n\ntype LoginProps = {\n getUser: GetUserByDocument\n authentication: Authentication\n authenticationAdmin: AuthenticationAdmin\n forgotPassword: ForgotPassword\n prospectRegistration: ProspectRegistration\n}\n\nexport const Login: React.FC = ({\n getUser,\n authentication,\n authenticationAdmin,\n forgotPassword,\n prospectRegistration\n}) => {\n const theme = useTheme()\n const notify = useNotify()\n const { login, getSaveUser, saveUser } = useAuth()\n const { getThemeClient } = useThemeClient()\n const [state, setState] = useRecoilState(loginState)\n const [isLoading, setLoading] = useRecoilState(isLoadingState)\n const [isSelected, setSelection] = useState(false)\n const setModalUserSelect = useSetRecoilState(usersSelectState)\n const setOpenUserSelect = useSetRecoilState(isOpenUserSelect)\n const setOpenForgotPassword = useSetRecoilState(isOpenForgotPasswordState)\n const setOpen = useSetRecoilState(isOpenProspectRegistrationState)\n const prospectConfigs = useRecoilValue(prospectConfigsState)\n const prospectInterestArea = useRecoilValue(prospectInterestAreaState)\n const socialMedia = useRecoilValue(socialMediaState)\n const reset = useResetRecoilState(loginState)\n\n const savedUser = getSaveUser()\n const themeClient = getThemeClient()\n\n const handleChangeInput = (name: keyof LoginAuthenticateProps, value: string): void => {\n setState(currentValues => ({ ...currentValues, [name]: value }))\n }\n\n const handleError = (error: Error): void => {\n notify.show(error.message, { variant: 'error' })\n }\n\n const handleSubmit = (event: GestureResponderEvent): void => {\n event.preventDefault()\n\n const dataAuth: AuthenticationParams = {\n username: state.username,\n password: state.password\n }\n\n const accessWithAdministrator = dataAuth.username.toLocaleLowerCase().endsWith('@insidesistemas.com.br')\n if (accessWithAdministrator) {\n loginWithAdministrator({ Email: dataAuth.username, Senha: dataAuth.password })\n } else {\n const accessWithDocument = dataAuth.username.replace(/\\.|-/gm, '').replace(/\\D/g, '').length > 10\n if (accessWithDocument || dataAuth.username.includes('@')) {\n loginWithDocument(dataAuth)\n } else {\n loginWithCode(dataAuth)\n }\n }\n }\n\n const loginWithCode = (params: AuthenticationParams): void => {\n setLoading(true)\n authentication\n .auth(params)\n .then(async authToken => {\n if (params.username.toUpperCase() === 'ADMIN') {\n login(authToken)\n reset()\n } else {\n login(authToken)\n saveUser({\n username: isSelected ? params.username : '',\n saveUsername: isSelected\n })\n reset()\n }\n })\n .catch(handleError)\n .finally(() => setLoading(false))\n }\n\n const loginWithDocument = (params: AuthenticationParams): void => {\n setLoading(true)\n getUser\n .getUsersByDocument({\n usuario: params.username,\n senha: params.password\n })\n .then(clients => {\n if (clients?.length === 1) {\n loginWithCode({\n username: clients[0].codCliente.toString(),\n password: params.password\n })\n } else {\n setOpenUserSelect(true)\n setModalUserSelect(clients)\n }\n })\n .catch(handleError)\n .finally(() => setLoading(false))\n }\n\n const loginWithAdministrator = (params: AuthenticationAdminParams): void => {\n setLoading(true)\n authenticationAdmin\n .auth(params)\n .then(async (authToken) => {\n login(authToken)\n reset()\n })\n .catch(handleError)\n .finally(() => setLoading(false))\n }\n\n useEffect(() => {\n if (savedUser.saveUsername) {\n setState(currentState => ({ ...currentState, username: savedUser.username }))\n setSelection(true)\n }\n }, [])\n\n return (\n \n \n\n \n \n \n Portal do Cliente\n handleChangeInput('username', text)}\n value={state.username}\n />\n handleChangeInput('password', text)}\n value={state.password}\n />\n \n \n Salvar usuário\n \n setSelection(!isSelected)}\n />\n \n \n \n setOpenForgotPassword(true)}\n >\n Esqueci minha senha\n \n \n \n \n \n {prospectConfigs.ativo && prospectInterestArea.length > 0 &&\n \n \n setOpen(true)}\n >\n Ainda não é cliente? Cadastre-se aqui!\n \n \n }\n \n \n \n \n \n Desenvolvido por Inside Sistemas | v{version}\n \n )\n}\n","import { atom } from 'recoil'\nimport { ServiceOrderModel } from '@/domain/models'\n\nexport const isLoadingServiceOrdersState = atom({\n key: 'isLoadingServiceOrdersState',\n default: true\n})\n\nexport const serviceOrdersState = atom({\n key: 'serviceOrdersState',\n default: [] as ServiceOrderModel[]\n})\n\nexport const serviceOrdersConfigsState = atom({\n key: 'serviceOrdersConfigsState',\n default: {\n bloqueiaAberturaLimite: false,\n portalExibeMensagem: false,\n exibirOsFechadas: false,\n portalMensagem: ''\n }\n})\n","import { StyleSheet } from 'react-native'\nexport { default as CircleIcon } from '@expo/vector-icons/FontAwesome'\nexport { default as MoreIcon } from '@expo/vector-icons/Feather'\nexport { default as MarkerIcon } from '@expo/vector-icons/Foundation'\n\nexport const styles = StyleSheet.create({\n container: {\n padding: 16,\n minWidth: 320,\n maxWidth: 600,\n fontSize: 14,\n display: 'flex',\n alignItems: 'stretch',\n overflow: 'hidden',\n borderRadius: 4,\n shadowColor: 'rgba(0, 0, 0, 0.04)',\n shadowOffset: {\n width: 4,\n height: 8\n },\n shadowRadius: 4\n },\n address: {\n height: 18,\n lineHeight: 18,\n fontSize: 10\n },\n headerStyles: {\n width: '100%',\n marginBottom: 4\n },\n textStyles: {\n fontSize: 12,\n fontWeight: '400'\n },\n textOrderStyles: {\n paddingHorizontal: 4,\n fontSize: 12,\n fontWeight: '700'\n },\n title: {\n fontWeight: '700',\n fontSize: 12\n }\n})\n","import React from 'react'\nimport { useSetRecoilState } from 'recoil'\nimport { ServiceOrderModel, ServiceOrderStatus } from '@/domain/models'\nimport { GetServiceOrders } from '@/domain/usecases'\nimport { DateAdapter } from '@/data/protocols'\nimport { useAuth, useFormat, useMediaQueries, useTheme } from '@/presentation/hooks'\nimport { Box, Chip, Divider, HStack, Text, VStack } from '@/presentation/components'\nimport { serviceOrderViewState } from '@/presentation/pages/ServiceOrders/components'\nimport { styles, CircleIcon, MarkerIcon } from './styles'\n\ntype CardOsProps = {\n serviceOrder: ServiceOrderModel\n dateAdapter: DateAdapter\n}\n\nexport const CardOs: React.FC = ({\n serviceOrder,\n dateAdapter\n}) => {\n const theme = useTheme()\n const { getAddress } = useAuth()\n const { removeNewLines } = useFormat()\n const { isMobile } = useMediaQueries()\n const setOsView = useSetRecoilState(serviceOrderViewState)\n\n const address = getAddress(serviceOrder.codEndereco)\n\n const containerStyles = {\n ...styles.container,\n ...(!isMobile && { flex: 1 }),\n backgroundColor: theme.colors.white,\n color: theme.colors.greyLighten\n }\n\n const textTitleStyles = {\n ...styles.title,\n color: theme.colors.texts\n }\n\n const colorStatusStyle = (status: ServiceOrderStatus): string => {\n return {\n A: theme.colors.success,\n B: theme.colors.error,\n F: theme.colors.info\n }[status]\n }\n\n const makeTextStatus = (status: ServiceOrderStatus): string => {\n return {\n A: 'Aberta',\n B: 'Fechada',\n F: 'Faturada'\n }[status]\n }\n\n const makeHeader = (): JSX.Element => {\n return (\n \n \n {serviceOrder.solicitante\n ? serviceOrder.solicitante\n : 'Solicitante não informado'\n }\n \n \n Nº {serviceOrder.ordem.toString().padStart(6, '0')}\n \n \n \n )\n }\n\n return (\n \n {makeHeader()}\n \n \n \n {'Data Abertura: '}\n \n {dateAdapter.format(serviceOrder.dataAbertura, 'DD/MM/yyyy HH:mm')}\n \n \n {!!serviceOrder.dataFechamento &&\n serviceOrder.status !== ServiceOrderStatus.Aberta &&\n \n {'Data Fechamento: '}\n \n {dateAdapter.format(serviceOrder.dataFechamento, 'DD/MM/yyyy HH:mm')}\n \n \n }\n {serviceOrder.observacoes &&\n \n {'Observacações: '}\n \n {removeNewLines(serviceOrder.observacoes)\n .substring(0, GetServiceOrders.RN.OBSERVATION_MAX_LENGTH)\n }\n \n \n }\n \n {address &&\n \n {`${address.endereco}, ${address.numero} - ${address.bairro}`}\n \n }\n \n \n \n \n {'Status: '}\n \n \n setOsView(currentState => ({ ...currentState, currentOs: serviceOrder }))}\n />\n \n \n \n )\n}\n","import React from 'react'\nimport { MaterialCommunityIcons } from '@expo/vector-icons'\nimport { useMediaQueries, useTheme, useThemeClient } from '@/presentation/hooks'\nimport { Box, Button, ChipFilter, HStack } from '@/presentation/components'\nimport { DateAdapter } from '@/data/protocols'\nimport { isOpenServiceOrdersFiltersState, serviceOrdersFiltersState } from '@/presentation/pages/ServiceOrders/components'\nimport { useRecoilValue, useSetRecoilState } from 'recoil'\n\ntype FiltersChipPanelProps = {\n dateAdapter: DateAdapter\n handleAddNewOs: () => void\n}\n\nexport const FiltersChipPanel: React.FC = ({ dateAdapter, handleAddNewOs }) => {\n const theme = useTheme()\n const { getThemeClient } = useThemeClient()\n const { isMobile } = useMediaQueries()\n const setOpen = useSetRecoilState(isOpenServiceOrdersFiltersState)\n const filters = useRecoilValue(serviceOrdersFiltersState)\n\n const themeClient = getThemeClient()\n const period = dateAdapter.format(filters.dataInicio, 'DD/MM/YYYY') +\n ' até ' +\n dateAdapter.format(filters.dataFim, 'DD/MM/YYYY')\n\n const situation = {\n Todas: 'Todas',\n 'Em Aberto': isMobile ? 'Abertas' : 'Somente Abertas',\n Fechadas: isMobile ? 'Fechadas' : 'Somente Fechadas'\n }[filters.situacao]\n\n return (\n \n \n setOpen(true)}\n />\n \n \n setOpen(true)}\n />\n \n \n {!isMobile &&\n }\n title='Abrir Ordem de Serviço'\n color={themeClient.mainColor}\n tintColor={theme.colors.white}\n onPress={handleAddNewOs}\n />\n }\n \n \n )\n}\n","import React, { useEffect, useCallback } from 'react'\nimport { useRecoilState, useSetRecoilState } from 'recoil'\nimport { GestureResponderEvent } from 'react-native'\nimport { GetServiceOrders } from '@/domain/usecases'\nimport { DateAdapter } from '@/data/protocols'\nimport { Box, Divider, DatePicker, InputField, SideFilter } from '@/presentation/components'\nimport { useAuth, useErrorHandler } from '@/presentation/hooks'\nimport { SelectStatusOsFilter, serviceOrdersFiltersState, serviceOrdersConfigsState, isLoadingServiceOrdersState, isOpenServiceOrdersFiltersState, serviceOrdersState } from '@/presentation/pages/ServiceOrders/components'\n\ntype DateParams = {\n dataInicio: string\n dataFim: string\n}\n\ntype SideFiltersProps = {\n getServiceOrders: GetServiceOrders\n dateAdapter: DateAdapter\n}\n\nexport const MARGIN_MODALS = 30\n\nexport function SideFilters ({ dateAdapter, getServiceOrders }: SideFiltersProps): JSX.Element {\n const { getClient } = useAuth()\n const handleError = useErrorHandler()\n const [serviceOrdersConfigs, setServiceOrdersConfig] = useRecoilState(serviceOrdersConfigsState)\n const [isLoading, setLoading] = useRecoilState(isLoadingServiceOrdersState)\n const [filters, setFilters] = useRecoilState(serviceOrdersFiltersState)\n const [isOpen, setOpen] = useRecoilState(isOpenServiceOrdersFiltersState)\n const setServiceOrders = useSetRecoilState(serviceOrdersState)\n\n const client = getClient()\n\n useEffect(() => {\n setFilters({\n situacao: GetServiceOrders.RN.DEFAULT_STATUS,\n dataInicio: dateAdapter.format(dateAdapter.monthAgo(GetServiceOrders.RN.DEFAULT_MONTH_AGO), 'YYYY-MM-DD'),\n dataFim: dateAdapter.format(dateAdapter.today().toString(), 'YYYY-MM-DD')\n })\n }, [])\n\n const onSubmit = (event: GestureResponderEvent): void => {\n event.preventDefault()\n setLoading(true)\n\n const paramsGetOrders = {\n situacao: filters.situacao,\n codigoCliente: client.codCliente,\n codigoUnidade: client.unidade,\n dataInicial: dateAdapter.format(filters.dataInicio, 'YYYY-MM-DD'),\n dataFinal: dateAdapter.format(filters.dataFim, 'YYYY-MM-DD')\n }\n\n getServiceOrders\n .get(paramsGetOrders)\n .then(serviceOrders => {\n const { listaOS, ...configs } = serviceOrders\n setServiceOrders(listaOS)\n setServiceOrdersConfig(configs)\n })\n .catch(handleError)\n .finally(() => setLoading(false))\n\n setOpen(false)\n }\n\n const handleChangeDate = useCallback((field: keyof DateParams, date: Date): void => {\n setFilters(currentFilters => ({\n ...currentFilters,\n [field]: date.toString()\n }))\n }, [])\n\n const handleResetState = (): void => {\n setFilters({\n situacao: GetServiceOrders.RN.DEFAULT_STATUS,\n dataInicio: dateAdapter.format(dateAdapter.monthAgo(GetServiceOrders.RN.DEFAULT_MONTH_AGO), 'YYYY-MM-DD'),\n dataFim: dateAdapter.format(dateAdapter.today().toString(), 'YYYY-MM-DD')\n })\n }\n\n const handleClose = (): void => setOpen(false)\n\n return (\n \n \n \n \n handleChangeDate('dataInicio', date ?? dateAdapter.monthAgo(GetServiceOrders.RN.DEFAULT_MONTH_AGO))}\n dateAdapter={dateAdapter}\n />\n \n handleChangeDate('dataFim', date ?? dateAdapter.today())}\n dateAdapter={dateAdapter}\n />\n \n \n \n {serviceOrdersConfigs.exibirOsFechadas &&\n <>\n \n \n \n }\n \n \n )\n}\n","import { atom } from 'recoil'\n\nexport const isOpenServiceOrdersFiltersState = atom({\n key: 'isOpenServiceOrdersFiltersState',\n default: false\n})\n\nexport const serviceOrdersFiltersState = atom({\n key: 'serviceOrdersFiltersState',\n default: {\n situacao: 'Em Aberto' as 'Em Aberto' | 'Fechadas' | 'Todas',\n dataInicio: '',\n dataFim: ''\n }\n})\n","import * as React from 'react'\nimport { useRecoilState, useRecoilValue } from 'recoil'\nimport { RadioButton } from 'react-native-paper'\nimport { serviceOrdersFiltersState, statusOSsState } from '@/presentation/pages/ServiceOrders/components'\nimport { useMediaQueries, useThemeClient } from '@/presentation/hooks'\n\nexport const SelectStatusOsFilter = (): JSX.Element => {\n const { getThemeClient } = useThemeClient()\n const { isMobile } = useMediaQueries()\n const [filters, setFilters] = useRecoilState(serviceOrdersFiltersState)\n const statusOSs = useRecoilValue(statusOSsState)\n\n const themeClient = getThemeClient()\n\n const handleOnSelect = (selectedStatus: 'Em Aberto' | 'Fechadas' | 'Todas'): void => {\n setFilters((currentFilters) => ({ ...currentFilters, situacao: selectedStatus }))\n }\n\n return (\n <>\n {\n statusOSs.map((statusOption) => (\n handleOnSelect(statusOption.value as 'Em Aberto' | 'Fechadas' | 'Todas')}\n labelStyle={{ fontSize: isMobile ? 14 : 16 }}\n style={{\n borderRadius: 4,\n borderWidth: 1,\n borderColor: `${themeClient.mainColor}26`,\n marginBottom: 8,\n paddingVertical: isMobile ? 0 : 16\n }}\n color={themeClient.mainColor}\n />\n ))\n }\n \n )\n}\n","import { atom } from 'recoil'\n\nexport const statusOSsState = atom({\n key: 'selectStatusOSsState',\n default: [\n { _id: 'Todas', value: 'Todas' },\n { _id: 'Fechadas', value: 'Fechadas' },\n { _id: 'Em Aberto', value: 'Em Aberto' }\n ]\n})\n","import { StyleSheet } from 'react-native'\n\nexport const styles = StyleSheet.create({\n container: {\n display: 'flex',\n gap: 18\n },\n buttonArea: {\n display: 'flex',\n flexDirection: 'row',\n justifyContent: 'flex-end',\n gap: 8\n }\n})\n","import React from 'react'\nimport { useRecoilState, useRecoilValue } from 'recoil'\nimport { GestureResponderEvent } from 'react-native'\nimport { MaterialIcons } from '@expo/vector-icons'\nimport { AddNewOs, AddNewOsParams } from '@/domain/usecases'\nimport { ServiceOrderModel, ServiceOrderStatus } from '@/domain/models'\nimport { DateAdapter } from '@/data/protocols'\nimport { Box, Button, Text, TextInput, ModalBase, HStack } from '@/presentation/components'\nimport { useAuth, useErrorHandler, useNotify, useTheme } from '@/presentation/hooks'\nimport { addNewOsState, isLoadingAddNewOS, isOpenAddNewOS, serviceOrdersConfigsState, serviceOrdersState } from '@/presentation/pages/ServiceOrders/components'\nimport { styles } from './styles'\n\ntype AddNewOsProps = {\n solicitante: string\n observacoes: string\n}\n\ntype ModalAddNewOsProps = {\n addNewOs: AddNewOs\n dateAdapter: DateAdapter\n}\n\nexport const ModalAddNewOs: React.FC = ({ addNewOs, dateAdapter }) => {\n const theme = useTheme()\n const notify = useNotify()\n const { getClient } = useAuth()\n const handleError = useErrorHandler()\n const [state, setState] = useRecoilState(addNewOsState)\n const [serviceOrders, setServiceOrders] = useRecoilState(serviceOrdersState)\n const [isOpen, setOpen] = useRecoilState(isOpenAddNewOS)\n const serviceOrdersConfigs = useRecoilValue(serviceOrdersConfigsState)\n const [isLoading, setLoading] = useRecoilState(isLoadingAddNewOS)\n\n const client = getClient()\n\n const handleChangeInput = (name: keyof AddNewOsProps, value: string): void => {\n setState(currentValues => ({ ...currentValues, [name]: value }))\n }\n\n const handleCreateOs = (event: GestureResponderEvent): void => {\n event.preventDefault()\n setLoading(true)\n\n const addNewOsParams: AddNewOsParams = {\n cliente: client.codCliente,\n solicitante: state.solicitante,\n observacoes: state.observacoes,\n empresa: client.empresa,\n enviaListaChave: client.enviaListaChave,\n modalidade: client.modalidade,\n codigoUnidade: client.unidade\n }\n\n addNewOs\n .add(addNewOsParams)\n .then(codigo => {\n if (codigo) {\n successNewOs(addNewOsParams, codigo)\n setOpen(false)\n resetNewOs()\n } else {\n throw new Error('Não foi possível gravar a OS!')\n }\n })\n .catch(handleError)\n .finally(handleClose)\n }\n\n const successNewOs = (createSacParams: AddNewOsParams, codigo: number): void => {\n const listNewServiceOrders = [\n {\n ...createSacParams as unknown as ServiceOrderModel,\n ordem: codigo,\n status: ServiceOrderStatus.Aberta,\n dataAbertura: dateAdapter.today().toString(),\n codEndereco: 0\n },\n ...serviceOrders\n ]\n setServiceOrders(listNewServiceOrders)\n notify.success('Ordem de serviço gravada com sucesso')\n }\n\n const resetNewOs = (): void => {\n setLoading(false)\n setState({\n observacoes: '',\n solicitante: ''\n })\n }\n\n const handleClose = (): void => {\n setOpen(false)\n resetNewOs()\n }\n\n return (\n \n \n Criar nova OS\n {serviceOrdersConfigs.portalExibeMensagem &&\n serviceOrdersConfigs.portalMensagem &&\n \n \n {serviceOrdersConfigs.portalMensagem}\n \n }\n\n handleChangeInput('solicitante', text)}\n value={state.solicitante}\n maxLength={30}\n />\n\n handleChangeInput('observacoes', text)}\n value={state.observacoes}\n multiline\n numberOfLines={5}\n />\n\n \n \n \n \n \n \n )\n}\n","import { atom } from 'recoil'\n\nexport const isLoadingAddNewOS = atom({\n key: 'isLoadingAddNewOS',\n default: false\n})\n\nexport const isOpenAddNewOS = atom({\n key: 'isOpenAddNewOS',\n default: false\n})\n\nexport const addNewOsState = atom({\n key: 'addNewOs',\n default: {\n solicitante: '',\n observacoes: ''\n }\n})\n","import { StyleSheet } from 'react-native'\nexport { default as OSIcon } from '@expo/vector-icons/MaterialIcons'\nexport { default as MarkerIcon } from '@expo/vector-icons/Foundation'\n\nexport const styles = StyleSheet.create({\n container: {\n display: 'flex'\n },\n title: {\n fontWeight: '700',\n marginBottom: 8\n }\n})\n","import React, { useEffect } from 'react'\nimport { useRecoilState } from 'recoil'\nimport { ScrollView } from 'react-native-gesture-handler'\nimport { GetOsAttendance } from '@/domain/usecases'\nimport { ServiceOrderModel, ServiceOrderStatus } from '@/domain/models'\nimport { DateAdapter } from '@/data/protocols'\nimport { useAuth, useMediaQueries, useNotify, useTheme } from '@/presentation/hooks'\nimport { ModalBase, Box, Button, Text, Chip, HStack, Divider, VStack, Loading } from '@/presentation/components'\nimport { OsAttendandes, isLoadingOsViewState, serviceOrderViewState } from '@/presentation/pages/ServiceOrders/components'\nimport { styles, OSIcon, MarkerIcon } from './styles'\n\ntype ModalServiceOrderViewProps = {\n getOsAttendance: GetOsAttendance\n dateAdapter: DateAdapter\n}\n\nconst MARGIN_ITEMS = 8\n\nexport const ModalOsView: React.FC = ({\n getOsAttendance,\n dateAdapter\n}) => {\n const theme = useTheme()\n const { isMobile } = useMediaQueries()\n const { getAddress } = useAuth()\n const notify = useNotify()\n const [serviceOrder, setState] = useRecoilState(serviceOrderViewState)\n const [isLoading, setLoading] = useRecoilState(isLoadingOsViewState)\n\n const address = getAddress(serviceOrder.currentOs.codEndereco)\n\n useEffect(() => {\n if (serviceOrder.currentOs?.codInterno) {\n setLoading(true)\n\n getOsAttendance\n .getAttendences({ codigoOs: serviceOrder.currentOs.codInterno })\n .then(attendances => setState(currentState => ({ ...currentState, attendances })))\n .catch(error => notify.show(error.message, { variant: 'error' }))\n .finally(() => setLoading(false))\n }\n }, [])\n\n const handleClose = (): void => {\n setState(currentState => ({\n ...currentState,\n currentOs: null as unknown as ServiceOrderModel,\n attendances: []\n }))\n }\n\n const colorStatusStyle = (status: ServiceOrderStatus): string => {\n return {\n A: theme.colors.success,\n B: theme.colors.error,\n F: theme.colors.info\n }[status]\n }\n\n const makeTextStatus = (status: ServiceOrderStatus): string => {\n return {\n A: 'Aberta',\n B: 'Fechada',\n F: 'Faturada'\n }[status]\n }\n\n return (\n \n \n \n \n \n \n \n \n Solicitante\n {serviceOrder.currentOs?.solicitante.toUpperCase()}\n \n \n \n Status\n \n \n \n Data Abertura\n \n {dateAdapter.format(serviceOrder.currentOs?.dataAbertura, 'DD/MM/yyyy hh:mm')}\n \n \n \n \n \n Observações\n \n {serviceOrder.currentOs?.observacoes}\n \n \n \n \n \n \n {address?.identificacao.toUpperCase()}\n \n {!!address &&\n (isMobile\n ? `${address.endereco}, ${address.numero} - ${address.bairro}`\n : `${address.endereco}, ${address.numero} - ${address.bairro} - ${address.cidade}/${address.estado} - ${address.cep}`\n )}\n \n \n \n \n \n {!isMobile && (\n isLoading ? : \n )}\n \n \n \n \n \n )\n}\n","import { OsAttendanceModel, ServiceOrderModel } from '@/domain/models'\nimport { atom } from 'recoil'\n\nexport const isLoadingOsViewState = atom({\n key: 'isLoadingOsViewState',\n default: false\n})\n\nexport const serviceOrderViewState = atom({\n key: 'serviceOrderViewState',\n default: {\n currentOs: null as unknown as ServiceOrderModel,\n attendances: [] as OsAttendanceModel[]\n }\n})\n","import { StyleSheet } from 'react-native'\nexport { default as OSIcon } from '@expo/vector-icons/MaterialIcons'\nexport { default as MarkerIcon } from '@expo/vector-icons/Foundation'\n\nexport const styles = StyleSheet.create({\n attendancesContainer: {\n flexDirection: 'row',\n marginTop: 16,\n maxHeight: '30vh'\n },\n title: {\n fontWeight: '700',\n marginBottom: 8\n },\n titleAttendances: {\n fontWeight: '700',\n marginBottom: 8,\n fontSize: 12\n },\n attendancesText: {\n fontSize: 12\n }\n})\n","import React from 'react'\nimport { useRecoilValue } from 'recoil'\nimport { ScrollView } from 'react-native-gesture-handler'\nimport { DateAdapter } from '@/data/protocols'\nimport { useFormat } from '@/presentation/hooks'\nimport { VStack, HStack, Box, Text, Divider } from '@/presentation/components'\nimport { serviceOrderViewState } from '@/presentation/pages/ServiceOrders/components'\nimport { styles } from './styles'\n\ntype OsAttendandesProps = {\n dateAdapter: DateAdapter\n}\n\nexport const OsAttendandes: React.FC = ({ dateAdapter }) => {\n const serviceOrder = useRecoilValue(serviceOrderViewState)\n const { removeNewLines } = useFormat()\n\n return (\n \n {!!serviceOrder.attendances.length && Atendimentos}\n {serviceOrder.attendances?.map((attendance, index) => (\n \n \n {'Técnico: '}\n {attendance.nomeTecnico}\n \n \n \n {'Início: '}\n {dateAdapter.format(attendance.dataInicio, 'DD/MM/yyyy hh:mm')}\n \n \n {'Término: '}\n {dateAdapter.format(attendance.dataTermino, 'DD/MM/yyyy hh:mm')}\n \n \n \n Observações\n {removeNewLines(attendance.observacoes)}\n \n \n \n ))}\n \n )\n}\n","import { layoutStyles } from '@/presentation/styles/globals'\nimport { StyleSheet } from 'react-native'\n\nexport const styles = StyleSheet.create({\n container: {\n flex: 1,\n alignItems: 'stretch'\n },\n content: {\n ...layoutStyles.pageContent\n },\n scroll: {\n paddingBottom: 60\n }\n})\n","import React, { useCallback, useRef } from 'react'\nimport { SafeAreaView } from 'react-native'\nimport { useRecoilState, useRecoilValue, useSetRecoilState } from 'recoil'\nimport { ScrollView } from 'react-native-gesture-handler'\nimport { useFocusEffect } from '@react-navigation/native'\nimport { MaterialCommunityIcons, MaterialIcons } from '@expo/vector-icons'\nimport { AddNewOs, GetOsAttendance, GetServiceOrders } from '@/domain/usecases'\nimport { ServiceOrderStatus } from '@/domain/models'\nimport { DateAdapter } from '@/data/protocols'\nimport { ActionsButtons, Box, CardList, FAB, PageHeader } from '@/presentation/components'\nimport { useAuth, useErrorHandler, useMediaQueries, useNotify, useTheme, useThemeClient } from '@/presentation/hooks'\nimport { serviceOrdersConfigsState, SideFilters, ModalAddNewOs, ModalOsView, serviceOrderViewState, serviceOrdersFiltersState, CardOs, isLoadingServiceOrdersState, serviceOrdersState, isOpenServiceOrdersFiltersState, FiltersChipPanel, isOpenAddNewOS } from '@/presentation/pages/ServiceOrders/components'\nimport { styles } from './styles'\n\ntype ServiceOrdersProps = {\n getServiceOrders: GetServiceOrders\n dateAdapter: DateAdapter\n addNewOs: AddNewOs\n getOsAttendance: GetOsAttendance\n}\n\nexport const ServiceOrders: React.FC = ({\n getServiceOrders,\n addNewOs,\n getOsAttendance,\n dateAdapter\n}) => {\n const theme = useTheme()\n const notify = useNotify()\n const { isMobile } = useMediaQueries()\n const handleError = useErrorHandler()\n const { getClient } = useAuth()\n const { getThemeClient } = useThemeClient()\n const { currentOs } = useRecoilValue(serviceOrderViewState)\n const [serviceOrders, setServiceOrders] = useRecoilState(serviceOrdersState)\n const [serviceOrdersConfigs, setServiceOrdersConfig] = useRecoilState(serviceOrdersConfigsState)\n const [isLoading, setLoading] = useRecoilState(isLoadingServiceOrdersState)\n const setOpenAddNewOs = useSetRecoilState(isOpenAddNewOS)\n const filters = useRecoilValue(serviceOrdersFiltersState)\n const setOpen = useSetRecoilState(isOpenServiceOrdersFiltersState)\n const scrollViewRef = useRef(null)\n\n const client = getClient()\n const themeClient = getThemeClient()\n\n useFocusEffect(\n useCallback(() => {\n setLoading(true)\n\n const paramsGetOrders = {\n situacao: filters.situacao,\n codigoCliente: client.codCliente,\n codigoUnidade: client.unidade,\n dataInicial: filters.dataInicio\n ? dateAdapter.format(filters.dataInicio, 'YYYY-MM-DD')\n : dateAdapter.format(dateAdapter.monthAgo(GetServiceOrders.RN.DEFAULT_MONTH_AGO), 'YYYY-MM-DD'),\n dataFinal: filters.dataFim\n ? dateAdapter.format(filters.dataFim, 'YYYY-MM-DD')\n : dateAdapter.format(dateAdapter.today().toString(), 'YYYY-MM-DD')\n }\n\n getServiceOrders\n .get(paramsGetOrders)\n .then(serviceOrders => {\n const { listaOS, ...configs } = serviceOrders\n setServiceOrders(listaOS)\n setServiceOrdersConfig(configs)\n })\n .catch(handleError)\n .finally(() => setLoading(false))\n }, [])\n )\n\n const handleAddNewOs = useCallback((): void => {\n if (serviceOrdersConfigs.bloqueiaAberturaLimite) {\n const existWithOpenStatus = serviceOrders?.some(os => os.status === ServiceOrderStatus.Aberta)\n if (existWithOpenStatus) {\n notify.show('Já existe uma Ordem de Serviço aberta para você, não é possível abrir outra no momento.', { variant: 'error' })\n return\n }\n }\n\n setOpenAddNewOs(true)\n }, [serviceOrdersConfigs.bloqueiaAberturaLimite])\n\n return (\n \n \n \n \n }\n openFilters={() => setOpen(true)}\n />\n \n \n {serviceOrders?.map((serviceOrder, index) =>\n \n )}\n \n \n \n {isMobile &&\n \n } color={themeClient.mainColor}\n />\n \n }\n {!isLoading && }\n {!!currentOs && }\n \n )\n}\n","import React from 'react'\nimport { ServiceOrders } from '@/presentation/pages/ServiceOrders'\nimport { NavigationPagesProps, TabBottomNavigator } from '@/presentation/components'\nimport { makeAddNewOs, makeGetOsAttendance, makeGetServiceOrders } from '@/main/factories/usecases'\nimport { makeDateAdapterFactory } from '@/main/adapters'\n\nexport const makeServiceOrdersFactory = ({ navigation }: NavigationPagesProps): JSX.Element => {\n return (\n <>\n \n \n \n )\n}\n","import { atom } from 'recoil'\n\nexport const isLoadingState = atom({\n key: 'isLoadingHomeState',\n default: false\n})\n","import React, { useMemo } from 'react'\nimport { StyleSheet, TouchableOpacity } from 'react-native'\nimport { MaterialCommunityIcons, MaterialIcons } from '@expo/vector-icons'\nimport { NavigationRoute } from '@/main/config/router-navigation'\nimport { MenuAccessPermissionsConfigs } from '@/domain/models'\nimport { Box, HStack, Text } from '@/presentation/components'\nimport { useMediaQueries, useTheme } from '@/presentation/hooks'\n\ntype ItemMenuProps = {\n page: keyof MenuAccessPermissionsConfigs\n navigation: any\n}\n\nconst colorsPage = {\n boleto: '#ed7809',\n os: '#14a10a',\n sac: '#cf0707',\n notaFiscal: '#d6ba06',\n monitoramento: '#08a8dd',\n cartao: '#5209fb',\n aceiteDigital: '#0a41ae',\n viagem: '#9b0aae',\n telefonesUteis: '#05d3b7',\n documentosUteis: '#d7fb09',\n rastreamento: '#0bfc03',\n contrato: '#fc4850'\n}\n\nexport const ItemMenu: React.FC = ({ page, navigation }) => {\n const theme = useTheme()\n const { isMobile, width } = useMediaQueries()\n\n const iconPage = useMemo(() => ({\n boleto: ,\n os: ,\n sac: ,\n notaFiscal: ,\n monitoramento: ,\n rastreamento: ,\n cartao: ,\n aceiteDigital: ,\n viagem: ,\n telefonesUteis: ,\n documentosUteis: ,\n contrato: \n }[page]), [page])\n\n const iconButton = (): JSX.Element =>\n \n \n {iconPage}\n \n \n\n const title = {\n boleto: 'Financeiro',\n os: isMobile ? 'Ordens' : 'Ordens de Serviço',\n sac: 'SAC',\n notaFiscal: isMobile ? 'Notas' : 'Notas Fiscais',\n monitoramento: 'Monitoramento',\n rastreamento: 'Rastreamento',\n cartao: 'Cartão',\n aceiteDigital: isMobile ? 'Aceite' : 'Aceite Digital',\n viagem: isMobile ? 'Viagem' : 'Aviso de Viagem',\n telefonesUteis: isMobile ? 'Telefones' : 'Telefones Úteis',\n documentosUteis: isMobile ? 'Arquivos' : 'Arquivos Úteis',\n contrato: isMobile ? 'Contrato' : 'Meu Contrato'\n }[page]\n\n const route = {\n boleto: NavigationRoute.Financial,\n os: NavigationRoute.ServiceOrders,\n sac: NavigationRoute.SAC,\n notaFiscal: NavigationRoute.Invoices,\n monitoramento: NavigationRoute.Monitoring,\n rastreamento: NavigationRoute.Track,\n cartao: NavigationRoute.CreditCard,\n aceiteDigital: NavigationRoute.DigitalAccepts,\n viagem: NavigationRoute.TravelAlert,\n telefonesUteis: 'Telefones Úteis',\n documentosUteis: 'Arquivos Úteis',\n contrato: NavigationRoute.Contract\n }[page]\n\n const containerStyles = {\n ...styles.container,\n ...(!isMobile\n ? {\n maxHeight: 180,\n maxWidth: 180,\n minHeight: 140\n }\n : {\n flex: 0.5,\n minHeight: 120\n }),\n minWidth: isMobile ? (width - 56) / 2 : '30%',\n backgroundColor: colorsPage[page]\n }\n\n return (\n navigation.navigate(route)}\n >\n \n {iconButton()}\n \n \n \n {title}\n \n \n \n )\n}\n\nconst styles = StyleSheet.create({\n container: {\n justifyContent: 'center',\n paddingVertical: 18,\n borderRadius: 16,\n flexWrap: 'wrap'\n },\n title: {\n fontWeight: '500',\n paddingHorizontal: 18\n },\n iconContainer: {\n borderRadius: 9,\n backgroundColor: '#FFFFFF',\n marginLeft: 18\n },\n iconContent: {\n borderRadius: 8,\n paddingHorizontal: 12,\n justifyContent: 'center',\n alignItems: 'center',\n flex: 1\n }\n})\n","import { StyleSheet } from 'react-native'\nimport { layoutStyles } from '@/presentation/styles/globals'\n\nexport const styles = StyleSheet.create({\n container: {\n ...layoutStyles.pageContent,\n maxWidth: 740\n },\n content: {\n flexDirection: 'row',\n flexWrap: 'wrap',\n gap: 18,\n alignItems: 'center',\n justifyContent: 'flex-start'\n },\n itemUser: {\n marginRight: 24,\n marginBottom: 12,\n alignItems: 'flex-end',\n alignSelf: 'flex-end',\n flex: 1\n }\n})\n","import React from 'react'\nimport { MenuAccessPermissionsConfigs } from '@/domain/models'\nimport { Box, Loading } from '@/presentation/components'\nimport { ItemMenu, isLoadingState } from '@/presentation/pages/Home/components'\nimport { styles } from './styles'\nimport { useMediaQueries, useAuth } from '@/presentation/hooks'\nimport { useRecoilValue } from 'recoil'\n\nconst ITEMS_EXCLUDES = [\n 'envialista',\n 'telefonesuteis',\n 'documentosuteis',\n 'dadosconta',\n 'seguro',\n 'evento',\n 'atualizaautomaticocartao',\n 'indicarprospect'\n]\n\ntype MenuProps = {\n navigation: any\n}\n\nexport const Menu: React.FC = ({ navigation }) => {\n const { isMobile } = useMediaQueries()\n const { getClient } = useAuth()\n const isLoading = useRecoilValue(isLoadingState)\n\n const client = getClient()\n\n const itemsMenu = client?.portal && Object\n .keys(client.portal)\n .filter((page: keyof MenuAccessPermissionsConfigs) => !ITEMS_EXCLUDES.includes(page.toLowerCase()) && !!client.portal[page])\n\n const makeItemsMenu = (): JSX.Element =>\n \n {itemsMenu?.map((page: keyof MenuAccessPermissionsConfigs, index: number) =>\n \n )}\n \n\n return (\n \n {isLoading && !client\n ? \n : makeItemsMenu()\n }\n \n )\n}\n","import React, { useCallback } from 'react'\nimport { SafeAreaView } from 'react-native'\nimport { useFocusEffect } from '@react-navigation/native'\nimport { useRecoilState, useSetRecoilState } from 'recoil'\nimport { GetClientByCode, MetricsLogin } from '@/domain/usecases'\nimport { useAuth, useErrorHandler } from '@/presentation/hooks'\nimport { isLoadingState, Menu } from '@/presentation/pages/Home/components'\nimport { authenticationState, PhoneModal } from '@/presentation/components'\nimport { DateAdapter } from '@/data/protocols'\nimport { version } from '../../../../package.json'\n\ntype HomeProps = {\n getClientByCode: GetClientByCode\n navigation: any\n metricsLogin: MetricsLogin\n dateAdapter: DateAdapter\n}\n\nexport const Home: React.FC = ({\n getClientByCode,\n navigation,\n metricsLogin,\n dateAdapter\n}) => {\n const handleError = useErrorHandler()\n const { setClient, getCurrentClient } = useAuth()\n const setLoading = useSetRecoilState(isLoadingState)\n const [autentication, setAuthentication] = useRecoilState(authenticationState)\n\n const currentClient = getCurrentClient()\n\n useFocusEffect(\n useCallback(() => {\n setLoading(true)\n\n if (parseInt(currentClient, 10) > 0) {\n getClientByCode\n .getByCode({ cliCodigo: parseInt(currentClient, 10) })\n .then(client => {\n setClient(client)\n\n if (autentication.registerLogin) {\n void metricsLogin\n .register({\n dataOcorrencia: dateAdapter.format(dateAdapter.today(), 'YYYY-MM-DDTHH:mm:ssZ'),\n email: client.email,\n unidade: client.unidade,\n usuario: client.codCliente.toString(),\n versao: version\n })\n .then(() => setAuthentication(currentState => ({ ...currentState, registerLogin: false })))\n .catch(console.error)\n }\n })\n .catch(handleError)\n .finally(() => setLoading(false))\n }\n }, [currentClient])\n )\n\n return (\n \n \n \n \n )\n}\n","import React from 'react'\nimport { Home } from '@/presentation/pages/Home'\nimport { makeGetClientByCode, makeMetricsLogin } from '@/main/factories/usecases'\nimport { NavigationPagesProps } from '@/presentation/components'\nimport { makeDateAdapterFactory } from '@/main/adapters'\n\nexport const makeHomeFactory = ({ navigation }: NavigationPagesProps): JSX.Element => {\n return (\n \n )\n}\n","import { layoutStyles } from '@/presentation/styles/globals'\nimport { StyleSheet } from 'react-native'\n\nexport const styles = StyleSheet.create({\n container: {\n flex: 1\n },\n content: {\n ...layoutStyles.pageContent\n }\n})\n","import React, { useCallback } from 'react'\nimport { GestureResponderEvent, SafeAreaView } from 'react-native'\nimport { useRecoilState, useSetRecoilState } from 'recoil'\nimport { ScrollView } from 'react-native-gesture-handler'\nimport { MaterialCommunityIcons } from '@expo/vector-icons'\nimport { useFocusEffect } from '@react-navigation/native'\nimport { SaveCreditCard, GetCreditCard, GetCreditCardParams, SaveCreditCardParams } from '@/domain/usecases'\nimport { CardFlagsTypes, cardMaskByFlag } from '@/domain/models'\nimport { useAuth, useErrorHandler, useNotify, useTheme, useThemeClient } from '@/presentation/hooks'\nimport { Box, Button, HStack, PageHeader, TAB_BOTTOM_CONTAINER_HEIGTH, VStack } from '@/presentation/components'\nimport { AddNewCreditCard, creditCardState, CreditCard, isEditableState, isLoadingState, isOpenEditConfirmationState, ModalModalEditConfirmation } from '@/presentation/pages/Cartao/components'\nimport { getCreditCardType, getValidityDate } from '@/presentation/utils'\nimport { styles } from './styles'\n\ntype CartaoProps = {\n getCard: GetCreditCard\n saveCard: SaveCreditCard\n}\n\nexport const Cartao: React.FC = ({ getCard, saveCard }) => {\n const theme = useTheme()\n const notify = useNotify()\n const { getClient } = useAuth()\n const { getThemeClient } = useThemeClient()\n const [creditCard, setCreditCard] = useRecoilState(creditCardState)\n const [isLoading, setLoading] = useRecoilState(isLoadingState)\n const [isEditable, setEditable] = useRecoilState(isEditableState)\n const setOpenEditConfirmation = useSetRecoilState(isOpenEditConfirmationState)\n const handleError = useErrorHandler()\n\n const client = getClient()\n const themeClient = getThemeClient()\n\n useFocusEffect(\n useCallback(() => {\n setLoading(true)\n setEditable(false)\n\n const getCardParams: GetCreditCardParams = {\n codCliente: client.codCliente\n }\n\n getCard\n .getByClient(getCardParams)\n .then((card) => {\n if (card) {\n setCreditCard(card)\n setEditable(false)\n } else {\n setEditable(true)\n }\n })\n .catch(handleError)\n .finally(() => setLoading(false))\n }, [])\n )\n\n const handleChangeCard = (event: GestureResponderEvent): void => {\n event.preventDefault()\n setOpenEditConfirmation(true)\n }\n\n const isValidDataCard = (): boolean => {\n if (\n !creditCard.nome ||\n !creditCard.numero ||\n !creditCard.expiracao ||\n !creditCard.ccv ||\n creditCard.numero.includes('*')\n ) {\n return false\n } else {\n return true\n }\n }\n\n const handleSaveCreditCard = (event: GestureResponderEvent): void => {\n event.preventDefault()\n\n setCreditCard((currentState) => ({\n ...currentState,\n ...(currentState.expiracao && { vencimento: getValidityDate(currentState.expiracao) })\n }))\n\n const saveCardParams: SaveCreditCardParams = {\n codCliente: client.codCliente,\n email: client.email,\n unidade: client.unidade,\n type: getCreditCardType(creditCard.numero),\n mask: cardMaskByFlag[creditCard.type],\n ccv: creditCard.ccv,\n expiracao: creditCard.expiracao,\n nome: creditCard.nome,\n numero: creditCard.numero,\n vencimento: creditCard.vencimento\n }\n\n if (isValidDataCard()) {\n setLoading(true)\n\n saveCard\n .save(saveCardParams)\n .then(notify.show)\n .catch(handleError)\n .finally(() => setLoading(false))\n } else {\n handleError(new Error('Todos os dados do cartão devem ser informados'))\n }\n }\n\n const handleChange = (name: string, value: string): void => {\n setCreditCard((prevState) => ({\n ...prevState,\n [name]: value,\n type: getCreditCardType(prevState.numero),\n mask: cardMaskByFlag[prevState.type],\n email: client.email\n }))\n }\n\n const handleResetCard = (event: GestureResponderEvent): void => {\n event.preventDefault()\n\n setCreditCard((prevState) => ({\n ...prevState,\n numero: '',\n nome: '',\n ccv: '',\n expiracao: '',\n mask: '9999 9999 9999 9999',\n type: 'unknown' as CardFlagsTypes,\n vencimento: ''\n }))\n }\n\n return (\n \n \n \n }\n />\n \n \n \n \n \n {(isLoading || !isEditable) &&\n \n }\n {(!isLoading && isEditable) &&\n \n }\n \n \n \n \n \n \n )\n}\n","import React from 'react'\nimport { Cartao } from '@/presentation/pages/Cartao'\nimport { NavigationPagesProps, TabBottomNavigator } from '@/presentation/components'\nimport { makeGetCreditCard, makeSaveCreditCard } from '@/main/factories/usecases'\n\nexport const makeCardFactory: React.FC = ({ navigation }: NavigationPagesProps) => {\n return (\n <>\n \n \n \n )\n}\n","import { atom } from 'recoil'\nimport { AcceptDigitalModel } from '@/domain/models'\n\nexport const isLoadingAcceptDigitalState = atom({\n key: 'isLoadingAcceptDigitalState',\n default: true\n})\n\nexport const acceptDigitalState = atom({\n key: 'acceptDigitalState',\n default: [] as AcceptDigitalModel[]\n})\n\nexport const currentAcceptDigitalState = atom({\n key: 'currentAcceptDigitalState',\n default: -1\n})\n","import { StyleSheet } from 'react-native'\n\nexport const styles = StyleSheet.create({\n container: {\n flex: 1,\n maxWidth: 600,\n padding: 16,\n minWidth: 320,\n fontSize: 14,\n display: 'flex',\n alignItems: 'stretch',\n overflow: 'hidden',\n borderRadius: 4,\n shadowColor: 'rgba(0, 0, 0, 0.04)',\n shadowOffset: {\n width: 4,\n height: 8\n },\n shadowRadius: 4\n },\n headerContainer: {\n display: 'flex',\n flexDirection: 'row',\n justifyContent: 'space-between',\n alignItems: 'center',\n paddingLeft: 0,\n paddingRight: 0\n },\n headerTitle: {\n color: 'rgba(0, 0, 0, 0.77)',\n fontWeight: '500',\n fontSize: 14,\n overflow: 'hidden',\n whiteSpace: 'noWrap',\n textOverflow: 'ellipsis'\n },\n\n divider: {\n backgroundColor: 'rgba(0, 0, 0, 0.21)'\n },\n\n cardContent: {\n flexDirection: 'column',\n paddingLeft: 0,\n paddingRight: 0,\n display: 'flex',\n gap: 8\n },\n contentText: {\n display: 'flex',\n flexDirection: 'row',\n flexWrap: 'nowrap',\n overflow: 'hidden',\n textOverflow: 'ellipsis'\n },\n contentTextWithChip: {\n display: 'flex',\n flexDirection: 'row',\n justifyContent: 'space-between',\n overflow: 'hidden',\n whiteSpace: 'noWrap',\n textOverflow: 'ellipsis',\n gap: 8\n },\n contentTitle: {\n color: 'rgba(0, 0, 0, 0.77)',\n fontWeight: '500'\n },\n docButtonBox: {\n justifyContent: 'space-between'\n }\n})\n","import React, { useCallback } from 'react'\nimport { GestureResponderEvent, Pressable } from 'react-native'\nimport { useRecoilState } from 'recoil'\nimport { MaterialCommunityIcons } from '@expo/vector-icons'\nimport { AcceptDigitalModel } from '@/domain/models'\nimport { OpenDocumentAccept, OpenDocumentAcceptParams, OpenUrlDocumentAccept } from '@/domain/usecases'\nimport { DateAdapter } from '@/data/protocols'\nimport { theme } from '@/presentation/styles'\nimport { useErrorHandler, useNotify } from '@/presentation/hooks'\nimport { Text, Chip, VStack, Clipboard, MenuActions, IconButton, Menu, Box, Divider, HStack } from '@/presentation/components'\nimport { currentAcceptDigitalState } from '@/presentation/pages/AceiteDigital/components'\nimport { styles } from './styles'\n\ntype CardAcceptDigitalProps = {\n accept: AcceptDigitalModel\n dateAdapter: DateAdapter\n openUrlDocAccept: OpenUrlDocumentAccept\n openDocumentAccept: OpenDocumentAccept\n}\n\nexport const CardAcceptDigital: React.FC = ({\n accept,\n dateAdapter,\n openUrlDocAccept,\n openDocumentAccept\n}) => {\n const notify = useNotify()\n const handleError = useErrorHandler()\n const [currentAcceptDigital, setCurrentAcceptDigital] = useRecoilState(currentAcceptDigitalState)\n\n const isAuthorized = accept.statusAceite === 'Autorizado'\n\n const handleOpenUrlDocument = (event: GestureResponderEvent): void => {\n event.preventDefault()\n\n const viewParams = {\n statusAceite: accept.statusAceite,\n urlAceite: accept.urlAceite\n }\n\n openUrlDocAccept\n .view(viewParams)\n .then(() => notify.show('O aceite digital foi aberto em uma nova aba'))\n .catch(handleError)\n .finally(handleCloseMenu)\n }\n\n const handleOpenDocumentAccept = (event: GestureResponderEvent): void => {\n event.preventDefault()\n\n const openParams: OpenDocumentAcceptParams = {\n statusAceite: accept.statusAceite,\n codigoAceite: accept.idAceite\n }\n\n openDocumentAccept\n .open(openParams)\n .then(() => notify.show('O documento foi aberto em uma nova aba'))\n .catch(handleError)\n .finally(handleCloseMenu)\n }\n\n const handleCopyHash = (hash: string): void => {\n Clipboard.setString(hash)\n notify.show('Hash do Aceite Digital copiado com sucesso')\n }\n\n const handleOpenMenu = (idAceite: number): void => {\n setCurrentAcceptDigital(idAceite)\n }\n\n const handleCloseMenu = useCallback((): void => {\n setCurrentAcceptDigital(-1)\n }, [])\n\n const colorType = {\n Orçamento: theme.colors.primary,\n Contrato: theme.colors.info,\n Aditivo: theme.colors.pink,\n default: theme.colors.primary\n }[accept.tipoAceite]\n\n const containerStyles = {\n ...styles.container,\n backgroundColor: theme.colors.white,\n color: theme.colors.greyLighten\n }\n\n const typeChipContainer = {\n ...styles,\n backgroundColor: colorType\n }\n\n const statusChipContainer = {\n ...styles,\n backgroundColor: !isAuthorized ? theme.colors.secondary : theme.colors.success\n }\n\n return (\n \n \n \n {accept.emailEnvio}\n \n = 0 && currentAcceptDigital === accept.idAceite}\n onDismiss={handleCloseMenu}\n anchor={\n handleOpenMenu(accept.idAceite)}\n style={{ width: 32, height: 32 }}\n icon={(props: any) => }\n />\n }>\n {isAuthorized\n ? <>\n }\n />\n }\n />\n \n : }\n />\n }\n \n \n\n \n \n \n \n \n {'Tipo '}\n \n \n \n \n \n {'Status '}\n \n \n \n \n \n \n {'Envio: '}\n \n {dateAdapter.format(accept.dataEnvio, 'DD/MM/YYYY HH:mm:ss')}\n \n {\n accept.aceiteHashProcesso !== '' &&\n \n \n \n \n {'Hash: '}\n \n {accept.aceiteHashProcesso}\n \n handleCopyHash(accept.aceiteHashProcesso)}>\n \n \n \n }\n \n \n )\n}\n","import React from 'react'\nimport { Box, ChipFilter, HStack } from '@/presentation/components'\nimport { DateAdapter } from '@/data/protocols'\nimport { acceptDigitalFiltersState, isOpenAcceptDigitalFiltersState } from '@/presentation/pages/AceiteDigital/components'\nimport { useRecoilValue, useSetRecoilState } from 'recoil'\n\ntype FiltersChipPanelProps = {\n dateAdapter: DateAdapter\n}\n\nexport const FiltersChipPanel: React.FC = ({ dateAdapter }) => {\n const setOpen = useSetRecoilState(isOpenAcceptDigitalFiltersState)\n const filters = useRecoilValue(acceptDigitalFiltersState)\n\n const period = dateAdapter.format(filters.dtInicial, 'DD/MM/YYYY') +\n ' até ' +\n dateAdapter.format(filters.dtFinal, 'DD/MM/YYYY')\n\n const situation = {\n Pendentes: 'Somente Pendentes',\n Autorizados: 'Somente Autorizados',\n Ambos: 'Todos'\n }[filters.status]\n\n return (\n \n \n setOpen(true)}\n />\n \n \n setOpen(true)}\n />\n \n \n )\n}\n","import React, { useEffect, useCallback } from 'react'\nimport { useRecoilState, useSetRecoilState } from 'recoil'\nimport { GestureResponderEvent } from 'react-native'\nimport { GetDigitalAccepts } from '@/domain/usecases'\nimport { DateAdapter } from '@/data/protocols'\nimport { useAuth, useErrorHandler } from '@/presentation/hooks'\nimport { Box, Divider, DatePicker, InputField, SideFilter } from '@/presentation/components'\nimport { SelectStatusAcceptFilter, acceptDigitalFiltersState, acceptDigitalState, isLoadingAcceptDigitalState, isOpenAcceptDigitalFiltersState } from '@/presentation/pages/AceiteDigital/components'\n\ntype DateParams = {\n dtInicial: string\n dtFinal: string\n}\n\nexport type AcceptFilters = {\n status: 'Pendentes' | 'Autorizados' | 'Ambos'\n dtInicial: string\n dtFinal: string\n}\n\ntype SideFiltersProps = {\n getAcceptDigital: GetDigitalAccepts\n dateAdapter: DateAdapter\n}\n\nexport const MARGIN_MODALS = 30\n\nexport const SideFilters: React.FC = ({ getAcceptDigital, dateAdapter }: SideFiltersProps) => {\n const { getClient } = useAuth()\n const [isOpen, setOpen] = useRecoilState(isOpenAcceptDigitalFiltersState)\n const [isLoading, setLoading] = useRecoilState(isLoadingAcceptDigitalState)\n const [filters, setFilters] = useRecoilState(acceptDigitalFiltersState)\n const setAccepts = useSetRecoilState(acceptDigitalState)\n const handlerError = useErrorHandler()\n\n const client = getClient()\n\n useEffect(() => {\n setFilters({\n status: GetDigitalAccepts.RN.DEFAULT_STATUS,\n dtInicial: dateAdapter.daysAgo(GetDigitalAccepts.RN.DEFAULT_DAYS_AGO).toString(),\n dtFinal: dateAdapter.daysLater(GetDigitalAccepts.RN.DEFAULT_DAYS_LATER).toString()\n })\n }, [])\n\n const handleResetState = (): void => {\n setFilters({\n status: GetDigitalAccepts.RN.DEFAULT_STATUS,\n dtInicial: dateAdapter.daysAgo(GetDigitalAccepts.RN.DEFAULT_DAYS_AGO).toString(),\n dtFinal: dateAdapter.daysLater(GetDigitalAccepts.RN.DEFAULT_DAYS_LATER).toString()\n })\n }\n\n const onSubmit = (event: GestureResponderEvent): void => {\n event.preventDefault()\n\n const paramsGetAcceptDigital = {\n codCliente: client.codCliente,\n dtInicial: dateAdapter.format(filters.dtInicial, 'YYYY-MM-DD'),\n dtFinal: dateAdapter.format(filters.dtFinal, 'YYYY-MM-DD'),\n status: filters.status\n }\n\n setLoading(true)\n\n getAcceptDigital\n .get(paramsGetAcceptDigital)\n .then(setAccepts)\n .catch(handlerError)\n .finally(() => setLoading(false))\n\n setOpen(false)\n }\n\n const handleChangeDate = useCallback((field: keyof DateParams, date: Date): void => {\n setFilters(currentFilters => ({\n ...currentFilters,\n [field]: date.toString()\n }))\n }, [])\n\n const handleClose = (): void => setOpen(false)\n\n return (\n \n \n \n \n handleChangeDate('dtInicial', date ?? dateAdapter.daysAgo(GetDigitalAccepts.RN.DEFAULT_DAYS_AGO))}\n dateAdapter={dateAdapter}\n />\n \n handleChangeDate('dtFinal', date ?? dateAdapter.daysLater(GetDigitalAccepts.RN.DEFAULT_DAYS_LATER))}\n dateAdapter={dateAdapter}\n />\n \n \n \n \n \n \n \n )\n}\n","import { GetDigitalAccepts } from '@/domain/usecases'\nimport { atom } from 'recoil'\n\nexport const isOpenAcceptDigitalFiltersState = atom({\n key: 'isOpenAcceptDigitalFiltersState',\n default: false\n})\n\nexport const acceptDigitalFiltersState = atom({\n key: 'filtersAcceptDigital',\n default: {\n status: GetDigitalAccepts.RN.DEFAULT_STATUS,\n dtInicial: '',\n dtFinal: ''\n }\n})\n","import React from 'react'\nimport { useRecoilState, useRecoilValue } from 'recoil'\nimport { RadioButton } from 'react-native-paper'\nimport { acceptDigitalFiltersState, statusAcceptState } from '@/presentation/pages/AceiteDigital/components'\nimport { useMediaQueries, useThemeClient } from '@/presentation/hooks'\n\nexport const SelectStatusAcceptFilter = (): JSX.Element => {\n const { getThemeClient } = useThemeClient()\n const { isMobile } = useMediaQueries()\n const [filters, setFilters] = useRecoilState(acceptDigitalFiltersState)\n const statusAccept = useRecoilValue(statusAcceptState)\n\n const themeClient = getThemeClient()\n\n const handleOnSelect = (selectedStatus: 'Ambos' | 'Autorizados' | 'Pendentes'): void => {\n setFilters((currentFilters) => ({ ...currentFilters, status: selectedStatus }))\n }\n\n return (\n <>\n {\n statusAccept.map((statusOption) => (\n handleOnSelect(statusOption.value as 'Ambos' | 'Autorizados' | 'Pendentes')}\n labelStyle={{ fontSize: isMobile ? 14 : 16 }}\n style={{\n borderRadius: 4,\n borderWidth: 1,\n borderColor: `${themeClient.mainColor}26`,\n marginBottom: 8,\n paddingVertical: isMobile ? 0 : 16\n }}\n color={themeClient.mainColor}\n />\n ))\n }\n \n )\n}\n","import { atom } from 'recoil'\n\nexport const statusAcceptState = atom({\n key: 'selectStatusAcceptState',\n default: [\n { _id: 'Ambos', value: 'Ambos' },\n { _id: 'Autorizados', value: 'Autorizados' },\n { _id: 'Pendentes', value: 'Pendentes' }\n ]\n})\n","import { StyleSheet } from 'react-native'\nimport { layoutStyles } from '@/presentation/styles/globals'\n\nexport const styles = StyleSheet.create({\n container: {\n flex: 1,\n alignItems: 'stretch'\n },\n content: {\n ...layoutStyles.pageContent\n },\n scroll: {\n paddingBottom: 60\n }\n})\n","import React, { useCallback } from 'react'\nimport { SafeAreaView } from 'react-native'\nimport { useRecoilState, useSetRecoilState } from 'recoil'\nimport { ScrollView } from 'react-native-gesture-handler'\nimport { useFocusEffect } from '@react-navigation/native'\nimport { MaterialCommunityIcons } from '@expo/vector-icons'\nimport { GetDigitalAccepts, OpenDocumentAccept, OpenUrlDocumentAccept } from '@/domain/usecases'\nimport { DateAdapter } from '@/data/protocols'\nimport { useAuth, useErrorHandler, useTheme } from '@/presentation/hooks'\nimport { Box, CardList, PageHeader } from '@/presentation/components'\nimport { SideFilters, acceptDigitalState, CardAcceptDigital, FiltersChipPanel, isOpenAcceptDigitalFiltersState, isLoadingAcceptDigitalState } from '@/presentation/pages/AceiteDigital/components'\nimport { styles } from './styles'\n\ntype AcceptDigitalProps = {\n dateAdapter: DateAdapter\n getAcceptDigital: GetDigitalAccepts\n getDocAcceptDigital: OpenUrlDocumentAccept\n openDocumentAccept: OpenDocumentAccept\n}\n\nexport const AcceptDigital: React.FC = ({\n dateAdapter,\n getAcceptDigital,\n openDocumentAccept,\n getDocAcceptDigital\n}: AcceptDigitalProps) => {\n const theme = useTheme()\n const { getClient } = useAuth()\n const handleError = useErrorHandler()\n const [accepts, setAccepts] = useRecoilState(acceptDigitalState)\n const [isLoading, setLoading] = useRecoilState(isLoadingAcceptDigitalState)\n const setOpen = useSetRecoilState(isOpenAcceptDigitalFiltersState)\n\n const client = getClient()\n\n useFocusEffect(\n useCallback(() => {\n setLoading(true)\n\n const paramsGetAcceptDigital = {\n codCliente: client.codCliente,\n dtInicial: dateAdapter.format(dateAdapter.daysAgo(GetDigitalAccepts.RN.DEFAULT_DAYS_AGO), 'YYYY-MM-DD'),\n dtFinal: dateAdapter.format(dateAdapter.daysLater(GetDigitalAccepts.RN.DEFAULT_DAYS_LATER), 'YYYY-MM-DD'),\n status: GetDigitalAccepts.RN.DEFAULT_STATUS\n }\n\n getAcceptDigital\n .get(paramsGetAcceptDigital)\n .then(setAccepts)\n .catch(handleError)\n .finally(() => setLoading(false))\n }, []))\n\n const handleOnFilter = useCallback((): void => {\n setOpen(true)\n }, [])\n\n return (\n \n \n \n \n }\n text='Aceite Digital'\n openFilters={handleOnFilter}\n />\n \n \n {accepts?.map(accept => (\n \n ))}\n \n \n \n \n )\n}\n","import React from 'react'\nimport { AcceptDigital } from '@/presentation/pages/AceiteDigital'\nimport { NavigationPagesProps, TabBottomNavigator } from '@/presentation/components'\nimport { makeGetAcceptDigital, makeOpenDocumentAcceptFactory, makeOpenUrlDocAcceptFactory } from '@/main/factories/usecases'\nimport { makeDateAdapterFactory } from '@/main/adapters'\n\nexport const makeAcceptDigitalFactory = ({ navigation }: NavigationPagesProps): JSX.Element => {\n return (\n <>\n \n \n \n )\n}\n","import { atom } from 'recoil'\nimport { NFModel } from '@/domain/models'\n\nexport const isLoadingNfState = atom({\n key: 'isLoadingNfState',\n default: true\n})\n\nexport const nfsConfigState = atom({\n key: 'nfsConfigState',\n default: {\n ocultaInfos: false,\n ocultaLink: false\n }\n})\n\nexport const nfsState = atom({\n key: 'nfsState',\n default: [] as NFModel[]\n})\n\nexport const nfState = atom({\n key: 'nfState',\n default: [] as NFModel[]\n})\n\nexport const leaseReceiptState = atom({\n key: 'leaseReceiptState',\n default: [] as NFModel[]\n})\n","import * as React from 'react'\nimport { CardBase } from '@/presentation/components'\n\ntype CardNFProps = {\n children: any\n}\n\nexport const CardNF: React.FC = ({ children }: CardNFProps) => {\n return (\n \n {children}\n \n )\n}\n","import React from 'react'\nimport { ChipFilter, HStack } from '@/presentation/components'\nimport { DateAdapter } from '@/data/protocols'\nimport { isOpenNfsFiltersState, nfsFiltersState } from '@/presentation/pages/NotaFiscal/components'\nimport { useRecoilValue, useSetRecoilState } from 'recoil'\n\ntype FiltersChipPanelProps = {\n dateAdapter: DateAdapter\n}\n\nexport const FiltersChipPanel: React.FC = ({ dateAdapter }) => {\n const setOpen = useSetRecoilState(isOpenNfsFiltersState)\n const filters = useRecoilValue(nfsFiltersState)\n\n const period = dateAdapter.format(filters.dataInicio, 'DD/MM/YYYY') +\n ' até ' +\n dateAdapter.format(filters.dataFim, 'DD/MM/YYYY')\n\n return (\n \n setOpen(true)}\n />\n \n )\n}\n","import { StyleSheet } from 'react-native'\nimport { layoutStyles } from '@/presentation/styles/globals'\n\nexport const styles = StyleSheet.create({\n container: {\n flex: 1,\n paddingBottom: 60\n },\n content: {\n ...layoutStyles.pageContent,\n marginVertical: 0,\n marginHorizontal: 'auto'\n },\n cardArea: {\n display: 'flex',\n flexDirection: 'row',\n justifyContent: 'space-between',\n flexWrap: 'wrap',\n width: '100%',\n gap: 16\n },\n bold: {\n fontWeight: '600'\n },\n title: {\n borderBottomWidth: 1,\n borderBottomColor: 'rgba(0, 0, 0, 0.12)',\n paddingBottom: 4,\n display: 'flex',\n flexDirection: 'row',\n justifyContent: 'space-between',\n alignItems: 'center'\n },\n emptyNf: {\n display: 'flex',\n alignItems: 'center',\n justifyContent: 'center',\n flex: 1,\n gap: 16\n },\n scroll: {\n paddingBottom: 60\n }\n})\n","import React, { useCallback } from 'react'\nimport { useRecoilState, useRecoilValue, useSetRecoilState } from 'recoil'\nimport { GestureResponderEvent } from 'react-native'\nimport { ScrollView } from 'react-native-gesture-handler'\nimport { MaterialCommunityIcons } from '@expo/vector-icons'\nimport { NFModel } from '@/domain/models'\nimport { OpenLeaseReceipt, OpenLeaseReceiptParams } from '@/domain/usecases'\nimport { DateAdapter } from '@/data/protocols'\nimport { MenuActions, Menu, Box, IconButton, Text, PageHeader, CardList } from '@/presentation/components'\nimport { CardNF, FiltersChipPanel, isLoadingNfState, isOpenNfsFiltersState, leaseReceiptState } from '@/presentation/pages/NotaFiscal/components'\nimport { useErrorHandler, useFormat, useNotify, useTheme } from '@/presentation/hooks'\nimport { styles } from '../../styles'\n\ntype LeaseReceiptProps = {\n openLeaseReceipt: OpenLeaseReceipt\n dateAdapter: DateAdapter\n}\n\nexport const LeaseReceipt: React.FC = ({ openLeaseReceipt, dateAdapter }) => {\n const theme = useTheme()\n const notify = useNotify()\n const { formatCurrency } = useFormat()\n const handleError = useErrorHandler()\n const leaseReceipts = useRecoilValue(leaseReceiptState)\n const [isLoading, setLoading] = useRecoilState(isLoadingNfState)\n const [currentIndex, setCurrentIndex] = React.useState(-1)\n const setOpenFilters = useSetRecoilState(isOpenNfsFiltersState)\n\n const openMenu = (index: number): void => setCurrentIndex(index)\n const closeMenu = (): void => setCurrentIndex(-1)\n\n const handleOpenLeaseReceipt = useCallback((event: GestureResponderEvent, recibo: NFModel) => {\n event.preventDefault()\n setLoading(true)\n\n const openLeaseReceiptParams: OpenLeaseReceiptParams = {\n codigoRecibo: recibo.nfNumeroNota\n }\n\n openLeaseReceipt\n .open(openLeaseReceiptParams)\n .then(() => notify.show(`O recibo de locação Nº ${recibo.notaNumero} foi aberto em uma nova aba`))\n .catch(handleError)\n .finally(() => setLoading(false))\n }, [])\n\n const handleOnFilter = useCallback((): void => {\n setOpenFilters(true)\n }, [])\n\n return (\n \n \n }\n text='Recibos de Locação'\n openFilters={handleOnFilter}\n />\n \n \n {leaseReceipts?.map((recibo, index) => (\n \n \n {recibo.notaNumero.toString().padStart(6, '')}/{recibo.notaSerie}\n = 0 && currentIndex === index}\n onDismiss={closeMenu}\n anchor={ openMenu(index)}\n style={{ width: 24, height: 24 }}\n icon={(props: any) => }>\n }\n >\n handleOpenLeaseReceipt(event, recibo)}\n title=\"Visualizar Recibo de Locação\"\n leadingIcon={props => }\n />\n \n \n Valor: {formatCurrency(recibo.notaValor)}\n Emissão: {new Date(recibo.notaData).toLocaleDateString('pt-BR')}\n \n ))}\n \n \n \n )\n}\n","import React, { useCallback, useState } from 'react'\nimport { GestureResponderEvent } from 'react-native'\nimport { useRecoilState, useSetRecoilState } from 'recoil'\nimport { MaterialCommunityIcons, MaterialIcons } from '@expo/vector-icons'\nimport { ScrollView } from 'react-native-gesture-handler'\nimport { NFModel } from '@/domain/models'\nimport { OpenDanfe, OpenDanfeParams } from '@/domain/usecases'\nimport { DateAdapter } from '@/data/protocols'\nimport { useAuth, useErrorHandler, useFormat, useNotify } from '@/presentation/hooks'\nimport { theme } from '@/presentation/styles'\nimport { MenuActions, Menu, Box, HStack, IconButton, Text, CardList, PageHeader } from '@/presentation/components'\nimport { CardNF, nfState, isLoadingNfState, isOpenNfsFiltersState, FiltersChipPanel } from '@/presentation/pages/NotaFiscal/components'\nimport { styles } from '../../styles'\n\ntype NFProductProps = {\n openDanfe: OpenDanfe\n dateAdapter: DateAdapter\n}\n\nexport const NFProduct: React.FC = ({ openDanfe, dateAdapter }) => {\n const notify = useNotify()\n const { formatCurrency } = useFormat()\n const { getClient } = useAuth()\n const handleError = useErrorHandler()\n const [currentIndex, setCurrentIndex] = useState(-1)\n const [nfs] = useRecoilState(nfState)\n const [isLoading, setLoading] = useRecoilState(isLoadingNfState)\n const setOpenFilters = useSetRecoilState(isOpenNfsFiltersState)\n\n const client = getClient()\n\n const openMenu = (index: number): void => setCurrentIndex(index)\n const closeMenu = (): void => setCurrentIndex(-1)\n\n const handleOpenDanfe = useCallback((event: GestureResponderEvent, nf: NFModel) => {\n event.preventDefault()\n setLoading(true)\n\n const openDanfeParams: OpenDanfeParams = {\n cliCodigo: client.codCliente,\n notaFiscal: nf\n }\n\n openDanfe\n .open(openDanfeParams)\n .then(() => notify.show(`A DANFE da NFº ${nf.notaNumero}/${nf.notaSerie} foi aberta em uma nova aba`))\n .catch(handleError)\n .finally(() => setLoading(false))\n }, [])\n\n const handleOnFilter = useCallback((): void => {\n setOpenFilters(true)\n }, [])\n\n return (\n \n \n }\n text='Notas Fiscais de Produto'\n openFilters={handleOnFilter}\n />\n \n \n {nfs?.map((nf, index) => (\n \n \n {nf.notaNumero.toString().padStart(6, '0')}/{nf.notaSerie}\n {!!nf.notaProcNFE &&\n = 0 && currentIndex === index}\n onDismiss={closeMenu}\n anchor={ openMenu(index)}\n style={{ width: 32, height: 32 }}\n icon={(props: any) => }>\n }>\n handleOpenDanfe(event, nf)}\n title=\"Visualizar Danfe\"\n leadingIcon={props => }\n />\n \n }\n \n Valor: {formatCurrency(nf.notaValor)}\n Emissão: {new Date(nf.notaData).toLocaleDateString('pt-BR')}\n {!nf.notaProcNFE &&\n \n \n \n Não existe xml para a NF\n \n \n }\n \n ))}\n \n \n \n )\n}\n","import React, { useCallback } from 'react'\nimport { GestureResponderEvent } from 'react-native'\nimport { ScrollView } from 'react-native-gesture-handler'\nimport { useRecoilState, useRecoilValue, useSetRecoilState } from 'recoil'\nimport { MaterialCommunityIcons } from '@expo/vector-icons'\nimport { NFModel } from '@/domain/models'\nimport { OpenNfse, OpenNfseParams } from '@/domain/usecases'\nimport { DateAdapter } from '@/data/protocols'\nimport { MenuActions, Menu, Box, IconButton, Text, CardList, PageHeader } from '@/presentation/components'\nimport { CardNF, nfsState, isLoadingNfState, nfsConfigState, isOpenNfsFiltersState, FiltersChipPanel } from '@/presentation/pages/NotaFiscal/components'\nimport { useErrorHandler, useFormat, useNotify, useTheme } from '@/presentation/hooks'\nimport { styles } from '../../styles'\n\ntype NFServiceProps = {\n openNfse: OpenNfse\n dateAdapter: DateAdapter\n}\n\nexport const NFService: React.FC = ({ openNfse, dateAdapter }) => {\n const theme = useTheme()\n const notify = useNotify()\n const { formatCurrency } = useFormat()\n const [currentIndex, setCurrentIndex] = React.useState(-1)\n const [isLoading, setLoading] = useRecoilState(isLoadingNfState)\n const nfsConfigs = useRecoilValue(nfsConfigState)\n const nfs = useRecoilValue(nfsState)\n const setOpenFilters = useSetRecoilState(isOpenNfsFiltersState)\n const handleError = useErrorHandler()\n\n const openMenu = (index: number): void => setCurrentIndex(index)\n const closeMenu = (): void => setCurrentIndex(-1)\n\n const handleOpenNfse = useCallback((event: GestureResponderEvent, nf: NFModel) => {\n event.preventDefault()\n const openNfseParams: OpenNfseParams = {\n codEmpresa: nf.empresa,\n codUnidade: nf.unidade,\n numeroRPS: nf.notaNumero,\n serieRps: nf.notaSerie,\n linkAutenticidade: nf.linkAutenticidade,\n utilizarDevExpress: nf.utilizarDevExpress\n }\n\n openNfse\n .open(openNfseParams)\n .then(() => notify.show(`A Nfse ${nf.notaNumero}/${nf.notaSerie} foi aberta em uma nova aba`))\n .catch(handleError)\n .finally(() => setLoading(false))\n }, [])\n\n const handleOnFilter = useCallback((): void => {\n setOpenFilters(true)\n }, [])\n\n return (\n \n \n }\n text='Notas Fiscais de Serviço'\n openFilters={handleOnFilter}\n />\n \n \n {nfs?.map((nfse, index) => (\n \n \n {nfse.notaNumeroNFSE}/{nfse.notaSerie}\n = 0 && currentIndex === index}\n onDismiss={closeMenu}\n anchor={ openMenu(index)}\n style={{ width: 32, height: 32 }}\n icon={(props: any) => }>\n }>\n {((nfse.linkAutenticidade || nfse.utilizarDevExpress) && !nfsConfigs.ocultaLink)\n ? handleOpenNfse(event, nfse)}\n title=\"Abrir Link NFSe\"\n leadingIcon={props => }\n />\n : <>\n }\n {nfse.linkConsultaNotaPortal\n ? window.open(nfse.linkConsultaNotaPortal, '_blank')}\n title=\"Link para consulta da NFSe\"\n leadingIcon={props => }\n />\n : <>\n }\n \n \n Valor: {formatCurrency(nfse.notaValor)}\n Emissão: {dateAdapter.format(dateAdapter.parse(nfse.notaData), 'DD/MM/YYYY')}\n \n ))}\n \n \n \n )\n}\n","import React, { useEffect, useCallback } from 'react'\nimport { GestureResponderEvent } from 'react-native'\nimport { useRecoilState, useSetRecoilState } from 'recoil'\nimport { GetNFs, GetNFsParams } from '@/domain/usecases'\nimport { DateAdapter } from '@/data/protocols'\nimport { useAuth, useErrorHandler } from '@/presentation/hooks'\nimport { Box, DatePicker, SideFilter, InputField, Divider } from '@/presentation/components'\nimport { nfsState, nfsFiltersState, nfsConfigState, nfState, leaseReceiptState, isLoadingNfState, isOpenNfsFiltersState } from '@/presentation/pages/NotaFiscal/components'\n\ntype DateParams = {\n dataInicio: string\n dataFim: string\n}\n\ntype SideDrawerProps = {\n getNFs: GetNFs\n dateAdapter: DateAdapter\n}\n\nexport const MARGIN_MODALS = 30\n\nexport const SideFilters: React.FC = ({ getNFs, dateAdapter }) => {\n const { getClient } = useAuth()\n const handleError = useErrorHandler()\n const [filters, setFilters] = useRecoilState(nfsFiltersState)\n const [isLoading, setLoading] = useRecoilState(isLoadingNfState)\n const [isOpen, setOpen] = useRecoilState(isOpenNfsFiltersState)\n const setNFsConfigs = useSetRecoilState(nfsConfigState)\n const setNFs = useSetRecoilState(nfState)\n const setNFSs = useSetRecoilState(nfsState)\n const setLeaseReceipts = useSetRecoilState(leaseReceiptState)\n\n const client = getClient()\n\n useEffect(() => {\n const initFilters = {\n isOpen: false,\n dataInicio: dateAdapter.monthAgo(GetNFs.RN.DEFAULT_MONTHS_AGO).toString(),\n dataFim: dateAdapter.today().toString()\n }\n\n if (!filters.dataInicio || !filters.dataFim) {\n setFilters(initFilters)\n }\n }, [])\n\n const handleResetState = (): void => {\n setFilters(currentState => ({\n ...currentState,\n dataInicio: dateAdapter.format(dateAdapter.monthAgo(GetNFs.RN.DEFAULT_MONTHS_AGO), 'YYYY-MM-DD'),\n dataFim: dateAdapter.format(dateAdapter.today(), 'YYYY-MM-DD')\n }))\n }\n\n const onSubmit = (event: GestureResponderEvent): void => {\n event.preventDefault()\n setLoading(true)\n\n const paramsGetTicket: GetNFsParams = {\n cliCodigo: client.codCliente,\n dtInicial: dateAdapter.format(filters.dataInicio, 'YYYY-MM-DD'),\n dtFinal: dateAdapter.format(filters.dataFim, 'YYYY-MM-DD')\n }\n\n getNFs\n .get(paramsGetTicket)\n .then(nfResult => {\n setNFsConfigs({\n ocultaInfos: nfResult.ocultaInfos,\n ocultaLink: nfResult.ocultaLink\n })\n setLeaseReceipts(nfResult.arrRecibos)\n setNFs(nfResult.arrNF)\n setNFSs(nfResult.arrNFS)\n })\n .catch(handleError)\n .finally(() => setLoading(false))\n\n setOpen(false)\n }\n\n const handleChangeDate = useCallback((field: keyof DateParams, date: Date): void => {\n setFilters(currentFilters => ({\n ...currentFilters,\n [field]: date.toString()\n }))\n }, [])\n\n const handleClose = (): void => setOpen(false)\n\n return (\n \n \n \n \n handleChangeDate('dataInicio', date ?? dateAdapter.monthAgo(GetNFs.RN.DEFAULT_MONTHS_AGO))}\n />\n \n handleChangeDate('dataFim', date ?? dateAdapter.today())}\n />\n \n \n \n )\n}\n","import { atom } from 'recoil'\n\nexport const isOpenNfsFiltersState = atom({\n key: 'isOpenNfsFiltersState',\n default: false\n})\n\nexport const nfsFiltersState = atom({\n key: 'nfsFiltersState',\n default: {\n dataInicio: '',\n dataFim: ''\n }\n})\n","import React, { useCallback } from 'react'\nimport { SafeAreaView } from 'react-native'\nimport { useFocusEffect } from '@react-navigation/native'\nimport { useSetRecoilState } from 'recoil'\nimport { createMaterialTopTabNavigator } from '@react-navigation/material-top-tabs'\nimport { GetNFs, GetNFsParams, OpenDanfe, OpenLeaseReceipt, OpenNfse } from '@/domain/usecases'\nimport { DateAdapter } from '@/data/protocols'\nimport { useAuth, useErrorHandler, useMediaQueries, useTheme, useThemeClient } from '@/presentation/hooks'\nimport { nfsState, SideFilters, NFProduct, NFService, LeaseReceipt, isLoadingNfState, leaseReceiptState, nfState, nfsConfigState } from '@/presentation/pages/NotaFiscal/components/'\nimport { styles } from './styles'\n\nconst Tab = createMaterialTopTabNavigator()\n\ntype NotaFiscalProps = {\n getNFs: GetNFs\n openDanfe: OpenDanfe\n openNfse: OpenNfse\n openLeaseReceipt: OpenLeaseReceipt\n dateAdapter: DateAdapter\n}\n\nexport const NotaFiscal: React.FC = ({\n getNFs,\n openDanfe,\n openNfse,\n openLeaseReceipt,\n dateAdapter\n}) => {\n const theme = useTheme()\n const { isMobile } = useMediaQueries()\n const { getClient } = useAuth()\n const { getThemeClient } = useThemeClient()\n const handleError = useErrorHandler()\n const setNFsConfigs = useSetRecoilState(nfsConfigState)\n const setNFs = useSetRecoilState(nfState)\n const setNFSs = useSetRecoilState(nfsState)\n const setLeaseReceipts = useSetRecoilState(leaseReceiptState)\n const setLoading = useSetRecoilState(isLoadingNfState)\n\n const client = getClient()\n const themeClient = getThemeClient()\n\n useFocusEffect(\n useCallback(() => {\n setLoading(true)\n\n const getNFsParams: GetNFsParams = {\n cliCodigo: client.codCliente,\n dtInicial: dateAdapter.format(dateAdapter.monthAgo(GetNFs.RN.DEFAULT_MONTHS_AGO), 'DD-MM-YYYY'),\n dtFinal: dateAdapter.format(dateAdapter.today(), 'DD-MM-YYYY')\n }\n\n getNFs\n .get(getNFsParams)\n .then(nfResult => {\n setNFsConfigs({\n ocultaInfos: nfResult.ocultaInfos,\n ocultaLink: nfResult.ocultaLink\n })\n setLeaseReceipts(nfResult.arrRecibos)\n setNFs(nfResult.arrNF)\n setNFSs(nfResult.arrNFS)\n })\n .catch(handleError)\n .finally(() => setLoading(false))\n }, [])\n )\n\n return (\n \n \n\n \n NFService({ openNfse, dateAdapter })} />\n NFProduct({ openDanfe, dateAdapter })} />\n LeaseReceipt({ openLeaseReceipt, dateAdapter })} />\n \n \n )\n}\n","import React from 'react'\nimport { NotaFiscal } from '@/presentation/pages/NotaFiscal'\nimport { NavigationPagesProps, TabBottomNavigator } from '@/presentation/components'\nimport { makeGetRemoteGetNFs, makeOpenDanfe, makeOpenNfse, makeOpenLeaseReceipt } from '@/main/factories/usecases'\nimport { makeDateAdapterFactory } from '@/main/adapters'\n\nexport const makeNFFactory = ({ navigation }: NavigationPagesProps): JSX.Element => {\n return (\n <>\n \n \n \n )\n}\n","import { atom } from 'recoil'\nimport { Claim, ClaimsResult, ServiceType } from '@/domain/models'\n\nexport const isLoadingState = atom({\n key: 'isLoadingSacState',\n default: true\n})\n\nexport const sacState = atom({\n key: 'sacState',\n default: {\n listaReclamacoes: [] as Claim[],\n listaTipoAtendimento: [] as ServiceType[]\n } as ClaimsResult\n})\n","import React from 'react'\nimport { StyleSheet } from 'react-native'\nimport { Claim } from '@/domain/models/sac-model'\nimport { DateAdapter } from '@/data/protocols'\nimport { useMediaQueries } from '@/presentation/hooks'\nimport { theme } from '@/presentation/styles'\nimport { Text, Chip, VStack, Box, Divider, HStack } from '@/presentation/components'\nimport { sacState } from '@/presentation/pages/Sac/components'\nimport { CircleIcon } from '@/presentation/pages/ServiceOrders/components/CardOs/styles'\nimport { useRecoilValue } from 'recoil'\n\ntype CardSacProps = {\n sac: Claim\n dateAdapter: DateAdapter\n}\n\nexport const CardSac: React.FC = ({ sac, dateAdapter }: CardSacProps) => {\n const { isMobile } = useMediaQueries()\n const { listaTipoAtendimento } = useRecoilValue(sacState)\n\n const containerStyles = {\n ...styles.container,\n ...(!isMobile && {\n flex: 1,\n maxWidth: 600\n }),\n backgroundColor: theme.colors.white,\n color: theme.colors.greyLighten\n }\n\n const colorType = {\n E: theme.colors.success,\n R: theme.colors.error,\n S: theme.colors.info\n }[sac.tipo]\n\n const sacType = listaTipoAtendimento?.find(tipo => tipo.codigo === sac.tipo)?.descricao ?? 'Não informado'\n\n const typeChipContainer = {\n ...styles,\n backgroundColor: colorType\n }\n\n const textTitleStyles = {\n ...styles.title,\n color: theme.colors.texts\n }\n\n return (\n \n \n \n {sac.reclamante.toUpperCase()}\n \n \n Nº {sac.codReclamacao}\n \n \n\n \n\n \n \n \n \n Abertura:\n \n {dateAdapter.format(sac.data, 'DD/MM/YYYY HH:mm:ss')}\n \n \n \n Descrição:\n \n {sac.reclamacao}\n \n \n \n\n \n \n Tipo:\n \n {sacType &&\n \n }\n \n \n \n )\n}\n\nexport const styles = StyleSheet.create({\n container: {\n padding: 16,\n minWidth: 320,\n fontSize: 14,\n display: 'flex',\n alignItems: 'stretch',\n overflow: 'hidden',\n borderRadius: 4,\n shadowColor: 'rgba(0, 0, 0, 0.04)',\n shadowOffset: {\n width: 4,\n height: 8\n },\n shadowRadius: 4\n },\n address: {\n height: 18,\n lineHeight: 18,\n fontSize: 10\n },\n headerStyles: {\n width: '100%',\n marginBottom: 4\n },\n textStyles: {\n marginLeft: 4,\n fontSize: 12,\n fontWeight: '400'\n },\n textOrderStyles: {\n paddingHorizontal: 4,\n fontSize: 12,\n fontWeight: '700'\n },\n title: {\n fontWeight: '700',\n fontSize: 12\n }\n})\n","import React, { useCallback } from 'react'\nimport { StyleSheet, GestureResponderEvent } from 'react-native'\nimport { Box, Button, Text, TextInput } from '@react-native-material/core'\nimport { RadioButton } from 'react-native-paper'\nimport { useRecoilState, useSetRecoilState } from 'recoil'\nimport { Claim } from '@/domain/models'\nimport { CreateSac, CreateSacParams } from '@/domain/usecases'\nimport { DateAdapter } from '@/data/protocols'\nimport { useAuth, useErrorHandler, useNotify, useTheme } from '@/presentation/hooks'\nimport { ModalBase } from '@/presentation/components'\nimport { isLoadingNewSacState, isOpenNewSacState, sacNewState, sacState } from '@/presentation/pages/Sac/components'\n\ntype ModalNewSacParams = {\n tipo: 'E' | 'R' | 'S'\n tipoDescricao: 'ELOGIO' | 'RECLAMAÇÃO' | 'SUGESTÃO'\n reclamante: string\n reclamacao: string\n}\n\ntype ModalNewSacProps = {\n createSac: CreateSac\n dateAdapter: DateAdapter\n}\n\nexport const ModalNewSac: React.FC = ({ createSac, dateAdapter }: ModalNewSacProps) => {\n const theme = useTheme()\n const notify = useNotify()\n const { getClient } = useAuth()\n const handleError = useErrorHandler()\n const [newSac, setNewSac] = useRecoilState(sacNewState)\n const setSacs = useSetRecoilState(sacState)\n const setLoading = useSetRecoilState(isLoadingNewSacState)\n const [isOpen, setOpen] = useRecoilState(isOpenNewSacState)\n\n const client = getClient()\n\n const handleChangeInput = (name: keyof ModalNewSacParams, value: string): void => {\n setNewSac(currentValues => ({ ...currentValues, [name]: value }))\n }\n\n const handleSubmit = (event: GestureResponderEvent): void => {\n event.preventDefault()\n const typeDescription = {\n E: 'ELOGIO',\n S: 'SOLICITAÇÃO',\n R: 'RECLAMAÇÃO'\n }[newSac.tipo]\n\n const dateParam = dateAdapter.today().toString()\n\n const createSacParams: CreateSacParams = {\n reclamante: newSac.reclamante,\n reclamacao: newSac.reclamacao,\n codCliente: client.codCliente,\n tipo: newSac.tipo,\n data: dateParam,\n hora: dateParam,\n dataAbertura: dateParam,\n nomeCliente: client.nomeCliente,\n dataAcaoImediata: dateParam,\n dataAcaoCorretiva: dateParam,\n unidade: client.unidade,\n tipoDescricao: typeDescription\n }\n\n createSac\n .create(createSacParams)\n .then(codigo => {\n if (codigo) {\n successNewSac(createSacParams, codigo as unknown as string)\n resetNewSac()\n } else {\n throw new Error('Não foi possível gravar o SAC!')\n }\n })\n .catch(handleError)\n .finally(handleCloseModal)\n }\n\n const successNewSac = (createSacParams: CreateSacParams, codigo: string): void => {\n setSacs(currentState => ({\n ...currentState,\n listaReclamacoes: [\n ...currentState.listaReclamacoes,\n {\n ...createSacParams as unknown as Claim,\n codReclamacao: parseInt(codigo)\n }\n ]\n }))\n\n notify.success('SAC gravado com sucesso')\n }\n\n const resetNewSac = (): void => {\n setLoading(false)\n setOpen(false)\n setNewSac(currentState => ({\n ...currentState,\n reclamacao: '',\n reclamante: '',\n tipo: 'E',\n tipoDescricao: 'ELOGIO'\n }))\n }\n\n const handleCloseModal = useCallback((): void => {\n setLoading(false)\n setOpen(false)\n }, [])\n\n return (\n \n \n Preencha os dados para criar um SAC\n\n \n \n handleChangeInput('tipo', 'E')}\n />\n \n Elogio\n \n \n \n handleChangeInput('tipo', 'S')}\n />\n \n Solicitação\n \n \n \n handleChangeInput('tipo', 'R')}\n />\n \n Reclamação\n \n \n \n\n handleChangeInput('reclamante', text)}\n value={newSac.reclamante}\n />\n handleChangeInput('reclamacao', text)}\n value={newSac.reclamacao}\n multiline\n />\n\n \n \n \n \n \n \n )\n}\n\nconst styles = StyleSheet.create({\n container: {\n display: 'flex',\n gap: 18\n },\n buttonArea: {\n display: 'flex',\n flexDirection: 'row',\n justifyContent: 'flex-end',\n gap: 8\n },\n textOrderStyles: {\n fontSize: 14,\n fontWeight: '400'\n }\n})\n","import { atom } from 'recoil'\n\nexport const isLoadingNewSacState = atom({\n key: 'isLoadingNewSacState',\n default: true\n})\n\nexport const isOpenNewSacState = atom({\n key: 'isOpenNewSacState',\n default: false\n})\n\nexport const sacNewState = atom({\n key: 'newSacForm',\n default: {\n isLoading: false,\n tipo: 'E' as 'E' | 'R' | 'S',\n tipoDescricao: 'ELOGIO' as 'ELOGIO' | 'RECLAMAÇÃO' | 'SOLICITAÇÃO',\n reclamante: '',\n reclamacao: ''\n }\n})\n","import { layoutStyles } from '@/presentation/styles/globals'\nimport { StyleSheet } from 'react-native'\n\nexport const styles = StyleSheet.create({\n container: {\n flex: 1,\n alignItems: 'stretch',\n position: 'relative'\n },\n content: {\n ...layoutStyles.pageContent\n },\n scroll: {\n paddingBottom: 60\n },\n btnContainer: {\n position: 'absolute',\n bottom: 16,\n right: 32\n }\n})\n","import React, { useCallback, useRef } from 'react'\nimport { useRecoilState, useSetRecoilState } from 'recoil'\nimport { SafeAreaView } from 'react-native'\nimport { useFocusEffect } from '@react-navigation/native'\nimport { ScrollView } from 'react-native-gesture-handler'\nimport { MaterialCommunityIcons, MaterialIcons } from '@expo/vector-icons'\nimport { CreateSac, GetSacList } from '@/domain/usecases'\nimport { DateAdapter } from '@/data/protocols'\nimport { ActionsButtons, Box, CardList, FAB, PageHeader } from '@/presentation/components'\nimport { sacState, ModalNewSac, CardSac, isLoadingState, isOpenNewSacState } from '@/presentation/pages/Sac/components'\nimport { useAuth, useErrorHandler, useTheme, useThemeClient } from '@/presentation/hooks'\nimport { styles } from './styles'\n\ntype SacProps = {\n dateAdapter: DateAdapter\n getSacList: GetSacList\n createSac: CreateSac\n}\n\nexport const Sac: React.FC = ({ dateAdapter, getSacList, createSac }: SacProps) => {\n const theme = useTheme()\n const { getThemeClient } = useThemeClient()\n const handleError = useErrorHandler()\n const { getClient } = useAuth()\n const [sacs, setSacs] = useRecoilState(sacState)\n const [isLoading, setLoading] = useRecoilState(isLoadingState)\n const setOpenNewSac = useSetRecoilState(isOpenNewSacState)\n const scrollViewRef = useRef(null)\n\n const client = getClient()\n const themeClient = getThemeClient()\n\n useFocusEffect(\n useCallback(() => {\n setLoading(true)\n\n getSacList\n .get({ codigoCliente: client.codCliente })\n .then(setSacs)\n .catch(handleError)\n .finally(() => setLoading(false))\n }, [])\n )\n\n const handleOpenNewSac = (): void => {\n setOpenNewSac(true)\n }\n\n return (\n \n \n \n }\n />\n \n {sacs.listaReclamacoes?.map(item => (\n \n ))}\n \n \n\n \n \n } color={themeClient.mainColor}\n />\n \n \n \n )\n}\n","import React from 'react'\nimport { Sac } from '@/presentation/pages/Sac'\nimport { NavigationPagesProps, TabBottomNavigator } from '@/presentation/components'\nimport { makeDateAdapterFactory } from '@/main/adapters'\nimport { makeCreateSac, makeGetSacList } from '@/main/factories/usecases'\n\nexport const makeSacFactory = ({ navigation }: NavigationPagesProps): JSX.Element => {\n return (\n <>\n \n \n \n )\n}\n","import { SigmaCloudKeyResult, SowillKeyResult, SowillIdentifier } from '@/domain/models'\nimport { atom } from 'recoil'\n\nexport const sigmaKeysState = atom({\n key: 'sigmaKeyState',\n default: [] as SigmaCloudKeyResult\n})\n\nexport const sowillKeysState = atom({\n key: 'sowillKeysState',\n default: [] as SowillKeyResult\n})\n\nexport const sowillIdentifierState = atom({\n key: 'sowillIdentifierState',\n default: {\n codInternoChave: 0,\n idCliente: ''\n }\n})\n","import React, { useCallback } from 'react'\nimport { GestureResponderEvent } from 'react-native'\nimport { useRecoilState, useRecoilValue, useSetRecoilState } from 'recoil'\nimport { useFocusEffect } from '@react-navigation/native'\nimport { DateAdapter } from '@/data/protocols'\nimport { ClientMonitoringType } from '@/domain/models'\nimport { GetSigmaEvents, SigmaFilterType } from '@/domain/usecases'\nimport { Box, DatePicker, SideFilter, Text } from '@/presentation/components'\nimport { useAuth } from '@/presentation/hooks'\nimport { monitoringDateFiltersState, isLoadingMonitoringEventState, isOpenMonitoringFiltersState, SelectTypeSigmaEvent, remotyFilterState, sigmaFilterState, monitoringListHasError } from '@/presentation/pages/Events/components'\n\ntype SideFiltersProps = {\n dateAdapter: DateAdapter\n}\n\nexport const SideFilters: React.FC = ({\n dateAdapter\n}) => {\n const { getClient } = useAuth()\n const client = getClient()\n\n const [monitoringFilterDate, setMonitoringFilterDate] = useRecoilState(monitoringDateFiltersState)\n const setRemotyFilter = useSetRecoilState(remotyFilterState)\n const setSigmaFilter = useSetRecoilState(sigmaFilterState)\n const [isOpen, setOpen] = useRecoilState(isOpenMonitoringFiltersState)\n const setNoMonitoringError = useSetRecoilState(monitoringListHasError)\n\n const [localFilterDate, setLocalFilterDate] = React.useState({\n dataInicial: '',\n dataFinal: ''\n })\n\n const isLoading = useRecoilValue(isLoadingMonitoringEventState)\n\n const handleResetState = (): void => {\n setMonitoringFilterDate(currentState => ({\n ...currentState,\n dataInicial: '',\n dataFinal: ''\n })\n )\n\n setRemotyFilter({ remotyIdEquipamento: 0, remotyNmEquip: '' })\n\n setSigmaFilter({ sigmaTipo: null as unknown as SigmaFilterType, sigmaTituloChip: '' })\n }\n\n const handleClose = (): void => setOpen(false)\n\n useFocusEffect(\n useCallback(() => {\n handleResetState()\n }, [])\n )\n\n const onSubmit = (event: GestureResponderEvent): void => {\n event.preventDefault()\n setOpen(false)\n setNoMonitoringError(false)\n\n setMonitoringFilterDate(currentState => ({\n ...currentState,\n dataInicial: localFilterDate.dataInicial,\n dataFinal: localFilterDate.dataFinal\n }))\n }\n\n const handleChangeDate = useCallback((date: Date): void => {\n const dataInicial = dateAdapter.format(dateAdapter.daysAgo(GetSigmaEvents.RN.DEFAULT_DAYS, date).toString(), 'YYYY-MM-DD')\n const dataFinal = dateAdapter.format(date.toString(), 'YYYY-MM-DD')\n\n setLocalFilterDate({ dataInicial, dataFinal })\n }, [])\n\n return (\n \n \n \n Referente aos 30 dias anteriores à data selecionada.\n handleChangeDate(date ?? dateAdapter.today())}\n dateAdapter={dateAdapter}\n />\n\n \n {([ClientMonitoringType.SIGMA_CLOUD].includes(client.tipoConexao) && (\n \n \n \n \n )) as React.ReactElement || undefined}\n \n )\n}\n","import { atom } from 'recoil'\nimport { SigmaFilterType } from '@/domain/usecases'\n\nexport const isOpenMonitoringFiltersState = atom({\n key: 'isOpenMonitoringFiltersState',\n default: false\n})\n\nexport const monitoringDateFiltersState = atom({\n key: 'monitoringDateFiltersState',\n default: {\n dataInicial: '',\n dataFinal: ''\n }\n})\n\nexport const remotyFilterState = atom({\n key: 'remotyFilterState',\n default: {\n remotyIdEquipamento: 0,\n remotyNmEquip: ''\n }\n})\n\nexport const sigmaFilterState = atom({\n key: 'sigmaFilterState',\n default: {\n sigmaTipo: null as unknown as SigmaFilterType,\n sigmaTituloChip: ''\n }\n})\n","import { StyleSheet } from 'react-native'\n\nexport const styles = StyleSheet.create({\n container: {\n margin: 15,\n cursor: 'pointer'\n },\n selectInput: {\n display: 'flex',\n flexDirection: 'row',\n justifyContent: 'space-between',\n padding: 10,\n fontSize: 16,\n borderWidth: 1,\n borderColor: '#ccc',\n borderRadius: 4,\n backgroundColor: '#fff'\n },\n modalContainer: {\n flex: 1,\n justifyContent: 'center',\n alignItems: 'center',\n backgroundColor: 'rgba(0, 0, 0, 0.5)'\n },\n modalContent: {\n backgroundColor: '#fff',\n padding: 20,\n borderRadius: 8,\n width: 200\n },\n optionItem: {\n paddingVertical: 10,\n borderBottomWidth: 1,\n borderBottomColor: '#ccc'\n }\n})\n","import React, { useState } from 'react'\nimport { View, Text, Modal, TouchableOpacity, TouchableWithoutFeedback } from 'react-native'\nimport { useRecoilState } from 'recoil'\nimport { SigmaFilterTitle } from '@/domain/usecases'\nimport { sigmaFilterState } from '../SideFilters/atom'\nimport { AntDesign } from '@expo/vector-icons'\nimport { styles } from './styles'\n\nenum sigmaEventsFilterType {\n 'Todos' = 'rbTodos',\n 'Alarme' = 'rbAlarme',\n 'Teste Automático' = 'rbTstAuto',\n 'Armado' = 'rbArmado',\n 'Desarmado' = 'rbDesarmado',\n 'Sem Controle' = 'rbSControle',\n 'Desarmado ronda' = 'rbRonda'\n}\n\nexport const SelectTypeSigmaEvent = (): JSX.Element => {\n const [modalVisible, setModalVisible] = useState(false)\n const [filters, setFilters] = useRecoilState(sigmaFilterState)\n\n const sigmaFilterTitle: SigmaFilterTitle[] = ['Todos', 'Alarme', 'Teste Automático', 'Armado', 'Desarmado', 'Sem Controle', 'Desarmado ronda']\n\n const handleOpenModal = (): void => {\n setModalVisible(true)\n }\n\n const handleCloseModal = (): void => {\n setModalVisible(false)\n }\n\n const handleOptionPress = (option: SigmaFilterTitle): void => {\n const sigmaTipo = option.length ? sigmaEventsFilterType[option] : 'rbTodos'\n\n setFilters(currentFilters => ({\n ...currentFilters,\n sigmaTipo,\n sigmaTituloChip: option\n }))\n\n setModalVisible(false)\n }\n\n const stylesContainer = {\n ...styles,\n margin: 0\n }\n\n return (\n \n \n \n {filters.sigmaTituloChip || 'Tipos de eventos'}\n <>\n \n \n\n \n \n \n {sigmaFilterTitle.map((option) => (\n handleOptionPress(option)}\n style={styles.optionItem}\n >\n {option}\n \n ))}\n \n \n \n \n )\n}\n","import React, { useState } from 'react'\nimport { Menu } from 'react-native-paper'\nimport { CentralMonitoring } from '@/domain/models'\nimport { useAuth, useMediaQueries, useThemeClient } from '@/presentation/hooks'\nimport { Box, FAB } from '@/presentation/components'\nimport { useRecoilState, useSetRecoilState } from 'recoil'\nimport { contactListHasError, monitoringListHasError, remotyFilterState, sectorListHasError, userListHasError } from '@/presentation/pages/Events/components'\n\nexport const SelectRemotyEventCompany: React.FC = () => {\n const { getClient } = useAuth()\n const { getThemeClient } = useThemeClient()\n const { isMobile } = useMediaQueries()\n\n const [isMenuOpen, setMenuOpen] = useState(false)\n const [currentCompany, setCompany] = useRecoilState(remotyFilterState)\n const setEventError = useSetRecoilState(monitoringListHasError)\n const setSectorError = useSetRecoilState(sectorListHasError)\n const setUserError = useSetRecoilState(userListHasError)\n const setContactError = useSetRecoilState(contactListHasError)\n\n const client = getClient()\n const themeClient = getThemeClient()\n\n const companies = client?.centraisMonitoramento\n\n const onSelectCompany = (company: CentralMonitoring): void => {\n setCompany({ remotyIdEquipamento: company.idEquipment, remotyNmEquip: company.nmEquipment })\n }\n\n const handleSelectCompany = (company: CentralMonitoring): void => {\n onSelectCompany(company)\n setMenuOpen(false)\n\n setEventError(false)\n setSectorError(false)\n setUserError(false)\n setContactError(false)\n }\n\n const customStyle = (): object => {\n if (isMobile) {\n return {\n margin: 'auto'\n }\n } else {\n return {\n marginLeft: 'auto'\n }\n }\n }\n\n return (\n \n setMenuOpen(false)}\n anchorPosition='bottom'\n anchor={\n setMenuOpen(true)}\n size='mini'\n />\n }\n >\n {companies.map((company) => (\n handleSelectCompany(company)}\n title={company.nmEquipment}\n />\n ))}\n \n \n )\n}\n","import { atom } from 'recoil'\n\nexport const sigmaTypeEventState = atom({\n key: 'typeSigmaEventState',\n default: [\n { _id: 'Todos', value: 'rbTodos' },\n { _id: 'Alarme', value: 'rbAlarme' },\n { _id: 'Teste Automático', value: 'rbTstAuto' },\n { _id: 'Armado', value: 'rbArmado' },\n { _id: 'Desarmado', value: 'rbDesarmado' },\n { _id: 'Sem Controle', value: 'rbSControle' },\n { _id: 'Desarmado ronda', value: 'rbRonda' }\n ]\n})\n\nexport type SigmaTypes = 'rbTodos' | 'rbAlarme' | 'rbTstAuto' | 'rbArmado' | 'rbDesarmado' | 'rbSControle' | 'rbRonda'\n","import { atom } from 'recoil'\nimport { SigmaCloudKeyResponseModel } from '@/domain/models'\n\nexport const selectSigmaCloudKeyData = atom({\n key: 'selectSigmaCloudKeyData',\n default: {} as SigmaCloudKeyResponseModel\n})\n","import React, { useState } from 'react'\nimport { Menu } from 'react-native-paper'\nimport { SigmaCloudKeyResponseModel } from '@/domain/models'\nimport { useMediaQueries, useThemeClient } from '@/presentation/hooks'\nimport { Box, FAB } from '@/presentation/components'\nimport { useRecoilState, useRecoilValue } from 'recoil'\nimport { selectSigmaCloudKeyData } from './atom'\nimport { sigmaKeysState } from '../atom'\n\nexport const SelectSigmaCloudKey: React.FC = () => {\n const { getThemeClient } = useThemeClient()\n const [isMenuOpen, setMenuOpen] = useState(false)\n const [currentKey, setCurrentKey] = useRecoilState(selectSigmaCloudKeyData)\n const keys = useRecoilValue(sigmaKeysState)\n const themeClient = getThemeClient()\n const { isMobile } = useMediaQueries()\n\n const handleSelectCompany = (company: SigmaCloudKeyResponseModel): void => {\n setCurrentKey(company)\n setMenuOpen(false)\n }\n\n const customStyle = (): object => {\n if (isMobile) {\n return {\n margin: 'auto'\n }\n } else {\n return {\n marginLeft: 'auto'\n }\n }\n }\n\n return (\n \n setMenuOpen(false)}\n anchorPosition='bottom'\n anchor={\n setMenuOpen(true)}\n size='mini'\n />\n }\n >\n {keys.map((key) => (\n handleSelectCompany(key)}\n title={`Empresa: ${key.empresaSigma.toString()} - Chave: ${key.chave}/${key.particao}`}\n />\n ))}\n \n \n )\n}\n","import React from 'react'\nimport { useRecoilValue, useSetRecoilState } from 'recoil'\nimport { DateAdapter } from '@/data/protocols'\nimport { useAuth, useMediaQueries, useNotify } from '@/presentation/hooks'\nimport { ChipFilter, HStack } from '@/presentation/components'\nimport { isOpenMonitoringFiltersState, monitoringDateFiltersState, remotyFilterState, selectSigmaCloudKeyData, sowillIdentifierState } from '@/presentation/pages/Events/components'\nimport { ClientMonitoringType } from '@/domain/models'\n\ntype FiltersChipPanelProps = {\n dateAdapter: DateAdapter\n}\n\nexport const FiltersChipPanel: React.FC = ({ dateAdapter }) => {\n const setOpen = useSetRecoilState(isOpenMonitoringFiltersState)\n const filters = useRecoilValue(monitoringDateFiltersState)\n const { getClient } = useAuth()\n const { isMobile } = useMediaQueries()\n const notify = useNotify()\n\n const { remotyIdEquipamento } = useRecoilValue(remotyFilterState)\n const sowillIdentifier = useRecoilValue(sowillIdentifierState)\n const currentSigmaKey = useRecoilValue(selectSigmaCloudKeyData)\n\n const client = getClient()\n\n const period = filters.dataInicial && filters.dataFinal\n ? `${dateAdapter.format(filters.dataInicial, 'DD/MM/YYYY')} até ${dateAdapter.format(filters.dataFinal, 'DD/MM/YYYY')}`\n : filters.dataFinal\n ? `${dateAdapter.format(filters.dataFinal, 'DD/MM/YYYY')}`\n : `${dateAdapter.format(filters.dataInicial, 'DD/MM/YYYY')}`\n\n const handleOpen = (): void => {\n const conditions = {\n [ClientMonitoringType.REMOTY]: remotyIdEquipamento !== 0,\n [ClientMonitoringType.MONI]: client.tipoConexao === 1,\n [ClientMonitoringType.SIGMA_CLOUD]: !!(currentSigmaKey.codCliente && currentSigmaKey.codCliente !== 0),\n [ClientMonitoringType.SIGMA_DESK]: !!(currentSigmaKey.codCliente && currentSigmaKey.codCliente !== 0),\n [ClientMonitoringType.SO_WILL]: !!(sowillIdentifier.codInternoChave && sowillIdentifier.codInternoChave !== 0)\n }[client.tipoConexao]\n\n if (conditions) {\n setOpen(true)\n } else {\n notify.show('Selecione uma empresa antes de filtrar a data', { variant: 'error' })\n }\n }\n\n return (\n \n \n \n )\n}\n","import React, { useCallback, useEffect } from 'react'\nimport { useRecoilState, useRecoilValue, useSetRecoilState } from 'recoil'\nimport { MaterialCommunityIcons } from '@expo/vector-icons'\nimport { ScrollView } from 'react-native-gesture-handler'\nimport { DateAdapter } from '@/data/protocols'\nimport { ClientMonitoringType, GenericEventModel } from '@/domain/models'\nimport { GetMoniEvents, GetMoniEventsParams, GetRemotyEvents, GetRemotyEventsParams, GetSigmaEvents, GetSigmaEventsParams, PrintEvents, GetSowillEvents, GetSowillEventsParams, GetSowillIdentifier } from '@/domain/usecases'\nimport { useAuth, useErrorHandler, useMediaQueries, useNotify, useThemeClient } from '@/presentation/hooks'\nimport { Box, FAB, CardList, PageHeader, ActionsButtons, Stack } from '@/presentation/components'\nimport { FiltersChipPanel, CardMonitoringEvent, monitoringDateFiltersState, isOpenMonitoringFiltersState, SelectRemotyEventCompany, SelectSigmaCloudKey, SelectSowillKey, monitoringEventListState, isLoadingMonitoringEventState, sowillIdentifierState, selectSigmaCloudKeyData, remotyFilterState, monitoringListHasError, sigmaFilterState } from '@/presentation/pages/Events/components'\nimport { layoutStyles } from '@/presentation/styles/globals'\nimport { theme } from '@/presentation/styles'\nimport { useFocusEffect } from '@react-navigation/native'\n\ntype MonitoringListEventsProps = {\n dateAdapter: DateAdapter\n printEvents: PrintEvents\n getMoniEvents: GetMoniEvents\n getSigmaEvents: GetSigmaEvents\n getRemotyEvents: GetRemotyEvents\n getSowillEvents: GetSowillEvents\n getSowillIdentifier: GetSowillIdentifier\n}\n\nexport const MonitoringEventList: React.FC = ({\n dateAdapter,\n printEvents,\n getMoniEvents,\n getSigmaEvents,\n getRemotyEvents,\n getSowillEvents\n}) => {\n const notify = useNotify()\n const { getClient } = useAuth()\n const { getThemeClient } = useThemeClient()\n const { isMobile } = useMediaQueries()\n const handleError = useErrorHandler()\n\n const [isLoading, setLoading] = useRecoilState(isLoadingMonitoringEventState)\n const [monitoringEventList, setMonitoringEventList] = useRecoilState(monitoringEventListState)\n const [hasError, setHasError] = useRecoilState(monitoringListHasError)\n const setOpen = useSetRecoilState(isOpenMonitoringFiltersState)\n const [filters, setFilters] = useRecoilState(monitoringDateFiltersState)\n const { remotyIdEquipamento } = useRecoilValue(remotyFilterState)\n const sowillIdentifier = useRecoilValue(sowillIdentifierState)\n const currentSigmaKey = useRecoilValue(selectSigmaCloudKeyData)\n const sigmaFilterType = useRecoilValue(sigmaFilterState)\n\n const client = getClient()\n const themeClient = getThemeClient()\n\n useEffect(() => {\n const dataInicial = dateAdapter.format(dateAdapter.daysAgo(GetSigmaEvents.RN.DEFAULT_DAYS).toString(), 'YYYY-MM-DD')\n const dataFinal = dateAdapter.format(dateAdapter.today(), 'YYYY-MM-DD')\n setFilters({ dataInicial, dataFinal })\n }, [])\n\n useFocusEffect(\n useCallback(() => {\n const conditions = {\n [ClientMonitoringType.REMOTY]: remotyIdEquipamento && remotyIdEquipamento !== 0,\n [ClientMonitoringType.MONI]: client.tipoConexao === 1,\n [ClientMonitoringType.SIGMA_CLOUD]: !!(currentSigmaKey.codCliente),\n [ClientMonitoringType.SIGMA_DESK]: !!(currentSigmaKey.codCliente),\n [ClientMonitoringType.SO_WILL]: !!(sowillIdentifier.codInternoChave)\n }[client.tipoConexao]\n if (conditions && !hasError) { getEventsMonitoring() }\n },\n [\n client.empresa,\n remotyIdEquipamento,\n currentSigmaKey.codCliente,\n currentSigmaKey.empresaSigma,\n sowillIdentifier.codInternoChave,\n filters.dataInicial,\n sigmaFilterType.sigmaTipo,\n hasError\n ])\n )\n\n const errorHandler = (error: Error): void => {\n handleError(error)\n setHasError(true)\n }\n\n const handleGetRemotyEvent = (): void => {\n const initialDefaultDate = dateAdapter.format(dateAdapter.daysAgo(GetSigmaEvents.RN.DEFAULT_DAYS).toString(), 'YYYY-MM-DD')\n const finalDefaultDate = dateAdapter.format(dateAdapter.today(), 'YYYY-MM-DD')\n\n const params: GetRemotyEventsParams = {\n idEquipamento: remotyIdEquipamento,\n empresaMonitoramento: client.empresaMonitoramento,\n dtInicio: filters.dataInicial && filters.dataInicial !== '' ? filters.dataInicial : initialDefaultDate,\n dtFim: filters.dataFinal && filters.dataFinal !== '' ? filters.dataFinal : finalDefaultDate\n }\n\n setLoading(true)\n\n getRemotyEvents\n .getEvents(params)\n .then(setMonitoringEventList)\n .catch(errorHandler)\n .finally(() => setLoading(false))\n }\n\n const handleGetMoniEvent = (): void => {\n const defaultDate = dateAdapter.format(dateAdapter.daysAgo(GetSigmaEvents.RN.DEFAULT_DAYS).toString(), 'YYYY-MM-DD')\n\n const params: GetMoniEventsParams = {\n unidade: client.unidade.toString(),\n empresaMoni: client.empresaMonitoramento.toString(),\n codCliente: client.codCliente,\n dataInicial: filters.dataInicial && filters.dataInicial !== '' ? filters.dataInicial : defaultDate\n }\n\n setLoading(true)\n\n getMoniEvents\n .getEvents(params)\n .then(setMonitoringEventList)\n .catch(errorHandler)\n .finally(() => setLoading(false))\n }\n\n const handleGetSigmaEvent = (): void => {\n const initialDefaultDate = dateAdapter.format(dateAdapter.daysAgo(GetSigmaEvents.RN.DEFAULT_DAYS).toString(), 'YYYY-MM-DD')\n const finalDefaultDate = dateAdapter.format(dateAdapter.today(), 'YYYY-MM-DD')\n\n const params: GetSigmaEventsParams = {\n empresa: client.empresa,\n cliente: currentSigmaKey.codCliente,\n dataIni: filters.dataInicial && filters.dataInicial !== '' ? filters.dataInicial : initialDefaultDate,\n dataFinal: filters.dataFinal && filters.dataFinal !== '' ? filters.dataFinal : finalDefaultDate,\n filtro: sigmaFilterType.sigmaTipo ? sigmaFilterType.sigmaTipo : GetSigmaEvents.RN.DEFAULT_FILTER_TYPE,\n idSigma: currentSigmaKey.empresaSigma\n }\n\n getSigmaEvents\n .getEvents(params)\n .then(setMonitoringEventList)\n .catch(errorHandler)\n .finally(() => setLoading(false))\n }\n\n const handleGetSowillEvent = (): void => {\n const defaultDate = dateAdapter.format(dateAdapter.daysAgo(GetSigmaEvents.RN.DEFAULT_DAYS).toString(), 'YYYY-MM-DD')\n\n const params: GetSowillEventsParams = {\n dateTimeInicioManutencao: filters.dataInicial && filters.dataInicial !== '' ? filters.dataInicial : defaultDate,\n codInternoChave: sowillIdentifier.codInternoChave,\n idCliente: sowillIdentifier.idCliente\n }\n\n getSowillEvents\n .getEvents(params)\n .then(setMonitoringEventList)\n .catch(errorHandler)\n .finally(() => setLoading(false))\n }\n\n const getEventsMonitoring = {\n [ClientMonitoringType.MONI]: handleGetMoniEvent,\n [ClientMonitoringType.SIGMA_CLOUD]: handleGetSigmaEvent,\n [ClientMonitoringType.SIGMA_DESK]: handleGetSigmaEvent,\n [ClientMonitoringType.REMOTY]: handleGetRemotyEvent,\n [ClientMonitoringType.SO_WILL]: handleGetSowillEvent\n }[client.tipoConexao]\n\n const handlePrint = (): void => {\n const moniData = (): GenericEventModel[] => {\n const listaEventos: GenericEventModel[] = monitoringEventList.map(event => {\n return {\n evento: event.evento,\n dataEvento: event.dataEvento,\n descricao: event.descricao,\n empresaSigma: client.empresaMonitoramento\n }\n })\n return listaEventos\n }\n\n const printParams = {\n tipoConexao: client.tipoConexao,\n data: client.tipoConexao !== ClientMonitoringType.MONI ? monitoringEventList : moniData()\n }\n\n printEvents.print(printParams)\n .then(res => res)\n .catch(error => {\n notify.show(error.message, { variant: 'error' })\n console.error({ printError: error })\n })\n }\n\n const handleFilter = (): void => {\n const conditions = {\n [ClientMonitoringType.REMOTY]: remotyIdEquipamento !== 0,\n [ClientMonitoringType.MONI]: client.tipoConexao === 1,\n [ClientMonitoringType.SIGMA_CLOUD]: !!(currentSigmaKey.codCliente && currentSigmaKey.codCliente !== 0),\n [ClientMonitoringType.SIGMA_DESK]: !!(currentSigmaKey.codCliente && currentSigmaKey.codCliente !== 0),\n [ClientMonitoringType.SO_WILL]: !!(sowillIdentifier.codInternoChave && sowillIdentifier.codInternoChave !== 0)\n }[client.tipoConexao]\n\n if (conditions) {\n setOpen(true)\n } else {\n notify.show('Selecione uma empresa antes de filtrar a data', { variant: 'error' })\n }\n }\n\n return (\n \n }\n openFilters={handleFilter}\n />\n\n \n {filters.dataInicial && }\n {[ClientMonitoringType.REMOTY].includes(client.tipoConexao) && }\n {[ClientMonitoringType.SIGMA_CLOUD, ClientMonitoringType.SIGMA_DESK].includes(client.tipoConexao) && }\n {[ClientMonitoringType.SO_WILL].includes(client.tipoConexao) && }\n \n\n \n \n {monitoringEventList?.map((event, index) => (\n \n ))}\n \n \n {\n !!monitoringEventList.length &&\n \n } color={themeClient.mainColor}\n />\n \n }\n \n )\n}\n","import { GenericEventModel } from '@/domain/models'\nimport { atom } from 'recoil'\n\nexport const isLoadingMonitoringEventState = atom({\n key: 'isLoadingMonitoringEventState',\n default: false\n})\n\nexport const monitoringEventListState = atom({\n key: 'monitoringEventListState',\n default: [] as GenericEventModel[]\n})\n\nexport const monitoringListHasError = atom({\n key: 'monitoringListHasError',\n default: false\n})\n","import React, { useCallback } from 'react'\nimport { ScrollView } from 'react-native'\nimport { useRecoilState, useRecoilValue } from 'recoil'\nimport { useFocusEffect } from '@react-navigation/native'\nimport { MaterialCommunityIcons } from '@expo/vector-icons'\nimport { Box, CardList, PageHeader, Stack } from '@/presentation/components'\nimport { GetMoniSectorsParams, GetMoniSectors, GetRemotySectorsParams, GetRemotySectors, GetSowillSectors, GetSowillSectorsParams, GetSigmaCloudSectors, GetSigmaCloudSectorsParams, GetSigmaDeskSectors, GetSigmaDeskSectorParams } from '@/domain/usecases'\nimport { ClientMonitoringType } from '@/domain/models'\nimport { useAuth, useErrorHandler, useMediaQueries } from '@/presentation/hooks'\nimport { theme } from '@/presentation/styles'\nimport { layoutStyles } from '@/presentation/styles/globals'\nimport { CardSector, isLoadingSectorEventsState, sectorListState, SelectSigmaCloudKey, SelectRemotyEventCompany, selectSigmaCloudKeyData, sowillIdentifierState, SelectSowillKey, remotyFilterState, sectorListHasError } from '@/presentation/pages/Events/components'\n\ntype SectorListProps = {\n getMoniSectors: GetMoniSectors\n getRemotySectors: GetRemotySectors\n getSowillSectors: GetSowillSectors\n getSigmaCloudSectors: GetSigmaCloudSectors\n getSigmaDeskSectors: GetSigmaDeskSectors\n}\n\nexport const SectorList: React.FC = ({\n getRemotySectors,\n getMoniSectors,\n getSowillSectors,\n getSigmaCloudSectors,\n getSigmaDeskSectors\n}) => {\n const { getClient } = useAuth()\n const { isMobile } = useMediaQueries()\n const handleError = useErrorHandler()\n const client = getClient()\n\n const [hasError, setHasError] = useRecoilState(sectorListHasError)\n const [isLoading, setLoading] = useRecoilState(isLoadingSectorEventsState)\n const [sectorList, setSectorList] = useRecoilState(sectorListState)\n const { remotyIdEquipamento } = useRecoilValue(remotyFilterState)\n const currentSigmaKey = useRecoilValue(selectSigmaCloudKeyData)\n const sowillIdentifier = useRecoilValue(sowillIdentifierState)\n\n useFocusEffect(\n useCallback(() => {\n const conditions = {\n [ClientMonitoringType.REMOTY]: remotyIdEquipamento !== 0 && remotyIdEquipamento,\n [ClientMonitoringType.MONI]: client.tipoConexao && client.tipoConexao === 1,\n [ClientMonitoringType.SIGMA_CLOUD]: !!(currentSigmaKey.codCliente),\n [ClientMonitoringType.SIGMA_DESK]: !!(currentSigmaKey.codCliente),\n [ClientMonitoringType.SO_WILL]: !!(sowillIdentifier.codInternoChave)\n }[client.tipoConexao]\n\n if (conditions && !hasError) { getEventsSector() }\n },\n [\n client.empresa,\n remotyIdEquipamento,\n currentSigmaKey.codCliente,\n currentSigmaKey.empresaSigma,\n sowillIdentifier.codInternoChave,\n hasError\n ])\n )\n\n const errorHandler = (error: Error): void => {\n handleError(error)\n setHasError(true)\n }\n\n const handleGetMoniSectorList = (): void => {\n const params: GetMoniSectorsParams = {\n unidade: client.unidade,\n empresaMoni: client.empresaMonitoramento,\n codCliente: client.codCliente\n }\n\n setLoading(true)\n\n getMoniSectors\n .getSectors(params)\n .then(setSectorList)\n .catch(errorHandler)\n .finally(() => setLoading(false))\n }\n\n const handleGetRemotySectorList = (): void => {\n const params: GetRemotySectorsParams = {\n idEquipamento: remotyIdEquipamento,\n empresaMonitoramento: client.empresaMonitoramento\n }\n\n setLoading(true)\n\n getRemotySectors\n .getSectors(params)\n .then(setSectorList)\n .catch(errorHandler)\n .finally(() => setLoading(false))\n }\n\n const handleGetSowillSectorList = (): void => {\n const getSowillSectorParams: GetSowillSectorsParams = {\n codInternoChave: sowillIdentifier.codInternoChave,\n idCliente: sowillIdentifier.idCliente\n }\n\n setLoading(true)\n\n getSowillSectors\n .getZones(getSowillSectorParams)\n .then(setSectorList)\n .catch(errorHandler)\n .finally(() => setLoading(false))\n }\n\n const handleGetSigmaCloudSectorList = (): void => {\n const params: GetSigmaCloudSectorsParams = {\n chave: currentSigmaKey.chave,\n particao: currentSigmaKey.particao,\n unidade: currentSigmaKey.empresaSigma\n }\n\n setLoading(true)\n\n getSigmaCloudSectors\n .getZones(params)\n .then(setSectorList)\n .catch(errorHandler)\n .finally(() => setLoading(false))\n }\n\n const handleGetSigmaDeskSectorList = (): void => {\n const params: GetSigmaDeskSectorParams = {\n empresaSigma: currentSigmaKey.empresaSigma,\n idCentral: currentSigmaKey.codInterno,\n unidade: currentSigmaKey.empresaSigma\n }\n\n setLoading(true)\n\n getSigmaDeskSectors\n .getSector(params)\n .then(setSectorList)\n .catch(errorHandler)\n .finally(() => setLoading(false))\n }\n\n const getEventsSector = {\n [ClientMonitoringType.MONI]: handleGetMoniSectorList,\n [ClientMonitoringType.REMOTY]: handleGetRemotySectorList,\n [ClientMonitoringType.SO_WILL]: handleGetSowillSectorList,\n [ClientMonitoringType.SIGMA_CLOUD]: handleGetSigmaCloudSectorList,\n [ClientMonitoringType.SIGMA_DESK]: handleGetSigmaDeskSectorList\n }[client.tipoConexao]\n\n return (\n \n }\n />\n\n \n {[ClientMonitoringType.REMOTY].includes(client.tipoConexao) && }\n {[ClientMonitoringType.SIGMA_CLOUD, ClientMonitoringType.SIGMA_DESK].includes(client.tipoConexao) && }\n {[ClientMonitoringType.SO_WILL].includes(client.tipoConexao) && }\n \n\n \n \n {sectorList?.map((sector, index) => (\n \n ))}\n \n \n \n )\n}\n","import { GenericSectorModel } from '@/domain/models'\nimport { atom } from 'recoil'\n\nexport const isLoadingSectorEventsState = atom({\n key: 'isLoadingSectorEventsState',\n default: false\n})\n\nexport const sectorListState = atom({\n key: 'sectorListState',\n default: [] as GenericSectorModel[]\n})\n\nexport const sectorListHasError = atom({\n key: 'sectorListHasError',\n default: false\n})\n","import { StyleSheet } from 'react-native'\n\nexport const styles = StyleSheet.create({\n container: {\n padding: 16,\n minWidth: 320,\n fontSize: 14,\n display: 'flex',\n alignItems: 'stretch',\n overflow: 'hidden',\n borderRadius: 4,\n shadowColor: 'rgba(0, 0, 0, 0.04)',\n shadowOffset: {\n width: 4,\n height: 8\n },\n shadowRadius: 4\n },\n headerContainer: {\n display: 'flex',\n flexDirection: 'row',\n justifyContent: 'space-between',\n alignItems: 'center',\n paddingLeft: 0,\n paddingRight: 0\n },\n headerTitle: {\n color: 'rgba(0, 0, 0, 0.77)',\n fontWeight: '500',\n fontSize: 14,\n overflow: 'hidden',\n whiteSpace: 'noWrap',\n textOverflow: 'ellipsis'\n },\n\n divider: {\n backgroundColor: 'rgba(0, 0, 0, 0.21)'\n },\n\n cardContent: {\n flexDirection: 'column',\n paddingLeft: 0,\n paddingRight: 0,\n display: 'flex',\n gap: 8\n },\n contentText: {\n display: 'flex',\n flexDirection: 'row',\n flexWrap: 'nowrap',\n overflow: 'hidden',\n textOverflow: 'ellipsis'\n },\n contentTextWithChip: {\n display: 'flex',\n flexDirection: 'row',\n justifyContent: 'space-between',\n overflow: 'hidden',\n whiteSpace: 'noWrap',\n textOverflow: 'ellipsis'\n },\n contentTitle: {\n color: 'rgba(0, 0, 0, 0.77)',\n fontWeight: '500',\n marginRight: 4\n },\n docButtonBox: {\n justifyContent: 'space-between'\n }\n})\n","import React from 'react'\nimport { Box, Divider, HStack } from '@react-native-material/core'\nimport { ClientMonitoringType, GenericEventModel } from '@/domain/models'\nimport { DateAdapter } from '@/data/protocols'\nimport { Text, VStack } from '@/presentation/components'\nimport { useAuth, useMediaQueries } from '@/presentation/hooks'\nimport { theme } from '@/presentation/styles'\nimport { styles } from './styles'\n\ntype CardMonitoringEventProps = {\n dateAdapter: DateAdapter\n event: GenericEventModel\n}\n\nexport const CardMonitoringEvent: React.FC = ({ event, dateAdapter }: CardMonitoringEventProps) => {\n const { isMobile } = useMediaQueries()\n const { getClient } = useAuth()\n const client = getClient()\n\n const containerStyles = {\n ...styles.container,\n ...(!isMobile && {\n flex: 1,\n maxWidth: 600\n }),\n backgroundColor: theme.colors.white,\n color: theme.colors.greyLighten\n }\n\n const textTitleStyles = {\n ...styles.contentText,\n color: theme.colors.texts\n }\n\n return (\n \n \n {event?.evento &&\n \n \n Evento:\n \n {event.evento}\n }\n \n\n \n \n {\n event.aux &&\n \n \n {[ClientMonitoringType.SIGMA_CLOUD, ClientMonitoringType.SIGMA_DESK].includes(client.tipoConexao) && 'Empresa:'}\n {[ClientMonitoringType.MONI].includes(client.tipoConexao) && 'AUX:'}\n \n {event.aux}\n \n }\n \n \n Data:\n \n {dateAdapter.format(event.dataEvento, 'DD/MM/YYYY HH:mm:ss')}\n \n \n \n Descrição:\n \n {event.descricao}\n \n {\n [ClientMonitoringType.REMOTY].includes(client.tipoConexao) && event.usuario &&\n \n \n Usuario:\n \n {event.usuario}\n \n }\n \n\n \n )\n}\n","import { StyleSheet } from 'react-native'\n\nexport const styles = StyleSheet.create({\n container: {\n padding: 16,\n minWidth: 320,\n fontSize: 14,\n display: 'flex',\n alignItems: 'stretch',\n overflow: 'hidden',\n borderRadius: 4,\n shadowColor: 'rgba(0, 0, 0, 0.04)',\n shadowOffset: {\n width: 4,\n height: 8\n },\n shadowRadius: 4\n },\n headerContainer: {\n display: 'flex',\n flexDirection: 'row',\n justifyContent: 'space-between',\n alignItems: 'center',\n paddingLeft: 0,\n paddingRight: 0\n },\n headerTitle: {\n color: 'rgba(0, 0, 0, 0.77)',\n fontWeight: '500',\n fontSize: 14,\n overflow: 'hidden',\n whiteSpace: 'noWrap',\n textOverflow: 'ellipsis'\n },\n\n divider: {\n backgroundColor: 'rgba(0, 0, 0, 0.21)'\n },\n\n cardContent: {\n flexDirection: 'column',\n paddingLeft: 0,\n paddingRight: 0,\n display: 'flex',\n gap: 8\n },\n contentText: {\n display: 'flex',\n flexDirection: 'row',\n flexWrap: 'nowrap',\n overflow: 'hidden',\n textOverflow: 'ellipsis'\n },\n contentTextWithChip: {\n display: 'flex',\n flexDirection: 'row',\n justifyContent: 'space-between',\n overflow: 'hidden',\n whiteSpace: 'noWrap',\n textOverflow: 'ellipsis'\n },\n contentTitle: {\n color: 'rgba(0, 0, 0, 0.77)',\n fontWeight: '500',\n marginRight: 4\n },\n docButtonBox: {\n justifyContent: 'space-between'\n }\n})\n","import React from 'react'\nimport { Divider } from 'react-native-paper'\nimport { Box, HStack, VStack, Text } from '@react-native-material/core'\nimport { GenericSectorModel, ClientMonitoringType } from '@/domain/models'\nimport { useAuth, useMediaQueries } from '@/presentation/hooks'\nimport { theme } from '@/presentation/styles'\nimport { styles } from './styles'\n\ntype CardSectorProps = {\n sector: GenericSectorModel\n}\n\nexport const CardSector: React.FC = ({ sector }: CardSectorProps) => {\n const { isMobile } = useMediaQueries()\n const { getClient } = useAuth()\n const client = getClient()\n\n const containerStyles = {\n ...styles.container,\n ...(!isMobile && {\n flex: 1,\n maxWidth: 600\n }),\n backgroundColor: theme.colors.white,\n color: theme.colors.greyLighten\n }\n\n const textTitleStyles = {\n ...styles.contentText,\n color: theme.colors.texts\n }\n\n return (\n \n \n \n \n {[ClientMonitoringType.SO_WILL, ClientMonitoringType.SIGMA_CLOUD].includes(client.tipoConexao)\n ? 'Zona:'\n : 'Setor:'}\n \n {sector.nome}\n \n\n {sector?.codigoZona &&\n \n \n Código:\n \n {sector.codigoZona}\n }\n \n\n \n \n <>\n {sector?.codigoCliente &&\n \n \n Codigo do cliente:\n \n {sector.codigoCliente}\n }\n {sector?.idEquipamento &&\n \n \n Id do Equipamento:\n \n {sector.idEquipamento}\n }\n {sector?.ativo &&\n \n \n Status:\n \n {sector.ativo ? 'Ativo' : ' Inativo'}\n }\n {sector?.observacao &&\n \n \n Observação:\n \n {sector?.observacao}\n }\n \n \n\n \n )\n}\n","import React, { useCallback } from 'react'\nimport { ScrollView } from 'react-native'\nimport { useRecoilState, useRecoilValue } from 'recoil'\nimport { MaterialCommunityIcons } from '@expo/vector-icons'\nimport { useFocusEffect } from '@react-navigation/native'\nimport { ClientMonitoringType } from '@/domain/models'\nimport { GetRemotyContacts, GetRemotyContactsParams, GetSigmaDeskContacts, GetSigmaDeskContactsParams } from '@/domain/usecases'\nimport { Box, CardList, PageHeader, Stack } from '@/presentation/components'\nimport { layoutStyles } from '@/presentation/styles/globals'\nimport { theme } from '@/presentation/styles'\nimport { useAuth, useErrorHandler, useMediaQueries } from '@/presentation/hooks'\nimport { CardContact, contactListState, isLoadingContactEventState, SelectRemotyEventCompany, SelectSigmaCloudKey, selectSigmaCloudKeyData, remotyFilterState, contactListHasError } from '@/presentation/pages/Events/components'\n\ntype ContactEventListProps = {\n getRemotyContacts: GetRemotyContacts\n getSigmaDeskContacts: GetSigmaDeskContacts\n}\n\nexport const ContactEventList: React.FC = ({\n getRemotyContacts,\n getSigmaDeskContacts\n}: ContactEventListProps) => {\n const { getClient } = useAuth()\n const handleError = useErrorHandler()\n const { isMobile } = useMediaQueries()\n const client = getClient()\n\n const [hasError, setHasError] = useRecoilState(contactListHasError)\n const currentSigmaKey = useRecoilValue(selectSigmaCloudKeyData)\n const { remotyIdEquipamento } = useRecoilValue(remotyFilterState)\n const [contactList, setContactList] = useRecoilState(contactListState)\n const [isLoading, setLoading] = useRecoilState(isLoadingContactEventState)\n\n useFocusEffect(\n useCallback(() => {\n const conditions = {\n [ClientMonitoringType.REMOTY]: remotyIdEquipamento && remotyIdEquipamento !== 0,\n [ClientMonitoringType.MONI]: false,\n [ClientMonitoringType.SIGMA_CLOUD]: !!(currentSigmaKey.codCliente),\n [ClientMonitoringType.SIGMA_DESK]: !!(currentSigmaKey.codCliente),\n [ClientMonitoringType.SO_WILL]: false\n }[client.tipoConexao]\n\n if (conditions && !hasError) { getEventContacts() }\n }, [client.empresa, remotyIdEquipamento, currentSigmaKey.codCliente, currentSigmaKey.empresaSigma])\n )\n\n const errorHandler = (error: Error): void => {\n handleError(error)\n setHasError(true)\n }\n\n const handleGetRemotyContactList = (): void => {\n const params: GetRemotyContactsParams = {\n idEquipamento: remotyIdEquipamento,\n empresaMonitoramento: client.empresaMonitoramento\n }\n\n setLoading(true)\n\n getRemotyContacts\n .getContacts(params)\n .then(setContactList)\n .catch(errorHandler)\n .finally(() => setLoading(false))\n }\n\n const handleGetSigmaDeskContactList = (): void => {\n const params: GetSigmaDeskContactsParams = {\n empresaSigma: currentSigmaKey.empresaSigma,\n idCentral: currentSigmaKey.codInterno,\n unidade: currentSigmaKey.empresaSigma\n }\n\n setLoading(true)\n\n getSigmaDeskContacts\n .getContacts(params)\n .then(setContactList)\n .catch(errorHandler)\n .finally(() => setLoading(false))\n }\n\n const getEventContacts = {\n [ClientMonitoringType.MONI]: () => { },\n [ClientMonitoringType.REMOTY]: handleGetRemotyContactList,\n [ClientMonitoringType.SIGMA_CLOUD]: () => { },\n [ClientMonitoringType.SIGMA_DESK]: handleGetSigmaDeskContactList,\n [ClientMonitoringType.SO_WILL]: () => { }\n }[client.tipoConexao]\n\n return (\n \n }\n />\n \n {[ClientMonitoringType.REMOTY].includes(client.tipoConexao) && }\n {[ClientMonitoringType.SIGMA_DESK].includes(client.tipoConexao) && }\n \n \n \n {contactList?.map((contact, index) => (\n \n ))}\n \n \n \n )\n}\n","import { GenericContactModel } from '@/domain/models'\nimport { atom } from 'recoil'\n\nexport const isLoadingContactEventState = atom({\n key: 'isLoadingContactEventState',\n default: false\n})\n\nexport const contactListState = atom({\n key: 'contactListState',\n default: [] as GenericContactModel[]\n})\n\nexport const contactListHasError = atom({\n key: 'contactListHasError',\n default: false\n})\n","import { StyleSheet } from 'react-native'\n\nexport const styles = StyleSheet.create({\n container: {\n padding: 16,\n minWidth: 320,\n fontSize: 14,\n display: 'flex',\n alignItems: 'stretch',\n overflow: 'hidden',\n borderRadius: 4,\n shadowColor: 'rgba(0, 0, 0, 0.04)',\n shadowOffset: {\n width: 4,\n height: 8\n },\n shadowRadius: 4\n },\n headerContainer: {\n display: 'flex',\n flexDirection: 'row',\n justifyContent: 'space-between',\n alignItems: 'center',\n paddingLeft: 0,\n paddingRight: 0\n },\n headerTitle: {\n color: 'rgba(0, 0, 0, 0.77)',\n fontWeight: '500',\n fontSize: 14,\n overflow: 'hidden',\n whiteSpace: 'noWrap',\n textOverflow: 'ellipsis'\n },\n\n divider: {\n backgroundColor: 'rgba(0, 0, 0, 0.21)'\n },\n\n cardContent: {\n flexDirection: 'column',\n paddingLeft: 0,\n paddingRight: 0,\n display: 'flex',\n gap: 8\n },\n contentText: {\n display: 'flex',\n flexDirection: 'row',\n flexWrap: 'nowrap',\n overflow: 'hidden',\n textOverflow: 'ellipsis'\n },\n contentTextWithChip: {\n display: 'flex',\n flexDirection: 'row',\n justifyContent: 'space-between',\n overflow: 'hidden',\n whiteSpace: 'noWrap',\n textOverflow: 'ellipsis'\n },\n contentTitle: {\n color: 'rgba(0, 0, 0, 0.77)',\n fontWeight: '500',\n marginRight: 4\n },\n docButtonBox: {\n justifyContent: 'space-between'\n }\n})\n","import React from 'react'\nimport { Divider } from 'react-native-paper'\nimport { Box, HStack, VStack, Text } from '@react-native-material/core'\nimport { GenericContactModel } from '@/domain/models'\nimport { useMediaQueries } from '@/presentation/hooks'\nimport { theme } from '@/presentation/styles'\nimport { styles } from './styles'\n\ntype CardContactProps = {\n contact: GenericContactModel\n}\n\nexport const CardContact: React.FC = ({ contact }: CardContactProps) => {\n const { isMobile } = useMediaQueries()\n\n const containerStyles = {\n ...styles.container,\n ...(!isMobile && {\n flex: 1,\n maxWidth: 600\n }),\n backgroundColor: theme.colors.white,\n color: theme.colors.greyLighten\n }\n\n const textTitleStyles = {\n ...styles.contentText,\n color: theme.colors.texts\n }\n\n return (\n \n \n\n \n \n Usuário:\n \n {contact?.nomeUsuario}\n \n {contact?.idUsuario &&\n \n \n Id:\n \n {contact?.idUsuario}\n }\n\n \n\n \n \n <>\n {contact.idDispositivo &&\n \n \n Id:\n \n {contact.idDispositivo}\n }\n {contact?.nomeDispositivo &&\n \n \n Dispositivo:\n \n {contact.nomeDispositivo}\n }\n {contact.fone1 &&\n \n \n Fone:\n \n {contact.fone1}\n }\n {contact.fone2 &&\n \n \n Fone 2:\n \n {contact?.fone2}\n }\n \n \n \n )\n}\n","import React, { useCallback } from 'react'\nimport { ScrollView } from 'react-native'\nimport { MaterialCommunityIcons } from '@expo/vector-icons'\nimport { useFocusEffect } from '@react-navigation/native'\nimport { useRecoilState, useRecoilValue } from 'recoil'\nimport { GetMoniUsers, GetMoniUsersParams, GetRemotyUsers, GetRemotyUsersParams, GetSigmaCloudUsers, GetSigmaCloudUsersParams, GetSowillUsers, GetSowillUsersParams } from '@/domain/usecases'\nimport { ClientMonitoringType } from '@/domain/models'\nimport { Box, CardList, PageHeader, Stack } from '@/presentation/components'\nimport { useAuth, useErrorHandler, useMediaQueries } from '@/presentation/hooks'\nimport { theme } from '@/presentation/styles'\nimport { CardUser, userListState, isLoadingUserEventsState, SelectRemotyEventCompany, SelectSigmaCloudKey, sowillIdentifierState, SelectSowillKey, selectSigmaCloudKeyData, remotyFilterState, userListHasError } from '@/presentation/pages/Events/components'\nimport { layoutStyles } from '@/presentation/styles/globals'\n\ntype UserEventListProps = {\n getMoniUsers: GetMoniUsers\n getRemotyUsers: GetRemotyUsers\n getSowillUsers: GetSowillUsers\n getSigmaCloudUsers: GetSigmaCloudUsers\n}\n\nexport const UserEventList: React.FC = ({\n getMoniUsers,\n getRemotyUsers,\n getSowillUsers,\n getSigmaCloudUsers\n}: UserEventListProps) => {\n const { getClient } = useAuth()\n const handleError = useErrorHandler()\n const { isMobile } = useMediaQueries()\n const client = getClient()\n\n const [hasError, setHasError] = useRecoilState(userListHasError)\n const { remotyIdEquipamento } = useRecoilValue(remotyFilterState)\n const currentSigmaKey = useRecoilValue(selectSigmaCloudKeyData)\n const [isLoading, setLoading] = useRecoilState(isLoadingUserEventsState)\n const [userList, setUserList] = useRecoilState(userListState)\n const sowillIdentifier = useRecoilValue(sowillIdentifierState)\n\n useFocusEffect(\n useCallback(() => {\n const conditions = {\n [ClientMonitoringType.REMOTY]: remotyIdEquipamento && remotyIdEquipamento !== 0,\n [ClientMonitoringType.MONI]: client.tipoConexao === 1,\n [ClientMonitoringType.SIGMA_CLOUD]: !!(currentSigmaKey.codCliente),\n [ClientMonitoringType.SIGMA_DESK]: !!(currentSigmaKey.codCliente),\n [ClientMonitoringType.SO_WILL]: !!(sowillIdentifier.codInternoChave)\n }[client.tipoConexao]\n\n if (conditions && !hasError) { getEventUser() }\n }, [\n client.codCliente,\n remotyIdEquipamento,\n currentSigmaKey,\n currentSigmaKey.codCliente,\n sowillIdentifier.codInternoChave\n ])\n )\n\n const errorHandler = (error: Error): void => {\n handleError(error)\n setHasError(true)\n }\n\n const handleGetMoniUserList = (): void => {\n const params: GetMoniUsersParams = {\n unidade: client.unidade,\n empresaMoni: client.empresaMonitoramento,\n codCliente: client.codCliente\n }\n\n setLoading(true)\n\n getMoniUsers\n .getUsers(params)\n .then(setUserList)\n .catch(errorHandler)\n .finally(() => setLoading(false))\n }\n\n const handleGetRemotyUserList = (): void => {\n const params: GetRemotyUsersParams = {\n idEquipamento: remotyIdEquipamento,\n empresaMonitoramento: client.empresaMonitoramento\n }\n\n setLoading(true)\n\n getRemotyUsers\n .getUsers(params)\n .then(setUserList)\n .catch(errorHandler)\n .finally(() => setLoading(false))\n }\n\n const handleGetSowillUserList = (): void => {\n const params: GetSowillUsersParams = {\n idCliente: sowillIdentifier.idCliente,\n codInternoChave: sowillIdentifier.codInternoChave\n }\n\n setLoading(true)\n\n getSowillUsers\n .getUsers(params)\n .then(setUserList)\n .catch(errorHandler)\n .finally(() => setLoading(false))\n }\n\n const handleGetSigmaCloudUserList = (): void => {\n const params: GetSigmaCloudUsersParams = {\n codCentral: currentSigmaKey.codInterno,\n empresaSigma: currentSigmaKey.empresaSigma\n }\n\n setLoading(true)\n\n getSigmaCloudUsers\n .getUsers(params)\n .then(setUserList)\n .catch(errorHandler)\n .finally(() => setLoading(false))\n }\n\n const getEventUser = {\n [ClientMonitoringType.MONI]: handleGetMoniUserList,\n [ClientMonitoringType.REMOTY]: handleGetRemotyUserList,\n [ClientMonitoringType.SIGMA_CLOUD]: handleGetSigmaCloudUserList,\n [ClientMonitoringType.SIGMA_DESK]: () => { },\n [ClientMonitoringType.SO_WILL]: handleGetSowillUserList\n }[client.tipoConexao]\n\n return (\n \n }\n />\n\n \n {[ClientMonitoringType.REMOTY].includes(client.tipoConexao) && }\n {[ClientMonitoringType.SIGMA_CLOUD].includes(client.tipoConexao) && }\n {[ClientMonitoringType.SO_WILL].includes(client.tipoConexao) && }\n \n\n \n \n {userList?.map((user, index) => (\n \n ))}\n \n \n \n )\n}\n","import { GenericUserModel } from '@/domain/models'\nimport { atom } from 'recoil'\n\nexport const isLoadingUserEventsState = atom({\n key: 'isLoadingUserEventsState',\n default: false\n})\n\nexport const userListState = atom({\n key: 'useListState',\n default: [] as GenericUserModel[]\n})\n\nexport const userListHasError = atom({\n key: 'userListHasError',\n default: false\n})\n","import { StyleSheet } from 'react-native'\n\nexport const styles = StyleSheet.create({\n container: {\n padding: 16,\n minWidth: 320,\n fontSize: 14,\n display: 'flex',\n alignItems: 'stretch',\n overflow: 'hidden',\n borderRadius: 4,\n shadowColor: 'rgba(0, 0, 0, 0.04)',\n shadowOffset: {\n width: 4,\n height: 8\n },\n shadowRadius: 4\n },\n headerContainer: {\n display: 'flex',\n flexDirection: 'row',\n justifyContent: 'space-between',\n alignItems: 'center',\n paddingLeft: 0,\n paddingRight: 0\n },\n headerTitle: {\n color: 'rgba(0, 0, 0, 0.77)',\n fontWeight: '500',\n fontSize: 14,\n overflow: 'hidden',\n whiteSpace: 'noWrap',\n textOverflow: 'ellipsis'\n },\n\n divider: {\n backgroundColor: 'rgba(0, 0, 0, 0.21)'\n },\n\n cardContent: {\n flexDirection: 'column',\n paddingLeft: 0,\n paddingRight: 0,\n display: 'flex',\n gap: 8\n },\n contentText: {\n display: 'flex',\n flexDirection: 'row',\n flexWrap: 'nowrap',\n overflow: 'hidden',\n textOverflow: 'ellipsis'\n },\n contentTextWithChip: {\n display: 'flex',\n flexDirection: 'row',\n justifyContent: 'space-between',\n overflow: 'hidden',\n whiteSpace: 'noWrap',\n textOverflow: 'ellipsis'\n },\n contentTitle: {\n color: 'rgba(0, 0, 0, 0.77)',\n fontWeight: '500',\n marginRight: 4\n },\n docButtonBox: {\n justifyContent: 'space-between'\n }\n})\n","import React from 'react'\nimport { Divider } from 'react-native-paper'\nimport { Box, HStack, VStack, Text } from '@react-native-material/core'\nimport { GenericUserModel } from '@/domain/models'\nimport { theme } from '@/presentation/styles'\nimport { useMediaQueries } from '@/presentation/hooks'\nimport { styles } from './styles'\n\ntype CardUserProps = {\n user: GenericUserModel\n}\n\nexport const CardUser: React.FC = ({ user }: CardUserProps) => {\n const { isMobile } = useMediaQueries()\n\n const containerStyles = {\n ...styles.container,\n ...(!isMobile && {\n flex: 1,\n maxWidth: 600\n }),\n backgroundColor: theme.colors.white,\n color: theme.colors.greyLighten\n }\n\n const textTitleStyles = {\n ...styles.contentText,\n color: theme.colors.texts\n }\n\n return (\n \n \n\n {user?.nome &&\n \n \n Nome:\n \n {user.nome}\n }\n\n {user.codCliente &&\n \n \n Codigo do cliente:\n \n {user.codCliente}\n }\n \n\n {user.fone1 &&\n \n \n <>\n \n \n Fone:\n \n {user.dddFone ? `(${user.dddFone})` : ''}\n {user.fone1}\n \n {user.fone2 &&\n \n \n Fone 2:\n \n {user?.fone2}\n \n }\n {user.fone3 &&\n \n \n Fone 3:\n \n {user?.fone3}\n \n }\n \n }\n \n )\n}\n","import { atom } from 'recoil'\n\nexport const selectSowillKeyState = atom({\n key: 'selectSowillKeyState',\n default: {\n empresaMonitoramento: 0,\n chave: '',\n particao: ''\n }\n})\n","import React, { useState } from 'react'\nimport { Menu } from 'react-native-paper'\nimport { useRecoilState, useRecoilValue } from 'recoil'\nimport { SowillKeyResponseModel } from '@/domain/models'\nimport { useMediaQueries, useThemeClient } from '@/presentation/hooks'\nimport { Box, FAB } from '@/presentation/components'\nimport { selectSowillKeyState } from './atom'\nimport { sowillKeysState } from '../atom'\n\nexport const SelectSowillKey: React.FC = () => {\n const keys = useRecoilValue(sowillKeysState)\n const { getThemeClient } = useThemeClient()\n const [isMenuOpen, setMenuOpen] = useState(false)\n const [key, setKey] = useRecoilState(selectSowillKeyState)\n const { isMobile } = useMediaQueries()\n\n const themeClient = getThemeClient()\n\n const handleSelectCompany = (identifier: SowillKeyResponseModel): void => {\n const { codCliente, ...key } = identifier\n setKey(key)\n }\n\n const customStyle = (): object => {\n if (isMobile) {\n return {\n margin: 'auto'\n }\n } else {\n return {\n marginLeft: 'auto'\n }\n }\n }\n\n return (\n \n setMenuOpen(false)}\n anchorPosition='bottom'\n anchor={\n setMenuOpen(true)}\n size='mini'\n />\n }\n >\n {keys.map((identifier, index) => (\n handleSelectCompany(identifier)}\n title={`Empresa ${identifier.empresaMonitoramento} - Chave ${identifier.chave}/ ${identifier.particao}`}\n />\n ))}\n \n \n )\n}\n","import { StyleSheet } from 'react-native'\nimport { layoutStyles } from '@/presentation/styles/globals'\n\nexport const styles = StyleSheet.create({\n container: {\n flex: 1\n },\n content: {\n ...layoutStyles.pageContent\n }\n})\n","import React, { useCallback, useEffect } from 'react'\nimport { SafeAreaView } from 'react-native-safe-area-context'\nimport { createMaterialTopTabNavigator } from '@react-navigation/material-top-tabs'\nimport { ClientMonitoringType } from '@/domain/models'\nimport { PrintEvents, GetMoniEvents, GetRemotyEvents, GetSowillEvents, GetSigmaEvents, GetRemotySectors, GetMoniSectors, GetRemotyUsers, GetSowillUsers, GetRemotyContacts, GetSowillSectors, GetMoniUsers, GetSigmaCloudSectors, GetSigmaCloudUsers, GetSigmaCloudKeys, GetSowillKeys, GetSowillIdentifier, GetSigmaDeskSectors, GetSigmaDeskContacts } from '@/domain/usecases'\nimport { DateAdapter } from '@/data/protocols'\nimport { EmptyList } from '@/presentation/components'\nimport { useAuth, useTheme, useThemeClient, useMediaQueries, useNotify } from '@/presentation/hooks'\nimport { SideFilters, SectorList, UserEventList, ContactEventList, MonitoringEventList, sowillKeysState, sowillIdentifierState, sigmaKeysState } from '@/presentation/pages/Events/components'\nimport { styles } from './styles'\nimport { useRecoilState, useRecoilValue, useSetRecoilState } from 'recoil'\nimport { useFocusEffect } from '@react-navigation/native'\nimport { AccessDeniedError } from '@/domain/errors'\nimport { selectSowillKeyState } from './components/SelectSowillKey/atom'\n\nconst Tab = createMaterialTopTabNavigator()\n\ntype EventsProps = {\n dateAdapter: DateAdapter\n printEvents: PrintEvents\n getRemotyEvents: GetRemotyEvents\n getRemotySectors: GetRemotySectors\n getRemotyUsers: GetRemotyUsers\n getRemotyContacts: GetRemotyContacts\n getMoniEvents: GetMoniEvents\n getMoniSectors: GetMoniSectors\n getMoniUsers: GetMoniUsers\n getSowillEvents: GetSowillEvents\n getSowillSectors: GetSowillSectors\n getSowillUsers: GetSowillUsers\n getSowillKeys: GetSowillKeys\n getSowillIdentifier: GetSowillIdentifier\n getSigmaEvents: GetSigmaEvents\n getSigmaCloudSectors: GetSigmaCloudSectors\n getSigmaCloudUsers: GetSigmaCloudUsers\n getSigmaCloudKeys: GetSigmaCloudKeys\n getSigmaDeskSectors: GetSigmaDeskSectors\n getSigmaDeskContacts: GetSigmaDeskContacts\n}\n\nexport const Events: React.FC = ({\n dateAdapter,\n printEvents,\n getSigmaEvents,\n getRemotyEvents,\n getRemotySectors,\n getRemotyUsers,\n getRemotyContacts,\n getMoniEvents,\n getMoniSectors,\n getMoniUsers,\n getSowillEvents,\n getSowillSectors,\n getSowillUsers,\n getSowillKeys,\n getSowillIdentifier,\n getSigmaCloudSectors,\n getSigmaCloudUsers,\n getSigmaCloudKeys,\n getSigmaDeskSectors,\n getSigmaDeskContacts\n}) => {\n const theme = useTheme()\n const { isMobile } = useMediaQueries()\n const { getThemeClient } = useThemeClient()\n const { getClient, logout } = useAuth()\n const [sigmaKeys, setSigmaKeys] = useRecoilState(sigmaKeysState)\n\n const setSowillKeysList = useSetRecoilState(sowillKeysState)\n const selectedSowillKey = useRecoilValue(selectSowillKeyState)\n const setSowillIdentifier = useSetRecoilState(sowillIdentifierState)\n\n const themeClient = getThemeClient()\n const client = getClient()\n const notify = useNotify()\n\n const errorHandler = (error: Error): void => {\n notify.show(error.message, { variant: 'error' })\n\n if (error instanceof AccessDeniedError) {\n logout()\n }\n }\n\n useFocusEffect(\n useCallback(() => {\n if (\n [ClientMonitoringType.SIGMA_CLOUD, ClientMonitoringType.SIGMA_DESK]\n .includes(client.tipoConexao) &&\n !sigmaKeys.length) {\n getSigmaCloudKeys\n .getKeys({ codCliente: client.codCliente })\n .then(setSigmaKeys)\n .catch(errorHandler)\n } else\n if ([ClientMonitoringType.SO_WILL].includes(client.tipoConexao)) {\n getSowillKeys\n .getKeys({ codCliente: client.codCliente, unidade: client.unidade })\n .then(setSowillKeysList)\n .catch(errorHandler)\n }\n }, [])\n )\n\n useEffect(() => {\n if ([ClientMonitoringType.SO_WILL].includes(client.tipoConexao) &&\n selectedSowillKey.chave\n ) {\n getSowillIdentifier\n .getIdentifier(selectedSowillKey)\n .then(setSowillIdentifier)\n .catch(errorHandler)\n }\n }, [selectedSowillKey.chave])\n\n return (\n \n \n {client.tipoConexao != null\n ? \n MonitoringEventList({\n dateAdapter,\n printEvents,\n getMoniEvents,\n getSigmaEvents,\n getRemotyEvents,\n getSowillEvents,\n getSowillIdentifier\n })}\n />\n\n {\n [\n ClientMonitoringType.REMOTY,\n ClientMonitoringType.MONI,\n ClientMonitoringType.SO_WILL,\n ClientMonitoringType.SIGMA_CLOUD,\n ClientMonitoringType.SIGMA_DESK\n ]\n .includes(client.tipoConexao) &&\n SectorList({\n getRemotySectors,\n getMoniSectors,\n getSowillSectors,\n getSigmaCloudSectors,\n getSigmaDeskSectors\n })}\n />\n }\n {\n [\n ClientMonitoringType.REMOTY,\n ClientMonitoringType.MONI,\n ClientMonitoringType.SO_WILL,\n ClientMonitoringType.SIGMA_CLOUD\n ]\n .includes(client.tipoConexao) &&\n UserEventList({\n getRemotyUsers,\n getMoniUsers,\n getSowillUsers,\n getSigmaCloudUsers\n })}\n />\n }\n {\n [\n ClientMonitoringType.REMOTY,\n ClientMonitoringType.SIGMA_DESK\n ]\n .includes(client.tipoConexao) &&\n ContactEventList({\n getRemotyContacts,\n getSigmaDeskContacts\n })}\n />\n }\n\n \n : \n }\n \n )\n}\n","import React from 'react'\nimport { Events } from '@/presentation/pages/Events'\nimport {\n makePrintEvents, makeGetRemotyUsersFactory, makeGetRemotyEventsFactory,\n makeGetRemotySectorsFactory, makeGetRemotyContactsFactory, makeGetMoniEventsFactory, makeGetMoniSectorsFactory, makeGetMoniUsersFactory, makeGetSowillSectorsFactory, makeGetSowillKeysFactory, makeGetSowillUsersFactory, makeGetSowillIdentifierFactory, makeGetSigmaEventsFactory, makeGetSowillEventsFactory, makeGetSigmaCloudSectorsFactory, makeGetSigmaCloudUsersFactory, makeGetSigmaCloudKeysFactory, makeGetSigmaDeskSectorsFactory, makeGetSigmaDeskContactsFactory\n} from '@/main/factories/usecases'\nimport { makeDateAdapterFactory } from '@/main/adapters'\nimport { NavigationPagesProps, TabBottomNavigator } from '@/presentation/components'\n\nexport const makeEventsFactory = ({ navigation }: NavigationPagesProps): JSX.Element => {\n const printEvents = makePrintEvents()\n const dateAdapter = makeDateAdapterFactory()\n const getRemotyEvents = makeGetRemotyEventsFactory()\n const getRemotySectors = makeGetRemotySectorsFactory()\n const getRemotyUsers = makeGetRemotyUsersFactory()\n const getRemotyContacts = makeGetRemotyContactsFactory()\n const getMoniEvents = makeGetMoniEventsFactory()\n const getMoniUsers = makeGetMoniUsersFactory()\n const getMoniSectors = makeGetMoniSectorsFactory()\n const getSowillEvents = makeGetSowillEventsFactory()\n const getSowillSectors = makeGetSowillSectorsFactory()\n const getSowillUsers = makeGetSowillUsersFactory()\n const getSowillKeys = makeGetSowillKeysFactory()\n const getSowillIdentifier = makeGetSowillIdentifierFactory()\n const getSigmaEvents = makeGetSigmaEventsFactory()\n const getSigmaCloudSectors = makeGetSigmaCloudSectorsFactory()\n const getSigmaCloudUsers = makeGetSigmaCloudUsersFactory()\n const getSigmaCloudKeys = makeGetSigmaCloudKeysFactory()\n const getSigmaDeskSectors = makeGetSigmaDeskSectorsFactory()\n const getSigmaDeskContacts = makeGetSigmaDeskContactsFactory()\n\n return (\n <>\n\n \n \n \n\n )\n}\n","import { PrintEvents } from '@/domain/usecases'\nimport { RemotePrintEvents } from '@/data/usecases'\nimport { makeAxiosHttpClient } from '@/main/factories/http'\nimport env from '@/main/config/env'\n\nexport const makePrintEvents = (): PrintEvents => {\n const url = env.API_URL\n const httpClient = makeAxiosHttpClient()\n\n return new RemotePrintEvents(url, httpClient)\n}\n","import { makeAxiosHttpClient } from '@/main/factories/http'\nimport env from '@/main/config/env'\nimport { GetRemotyEvents } from '@/domain/usecases'\nimport { RemoteGetRemotyEvents } from '@/data/usecases/events'\n\nexport const makeGetRemotyEventsFactory = (): GetRemotyEvents => {\n const url = env.API_URL\n const httpClient = makeAxiosHttpClient()\n\n return new RemoteGetRemotyEvents(url, httpClient)\n}\n","import { GetRemotySectors } from '@/domain/usecases'\nimport { RemotySectorModel } from '@/domain/models'\nimport { RemoteGetRemotySectors } from '@/data/usecases/events'\nimport { makeAxiosHttpClient } from '@/main/factories/http'\nimport env from '@/main/config/env'\n\nexport const makeGetRemotySectorsFactory = (): GetRemotySectors => {\n const url = env.API_URL\n const httpClient = makeAxiosHttpClient()\n\n return new RemoteGetRemotySectors(url, httpClient)\n}\n","import { RemotyUserResult } from '@/domain/models'\nimport { GetRemotyUsers } from '@/domain/usecases'\nimport { makeAxiosHttpClient } from '@/main/factories/http'\nimport { RemoteGetRemotyUserEvents } from '@/data/usecases/events'\nimport env from '@/main/config/env'\n\nexport const makeGetRemotyUsersFactory = (): GetRemotyUsers => {\n const url = env.API_URL\n const httpClient = makeAxiosHttpClient()\n\n return new RemoteGetRemotyUserEvents(url, httpClient)\n}\n","import { GetRemotyContacts } from '@/domain/usecases'\nimport { RemotyContactResult } from '@/domain/models'\nimport { RemoteGetRemotyContacts } from '@/data/usecases/events'\nimport { makeAxiosHttpClient } from '@/main/factories/http'\nimport env from '@/main/config/env'\n\nexport const makeGetRemotyContactsFactory = (): GetRemotyContacts => {\n const url = env.API_URL\n const httpClient = makeAxiosHttpClient()\n\n return new RemoteGetRemotyContacts(url, httpClient)\n}\n","import { makeAxiosHttpClient } from '@/main/factories/http'\nimport env from '@/main/config/env'\nimport { GetMoniEvents } from '@/domain/usecases'\nimport { RemoteGetMoniEvents } from '@/data/usecases/events'\nimport { makeDateAdapterFactory } from '@/main/adapters'\nimport { MoniEventModel } from '@/domain/models'\n\nexport const makeGetMoniEventsFactory = (): GetMoniEvents => {\n const url = env.API_URL\n const httpClient = makeAxiosHttpClient()\n const dateAdapter = makeDateAdapterFactory()\n\n return new RemoteGetMoniEvents(url, httpClient, dateAdapter)\n}\n","import { GetMoniUsers } from '@/domain/usecases'\nimport { makeAxiosHttpClient } from '@/main/factories/http'\nimport { RemoteGeMoniUsersEvents } from '@/data/usecases/events'\nimport env from '@/main/config/env'\n\nexport const makeGetMoniUsersFactory = (): GetMoniUsers => {\n const url = env.API_URL\n const httpClient = makeAxiosHttpClient()\n\n return new RemoteGeMoniUsersEvents(url, httpClient)\n}\n","import { GetMoniSectors } from '@/domain/usecases'\nimport { RemoteGetMoniSectors } from '@/data/usecases/events'\nimport { makeAxiosHttpClient } from '@/main/factories/http'\nimport env from '@/main/config/env'\n\nexport const makeGetMoniSectorsFactory = (): GetMoniSectors => {\n const url = env.API_URL\n const httpClient = makeAxiosHttpClient()\n\n return new RemoteGetMoniSectors(url, httpClient)\n}\n","import { makeAxiosHttpClient } from '@/main/factories/http'\nimport env from '@/main/config/env'\nimport { RemoteGetSowillEvents } from '@/data/usecases/events'\nimport { GetSowillEvents } from '@/domain/usecases/events/get-sowill-events'\nimport { SoWillEventModel } from '@/domain/models'\n\nexport const makeGetSowillEventsFactory = (): GetSowillEvents => {\n const url = env.API_URL\n const httpClient = makeAxiosHttpClient()\n\n return new RemoteGetSowillEvents(url, httpClient)\n}\n","import { GetSowillSectors } from '@/domain/usecases'\nimport { SowillSectorResult } from '@/domain/models'\nimport { RemoteGetSowillSectors } from '@/data/usecases/events'\nimport { makeAxiosHttpClient } from '@/main/factories/http'\nimport env from '@/main/config/env'\n\nexport const makeGetSowillSectorsFactory = (): GetSowillSectors => {\n const url = env.API_URL\n const httpClient = makeAxiosHttpClient()\n\n return new RemoteGetSowillSectors(url, httpClient)\n}\n","import { GetSowillUsers } from '@/domain/usecases'\nimport { SowillUserResult } from '@/domain/models'\nimport { makeAxiosHttpClient } from '@/main/factories/http'\nimport { RemoteGetSowillUsers } from '@/data/usecases'\nimport env from '@/main/config/env'\n\nexport const makeGetSowillUsersFactory = (): GetSowillUsers => {\n const url = env.API_URL\n const httpClient = makeAxiosHttpClient()\n\n return new RemoteGetSowillUsers(url, httpClient)\n}\n","import { GetSowillKeys } from '@/domain/usecases'\nimport { makeAxiosHttpClient } from '@/main/factories/http'\nimport { RemoteGetSowillKeys } from '@/data/usecases/events'\nimport { SowillKeyResult } from '@/domain/models'\nimport env from '@/main/config/env'\n\nexport const makeGetSowillKeysFactory = (): GetSowillKeys => {\n const url = env.API_URL\n const httpClient = makeAxiosHttpClient()\n\n return new RemoteGetSowillKeys(url, httpClient)\n}\n","import { GetSowillIdentifier } from '@/domain/usecases'\nimport { makeAxiosHttpClient } from '@/main/factories/http'\nimport { RemoteGetSowillIdentifier } from '@/data/usecases/events'\nimport { SowillIdentifierResult } from '@/domain/models'\nimport env from '@/main/config/env'\n\nexport const makeGetSowillIdentifierFactory = (): GetSowillIdentifier => {\n const url = env.API_URL\n const httpClient = makeAxiosHttpClient()\n\n return new RemoteGetSowillIdentifier(url, httpClient)\n}\n","import { makeAxiosHttpClient } from '@/main/factories/http'\nimport env from '@/main/config/env'\nimport { SigmaEventModel } from '@/domain/models'\nimport { GetSigmaEvents } from '@/domain/usecases'\nimport { RemoteGetSigmaEvents } from '@/data/usecases/events'\n\nexport const makeGetSigmaEventsFactory = (): GetSigmaEvents => {\n const url = env.API_URL\n const httpClient = makeAxiosHttpClient()\n\n return new RemoteGetSigmaEvents(url, httpClient)\n}\n","import { GetSigmaCloudSectors } from '@/domain/usecases'\nimport { makeAxiosHttpClient } from '@/main/factories/http'\nimport { RemoteGetSigmaCloudSectors } from '@/data/usecases/events'\nimport { SigmaSectorModel } from '@/domain/models'\nimport env from '@/main/config/env'\n\nexport const makeGetSigmaCloudSectorsFactory = (): GetSigmaCloudSectors => {\n const url = env.API_URL\n const httpClient = makeAxiosHttpClient()\n\n return new RemoteGetSigmaCloudSectors(url, httpClient)\n}\n","import { GetSigmaCloudUsers } from '@/domain/usecases'\nimport { SigmaCloudUserResult } from '@/domain/models'\nimport { makeAxiosHttpClient } from '@/main/factories/http'\nimport { RemoteGetSigmaCloudUsers } from '@/data/usecases'\nimport env from '@/main/config/env'\n\nexport const makeGetSigmaCloudUsersFactory = (): GetSigmaCloudUsers => {\n const url = env.API_URL\n const httpClient = makeAxiosHttpClient()\n\n return new RemoteGetSigmaCloudUsers(url, httpClient)\n}\n","import { GetSigmaCloudKeys } from '@/domain/usecases'\nimport { makeAxiosHttpClient } from '@/main/factories/http'\nimport { RemoteGetSigmaCloudKeys } from '@/data/usecases/events'\nimport { SigmaCloudKeyResult } from '@/domain/models'\nimport env from '@/main/config/env'\n\nexport const makeGetSigmaCloudKeysFactory = (): GetSigmaCloudKeys => {\n const url = env.API_URL\n const httpClient = makeAxiosHttpClient()\n\n return new RemoteGetSigmaCloudKeys(url, httpClient)\n}\n","import { SigmaSectorModel } from '@/domain/models'\nimport { GetSigmaDeskSectors } from '@/domain/usecases'\nimport { makeAxiosHttpClient } from '@/main/factories/http'\nimport { RemoteGetSigmaDeskSectors } from '@/data/usecases/events'\nimport env from '@/main/config/env'\n\nexport const makeGetSigmaDeskSectorsFactory = (): GetSigmaDeskSectors => {\n const url = env.API_URL\n const httpClient = makeAxiosHttpClient()\n\n return new RemoteGetSigmaDeskSectors(url, httpClient)\n}\n","import { makeAxiosHttpClient } from '@/main/factories/http'\nimport { GetSigmaDeskContacts } from '@/domain/usecases'\nimport { SigmaDeskContactModel } from '@/domain/models'\nimport { RemoteGetSigmaDeskContacts } from '@/data/usecases/events'\nimport env from '@/main/config/env'\n\nexport const makeGetSigmaDeskContactsFactory = (): GetSigmaDeskContacts => {\n const url = env.API_URL\n const httpClient = makeAxiosHttpClient()\n\n return new RemoteGetSigmaDeskContacts(url, httpClient)\n}\n","\nimport { atom } from 'recoil'\nimport { AddTravelAlertOsResponsible, AddTravelAlertOsVehicle } from '@/domain/usecases'\n\nexport const isLoadingState = atom({\n key: 'travelAlertLoadingState',\n default: false\n})\n\nexport const travelAlertState = atom({\n key: 'travelAlertState',\n default: {\n solicitante: '',\n email: '',\n telefone1: '',\n telefone2: '',\n dataSaida: '',\n horaSaida: '',\n dataRetorno: '',\n horaRetorno: '',\n recomendacoes: '',\n chavesSomenteComCentral: true,\n possuiAutorizados: false,\n possuiVeiculosCuidadosCentral: false\n }\n})\n\nexport const travelAlertResponsiblesKeysState = atom({\n key: 'travelAlertResponsiblesKeysState',\n default: [] as AddTravelAlertOsResponsible[]\n})\n\nexport const travelAlertAuthorizedsState = atom({\n key: 'travelAlertAuthorizedsState',\n default: [] as AddTravelAlertOsResponsible[]\n})\n\nexport const travelAlertVehiclesState = atom({\n key: 'travelAlertVehiclesState',\n default: [] as AddTravelAlertOsVehicle[]\n})\n","import { StyleSheet } from 'react-native'\n\nexport const styles = StyleSheet.create({\n container: {\n display: 'flex',\n gap: 18\n },\n buttonArea: {\n display: 'flex',\n flexDirection: 'row',\n justifyContent: 'flex-end',\n gap: 8\n }\n})\n","import React, { useCallback } from 'react'\nimport { useRecoilState, useSetRecoilState } from 'recoil'\nimport { GestureResponderEvent } from 'react-native'\nimport { AddTravelAlertOsResponsible, AddTravelAlertResponsibleType } from '@/domain/usecases'\nimport { Box, Button, Text, TextInput, ModalBase, Stack } from '@/presentation/components'\nimport { useMediaQueries, useTheme, useThemeClient } from '@/presentation/hooks'\nimport { addResponsibleState, addVehicleState, isOpenTravelAlertAddVehicle, travelAlertResponsiblesKeysState, travelAlertAuthorizedsState, travelAlertAddResponsibleState } from '@/presentation/pages/TravelAlert/components'\nimport { styles } from './styles'\n\nexport const ModalAddResponsible: React.FC = () => {\n const theme = useTheme()\n const { getThemeClient } = useThemeClient()\n const { isMobile } = useMediaQueries()\n const [addResponsible, setState] = useRecoilState(addResponsibleState)\n const [addVehicle, setAddVehicle] = useRecoilState(addVehicleState)\n const [modalState, setModalState] = useRecoilState(travelAlertAddResponsibleState)\n const setModalVehicle = useSetRecoilState(isOpenTravelAlertAddVehicle)\n const setTravelAlertResponsibles = useSetRecoilState(travelAlertAuthorizedsState)\n const setTravelAlertResponsiblesKeys = useSetRecoilState(travelAlertResponsiblesKeysState)\n\n const themeClient = getThemeClient()\n const addNewVehicle = !!addVehicle.placa\n\n const handleChangeInput = (name: keyof AddTravelAlertOsResponsible, value: string): void => {\n setState(currentValues => ({ ...currentValues, [name]: value }))\n }\n\n const handleAddResponsible = useCallback((event: GestureResponderEvent): void => {\n event.preventDefault()\n\n const responsible: AddTravelAlertOsResponsible = {\n id: new Date().getMilliseconds(),\n nome: addResponsible.nome,\n endereco: addResponsible.endereco,\n telefone1: addResponsible.telefone1,\n telefone2: addResponsible.telefone2,\n observacao: addResponsible.observacao\n }\n\n switch (modalState.typeCurrent) {\n case AddTravelAlertResponsibleType.AUTHORIZED:\n setTravelAlertResponsibles(currentState => [\n ...currentState,\n responsible\n ])\n break\n case AddTravelAlertResponsibleType.KEYS:\n setTravelAlertResponsiblesKeys(currentState => [\n ...currentState,\n responsible\n ])\n break\n case AddTravelAlertResponsibleType.VEHICLE_KEYS:\n setAddVehicle(currentState => ({\n ...currentState,\n responsaveis: [\n ...currentState.responsaveis,\n responsible\n ]\n }))\n break\n case AddTravelAlertResponsibleType.VEHICLE_AUTHORIZED:\n setAddVehicle(currentState => ({\n ...currentState,\n autorizados: [\n ...currentState.autorizados,\n responsible\n ]\n }))\n break\n default:\n break\n }\n\n handleClose()\n handleReset()\n }, [addResponsible, modalState.typeCurrent])\n\n const handleReset = (): void => {\n setState({\n id: 0,\n nome: '',\n endereco: '',\n telefone1: '',\n telefone2: '',\n observacao: ''\n })\n }\n\n const handleClose = (): void => {\n setModalState(currentState => ({ ...currentState, isOpen: false }))\n addNewVehicle && setModalVehicle(true)\n }\n\n return (\n \n \n Adicionar responsável\n {[AddTravelAlertResponsibleType.VEHICLE_KEYS, AddTravelAlertResponsibleType.VEHICLE_AUTHORIZED].includes(modalState.typeCurrent) ? 'do veículo' : ''}\n \n\n handleChangeInput('nome', text)}\n value={addResponsible?.nome}\n maxLength={30}\n />\n\n \n handleChangeInput('telefone1', text)}\n style={{ flex: 1 }}\n />\n\n handleChangeInput('telefone2', text)}\n style={{ flex: 1 }}\n />\n \n\n handleChangeInput('endereco', text)}\n value={addResponsible?.endereco}\n maxLength={100}\n />\n\n handleChangeInput('observacao', text)}\n value={addResponsible?.observacao}\n multiline\n numberOfLines={4}\n />\n\n \n {!isMobile &&\n \n }\n \n \n \n \n \n )\n}\n","import { AddTravelAlertOsResponsible, AddTravelAlertResponsibleType } from '@/domain/usecases'\nimport { atom } from 'recoil'\n\nexport const travelAlertAddResponsibleState = atom({\n key: 'travelAlertAddResponsibleState',\n default: {\n isOpen: false,\n typeCurrent: AddTravelAlertResponsibleType.AUTHORIZED\n }\n})\n\nexport const addResponsibleState = atom({\n key: 'addResponsibleState',\n default: {\n id: 0,\n nome: '',\n endereco: '',\n telefone1: '',\n telefone2: '',\n observacao: ''\n }\n})\n","import { StyleSheet } from 'react-native'\n\nexport const styles = StyleSheet.create({\n container: {\n display: 'flex',\n gap: 12\n },\n buttonArea: {\n display: 'flex',\n flexDirection: 'row',\n justifyContent: 'flex-end',\n gap: 8,\n marginTop: 12\n }\n})\n","import React from 'react'\nimport { useRecoilState, useSetRecoilState } from 'recoil'\nimport { MaterialCommunityIcons } from '@expo/vector-icons'\nimport { AddTravelAlertOsResponsible, AddTravelAlertResponsibleType } from '@/domain/usecases'\nimport { Box, Button, Text, TextInput, ModalBase, Stack, VStack, HStack } from '@/presentation/components'\nimport { useMediaQueries, useNotify, useTheme, useThemeClient } from '@/presentation/hooks'\nimport { ResponsiblesPanel, addVehicleState, isOpenTravelAlertAddVehicle, travelAlertAddResponsibleState, travelAlertVehiclesState } from '@/presentation/pages/TravelAlert/components'\nimport { styles } from './styles'\n\nexport type AddVehicleParams = {\n placa: string\n possuiAutorizados: boolean\n possuiResponsaveis: boolean\n}\n\nexport const ModalAddVehicle: React.FC = () => {\n const theme = useTheme()\n const notify = useNotify()\n const { isMobile } = useMediaQueries()\n const { getThemeClient } = useThemeClient()\n const [addVehicle, setAddVehicle] = useRecoilState(addVehicleState)\n const [isOpen, setOpen] = useRecoilState(isOpenTravelAlertAddVehicle)\n const setOpenAddResponsible = useSetRecoilState(travelAlertAddResponsibleState)\n const setTravelAlertAddVehicle = useSetRecoilState(travelAlertVehiclesState)\n\n const themeClient = getThemeClient()\n\n const handleChangeInput = (name: keyof AddVehicleParams, value: string | boolean): void => {\n setAddVehicle(currentValues => ({ ...currentValues, [name]: value }))\n }\n\n const handleAddVehicle = (): void => {\n const vehicle = {\n id: new Date().getMilliseconds(),\n placa: addVehicle.placa,\n responsaveis: addVehicle.responsaveis,\n autorizados: addVehicle.autorizados,\n possuiAutorizados: !!addVehicle.autorizados.length,\n possuiResponsaveis: !!addVehicle.responsaveis.length\n }\n\n setTravelAlertAddVehicle(currentState => [...currentState, vehicle])\n handleClose()\n notify.show(`Veículo placa ${vehicle.placa} adicionado com sucesso!`)\n }\n\n const handleReset = (): void => {\n setAddVehicle({\n id: 0,\n placa: '',\n responsaveis: [] as AddTravelAlertOsResponsible[],\n autorizados: [] as AddTravelAlertOsResponsible[],\n possuiResponsaveis: false,\n possuiAutorizados: false\n })\n }\n\n const handleClose = (): void => {\n setOpen(false)\n handleReset()\n }\n\n return (\n \n \n \n \n Adicionar veículo\n \n\n handleChangeInput('placa', text)}\n value={addVehicle.placa}\n maxLength={30}\n />\n\n \n \n Responsáveis da chave do veículo\n \n {\n setOpen(false)\n setOpenAddResponsible({\n isOpen: true,\n typeCurrent: AddTravelAlertResponsibleType.VEHICLE_KEYS\n })\n }}\n onRemove={(idResp) => {\n setAddVehicle(currentState => ({\n ...currentState,\n responsaveis: currentState.responsaveis.filter(resp => resp.id !== idResp)\n }))\n }}\n />\n \n\n \n \n Autorizados a utilizar o veículo\n \n {\n setOpen(false)\n setOpenAddResponsible({\n isOpen: true,\n typeCurrent: AddTravelAlertResponsibleType.VEHICLE_AUTHORIZED\n })\n }}\n onRemove={(idResp) => {\n setAddVehicle(currentState => ({\n ...currentState,\n autorizados: currentState.autorizados.filter(vehicle => vehicle.id !== idResp)\n }))\n }}\n />\n \n\n \n {!isMobile &&\n \n }\n \n \n \n \n \n )\n}\n","import { AddTravelAlertOsResponsible, AddTravelAlertOsVehicle } from '@/domain/usecases'\nimport { atom } from 'recoil'\n\nexport const isOpenTravelAlertAddVehicle = atom({\n key: 'isOpenTravelAlertAddVehicle',\n default: false\n})\n\nexport const addVehicleState = atom({\n key: 'addVehicleState',\n default: {\n id: 0,\n placa: '',\n responsaveis: [] as AddTravelAlertOsResponsible[],\n autorizados: [] as AddTravelAlertOsResponsible[],\n possuiResponsaveis: false,\n possuiAutorizados: false\n }\n})\n","import React from 'react'\nimport { MaterialCommunityIcons } from '@expo/vector-icons'\nimport { IconButton, Surface } from 'react-native-paper'\nimport { AddTravelAlertOsResponsible } from '@/domain/usecases'\nimport { FAB, HStack, Stack, Text, VStack } from '@/presentation/components'\nimport { useMediaQueries, useTheme, useThemeClient } from '@/presentation/hooks'\n\ntype ResponsiblesPanelProps = {\n responsibles: AddTravelAlertOsResponsible[]\n onAddNew: () => void\n onRemove: (idResp: number) => void\n variant?: 'tiny' | 'regular'\n disabled?: boolean\n}\n\nexport const ResponsiblesPanel: React.FC = ({\n responsibles,\n onAddNew,\n onRemove,\n variant,\n disabled = false\n}) => {\n const theme = useTheme()\n const { isMobile } = useMediaQueries()\n const { getThemeClient } = useThemeClient()\n\n const themeClient = getThemeClient()\n\n const makeAction = (): JSX.Element =>\n \n }\n color={disabled ? theme.colors.greyLight : themeClient.mainColor}\n />\n \n\n return (\n <>\n \n {responsibles\n .map((resp, index) => {\n let description = `Telefone 1: ${resp.telefone1}\\r\\n`\n description += `${resp.endereco}`\n\n return (\n \n \n \n \n \n {resp.nome.toUpperCase()}\n \n {variant === 'tiny' &&\n {description}\n }\n \n onRemove(resp.id)}\n />\n \n \n )\n })\n }\n \n {responsibles?.length < 4 && makeAction()}\n \n )\n}\n","import React, { useCallback, useEffect } from 'react'\nimport { useRecoilState, useRecoilValue, useSetRecoilState } from 'recoil'\nimport { StyleSheet, TouchableOpacity } from 'react-native'\nimport { MaterialCommunityIcons } from '@expo/vector-icons'\nimport { DateAdapter } from '@/data/protocols'\nimport { DatePicker, Stack, TextInput } from '@/presentation/components'\nimport { useMediaQueries, useTheme, useThemeClient } from '@/presentation/hooks'\nimport { travelAlertTimePickerState, travelAlertState, isLoadingState } from '@/presentation/pages/TravelAlert/components'\nimport { TravelAlertParams } from '@/presentation/pages/TravelAlert'\n\ntype SelectDateTimeProps = {\n dateAdapter: DateAdapter\n}\n\nexport const SelectDateTime: React.FC = ({ dateAdapter }) => {\n const theme = useTheme()\n const { getThemeClient } = useThemeClient()\n const { isMobile } = useMediaQueries()\n const [travelAlert, setTravelAlert] = useRecoilState(travelAlertState)\n const isLoading = useRecoilValue(isLoadingState)\n const setModalTimePicker = useSetRecoilState(travelAlertTimePickerState)\n\n const themeClient = getThemeClient()\n\n useEffect(() => {\n setTravelAlert(currentState => ({\n ...currentState,\n dataSaida: dateAdapter.today().toString(),\n dataRetorno: dateAdapter.daysLater(15).toString()\n }))\n }, [])\n\n const handleChangeDate = useCallback((field: keyof TravelAlertParams, date: Date): void => {\n setTravelAlert(currentFilters => ({ ...currentFilters, [field as string]: date.toString() }))\n }, [])\n\n return (\n <>\n \n handleChangeDate('dataSaida', date ?? dateAdapter.today())}\n dateAdapter={dateAdapter}\n />\n setModalTimePicker({ isOpen: true, currentTime: 'horaSaida' })}>\n \n \n }\n />\n \n \n handleChangeDate('dataRetorno', date ?? dateAdapter.daysLater(15))}\n dateAdapter={dateAdapter}\n />\n setModalTimePicker({ isOpen: true, currentTime: 'horaRetorno' })}>\n \n \n }\n />\n \n \n )\n}\n\nconst styles = StyleSheet.create({\n dateRow: {\n width: '100%',\n gap: 12\n }\n})\n","import { atom } from 'recoil'\nimport { TravelAlertParams } from '@/presentation/pages/TravelAlert'\n\nexport const travelAlertTimePickerState = atom({\n key: 'travelAlertTimePickerState',\n default: {\n isOpen: false,\n currentTime: '' as keyof TravelAlertParams\n }\n})\n","import React from 'react'\nimport { MaterialCommunityIcons } from '@expo/vector-icons'\nimport { FAB, HStack, Stack, Text, VStack } from '@/presentation/components'\nimport { useMediaQueries, useTheme, useThemeClient } from '@/presentation/hooks'\nimport { useRecoilValue } from 'recoil'\nimport { travelAlertVehiclesState } from '@/presentation/pages/TravelAlert/components'\nimport { IconButton, Surface } from 'react-native-paper'\n\ntype VehiclePanelProps = {\n openAddNew: () => void\n onRemove: (idVehicle: number) => void\n}\n\nexport const VehiclePanel: React.FC = ({ openAddNew, onRemove }) => {\n const theme = useTheme()\n const { isMobile } = useMediaQueries()\n const { getThemeClient } = useThemeClient()\n const vehicles = useRecoilValue(travelAlertVehiclesState)\n\n const themeClient = getThemeClient()\n\n const makeAction = (): JSX.Element =>\n \n } color={themeClient.mainColor}\n />\n \n\n return (\n <>\n \n {vehicles\n .map((vehicle, index) =>\n \n \n \n \n \n {vehicle.placa.toUpperCase()}\n \n \n onRemove(vehicle.id)}\n />\n \n \n )\n }\n \n {vehicles?.length <= 4 && makeAction()}\n \n )\n}\n","import { layoutStyles } from '@/presentation/styles/globals'\nimport { StyleSheet } from 'react-native'\n\nexport const styles = StyleSheet.create({\n container: {\n flex: 1\n },\n content: {\n ...layoutStyles.pageContent\n },\n formArea: {\n marginTop: 12,\n width: '100%',\n padding: 24,\n marginHorizontal: 'auto',\n gap: 12\n },\n input: {\n flex: 1,\n marginTop: 12\n },\n insideLogo: {\n height: 38,\n width: 102,\n alignSelf: 'flex-end'\n },\n chipCard: {\n height: 38,\n width: 52,\n marginLeft: 16\n },\n cardInformation: {\n display: 'flex',\n gap: 8\n },\n text: {\n fontSize: 18,\n letterSpacing: 4\n },\n row: {\n display: 'flex',\n flexDirection: 'row',\n justifyContent: 'space-between',\n gap: 16\n },\n inlineInputs: {\n display: 'flex',\n flexDirection: 'row',\n gap: 16\n }\n})\n","import React, { useCallback } from 'react'\nimport { GestureResponderEvent, SafeAreaView } from 'react-native'\nimport { useRecoilState, useResetRecoilState, useSetRecoilState } from 'recoil'\nimport { ScrollView } from 'react-native-gesture-handler'\nimport { MaterialCommunityIcons } from '@expo/vector-icons'\nimport { NavigationRoute } from '@/main/config/router-navigation'\nimport { AddTravelAlertOs, AddTravelAlertOsParams, AddTravelAlertResponsibleType } from '@/domain/usecases'\nimport { DateAdapter } from '@/data/protocols'\nimport { useAuth, useErrorHandler, useMediaQueries, useNotify, useTheme, useThemeClient } from '@/presentation/hooks'\nimport { TextInput, Box, Button, HStack, PageHeader, TAB_BOTTOM_CONTAINER_HEIGTH, Card, CardSwitch, TimePicker, NavigationPagesProps, ReactNativePaperTimePros, InputField, VStack, Loading } from '@/presentation/components'\nimport { ModalAddResponsible, ModalAddVehicle, ResponsiblesPanel, VehiclePanel, travelAlertTimePickerState, travelAlertState, SelectDateTime, isOpenTravelAlertAddVehicle, isLoadingState, travelAlertAuthorizedsState, travelAlertResponsiblesKeysState, travelAlertVehiclesState, travelAlertAddResponsibleState, addResponsibleState } from '@/presentation/pages/TravelAlert/components'\nimport { styles } from './styles'\n\nexport type TravelAlertParams = {\n dataSaida: string\n horaSaida: string\n dataRetorno: string\n horaRetorno: string\n solicitante: string\n email: string\n telefone1: string\n telefone2: string\n recomendacoes: string\n chavesSomenteComCentral: boolean\n possuiAutorizados: boolean\n possuiVeiculosCuidadosCentral: boolean\n}\n\ntype TravelAlertProps = NavigationPagesProps & {\n addTravelAlertOs: AddTravelAlertOs\n dateAdapter: DateAdapter\n}\n\nexport const TravelAlert: React.FC = ({ navigation, dateAdapter, addTravelAlertOs }) => {\n const theme = useTheme()\n const notify = useNotify()\n const { getClient } = useAuth()\n const { isMobile } = useMediaQueries()\n const { getThemeClient } = useThemeClient()\n const [modalTimePicker, setModalTimePicker] = useRecoilState(travelAlertTimePickerState)\n const [isLoading, setLoading] = useRecoilState(isLoadingState)\n const [travelAlert, setTravelAlert] = useRecoilState(travelAlertState)\n const [authorizeds, setAuthorizeds] = useRecoilState(travelAlertAuthorizedsState)\n const [responsiblesKeys, setResponsiblesKeys] = useRecoilState(travelAlertResponsiblesKeysState)\n const [vehicles, setVehicles] = useRecoilState(travelAlertVehiclesState)\n const setOpenAddResponsible = useSetRecoilState(travelAlertAddResponsibleState)\n const setOpenAddVehicle = useSetRecoilState(isOpenTravelAlertAddVehicle)\n const reset = useResetRecoilState(travelAlertState)\n const resetAuthorizeds = useResetRecoilState(travelAlertAuthorizedsState)\n const resetResponsibleKeys = useResetRecoilState(travelAlertResponsiblesKeysState)\n const resetVehicles = useResetRecoilState(travelAlertVehiclesState)\n const resetAddResponsible = useResetRecoilState(addResponsibleState)\n const handleError = useErrorHandler()\n\n const client = getClient()\n const themeClient = getThemeClient()\n\n const handleAddTravelAlertOs = (event: GestureResponderEvent): void => {\n event.preventDefault()\n\n if (isValidDataTravelAlertOs()) {\n setLoading(true)\n\n const addTravelOsParams: AddTravelAlertOsParams = {\n ...travelAlert,\n cliente: client.codCliente,\n empresa: client.empresa,\n modalidade: client.modalidade,\n responsaveisChave: responsiblesKeys,\n autorizados: authorizeds,\n veiculos: vehicles\n }\n\n addTravelAlertOs\n .add(addTravelOsParams)\n .then(ordem => {\n navigation.navigate(NavigationRoute.ServiceOrders)\n notify.show(`Aviso de viagem registrado com sucesso! Criada OS ${ordem?.toString().padStart(6, '0')}`)\n handleReset()\n })\n .catch(handleError)\n .finally(() => setLoading(false))\n } else {\n handleError(new Error('Todos os dados os campos obrigatórios(*) devem ser preenchidos'))\n }\n }\n\n const isValidDataTravelAlertOs = (): boolean => {\n if (\n !travelAlert.email ||\n !travelAlert.telefone1 ||\n !travelAlert.dataRetorno ||\n !travelAlert.horaRetorno ||\n !travelAlert.dataSaida ||\n !travelAlert.horaSaida ||\n !travelAlert.recomendacoes\n ) {\n return false\n } else {\n return true\n }\n }\n\n const handleChange = (name: keyof TravelAlertParams, value: string | boolean): void => {\n setTravelAlert(currentState => ({ ...currentState, [name]: value }))\n }\n\n const handleChangeTime = useCallback((field: keyof TravelAlertParams, time: ReactNativePaperTimePros): void => {\n const hours = time.hours.toString().padStart(2, '0')\n const minutes = time.minutes.toString().padStart(2, '0')\n\n setTravelAlert(currentFilters => ({\n ...currentFilters,\n [field]: `${hours}:${minutes}`\n }))\n }, [modalTimePicker.currentTime])\n\n const handleClose = useCallback((): void => {\n setModalTimePicker(currentState => ({ ...currentState, isOpen: false }))\n }, [])\n\n const handleReset = (): void => {\n reset()\n resetAuthorizeds()\n resetResponsibleKeys()\n resetVehicles()\n resetAddResponsible()\n }\n\n return (\n \n \n {isLoading\n ? \n : \n }\n />\n \n \n handleChange('solicitante', text)}\n style={styles.input}\n />\n handleChange('email', text)}\n />\n \n\n \n handleChange('telefone1', text)}\n />\n handleChange('telefone2', text)}\n />\n \n\n \n\n \n handleChange('recomendacoes', text)}\n multiline\n numberOfLines={4}\n />\n \n\n \n\n \n handleChange('chavesSomenteComCentral', !travelAlert.chavesSomenteComCentral)}\n >\n {\n setOpenAddResponsible({\n isOpen: true,\n typeCurrent: AddTravelAlertResponsibleType.KEYS\n })\n }}\n onRemove={(idResp) => {\n setResponsiblesKeys(responsiblesKeys.filter(resp => resp.id !== idResp))\n }}\n />\n \n\n handleChange('possuiAutorizados', !travelAlert.possuiAutorizados)}\n >\n {\n setOpenAddResponsible({\n isOpen: true,\n typeCurrent: AddTravelAlertResponsibleType.AUTHORIZED\n })\n }}\n onRemove={(idResp) => {\n setAuthorizeds(authorizeds.filter(resp => resp.id !== idResp))\n }}\n />\n \n\n handleChange('possuiVeiculosCuidadosCentral', !travelAlert.possuiVeiculosCuidadosCentral)}\n >\n setOpenAddVehicle(true)}\n onRemove={(idVehicle) => {\n setVehicles(vehicles => vehicles.filter(vehicle => vehicle.id !== idVehicle))\n }}\n />\n \n \n \n }\n \n\n \n \n \n \n\n \n \n {\n handleChangeTime(modalTimePicker.currentTime, time)\n handleClose()\n }}\n onDimiss={handleClose}\n time={{ hours: 12, minutes: 58 }}\n visible={modalTimePicker.isOpen}\n />\n \n )\n}\n","import React from 'react'\nimport { TravelAlert } from '@/presentation/pages/TravelAlert'\nimport { NavigationPagesProps, TabBottomNavigator } from '@/presentation/components'\nimport { makeAddTravelAlertOs } from '@/main/factories/usecases'\nimport { makeDateAdapterFactory } from '@/main/adapters'\n\nexport const makeTravelAlertFactory: React.FC = ({ navigation }: NavigationPagesProps) => {\n return (\n <>\n \n \n \n )\n}\n","import { atom } from 'recoil'\nimport { ServiceOrderDetailModel } from '@/domain/models'\n\ntype ServiceOrderDetailProps = ServiceOrderDetailModel & {\n isLoading: boolean\n}\n\nexport const serviceOrderDetailState = atom({\n key: 'serviceOrderDetail',\n default: {\n ...null as unknown as ServiceOrderDetailModel,\n isLoading: false\n }\n})\n","import { StyleSheet } from 'react-native'\n\nexport const styles = StyleSheet.create({\n headerBox: {\n borderBottomWidth: 1,\n borderBottomColor: 'rgba(0, 0, 0, 0.12)',\n paddingBottom: 20,\n paddingHorizontal: 10,\n display: 'flex',\n flexDirection: 'row',\n justifyContent: 'space-between',\n alignItems: 'center',\n width: '100%',\n marginBottom: 20\n },\n headerTitle: {\n fontWeight: '600',\n fontSize: 20\n }\n})\n","import React from 'react'\nimport { useRecoilValue } from 'recoil'\nimport { Box, LogoTheme, Text } from '@/presentation/components'\nimport { serviceOrderDetailState } from '@/presentation/pages/ServiceOrderDetail/components'\nimport { ServiceOrderDetailModality, ServiceOrderDetailStatus } from '@/domain/models'\nimport { styles } from './styles'\n\nexport const PageHeader: React.FC = () => {\n const serviceOrderDetail = useRecoilValue(serviceOrderDetailState)\n\n const makeTextStatus = (status: ServiceOrderDetailStatus): string => {\n return {\n A: 'Aberta',\n B: 'Fechada',\n F: 'Faturada'\n }[status]\n }\n\n const makeTextModality = (modality: ServiceOrderDetailModality): string => {\n return {\n M: 'Manutenção Corretiva',\n V: 'Vendas Instalação',\n P: 'Manutenção Preventiva',\n A: 'Vendas Ampliação',\n R: 'Retirada Equipamento',\n I: 'Interna'\n }[modality]\n }\n\n return (\n \n \n \n \n \n OS {serviceOrderDetail.numOS}\n {makeTextModality(serviceOrderDetail.tipo)}\n {makeTextStatus(serviceOrderDetail.status)}\n \n \n )\n}\n","import { StyleSheet } from 'react-native'\n\nexport const styles = StyleSheet.create({\n cardArea: {\n flexDirection: 'row',\n justifyContent: 'space-between',\n flexWrap: 'wrap',\n width: '100%',\n gap: 16\n },\n titleBox: {\n borderBottomWidth: 1,\n borderBottomColor: 'rgba(0, 0, 0, 0.12)',\n paddingBottom: 4,\n display: 'flex',\n flexDirection: 'row',\n justifyContent: 'space-between',\n alignItems: 'center'\n },\n pageInfo: {\n fontWeight: '600',\n fontSize: 20,\n marginBottom: 20,\n marginTop: 20\n },\n bold: {\n fontWeight: '600'\n },\n additionalText: {\n fontSize: 13,\n fontStyle: 'italic'\n },\n additionalTextBox: {\n borderTopWidth: 1,\n borderTopColor: 'rgba(0, 0, 0, 0.12)',\n paddingTop: 4,\n display: 'flex',\n flexDirection: 'row',\n justifyContent: 'space-between',\n alignItems: 'center'\n },\n totalizerTextBox: {\n marginTop: 10,\n marginBottom: 20,\n display: 'flex',\n flexDirection: 'column',\n alignItems: 'flex-end'\n }\n})\n","import React from 'react'\nimport { useRecoilValue } from 'recoil'\nimport { Box, Text, CardDetails, CardRow } from '@/presentation/components'\nimport { serviceOrderDetailState } from '@/presentation/pages/ServiceOrderDetail/components'\nimport { styles } from '../../styles'\n\nexport const ClientInfo: React.FC = () => {\n const serviceOrderDetail = useRecoilValue(serviceOrderDetailState)\n\n return (\n <>\n Informações do Cliente\n \n \n \n Geral\n \n Nome: {serviceOrderDetail.codCliente} - {serviceOrderDetail.cliente}\n Fantasia: {serviceOrderDetail.fantasia}\n CNPJ: {serviceOrderDetail.cpf}\n \n Modalidade: {serviceOrderDetail.modalidade}\n Inscrição estadual: {serviceOrderDetail.inscricaoEstadual}\n \n \n \n \n Contato & Endereço\n \n Telefone: {serviceOrderDetail.fone1}\n Responsável: {serviceOrderDetail.responsavel}\n Endereço: {serviceOrderDetail.endereco} - {serviceOrderDetail.bairro}, {serviceOrderDetail.cidade} - {serviceOrderDetail.estado}\n \n \n \n )\n}\n","import React from 'react'\nimport { useRecoilValue } from 'recoil'\nimport { Box, Text, CardDetails, CardRow } from '@/presentation/components'\nimport { DateAdapter } from '@/data/protocols'\nimport { serviceOrderDetailState } from '@/presentation/pages/ServiceOrderDetail/components'\nimport { styles } from '../../styles'\n\ntype OsInfoProps = {\n dateAdapter: DateAdapter\n}\n\nexport const OsInfo: React.FC = ({\n dateAdapter\n}) => {\n const serviceOrderDetail = useRecoilValue(serviceOrderDetailState)\n\n const validaDataZerada = (stringValue: string): string => {\n return stringValue === '01/01/0001 12:00:00' ? '' : stringValue\n }\n\n return (\n <>\n Informações da OS\n \n \n \n Origem\n \n Empresa: {serviceOrderDetail.empresa}\n Orçamento: {serviceOrderDetail.orcamento}\n Vendedor: {serviceOrderDetail.nomeVendedor}\n \n Solicitante: {serviceOrderDetail.solicitante}\n \n \n \n \n Planejamento\n \n OS com data agendada? {serviceOrderDetail.agendada ? 'SIM' : 'NÃO'}\n {serviceOrderDetail.agendada &&\n <>\n Data agendada: {dateAdapter.format(serviceOrderDetail.dataAgenda, 'DD/MM/yyyy hh:mm:ss')}\n Conclusão: {dateAdapter.format(serviceOrderDetail.previsao, 'DD/MM/yyyy hh:mm:ss')}\n \n }\n \n Data para entrega: {dateAdapter.format(serviceOrderDetail.previsao, 'DD/MM/yyyy')}\n \n \n\n \n \n Abertura\n \n Data da abertura: {dateAdapter.format(serviceOrderDetail.abertura, 'DD/MM/yyyy hh:mm:ss')}\n Causa da OS: {serviceOrderDetail.causaOS}\n Defeito apontado: {serviceOrderDetail.defeito}\n \n Aberta por: {serviceOrderDetail.usuarioAbertura}\n \n \n \n \n Execução\n \n Técnico: {serviceOrderDetail.nomeTecnico}\n Gerente técnico: {serviceOrderDetail.nomeGetec}\n Veículo: {serviceOrderDetail.veiculoOS}\n \n\n \n \n Fechamento\n \n Data de fechamento: {validaDataZerada(dateAdapter.format(serviceOrderDetail.dataFechamento, 'DD/MM/yyyy hh:mm:ss'))}\n Solução: {serviceOrderDetail.solucaoOS}\n \n Fechada por: {serviceOrderDetail.usuarioFechamento}\n \n \n \n \n Faturamento\n \n \n Nota de locação: {serviceOrderDetail.notaLocacao}\n Data de emissão: {validaDataZerada(dateAdapter.format(serviceOrderDetail.dataEmissao, 'DD/MM/yyyy hh:mm:ss'))}\n \n \n \n \n \n \n Observações de Abertura\n \n {serviceOrderDetail.executar}\n \n \n \n Observações Internas\n \n {serviceOrderDetail.observacaoInterna}\n \n \n \n Observações de Fechamento\n \n {serviceOrderDetail.obsFechamento}\n \n \n \n )\n}\n","import React from 'react'\nimport { useRecoilValue } from 'recoil'\nimport { Box, DataTable, Text } from '@/presentation/components'\nimport { serviceOrderDetailState } from '@/presentation/pages/ServiceOrderDetail/components'\nimport { useFormat } from '@/presentation/hooks'\nimport { styles } from '../../styles'\n\nexport const OsProducts: React.FC = () => {\n const serviceOrderDetail = useRecoilValue(serviceOrderDetailState)\n const { formatCurrency } = useFormat()\n\n const totalBrutoProdutos = serviceOrderDetail.listaProdutos?.reduce(\n (acc, produto) => acc + (produto.unitario * produto.quantidade),\n 0\n )\n\n return (\n <>\n {!!serviceOrderDetail.listaProdutos?.length &&\n <>\n Produtos da OS\n \n \n Código\n Descrição\n Quantidade\n Unitário\n Total\n Cobrança\n Motivo\n Entregues\n \n\n {serviceOrderDetail.listaProdutos.map((produto, index) => (\n \n {produto.codProduto}\n {produto.descricao}\n {produto.quantidade}\n {formatCurrency(produto.unitario)}\n {formatCurrency(produto.unitario * produto.quantidade)}\n {produto.cobraCliente ? 'SIM' : 'NÃO'}\n {produto.motivo}\n {produto.entregue}\n \n ))}\n \n \n Valor Bruto de Produtos: {formatCurrency(totalBrutoProdutos)}\n Desconto Aplicado na OS: {serviceOrderDetail.pDesconto}% - {formatCurrency(serviceOrderDetail.descontoProd)}\n Total Líquido de Produtos: {formatCurrency(serviceOrderDetail.totalProdutos)}\n \n \n }\n \n )\n}\n","import React from 'react'\nimport { useRecoilValue } from 'recoil'\nimport { Box, DataTable, Text } from '@/presentation/components'\nimport { serviceOrderDetailState } from '@/presentation/pages/ServiceOrderDetail/components'\nimport { useFormat } from '@/presentation/hooks'\nimport { styles } from '../../styles'\n\nexport const OsServices: React.FC = () => {\n const serviceOrderDetail = useRecoilValue(serviceOrderDetailState)\n const { formatCurrency } = useFormat()\n\n const totalBrutoServicos = serviceOrderDetail.listaOsServicos?.reduce(\n (acc, servico) => acc + servico.total,\n 0\n )\n\n return (\n <>\n {!!serviceOrderDetail.listaOsServicos?.length &&\n <>\n Serviços da OS\n \n \n Código\n Descrição\n Quantidade\n Unitário\n Total\n Cobrança\n \n\n {serviceOrderDetail.listaOsServicos.map((servico, index) => (\n \n {servico.codServico}\n {servico.descricao}\n {servico.quantidade}\n {formatCurrency(servico.unitario)}\n {formatCurrency(servico.total)}\n {servico.cobraCliente ? 'SIM' : 'NÃO'}\n \n ))}\n \n \n Valor Bruto de Serviços: {formatCurrency(totalBrutoServicos)}\n Desconto Aplicado na OS: {formatCurrency(serviceOrderDetail.pDescontoServico)}% - {formatCurrency(serviceOrderDetail.descontoServ)}\n Total Líquido de Serviços: {formatCurrency(serviceOrderDetail.totalServicos)}\n \n \n }\n \n )\n}\n","import React from 'react'\nimport { useRecoilValue } from 'recoil'\nimport { Box, Text, CardDetails, CardRow } from '@/presentation/components'\nimport { serviceOrderDetailState } from '@/presentation/pages/ServiceOrderDetail/components'\nimport { useFormat } from '@/presentation/hooks'\nimport { styles } from '../../styles'\n\nexport const OsTotalizer: React.FC = () => {\n const serviceOrderDetail = useRecoilValue(serviceOrderDetailState)\n const { formatCurrency } = useFormat()\n\n return (\n \n \n \n Valores Gerais\n \n Total Líquido de Produtos: {formatCurrency(serviceOrderDetail.totalProdutos)}\n Total Líquido de Serviços: {formatCurrency(serviceOrderDetail.totalServicos)}\n Total de Descontos: {formatCurrency(serviceOrderDetail.descontoProd + serviceOrderDetail.descontoServ)}\n Valor do CREA: {formatCurrency(serviceOrderDetail.valorCrea)}\n \n Valor da OS: {formatCurrency(serviceOrderDetail.totalProdutos + serviceOrderDetail.totalServicos)}\n \n \n \n )\n}\n","import React from 'react'\nimport { useRecoilValue } from 'recoil'\nimport { Box, DataTable, Text } from '@/presentation/components'\nimport { serviceOrderDetailState } from '@/presentation/pages/ServiceOrderDetail/components'\nimport { DateAdapter } from '@/data/protocols'\nimport { styles } from '../../styles'\n\ntype OsTreatmentsProps = {\n dateAdapter: DateAdapter\n}\n\nexport const OsTreatments: React.FC = ({\n dateAdapter\n}) => {\n const serviceOrderDetail = useRecoilValue(serviceOrderDetailState)\n\n const tempoPercorrido = (initialHour: string, finalHour: string): string => {\n const initialTime = new Date(`1970-01-01T${initialHour}`)\n const finalTime = new Date(`1970-01-01T${finalHour}`)\n const durationInMilliseconds = finalTime.getTime() - initialTime.getTime()\n\n const hours = Math.floor(durationInMilliseconds / 3600000)\n const minutes = Math.floor((durationInMilliseconds % 3600000) / 60000)\n const seconds = Math.floor((durationInMilliseconds % 60000) / 1000)\n\n return `${hours.toString().padStart(2, '0')}:${minutes.toString().padStart(2, '0')}:${seconds.toString().padStart(2, '0')}`\n }\n\n const calcularDuracaoTotal = (): string => {\n let totalHours = 0\n let totalMinutes = 0\n let totalSeconds = 0\n\n serviceOrderDetail.listaAtendimentos.forEach((atendimento) => {\n const [hours, minutes, seconds] = tempoPercorrido(\n dateAdapter.format(atendimento.hrInicio, 'hh:mm:ss'),\n dateAdapter.format(atendimento.hrFim, 'hh:mm:ss')\n ).split(':').map(Number)\n totalHours += hours\n totalMinutes += minutes\n totalSeconds += seconds\n })\n\n totalMinutes += Math.floor(totalSeconds / 60)\n totalSeconds %= 60\n totalHours += Math.floor(totalMinutes / 60)\n totalMinutes %= 60\n\n return `${totalHours.toString().padStart(2, '0')}:${totalMinutes.toString().padStart(2, '0')}:${totalSeconds.toString().padStart(2, '0')}`\n }\n\n return (\n <>\n {!!serviceOrderDetail.listaAtendimentos?.length &&\n <>\n Atendimentos Feitos na OS\n \n \n Técnico\n Data\n Início\n Final\n Responsável\n \n\n {serviceOrderDetail.listaAtendimentos.map((atendimento, index) => (\n <>\n \n {atendimento.codTecnico} - {atendimento.tecnico}\n {dateAdapter.format(atendimento.data, 'DD/MM/yyyy')}\n {dateAdapter.format(atendimento.hrInicio, 'hh:mm:ss')}\n {dateAdapter.format(atendimento.hrFim, 'hh:mm:ss')}\n {atendimento.responsavel}\n \n {atendimento.observacoes &&\n \n {atendimento.observacoes}\n \n }\n \n ))}\n \n \n Total de Horas: {calcularDuracaoTotal()}\n \n \n }\n \n )\n}\n","import React from 'react'\nimport { useRecoilValue } from 'recoil'\nimport { Box, DataTable, Text } from '@/presentation/components'\nimport { serviceOrderDetailState } from '@/presentation/pages/ServiceOrderDetail/components'\nimport { useFormat } from '@/presentation/hooks'\nimport { styles } from '../../styles'\n\nexport const OsRemovals: React.FC = () => {\n const serviceOrderDetail = useRecoilValue(serviceOrderDetailState)\n const { formatCurrency } = useFormat()\n\n const totalBrutoProdutos = serviceOrderDetail.listaProdutosRetirar?.reduce(\n (acc, produto) => acc + produto.total,\n 0\n )\n\n return (\n <>\n {!!serviceOrderDetail.listaProdutosRetirar?.length &&\n <>\n Produtos a Retirar do Cliente\n \n \n Descrição\n Quantidade\n Unitário\n Total\n Cobrança\n Motivo\n \n\n {serviceOrderDetail.listaProdutosRetirar.map((retirar, index) => (\n \n {retirar.descricao}\n {retirar.quantidade}\n {retirar.unitario}\n {retirar.total}\n {retirar.cobraCliente ? 'SIM' : 'NÃO'}\n {retirar.motivo}\n \n ))}\n \n \n Total de Produtos a Retirar: {formatCurrency(totalBrutoProdutos)}\n \n \n }\n \n )\n}\n","import React from 'react'\nimport { useRecoilValue } from 'recoil'\nimport { DataTable, Text } from '@/presentation/components'\nimport { serviceOrderDetailState } from '@/presentation/pages/ServiceOrderDetail/components'\nimport { DateAdapter } from '@/data/protocols'\nimport { styles } from '../../styles'\n\ntype OsWarehouseProps = {\n dateAdapter: DateAdapter\n}\n\nexport const OsWarehouse: React.FC = ({\n dateAdapter\n}) => {\n const serviceOrderDetail = useRecoilValue(serviceOrderDetailState)\n\n return (\n <>\n {!!serviceOrderDetail.listaNFOS?.length &&\n <>\n Eventos do Almoxarifado\n \n \n Data\n Ocorrência\n Estoque\n Nota Fiscal\n Código\n Produto\n Quantidade\n Usuário\n \n\n {serviceOrderDetail.listaNFOS.map((almoxarifado, index) => (\n \n {dateAdapter.format(almoxarifado.dataMovimento, 'DD/MM/yyyy')}\n {almoxarifado.ocorrencia}\n {almoxarifado.estoque}\n {almoxarifado.nota}\n {almoxarifado.codigo}\n {almoxarifado.produto}\n {almoxarifado.quantidade}\n {almoxarifado.usuario}\n \n ))}\n \n \n }\n \n )\n}\n","import React from 'react'\nimport { useRecoilValue } from 'recoil'\nimport { DataTable, Text } from '@/presentation/components'\nimport { serviceOrderDetailState } from '@/presentation/pages/ServiceOrderDetail/components'\nimport { DateAdapter } from '@/data/protocols'\nimport { styles } from '../../styles'\n\ntype OsProblemsProps = {\n dateAdapter: DateAdapter\n}\n\nexport const OsProblems: React.FC = ({\n dateAdapter\n}) => {\n const serviceOrderDetail = useRecoilValue(serviceOrderDetailState)\n\n return (\n <>\n {!!serviceOrderDetail.listaProblemas?.length &&\n <>\n Problema Relatados na Ordem de Serviço\n \n \n Relato\n Resolução\n Origem\n Problema Relacionado\n \n\n {serviceOrderDetail.listaProblemas.map((problema, index) => (\n <>\n \n {dateAdapter.format(problema.dataInicial, 'DD/MM/yyyy hh:mm')}\n {dateAdapter.format(problema.dataFinal, 'DD/MM/yyyy hh:mm')}\n {problema.origem}\n {problema.strProblema}\n \n {problema.pendencia &&\n \n {problema.pendencia}\n \n }\n \n ))}\n \n \n }\n \n )\n}\n","import React from 'react'\nimport { useRecoilValue } from 'recoil'\nimport { Box, Text, CardDetails, CardRow } from '@/presentation/components'\nimport { serviceOrderDetailState } from '@/presentation/pages/ServiceOrderDetail/components'\nimport { styles } from '../../styles'\n\nexport const OsSignatures: React.FC = () => {\n const serviceOrderDetail = useRecoilValue(serviceOrderDetailState)\n\n return (\n <>\n {(serviceOrderDetail.encodeAssinatura || serviceOrderDetail.encodeAssinaturaTecnico) &&\n <>\n Assinaturas\n \n \n \n Assinatura Técnico\n \n \n \n \n \n Assinatura Cliente\n \n \n \n \n \n }\n \n )\n}\n","import React, { useCallback } from 'react'\nimport { SafeAreaView, StyleSheet } from 'react-native'\nimport { useRecoilState } from 'recoil'\nimport { ScrollView } from 'react-native-gesture-handler'\nimport { useFocusEffect } from '@react-navigation/native'\nimport { GetServiceOrderDetail } from '@/domain/usecases'\nimport { DateAdapter } from '@/data/protocols'\nimport { Loading, Box } from '@/presentation/components'\nimport { useErrorHandler } from '@/presentation/hooks'\nimport { serviceOrderDetailState, PageHeader, ClientInfo, OsInfo, OsProducts, OsServices, OsTotalizer, OsTreatments, OsRemovals, OsWarehouse, OsSignatures, OsProblems } from '@/presentation/pages/ServiceOrderDetail/components'\n\ntype ServiceOrderDetailProps = {\n getServiceOrderDetail: GetServiceOrderDetail\n dateAdapter: DateAdapter\n}\n\nexport const ServiceOrderDetail: React.FC = ({\n getServiceOrderDetail,\n dateAdapter\n}) => {\n const handleError = useErrorHandler()\n const [serviceOrderDetail, setServiceOrderDetail] = useRecoilState(serviceOrderDetailState)\n\n useFocusEffect(\n useCallback(() => {\n setServiceOrderDetail(currentState => ({ ...currentState, isLoading: true }))\n\n const paramsGetOrders = {\n planilha: 289345\n }\n\n getServiceOrderDetail\n .getDetail(paramsGetOrders)\n .then(serviceOrders => {\n setServiceOrderDetail(currentState => ({ ...currentState, ...serviceOrders }))\n })\n .catch(handleError)\n .finally(() => setServiceOrderDetail(currentState => ({ ...currentState, isLoading: false })))\n }, [])\n )\n\n const styles = StyleSheet.create({\n container: {\n flex: 1,\n paddingBottom: 60\n },\n content: {\n marginVertical: 0,\n marginHorizontal: 'auto',\n flex: 1,\n padding: 16,\n width: '100%'\n },\n scroll: {\n flex: 1,\n paddingTop: 12\n }\n })\n\n return (\n \n \n {serviceOrderDetail.isLoading\n ? \n : \n \n \n \n \n \n \n \n \n \n \n \n \n }\n \n \n )\n}\n","import React from 'react'\nimport { ServiceOrderDetail } from '@/presentation/pages/ServiceOrderDetail'\nimport { NavigationPagesProps, TabBottomNavigator } from '@/presentation/components'\nimport { makeGetServiceOrderDetail } from '@/main/factories/usecases'\nimport { makeDateAdapterFactory } from '@/main/adapters'\n\nexport const makeServiceOrderDetailFactory = ({ navigation }: NavigationPagesProps): JSX.Element => {\n return (\n <>\n \n \n \n )\n}\n","import { layoutStyles } from '@/presentation/styles/globals'\nimport { StyleSheet } from 'react-native'\n\nexport const styles = StyleSheet.create({\n container: {\n flex: 1,\n alignItems: 'stretch'\n },\n content: {\n ...layoutStyles.pageContent\n },\n scroll: {\n paddingBottom: 60\n }\n})\n","import { TrackModel } from '@/domain/models'\nimport { atom } from 'recoil'\n\nexport const isLoadingTrackState = atom({\n key: 'isLoadingTrackState',\n default: true\n})\n\nexport const trackState = atom({\n key: 'trackState',\n default: [] as TrackModel[]\n})\n","import { StyleSheet } from 'react-native'\n\nexport const styles = StyleSheet.create({\n container: {\n cursor: 'pointer',\n flex: 1,\n padding: 16,\n margin: 0,\n width: '100%',\n minWidth: 280,\n height: 'auto',\n fontSize: 14,\n overflow: 'hidden',\n borderRadius: 14,\n shadowColor: 'rgba(0, 0, 0, 0.04)',\n shadowOffset: {\n width: 4,\n height: 8\n },\n shadowRadius: 4,\n backgroundPosition: '100%',\n backgroundSize: '8px 100%',\n backgroundRepeat: 'no-repeat'\n },\n title: {\n fontWeight: '500',\n fontSize: 24\n },\n textStatus: {\n marginTop: 4,\n fontSize: 14\n }\n})\n","import React from 'react'\nimport { useSetRecoilState } from 'recoil'\nimport { TouchableOpacity } from 'react-native'\nimport { MaterialCommunityIcons } from '@expo/vector-icons'\nimport { TrackModel } from '@/domain/models'\nimport { GetTrackDetails, GetTrackDetailsParams } from '@/domain/usecases'\nimport { useAuth, useErrorHandler, useTheme } from '@/presentation/hooks'\nimport { Box, Text, HStack, VStack } from '@/presentation/components'\nimport { isLoadingTrackDetailsState, isOpenTrackDetailsState, trackDetailsState } from '@/presentation/pages/Track/components'\nimport { styles } from './styles'\n\ntype CardTrackProps = {\n track: TrackModel\n getTrackDetails: GetTrackDetails\n}\n\nexport const CardTrack: React.FC = ({ track, getTrackDetails }) => {\n const theme = useTheme()\n const { getClient } = useAuth()\n const client = getClient()\n const setLoading = useSetRecoilState(isLoadingTrackDetailsState)\n const setDetails = useSetRecoilState(trackDetailsState)\n const setOpenDetail = useSetRecoilState(isOpenTrackDetailsState)\n const handleError = useErrorHandler()\n\n const { codInterno, id, placa } = track\n\n const handleDetails = (codInterno: number): void => {\n const params: GetTrackDetailsParams = {\n codCliente: client.codCliente.toString(),\n codInterno: codInterno.toString()\n }\n\n setLoading(true)\n\n getTrackDetails\n .getDetails(params)\n .then(currentDetails => {\n setDetails(currentDetails)\n setOpenDetail(true)\n })\n .catch(handleError)\n .finally(() => setLoading(false))\n }\n\n return (\n handleDetails(codInterno)}>\n \n \n \n \n {placa &&\n \n {placa}\n \n }\n {\n id &&\n \n {id}\n \n }\n \n \n \n \n )\n}\n","import { StyleSheet } from 'react-native'\n\nexport const styles = StyleSheet.create({\n container: {\n display: 'flex'\n },\n title: {\n fontWeight: '700',\n marginBottom: 8\n }\n})\n","import React from 'react'\nimport { useRecoilState, useRecoilValue } from 'recoil'\nimport { TrackDetailsModel, FuelType } from '@/domain/models'\nimport { useMediaQueries, useTheme } from '@/presentation/hooks'\nimport { ModalBase, Box, Text, VStack, Loading, Divider, Stack, Button } from '@/presentation/components'\nimport { isLoadingTrackDetailsState, isOpenTrackDetailsState, trackDetailsState } from '@/presentation/pages/Track/components'\nimport { styles } from './styles'\n\nexport const TrackDetails: React.FC = () => {\n const [details, setDetails] = useRecoilState(trackDetailsState)\n const isLoading = useRecoilValue(isLoadingTrackDetailsState)\n const [isOpen, setOpen] = useRecoilState(isOpenTrackDetailsState)\n const theme = useTheme()\n\n const { isMobile } = useMediaQueries()\n\n const { combustivel, cor, id, modelo, placa, ano } = details\n\n const handleFuelName = {\n [FuelType.Biocombustivel]: 'Biocombustivel',\n [FuelType.Diesel]: 'Diesel',\n [FuelType.Eletrico]: 'Eletrico',\n [FuelType.Etanol]: 'Etanol',\n [FuelType.GNV]: 'GNV',\n [FuelType.Gasolina]: 'Gasolina',\n [FuelType.Hibrido]: 'Hibrido'\n }[combustivel]\n\n const handleClose = (): void => {\n setOpen(false)\n setDetails({} as TrackDetailsModel)\n }\n\n return (\n \n \n {isLoading\n ? \n : \n \n Detalhes do Rastreamento\n \n\n \n\n \n {placa &&\n \n Placa:\n \n {placa}\n \n }\n {id &&\n \n Id:\n {id}\n }\n \n\n \n {cor &&\n \n Cor:\n \n {cor}\n \n }\n {ano &&\n \n Ano:\n {ano}\n }\n \n\n {modelo &&\n \n Modelo:\n \n {modelo}\n \n }\n {combustivel &&\n \n Combustivel:\n \n {handleFuelName}\n \n \n }\n \n }\n \n \n \n )\n}\n","import { atom } from 'recoil'\nimport { TrackDetailsModel } from '@/domain/models'\n\nexport const isLoadingTrackDetailsState = atom({\n key: 'isLoadingTrackDetailsState',\n default: false\n})\n\nexport const trackDetailsState = atom({\n key: 'trackDetailsState',\n default: {} as TrackDetailsModel\n})\n\nexport const isOpenTrackDetailsState = atom({\n key: 'isOpenTrackDetailsState',\n default: false\n})\n","import React, { useCallback } from 'react'\nimport { SafeAreaView } from 'react-native'\nimport { ScrollView } from 'react-native-gesture-handler'\nimport { useAuth, useErrorHandler, useTheme } from '@/presentation/hooks'\nimport { styles } from './styles'\nimport { Box, PageHeader, CardList } from '@/presentation/components'\nimport { MaterialIcons } from '@expo/vector-icons'\nimport { isLoadingTrackState, trackState } from './atom'\nimport { useRecoilState } from 'recoil'\nimport { useFocusEffect } from '@react-navigation/native'\nimport { GetTrackDetails, GetTrackList, GetTrackParams } from '@/domain/usecases'\nimport { CardTrack, TrackDetails } from '@/presentation/pages/Track/components'\n\ntype TrackProps = {\n getTrackList: GetTrackList\n getTrackDetails: GetTrackDetails\n}\n\nexport const Track: React.FC = ({ getTrackList, getTrackDetails }: TrackProps) => {\n const theme = useTheme()\n const { getClient } = useAuth()\n const handleError = useErrorHandler()\n const [isLoading, setLoading] = useRecoilState(isLoadingTrackState)\n const [tracks, setTracks] = useRecoilState(trackState)\n\n const client = getClient()\n\n useFocusEffect(\n useCallback(() => {\n setLoading(true)\n\n const params: GetTrackParams = {\n codCliente: client.codCliente\n }\n\n getTrackList\n .getTrackList(params)\n .then(setTracks)\n .catch(handleError)\n .finally(() => setLoading(false))\n }, [])\n )\n\n return (\n \n \n }\n />\n \n \n {\n tracks?.map((track, index) => (\n \n ))\n }\n \n \n \n\n \n \n )\n}\n","import React from 'react'\nimport { NavigationPagesProps, TabBottomNavigator } from '@/presentation/components'\nimport { Track } from '@/presentation/pages/Track'\nimport { makeGetTrackDetailsFactory, makeGetTrackListFactory } from '@/main/factories/usecases'\n\nexport const makeTrackFactory: React.FC = ({ navigation }: NavigationPagesProps) => {\n return (\n <>\n \n \n \n )\n}\n","import { atom } from 'recoil'\n\nexport const isOpenContractDetailsState = atom({\n key: 'isOpenContractDetailsState',\n default: false\n})\n","import { StyleSheet } from 'react-native'\nimport { layoutStyles } from '@/presentation/styles/globals'\n\nexport const styles = StyleSheet.create({\n container: {\n flex: 1,\n alignItems: 'stretch'\n },\n content: {\n ...layoutStyles.pageContent\n },\n scroll: {\n paddingBottom: 60\n },\n btnAction: {\n backgroundColor: 'none',\n textTransform: 'uppercase',\n fontSize: 12\n },\n footerContainer: {\n flexDirection: 'row-reverse',\n alignItems: 'center',\n height: '100%',\n padding: 16\n },\n toolbar: {\n display: 'flex',\n flexDirection: 'row',\n alignItems: 'center',\n justifyContent: 'space-between'\n },\n bold: {\n fontWeight: '600'\n },\n titleBox: {\n borderBottomWidth: 1,\n borderBottomColor: 'rgba(0, 0, 0, 0.12)',\n paddingBottom: 4,\n display: 'flex',\n flexDirection: 'row',\n justifyContent: 'space-between',\n alignItems: 'center'\n },\n additionalTextBox: {\n borderTopWidth: 1,\n borderTopColor: 'rgba(0, 0, 0, 0.12)',\n paddingTop: 4,\n display: 'flex',\n flexDirection: 'row',\n justifyContent: 'space-between',\n alignItems: 'center'\n },\n actionsContent: {\n marginVertical: 8,\n marginRight: 16,\n display: 'flex',\n flexDirection: 'row',\n alignItems: 'center',\n justifyContent: 'flex-end'\n }\n})\n","import React from 'react'\nimport { Box, InputField, Text, VStack, CardDetails, Stack, HStack } from '@/presentation/components'\nimport { useAuth } from '@/presentation/hooks'\nimport { styles } from '../../styles'\n\nexport const CompanyCard: React.FC = () => {\n const { getClient } = useAuth()\n\n const client = getClient()\n\n return (\n \n \n \n Dados Gerais\n \n \n \n Razão Social\n { client.nomeCliente }\n \n \n Fantasia\n { client.fantasia ? client.fantasia : 'Não informado' }\n \n \n CPF/CNPJ\n { client.cpfCnpj }\n \n \n \n \n E-mail\n { client.email ? client.email : 'Não informado' }\n \n \n Telefone\n { client.telefone1 || client.telefone2 ? `${client.telefone1} ${client.telefone2}` : 'Não informado' }\n \n \n Endereço\n {\n `${client.enderecoGeral.endereco}, ${client.enderecoGeral.numero} - ` +\n `${client.enderecoGeral.bairro} - ${client.enderecoGeral.cidade}/${client.enderecoGeral.estado}`\n }\n \n \n \n \n )\n}\n","import React from 'react'\nimport { useSetRecoilState } from 'recoil'\nimport { MaterialCommunityIcons } from '@expo/vector-icons'\nimport { Box, Button, HStack, InputField, Text, VStack, CardRow, CardDetails } from '@/presentation/components'\nimport { useAuth, useFormat, useTheme, useThemeClient } from '@/presentation/hooks'\nimport { isOpenContractDetailsState } from '@/presentation/pages/Contract/components'\nimport { DateAdapter } from '@/data/protocols'\nimport { styles } from '../../styles'\n\ntype ContractCardProps = {\n dateAdapter: DateAdapter\n}\n\nexport const ContractCard: React.FC = ({ dateAdapter }) => {\n const theme = useTheme()\n const { getClient } = useAuth()\n const { getThemeClient } = useThemeClient()\n const { formatCurrency } = useFormat()\n const setOpen = useSetRecoilState(isOpenContractDetailsState)\n\n const client = getClient()\n const themeClient = getThemeClient()\n\n return (\n \n \n \n Contrato {client.numContrato && client.numContrato}\n \n \n \n Início\n {dateAdapter.format(client.primeiroFaturamento, 'DD/MM/YYYY')}\n \n \n Dia da Cobrança\n {client.diaVencimento}\n \n \n {client.visualizaDetalhesContrato &&\n \n }\n title='Ver Detalhes'\n color={themeClient.mainColor}\n tintColor={theme.colors.white}\n onPress={() => setOpen(true)}\n />\n \n }\n \n \n )\n}\n","import React from 'react'\nimport { useRecoilState } from 'recoil'\nimport { ScrollView } from 'react-native-gesture-handler'\nimport { Box, Text, ModalBase, VStack, Divider, HStack, Button, CardDetails, CardRow, Chip } from '@/presentation/components'\nimport { isOpenContractDetailsState } from '@/presentation/pages/Contract/components'\nimport { useAuth, useFormat, useTheme } from '@/presentation/hooks'\nimport { DateAdapter } from '@/data/protocols'\nimport { styles } from '../../styles'\n\ntype ModalContractDetailsProps = {\n dateAdapter: DateAdapter\n}\n\nexport const ModalContractDetails: React.FC = ({ dateAdapter }) => {\n const theme = useTheme()\n const { formatCurrency } = useFormat()\n const [isOpen, setOpen] = useRecoilState(isOpenContractDetailsState)\n const { getClient } = useAuth()\n\n const client = getClient()\n\n const handleClose = (): void => setOpen(false)\n\n const btnLimparStyles = {\n ...styles.btnAction,\n color: theme.colors.textsLight\n }\n\n return (\n \n \n \n \n {client.numContrato ? `Detalhes do contrato ${client.numContrato}` : 'Detalhes da mensalidade' }\n \n \n Início da Vigência\n {dateAdapter.format(client.primeiroFaturamento, 'DD/MM/YYYY')}\n \n \n Término da Vigência\n \n {dateAdapter.format(client.terminoContrato, 'DD/MM/YYYY') === '01/01/0001'\n ? 'Não definido' \n : dateAdapter.format(client.terminoContrato, 'DD/MM/YYYY')\n }\n \n \n \n Dia de Cobrança\n {client.diaVencimento}\n \n \n Valor Mensal\n {formatCurrency(client.valorMensal)}\n \n \n Serviços\n \n \n {client.servicosContratadosPortal?.map((servico, index) => (\n \n \n \n {servico.cliSerContDescricao}\n \n \n Quantidade\n {servico.cliSerContQuantidade}\n \n \n Valor Total\n {formatCurrency(servico.cliSerContValor)}\n \n \n Início da Prestação\n {console.log(dateAdapter.format(servico.dataCadastro, 'DD/MM/YYYY'))}\n {dateAdapter.format(servico.dataCadastro, 'DD/MM/YYYY') !== '01/01/0001'\n ? dateAdapter.format(servico.dataCadastro, 'DD/MM/YYYY')\n : dateAdapter.format(client.primeiroFaturamento, 'DD/MM/YYYY')\n }\n \n \n \n \n ))}\n \n \n \n \n \n \n \n \n \n \n \n )\n}\n","import React from 'react'\nimport { SafeAreaView } from 'react-native'\nimport { ScrollView } from 'react-native-gesture-handler'\nimport { MaterialCommunityIcons } from '@expo/vector-icons'\nimport { useTheme } from '@/presentation/hooks'\nimport { CompanyCard, ContractCard, ModalContractDetails } from '@/presentation/pages/Contract/components'\nimport { Box, PageHeader, Stack } from '@/presentation/components'\nimport { DateAdapter } from '@/data/protocols'\nimport { styles } from './styles'\n\ntype ContractProps = {\n dateAdapter: DateAdapter\n}\n\nexport const Contract: React.FC = ({ dateAdapter }) => {\n const theme = useTheme()\n\n return (\n \n \n \n }\n />\n \n \n \n \n \n \n \n \n )\n}\n","import React from 'react'\nimport { Contract } from '@/presentation/pages/Contract'\nimport { NavigationPagesProps, TabBottomNavigator } from '@/presentation/components'\nimport { makeDateAdapterFactory } from '@/main/adapters'\n\nexport const makeContractFactory = ({ navigation }: NavigationPagesProps): JSX.Element => {\n return (\n <>\n \n \n \n )\n}\n","import { atom } from 'recoil'\n\nexport const isOpenDebtsYearMenuState = atom({\n key: 'isOpenDebtsYearMenuState',\n default: false\n})\n\nexport type DebtYear = {\n id: number\n descricao: string\n isSelected: boolean\n}\n\nexport const debtsYearState = atom({\n key: 'debtsYearState',\n default: null as unknown as DebtYear[]\n})\n","import { layoutStyles } from '@/presentation/styles/globals'\nimport { StyleSheet } from 'react-native'\n\nexport const styles = StyleSheet.create({\n container: {\n flex: 1,\n alignItems: 'stretch'\n },\n content: {\n ...layoutStyles.pageContent\n },\n scroll: {\n paddingBottom: 60\n },\n buttonArea: {\n display: 'flex',\n flexDirection: 'row',\n justifyContent: 'flex-end',\n gap: 8\n }\n})\n","import React, { useEffect } from 'react'\nimport { SafeAreaView } from 'react-native'\nimport { useRecoilState } from 'recoil'\nimport { MaterialIcons } from '@expo/vector-icons'\nimport { OpenStatementOfDebts, OpenStatementOfDebtsParams } from '@/domain/usecases'\nimport { useAuth, useErrorHandler, useTheme } from '@/presentation/hooks'\nimport { Box, Button, PageHeader, Select } from '@/presentation/components'\nimport { DebtYear, debtsYearState, isOpenDebtsYearMenuState } from '@/presentation/pages/StatementOfDebts/components'\nimport { DateAdapter } from '@/data/protocols'\nimport { styles } from './styles'\n\ntype StatementOfDebtsProps = {\n openStatementOfDebts: OpenStatementOfDebts\n dateAdapter: DateAdapter\n}\n\nexport const StatementOfDebts: React.FC = ({ openStatementOfDebts, dateAdapter }) => {\n const theme = useTheme()\n const { getClient } = useAuth()\n const handleError = useErrorHandler()\n const [isOpenDebtsYearMenu, setOpenDebtsYearMenu] = useRecoilState(isOpenDebtsYearMenuState)\n const [debtsYear, setDebtsYear] = useRecoilState(debtsYearState)\n\n const client = getClient()\n\n const getPossibleDebtsYears = (): void => {\n const currentYear = dateAdapter.today().getFullYear()\n const possibleDebtsYears = []\n\n for (let i = 0; i < 5; i++) {\n const debtYear: DebtYear = {\n id: currentYear - i,\n descricao: `${currentYear - i}`,\n isSelected: false\n }\n\n possibleDebtsYears.push(debtYear)\n }\n\n setDebtsYear(possibleDebtsYears)\n }\n\n const getSelectedDebtYear = (): number => {\n const selectedDebtYear = debtsYear?.find((debt: DebtYear) => debt.isSelected)\n\n return selectedDebtYear ? selectedDebtYear.id : 0\n }\n\n const handleSelectDebtYear = (id: number): void => {\n const updatedDebtsYear = debtsYear.map((debtYear: DebtYear) => {\n if (debtYear.id === id) return { ...debtYear, isSelected: true }\n else if (debtYear.isSelected) return { ...debtYear, isSelected: false }\n\n return debtYear\n })\n\n setDebtsYear(updatedDebtsYear)\n }\n\n const handleOpenStatementOfDebts = (): void => {\n const openParams: OpenStatementOfDebtsParams = {\n codCliente: client.codCliente,\n ano: getSelectedDebtYear()\n }\n\n openStatementOfDebts\n .openPaymentReport(openParams)\n .catch(handleError)\n }\n\n useEffect(() => getPossibleDebtsYears(), [])\n\n return (\n \n \n }\n />\n setOpenDebtsYearMenu(true)}\n style={{ marginBottom: 8 }}\n />\n \n \n \n \n setOpenDebtsYearMenu(false)}\n onSelect={(id) => handleSelectDebtYear(id)}\n title={'Selecione o ano da declaração'}\n items={debtsYear}\n />\n \n )\n}\n","import React from 'react'\nimport { NavigationPagesProps, TabBottomNavigator } from '@/presentation/components'\nimport { makeOpenStatementOfDebts } from '@/main/factories/usecases'\nimport { StatementOfDebts } from '@/presentation/pages/StatementOfDebts'\nimport { makeDateAdapterFactory } from '@/main/adapters'\n\nexport const makeStatementOfDebtsFactory = ({ navigation }: NavigationPagesProps): JSX.Element => {\n return (\n <>\n \n \n \n )\n}\n","import * as React from 'react'\nimport { createDrawerNavigator } from '@react-navigation/drawer'\nimport { NavigationContainer } from '@react-navigation/native'\nimport { Header, Loading } from '@/presentation/components'\nimport { CustomDrawer } from '../CustomDrawer'\nimport { MaterialCommunityIcons, MaterialIcons } from '@expo/vector-icons'\nimport { NavigationRoute, screensClientNavigator, screensAdminNavigator } from '@/main/config/router-navigation'\nimport { ADMIN_CODE, useAuth, useThemeClient } from '@/presentation/hooks'\nimport {\n makeAcceptDigitalFactory,\n makeCardFactory,\n makeEventsFactory,\n makeFinancialFactory,\n makeHomeFactory,\n makeNFFactory,\n makeRedesSociaisFactory,\n makeServiceOrdersFactory,\n makeSettingsFactory,\n makeThemeFactory,\n makeSacFactory,\n makeTravelAlertFactory,\n makeServiceOrderDetailFactory,\n makeProspectSettingsFactory,\n makeTrackFactory,\n makeContractFactory,\n makeStatementOfDebtsFactory,\n makeEventsSettingsFactory\n} from '@/main/factories/pages'\n\nexport type NavigationPagesProps = {\n navigation: any\n}\n\nconst Drawer = createDrawerNavigator()\n\nexport const NavigationDrawer: React.FC = () => {\n const { getThemeClient } = useThemeClient()\n const { getClient } = useAuth()\n\n const client = getClient()\n const themeClient = getThemeClient()\n\n const RN_SHOW_MENU_OS = client?.portal?.os ?? false\n const RN_SHOW_MENU_TICKETS = client?.portal?.boleto ?? false\n const RN_SHOW_MENU_NF = client?.portal?.notaFiscal ?? false\n const RN_SHOW_MENU_ACEITE = client?.portal?.aceiteDigital ?? false\n const RN_SHOW_MENU_CARTAO = client?.portal?.cartao ?? false\n const RN_SHOW_MENU_SAC = client?.portal?.sac ?? false\n const RN_SHOW_MENU_MONITORING = client?.portal?.monitoramento ?? false\n const RN_SHOW_MENU_TRAVEL = client?.portal?.viagem ?? false\n const RN_SHOW_MENU_RASTREAMENTO = client?.portal?.rastreamento ?? false\n const RN_SHOW_MENU_CONTRACTS = client?.portal?.contrato ?? false\n\n const isAdmin = client?.codCliente === ADMIN_CODE || client?.email?.endsWith('@insidesistemas.com.br')\n const isClient = !isAdmin\n\n const linking = {\n prefixes: ['/'],\n config: {\n screens: {\n ...screensClientNavigator,\n ...screensAdminNavigator\n }\n }\n }\n\n const makeAdminPages = (): JSX.Element =>\n <>\n ()\n }}\n name={NavigationRoute.Theme}\n component={makeThemeFactory} />\n ()\n }}\n name={NavigationRoute.ProspectSettings}\n component={makeProspectSettingsFactory} />\n ()\n }}\n name={NavigationRoute.EventsSettings}\n component={makeEventsSettingsFactory}\n />\n ()\n }}\n name={NavigationRoute.Configs}\n component={makeSettingsFactory} />\n\n ()\n }}\n name={NavigationRoute.SocialMedia}\n component={makeRedesSociaisFactory}\n />\n \n\n const makeUserPages = (): JSX.Element =>\n <>\n ()\n }}\n name={NavigationRoute.Home}\n component={makeHomeFactory}\n />\n {RN_SHOW_MENU_TICKETS &&\n ()\n }}\n name={NavigationRoute.Financial}\n component={makeFinancialFactory}\n />\n }\n {RN_SHOW_MENU_TICKETS &&\n ()\n }}\n name={NavigationRoute.StatementOfDebts}\n component={makeStatementOfDebtsFactory}\n />\n }\n {RN_SHOW_MENU_OS &&\n ()\n }}\n name={NavigationRoute.ServiceOrders}\n component={makeServiceOrdersFactory}\n />\n }\n {RN_SHOW_MENU_NF &&\n ()\n }}\n name={NavigationRoute.Invoices}\n component={makeNFFactory}\n />\n }\n {RN_SHOW_MENU_CARTAO &&\n ()\n }}\n name={NavigationRoute.CreditCard}\n component={makeCardFactory}\n />\n }\n {RN_SHOW_MENU_TRAVEL &&\n ()\n }}\n name={NavigationRoute.TravelAlert}\n component={makeTravelAlertFactory}\n />\n }\n {RN_SHOW_MENU_ACEITE &&\n ()\n }}\n name={NavigationRoute.DigitalAccepts}\n component={makeAcceptDigitalFactory}\n />\n }\n {RN_SHOW_MENU_MONITORING &&\n ()\n }}\n name={NavigationRoute.Monitoring}\n component={makeEventsFactory}\n />\n }\n {RN_SHOW_MENU_SAC &&\n ()\n }}\n name={NavigationRoute.SAC}\n component={makeSacFactory}\n />\n }\n {RN_SHOW_MENU_RASTREAMENTO &&\n ()\n }}\n name={NavigationRoute.Track}\n component={makeTrackFactory}\n />\n }\n \n {RN_SHOW_MENU_CONTRACTS &&\n ()\n }}\n name={NavigationRoute.Contract}\n component={makeContractFactory}\n />\n }\n \n\n return (\n }>\n
\n }}\n drawerContent={props => }\n initialRouteName={isAdmin ? 'Tema' : 'Home'}\n >\n {isClient && makeUserPages()}\n {isAdmin && makeAdminPages()}\n \n \n )\n}\n","import React from 'react'\nimport { StyleSheet } from 'react-native'\nimport { Box, Text, ActivityIndicator } from '@/presentation/components'\nimport { useThemeClient } from '@/presentation/hooks'\n\ntype LoadinProps = {\n text?: string\n}\n\nexport const Loading: React.FC = ({ text }) => {\n const { getThemeClient } = useThemeClient()\n\n const themeClient = getThemeClient()\n\n return (\n \n \n {!!text &&\n {text}\n }\n \n )\n}\n\nconst styles = StyleSheet.create({\n container: {\n flex: 1,\n alignItems: 'center',\n justifyContent: 'center',\n minHeight: '50vh'\n }\n})\n","import { StyleSheet } from 'react-native'\n\nexport const styles = StyleSheet.create({\n container: {\n display: 'flex',\n gap: 18\n },\n buttonArea: {\n display: 'flex',\n flexDirection: 'row',\n justifyContent: 'flex-end',\n gap: 8\n }\n})\n","import React from 'react'\nimport { useRecoilState } from 'recoil'\nimport { MetricsLogoff, PortalLogout } from '@/domain/usecases'\nimport { DateAdapter } from '@/data/protocols'\nimport { ADMIN_CODE, useAuth, useTheme } from '@/presentation/hooks'\nimport { Box, Button, ModalBase, Text, isOpenLogoutState } from '@/presentation/components'\nimport { styles } from './styles'\nimport { version } from '../../../../package.json'\n\ntype LogoutProps = {\n portalLogout: PortalLogout\n metricsLogoff: MetricsLogoff\n dateAdapter: DateAdapter\n}\n\nexport const Logout: React.FC = ({\n portalLogout,\n metricsLogoff,\n dateAdapter\n}) => {\n const theme = useTheme()\n const { logout, getClient, getCurrentClient } = useAuth()\n const [isOpen, setOpen] = useRecoilState(isOpenLogoutState)\n\n const client = getClient()\n\n const handleLogout = (): void => {\n const codClient = getCurrentClient()\n logout()\n if (codClient !== ADMIN_CODE.toString()) {\n void portalLogout\n .logout({ cliente: parseInt(codClient), version })\n .catch(console.error)\n void metricsLogoff\n .register({\n dataOcorrencia: dateAdapter.format(dateAdapter.today(), 'YYYY-MM-DDTHH:mm:ssZ'),\n email: client.email,\n unidade: client.unidade,\n usuario: client.codCliente.toString(),\n versao: version\n })\n .catch(console.error)\n }\n setOpen(false)\n }\n\n const handleClose = (): void => setOpen(false)\n\n return (\n \n \n Tem certeza que deseja sair?\n\n \n \n \n \n \n \n )\n}\n","import { atom } from 'recoil'\n\nexport const isOpenLogoutState = atom({\n key: 'isOpenLogoutState',\n default: false\n})\n","import React from 'react'\nimport { Stack } from '@/presentation/components'\nimport { useMediaQueries } from '@/presentation/hooks'\n\ntype InputFieldProps = {\n children: React.ReactNode\n justify?: 'around' | 'between' | 'center' | 'start' | 'end' | 'evenly'\n}\n\nexport const InputField: React.FC = ({ children, justify }) => {\n const { isMobile } = useMediaQueries()\n\n return (\n \n {children}\n \n )\n}\n","import React, { useState, useCallback, useEffect } from 'react'\nimport { StyleSheet } from 'react-native'\nimport { Card } from 'react-native-paper'\nimport { useRecoilValue, useSetRecoilState } from 'recoil'\nimport { Entypo, MaterialCommunityIcons } from '@expo/vector-icons'\nimport { useMediaQueries, useTheme, useThemeClient } from '@/presentation/hooks'\nimport { Button, HStack, IconButton, isOpenInstallationState, localStorageState } from '@/presentation/components'\n\nexport const TIME_IN_EXPIRATION_HOURS = 6\nexport const KEY_TIME_EXPIRATION = 'decline_install'\n\nexport const InstallButton: React.FC = () => {\n const theme = useTheme()\n const localStorageAdapter = useRecoilValue(localStorageState)\n const { isMobile, openInIOS, openInPWA } = useMediaQueries()\n const { getThemeClient } = useThemeClient()\n const [isOpen, setOpen] = useState(false)\n const setOpenModal = useSetRecoilState(isOpenInstallationState)\n\n const themeClient = getThemeClient()\n let deferredPrompt: any = null\n\n useEffect(() => {\n window.addEventListener('beforeinstallprompt', (event) => {\n event.preventDefault()\n deferredPrompt = event\n\n if (window.location.protocol === 'https:' && !openInPWA) {\n const hasDeclineInstall: any = localStorageAdapter.get(KEY_TIME_EXPIRATION)\n if (hasDeclineInstall?.timestamp) {\n const today = new Date().getTime()\n const isExpiredDecline: number = hasDeclineInstall.timestamp\n const diferrenceMilissegundos = Math.abs(isExpiredDecline - today)\n const hoursDifference = diferrenceMilissegundos / (1000 * 60 * 60)\n\n setOpen(hoursDifference > TIME_IN_EXPIRATION_HOURS)\n } else {\n setOpen(true)\n }\n }\n })\n }, [])\n\n const handleInstall = useCallback((): void => {\n if (openInIOS) {\n setOpenModal(true)\n } else {\n deferredPrompt?.prompt()\n setOpen(false)\n }\n }, [deferredPrompt])\n\n const handleCloseButton = (): void => {\n localStorageAdapter.set(KEY_TIME_EXPIRATION, { timestamp: new Date().getTime() })\n setOpen(false)\n }\n\n const containerMobile = {\n right: 60,\n top: 12,\n minWidth: '70%'\n }\n\n const container = {\n right: 60,\n top: 24\n }\n\n return (\n \n \n \n \n }\n />\n \n \n )\n}\n\nconst styles = StyleSheet.create({\n cardContainer: {\n position: 'absolute',\n padding: 8,\n borderRadius: 4\n }\n})\n","import { StyleSheet } from 'react-native'\n\nexport const styles = StyleSheet.create({\n container: {\n display: 'flex',\n gap: 18\n },\n buttonArea: {\n display: 'flex',\n flexDirection: 'row',\n justifyContent: 'flex-end',\n gap: 8\n }\n})\n","import React from 'react'\nimport { Image } from 'react-native'\nimport { useRecoilState, useRecoilValue } from 'recoil'\nimport { useTheme, useThemeClient } from '@/presentation/hooks'\nimport { Box, Button, Divider, HStack, KEY_TIME_EXPIRATION, ModalBase, Text, isOpenInstallationState, localStorageState } from '@/presentation/components'\nimport { styles } from './styles'\n\nexport const InstallationSuggestion: React.FC = () => {\n const theme = useTheme()\n const { getThemeClient } = useThemeClient()\n const localStorageAdapter = useRecoilValue(localStorageState)\n const [isOpen, setOpen] = useRecoilState(isOpenInstallationState)\n\n const handleDeclineInstall = (): void => {\n localStorageAdapter.set(KEY_TIME_EXPIRATION, { timestamp: new Date().getTime() })\n setOpen(false)\n }\n\n const themeClient = getThemeClient()\n\n const handleClose = (): void => setOpen(false)\n\n return (\n \n \n Siga os passos para instalação\n \n \n\n \n \n \n \n \n )\n}\n","import { atom } from 'recoil'\n\nexport const isOpenInstallationState = atom({\n key: 'isOpenInstallationState',\n default: false\n})\n","import * as React from 'react'\nimport { Appbar } from 'react-native-paper'\nimport { useSetRecoilState } from 'recoil'\nimport { StyleSheet, View, ViewStyle } from 'react-native'\nimport { MaterialCommunityIcons, MaterialIcons } from '@expo/vector-icons'\nimport { NavigationRoute } from '@/main/config/router-navigation'\nimport { ADMIN_CODE, useAuth, useMediaQueries, useThemeClient } from '@/presentation/hooks'\nimport { Text, LogoTheme, NavigationPagesProps, isOpenUserMenuState, IconButton } from '@/presentation/components'\n\nexport const APP_BAR_HEIGTH = 64\nexport const PADDING_STATUS_BAR_IOS = 24\n\nexport const Header: React.FC = ({ navigation }) => {\n const { getClient } = useAuth()\n const { getThemeClient } = useThemeClient()\n const { openInPWA, openInIOS, isMobile } = useMediaQueries()\n const setOpenUserMenu = useSetRecoilState(isOpenUserMenuState)\n\n const client = getClient()\n const themeClient = getThemeClient()\n\n const contentTitleStyle: ViewStyle = {\n alignItems: 'flex-start'\n }\n\n if (!isMobile || (client?.codCliente === ADMIN_CODE)) {\n contentTitleStyle.alignItems = 'center'\n }\n\n const ContentTitle: React.FC = () => (\n \n \n navigation.navigate(NavigationRoute.Home)}\n style={{\n ...styles.title,\n ...(isMobile && { fontSize: 18 })\n }}\n variant='h6'\n >\n Portal do Cliente\n \n \n }\n style={ contentTitleStyle }\n />\n )\n\n return (\n \n }\n onPress={() => navigation.toggleDrawer()}\n isLeading\n color={themeClient.menuColor}\n />\n \n setOpenUserMenu(true)}\n disabled={!client}\n icon={props => }\n />\n \n )\n}\n\nconst styles = StyleSheet.create({\n appBar: {\n minHeight: APP_BAR_HEIGTH\n },\n logoArea: {\n display: 'flex',\n alignItems: 'center',\n flexDirection: 'row'\n },\n title: {\n color: '#FFF',\n flex: 1\n }\n})\n","import * as React from 'react'\nimport { useTheme, useThemeClient } from '@/presentation/hooks'\nimport { Image, ImageBackground, StyleSheet } from 'react-native'\nimport { Box, Text } from '@react-native-material/core'\nimport Slider from '@react-native-community/slider'\n\ntype ConfigSliderProps = {\n maximunValue: number\n minimunValue: number\n heightValue?: number\n opacityValue?: number\n isBackgroundImage?: boolean\n}\n\nconst image = { uri: require('../../../../assets/fundo.png') }\n\nexport function ConfigSlider ({ minimunValue, maximunValue, heightValue, opacityValue, isBackgroundImage = false }: ConfigSliderProps): JSX.Element {\n const { getThemeClient } = useThemeClient()\n const [logoHeight, setLogoHeight] = React.useState(isBackgroundImage ? 0.12 : minimunValue)\n const theme = useTheme()\n const themeClient = getThemeClient()\n\n return (\n \n \n {isBackgroundImage ? 'Opacidade:' : 'Tamanho:'}\n {logoHeight.toFixed(2)}\n \n \n {\n isBackgroundImage\n ? \n : \n }\n \n setLogoHeight(event)}\n minimumTrackTintColor={theme.colors.primary}\n maximumTrackTintColor={theme.colors.primary_32}\n thumbTintColor={theme.colors.primary}\n />\n \n )\n}\n\nconst styles = StyleSheet.create({\n container: {\n position: 'relative'\n },\n themeContainer: {\n height: 200,\n width: '100%',\n display: 'flex',\n alignItems: 'center',\n justifyContent: 'center',\n borderRadius: 4\n },\n image: {\n flex: 1,\n justifyContent: 'center',\n alignSelf: 'stretch'\n },\n text: {\n color: '#FFFF'\n },\n titleArea: {\n width: 'calc(100% - 16px)',\n position: 'absolute',\n top: 8,\n right: 8,\n left: 8,\n zIndex: 1000,\n display: 'flex',\n flexDirection: 'row',\n justifyContent: 'space-between'\n }\n})\n","import { StyleSheet } from 'react-native'\n\nexport const styles = StyleSheet.create({\n container: {\n display: 'flex',\n alignItems: 'center',\n justifyContent: 'center',\n width: '100%',\n height: '95%',\n minHeight: '60vh'\n },\n content: {\n display: 'flex',\n alignItems: 'center',\n justifyContent: 'center'\n },\n title: {\n flex: 1,\n marginTop: '16px'\n }\n})\n","import React from 'react'\nimport { MaterialCommunityIcons } from '@expo/vector-icons'\nimport { Text } from '@react-native-material/core'\nimport { useMediaQueries, useTheme } from '@/presentation/hooks'\nimport { Box } from '@/presentation/components'\nimport { styles } from './styles'\n\ntype EmptyListProps = {\n text?: string\n}\n\nexport const EmptyList: React.FC = ({\n text = 'Não há dados para exibir'\n}) => {\n const theme = useTheme()\n const { isMobile } = useMediaQueries()\n\n return (\n \n \n \n \n {text}\n \n \n \n )\n}\n","import React from 'react'\nimport AntDesignIcon from '@expo/vector-icons/AntDesign'\nimport { useMediaQueries, useTheme, useThemeClient } from '@/presentation/hooks'\nimport { HStack, Text, Button } from '@/presentation/components'\n\ntype PageHeaderProps = {\n text: string\n icon: React.ReactNode\n children?: React.ReactNode\n openFilters?: () => void\n}\n\nexport const PageHeader: React.FC = ({\n text,\n children,\n icon,\n openFilters\n}) => {\n const theme = useTheme()\n const { isMobile } = useMediaQueries()\n const { getThemeClient } = useThemeClient()\n\n const themeClient = getThemeClient()\n\n return (\n \n \n {icon}\n {text}\n \n {children}\n {openFilters &&\n }\n color={themeClient.mainColor}\n onPress={openFilters}\n />\n }\n \n )\n}\n","import React from 'react'\n\ntype PixIconProps = {\n color: string\n height?: number\n}\n\nexport const PixIcon: React.FC = ({ color, height = 24 }) => {\n return (\n \n \n \n )\n}\n","import React from 'react'\nimport { StyleSheet } from 'react-native'\nimport { Divider } from '@react-native-material/core'\nimport { Box } from '@/presentation/components'\n\ntype FooterProps = {\n children: JSX.Element\n}\n\nexport const Footer: React.FC = ({ children }) => {\n return (\n \n \n {children}\n \n )\n}\n\nconst styles = StyleSheet.create({\n container: {\n height: 60,\n backgroundColor: '#FFF',\n marginRight: 16,\n marginLeft: 16\n }\n})\n","import { useTheme } from '@/presentation/hooks'\nimport * as React from 'react'\nimport { Menu } from 'react-native-paper'\n\ntype MenuActionsProps = {\n children: JSX.Element | JSX.Element[]\n onDismiss: () => void\n anchor: React.ReactNode\n visible: boolean\n}\n\nexport const MenuActions: React.FC = ({ children, onDismiss, anchor, visible }) => {\n const theme = useTheme()\n\n return (\n \n {children}\n \n )\n}\n","import React from 'react'\nimport { MaterialIcons } from '@expo/vector-icons'\nimport { HStack, Text } from '@/presentation/components'\nimport { useTheme } from '@/presentation/hooks'\n\nexport type MessageBlockStatus = 'info' | 'success' | 'error' | 'warning' | undefined\n\ntype LogoutProps = {\n status?: MessageBlockStatus\n message: string\n}\n\nexport const MessageBlock: React.FC = ({\n status = 'info',\n message\n}) => {\n const theme = useTheme()\n\n const colorStatusStyle = {\n info: theme.colors.info,\n success: theme.colors.success,\n error: theme.colors.error,\n warning: theme.colors.secondary\n }[status]\n\n const colorContainerStatusStyle = {\n info: theme.colors.infoContainer,\n success: theme.colors.successContainer,\n error: theme.colors.errorContainer,\n warning: theme.colors.secondaryContainer\n }[status]\n\n return (\n \n \n \n {message}\n \n \n )\n}\n","import React from 'react'\nimport { StyleSheet } from 'react-native'\nimport { Box, Modal } from '@/presentation/components'\nimport { useMediaQueries } from '@/presentation/hooks'\n\ntype ModalBaseProps = {\n visible: boolean\n children: React.ReactNode | React.ReactNode[]\n onClose?: () => void\n maxWidth?: number\n maxHeight?: number | string\n}\n\nexport const MARGIN_MODALS = 30\n\nexport const ModalBase: React.FC = ({ visible, onClose, children }) => {\n const { isMobile, width, height } = useMediaQueries()\n\n return (\n \n \n {children}\n \n \n )\n}\n\nconst styles = StyleSheet.create({\n modalContainer: {\n width: '100%',\n backgroundColor: 'white',\n borderRadius: 4,\n padding: 32,\n alignItems: 'stretch'\n }\n})\n","import React, { useState, useCallback } from 'react'\nimport { StyleSheet } from 'react-native'\nimport { Card } from 'react-native-paper'\nimport { MaterialCommunityIcons } from '@expo/vector-icons'\nimport { useMediaQueries, useTheme, useThemeClient } from '@/presentation/hooks'\nimport { Button, HStack, IconButton } from '@/presentation/components'\n\nexport const NotificationButton: React.FC = () => {\n const theme = useTheme()\n const { isMobile } = useMediaQueries()\n const { getThemeClient } = useThemeClient()\n const [isOpen, setOpen] = useState(window.Notification?.permission !== 'granted' ?? true)\n\n const themeClient = getThemeClient()\n\n const handleActiveNotifications = useCallback((): void => {\n void Notification.requestPermission().then(permission => {\n console.log(permission)\n if (permission === 'granted') {\n console.log('Permissão de notificação concedida.')\n } else if (permission === 'denied') {\n console.log('Permissão de notificação negada.')\n }\n })\n }, [])\n\n const handleCloseButton = (): void => setOpen(false)\n\n const containerMobile = {\n right: 60,\n top: 12,\n minWidth: '70%'\n }\n\n const container = {\n right: 60,\n top: 24\n }\n\n return (\n \n \n \n \n }\n />\n \n \n )\n}\n\nconst styles = StyleSheet.create({\n cardContainer: {\n position: 'absolute',\n padding: 8,\n borderRadius: 4\n }\n})\n","import React, { useCallback, useEffect } from 'react'\nimport { StyleSheet } from 'react-native'\nimport { useRecoilState, useRecoilValue, useSetRecoilState } from 'recoil'\nimport { makeLoginFactory } from '@/main/factories/pages'\nimport { makeDateAdapterFactory } from '@/main/adapters'\nimport { makeMetricsLogoff } from '@/main/factories/usecases'\nimport { GetRedesSociais, GetTheme, PortalLogout, GetProspectConfigs, UpdatePassword, MetricsLogoff } from '@/domain/usecases'\nimport { DateAdapter } from '@/data/protocols'\nimport { JwtAdapter } from '@/infra/adapters'\nimport { useAuth, useNotify, useProspectSettings, useTheme, useThemeClient } from '@/presentation/hooks'\nimport { Button, InstallationSuggestion, Logout, NavigationDrawer, PhoneModal, SnackBarProvider, Snackbar, UpdatePasswordC, authenticationState, errorAuthState, phoneModalNumberState, socialMediaState } from '@/presentation/components'\nimport { version } from '../../../../package.json'\n\ntype RouterProps = {\n getTheme: GetTheme\n getRedesSociais: GetRedesSociais\n getProspectConfigs: GetProspectConfigs\n portalLogout: PortalLogout\n updatePassword: UpdatePassword\n dateAdapter: DateAdapter\n jwtAdapter: JwtAdapter\n}\n\nconst EMMITERS_AUTHORIZED = [\n 'http://integraservice.insidesistemas.com.br',\n 'https://login.insidesistemas.com.br/api/v1/'\n]\n\nconst ROLES_AUTHORIZED = [\n 'Portal',\n 'Service'\n]\n\nconst Router: React.FC = ({\n portalLogout,\n getTheme,\n getRedesSociais,\n getProspectConfigs,\n updatePassword,\n dateAdapter,\n jwtAdapter\n}) => {\n const theme = useTheme()\n const notify = useNotify()\n const { logout, getCurrentClient } = useAuth()\n const { setThemeClient } = useThemeClient()\n const { startConfig } = useProspectSettings()\n const { accessToken } = useRecoilValue(authenticationState)\n const [error, setError] = useRecoilState(errorAuthState)\n const setSocialMedia = useSetRecoilState(socialMediaState)\n const setPhoneModal = useSetRecoilState(phoneModalNumberState)\n\n const codCliente = getCurrentClient()\n\n useEffect(() => {\n getTheme\n .get()\n .then(setThemeClient)\n .catch(console.error)\n\n getRedesSociais\n .getRedesSociais()\n .then((socialMedias) => {\n setSocialMedia(socialMedias)\n setPhoneModal(socialMedias.phone)\n }\n )\n .catch(console.error)\n\n getProspectConfigs\n .getAll()\n .then(startConfig)\n .catch(console.error)\n }, [])\n\n const isValidLogin = useCallback((): boolean => {\n const today = dateAdapter.today()\n const expireDate = new Date(0)\n\n if (!accessToken?.access_token) {\n return false\n }\n\n const auth = jwtAdapter.decode(accessToken?.access_token)\n if (!auth || !EMMITERS_AUTHORIZED.includes(auth.iss)) {\n notify.error('Token inválido, faça o login novamente!')\n logout()\n return false\n }\n\n const roles = auth['integraservice-webapi'] || auth['portal-service']\n if (typeof roles === 'string') {\n if (!ROLES_AUTHORIZED.includes(roles)) {\n notify.error('Token inválido, faça o login novamente!')\n logout()\n return false\n }\n } else {\n if ((roles as []).every(role => !ROLES_AUTHORIZED.includes(role))) {\n notify.error('Token inválido, faça o login novamente!')\n logout()\n return false\n }\n }\n\n expireDate.setUTCSeconds(auth.exp)\n const isExpired = today > expireDate\n\n if (isExpired) {\n notify.error('Sessão Expirada, faça o login novamente!')\n logout()\n if (codCliente) {\n void portalLogout\n .logout({ cliente: parseInt(codCliente), version })\n .catch(console.error)\n }\n\n return false\n }\n\n return true\n }, [accessToken])\n\n const styles = StyleSheet.create({\n container: {\n position: 'absolute',\n width: '100%',\n height: 'fit-content',\n zIndex: 5,\n paddingTop: 12,\n paddingHorizontal: 24,\n top: 60\n }\n })\n\n const containerStyles = {\n info: {},\n success: {\n backgroundColor: theme.colors.success,\n color: theme.colors.white\n },\n error: {\n backgroundColor: theme.colors.error,\n color: theme.colors.white\n }\n }\n\n return (\n <>\n {!!error.length &&\n setError('')}\n compact\n />\n }\n style={{\n ...containerStyles,\n ...styles.container,\n display: error.length ? 'flex' : 'none'\n }}\n />\n }\n \n \n \n \n {isValidLogin()\n ? \n : makeLoginFactory()\n }\n \n \n )\n}\n\nexport default Router\n","import React from 'react'\nimport { Login } from '@/presentation/pages/Login'\nimport { makeAuthentication, makeGetUser, makeForgotPassword, makeAuthenticationAdmin, makeProspectRegistration } from '@/main/factories/usecases'\n\nexport const makeLoginFactory = (): JSX.Element => {\n return (\n \n )\n}\n","import React from 'react'\nimport { Linking, Platform } from 'react-native'\nimport { FontAwesome5 as Icon } from '@expo/vector-icons'\nimport { RedesSociaisModel } from '@/domain/models'\nimport { useMediaQueries, useTheme } from '@/presentation/hooks'\nimport { IconButton, HStack, phoneModalNumberState, phoneModalState } from '@/presentation/components'\nimport { useSetRecoilState } from 'recoil'\n\ntype SocialMidiasProps = {\n socialMidias: RedesSociaisModel\n color?: string\n size?: number\n}\n\nexport const SocialMidias: React.FC = ({ socialMidias, color, size }) => {\n const { isMobile } = useMediaQueries()\n const theme = useTheme()\n const setModalOpen = useSetRecoilState(phoneModalState)\n const setModalNumber = useSetRecoilState(phoneModalNumberState)\n\n const handleOpenModal = (): void => {\n setModalOpen(true)\n }\n\n const callNumber = (phone: string): void => {\n let phoneNumber = phone.replace(' ', '')\n if (!['android', 'web'].includes(Platform.OS)) {\n phoneNumber = `telprompt:${phone}`\n setModalNumber(phoneNumber)\n } else {\n phoneNumber = `tel:${phone}`\n setModalNumber(phoneNumber)\n }\n\n if (isMobile) {\n Linking.canOpenURL(phoneNumber)\n .then(async (supported: boolean) => {\n if (!supported) {\n console.error('não suportado')\n } else {\n return await Linking.openURL(phoneNumber)\n }\n })\n .catch(err => console.log(err))\n } else {\n handleOpenModal()\n }\n }\n\n const handleClick = (key: keyof RedesSociaisModel): void => {\n if (key === 'phone') {\n callNumber(socialMidias[key])\n } else if (key === 'whatsapp') {\n void Linking.canOpenURL(`whatsapp://send?phone=55${socialMidias[key].replace(/[\\s-]/g, '')}, '')}`)\n .then(async () => {\n window.open(`https://api.whatsapp.com/send?phone=55${socialMidias[key].replace(/[\\s-]/g, '')}`)\n })\n } else {\n void Linking.canOpenURL(socialMidias[key])\n .then(async () => await Linking.openURL(socialMidias[key]))\n }\n }\n\n return (\n \n {Object.keys(socialMidias).map((props: keyof RedesSociaisModel, index) => (\n !!socialMidias[props] &&\n (}\n onPress={() => handleClick(props)}\n />)\n ))}\n \n )\n}\n","import { atom } from 'recoil'\nimport { RedesSociaisModel } from '@/domain/models'\n\nexport const socialMediaState = atom({\n key: 'socialMediaState',\n default: {} as RedesSociaisModel\n})\n","import * as React from 'react'\nimport { GestureResponderEvent, Animated, StyleSheet } from 'react-native'\nimport { useTheme, useNotify } from '@/presentation/hooks'\nimport { Button, Snackbar } from '@/presentation/components'\n\nexport type SnackBarProps = {\n id: string\n message: string\n variant?: 'success' | 'error' | 'info'\n duration?: number\n delay?: number\n}\n\nconst animateView = (toValue: number, animatedRef: Animated.Value, duration: number, delay?: number): Animated.CompositeAnimation => {\n return Animated.timing(\n animatedRef,\n {\n toValue,\n duration,\n delay,\n useNativeDriver: true\n }\n )\n}\n\nexport function SnackBar ({\n id,\n message,\n variant = 'info'\n}: SnackBarProps): JSX.Element {\n const theme = useTheme()\n const fadeAnime = React.useRef(new Animated.Value(0)).current\n const [isOpen, setOpen] = React.useState(true)\n const notify = useNotify()\n\n React.useEffect(() => {\n const initAnimations = [animateView(1, fadeAnime, 500)]\n Animated.sequence(initAnimations).start()\n }, [])\n\n const handleClose = (event: GestureResponderEvent): void => {\n event.preventDefault()\n Animated.sequence([\n animateView(0, fadeAnime, 300)\n ]).start(() => {\n setOpen(false)\n notify.dimiss(id)\n })\n }\n\n const containerStyles = {\n info: {},\n success: {\n backgroundColor: theme.colors.success,\n color: theme.colors.white\n },\n error: {\n backgroundColor: theme.colors.error,\n color: theme.colors.white\n }\n }[variant]\n\n return (\n \n }\n style={{\n ...containerStyles,\n ...styles.container,\n opacity: fadeAnime,\n display: isOpen ? 'flex' : 'none'\n }}\n />\n )\n}\n\nconst styles = StyleSheet.create({\n container: {\n zIndex: 2,\n marginTop: 8\n }\n})\n","import * as React from 'react'\nimport { StyleSheet } from 'react-native'\nimport { useRecoilValue } from 'recoil'\nimport { SnackBar, snackBarProviderState, Box } from '@/presentation/components'\n\nexport function SnackBarProvider (): JSX.Element {\n const messages = useRecoilValue(snackBarProviderState)\n\n return (\n \n {messages?.map(notify => (\n \n ))}\n \n )\n}\n\nconst styles = StyleSheet.create({\n container: {\n position: 'absolute',\n width: '100%',\n height: 'fit-content',\n zIndex: 5,\n paddingTop: 12,\n paddingHorizontal: 24,\n top: 60\n }\n})\n","import { StyleSheet } from 'react-native'\n\nexport const styles = StyleSheet.create({\n container: {\n width: '100%',\n flexDirection: 'row',\n position: 'absolute',\n zIndex: 1,\n top: 0,\n right: 0,\n overflow: 'hidden',\n display: 'flex'\n },\n modalContainer: {\n backgroundColor: 'white',\n borderRadius: 4\n },\n hidden: {\n display: 'none'\n },\n content: {\n width: '100%',\n backgroundColor: '#FFF'\n },\n title: {\n margin: 12,\n fontSize: 20,\n fontWeight: '500'\n },\n subtitle: {\n marginLeft: 4,\n marginTop: 16,\n marginBottom: 8,\n fontSize: 16,\n fontWeight: '500'\n },\n filters: {\n flex: 1,\n margin: 16\n },\n closeButton: {\n position: 'absolute',\n top: 0,\n right: 12,\n width: 36,\n height: 36\n },\n actionsContent: {\n marginVertical: 8,\n marginRight: 16,\n display: 'flex',\n flexDirection: 'row',\n alignItems: 'center',\n justifyContent: 'flex-end'\n },\n btnAction: {\n backgroundColor: 'none',\n textTransform: 'uppercase',\n fontSize: 12\n },\n inputDatePicker: {\n width: '100%',\n marginTop: 8\n }\n})\n","import * as React from 'react'\nimport { Box, Text, Divider, HStack, Modal, Button, TAB_BOTTOM_CONTAINER_HEIGTH } from '@/presentation/components'\nimport { useMediaQueries, useTheme } from '@/presentation/hooks'\nimport { GestureResponderEvent } from 'react-native'\nimport { styles } from './styles'\n\ntype SideFilterDrawerProps = {\n open: boolean\n loading: boolean\n onSubmit: (event: GestureResponderEvent) => void\n onClose: () => void\n resetState: () => void\n children: JSX.Element | JSX.Element[]\n}\n\nexport const MARGIN_MODALS = 30\n\nexport const Drawer: React.FC = ({ open, onSubmit, onClose, children, loading, resetState }) => {\n const theme = useTheme()\n const { isMobile, appBarHeight, width } = useMediaQueries()\n\n const containerStyles = {\n ...styles.modalContainer,\n maxWidth: isMobile ? width - MARGIN_MODALS : 600,\n ...(isMobile\n ? { height: `calc(100vh - ${(appBarHeight + TAB_BOTTOM_CONTAINER_HEIGTH)}px)` }\n : { height: `calc(100vh - ${(appBarHeight + 18)}px)` }),\n ...styles.container,\n padding: isMobile ? 8 : 32,\n margin: isMobile ? 15 : 67\n }\n\n const contentStyles = {\n ...styles.content,\n minWidth: width < 600 ? 'fit-content' : 264\n }\n\n const titleStyles = {\n ...styles.title,\n color: theme.colors.texts\n }\n\n const btnLimparStyles = {\n ...styles.btnAction,\n color: theme.colors.textsLight\n }\n\n return (\n \n \n \n Filtros\n \n \n \n {children}\n \n \n \n \n \n \n \n \n \n \n \n \n )\n}\n\ntype TitleProps = {\n title: string\n}\n\nexport const Title: React.FC = ({ title }) => {\n return (\n {title}\n )\n}\n","import { StyleSheet } from 'react-native'\n\nexport const styles = StyleSheet.create({\n container: {\n maxHeight: 400,\n display: 'flex',\n flexDirection: 'row',\n justifyContent: 'space-between',\n flexWrap: 'wrap'\n },\n buttonArea: {\n display: 'flex',\n flexDirection: 'row',\n justifyContent: 'flex-end',\n gap: 8\n },\n buttons: {\n maxWidth: 250,\n marginBottom: 10,\n padding: 3\n }\n})\n","import React from 'react'\nimport { IconButton } from 'react-native-paper'\nimport { TextInputProps } from '@react-native-material/core'\nimport { Box, Button, ModalBase, Text, TextInput } from '@/presentation/components'\nimport { useMediaQueries, useTheme, useThemeClient } from '@/presentation/hooks'\nimport { styles } from './styles'\n\ntype SelectItem = {\n id: number\n descricao: string\n isSelected: boolean\n data?: any\n}\n\nexport type SelectModalProps = {\n title: string\n items: SelectItem[]\n onSelect: (id: number, data: any) => void\n onClose: () => void\n isOpen: boolean\n}\n\nexport const Modal: React.FC = ({\n title,\n isOpen,\n items,\n onSelect,\n onClose\n}) => {\n const theme = useTheme()\n const { getThemeClient } = useThemeClient()\n const { isMobile } = useMediaQueries()\n\n const themeClient = getThemeClient()\n\n const handleSelect = (id: number, data: any): void => {\n onSelect(id, data)\n onClose()\n }\n\n return (\n \n {title}\n \n {items?.map((item) => (\n handleSelect(item.id, item.data)}\n style={styles.buttons}\n />\n ))}\n \n \n \n \n \n )\n}\n\ntype SelectTriggerProps = {\n label: string\n onOpen: () => void\n description: string\n} & TextInputProps\n\nexport const Trigger: React.FC = ({\n label,\n onOpen,\n description,\n ...TextInputProps\n}) => {\n const { getThemeClient } = useThemeClient()\n\n const themeClient = getThemeClient()\n\n return (\n \n \n }\n {...TextInputProps}\n />\n )\n}\n","import React, { useEffect } from 'react'\nimport { StyleSheet } from 'react-native'\nimport { AntDesign } from '@expo/vector-icons'\nimport { IconButton } from 'react-native-paper'\nimport { useThemeClient } from '@/presentation/hooks'\n\ntype ScrollToTopButtonProps = {\n scrollToTop: () => void\n targetRef: any\n}\n\nexport const ScrollToTopButton: React.FC = ({ scrollToTop, targetRef }) => {\n const { getThemeClient } = useThemeClient()\n\n const themeClient = getThemeClient()\n\n useEffect(() => {\n const options = {\n root: null,\n rootMargin: '60px',\n threshold: 0.25\n }\n\n const observer = new IntersectionObserver(handleIntersection, options)\n\n if (targetRef.current) {\n observer.observe(targetRef.current)\n }\n\n return () => {\n if (targetRef.current) {\n observer.unobserve(targetRef.current)\n }\n }\n }, [])\n\n const handleIntersection = (entries: any): void => {}\n\n return (\n }\n />\n )\n}\n\nconst styles = StyleSheet.create({\n container: {\n shadowColor: 'rgba(0, 0, 0, 0.04)',\n shadowOffset: {\n width: 4,\n height: 8\n },\n shadowRadius: 4\n }\n})\n","import { StyleSheet } from 'react-native'\nimport { StyleProps } from 'react-native-reanimated'\n\nexport const styles = StyleSheet.create({\n input: {\n outlineWidth: 0\n }\n})\n","import { TextInput as Input, TextInputProps } from '@react-native-material/core'\nimport React from 'react'\nimport { styles } from './styles'\nimport { useTheme } from '@/presentation/hooks'\n\nexport const TextInput: React.FC = (props: TextInputProps) => {\n const theme = useTheme()\n\n return (\n \n )\n}\n","import { StyleSheet } from 'react-native'\n\nexport const styles = StyleSheet.create({\n container: {\n display: 'flex',\n gap: 18\n },\n userTitle: {\n fontWeight: '500',\n textAlign: 'center'\n },\n itemMenu: {\n fontSize: 14\n }\n})\n","import React, { useCallback } from 'react'\nimport { useRecoilState, useSetRecoilState } from 'recoil'\nimport { MaterialCommunityIcons } from '@expo/vector-icons'\nimport { ADMIN_CODE, useAuth } from '@/presentation/hooks'\nimport { Box, Text, ModalBase, isOpenUserMenuState, VStack, Divider, Menu, isOpenLogoutState, isOpenUpdatePasswordState } from '@/presentation/components'\nimport { styles } from './styles'\n\nexport const UserMenu: React.FC = () => {\n const { getClient } = useAuth()\n const [isOpen, setOpen] = useRecoilState(isOpenUserMenuState)\n const setOpenLogout = useSetRecoilState(isOpenLogoutState)\n const setOpenUpdatePassword = useSetRecoilState(isOpenUpdatePasswordState)\n\n const client = getClient()\n\n const handleClose = (): void => setOpen(false)\n\n const handleOpenUpdatePassword = useCallback((): void => {\n handleClose()\n setOpenUpdatePassword(true)\n }, [])\n\n const handleOnLogout = useCallback((): void => {\n handleClose()\n setOpenLogout(true)\n }, [])\n\n return (\n \n \n \n {client?.nomeCliente}\n {client?.cpfCnpj}\n \n \n {client?.codCliente !== ADMIN_CODE &&\n }\n />\n }\n }\n />\n \n \n )\n}\n","import { atom } from 'recoil'\n\nexport const isOpenUserMenuState = atom({\n key: 'isOpenUserMenuState',\n default: false\n})\n","import { UpdatePasswordParams } from '@/domain/usecases'\nimport { atom } from 'recoil'\n\nexport const isOpenUpdatePasswordState = atom({\n key: 'isOpenUpdatePasswordState',\n default: false\n})\n\nexport type UpdateSettingsStateProps = UpdatePasswordParams & {\n isLoading: boolean\n confirmacaoSenha: string\n}\n\nexport const updateSettingsState = atom({\n key: 'updateSettingsState',\n default: {\n isLoading: false,\n cliente: 0,\n senhaAtual: '',\n novaSenha: '',\n confirmacaoSenha: ''\n }\n})\n\n","import { StyleSheet } from 'react-native'\n\nexport const styles = StyleSheet.create({\n container: {\n display: 'flex',\n gap: 18\n },\n buttonArea: {\n display: 'flex',\n flexDirection: 'row',\n justifyContent: 'flex-end',\n gap: 8\n }\n})\n","import React from 'react'\nimport { useRecoilState } from 'recoil'\nimport { GestureResponderEvent } from 'react-native'\nimport { UpdatePassword, UpdatePasswordParams } from '@/domain/usecases'\nimport { useAuth, useErrorHandler, useNotify, useTheme } from '@/presentation/hooks'\nimport { Box, Button, ModalBase, Text, TextInput } from '@/presentation/components'\nimport { UpdateSettingsStateProps, isOpenUpdatePasswordState, updateSettingsState } from './atom'\nimport { styles } from './styles'\n\ntype UpdatePasswordProps = {\n updatePassword: UpdatePassword\n}\n\nexport const UpdatePasswordC: React.FC = ({ updatePassword }) => {\n const theme = useTheme()\n const notify = useNotify()\n const { getClient } = useAuth()\n const handleError = useErrorHandler()\n const [state, setState] = useRecoilState(updateSettingsState)\n const [isOpen, setOpen] = useRecoilState(isOpenUpdatePasswordState)\n\n const client = getClient()\n const isSamePassword = state.novaSenha &&\n state.confirmacaoSenha &&\n state.novaSenha === state.confirmacaoSenha\n\n const handleUpdatePassword = (event: GestureResponderEvent): void => {\n event.preventDefault()\n setState(currentState => ({ ...currentState, isLoading: true }))\n\n const updatePasswordParams: UpdatePasswordParams = {\n cliente: client.codCliente,\n senhaAtual: state.senhaAtual,\n novaSenha: state.novaSenha,\n confirmacaoSenha: state.confirmacaoSenha\n }\n\n updatePassword\n .update(updatePasswordParams)\n .then(() => notify.show('Senha alterada, a nova senha foi gravada com sucesso'))\n .catch(handleError)\n .finally(() => {\n handleClose()\n setState(currentState => ({ ...currentState, isLoading: false }))\n })\n }\n\n const handleChangeInput = (name: keyof UpdateSettingsStateProps, value: string): void => {\n setState(currentValues => ({ ...currentValues, [name]: value }))\n }\n\n const handleClose = (): void => {\n setOpen(false)\n handleReset()\n }\n\n const handleReset = (): void => {\n setState(currentValues => ({\n ...currentValues,\n senhaAtual: '',\n novaSenha: '',\n confirmacaoSenha: ''\n }))\n }\n\n return (\n \n \n Alterar senha\n\n handleChangeInput('senhaAtual', text)}\n value={state.senhaAtual}\n secureTextEntry\n maxLength={30}\n />\n handleChangeInput('novaSenha', text)}\n value={state.novaSenha}\n maxLength={30}\n />\n handleChangeInput('confirmacaoSenha', text)}\n value={state.confirmacaoSenha}\n maxLength={30}\n />\n\n \n \n \n \n \n \n )\n}\n","import React from 'react'\nimport { StyleSheet } from 'react-native'\nimport { AntDesign } from '@expo/vector-icons'\nimport { NavigationRoute } from '@/main/config/router-navigation'\nimport { useMediaQueries, useTheme, useThemeClient } from '@/presentation/hooks'\nimport { Box, HStack, IconButton, NavigationPagesProps } from '@/presentation/components'\n\ntype TabNavigatorProps = NavigationPagesProps & {\n variant?: 'light' | 'theme'\n}\n\nexport const TAB_BOTTOM_CONTAINER_HEIGTH = 64\n\nexport const TabBottomNavigator: React.FC = ({ navigation, variant = 'light' }) => {\n const theme = useTheme()\n const { isMobile } = useMediaQueries()\n const { getThemeClient } = useThemeClient()\n\n const themeClient = getThemeClient()\n const handleGoHome = (): void => navigation.navigate(NavigationRoute.Home)\n\n const colorsVariant = {\n light: {\n containerColor: theme.colors.white,\n containerIconColor: themeClient.mainColor,\n iconColor: themeClient.menuColor\n },\n theme: {\n containerColor: themeClient.mainColor,\n containerIconColor: 'transparent',\n iconColor: themeClient.menuColor\n }\n }[variant]\n\n return (\n \n \n }\n />\n \n \n )\n}\n\nconst styles = StyleSheet.create({\n cardContainer: {\n position: 'absolute',\n left: 0,\n bottom: 0,\n padding: 8,\n width: '100%'\n }\n})\n","import env from '@/main/config/env'\n\nexport default (function (c, l, a, r, i, t, y) {\n c[a] = c[a] || function () { (c[a].q = c[a].q || []).push(arguments) }\n t = l.createElement(r)\n t.async = 1\n t.src = 'https://www.clarity.ms/tag/' + i\n y = l.getElementsByTagName(r)[0]; y.parentNode.insertBefore(t, y)\n})(window, document, 'clarity', 'script', env.CLARITY_KEY)\n","import React from 'react'\nimport { TimePickerModal } from 'react-native-paper-dates'\n\nexport type ReactNativePaperTimePros = {\n hours: number\n minutes: number\n}\n\ntype TimePickerProps = {\n label: string\n time: ReactNativePaperTimePros\n onConfirm: (time: ReactNativePaperTimePros) => void\n onDimiss: () => void\n visible: boolean\n}\n\nexport const TimePicker: React.FC = ({\n label,\n time,\n onConfirm,\n onDimiss,\n visible\n}) => {\n return (\n <>\n \n \n )\n}\n","import React from 'react'\nimport { StyleSheet } from 'react-native'\nimport { Stack } from '@/presentation/components'\nimport { useMediaQueries } from '@/presentation/hooks'\n\ntype CardRowProps = {\n children: React.ReactNode\n}\n\nexport const CardRow: React.FC = ({ children }) => {\n const { isMobile } = useMediaQueries()\n\n return (\n \n {children}\n \n )\n}\n\nconst styles = StyleSheet.create({\n container: {\n flexDirection: 'row',\n justifyContent: 'space-between',\n flexWrap: 'wrap',\n width: '100%',\n gap: 16,\n marginBottom: 10\n }\n})\n","import * as React from 'react'\nimport { CardBase } from '@/presentation/components'\n\ntype CardDetailsProps = {\n children: any\n maxWidth?: number | string\n minWidth?: number | string\n}\n\nexport const CardDetails: React.FC = ({ children, maxWidth, minWidth }: CardDetailsProps) => {\n return (\n \n {children}\n \n )\n}\n","import { atom } from 'recoil'\n\nexport const phoneModalState = atom({\n key: 'phoneModalState',\n default: false\n})\n\nexport const phoneModalNumberState = atom({\n key: 'phoneModalNumberState',\n default: ''\n})\n","import React from 'react'\nimport { useRecoilState, useRecoilValue } from 'recoil'\nimport { phoneModalNumberState, phoneModalState } from './atom'\nimport { ModalBase, Text } from '@/presentation/components'\n\nexport const PhoneModal: React.FC = () => {\n const [modalIsOpen, setModalOpen] = useRecoilState(phoneModalState)\n const phoneNumber = useRecoilValue(phoneModalNumberState)\n\n const treatedPhoneNumber = phoneNumber.replace(/[^0-9.-]/g, '')\n\n const handleCloseModal = (): void => {\n setModalOpen(false)\n }\n\n return (\n \n Contato\n {`Fale conosco através do fone: ${treatedPhoneNumber}`}\n \n )\n}\n","import React from 'react'\nimport { RecoilRoot } from 'recoil'\nimport { Provider as PaperProvider } from 'react-native-paper'\nimport { pt, registerTranslation } from 'react-native-paper-dates'\nimport { makeDateAdapterFactory, makeJwtAdapterFactory } from '@/main/adapters'\nimport { theme } from '@/presentation/styles'\nimport { Router, InstallButton, UserMenu } from '@/presentation/components'\nimport { makeGetRedesSociais, makeGetTheme, makePortalLogout, makeGetProspectConfigs, makeUpdatePassword } from '@/main/factories/usecases'\nimport '@/main/config/clarity'\n\nregisterTranslation('pt-BR', pt)\nexport default function App (): JSX.Element {\n const isHttps = window.location.protocol === 'https:'\n\n return (\n \n \n \n {isHttps && }\n \n \n \n )\n}\n","import registerRootComponent from 'expo/build/launch/registerRootComponent'\n\nimport App from './App'\n\nregisterRootComponent(App)\n"],"sourceRoot":""}