{"version":3,"sources":["redux/reducers/auth/index.js","utility/context/IntlGlobalProvider.js","redux/types/auth/index.js","utility/http/constants.ts","utility/http/http-axios.ts","utility/http/http-webtrack.ts","redux/utils/alerts-interceptors/index.tsx","utility/http/http-events.ts","utility/http/interceptors/loading-overlay-interceptor.ts","utility/http/interceptors/auth-token-interceptor.tsx","utility/http/interceptors/configure-interceptors.ts","views/screens/Units/types/index.tsx","redux/utils/alerts/index.tsx","redux/sagas/settings/apibaseurl.js","utility/icomoon/index.js","redux/reducers/layout/index.js","navigation/outside-sidebar/index.js","redux/reducers/navbar/index.js","redux/reducers/static-catalogs/index.tsx","redux/reducers/index.ts","views/screens/Agents/schemas/index.tsx","views/screens/Agents/sagas/index.tsx","views/screens/Divisions/schemas/index.tsx","views/screens/Divisions/sagas/index.tsx","views/screens/Entities/schemas/index.tsx","redux/actions/static-catalogs/countries/index.tsx","views/screens/Entities/sagas/index.tsx","views/screens/Geofences/schemas/index.tsx","views/screens/Geofences/sagas/index.tsx","views/screens/Modules/schemas/index.tsx","views/screens/Modules/sagas/index.tsx","views/screens/Operators/schemas/index.tsx","views/screens/Contacts/schemas/index.ts","views/screens/Operators/sagas/index.tsx","views/screens/Organizations/schemas/index.tsx","views/screens/Organizations/sagas/index.tsx","views/screens/ServiceClasses/schemas/index.tsx","views/screens/ServiceClasses/sagas/index.tsx","views/screens/Subdivisions/schemas/index.tsx","views/screens/Subdivisions/sagas/index.tsx","views/screens/Units/schemas/index.tsx","views/screens/Units/schemas/deviceMetrics/index.tsx","views/screens/Units/schemas/deviceActions/index.tsx","views/screens/Units/schemas/groups/index.tsx","views/screens/Units/schemas/reports/index.tsx","views/screens/Units/schemas/images/index.tsx","views/screens/Units/schemas/sensors/index.tsx","views/screens/Units/sagas/index.tsx","views/screens/Schedules/schemas/index.tsx","views/screens/Schedules/sagas/index.tsx","redux/schemas/bookmarks/index.js","redux/sagas/auth/index.js","views/screens/Routes/schemas/routes/index.tsx","views/screens/Routes/schemas/routeCheckpoints/index.tsx","views/screens/Routes/sagas/routes/index.tsx","views/screens/Contacts/sagas/index.ts","views/screens/Routes/services/routeCheckpoints.ts","views/screens/Routes/sagas/routeCheckpoints/index.tsx","views/screens/Routes/sagas/routesAssignments/index.tsx","views/screens/Routes/schemas/routesComments/index.tsx","views/screens/Routes/services/routesComments.ts","views/screens/Routes/sagas/routesComments/index.tsx","views/screens/Routes/schemas/routesExecutions/index.tsx","views/screens/Routes/sagas/routesExecutions/index.tsx","views/screens/Routes/sagas/routesReport/index.tsx","views/screens/Users/schemas/index.tsx","views/screens/Users/sagas/index.tsx","views/screens/Workplans/schemas/workplans/index.tsx","views/screens/Workplans/sagas/workplans/index.tsx","views/screens/Workplans/schemas/workplanAssignments/index.tsx","views/screens/Workplans/sagas/workplansAssignments/index.tsx","views/screens/Workplans/schemas/workplansComments/index.tsx","views/screens/Workplans/services/workplansComments.ts","views/screens/Workplans/sagas/workplansComments/index.tsx","views/screens/Workplans/actions/workplansExecutionLocations/index.tsx","views/screens/Workplans/sagas/workplansExecutionLocations/index.tsx","views/screens/Workplans/actions/workplansExecutions/index.tsx","views/screens/Workplans/schemas/workplansExecutions/index.tsx","views/screens/Workplans/schemas/workplansExecutionLocations/index.tsx","views/screens/Workplans/sagas/workplansExecutions/index.tsx","views/screens/Workplans/actions/workplansReport/index.tsx","redux/schemas/locations/index.tsx","views/screens/Workplans/sagas/workplansReport/index.tsx","views/screens/Workplans/actions/workplansVisits/index.tsx","views/screens/Workplans/schemas/workplansVisits/index.tsx","views/screens/Workplans/schemas/workplansHistoricalVisits/index.tsx","views/screens/Workplans/sagas/workplansVisits/index.tsx","redux/schemas/configurations/index.js","redux/sagas/configurations/index.js","redux/schemas/models/index.tsx","redux/sagas/models/index.tsx","redux/schemas/brands/index.js","redux/sagas/static-catalogs/brands/index.tsx","redux/schemas/currencies/index.js","redux/sagas/static-catalogs/currencies/index.js","redux/schemas/time-zones/index.tsx","redux/sagas/static-catalogs/time-zones/index.tsx","redux/schemas/cellular-providers/index.tsx","redux/sagas/static-catalogs/cellular-providers/index.tsx","redux/schemas/countries/index.tsx","redux/sagas/static-catalogs/countries/index.tsx","redux/schemas/vehicle-makers/index.tsx","redux/sagas/static-catalogs/vehicle-makers/index.tsx","redux/schemas/vehicle-models/index.tsx","redux/sagas/static-catalogs/vehicle-models/index.tsx","redux/schemas/insurance-companies/index.tsx","redux/sagas/static-catalogs/insurance-companies/index.tsx","redux/schemas/insurance-agents/index.tsx","redux/sagas/static-catalogs/insurance-agents/index.tsx","redux/schemas/sensor-brands/index.tsx","redux/sagas/static-catalogs/sensor-brands/index.tsx","redux/schemas/sensor-models/index.tsx","redux/sagas/static-catalogs/sensor-models/index.tsx","redux/schemas/sensor-measures/index.tsx","redux/sagas/static-catalogs/sensor-measures/index.tsx","redux/schemas/payment-methods/index.ts","views/screens/VehicleFuel/services/paymentMethodsService.ts","redux/sagas/static-catalogs/payment-methods/index.tsx","redux/schemas/location-classes/index.js","redux/sagas/static-catalogs/location-classes/index.tsx","views/screens/SIMs/schemas/index.tsx","views/screens/SIMs/sagas/index.tsx","views/screens/Vehicles/schemas/index.tsx","views/screens/Vehicles/sagas/index.tsx","views/screens/Assets/schemas/index.tsx","views/screens/Assets/sagas/index.tsx","views/screens/Sensors/schemas/index.tsx","views/screens/Sensors/sagas/index.tsx","views/screens/Locations/schemas/index.tsx","views/screens/Locations/schemas/importLocations.tsx","views/screens/Locations/services/locations.ts","views/screens/Locations/sagas/index.tsx","views/screens/Drivers/schemas/index.tsx","views/screens/Drivers/sagas/index.tsx","views/screens/Jobs/schemas/index.tsx","views/screens/Jobs/schemas/importJobs/index.tsx","views/screens/Jobs/sagas/backlog/index.tsx","views/screens/Jobs/sagas/board/index.tsx","views/screens/Jobs/schemas/jobsByUser/index.tsx","views/screens/Jobs/sagas/report/index.tsx","views/screens/Jobs/sagas/index.tsx","views/screens/Groups/sagas/index.tsx","views/screens/Quotations/schemas/index.tsx","views/screens/Quotations/sagas/index.tsx","views/screens/Contracts/schemas/index.tsx","views/screens/Contracts/sagas/index.tsx","views/screens/ContractTemplates/schemas/index.tsx","views/screens/ContractTemplates/sagas/index.tsx","views/screens/Customers/schemas/index.tsx","views/screens/Customers/services/index.ts","views/screens/Customers/sagas/index.tsx","views/screens/Offices/schemas/index.tsx","views/screens/Offices/services/index.ts","views/screens/Offices/sagas/index.tsx","views/screens/Forms/schemas/index.tsx","views/screens/Forms/services/forms.ts","views/screens/Forms/sagas/index.tsx","views/screens/vehicleMaintenance/schemas/catalogs/categories/index.ts","views/screens/vehicleMaintenance/services/categoriesService.ts","views/screens/vehicleMaintenance/sagas/catalogs/categories/index.ts","views/screens/MaintenanceLines/schemas/index.tsx","views/screens/MaintenanceLines/services/index.ts","views/screens/MaintenanceLines/sagas/index.tsx","views/screens/vehicleMaintenance/schemas/preventiveNotices/notices/index.ts","views/screens/vehicleMaintenance/services/noticeService.ts","views/screens/vehicleMaintenance/sagas/preventiveNotices/noticesByOdometer/index.ts","views/screens/vehicleMaintenance/sagas/preventiveNotices/noticesByDate/index.ts","views/screens/vehicleMaintenance/sagas/preventiveNotices/noticesByHourmeter/index.ts","views/screens/vehicleMaintenance/schemas/catalogs/providers/index.ts","views/screens/vehicleMaintenance/services/providersService.ts","views/screens/vehicleMaintenance/sagas/catalogs/providers/index.ts","views/screens/vehicleMaintenance/schemas/catalogs/workmanship/index.ts","views/screens/vehicleMaintenance/services/workmanshipService.ts","views/screens/vehicleMaintenance/sagas/catalogs/workmanship/index.ts","views/screens/vehicleMaintenance/schemas/catalogs/spareParts/index.ts","views/screens/vehicleMaintenance/services/sparePartsService.ts","views/screens/vehicleMaintenance/sagas/catalogs/spareParts/index.ts","views/screens/Protocols/schemas/index.tsx","views/screens/Protocols/services/protocols.ts","views/screens/Protocols/sagas/index.tsx","redux/sagas/index.tsx","redux/storeConfig/store.js","views/screens/Forms/types.tsx","views/screens/Groups/types/index.tsx","views/screens/Jobs/types/backlog/index.tsx","views/screens/Workplans/types/workplans/index.tsx","views/screens/Entities/constants/index.tsx","views/screens/Quotations/types.tsx","views/screens/Organizations/types.tsx","views/screens/Routes/types/routesExecutions/index.tsx","views/screens/Routes/types/routes/index.tsx","@core/layouts/components/menu/screens/index.tsx","views/screens/Geofences/types/index.tsx","views/screens/Users/types/index.tsx","views/screens/Locations/types/index.tsx","views/screens/Drivers/types/index.tsx","views/screens/Sensors/types.tsx","views/screens/Schedules/types.tsx","views/screens/Assets/types.tsx","views/screens/Modules/types.tsx","views/screens/Operators/types.tsx","views/screens/MaintenanceLines/types.tsx","views/screens/Agents/types.tsx","views/screens/Vehicles/types.tsx","views/screens/Customers/types.tsx","views/screens/ServiceClasses/types.tsx","views/screens/Divisions/types.tsx","views/screens/Subdivisions/types.tsx","views/screens/Offices/types.tsx","views/screens/SIMs/types.tsx","views/screens/Contracts/types.tsx","views/screens/ContractTemplates/types.tsx","views/screens/Workplans/types/workplansExecutions/index.tsx","views/screens/Contacts/types/index.ts","views/screens/Protocols/types/index.tsx","views/screens/vehicleMaintenance/types/preventiveNotices/noticesByOdometer/index.tsx","views/screens/Units/actions/index.tsx","redux/types/static-catalogs/index.tsx","views/screens/vehicleMaintenance/types/preventiveNotices/noticesByDate/index.tsx","views/screens/vehicleMaintenance/types/preventiveNotices/noticesByHourmeter/index.tsx","utility/types.ts","utility/Utils.ts","views/screens/vehicleMaintenance/types/catalogs/categories/index.ts","views/screens/vehicleMaintenance/types/catalogs/workmanship/index.ts","views/screens/vehicleMaintenance/types/catalogs/providers/index.ts","views/screens/vehicleMaintenance/types/catalogs/spareParts/index.ts","views/screens/Entities/reducers/index.tsx","views/screens/Workplans/types/workplansAssignments/index.tsx","views/screens/Schedules/reducers/index.tsx","views/screens/Routes/types/routesComments/index.tsx","views/formComponents/DropdownInput/index.tsx","views/screens/Routes/types/routesAssignments/index.tsx","views/formComponents/TextInput/index.tsx","views/screens/Geofences/actions/index.tsx","views/screens/Workplans/types/workplansExecutionLocations/index.tsx","views/screens/Workplans/types/workplansComments/index.tsx","views/screens/Geofences/reducers/index.tsx","views/screens/Telemetry/utils/index.js","redux/actions/auth/index.js","views/screens/Quotations/actions/index.tsx","views/screens/Schedules/actions/index.tsx","views/screens/Units/reducers/deviceMetrics/index.tsx","views/screens/Units/reducers/deviceActions/index.tsx","views/screens/Units/reducers/groups/index.tsx","views/screens/Units/reducers/reports/index.tsx","views/screens/Units/reducers/images/index.tsx","views/screens/Units/reducers/sensors/index.tsx","views/screens/Units/reducers/unitLiveStatus/index.tsx","views/screens/Units/reducers/index.tsx","views/screens/vehicleMaintenance/permissions.ts","redux/types/static-catalogs/countries/index.tsx","views/screens/Routes/actions/routesExecutions/index.tsx","views/screens/Organizations/reducers/index.tsx","views/screens/Locations/reducers/importedLocations/index.tsx","views/screens/Locations/reducers/index.tsx","views/screens/Jobs/actions/backlog/index.tsx","views/components/DefaultButton/index.tsx","views/screens/Contacts/actions/index.ts","views/screens/Organizations/actions/index.tsx","views/formComponents/NumericalInput/index.tsx","views/screens/Locations/actions/index.tsx","views/screens/Groups/actions/index.tsx","views/screens/Workplans/actions/workplans/index.tsx","views/screens/Forms/actions/index.tsx","views/screens/Routes/reducers/routesExecutions/index.tsx","views/screens/Jobs/types/board/index.tsx","views/screens/Routes/actions/routes/index.tsx","views/screens/Jobs/types/index.tsx","views/screens/Workplans/types/workplansVisits/index.tsx","views/screens/Divisions/reducers/index.tsx","views/screens/Routes/utils/index.tsx","views/screens/Entities/types/index.tsx","env.js","views/formComponents/CheckBoxInput/index.tsx","views/screens/Subdivisions/reducers/index.tsx","views/screens/Workplans/permissions.ts","views/components/Toolbar/index.tsx","views/screens/Entities/views/FetchEntities/index.tsx","views/screens/Jobs/services/jobs.ts","views/screens/Units/utils.tsx","views/screens/Units/services/index.ts","views/screens/Agents/actions/index.tsx","views/screens/Operators/actions/index.tsx","views/screens/Groups/schemas/index.tsx","views/screens/Reports/permissions.ts","views/screens/Users/actions/index.tsx","views/screens/Routes/reducers/routesReport/index.tsx","views/screens/Routes/reducers/routes/index.tsx","utility/http/interceptors/interceptor-utils.ts","views/screens/Entities/actions/index.tsx","views/screens/Drivers/actions/index.tsx","views/screens/Modules/actions/index.tsx","views/screens/Jobs/types/report/index.tsx","views/screens/Workplans/types/workplansReport/index.tsx","views/screens/Routes/types/routesReport/index.tsx","views/screens/Routes/permissions.ts","views/screens/ServiceClasses/actions/index.tsx","views/screens/Assets/actions/index.ts","views/screens/ContractTemplates/actions/index.tsx","views/screens/Customers/actions/index.tsx","views/screens/Offices/actions/index.tsx","views/screens/Divisions/actions/index.tsx","views/screens/Subdivisions/actions/index.tsx","views/screens/Sensors/actions/index.tsx","views/screens/Contracts/actions/index.tsx","views/screens/Operators/reducers/index.tsx","views/screens/Vehicles/actions/index.tsx","views/screens/Routes/types/routeCheckpoints/index.tsx","utility/timeUtils/timeInSeconds.ts","redux/types/static-catalogs/vehicle-makers/index.tsx","redux/types/static-catalogs/vehicle-models/index.tsx","redux/types/static-catalogs/insurance-companies/index.tsx","redux/types/static-catalogs/insurance-agents/index.tsx","views/screens/SIMs/actions/index.tsx","redux/types/navbar/index.js","views/components/Map/utils/index.tsx","views/screens/Contacts/reducers/index.ts","views/screens/MaintenanceLines/actions/index.tsx","redux/types/static-catalogs/brands/index.js","views/formComponents/DateInput/index.tsx","redux/types/configurations/index.js","redux/types/static-catalogs/cellular-providers/index.tsx","redux/types/models/index.tsx","views/components/Table/index.tsx","views/screens/Offices/reducers/index.tsx","views/screens/Protocols/actions/index.tsx","views/screens/vehicleMaintenance/actions/preventiveNotices/noticesByHourmeter/index.ts","views/formComponents/TimeInput/index.tsx","views/screens/Locations/permissions.ts","views/screens/vehicleMaintenance/paths.ts","views/screens/Workplans/reducers/workplansExecutionLocations/index.tsx","views/screens/Workplans/actions/workplansAssignments/index.tsx","views/formComponents/Membership/hooks/useMembership.tsx","views/formComponents/Membership/index.tsx","views/formComponents/SwitchInput/index.tsx","views/screens/Jobs/utils/index.tsx","views/screens/Customers/reducers/index.tsx","views/screens/Geofences/permissions.ts","redux/reducers/static-catalogs/location-classes/index.js","views/components/DefaultSimpleButton/index.tsx","views/screens/Groups/reducers/index.tsx","redux/reducers/configurations/index.js","views/screens/vehicleMaintenance/actions/catalogs/categories/index.ts","views/screens/vehicleMaintenance/actions/preventiveNotices/noticesByOdometer/index.ts","@core/components/avatar/index.js","views/formComponents/MultiSelectInput/index.tsx","views/screens/Drivers/reducers/index.tsx","views/components/TitleH4/index.js","views/screens/Agents/reducers/index.tsx","views/screens/VehicleFuel/permissions.ts","views/screens/Workplans/services/workplans.ts","views/screens/Telemetry/permissions.ts","views/screens/vehicleMaintenance/actions/preventiveNotices/noticesByDate/index.ts","views/components/Map/components/MapBaseLayers/index.tsx","views/components/Map/components/MapGeofenceEdit/index.tsx","views/components/Map/components/MarkerClusterGroup/index.tsx","views/components/Map/components/MapGeofences/index.tsx","views/components/Map/components/MapLocationEdit/index.tsx","views/components/Map/components/MapLocations/index.tsx","views/components/Map/components/MapObjectsBounds/index.tsx","views/components/Map/utils/poliyline.js","views/components/Map/utils/lrm-google.js","views/components/Map/components/RouteItem/index.tsx","views/components/Map/components/SlidingPaneAddAlternateRoute/index.tsx","views/components/Map/components/SlidingPaneEditRoute/index.tsx","views/components/Map/components/MapRouteEdit/useMapRouteEdit.tsx","views/components/Map/components/MapRouteEdit/index.tsx","views/screens/Routes/views/SlidingPaneRouteInformation/index.tsx","views/components/Map/components/MapRoutes/index.tsx","views/components/Map/components/RotatedMarker/index.tsx","views/screens/Units/views/SlidingPaneUnitHistoricalPositionsReport/index.tsx","views/screens/Units/views/SlidingPaneUnitHistoricalScriptsReport/index.tsx","views/screens/Units/views/SlidingPaneShareUnitLocation/index.tsx","views/screens/Units/services/unitImages.ts","views/screens/Units/views/SlidingPaneUnitImages/index.tsx","views/screens/Units/views/UnitFuel/index.tsx","views/screens/Units/views/UnitTemperature/index.tsx","views/formComponents/ManualHourmeterAdjustment/index.tsx","views/formComponents/SlidingPaneManualHourmeterAdjustment/index.tsx","views/screens/Units/views/SlidingPaneUnitInformation/index.tsx","views/components/Map/components/MapUnits/index.tsx","views/components/Map/components/RulerControl/index.tsx","views/components/Map/components/ToolbarGeofencesControl/index.tsx","views/components/Map/components/ToolbarHomeControl/index.tsx","views/components/Map/components/ToolbarLocationsControl/index.tsx","views/components/Map/components/ToolbarRoutesControl/index.tsx","views/components/Map/components/ToolbarUnitsControl/index.tsx","views/components/Map/index.tsx","views/screens/Users/reducers/index.tsx","views/screens/Forms/reducers/index.tsx","views/screens/Drivers/services/drivers.ts","views/screens/vehicleMaintenance/actions/catalogs/spareParts/index.ts","views/screens/Units/permissions.ts","views/screens/Routes/actions/routesAssignments/index.tsx","redux/types/static-catalogs/sensor-measures/index.tsx","views/screens/vehicleMaintenance/actions/catalogs/workmanship/index.ts","views/screens/Routes/services/routes.ts","views/screens/Routes/actions/routesComments/index.tsx","views/screens/vehicleMaintenance/actions/catalogs/providers/index.ts","views/components/DeleteButton/index.tsx","views/formComponents/SlidingPaneForm/index.tsx","views/formComponents/LocationDropDown/index.tsx","views/screens/vehicleMaintenance/reducers/catalogs/categories/index.ts","views/screens/Organizations/services/index.ts","navigation/vertical/affiliations.js","navigation/vertical/inventories.js","navigation/vertical/schedules.js","navigation/vertical/groups.js","navigation/vertical/drivers.js","navigation/vertical/people.js","navigation/vertical/users.js","navigation/vertical/customers.js","views/screens/Contacts/sidebarLayout.ts","views/screens/Offices/sidebarLayout.tsx","navigation/vertical/catalogs.js","navigation/vertical/notifications.js","views/screens/Forms/sidebarLayout.ts","navigation/vertical/administrations.js","views/screens/Workplans/sidebarLayout.tsx","views/screens/Routes/sidebarLayout.tsx","views/screens/Optimizations/sidebarLayout.tsx","navigation/vertical/vehicleFuel.js","navigation/vertical/vehicleMaintenance.tsx","navigation/vertical/operations.js","views/screens/Telemetry/sidebarLayout.tsx","navigation/vertical/telemetry.js","navigation/vertical/maps.js","views/screens/Dashboard/sidebarLayout.ts","views/screens/Locations/sidebarLayout.tsx","navigation/vertical/geofences.js","navigation/vertical/pointsOfInterest.js","navigation/vertical/reports.js","navigation/vertical/trackingUnits.js","navigation/vertical/general.js","navigation/vertical/contracts.js","navigation/vertical/generalCRM.js","views/screens/Jobs/sidebarLayout.ts","views/screens/SafeDriver/sidebarLayout.ts","navigation/vertical/apps.js","navigation/vertical/businessPartners.js","navigation/vertical/generalAdmin.js","navigation/vertical/console.js","navigation/vertical/protocol.js","navigation/vertical/generalMonitoringCenter.js","navigation/vertical/index.js","redux/types/static-catalogs/location-classes/index.js","redux/types/static-catalogs/time-zones/index.tsx","redux/types/static-catalogs/currencies/index.ts","redux/types/static-catalogs/sensor-brands/index.tsx","redux/types/static-catalogs/sensor-models/index.tsx","redux/types/static-catalogs/payment-methods/index.ts","views/components/MediaGallery/index.tsx","views/screens/Groups/services/groups.ts","views/screens/Workplans/reducers/workplansAssignments/index.tsx","views/screens/Sensors/services/sensors.ts","views/formComponents/ContactsDropdown/index.tsx","views/screens/Assets/reducers/index.tsx","views/screens/Routes/actions/routeCheckpoints/index.tsx","views/formComponents/CustomersDropdown/index.tsx","views/screens/SIMs/reducers/index.tsx","views/screens/Sensors/reducers/index.tsx","views/screens/Notifications/permissions.ts","views/screens/Jobs/permissions.ts","views/screens/Telemetry/paths.ts","views/screens/Jobs/actions/board/index.tsx","redux/actions/navbar/index.js","views/screens/Workplans/actions/workplansComments/index.tsx","views/components/EditButton/index.tsx","views/components/ReportViewerButton/index.tsx","hooks/useRerender/index.ts","views/components/DropdownInput/index.tsx","configs/themeConfig.js","views/screens/Workplans/reducers/workplansExecutions/index.tsx","views/screens/Workplans/reducers/workplansVisits/index.tsx","views/screens/Workplans/reducers/workplansReport/index.tsx","views/screens/Workplans/reducers/workplans/index.tsx","views/screens/ServiceClasses/reducers/index.tsx","views/screens/Quotations/reducers/index.tsx","views/screens/Vehicles/reducers/index.tsx","views/screens/Routes/paths.ts","views/screens/Modules/reducers/index.tsx","views/screens/Geofences/services/geofences.ts","views/screens/Schedules/permissions.ts","views/screens/Contracts/reducers/index.tsx","views/screens/ContractTemplates/reducers/index.tsx","views/formComponents/OfficesDropdown/index.tsx","views/screens/Locations/views/SlidingPaneEditLocation/index.tsx","views/screens/VehicleFuel/paths.ts","views/screens/Workplans/paths.ts","views/screens/Jobs/paths.ts","redux/actions/static-catalogs/location-classes/index.js","views/screens/Jobs/actions/index.tsx","views/formComponents/ColorPicker/index.tsx","views/formComponents/GeofenceShapeDropdownInput/index.tsx","views/formComponents/WebtrackCustomInput/index.tsx","views/screens/MaintenanceLines/reducers/index.tsx","views/formComponents/RadioButtonInput/index.tsx","views/screens/Schedules/utils.tsx","views/screens/Users/services/index.ts","views/screens/ServiceClasses/permissions.ts","views/screens/Routes/views/RoutesAssignUnitScreen/SelectAssignmentTypeTab.tsx","views/screens/Routes/reducers/routesAssignments/index.tsx","views/screens/Protocols/reducers/index.tsx","views/screens/Routes/services/routesAssignments.ts","views/screens/Routes/reducers/routesComments/index.tsx","views/screens/Jobs/actions/report/index.tsx","views/screens/Forms/permissions.ts","views/screens/Protocols/permissions.ts","views/screens/Routes/reducers/routeCheckpoints/index.tsx","views/components/TabsWrapper/TabsCardContent.js","views/components/TabsWrapper/TabsContent.js","views/components/TabsWrapper/index.tsx","hooks/useBoolean/index.ts","views/components/FilesGallery/SlidingPaneEditFileName/index.tsx","views/components/FilesGallery/index.tsx","views/formComponents/UnitsDropdown/index.tsx","redux/actions/static-catalogs/currencies/index.js","hooks/useWebtrackServiceOnAction/index.ts","assets/data/locales/es.ts","assets/data/locales/en.ts","utility/context/Internationalization.js","redux/actions/static-catalogs/time-zones/index.tsx","redux/reducers/static-catalogs/brands/index.js","views/screens/Routes/schemas/routesAssignments/index.tsx","redux/actions/static-catalogs/brands/index.js","views/screens/ServiceClasses/paths.ts","views/screens/TrackingUnits/paths.ts","views/screens/Geofences/utils/index.tsx","redux/actions/configurations/index.js","redux/actions/models/index.tsx","redux/actions/static-catalogs/vehicle-makers/index.tsx","redux/actions/static-catalogs/vehicle-models/index.tsx","views/screens/Notifications/paths.ts","views/screens/Workplans/reducers/workplansComments/index.tsx","views/formComponents/LocationClassesDropdownInput/index.tsx","views/screens/Routes/actions/routesReport/index.tsx","redux/actions/static-catalogs/cellular-providers/index.tsx","redux/actions/static-catalogs/insurance-companies/index.tsx","redux/actions/static-catalogs/insurance-agents/index.tsx","redux/actions/static-catalogs/sensor-brands/index.tsx","redux/actions/static-catalogs/sensor-models/index.tsx","redux/actions/static-catalogs/sensor-measures/index.tsx","views/screens/Jobs/reducers/importedJobs/index.tsx","views/screens/Jobs/reducers/backlog/index.tsx","views/formComponents/ManualOdometerAdjustment/index.tsx","views/formComponents/SlidingPaneManualOdometerAdjustment/index.tsx","views/formComponents/ImageUploader/ImgUtils.js","views/formComponents/ImageUploader/index.js","views/screens/TrackingUnits/permissions.ts","views/screens/Vehicles/services/index.ts","views/screens/Assets/services/index.ts","views/components/TabsWrapper/Tabs.js","views/screens/Workplans/services/workplansAssignments.ts","views/screens/BusinessPartners/paths.ts","views/screens/Locations/paths.ts","views/screens/Geofences/paths.ts","views/screens/Operators/permissions.ts","views/screens/Organizations/permissions.ts","views/screens/Agents/permissions.ts","views/screens/Divisions/permissions.ts","views/screens/Subdivisions/permissions.ts","views/screens/Schedules/paths.ts","views/screens/Forms/paths.ts","views/screens/Optimizations/permissions.ts","views/screens/Routes/services/routeExecution.ts","views/screens/Workplans/services/workplansVisits.ts","assets/images/logo/logo.png","views/components/TableTimePicker/index.tsx","views/screens/Modules/services/index.ts","redux/actions/static-catalogs/payment-methods/index.tsx","views/screens/SIMs/services/index.ts","views/components/Collapse/index.tsx","views/components/AddButton/index.tsx","redux/reducers/static-catalogs/currencies/index.tsx","@core/components/spinner/Fallback-spinner.js","views/screens/Routes/views/RoutesAssignUnitScreen/RoutesAssignUnitContext.tsx","assets/images/logo sync /^/.//.*logo/.svg$","views/formComponents/DriverDropDown/index.tsx","views/screens/Groups/permissions.ts","views/formComponents/ScheduleDropdown/index.tsx","views/components/ControlChart/index.tsx","views/screens/vehicleMaintenance/reducers/catalogs/spareParts/index.ts","views/screens/Reports/paths.ts","views/formComponents/DurationInput/index.tsx","views/screens/Drivers/hooks/useGetDriverImages.ts","redux/reducers/static-catalogs/time-zones/index.tsx","views/formComponents/UsersDropdown/index.tsx","views/formComponents/TextEditorInput/index.tsx","views/screens/Units/hooks/useGetDowntimeBinnacle.ts","views/formComponents/SlidingPaneDowntimeBinnacle/index.tsx","views/screens/Contracts/paths.ts","views/formComponents/FormsDropdown/index.tsx","views/screens/vehicleMaintenance/reducers/catalogs/workmanship/index.ts","views/screens/Users/permissions.ts","views/formComponents/SlidingPaneAddEditContact/index.tsx","views/screens/Operators/services/operators.ts","views/screens/Jobs/components/JobPriorityDropdownInput/index.js","views/formComponents/SlidingPanePreviewDriverImages/index.tsx","views/components/SimpleAlertMessage/index.tsx","redux/reducers/static-catalogs/vehicle-makers/index.tsx","redux/reducers/static-catalogs/vehicle-models/index.tsx","redux/reducers/models/index.tsx","views/screens/Locations/services/locationImages.ts","views/screens/Locations/views/SlidingpanelLocationImages/index.tsx","views/screens/Locations/views/SlidingpanelLocationInformation/index.tsx","views/screens/Operators/paths.ts","views/screens/Organizations/paths.ts","views/screens/Agents/paths.ts","views/screens/Divisions/paths.ts","views/screens/Subdivisions/paths.ts","views/screens/Modules/paths.ts","views/screens/Vehicles/paths.ts","views/screens/SIMs/paths.ts","views/screens/Sensors/paths.ts","views/screens/Assets/paths.ts","views/screens/Modules/permissions.ts","views/screens/Vehicles/permissions.ts","views/screens/SIMs/permissions.ts","views/screens/Sensors/permissions.ts","views/screens/Assets/permissions.ts","views/screens/Groups/paths.ts","views/screens/Drivers/paths.ts","views/screens/People/paths.ts","views/screens/Users/paths.ts","views/screens/Customers/paths.ts","views/screens/Customers/permissions.ts","views/screens/Optimizations/paths.ts","views/screens/Dashboard/paths.ts","views/screens/Quotations/paths.ts","views/screens/Contracts/permissions.ts","views/screens/SafeDriver/paths.ts","views/screens/Console/paths.ts","views/screens/Console/permissions.ts","views/screens/Protocols/paths.ts","views/screens/Jobs/components/JobTypeDropdownInput/index.js","views/screens/Jobs/components/JobStatusDropdownInput/index.js","views/formComponents/GeofenceDropDown/index.tsx","utility/context/Can.js","views/screens/Drivers/permissions.ts","views/screens/People/permissions.ts","views/screens/Contacts/paths.ts","views/screens/Offices/paths.ts","views/screens/Offices/permissions.ts","views/screens/Dashboard/permissions.ts","views/screens/ContractTemplates/paths.ts","views/screens/ContractTemplates/permissions.ts","views/screens/Quotations/permissions.ts","views/screens/SafeDriver/permissions.ts","views/screens/Operators/hooks/useGetOperatorContacts.ts","views/screens/Organizations/hooks/useGetContacts.ts","views/screens/Geofences/views/SlidingpanelGeofenceInformation/index.tsx","views/formComponents/SlidingPaneAddEditCustomer/index.tsx","views/formComponents/GoogleLocationDropDown/index.tsx","views/screens/Offices/views/SlidingPaneEditOffice/index.tsx","views/screens/vehicleMaintenance/components/NoticeTypeDropdownInput/index.tsx","views/screens/vehicleMaintenance/components/CategoriesDropdownInput/index.tsx","views/components/ShiftSlide/index.tsx","views/components/TriggerSlide/index.tsx","views/screens/Locations/utils/index.tsx","views/screens/Routes/hooks/useGetAlternateRoutes.ts","views/screens/Units/hooks/useGetUnitScriptHistory.ts","views/screens/Reports/views/byUnit/reportScriptHistory/utils.tsx","views/formComponents/SlidingPaneStartUnitDowntime/index.tsx","views/screens/Organizations/hooks/useGetDowntimeReasons.ts","views/screens/Units/hooks/useGetUnitTemperatureHistory.ts","redux/reducers/static-catalogs/payment-methods/index.tsx","redux/reducers/static-catalogs/countries/index.tsx","redux/reducers/static-catalogs/cellular-providers/index.tsx","redux/reducers/static-catalogs/insurance-companies/index.tsx","redux/reducers/static-catalogs/insurance-agents/index.tsx","redux/reducers/static-catalogs/sensor-brands/index.tsx","redux/reducers/static-catalogs/sensor-models/index.tsx","redux/reducers/static-catalogs/sensor-measures/index.tsx","views/screens/vehicleMaintenance/reducers/preventiveNotices/noticesByOdometer/index.ts","views/screens/vehicleMaintenance/reducers/preventiveNotices/noticesByDate/index.ts","views/screens/vehicleMaintenance/reducers/preventiveNotices/noticesByHourmeter/index.ts","views/screens/vehicleMaintenance/reducers/catalogs/providers/index.ts","redux/sagas/settings/tokenLifeTime.js","views/screens/vehicleMaintenance/utils/getPreventiveNoticesByOdometerIndicators.tsx","views/screens/Jobs/reducers/board/index.tsx","views/screens/Jobs/reducers/report/index.tsx","views/screens/Jobs/reducers/index.tsx","views/screens/vehicleMaintenance/components/dropDownIcons/options.tsx","views/screens/vehicleMaintenance/components/dropDownIcons/index.tsx","assets/images/logo sync /^/.//.*logo/.png$","globals.js","assets/images/logo sync /^/.//.*logoName/.png$","assets/images/logo/logo.svg","assets/images/logo/cass/logoName.png","assets/images/logo/kripton/logoName.png","assets/images/logo/logoName.png","assets/images/logo/oneguard/logoName.png","assets/images/logo/prosegur/logoName.png","assets/images/logo/schooltracker/logoName.png","assets/images/logo/scm/logoName.png","assets/images/logo/tzultaka/logoName.png","assets/images/logo/cass/logo.png","assets/images/logo/kripton/logo.png","assets/images/logo/oneguard/logo.png","assets/images/logo/prosegur/logo.png","assets/images/logo/schooltracker/logo.png","assets/images/logo/scm/logo.png","assets/images/logo/tzultaka/logo.png","assets/images/logo/cass/logo.svg","assets/images/logo/kripton/logo.svg","assets/images/logo/oneguard/logo.svg","assets/images/logo/prosegur/logo.svg","assets/images/logo/schooltracker/logo.svg","assets/images/logo/scm/logo.svg","assets/images/logo/tzultaka/logo.svg","configs/acl/ability.js","configs/acl/initialAbility.js","utility/context/ThemeColors.js","@core/components/ripple-button/index.js","serviceWorker.js","index.js"],"names":["tokenRefreshFailCount","state","action","type","types","auth","combineReducers","token","payload","newToken","user","camelcaseKeys","jwtDecode","mapOptions","enableLocationClustering","locationMapLabelAlwaysOn","activateUnitTrackMode","unitMapLabelAlwaysOn","unitsLabelContent","newImage","imageName","userImageUrl","homeScreenId","membership","navigationOptions","productId","isAuthenticating","isUpdatingMapSettingsConfiguration","isUpdatingProfileGeneralInformation","isUpdatingProfilePassword","isUpdatingProfileMapOptions","isRefreshing","error","refreshingError","authPersistConfig","key","storage","localforage","stateReconciler","autoMergeLevel2","blacklist","persistReducer","getOwnState","getUser","getAuthToken","getIsAuthenticating","getIsUpdatingProfileInformation","getisUpdatingMapSettingsConfiguration","getIsUpdatingProfileMapOptions","getIsUpdatingProfilePassword","getAuthenticatingError","getAuthUserID","user_id","getAuthExpiration","exp","getAuthUsername","username","getAuthUser","getAuthUserForMembership","getAuthUserTimezoneName","zoneName","Intl","DateTimeFormat","resolvedOptions","timeZone","getAuthUserMapHomeCenter","homeLatitude","homeLongitude","getAuthUserMapHomeZoom","homeZoom","isAuthenticated","getAuthUserPermissions","permissions","split","getAuthUserOrganizationId","organizationId","getAuthUserDivisionId","divisionId","getAuthUserSubdivisionId","subdivisionId","getAuthUserAccessLevelId","accessLevelId","getAuthUserHomeScreenId","parseInt","getNavigationProduct","getAuthUserMembershipFilters","filterOperatorId","filterOrganizationId","operatorId","includes","organizationSelectors","allowNullOrganizationId","getAuthUserOperatorId","getAuthUserHasPermissionsAny","some","userPer","getAuthUserHasPermissionByAccessLevels","accessLevels","isAuthUserSystemOrOperator","getAuthUserHasPermissionsEvery","every","getAuthSystems","distance","distanceSystem","capacity","capacitySystem","volume","volumeSystem","temperature","temperatureSystem","distance2","distance2System","speed","speedSystem","fuel","fuelSystem","fuel2","fuel2System","performance","getParsers","convertMetersToAuthUserDistanceSystem","meters","metricSystemId","convertKilometersToAuthUserDistanceSystem","kilometers","convertAuthUserDistanceSystemToMeters","authUserDistanceSystem","convertAuthUserDistanceSystemToKilometers","convertGalonsToAuthUserCapacitySystem","gal","convertAuthUserCapacitySystemToGalons","authUserCapacitySystem","convertLitersToAuthUserCapacitySystem","lt","convertAuthUserCapacitySystemToLiters","convertCubicMetersToAuthUserVolumeSystem","cubicMeters","convertAuthUserVolumeSystemToCubicMeters","authUserVolumeSystem","convertAuthUserVolumeSystemToCubicCentimeters","c","authUserTemperatureSystem","authUserDistance2System","kilometersPerHour","authUserSpeedSystem","kmPerGal","authUserFuelSystem","kmPerLiter","galPerHour","authUserFuel2System","litersPerHour","getIsRefreshingToken","getRefreshingError","getTokenRefreshFailCount","intl","IntlGlobalProvider","children","useIntl","appIntl","AUTHENTICATION_STARTED","AUTHENTICATION_COMPLETED","AUTHENTICATION_FAILED","AUTHENTICATION_FAILED_CLEAR","AUTHENTICATION_IDENTITY_CLEARED","AUTHENTICATION_SET_MEMBERSHIP","AUTHENTICATION_USER_INFORMATION_STARTED","AUTHENTICATION_USER_INFORMATION_COMPLETED","TOKEN_REFRESH_STARTED","TOKEN_REFRESH_FORCE_STARTED","TOKEN_REFRESH_COMPLETED","TOKEN_REFRESH_FAILED","PROFILE_UPDATE_GENERAL_INFORMATION_STARTED","PROFILE_UPDATE_GENERAL_INFORMATION_COMPLETED","PROFILE_UPDATE_GENERAL_INFORMATION_FAILED","PROFILE_UPDATE_PASSWORD_STARTED","PROFILE_UPDATE_PASSWORD_COMPLETED","PROFILE_UPDATE_PASSWORD_FAILED","PROFILE_UPDATE_PICTURE_STARTED","PROFILE_UPDATE_PICTURE_COMPLETED","PROFILE_UPDATE_PICTURE_FAILED","PROFILE_UPDATE_MAP_OPTIONS_STARTED","PROFILE_UPDATE_MAP_OPTIONS_COMPLETED","PROFILE_UPDATE_MAP_OPTIONS_FAILED","PROFILE_UPDATE_MAP_SETTINGS_CONFIGURATION_STARTED","PROFILE_UPDATE_MAP_SETTINGS_CONFIGURATION_COMPLETED","PROFILE_UPDATE_MAP_SETTINGS_CONFIGURATION_FAILED","PROFILE_UPDATE_HOME_SCREEN_STARTED","PROFILE_UPDATE_HOME_SCREEN_COMPLETED","PROFILE_UPDATE_HOME_SCREEN_FAILED","PROFILE_CHANGE_PRODUCT_STARTED","PROFILE_CHANGE_PRODUCT_COMPLETED","PROFILE_CHANGE_PRODUCT_FAILED","headers","Accept","promiseWith","data","Promise","resolve","HttpWebtrack","baseURL","API_BASE_URL","configMessage","configAction","setConfigMessage","setConfigActions","config","service","this","axios","create","path","a","get","Authorization","response","responseType","patch","post","put","delete","getSuccessMessage","genderType","getFailMessage","handleSuccess","successTimer","useSuccessTimer","alertObject","object","formatMessage","id","name","undefined","customMessage","messageId","message","success","Swal","fire","icon","text","timer","timerProgressBar","showConfirmButton","position","toast","didOpen","addEventListener","stopTimer","resumeTimer","customClass","confirmButton","content","iconColor","buttonsStyling","alerts","successAction","handleError","mixin","status","errorTimer","customMessageError","errorAction","reject","httpWebtrack","methods","authTokenInterceptor","session","endDateAdjustment","ConfigureWebtrackInterceptor","store","interceptors","request","use","x","method","toUpperCase","axiosResponse","conf","getState","UNITS_FETCH_STARTED","UNITS_FETCH_COMPLETED","UNITS_FETCH_FAILED","UNITS_PARTIAL_FETCH_STARTED","UNITS_PARTIAL_FETCH_COMPLETED","UNITS_PARTIAL_FETCH_FAILED","UNIT_ADD_TO_STATE","UNITS_LIVE_STATUS_FETCH_STARTED","UNITS_LIVE_STATUS_FETCH_COMPLETED","UNITS_LIVE_STATUS_FETCH_FAILED","UNIT_INFORMATION_FETCH_STARTED","UNIT_INFORMATION_FETCH_COMPLETED","UNIT_INFORMATION_FETCH_FAILED","UNIT_POSITIONS_FETCH_STARTED","UNIT_POSITIONS_FETCH_COMPLETED","UNIT_POSITIONS_FETCH_FAILED","UNIT_POSITIONS_RESET_IS_FETCHED","UNIT_EXECUTE_DEVICE_ACTION","UNIT_ADD_STARTED","UNIT_ADD_COMPLETED","UNIT_ADD_FAILED","UNIT_EDIT_STARTED","UNIT_EDIT_COMPLETED","UNIT_EDIT_FAILED","UNIT_ACKNOWLEDGE_STARTED","UNIT_ACKNOWLEDGE_COMPLETED","UNIT_ACKNOWLEDGE_FAILED","UNIT_REMOVE_STARTED","UNIT_REMOVE_COMPLETED","UNIT_REMOVE_FAILED","UNIT_SELECTED","UNITS_ALL_SELECTED","UNIT_DESELECTED","UNITS_ALL_DESELECTED","UNIT_SHOW_IN_MAP","UNITS_ALL_SHOW_IN_MAP","UNIT_HIDE_IN_MAP","UNITS_ALL_HIDE_IN_MAP","UNIT_FETCH_INTERVAL","UNIT_IDLE_SPEED","SET_DATE_RANGE","UNITS_ACTIVE_STARTED","UNITS_ACTIVE_COMPLETED","UNITS_ACTIVE_FAILED","UNITS_ASSIGN_DRIVER_STARTED","UNITS_ASSIGN_DRIVER_COMPLETED","UNIT_CREATE_SHARE_LINK_STARTED","UNIT_CREATE_SHARE_LINK_COMPLETED","UNIT_CREATE_SHARE_LINK_FAILED","UNIT_CLEAR_SHARE_LINK","UNIT_START_DOWNTIME_STARTED","UNIT_START_DOWNTIME_COMPLETED","UNIT_START_DOWNTIME_FAILED","UNIT_END_DOWNTIME_STARTED","UNIT_END_DOWNTIME_COMPLETED","UNIT_END_DOWNTIME_FAILED","UNIT_UPDATE_DEVICE_STARTED","UNIT_UPDATE_DEVICE_COMPLETED","UNIT_UPDATE_DEVICE_FAILED","UNIT_UPDATE_SIM_STARTED","UNIT_UPDATE_SIM_COMPLETED","UNIT_UPDATE_SIM_FAILED","showSuccessMessage","showConfirmationMessage","title","confirmText","actionNot","confirmButtonClass","showCancelButton","width","cancelButton","confirmButtonText","cancelButtonText","focusConfirm","focusCancel","then","result","isConfirmed","showConfirmationWithCheckboxMessage","props","inputLabel","initialValue","input","inputValue","inputPlaceholder","value","showConfirmationMessageToast","showErrorAlertFailChanges","errorMessage","showErrorAlertReportNoAvailable","allowOutsideClick","showLoadingReport","showLoading","showErrorAlertFailChangesToast","showErrorAlertWarning","showSuccessCreatedMessage","altText","showSuccessEditedMessage","showSuccessApprovedDeniedMessage","approve","showSuccessAcceptedDeniedMessage","accept","showSuccessScheduledMessage","showSuccessRolesAndPermissionsSavedMessage","showSuccessAssignedMessage","plural","showSuccessUnassignedMessage","showSuccessDeletedMessage","multiple","showSuccessRemovedFromGroupMessage","showSuccessAddedToGroupMessage","showSuccessDisabledMessage","showSuccessCancelNotificationMessage","showFailCreatedMessage","showFailEditedMessage","showFailDeletedMessage","showDeleteConfirmationMessage","objectType","objectName","isDisabled","isUnassign","deleteWarning","showLeaveConfirmationMessage","showRemoveFromGroupConfirmationMessage","objectCount","isMultiple","showDeleteConfirmationMessageMultiple","objectsQuantity","withReactContent","loader","loaderHtml","closeLoading","close","showInformationMessage","env","REACT_APP_API_BASE_URL","iconSet","require","Icon","size","color","initialState","isRTL","themeConfig","layout","menuCollapsed","item","window","localStorage","getItem","JSON","parse","menu","isCollapsed","initialMenuCollapsed","menuHidden","isHidden","menuPinner","isPinner","contentWidth","layoutReducer","setItem","iconName","navLink","suggestions","sidebar","sidebarOptions","outsideSidebarOptions","bookmarks","query","isFetchingBookmarks","navbar","navbarTypes","objectToUpdate","find","isBookmarked","bookmarkIndex","findIndex","push","splice","getUserBookmarks","staticCatalogs","currencies","timeZones","countries","providers","vehicleMakers","vehicleModels","insuranceCompanies","insuranceAgents","sensorBrands","sensorModels","sensorMeasures","paymentMethods","locationClasses","brands","reducer","operators","organizations","divisions","subdivisions","serviceClasses","agents","modules","entities","people","workplans","locations","drivers","monitoringUsers","routes","schedules","units","categories","workmanship","geofences","sims","vehicles","assets","sensors","forms","jobs","groups","quotations","organizationContracts","contractTemplates","customers","offices","form","formReducer","noticesByOdometer","noticesByDate","noticesByHourmeter","spareParts","maintenanceLines","protocols","rootReducer","newState","authTypes","removeItem","agent","schema","Entity","idAttribute","Array","fetchAgentsList","watchFetchAgentsList","partialFetchAgentsList","watchPartialFetchAgentsList","addAgent","watchAddAgentsStarted","editAgent","watchEditAgentsStarted","removeAgent","watchRemoveAgentStarted","fetchAgent","watchAgentFetchStarted","select","authSelectors","call","fetch","body","stringify","json","jsonResult","resultData","map","normalize","schemas","actions","errorNumber","number","toString","takeEvery","entityTypeId","entitySelectors","date","userFetchDate","agentId","addedAgent","agentName","editedAgent","selectors","oldAgent","isAuth","agentSelectors","deletedAgent","division","fetchDivisionsList","watchFetchDivisionsList","partialFetchDivisionsList","watchPartialFetchDivisionsList","addDivision","watchAddDivisionsStarted","editDivision","watchEditDivisionsStarted","removeDivision","watchRemoveDivisionStarted","addedDivision","divisionName","editedDivision","oldDivision","deletedDivision","entity","startFetchingCountries","filters","failFetchingCountries","startPartialFetchingCountries","fetchEntitiesList","watchFetchEntitiesList","updateEntities","watchUpdateEntities","entitiesToUpdate","isEntityUpdatedFunction","isEntityUpdated","all","index","entityTypes","unitsActions","subdivisionsActions","maintenanceLinesActions","vehicleActions","modulesActions","agentActions","serviceClassesActions","isDropdown","operatorsActions","divisionsActions","formsActions","organizationsActions","organizationContractsActions","contractTemplatesActions","customersActions","contactsActions","workplansActions","geofencesActions","schedulesActions","routesActions","simActions","countriesActions","locationActions","officeActions","driverActions","assetsActions","sensorsActions","jobActions","groupsActions","protocolsActions","geofence","fetchGeofencesList","watchFetchGeofencesList","partialFetchGeofencesList","watchPartialFetchGeofencesList","addGeofence","watchAddGeofencesStarted","editGeofence","watchEditGeofencesStarted","removeGeofence","watchRemoveGeofenceStarted","assignGeofenceUnit","watchAssignGeofenceUnit","removeGeofenceAssignation","removeAllAssigmentsByGeofences","removeAllAssigmentsByUnits","watchRemoveGeofenceAssignation","watchRemoveAllAssignmentsByGeofences","watchRemoveAllAssignmentsByUnits","editGeofenceAssignation","watchEditGeofenceAssignation","getGeofencesListService","dispatch","saveGeofenceService","geofenceId","addedGeofence","oldGeofence","editedGeofence","deleteGeofenceService","assignation","length","unitGeofences","console","log","unitGeofenceInfo","moduleSchema","fetchModulesList","watchFetchModulesList","partialFetchModulesList","watchPartialFetchModulesList","addModule","watchAddModulesStarted","editModule","watchEditModulesStarted","removeModule","watchRemoveModuleStarted","fetchModule","watchModuleFetchStarted","getModulesListService","module","deviceId","identifier","addedModule","editedModule","oldModule","moduleId","deletedModule","operator","contact","contacts","fetchOperatorsList","watchFetchOperatorsList","partialFetchOperatorsList","watchPartialFetchOperatorsList","addOperator","watchAddOperatorsStarted","editOperator","watchEditOperatorsStarted","removeOperator","watchRemoveOperatorStarted","editOperatorStandardPrices","watchEditOperatorStandardPricesStarted","addedOperator","operatorData","operatorName","editedOperator","operatorContacts","contactSchemas","contactActions","oldOperator","operatorSelectors","deletedOperator","standardPrices","editedOperatorStandardPrices","organization","fetchOrganizationsList","watchFetchOrganizationsList","partialFetchOrganizationsList","watchPartialFetchOrganizationsList","addOrganization","watchAddOrganizationsStarted","editOrganization","watchEditOrganizationsStarted","saveConsolidableEvents","watchSaveConsolidableEventsStarted","removeOrganization","watchRemoveOrganizationStarted","checkRegistrationCode","watchRegistrationCodeStarted","assigCode","watchCodeAssignStarted","addOrganizationDowntimeReason","watchAddOrganizationDowntimeReasonsStarted","editOrganizationDowntimeReason","watchEditOrganizationDowntimeReasonsStarted","removeOrganizationDowntimeReason","watchRemoveOrganizationDowntimeReasonsStarted","getOrganizationsListService","organizationList","usersData","usersList","usersByOrganization","groupBy","forEach","sacUsers","isSelected","addedOrganization","organizationData","quotationId","quotationActions","baseQuotationId","organizationName","organizationTaxNumber","taxNumber","organizationType","oldOrganization","editedOrganization","consolidableEvents","deleteOrganizationService","code","validCode","RegistrationCodeStatus","registrationCode","registrationMails","registrationDivisionId","registrationSubdivisionId","allowedApplications","downtimeReason","reasonId","addedDowntimeReason","reasonDescription","editedDowntimeReason","serviceClass","fetchServiceClassesList","watchFetchServiceClassesList","addServiceClass","watchAddServiceClassesStarted","editServiceClass","watchEditServiceClassesStarted","removeServiceClass","watchRemoveServiceClassStarted","fetchServiceClass","watchServiceClassFetchStarted","isWebPage","urlGet","serviceClassId","addedServiceClass","serviceClassName","editedServiceClass","oldServiceClass","deletedServiceClass","subdivision","fetchSubdivisionsList","watchFetchSubdivisionsList","partialFetchSubdivisionsList","watchPartialFetchSubdivisionsList","addSubdivision","watchAddSubdivisionsStarted","editSubdivision","watchEditSubdivisionsStarted","removeSubdivision","watchRemoveSubdivisionStarted","addedSubdivision","editedSubdivision","subdivisionName","oldSubdivision","deletedSubdivision","unit","deviceMetric","deviceMetrics","deviceAction","deviceActions","group","report","reports","image","images","sensor","fetchUnitsList","watchFetchUnitsList","partialFetchUnitsList","watchPartialFetchUnitsList","fetchUnitsLiveStatusList","watchFetchUnitsLiveStatusList","fetchUnitInformation","watchFetchUnitInformationStarted","fetchUnitHistoricalPositionsReport","watchFetchUnitHistoricalPositionsStarted","executeDeviceAction","watchExecuteDeviceAction","addUnit","watchAddUnitsStarted","editUnit","watchEditUnitsStarted","acknowledgeUnitEvent","watchAcknowledgeUnitEvent","removeUnit","watchRemoveUnitStarted","activeUnits","watchActiveUnits","assignDriver","watchAssignDriverUnitsStarted","startUnitDowntime","watchStartUnitDowntimeStarted","endUnitDowntime","watchEndUnitDowntimeStarted","createSharedLink","watchCreateSharedLinkUnitStarted","updateSim","watchUpdateSim","getUnitsListService","ENTITY_UNITS","getUnitsLiveStatusListService","unitId","getUnitInformationService","unitData","unitMetrics","deviceMetricsSchemas","deviceMetricsEntities","deviceMetricsOrder","unitActions","deviceActionsSchemas","deviceActionsEntities","deviceActionsOrder","groupsData","groupsSchemas","groupsEntities","groupsOrder","unitReports","reportsSchemas","reportsEntities","reportsOrder","unitImages","imagesSchemas","imagesEntities","imagesOrder","unitSensorMeasures","sensorsSchemas","sensorsEntities","sensorsOrder","reportType","startDate","endDate","idleSpeed","getUnitHistoricalPositionsReportService","parkedPositions","i","polyline","positions","deviceActionId","parameters","executeDeviceActionService","addedUnit","unitName","editedUnit","oldUnit","acknowledgeUnitEventService","unitBody","unitsName","driverName","mainStateId","mainStateDate","emails","ttl","sharedLink","requestData","oldUnitId","additionalOnSuccess","updateSimCardService","camelize","schedule","fetchSchedulesList","watchFetchSchedulesList","partialFetchSchedulesList","watchPartialFetchSchedulesList","addSchedule","watchAddSchedulesStarted","editSchedule","watchEditSchedulesStarted","addShift","watchAddShiftStarted","editScheduleShift","watchEditSchedulesShiftStarted","removeSchedule","watchRemoveScheduleStarted","scheduleId","addedSchedule","scheduleName","editedSchedule","oldSchedule","scheduleSelectors","scheduleDeleted","bookmark","login","watchLoginStarted","userInformationRequest","watchUserInformationRequest","refreshToken","watchRefreshTokenStarted","forceRefreshToken","watchForceRefreshToken","fetchUserBookmarks","watchFetchUserBookmarksStarted","updateUserBookmarks","watchUpdateUserBookmarkssStarted","updateProfileGeneralInformation","watchUpdateProfileGeneralInformationStarted","updateMapProfileSettings","watchUpdateMapProfileSettingsStarted","updateProfileMapOptions","watchUpdateProfileMapOptionsStarted","updateProfilePassword","watchUpdateProfilePasswordStarted","updateHomeScreen","watchUpdateProfileHomeScreenStarted","changeProduct","watchChangeProductStarted","userData","userId","responseSuperAdmin","jsonResultUser","responseRestaurantAdmin","expiration","now","Date","getTime","TOKEN_LIFE_TIME","non_field_errors","delay","bookmarkSetting","filter","setting","settingId","bookmarkSettingValue","settingValue","bookmarkIds","optionsSuggestions","userBookmarks","newSuggestions","navbarActions","navbarSelectors","userBookmarksSettingsValue","ub","values","serviceId","route","routeCheckpoint","routeId","checkpointId","routeCheckpoints","fetchRoutesList","watchFetchRoutesList","partialFetchRoutesList","watchPartialFetchRoutesList","addRoute","watchAddRoutesStarted","editRoute","watchEditRoutesStarted","removeRoute","watchRemoveRouteStarted","removeRoutes","watchRemoveRoutesStarted","copyRoute","watchCopyRouteStarted","getRoutesListService","saveRouteService","addedRoute","routeData","addedCheckpoints","checkpointList","chk","segmentPath","pathArray","routePathId","parseFloat","latitude","longitude","routeGroupId","schemasRouteCheckpoints","checkpoints","order","oldRoute","editedRoute","editedCheckpoints","routeDeleted","deleteRouteService","routeName","routeIds","deleteRoutesService","newRouteId","newRouteName","fetchContactsList","watchFetchContactsList","addContact","watchAddContactsStarted","editContact","watchEditContactsStarted","removeContact","watchRemoveContactsStarted","selected","contactId","addedContact","contactName","editedContact","oldContact","contactBody","contactsName","getRouteCheckpointsListService","configActions","configureInterceptors","fetchRouteCheckpointsList","watchFetchRouteCheckpointsList","finalResultData","fetchAssignmentsList","watchFetchAssignmentsList","editAssignment","watchEditAssignmentsStarted","removeAssignment","watchRemoveAssignmentStarted","importRouteAssignments","watchImportRouteAssignments","getRouteAssignmentsListService","resultDataByDate","assignmentsByDate","typeId","resultDataBySchedule","assignmentsBySchedule","orderByDate","orderBySchedule","assignment","routeAssignmentId","oldAssignment","saveAssignmentService","editedAssignment","deletedAssignment","deleteAssignmentService","routeAssignments","importRouteAssignmentsService","comment","comments","baseUrl","getRouteCommentsListService","saveCommentService","routeCommentId","deleteCommentService","fetchCommentsList","watchFetchCommentsList","addComment","watchAddCommentsStarted","editComment","watchEditCommentsStarted","removeComment","watchRemoveCommentStarted","addedComment","oldComment","editedComment","deletedComment","routeExecution","routesExecutions","fetchRoutesExecutions","watchFetchRoutesExecutions","editRouteExecution","watchEditRouteExecutionStarted","changeToAlternateRoute","watchChangeToAlternateRouteStarted","cancelRouteExecution","watchCancelRouteExecution","finalizeRouteExecution","watchFinalizeRouteExecution","completeRouteExecution","watchCompleteRouteExecution","removeRouteExecution","watchRemoveRouteExecution","pauseRouteExecution","watchPauseRouteExecution","startRouteExecution","watchStartRouteExecution","manualTransitRouteExecution","watchManualTransitRouteExecution","shareRouteExecution","watchShareRouteExecution","assignRouteExecutionUnit","watchAsignRouteExecutionUnit","indicators","scheduledBySchedule","totalNotShown","routesList","oldRouteExecution","saveRouteExecutionService","editedRouteExecution","reason","changeToAlternateRouteService","errorTxt","newStatus","newRouteStatus","emailList","fetchRoutesReport","watchFetchRoutesReport","unitsSchemas","unitsEntities","unitsOrder","routesSchemas","routesEntities","routesOrder","routeExecutions","routesExecutionsSchemas","monitoringUser","fetchMonitoringUsersList","watchFetchMonitoringUsersList","partialFetchMonitoringUsersList","watchPartialFetchMonitoringUsersList","addMonitoringUser","watchAddMonitoringUsersStarted","editMonitoringUser","watchEditMonitoringUsersStarted","removeMonitoringUser","watchRemoveMonitoringUserStarted","updateMonitoringUserPassword","watchUpdateMonitoringUserPasswordStarted","saveRolesAndPermissions","watchSaveMonitoringUserRolesAndPermissionsStarted","assignSchedule","watchAssignScheduleUsersStarted","unassignSchedule","watchUnassignScheduleUsersStarted","getUsersListService","saveUserService","addedMonitoringUser","userName","oldUserName","oldMonitoringUser","editedMonitoringUser","users","usersName","loggedUsername","authActions","rolesAndPermissions","userInSession","userAssignSchedule","workplan","fetchWorkplansList","watchFetchWorkplansList","partialFetchWorkplansList","watchPartialFetchWorkplansList","fetchWorkplanLocationsList","watchFetchWorkplanLocationsList","addWorkplan","watchAddWorkplansStarted","editWorkplan","watchEditWorkplansStarted","removeWorkplan","watchRemoveWorkplanStarted","copyWorkplan","watchCopyWorkplanStarted","assignOriginGeofence","watchAssignOriginGeofenceStarted","assignWorkGeofence","watchAssignWorkGeofenceStarted","assignDestinationGeofence","watchAssignDestinationGeofenceStarted","getWorkplansListService","workplanId","saveWorkplanService","addedWorkplan","oldWorkplan","editedWorkplan","workplanSelectors","workplanDeleted","deleteWorkplanService","workplanName","newWorkplanId","newWorkplanName","geofenceSelectors","originGeofenceId","workplanIds","geofenceName","originExitWindow","originValidationWindow","workGeofenceId","workGeofenceArriveWindow","workGeofenceMaxTime","destinationGeofenceId","assignmentBySchedule","assignmentByDateTime","assignmentsByDateTime","watchFetchWorkplansAssignmentsList","editAssignmentBySchedule","watchEditWorkplanAssignmentByScheduleStarted","editAssignmentByDateTime","watchEditWorkplanAssignmentByDateTimeStarted","removeWorkplanAssignment","watchRemoveWorkplanAssignmentStarted","getWorkplansAssignmentsListService","resultDataWS","withScheduleList","resultDataWDT","withDateTimeList","withScheduleOrder","withDateTimeOrder","assignmentId","assignmentType","assignmentDeleted","deleteWorkplanAssignmentService","assignmentName","getWorkplanCommentsListService","workplanCommentId","watchFetchWorkplansCommentsList","watchAddWorkplansCommentStarted","watchRemoveWorkplansCommentStarted","visitId","locationId","jobCommentId","completeAddingWorkplanExecutionLocation","oldId","workplanExecutionLocation","failAddingWorkplanExecutionLocation","completeEditingWorkplanExecutionLocation","failEditingWorkplanExecutionLocation","oldWorkplanExecutionLocation","failRemovingWorkplanExecutionLocation","workplanExecutionLocationId","addWorkplanExecutionLocation","watchAddWorkplanExecutionLocationsStarted","editWorkplanExecutionLocation","watchEditWorkplanExecutionLocationsStarted","removeWorkplanExecutionLocation","watchRemoveWorkplanExecutionLocationStarted","getWorkplanExecutionLocationId","saveWorkplanExecutionLocationService","addedWorkplanExecutionLocation","editedWorkplanExecutionLocation","workplanExecutionLocationDeleted","deleteWorkplanExecutionLocationService","locationName","completeFetchingWorkplansExecutions","executionStatus","geographicStatus","failFetchingWorkplansExecutions","completeFetchingWorkplanExecution","workplanExecution","workplanExecutionLocationsEntities","workplanExecutionLocationsOrder","failFetchingWorkplanExecution","failCancelWorkplansExecutions","failFinalizeWorkplansExecutions","completeManualTransitWorkplansExecutions","failManualTransitWorkplansExecutions","failChangeUnitWorkplansExecutions","completeAssignUnitWorkplansExecutions","failAssignUnitWorkplansExecutions","workplansExecutions","workplanExecutionLocations","fetchWorkplansExecutions","watchFetchWorkplansExecutions","fetchWorkplanExecution","watchFetchWorkplanExecution","cancelWorkplanExecution","watchCancelWorkplanExecution","finalizeWorkplanExecution","watchFinalizeWorkplanExecution","manualTransitWorkplanExecution","watchManualTransitWorkplanExecution","changeWorkplanExecutionUnit","watchChangeWorkplanExecutionUnit","assignWorkplanExecutionUnit","watchAsignWorkplanExecutionUnit","workplansList","locationsList","schemasWorkplanExecutionLocation","getDatabaseErrorFromString","match","exec","completeFetchingWorkplansReport","locationsEntities","locationsOrder","failFetchingWorkplansReport","location","fetchWorkplansReport","watchFetchWorkplansReport","locationsSchemas","workplansExecutionsSchemas","failFetchingWorkplansVisits","failFetchingWorkplansAllVisits","workplansVisit","workplansVisits","fetchWorkplansVisits","watchFetchWorkplansVisits","fetchWorkplansAllVisits","watchFetchWorkplansAllVisits","getWorkplanVisitsListService","getWorkplanAllVisitsListService","historicalSchemas","configuration","configurations","fetchConfigurationsList","watchFetchConfigurationsList","brandId","modelId","model","models","fetchModelsList","watchFetchModelsList","brand","fetchBrandsList","watchFetchBrandsList","currency","fetchCurrenciesList","watchFetchCurrenciesList","fetchTimeZonesList","watchFetchTimeZonesList","provider","fetchProvidersList","watchFetchProvidersList","country","fetchCountriesList","watchFetchCountriesList","vehicleMaker","fetchVehicleMakersList","watchFetchVehicleMakersList","vehicleModel","fetchVehicleModelsList","watchFetchVehicleModelsList","maker","insuranceCompany","fetchInsuranceCompaniesList","watchFetchInsuranceCompaniesList","insuranceAgent","fetchInsuranceAgentsList","watchFetchInsuranceAgentsList","sensorBrand","fetchSensorBrandsList","watchFetchSensorBrandsList","sensorModel","fetchSensorModelsList","watchFetchSensorModelsList","sensorMeasure","fetchSensorMeasuresList","watchFetchSensorMeasuresList","sensorId","sensorModelId","paymentMethod","getPaymentMethods","fetchPaymentMethodsList","watchFetchPaymentMethodsList","locationClass","fetchLocationClassesList","watchFetchLocationClassesList","sim","fetchSimsList","watchFetchSimsList","partialFetchSimsList","watchPartialFetchSimsList","addSim","watchAddSimsStarted","editSim","watchEditSimsStarted","removeSim","watchRemoveSimStarted","getSimsListService","simId","addedSim","iccid","editedSim","oldSim","simSelectors","deletedSim","vehicle","fetchVehiclesList","watchFetchVehiclesList","partialFetchVehiclesList","watchPartialFetchVehiclesList","addVehicle","watchAddVehiclesStarted","editVehicle","watchEditVehiclesStarted","removeVehicle","watchRemoveVehicleStarted","watchLicenseCheckStarted","getVehiclesListService","vehicleId","addedVehicle","vehicleName","editedVehicle","oldVehicle","deletedVehicle","licensePlate","LicensePlateStatus","asset","fetchAssetsList","watchFetchAssetsList","partialFetchAssetsList","watchPartialFetchAssetsList","addAsset","watchAddAssetsStarted","editAsset","watchEditAssetsStarted","removeAsset","watchRemoveAssetStarted","checkIdentifier","watchIdentifierCheckStarted","checkSecuritySealCode","watchSecuritySealCodeCheckStarted","getAssetsListService","assetId","addedAsset","assetIdentifier","editedAsset","oldAsset","assetSelectors","deletedAsset","AssetIdentifierStatus","securitySealCode","IsValid","sensorSchema","fetchSensorsList","watchFetchSensorsList","partialFetchSensorsList","watchPartialFetchSensorsList","addSensor","watchAddSensorsStarted","editSensor","watchEditSensorsStarted","removeSensor","watchRemoveSensorStarted","watchSensorIdentifierCheckStarted","sensorCalibrationStarted","watchSensorCalibrationStartStarted","sensorCalibrationFinalized","watchSensorCalibrationFinalizeStarted","getSensorsListService","saveSensorService","addedSensor","oldSensor","editedSensor","deleteSensorService","UniqueIdentifierStatus","fuelCalibrationStartService","fuelCalibrationFinalizeService","importedLocation","importedLocations","getLocationsListService","saveLocationService","deleteLocationService","importLocationsService","fetchLocationsList","watchFetchLocationsList","partialFetchLocationsList","watchPartialFetchLocationsList","addLocation","watchAddLocationsStarted","editLocation","watchEditLocationsStarted","removeLocation","watchRemoveLocationStarted","importLocations","watchImportLocationsStarted","addedLocation","entityActions","oldLocation","editedLocation","schemasImportedLocations","driver","fetchDriversList","watchFetchDriversList","partialFetchDriversList","watchPartialFetchDriversList","addDriver","watchAddDriversStarted","editDriver","watchEditDriversStarted","assignSensor","unassignSensor","watchAssignSensor","watchUnassignSensor","removeDriver","watchRemoveDriverStarted","importDriverAndUnitData","watchStartImportDriverAndUnit","assignDriversToUnits","watchAssignDriversToUnits","getDriversListService","person","saveDriverService","driverId","addedDriver","oldDriver","editedDriver","sensorName","deleteDriverService","importDriverAndUnit","driverPrivateCode","unitPrivateCode","unitSelectors","dataToImport","importedData","newData","driverAndUnit","warn","f","driversAndUnitsIds","d","join","assignDriversMassivelyService","job","importedJob","importedJobs","fetchJobsBacklogList","watchFetchJobsBacklogList","partialFetchJobsBacklogList","watchPartialFetchJobsBacklogList","addJobBacklog","watchAddJobsBacklogStarted","editJobBacklog","watchEditJobsBacklogStarted","removeJobsBacklog","watchRemoveJobsBacklogStarted","changeStatusJobsBacklog","watchChangeStatusJobsBacklogStarted","rescheduleJobs","watchRescheduleJobsStarted","changePriorityJobsBacklog","watchChangePriorityJobsBacklogStarted","changeStartDateJobsBacklog","watchChangeStartDateJobsBacklogStarted","changeDueDateJobsBacklog","watchChangeDueDateJobsBacklogStarted","changeMinMaxTimeJobsBacklog","watchChangeMinMaxTimeJobsBacklogStarted","assignUsersJobsBacklog","watchAssignUsersJobsBacklogStarted","assignFormsJobsBacklog","watchAssignFormsJobsBacklogStarted","assignFilesJobsBacklog","watchAssignFilesJobsBacklogStarted","importJobs","watchImportJobsStarted","getJobsBacklogListService","jobBacklog","saveJobBacklogService","jobId","addedJobBacklog","oldJobBacklog","editedJobBacklog","deleteJobsBacklogService","jobStatus","changeJobsStatusService","dueDate","rescheduleJobsService","jobPriority","changeJobsPriorityService","changeJobsStartDateService","changeJobsDueDateService","maxTime","changeJobsMinMaxTimeService","userNames","assignJobsUsersService","formIds","assignJobsFormsService","fileIds","assignJobsFilesService","reduce","acc","curr","files","importJobsService","schemasImportedJobs","fetchJobsBoardList","watchFetchJobsBoardList","changeStatusJobsBoard","watchChangeStatusJobsBoardStarted","getJobsBoardListService","changeJobsStatusBoardService","fetchJobsReportList","watchFetchJobsReportList","getJobsReportListService","jobsList","orderJobs","jobsByUserList","schemasJobByUser","jobsByUser","orderJobsByUser","fetchJob","watchFetchJob","getJobService","fetchGroupsList","watchFetchGroupsList","partialFetchGroupsList","watchPartialFetchGroupsList","fetchAllEntitiesInGroup","watchFetchAllEntitiesInGroup","addGroup","watchAddGroupStarted","addGroupWithEntities","watchAddGroupWithEntitiesStarted","editGroup","watchEditGroupsStarted","removeGroup","watchRemoveGroupStarted","leaveGroup","watchLeaveGroupStarted","editNotificationsConfiguration","watchEditConfigurationNotificationsStarted","removeEntitiesFromGroup","watchRemoveEntitiesFromGroup","addEntitiesToGroup","watchAddEntitiesToGroup","editUserPorfileInGroup","watchEditUserProfileInGroup","getGroupsListService","groupId","getAllEntitiesInGroupService","additionalOnSave","saveGroupService","groupName","owners","addedGroup","entityType","params","saveGroupWithEntitiesService","editedGroup","oldGroup","deleteGroupService","isAsesor","asesorUsername","leaveGroupService","partialEntityUrl","workPlanId","userNameInSession","profileId","quotation","fetchQuotationsList","watchFetchQuotationsList","partialFetchQuotationsList","watchPartialFetchQuotationsList","addQuotation","watchAddQuotationsStarted","copyQuotation","watchCopyQuotationsStarted","editQuotation","watchEditQuotationsStarted","approveDenyQuotationManagement","watchApproveDenyQuotationManagementStarted","acceptDenyQuotationCustomer","watchAcceptDenyQuotationCustomerStarted","scheduleQuotation","watchScheduleQuotationsStarted","checkQuotationScheduling","watchCheckQuotationSchedulingStarted","setTimesupQuotation","watchSetTimesupQuotationStarted","removeQuotation","watchRemoveQuotationStarted","addedQuotation","quotationNumber","fromQuotationId","copiedQuotation","editedQuotation","oldQuotation","quotationName","quotationLink","quotationScheduled","quotationIdDB","isScheduled","quotationStatus","isTimesup","showAlerts","deletedQuotation","organizationContract","fetchOrganizationContractsList","watchFetchOrganizationContractsList","partialFetchOrganizationContractsList","watchPartialFetchOrganizationContractsList","addOrganizationContract","watchAddOrganizationContractsStarted","editOrganizationContract","watchEditOrganizationContractsStarted","removeOrganizationContract","watchRemoveOrganizationContractStarted","contractId","addedOrganizationContract","contractNumber","editedOrganizationContract","oldOrganizationContract","deletedOrganizationContract","contractTemplate","fetchContractTemplatesList","watchFetchContractTemplatesList","partialFetchContractTemplatesList","watchPartialFetchContractTemplatesList","addContractTemplate","watchAddContractTemplatesStarted","editContractTemplate","watchEditContractTemplatesStarted","removeContractTemplate","watchRemoveContractTemplateStarted","templateId","addedContractTemplate","templateName","editedContractTemplate","oldContractTemplate","deletedContractTemplate","customer","getCustomersListService","saveCustomerService","customerId","customerName","deleteCustomerService","fetchCustomersList","watchFetchCustomersList","partialFetchCustomersList","watchPartialFetchCustomersList","addCustomer","watchAddCustomersStarted","editCustomer","watchEditCustomersStarted","removeCustomer","watchRemoveCustomerStarted","addedCustomer","addedOffice","office","oldCustomer","editedCustomer","editedOffice","getOfficesListService","saveOfficeService","officeId","officeName","deleteOfficeService","fetchOfficesList","watchFetchOfficesList","partialFetchOfficesList","watchPartialFetchOfficesList","addOffice","watchAddOfficesStarted","editOffice","watchEditOfficesStarted","removeOffice","watchRemoveOfficeStarted","oldOffice","formSchema","sectionSchema","sections","questionSchema","questions","responseSchema","questionResponse","mergeStrategy","entityA","entityB","util","responses","getFormsListService","getFormsSectionsListService","getFormsQuestionsListService","saveFormService","organizationFormId","formName","saveExternalFormService","saveResponseFormService","resendResponseFormService","fetchFormsList","watchFetchFormsList","partialFetchFormsList","watchPartialFetchFormsList","fetchSections","watchFetchSections","fetchQuestions","watchFetchQuestions","addForm","watchAddFormsStarted","editForm","watchEditFormsStarted","addFormExternal","watchAddExternalFormsStarted","editFormExternal","watchEditExternalFormsStarted","removeForm","watchRemoveFormStarted","saveResponse","watchResponseAddedStarted","getResponses","watchResponseFetchStarted","resendResponse","watchResponseResendStarted","formId","addedForm","oldForm","editedForm","deletedForm","organizationFormName","formResponse","definition","answers","camelDefinition","finalObject","uniq","answer","responseIds","category","saveCategory","categoryName","categoryId","deleteCategory","getCategoryList","fetchCategoriesList","watchFetchCategoriesList","partialFetchCategoriesList","watchPartialFetchCategoriesList","addCategory","watchAddCategoriesStarted","editCategory","watchEditCategoriesStarted","removeCategory","watchRemoveCategoryStarted","addedData","tempId","maintenanceLine","getMaintenanceLinesListService","saveMaintenanceLineService","maintenanceLineId","maintenanceLineName","deleteMaintenanceLineService","copyMaintenanceLineService","fetchMaintenanceLinesList","watchFetchMaintenanceLinesList","partialFetchMaintenanceLinesList","watchPartialFetchMaintenanceLinesList","addMaintenanceLine","watchAddMaintenanceLinesStarted","editMaintenanceLine","watchEditMaintenanceLinesStarted","removeMaintenanceLine","watchRemoveMaintenanceLineStarted","copyMaintenanceLine","watchCopyMaintenanceLineStarted","mapStringToObject","range","odometer","description","maintenanceRangeId","Number","r","maintenanceRangesByHourMeter","maintenanceRangesByOdometer","addedMaintenanceLine","oldMaintenanceLine","editedMaintenanceLine","copiedMaintenanceLine","notice","noticeId","notices","saveNoticeByOdometer","saveNoticeByHourmeter","saveNoticeByDate","deleteNotice","getNoticeByOdometerList","getNoticeByDateList","getNoticeByHourmeterList","renewNoticeByOdometer","renewNoticeByHourmeter","fetchNoticesList","watchFetchNoticesList","partialFetchNoticesList","watchPartialFetchNoticesList","addNotice","watchAddNoticesStarted","editNotice","watchEditNoticesStarted","renewNotice","watchRenewNoticesStarted","removeNotice","watchRemoveNoticeStarted","entitiesCop","getPreventiveNoticesByOdometerFormattedData","saveProviderCategory","providerName","providerId","deleteProviderCategory","getProviderList","partialFetchProvidersList","watchPartialFetchProvidersList","addProvider","watchAddProvidersStarted","editProvider","watchEditProvidersStarted","removeProvider","watchRemoveProviderStarted","workmanships","saveWorkmanshipCategory","workmanshipId","deleteWorkmanshipCategory","getWorkmanshipsList","fetchWorkmanshipsList","watchFetchWorkmanshipsList","partialFetchWorkmanshipsList","watchPartialFetchWorkmanshipsList","addWorkmanship","watchAddWorkmanshipsStarted","editWorkmanship","watchEditWorkmanshipsStarted","removeWorkmanship","watchRemoveWorkmanshipStarted","sparePart","saveSparePartCategory","sparePartName","sparePartId","deleteSparePartCategory","getSparePartList","fetchSparePartsList","watchFetchSparePartsList","partialFetchSparePartsList","watchPartialFetchSparePartsList","addSparePart","watchAddSparePartsStarted","editSparePart","watchEditSparePartsStarted","removeSparePart","watchRemoveSparePartStarted","protocol","getProtocolsListService","saveProtocolService","protocolId","protocolName","deleteProtocolService","fetchProtocolsList","watchFetchProtocolsList","partialFetchProtocolsList","watchPartialFetchProtocolsList","addProtocol","watchAddProtocolStarted","editProtocol","watchEditProtocolStarted","removeProtocol","watchRemoveProtocolStarted","addedProtocol","oldProtocol","editedProtocol","mainSaga","fork","watchFetchNoticesList2","watchPartialFetchNoticesList2","watchAddNoticesStarted2","watchEditNoticesStarted2","watchRemoveNoticeStarted2","watchRenewNoticesStarted2","watchFetchNoticesList3","watchPartialFetchNoticesList3","watchAddNoticesStarted3","watchEditNoticesStarted3","watchRemoveNoticeStarted3","watchRenewNoticesStarted3","watchFetchProvidersList2","sagaMiddleware","createSagaMiddleware","persistConfig","timeout","persistedReducer","composeEnhancers","compose","__REDUX_DEVTOOLS_EXTENSION_COMPOSE__","trace","traceLimit","runSaga","run","injectEnhancer","createInjectorsEnhancer","createReducer","createStore","applyMiddleware","persistor","persistStore","FORMS_FETCH_STARTED","FORMS_FETCH_COMPLETED","FORMS_FETCH_FAILED","FORMS_PARTIAL_FETCH_STARTED","FORMS_PARTIAL_FETCH_COMPLETED","FORMS_PARTIAL_FETCH_FAILED","FORM_SECTIONS_FETCH_STARTED","FORM_SECTIONS_FETCH_COMPLETED","FORM_SECTIONS_FETCH_FAILED","FORM_QUESTIONS_FETCH_STARTED","FORM_QUESTIONS_FETCH_COMPLETED","FORM_QUESTIONS_FETCH_FAILED","FORM_ADD_STARTED","FORM_ADD_COMPLETED","FORM_ADD_FAILED","FORM_SECTION_ADD_STARTED","FORM_EDIT_STARTED","FORM_EDIT_COMPLETED","FORM_EDIT_FAILED","FORM_EXTERNAL_ADD_STARTED","FORM_EXTERNAL_EDIT_STARTED","FORM_REMOVE_STARTED","FORM_REMOVE_COMPLETED","FORM_REMOVE_FAILED","FORM_RESPONSE_SAVE_STARTED","FORM_RESPONSE_SAVE_COMPLETED","FORM_RESPONSE_SAVE_FAILED","FORM_SELECTED","FORMS_ALL_SELECTED","FORM_DESELECTED","FORMS_ALL_DESELECTED","FORMS_ALL_QUESTIONS_CLEARED","FORM_SECTION_ADDED","FORM_SECTION_DELETED","FORM_SECTION_MOVED","FORM_SECTION_NAME_EDITED","FORM_SECTION_COPIED","FORM_SECTION_CHANGE_COLLAPSED","FORM_SECTIONS_SET","FORM_ROW_ADDED","FORM_ROW_DELETED","FORM_ROW_MOVED","FORM_ROW_NAME_EDITED","FORM_QUESTION_ADDED","FORM_QUESTION_DELETED","FORM_QUESTION_MOVED","FORM_QUESTION_COPIED","FORM_QUESTION_SET","FORM_QUESTION_NAME_EDITED","FORM_QUESTION_HEIGHT_EDITED","FORM_QUESTION_CHANGE_COLLAPSED","FORM_RESPONSE_FETCH_STARTED","FORM_RESPONSE_FETCH_COMPLETED","FORM_RESPONSE_FETCH_FAILED","FORM_RESPONSE_RESEND_STARTED","FORM_RESPONSE_RESEND_COMPLETED","FORM_RESPONSE_RESEND_FAILED","FORM_ANSWER_ADDED","FORM_ANSWER_MOVED","FORM_ANSWER_EDITED","FORM_ANSWER_DELETED","FORM_ANSWER_SELECTED","FORM_ANSWER_DESELECTED","FORM_RESPONSES_CLEARED","FORM_QUESTIONS_CLEARED","GROUPS_FETCH_STARTED","GROUPS_FETCH_COMPLETED","GROUPS_FETCH_FAILED","GROUPS_PARTIAL_FETCH_STARTED","GROUPS_PARTIAL_FETCH_COMPLETED","GROUPS_PARTIAL_FETCH_FAILED","GROUPS_ALL_ENTITIES_FETCH_STARTED","GROUPS_ALL_ENTITIES_FETCH_COMPLETED","GROUPS_ALL_ENTITIES_FETCH_FAILED","GROUP_EDIT_STARTED","GROUP_EDIT_COMPLETED","GROUP_EDIT_FAILED","GROUP_ADD_STARTED","GROUP_ADD_COMPLETED","GROUP_ADD_FAILED","GROUP_ADD_WITH_ENTITIES_STARTED","GROUP_ADD_WITH_ENTITIES_COMPLETED","GROUP_ADD_WITH_ENTITIES_FAILED","GROUP_REMOVE_STARTED","GROUP_REMOVE_COMPLETED","GROUP_REMOVE_FAILED","GROUP_LEAVE_STARTED","GROUP_LEAVE_COMPLETED","GROUP_LEAVE_FAILED","GROUP_EDIT_NOTIFICATIONS_CONFIGURATION_STARTED","GROUP_EDIT_NOTIFICATIONS_CONFIGURATION_COMPLETED","GROUP_EDIT_NOTIFICATIONS_CONFIGURATION_FAILED","GROUP_REMOVE_ENTITIES_STARTED","GROUP_REMOVE_ENTITIES_COMPLETED","GROUP_ADD_ENTITIES_STARTED","GROUP_ADD_ENTITIES_COMPLETED","GROUP_USER_PROFILE_EDIT_STARTED","GROUP_USER_PROFILE_EDIT_COMPLETED","GROUP_SELECTED","GROUPS_ALL_SELECTED","GROUP_DESELECTED","GROUPS_ALL_DESELECTED","JOBS_BACKLOG_FETCH_STARTED","JOBS_BACKLOG_FETCH_COMPLETED","JOBS_BACKLOG_FETCH_FAILED","JOBS_BACKLOG_PARTIAL_FETCH_STARTED","JOBS_BACKLOG_PARTIAL_FETCH_COMPLETED","JOBS_BACKLOG_PARTIAL_FETCH_FAILED","JOB_BACKLOG_ADD_STARTED","JOB_BACKLOG_ADD_COMPLETED","JOB_BACKLOG_ADD_FAILED","JOB_BACKLOG_EDIT_STARTED","JOB_BACKLOG_EDIT_COMPLETED","JOB_BACKLOG_EDIT_FAILED","JOB_BACKLOG_SELECTED","JOBS_BACKLOG_ALL_SELECTED","JOB_BACKLOG_DESELECTED","JOBS_BACKLOG_ALL_DESELECTED","JOBS_BACKLOG_REMOVE_STARTED","JOBS_BACKLOG_REMOVE_COMPLETED","JOBS_BACKLOG_REMOVE_FAILED","JOBS_BACKLOG_CHANGE_STATUS_STARTED","JOBS_BACKLOG_CHANGE_STATUS_COMPLETED","JOBS_BACKLOG_CHANGE_STATUS_FAILED","JOBS_BACKLOG_CHANGE_PRIORITY_STARTED","JOBS_BACKLOG_CHANGE_PRIORITY_COMPLETED","JOBS_BACKLOG_CHANGE_PRIORITY_FAILED","JOBS_BACKLOG_CHANGE_JOB_TYPE_COMPLETED","JOBS_BACKLOG_CHANGE_START_DATE_STARTED","JOBS_BACKLOG_CHANGE_START_DATE_COMPLETED","JOBS_BACKLOG_CHANGE_START_DATE_FAILED","JOBS_BACKLOG_CHANGE_DUE_DATE_STARTED","JOBS_BACKLOG_CHANGE_DUE_DATE_COMPLETED","JOBS_BACKLOG_CHANGE_DUE_DATE_FAILED","JOBS_BACKLOG_CHANGE_MIN_MAX_TIME_STARTED","JOBS_BACKLOG_CHANGE_MIN_MAX_TIME_COMPLETED","JOBS_BACKLOG_CHANGE_MIN_MAX_TIME_FAILED","JOBS_BACKLOG_ASSIGN_USERS_STARTED","JOBS_BACKLOG_ASSIGN_USERS_COMPLETED","JOBS_BACKLOG_ASSIGN_USERS_FAILED","JOBS_BACKLOG_ASSIGN_FORMS_STARTED","JOBS_BACKLOG_ASSIGN_FORMS_COMPLETED","JOBS_BACKLOG_ASSIGN_FORMS_FAILED","JOBS_BACKLOG_ASSIGN_FILES_STARTED","JOBS_BACKLOG_ASSIGN_FILES_COMPLETED","JOBS_BACKLOG_ASSIGN_FILES_FAILED","JOBS_BACKLOG_RESCHEDULE_JOBS_STARTED","JOBS_BACKLOG_RESCHEDULE_JOBS_COMPLETED","JOBS_BACKLOG_RESCHEDULE_JOBS_FAILED","JOBS_BACKLOG_IMPORT_STARTED","JOBS_BACKLOG_IMPORT_COMPLETED","JOBS_BACKLOG_IMPORT_FAILED","WORKPLANS_FETCH_STARTED","WORKPLANS_FETCH_COMPLETED","WORKPLANS_FETCH_FAILED","WORKPLANS_PARTIAL_FETCH_STARTED","WORKPLANS_PARTIAL_FETCH_COMPLETED","WORKPLANS_PARTIAL_FETCH_FAILED","WORKPLAN_LOCATIONS_FETCH_COMPLETED","WORKPLAN_LOCATIONS_FETCH_FAILED","WORKPLAN_ADD_STARTED","WORKPLAN_ADD_COMPLETED","WORKPLAN_ADD_FAILED","WORKPLAN_EDIT_STARTED","WORKPLAN_EDIT_COMPLETED","WORKPLAN_EDIT_FAILED","WORKPLAN_REMOVE_STARTED","WORKPLAN_REMOVE_COMPLETED","WORKPLAN_REMOVE_FAILED","WORKPLAN_SELECTED","WORKPLANS_ALL_SELECTED","WORKPLAN_DESELECTED","WORKPLANS_ALL_DESELECTED","WORKPLAN_COPY_STARTED","WORKPLAN_COPY_COMPLETED","WORKPLAN_COPY_FAILED","WORKPLANS_ASSIGN_ORIGIN_GEOFENCE_STARTED","WORKPLANS_ASSIGN_ORIGIN_GEOFENCE_COMPLETED","WORKPLANS_ASSIGN_ORIGIN_GEOFENCE_FAILED","WORKPLANS_ASSIGN_WORK_AREA_GEOFENCE_STARTED","WORKPLANS_ASSIGN_WORK_AREA_GEOFENCE_COMPLETED","WORKPLANS_ASSIGN_WORK_AREA_GEOFENCE_FAILED","WORKPLANS_ASSIGN_DESTINATION_GEOFENCE_STARTED","WORKPLANS_ASSIGN_DESTINATION_GEOFENCE_COMPLETED","WORKPLANS_ASSIGN_DESTINATION_GEOFENCE_FAILED","ENTITY_SUBDIVISONS","ENTITY_VEHICLES","ENTITY_SIM_CARDS","ENTITY_MODULES","ENTITY_DRIVERS","ENTITY_AGENTS","ENTITY_SERVICE_CLASSES","ENTITY_USERS","ENTITY_OPERATORS","ENTITY_DIVISIONS","ENTITY_ORGANIZATIONS","ENTITY_CONTACTS","ENTITY_WORKPLANS","ENTITY_GEOFENCES","ENTITY_SCHEDULES","ENTITY_FORMS","ENTITY_ROUTES","ENTITY_COUNTRIES","ENTITY_LOCATIONS","ENTITY_ASSETS","ENTITY_SENSORS","ENTITY_JOBS_BACKLOG","ENTITY_GROUPS","ENTITY_ORGANIZATION_CONTRACTS","ENTITY_CUSTOMERS","ENTITY_MAINTENANCE_LINES","ENTITY_CONTRACT_TEMPLATES","ENTITY_QUOTATIONS","ENTITY_OFFICES","ENTITY_PROTOCOLS","defaultEntitiesToFetchAftetLogin","AUDIT_ENTITY_UNIT_MAIN_STATE_TYPE_ID_LOOKUP","AUDIT_ENTITY_UNIT_STATUS_LOOKUP","AUDIT_ENTITY_UNIT_THEME_ID_LOOKUP","AUDIT_ENTITY_UNIT_TYPE_ID_LOOKUP","QUOTATIONS_FETCH_STARTED","QUOTATIONS_FETCH_COMPLETED","QUOTATIONS_FETCH_FAILED","QUOTATIONS_PARTIAL_FETCH_STARTED","QUOTATIONS_PARTIAL_FETCH_COMPLETED","QUOTATIONS_PARTIAL_FETCH_FAILED","QUOTATIONS_ADD_STARTED","QUOTATIONS_ADD_COMPLETED","QUOTATIONS_ADD_FAILED","QUOTATIONS_EDIT_STARTED","QUOTATIONS_EDIT_COMPLETED","QUOTATIONS_EDIT_FAILED","QUOTATIONS_REMOVE_STARTED","QUOTATIONS_REMOVE_COMPLETED","QUOTATIONS_REMOVE_FAILED","QUOTATIONS_SCHEDULE_STARTED","QUOTATIONS_SCHEDULE_COMPLETED","QUOTATIONS_SCHEDULE_FAILED","QUOTATIONS_CHECK_SCHEDULING_STARTED","QUOTATIONS_CHECK_SCHEDULING_COMPLETED","QUOTATIONS_CHECK_SCHEDULING_FAILED","QUOTATIONS_SET_TIMESUP_STARTED","QUOTATIONS_SET_TIMESUP_COMPLETED","QUOTATIONS_SET_TIMESUP_FAILED","QUOTATIONS_SELECTED","QUOTATIONS_ALL_SELECTED","QUOTATIONS_DESELECTED","QUOTATIONS_ALL_DESELECTED","QUOTATION_APPROVE_DENY_MANAGEMENT_STARTED","QUOTATION_APPROVE_DENY_MANAGEMENT_FAILED","QUOTATION_APPROVE_DENY_MANAGEMENT_COMPLETED","QUOTATION_ACCEPT_DENY_CUSTOMER_STARTED","QUOTATION_ACCEPT_DENY_CUSTOMER_FAILED","QUOTATION_ACCEPT_DENY_CUSTOMER_COMPLETED","QUOTATION_COPY_STARTED","QUOTATION_COPY_FAILED","QUOTATION_COPY_COMPLETED","QUOTATION_CHANGE_ORGANIZATION","ORGANIZATIONS_FETCH_STARTED","ORGANIZATIONS_FETCH_COMPLETED","ORGANIZATIONS_FETCH_FAILED","ORGANIZATIONS_PARTIAL_FETCH_STARTED","ORGANIZATIONS_PARTIAL_FETCH_COMPLETED","ORGANIZATIONS_PARTIAL_FETCH_FAILED","ORGANIZATION_ADD_STARTED","ORGANIZATION_ADD_COMPLETED","ORGANIZATION_ADD_FAILED","ORGANIZATION_EDIT_STARTED","ORGANIZATION_EDIT_COMPLETED","ORGANIZATION_EDIT_FAILED","ORGANIZATION_REMOVE_STARTED","ORGANIZATION_REMOVE_COMPLETED","ORGANIZATION_REMOVE_FAILED","ORGANIZATION_SELECTED","ORGANIZATIONS_ALL_SELECTED","ORGANIZATION_DESELECTED","ORGANIZATIONS_ALL_DESELECTED","ORGANIZATION_CODE_CHECK_STARTED","ORGANIZATION_CODE_CHECK_COMPLETED","ORGANIZATION_CODE_CHECK_FAILED","ORGANIZATION_CODE_ASSIGN_STARTED","ORGANIZATION_CODE_ASSIGN_COMPLETED","ORGANIZATION_CODE_ASSIGN_FAILED","ORGANIZATION_SAVE_CONSOLIDABLE_EVENTS_STARTED","ORGANIZATION_SAVE_CONSOLIDABLE_EVENTS_COMPLETED","ORGANIZATION_SAVE_CONSOLIDABLE_EVENTS_FAILED","ORGANIZATION_DOWNTIME_REASON_ADD_STARTED","ORGANIZATION_DOWNTIME_REASON_ADD_COMPLETED","ORGANIZATION_DOWNTIME_REASON_ADD_FAILED","ORGANIZATION_DOWNTIME_REASON_EDIT_STARTED","ORGANIZATION_DOWNTIME_REASON_EDIT_COMPLETED","ORGANIZATION_DOWNTIME_REASON_EDIT_FAILED","ORGANIZATION_DOWNTIME_REASON_REMOVE_STARTED","ORGANIZATION_DOWNTIME_REASON_REMOVE_COMPLETED","ORGANIZATION_DOWNTIME_REASON_REMOVE_FAILED","ROUTES_EXECUTIONS_FETCH_STARTED","ROUTES_EXECUTIONS_FETCH_COMPLETED","ROUTES_EXECUTIONS_FETCH_FAILED","ROUTE_EXECUTION_EDIT_STARTED","ROUTE_EXECUTION_EDIT_COMPLETED","ROUTE_EXECUTION_EDIT_FAILED","ROUTES_EXECUTION_CANCEL_STARTED","ROUTES_EXECUTION_CANCEL_COMPLETED","ROUTES_EXECUTION_CANCEL_FAILED","ROUTES_EXECUTION_FINALIZE_STARTED","ROUTES_EXECUTION_FINALIZE_COMPLETED","ROUTES_EXECUTION_FINALIZE_FAILED","ROUTES_EXECUTION_REMOVE_STARTED","ROUTES_EXECUTION_REMOVE_COMPLETED","ROUTES_EXECUTION_REMOVE_FAILED","ROUTES_EXECUTION_COMPLETE_STARTED","ROUTES_EXECUTION_COMPLETE_COMPLETED","ROUTES_EXECUTION_COMPLETE_FAILED","ROUTES_EXECUTION_PAUSE_STARTED","ROUTES_EXECUTION_PAUSE_COMPLETED","ROUTES_EXECUTION_PAUSE_FAILED","ROUTES_EXECUTION_START_STARTED","ROUTES_EXECUTION_START_COMPLETED","ROUTES_EXECUTION_START_FAILED","ROUTES_EXECUTION_MANUAL_TRANSIT_STARTED","ROUTES_EXECUTION_MANUAL_TRANSIT_COMPLETED","ROUTES_EXECUTION_MANUAL_TRANSIT_FAILED","ROUTE_CHANGE_TO_ALTERNATE_ROUTE_STARTED","ROUTE_CHANGE_TO_ALTERNATE_ROUTE_COMPLETED","ROUTE_CHANGE_TO_ALTERNATE_ROUTE_FAILED","ROUTES_EXECUTION_SHARE_STARTED","ROUTES_EXECUTION_SHARE_COMPLETED","ROUTES_EXECUTION_SHARE_FAILED","ROUTES_EXECUTION_ASSIGN_UNIT_STARTED","ROUTES_EXECUTION_ASSIGN_UNIT_COMPLETED","ROUTES_EXECUTION_ASSIGN_UNIT_FAILED","ROUTES_FETCH_STARTED","ROUTES_FETCH_COMPLETED","ROUTES_FETCH_FAILED","ROUTES_PARTIAL_FETCH_STARTED","ROUTES_PARTIAL_FETCH_COMPLETED","ROUTES_PARTIAL_FETCH_FAILED","ROUTE_ADD_STARTED","ROUTE_ADD_COMPLETED","ROUTE_ADD_FAILED","ROUTE_EDIT_STARTED","ROUTE_EDIT_COMPLETED","ROUTE_EDIT_FAILED","ROUTE_REMOVE_STARTED","ROUTE_REMOVE_COMPLETED","ROUTE_REMOVE_FAILED","ROUTES_REMOVE_STARTED","ROUTES_REMOVE_COMPLETED","ROUTES_REMOVE_FAILED","ROUTE_SELECTED","ROUTES_ALL_SELECTED","ROUTE_DESELECTED","ROUTES_ALL_DESELECTED","ROUTE_COPY_STARTED","ROUTE_COPY_COMPLETED","ROUTE_COPY_FAILED","ROUTE_SHOW_IN_MAP","ROUTE_HIDE_IN_MAP","ROUTES_ALL_SHOW_IN_MAP","ROUTES_ALL_HIDE_IN_MAP","DASHBOARD","MAP","REPORTS","TRACKING_UNITS","GEOFENCES_CATALOG","ASSIGNED_GEOFENCES","LOCATIONS_CATALOG","IMPORT_LOCATIONS","BACKLOG_JOBS","JOBS_BOARD","JOBS_REPORT","JOBS_WORK_ACTIVITY","SAFE_DRIVER","LOGISTIC_ROUTE_CATALOG","LOGISTIC_ROUTE_MONITOR","LOGISTIC_ROUTE_REPORT","ASSIGN_LOGISTIC_ROUTE","WORK_PLAN_CATALOG","WORK_PLAN_MONITOR","WORK_PLAN_REPORT","ASSIGN_WORK_PLAN","TEMPERATURE_TELEMETRY","FUEL_TELEMETRY_MONITOR","PREVENTIVE_NOTICES","SPAREPARTS_CATALOG","WORKMANSHIPS_CATALOG","SPAREPARTS_CATEGORIES_CATALOG","SPAREPARTS_PROVIDERS_CATALOG","GENERAL_MAINTENANCE_REPORT","BY_CATEGORY_REPORT","BY_UNIT_REPORT","BY_WORKSHOP_REPORT","IMPORT_MAINTENANCE_TICKETS","NEW_TICKET","IMPORT_FUEL_TICKETS","FUEL_TICKETS_CONSOLIDATED_REPORT","FUEL_TICKETS_REPORT_BY_UNIT","OPERATOR","ORGANIZATION","DIVISION","SUBDIVISION","SERVICE_CLASSES","AGENT","GROUPS","SHIFT","TRIGGER","USERS","DRIVERS","PEOPLE","FORMS_CATALOG","ANSWERS_FORMS","DEVICES","SIMS","SENSORS","ASSETS","VEHICLES","EMAIL_NOTIFICATIONS","CONSOLE_NOTIFICATIONS","WEB_SERVICE_NOTIFICATIONS","IMPORT_JOBS","SCHEDULED_WORKPLANS","FUEL_TELEMETRY_REPORT","CONTRACTS","FLEET","CUSTOMERS","CONTACTS","MAINTENANCE_RANGES","CONTRACT_TEMPLATES","QUOTATIONS","OPTIMIZATIONS","IMPORT_ROUTE_ASSIGNMENTS","RECORD_MULTIPLE_TICKETS","BUSINESS_PARTNERS","WEB_SERVICE_RATES","TELEMETRY_UNITS","WORKSHOP_ADD_ORDER","TELEMETRY_OBD2","FUEL_TELEMETRY_REPORT_BY_VEHICLES","PROTOCOL_CATALOG","GEOFENCES_FETCH_STARTED","GEOFENCES_FETCH_COMPLETED","GEOFENCES_FETCH_FAILED","GEOFENCES_PARTIAL_FETCH_STARTED","GEOFENCES_PARTIAL_FETCH_COMPLETED","GEOFENCES_PARTIAL_FETCH_FAILED","GEOFENCE_ADD_STARTED","GEOFENCE_ADD_COMPLETED","GEOFENCE_ADD_FAILED","GEOFENCE_EDIT_STARTED","GEOFENCE_EDIT_COMPLETED","GEOFENCE_EDIT_FAILED","GEOFENCE_REMOVE_STARTED","GEOFENCE_REMOVE_COMPLETED","GEOFENCE_REMOVE_FAILED","GEOFENCE_SELECTED","GEOFENCES_ALL_SELECTED","GEOFENCE_DESELECTED","GEOFENCES_ALL_DESELECTED","GEOFENCE_SHOW_IN_MAP","GEOFENCES_ALL_SHOW_IN_MAP","GEOFENCE_HIDE_IN_MAP","GEOFENCES_ALL_HIDE_IN_MAP","GEOFENCE_ASSIGN_UNIT_STARTED","GEOFENCE_ASSIGN_UNIT_COMPLETED","GEOFENCE_ASSIGN_UNIT_FAILED","GEOFENCE_ASSIGNATION_REMOVE_STARTED","GEOFENCE_ASSIGNATION_REMOVE_COMPLETED","GEOFENCE_ASSIGNATION_REMOVE_FAILED","GEOFENCE_ASSIGNATION_REMOVE_BY_GEOFENCES_STARTED","GEOFENCE_ASSIGNATION_REMOVE_BY_UNITS_STARTED","GEOFENCE_ASSIGNATION_EDIT_STARTED","GEOFENCE_ASSIGNATION_EDIT_COMPLETED","GEOFENCE_ASSIGNATION_EDIT_FAILED","MONITORING_USERS_FETCH_STARTED","MONITORING_USERS_FETCH_COMPLETED","MONITORING_USERS_FETCH_FAILED","MONITORING_USERS_PARTIAL_FETCH_STARTED","MONITORING_USERS_PARTIAL_FETCH_COMPLETED","MONITORING_USERS_PARTIAL_FETCH_FAILED","MONITORING_USER_ADD_STARTED","MONITORING_USER_ADD_COMPLETED","MONITORING_USER_ADD_FAILED","MONITORING_USER_EDIT_STARTED","MONITORING_USER_EDIT_COMPLETED","MONITORING_USER_EDIT_FAILED","MONITORING_USER_REMOVE_STARTED","MONITORING_USER_REMOVE_COMPLETED","MONITORING_USER_REMOVE_FAILED","MONITORING_USER_FETCH_STARTED","MONITORING_USER_FETCH_COMPLETED","MONITORING_USER_FETCH_FAILED","MONITORING_USER_SELECTED","MONITORING_USERS_ALL_SELECTED","MONITORING_USER_DESELECTED","MONITORING_USERS_ALL_DESELECTED","MONITORING_USER_UPDATE_PASSWORD_STARTED","MONITORING_USER_UPDATE_PASSWORD_COMPLETED","MONITORING_USER_UPDATE_PASSWORD_FAILED","MONITORING_USER_SAVE_ROLES_PERMISSIONS_STARTED","MONITORING_USER_SAVE_ROLES_PERMISSIONS_COMPLETED","USERS_ASSIGN_SCHEDULE_STARTED","USERS_ASSIGN_SCHEDULE_COMPLETED","USERS_UNASSIGN_SCHEDULE_STARTED","USERS_UNASSIGN_SCHEDULE_COMPLETED","LOCATIONS_FETCH_STARTED","LOCATIONS_FETCH_COMPLETED","LOCATIONS_FETCH_FAILED","LOCATIONS_PARTIAL_FETCH_STARTED","LOCATIONS_PARTIAL_FETCH_COMPLETED","LOCATIONS_PARTIAL_FETCH_FAILED","LOCATION_ADD_STARTED","LOCATION_ADD_COMPLETED","LOCATION_ADD_FAILED","LOCATION_EDIT_STARTED","LOCATION_EDIT_COMPLETED","LOCATION_EDIT_FAILED","LOCATION_REMOVE_STARTED","LOCATION_REMOVE_COMPLETED","LOCATION_REMOVE_FAILED","LOCATIONS_IMPORT_STARTED","LOCATIONS_IMPORT_COMPLETED","LOCATIONS_IMPORT_FAILED","LOCATION_SELECTED","LOCATIONS_ALL_SELECTED","LOCATION_DESELECTED","LOCATIONS_ALL_DESELECTED","LOCATION_SHOW_IN_MAP","LOCATIONS_ALL_SHOW_IN_MAP","LOCATION_HIDE_IN_MAP","LOCATIONS_ALL_HIDE_IN_MAP","DRIVERS_FETCH_STARTED","DRIVERS_FETCH_COMPLETED","DRIVERS_FETCH_FAILED","DRIVERS_PARTIAL_FETCH_STARTED","DRIVERS_PARTIAL_FETCH_COMPLETED","DRIVERS_PARTIAL_FETCH_FAILED","DRIVER_ADD_STARTED","DRIVER_ADD_COMPLETED","DRIVER_ADD_FAILED","DRIVER_EDIT_STARTED","DRIVER_EDIT_COMPLETED","DRIVER_EDIT_FAILED","DRIVER_REMOVE_STARTED","DRIVER_REMOVE_COMPLETED","DRIVER_REMOVE_FAILED","DRIVER_SELECTED","DRIVERS_ALL_SELECTED","DRIVER_DESELECTED","DRIVERS_ALL_DESELECTED","START_IMPORT_DRIVERS_UNITS_IMPORT","COMPLETE_IMPORT_DRIVERS_UNITS_IMPORT","START_MASSIVE_DRIVERS_ASSIGNMENT","COMPLETE_MASSIVE_DRIVERS_ASSIGNMENT","DRIVER_ASSIGN_SENSOR_STARTED","DRIVER_ASSIGN_SENSOR_COMPLETED","DRIVER_UNASSIGN_SENSOR_STARTED","DRIVER_UNASSIGN_SENSOR_COMPLETED","SENSORS_FETCH_STARTED","SENSORS_FETCH_COMPLETED","SENSORS_FETCH_FAILED","SENSORS_PARTIAL_FETCH_STARTED","SENSORS_PARTIAL_FETCH_COMPLETED","SENSORS_PARTIAL_FETCH_FAILED","SENSOR_FETCH_STARTED","SENSOR_FETCH_COMPLETED","SENSOR_FETCH_FAILED","SENSOR_ADD_STARTED","SENSOR_ADD_COMPLETED","SENSOR_ADD_FAILED","SENSOR_EDIT_STARTED","SENSOR_EDIT_COMPLETED","SENSOR_EDIT_FAILED","SENSOR_REMOVE_STARTED","SENSOR_REMOVE_COMPLETED","SENSOR_REMOVE_FAILED","SENSOR_SELECTED","SENSORS_ALL_SELECTED","SENSOR_DESELECTED","SENSORS_ALL_DESELECTED","IDENTIFIER_CHECK_STARTED","IDENTIFIER_CHECK_COMPLETED","IDENTIFIER_CHECK_FAILED","START_SENSOR_CALIBRATION_STARTED","START_SENSOR_CALIBRATION_COMPLETED","START_SENSOR_CALIBRATION_FAILED","FINALIZE_SENSOR_CALIBRATION_STARTED","FINALIZE_SENSOR_CALIBRATION_COMPLETED","FINALIZE_SENSOR_CALIBRATION_FAILED","SCHEDULES_FETCH_STARTED","SCHEDULES_FETCH_COMPLETED","SCHEDULES_FETCH_FAILED","SCHEDULES_PARTIAL_FETCH_STARTED","SCHEDULES_PARTIAL_FETCH_COMPLETED","SCHEDULES_PARTIAL_FETCH_FAILED","SCHEDULE_ADD_STARTED","SCHEDULE_ADD_COMPLETED","SCHEDULE_ADD_FAILED","SCHEDULE_SHIFT_ADD_STARTED","SCHEDULE_SHIFT_ADD_COMPLETED","SCHEDULE_SHIFT_ADD_FAILED","SCHEDULE_EDIT_STARTED","SCHEDULE_EDIT_COMPLETED","SCHEDULE_EDIT_FAILED","SCHEDULE_SHIFT_EDIT_STARTED","SCHEDULE_SHIFT_EDIT_COMPLETED","SCHEDULE_SHIFT_EDIT_FAILED","SCHEDULE_REMOVE_STARTED","SCHEDULE_REMOVE_COMPLETED","SCHEDULE_REMOVE_FAILED","SCHEDULE_SELECTED","SCHEDULES_ALL_SELECTED","SCHEDULE_DESELECTED","SCHEDULES_ALL_DESELECTED","ASSETS_FETCH_STARTED","ASSETS_FETCH_COMPLETED","ASSETS_FETCH_FAILED","ASSETS_PARTIAL_FETCH_STARTED","ASSETS_PARTIAL_FETCH_COMPLETED","ASSETS_PARTIAL_FETCH_FAILED","ASSET_ADD_STARTED","ASSET_ADD_COMPLETED","ASSET_ADD_FAILED","ASSET_EDIT_STARTED","ASSET_EDIT_COMPLETED","ASSET_EDIT_FAILED","ASSET_REMOVE_STARTED","ASSET_REMOVE_COMPLETED","ASSET_REMOVE_FAILED","ASSET_SELECTED","ASSETS_ALL_SELECTED","ASSET_DESELECTED","ASSETS_ALL_DESELECTED","ASSET_IDENTIFIER_CHECK_STARTED","ASSET_IDENTIFIER_CHECK_COMPLETED","ASSET_IDENTIFIER_CHECK_FAILED","ASSET_SECURITY_SEAL_CODE_CHECK_STARTED","ASSET_SECURITY_SEAL_CODE_CHECK_COMPLETED","ASSET_SECURITY_SEAL_CODE_CHECK_FAILED","MODULES_FETCH_STARTED","MODULES_FETCH_COMPLETED","MODULES_FETCH_FAILED","MODULES_PARTIAL_FETCH_STARTED","MODULES_PARTIAL_FETCH_COMPLETED","MODULES_PARTIAL_FETCH_FAILED","MODULE_FETCH_STARTED","MODULE_FETCH_COMPLETED","MODULE_FETCH_FAILED","MODULE_ADD_STARTED","MODULE_ADD_COMPLETED","MODULE_ADD_FAILED","MODULE_EDIT_STARTED","MODULE_EDIT_COMPLETED","MODULE_EDIT_FAILED","MODULE_REMOVE_STARTED","MODULE_REMOVE_COMPLETED","MODULE_REMOVE_FAILED","MODULE_SELECTED","MODULES_ALL_SELECTED","MODULE_DESELECTED","MODULES_ALL_DESELECTED","MODULE_DIRTY","OPERATORS_FETCH_STARTED","OPERATORS_FETCH_COMPLETED","OPERATORS_FETCH_FAILED","OPERATORS_PARTIAL_FETCH_STARTED","OPERATORS_PARTIAL_FETCH_COMPLETED","OPERATORS_PARTIAL_FETCH_FAILED","OPERATOR_ADD_STARTED","OPERATOR_ADD_COMPLETED","OPERATOR_ADD_FAILED","OPERATOR_EDIT_STARTED","OPERATOR_EDIT_COMPLETED","OPERATOR_EDIT_FAILED","OPERATOR_REMOVE_STARTED","OPERATOR_REMOVE_COMPLETED","OPERATOR_REMOVE_FAILED","OPERATOR_SELECTED","OPERATOR_DESELECTED","OPERATORS_ALL_SELECTED","OPERATORS_ALL_DESELECTED","OPERATOR_EDIT_STANDARD_PRICES_STARTED","OPERATOR_EDIT_STANDARD_PRICES_FAILED","OPERATOR_EDIT_STANDARD_PRICES_COMPLETED","MaintenanceNoticeTypes","MAINTENANCE_LINES_FETCH_STARTED","MAINTENANCE_LINES_FETCH_COMPLETED","MAINTENANCE_LINES_FETCH_FAILED","MAINTENANCE_LINES_PARTIAL_FETCH_STARTED","MAINTENANCE_LINES_PARTIAL_FETCH_COMPLETED","MAINTENANCE_LINES_PARTIAL_FETCH_FAILED","MAINTENANCE_LINE_ADD_STARTED","MAINTENANCE_LINE_ADD_COMPLETED","MAINTENANCE_LINE_ADD_FAILED","MAINTENANCE_LINE_EDIT_STARTED","MAINTENANCE_LINE_EDIT_COMPLETED","MAINTENANCE_LINE_EDIT_FAILED","MAINTENANCE_LINE_REMOVE_STARTED","MAINTENANCE_LINE_REMOVE_COMPLETED","MAINTENANCE_LINE_REMOVE_FAILED","MAINTENANCE_LINE_COPY_STARTED","MAINTENANCE_LINE_COPY_COMPLETED","MAINTENANCE_LINE_COPY_FAILED","MAINTENANCE_LINE_SELECTED","MAINTENANCE_LINES_ALL_SELECTED","MAINTENANCE_LINE_DESELECTED","MAINTENANCE_LINES_ALL_DESELECTED","AGENTS_FETCH_STARTED","AGENTS_FETCH_COMPLETED","AGENTS_FETCH_FAILED","AGENTS_PARTIAL_FETCH_STARTED","AGENTS_PARTIAL_FETCH_COMPLETED","AGENTS_PARTIAL_FETCH_FAILED","AGENT_FETCH_STARTED","AGENT_FETCH_COMPLETED","AGENT_FETCH_FAILED","AGENT_ADD_STARTED","AGENT_ADD_COMPLETED","AGENT_ADD_FAILED","AGENT_EDIT_STARTED","AGENT_EDIT_COMPLETED","AGENT_EDIT_FAILED","AGENT_REMOVE_STARTED","AGENT_REMOVE_COMPLETED","AGENT_REMOVE_FAILED","AGENT_SELECTED","AGENTS_ALL_SELECTED","AGENT_DESELECTED","AGENTS_ALL_DESELECTED","VEHICLES_FETCH_STARTED","VEHICLES_FETCH_COMPLETED","VEHICLES_FETCH_FAILED","VEHICLES_PARTIAL_FETCH_STARTED","VEHICLES_PARTIAL_FETCH_COMPLETED","VEHICLES_PARTIAL_FETCH_FAILED","VEHICLE_ADD_STARTED","VEHICLE_ADD_COMPLETED","VEHICLE_ADD_FAILED","VEHICLE_EDIT_STARTED","VEHICLE_EDIT_COMPLETED","VEHICLE_EDIT_FAILED","VEHICLE_REMOVE_STARTED","VEHICLE_REMOVE_COMPLETED","VEHICLE_REMOVE_FAILED","VEHICLE_SELECTED","VEHICLES_ALL_SELECTED","VEHICLE_DESELECTED","VEHICLES_ALL_DESELECTED","VEHICLE_LICENSE_PLATE_CHECK_STARTED","VEHICLE_LICENSE_PLATE_CHECK_COMPLETED","VEHICLE_LICENSE_PLATE_CHECK_FAILED","CUSTOMERS_FETCH_STARTED","CUSTOMERS_FETCH_COMPLETED","CUSTOMERS_FETCH_FAILED","CUSTOMERS_PARTIAL_FETCH_STARTED","CUSTOMERS_PARTIAL_FETCH_COMPLETED","CUSTOMERS_PARTIAL_FETCH_FAILED","CUSTOMER_ADD_STARTED","CUSTOMER_ADD_COMPLETED","CUSTOMER_ADD_FAILED","CUSTOMER_EDIT_STARTED","CUSTOMER_EDIT_COMPLETED","CUSTOMER_EDIT_FAILED","CUSTOMER_REMOVE_STARTED","CUSTOMER_REMOVE_COMPLETED","CUSTOMER_REMOVE_FAILED","CUSTOMER_SELECTED","CUSTOMERS_ALL_SELECTED","CUSTOMER_DESELECTED","CUSTOMERS_ALL_DESELECTED","SERVICECLASSES_FETCH_STARTED","SERVICECLASSES_FETCH_COMPLETED","SERVICECLASSES_FETCH_FAILED","SERVICECLASSES_PARTIAL_FETCH_STARTED","SERVICECLASSES_PARTIAL_FETCH_COMPLETED","SERVICECLASSES_PARTIAL_FETCH_FAILED","SERVICECLASS_FETCH_STARTED","SERVICECLASS_FETCH_COMPLETED","SERVICECLASS_FETCH_FAILED","SERVICECLASS_ADD_STARTED","SERVICECLASS_ADD_COMPLETED","SERVICECLASS_ADD_FAILED","SERVICECLASS_EDIT_STARTED","SERVICECLASS_EDIT_COMPLETED","SERVICECLASS_EDIT_FAILED","SERVICECLASS_REMOVE_STARTED","SERVICECLASS_REMOVE_COMPLETED","SERVICECLASS_REMOVE_FAILED","SERVICECLASS_SELECTED","SERVICECLASSES_ALL_SELECTED","SERVICECLASS_DESELECTED","SERVICECLASSES_ALL_DESELECTED","DIVISIONS_FETCH_STARTED","DIVISIONS_FETCH_COMPLETED","DIVISIONS_FETCH_FAILED","DIVISIONS_PARTIAL_FETCH_STARTED","DIVISIONS_PARTIAL_FETCH_COMPLETED","DIVISIONS_PARTIAL_FETCH_FAILED","DIVISION_ADD_STARTED","DIVISION_ADD_COMPLETED","DIVISION_ADD_FAILED","DIVISION_EDIT_STARTED","DIVISION_EDIT_COMPLETED","DIVISION_EDIT_FAILED","DIVISION_REMOVE_STARTED","DIVISION_REMOVE_COMPLETED","DIVISION_REMOVE_FAILED","DIVISION_SELECTED","DIVISIONS_ALL_SELECTED","DIVISION_DESELECTED","DIVISIONS_ALL_DESELECTED","SUBDIVISIONS_FETCH_STARTED","SUBDIVISIONS_FETCH_COMPLETED","SUBDIVISIONS_FETCH_FAILED","SUBDIVISIONS_PARTIAL_FETCH_STARTED","SUBDIVISIONS_PARTIAL_FETCH_COMPLETED","SUBDIVISIONS_PARTIAL_FETCH_FAILED","SUBDIVISION_ADD_STARTED","SUBDIVISION_ADD_COMPLETED","SUBDIVISION_ADD_FAILED","SUBDIVISION_EDIT_STARTED","SUBDIVISION_EDIT_COMPLETED","SUBDIVISION_EDIT_FAILED","SUBDIVISION_REMOVE_STARTED","SUBDIVISION_REMOVE_COMPLETED","SUBDIVISION_REMOVE_FAILED","SUBDIVISION_SELECTED","SUBDIVISIONS_ALL_SELECTED","SUBDIVISION_DESELECTED","SUBDIVISIONS_ALL_DESELECTED","OFFICES_FETCH_STARTED","OFFICES_FETCH_COMPLETED","OFFICES_FETCH_FAILED","OFFICES_PARTIAL_FETCH_STARTED","OFFICES_PARTIAL_FETCH_COMPLETED","OFFICES_PARTIAL_FETCH_FAILED","OFFICE_ADD_STARTED","OFFICE_ADD_COMPLETED","OFFICE_ADD_FAILED","OFFICE_EDIT_STARTED","OFFICE_EDIT_COMPLETED","OFFICE_EDIT_FAILED","OFFICE_REMOVE_STARTED","OFFICE_REMOVE_COMPLETED","OFFICE_REMOVE_FAILED","OFFICE_SELECTED","OFFICES_ALL_SELECTED","OFFICE_DESELECTED","OFFICES_ALL_DESELECTED","SIMS_FETCH_STARTED","SIMS_FETCH_COMPLETED","SIMS_FETCH_FAILED","SIMS_PARTIAL_FETCH_STARTED","SIMS_PARTIAL_FETCH_COMPLETED","SIMS_PARTIAL_FETCH_FAILED","SIM_ADD_STARTED","SIM_ADD_COMPLETED","SIM_ADD_FAILED","SIM_EDIT_STARTED","SIM_EDIT_COMPLETED","SIM_EDIT_FAILED","SIM_REMOVE_STARTED","SIM_REMOVE_COMPLETED","SIM_REMOVE_FAILED","SIM_SELECTED","SIMS_ALL_SELECTED","SIM_DESELECTED","SIMS_ALL_DESELECTED","ORGANIZATION_CONTRACTS_FETCH_STARTED","ORGANIZATION_CONTRACTS_FETCH_COMPLETED","ORGANIZATION_CONTRACTS_FETCH_FAILED","ORGANIZATION_CONTRACTS_PARTIAL_FETCH_STARTED","ORGANIZATION_CONTRACTS_PARTIAL_FETCH_COMPLETED","ORGANIZATION_CONTRACTS_PARTIAL_FETCH_FAILED","ORGANIZATION_CONTRACT_ADD_STARTED","ORGANIZATION_CONTRACT_ADD_COMPLETED","ORGANIZATION_CONTRACT_ADD_FAILED","ORGANIZATION_CONTRACT_EDIT_STARTED","ORGANIZATION_CONTRACT_EDIT_COMPLETED","ORGANIZATION_CONTRACT_EDIT_FAILED","ORGANIZATION_CONTRACT_REMOVE_STARTED","ORGANIZATION_CONTRACT_REMOVE_COMPLETED","ORGANIZATION_CONTRACT_REMOVE_FAILED","ORGANIZATION_CONTRACT_SELECTED","ORGANIZATION_CONTRACTS_ALL_SELECTED","ORGANIZATION_CONTRACT_DESELECTED","ORGANIZATION_CONTRACTS_ALL_DESELECTED","CONTRACT_TEMPLATES_FETCH_STARTED","CONTRACT_TEMPLATES_FETCH_COMPLETED","CONTRACT_TEMPLATES_FETCH_FAILED","CONTRACT_TEMPLATES_PARTIAL_FETCH_STARTED","CONTRACT_TEMPLATES_PARTIAL_FETCH_COMPLETED","CONTRACT_TEMPLATES_PARTIAL_FETCH_FAILED","CONTRACT_TEMPLATE_ADD_STARTED","CONTRACT_TEMPLATE_ADD_COMPLETED","CONTRACT_TEMPLATE_ADD_FAILED","CONTRACT_TEMPLATE_EDIT_STARTED","CONTRACT_TEMPLATE_EDIT_COMPLETED","CONTRACT_TEMPLATE_EDIT_FAILED","CONTRACT_TEMPLATE_REMOVE_STARTED","CONTRACT_TEMPLATE_REMOVE_COMPLETED","CONTRACT_TEMPLATE_REMOVE_FAILED","CONTRACT_TEMPLATE_SELECTED","CONTRACT_TEMPLATES_ALL_SELECTED","CONTRACT_TEMPLATE_DESELECTED","CONTRACT_TEMPLATES_ALL_DESELECTED","COLORS","WORKPLANS_EXECUTIONS_FETCH_STARTED","WORKPLANS_EXECUTIONS_FETCH_COMPLETED","WORKPLANS_EXECUTIONS_FETCH_FAILED","WORKPLAN_EXECUTION_FETCH_STARTED","WORKPLAN_EXECUTION_FETCH_COMPLETED","WORKPLAN_EXECUTION_FETCH_FAILED","WORKPLANS_EXECUTION_CANCEL_STARTED","WORKPLANS_EXECUTION_CANCEL_COMPLETED","WORKPLANS_EXECUTION_CANCEL_FAILED","WORKPLANS_EXECUTION_FINALIZE_STARTED","WORKPLANS_EXECUTION_FINALIZE_COMPLETED","WORKPLANS_EXECUTION_FINALIZE_FAILED","WORKPLANS_EXECUTION_MANUAL_TRANSIT_STARTED","WORKPLANS_EXECUTION_MANUAL_TRANSIT_COMPLETED","WORKPLANS_EXECUTION_MANUAL_TRANSIT_FAILED","WORKPLANS_EXECUTION_CHANGE_UNIT_STARTED","WORKPLANS_EXECUTION_CHANGE_UNIT_COMPLETED","WORKPLANS_EXECUTION_CHANGE_UNIT_FAILED","WORKPLANS_EXECUTION_ASSIGN_UNIT_STARTED","WORKPLANS_EXECUTION_ASSIGN_UNIT_COMPLETED","WORKPLANS_EXECUTION_ASSIGN_UNIT_FAILED","CONTACTS_FETCH_STARTED","CONTACTS_FETCH_COMPLETED","CONTACTS_FETCH_FAILED","CONTACTS_PARTIAL_FETCH_STARTED","CONTACTS_PARTIAL_FETCH_COMPLETED","CONTACTS_PARTIAL_FETCH_FAILED","CONTACT_ADD_STARTED","CONTACT_ADD_COMPLETED","CONTACT_ADD_FAILED","CONTACT_EDIT_STARTED","CONTACT_EDIT_COMPLETED","CONTACT_EDIT_FAILED","CONTACT_REMOVE_STARTED","CONTACT_REMOVE_COMPLETED","CONTACT_REMOVE_FAILED","CONTACT_FETCH_STARTED","CONTACT_FETCH_COMPLETED","CONTACT_FETCH_FAILED","CONTACT_SELECTED","CONTACTS_ALL_SELECTED","CONTACT_DESELECTED","CONTACTS_ALL_DESELECTED","PROTOCOLS_FETCH_STARTED","PROTOCOLS_FETCH_COMPLETED","PROTOCOLS_FETCH_FAILED","PROTOCOLS_PARTIAL_FETCH_STARTED","PROTOCOLS_PARTIAL_FETCH_COMPLETED","PROTOCOLS_PARTIAL_FETCH_FAILED","PROTOCOLS_ADD_STARTED","PROTOCOLS_ADD_COMPLETED","PROTOCOLS_ADD_FAILED","PROTOCOLS_EDIT_STARTED","PROTOCOLS_EDIT_COMPLETED","PROTOCOLS_EDIT_FAILED","PROTOCOLS_REMOVE_STARTED","PROTOCOLS_REMOVE_COMPLETED","PROTOCOLS_REMOVE_FAILED","PROTOCOLS_SELECTED","PROTOCOLS_ALL_SELECTED","PROTOCOLS_DESELECTED","PROTOCOLS_ALL_DESELECTED","NOTICES_BY_ODOMETER_FETCH_STARTED","NOTICES_BY_ODOMETER_FETCH_COMPLETED","NOTICES_BY_ODOMETER_FETCH_FAILED","NOTICES_BY_ODOMETER_PARTIAL_FETCH_STARTED","NOTICES_BY_ODOMETER_PARTIAL_FETCH_COMPLETED","NOTICES_BY_ODOMETER_PARTIAL_FETCH_FAILED","NOTICE_BY_ODOMETER_ADD_STARTED","NOTICE_BY_ODOMETER_ADD_COMPLETED","NOTICE_BY_ODOMETER_ADD_FAILED","NOTICE_BY_ODOMETER_EDIT_STARTED","NOTICE_BY_ODOMETER_EDIT_COMPLETED","NOTICE_BY_ODOMETER_EDIT_FAILED","NOTICE_BY_ODOMETER_RENEW_STARTED","NOTICE_BY_ODOMETER_RENEW_COMPLETED","NOTICE_BY_ODOMETER_RENEW_FAILED","NOTICE_BY_ODOMETER_REMOVE_STARTED","NOTICE_BY_ODOMETER_REMOVE_COMPLETED","NOTICE_BY_ODOMETER_REMOVE_FAILED","startFetchingUnits","completeFetchingUnits","failFetchingUnits","startPartialFetchingUnits","completePartialFetchingUnits","failPartialFetchingUnits","addingUnitToState","startFetchingUnitsLiveStatus","completeFetchingUnitsLiveStatus","failFetchingUnitsLiveStatus","startFetchingUnitInformation","completeFetchingUnitInformation","failFetchingUnitInformation","startFetchingUnitPositions","completeFetchingUnitPositions","failFetchingUnitPositions","resetIsFetchedUnitPosition","startAddingUnit","completeAddingUnit","failAddingUnit","startUpdateDevice","completeUpdateDevice","failUpdateDevice","startEditingUnit","completeEditingUnit","failEditingUnit","startAcknowledgeUnitEvent","completeAcknowledgeUnitEvent","failAcknowledgeUnitEvent","startAssigningDriverUnits","completeAssigningDriverUnits","startEndDowntimeUnit","completeEndDowntimeUnit","failEndDowntimeUnit","startStartDowntimeUnit","completeStartDowntimeUnit","failStartDowntimeUnit","startActivingUnits","completeActivingUnits","failActivingUnits","startRemovingUnit","completeRemovingUnit","failRemovingUnit","setDateRange","dateRange","selectUnit","selectAllUnits","unitIds","deselectUnit","deselectAllUnits","showUnitInMap","showAllUnitsInMap","hideUnitInMap","hideAllUnitsInMap","startCreatingShareLink","completeCreatingShareLink","failCreatingShareLink","clearSharedLink","startUpdateSim","simCardId","failUpdateSim","completeUpdateSim","changes","NOTICES_BY_DATE_FETCH_STARTED","NOTICES_BY_DATE_FETCH_COMPLETED","NOTICES_BY_DATE_FETCH_FAILED","NOTICES_BY_DATE_PARTIAL_FETCH_STARTED","NOTICES_BY_DATE_PARTIAL_FETCH_COMPLETED","NOTICES_BY_DATE_PARTIAL_FETCH_FAILED","NOTICE_BY_DATE_ADD_STARTED","NOTICE_BY_DATE_ADD_COMPLETED","NOTICE_BY_DATE_ADD_FAILED","NOTICE_BY_DATE_EDIT_STARTED","NOTICE_BY_DATE_EDIT_COMPLETED","NOTICE_BY_DATE_EDIT_FAILED","NOTICE_BY_DATE_RENEW_STARTED","NOTICE_BY_DATE_RENEW_COMPLETED","NOTICE_BY_DATE_RENEW_FAILED","NOTICE_BY_DATE_REMOVE_STARTED","NOTICE_BY_DATE_REMOVE_COMPLETED","NOTICE_BY_DATE_REMOVE_FAILED","NOTICES_BY_HOURMETER_FETCH_STARTED","NOTICES_BY_HOURMETER_FETCH_COMPLETED","NOTICES_BY_HOURMETER_FETCH_FAILED","NOTICES_BY_HOURMETER_PARTIAL_FETCH_STARTED","NOTICES_BY_HOURMETER_PARTIAL_FETCH_COMPLETED","NOTICES_BY_HOURMETER_PARTIAL_FETCH_FAILED","NOTICE_BY_HOURMETER_ADD_STARTED","NOTICE_BY_HOURMETER_ADD_COMPLETED","NOTICE_BY_HOURMETER_ADD_FAILED","NOTICE_BY_HOURMETER_EDIT_STARTED","NOTICE_BY_HOURMETER_EDIT_COMPLETED","NOTICE_BY_HOURMETER_EDIT_FAILED","NOTICE_BY_HOURMETER_RENEW_STARTED","NOTICE_BY_HOURMETER_RENEW_COMPLETED","NOTICE_BY_HOURMETER_RENEW_FAILED","NOTICE_BY_HOURMETER_REMOVE_STARTED","NOTICE_BY_HOURMETER_REMOVE_COMPLETED","NOTICE_BY_HOURMETER_REMOVE_FAILED","OperatingSystem","Browser","DeviceType","PacketType","FuelCalibrationCommand","optionKeySpecialCharacters","Ć„","Ƨ","ʒ","Ė†","Āµ","Ćø","Ļ€","œ","Ɵ","optionShiftSpecialCombinations","ƅ","ı","Ƈ","Ǝ","Ə","Ɠ","Ɣ","ƒ","Ƃ","Ƙ","Œ","ƍ","Ė‡","Ɓ","formatHtmlToText","htmlStr","htmlToText","wordwrap","getDateWithoutTimezoneOffset","getTimezoneOffset","toISOString","slice","generateHourMinuteLabel","seconds","round","hours","minutes","Math","floor","generateDayHourMinuteSecondLabel","days","generateHourMinuteSecondStr","toFixed","isUserLoggedIn","getUserData","selectThemeColors","theme","colors","primary25","primary","neutral10","neutral20","neutral30","isValidEmail","email","test","String","toLowerCase","numberWithCommas","posiciones","decimalLength","indexOf","substr","trunc","replace","formatAmount","n","isValidNumber","isBitSet","b","pos","isIterable","obj","Symbol","iterator","getDateColumnsInDateRange","stacked","dateArray","setDate","getDate","dateTitle","getFullYear","getMonth","fieldName","customKey","staticText","getDay","getWeekColumns","weeks","weekNumber","columns","week","startWeekDate","DateTime","fromISO","toFormat","endWeekDate","weekColumns","headerText","customAttributes","class","userTimezoneOffset","convertExcelDateToSystemDate","excelDate","moment","format","isAlphaNumeric","alpha","valueToValidate","trim","isNotNullOrUndefined","validateColumns","dataInfo","columnDefinitions","rules","cd","row","rowIndex","invalidColumns","Object","colValue","colIndex","required","validation","validator","column","originalRowId","rowIsValid","validators","isAlphaNumericOrEmpty","isValidNumberOrEmpty","validLast4Digits","isNumber","is4Digits","is4DigitsNumber","e","isValidDate","isNullOrUndefined","isValid","isValidExcelDate","validateRequiredValue","isValidDayOfTheWeek","formattedDayOfTheWeek","formatDate","weekday","locale","isValidBoolean","toValidate","isValidLatitude","parsedValue","isNaN","isValidLongitude","isValidBit","normalizeString","normalizeInputText","parseToNumber","isNaNOrNullable","dateFormatter","dateFormat","m","parseToBoolean","parsers","parseToString","isDate","parseToDate","serial","utcDays","dateInfo","fractionalDay","totalSeconds","excelDateToJSDate","parseToBit","parseToDateTime","exceldate","zone","setZone","keepLocalTime","toJSDate","timeToSeconds","time","getHours","getMinutes","getSeconds","timeToMinutes","getMinutesFromDate","getTotalSecondsFromDate","getSecondsFromDateHours","getSecondsFromDateMinutes","getSecondsFromDate","createDateWithHoursAndMinutes","newDate","setHours","setMinutes","setSeconds","setMilliseconds","secondsToMilliseconds","generateDateLabelByDate","getDaysHoursInDateRange","difference","ceil","generateDateArray","generateDayLabelByDate","isNotInObject","isInObject","isNotNaNOrNullable","areNotNullOrUndefined","arr","parseSecondsToHours","parseHoursToSeconds","parseSecondsToHoursWithEpsilon","EPSILON","getTimeInMinutes","getTimeInSeconds","getNextElementInArray","array","currentIdx","nextElement","Error","getPreviousElementInArray","getDifferenceBetweenDatesHHMMSS","duration","minutesSeconds","utc","asHours","getDaysBetweenDateAndTodayRef","startYear","daysInMonth","yearDiff","monthDiff","dayDiff","weekDiff","hexToRgbA","hex","isHex","substring","getZeroIfNaNOrNullable","getDateStrFormatted","hasDBDateFormat","isMoment","getDateAsKey","getIsMobile","navigator","userAgent","getShortDate","transform","target","isArray","camelCase","isObject","truncateStr","limit","charAt","formatNumber","useSelectedLocale","numberToValidate","regexIsNumber","localeToUse","newNumberFormatted","toLocaleString","testIsNumber","getUseCRM","REACT_APP_PRODUCT_CRM","getUseConsole","REACT_APP_PRODUCT_CONSOLE","getIsWebtrackUser","webtrackEmail","getHourFromStringTime","hour","getMinutesFromStringTime","isEmptyData","obj1","obj2","isNotEmptyData","joinTexts","items","by","formatList","stripHtml","html","temp","document","createElement","innerHTML","textContent","roundWithEpsilon","formatHourMeter","hourMeter","getSecondsBetweenDates","start","diff","getKeyboardModifiers","event","ctrl","alt","shift","parsedKey","isMobile","isBrowserMobile","platform","os","Unknown","startsWith","Windows","MacOS","Linux","IOS","Android","isBrowserChrome","isBrowserFirefox","isBrowserSafari","browser","Chrome","Firefox","Safari","deviceType","Mobile","Desktop","getDeviceInfo","shiftKey","metaKey","altKey","KeyboardEvent","DOM_KEY_LOCATION_RIGHT","ctrlKey","toBit","CATEGORIES_FETCH_STARTED","CATEGORIES_FETCH_COMPLETED","CATEGORIES_FETCH_FAILED","CATEGORIES_PARTIAL_FETCH_STARTED","CATEGORIES_PARTIAL_FETCH_COMPLETED","CATEGORIES_PARTIAL_FETCH_FAILED","CATEGORY_ADD_STARTED","CATEGORY_ADD_COMPLETED","CATEGORY_ADD_FAILED","CATEGORY_EDIT_STARTED","CATEGORY_EDIT_COMPLETED","CATEGORY_EDIT_FAILED","CATEGORY_REMOVE_STARTED","CATEGORY_REMOVE_COMPLETED","CATEGORY_REMOVE_FAILED","WORKMANSHIPS_FETCH_STARTED","WORKMANSHIPS_FETCH_COMPLETED","WORKMANSHIPS_FETCH_FAILED","WORKMANSHIPS_PARTIAL_FETCH_STARTED","WORKMANSHIPS_PARTIAL_FETCH_COMPLETED","WORKMANSHIPS_PARTIAL_FETCH_FAILED","WORKMANSHIP_ADD_STARTED","WORKMANSHIP_ADD_COMPLETED","WORKMANSHIP_ADD_FAILED","WORKMANSHIP_EDIT_STARTED","WORKMANSHIP_EDIT_COMPLETED","WORKMANSHIP_EDIT_FAILED","WORKMANSHIP_REMOVE_STARTED","WORKMANSHIP_REMOVE_COMPLETED","WORKMANSHIP_REMOVE_FAILED","PROVIDERS_FETCH_STARTED2","PROVIDERS_FETCH_COMPLETED2","PROVIDERS_FETCH_FAILED2","PROVIDERS_PARTIAL_FETCH_STARTED2","PROVIDERS_PARTIAL_FETCH_COMPLETED2","PROVIDERS_PARTIAL_FETCH_FAILED2","PROVIDER_ADD_STARTED","PROVIDER_ADD_COMPLETED","PROVIDER_ADD_FAILED","PROVIDER_EDIT_STARTED","PROVIDER_EDIT_COMPLETED","PROVIDER_EDIT_FAILED","PROVIDER_REMOVE_STARTED","PROVIDER_REMOVE_COMPLETED","PROVIDER_REMOVE_FAILED","SPAREPARTS_FETCH_STARTED","SPAREPARTS_FETCH_COMPLETED","SPAREPARTS_FETCH_FAILED","SPAREPARTS_PARTIAL_FETCH_STARTED","SPAREPARTS_PARTIAL_FETCH_COMPLETED","SPAREPARTS_PARTIAL_FETCH_FAILED","SPAREPART_ADD_STARTED","SPAREPART_ADD_COMPLETED","SPAREPART_ADD_FAILED","SPAREPART_EDIT_STARTED","SPAREPART_EDIT_COMPLETED","SPAREPART_EDIT_FAILED","SPAREPART_REMOVE_STARTED","SPAREPART_REMOVE_COMPLETED","SPAREPART_REMOVE_FAILED","byId","timestamp","auditDate","union","userUpdateByEntity","unitsTypes","subdivisionsTypes","maintenanceLinesTypes","vehicleTypes","modulesTypes","agentsTypes","serviceClassesTypes","operatorsTypes","divisionsTypes","formsTypes","organizationsTypes","monitoringUsersTypes","workplansTypes","geofencesTypes","schedulesTypes","routesTypes","simsTypes","locationTypes","officeTypes","driverTypes","assetsTypes","sensorsTypes","jobsTypes","groupsTypes","customersTypes","contractsTypes","contractTemplatesTypes","toUTCString","isFetchingList","isFetchedList","errorFetchingList","entitiesPersistConfig","getEntity","getUserUpdateByEntityTimestamp","getUserUpdateByEntityDate","getUserUpdateByEntityOperatorId","getUserUpdateByEntityOrganizationId","updateEntityByTimestamp","entityTimestamp","userUpdateEntityOperatorId","userUpdateEntityOrganizationId","areAllEntitiesUpdated","areUpdated","isFetchedListEntities","WORKPLAN_ASSIGNMENT_FETCH_STARTED","WORKPLAN_ASSIGNMENT_FETCH_COMPLETED","WORKPLAN_ASSIGNMENT_FETCH_FAILED","WORKPLAN_ASSIGNMENT_BY_SCHEDULE_FETCH_COMPLETED","WORKPLAN_ASSIGNMENT_BY_DATETIME_FETCH_COMPLETED","WORKPLAN_ASSIGNMENT_REMOVE_STARTED","WORKPLAN_ASSIGNMENT_REMOVE_COMPLETED","WORKPLAN_ASSIGNMENT_REMOVE_FAILED","WORKPLAN_ASSIGNMENT_BY_SCHEDULE_REMOVE_STARTED","WORKPLAN_ASSIGNMENT_BY_SCHEDULE_REMOVE_COMPLETED","WORKPLAN_ASSIGNMENT_BY_SCHEDULE_REMOVE_FAILED","WORKPLAN_ASSIGNMENT_BY_DATETIME_REMOVE_STARTED","WORKPLAN_ASSIGNMENT_BY_DATETIME_REMOVE_COMPLETED","WORKPLAN_ASSIGNMENT_BY_DATETIME_REMOVE_FAILED","WORKPLAN_ASSIGNMENT_BY_SCHEDULE_EDIT_STARTED","WORKPLAN_ASSIGNMENT_BY_SCHEDULE_EDIT_COMPLETED","WORKPLAN_ASSIGNMENT_BY_SCHEDULE_EDIT_FAILED","WORKPLAN_ASSIGNMENT_BY_DATETIME_EDIT_STARTED","WORKPLAN_ASSIGNMENT_BY_DATETIME_EDIT_COMPLETED","WORKPLAN_ASSIGNMENT_BY_DATETIME_EDIT_FAILED","omit","scheduleIds","scheduleIdState","isPartialFetchingList","isAdding","isEditing","isRemoving","errorPartialFetchingList","errorAdding","errorEditing","errorRemoving","getSchedule","originGeofence","workGeofence","destinationGeofence","divisionSelectors","subdivisionSelectors","originGeofenceName","workGeofenceName","destinationGeofenceName","checkSequenceLabel","checkSequence","getScheduleByPrivateCode","privateCode","getSchedulesList","getScheduleByPrivateCodeByMembership","getScheduleListByMembership","scheduleStatus","getSelectedSchedules","selectedSchedules","getTriggersList","scheduleType","getTriggersListByMembership","getShiftsList","getShiftsListByMembership","getShiftListByMembershipDetail","shiftTimes","flattenDeep","day","startTime","endTime","getSelectedSchedule","isPartialFetchingListSchedules","isFetchingListSchedules","isAddingSchedule","isEditingSchedule","isRemovingSchedule","getPartialFetchingListSchedulesErrors","getFetchingListSchedulesErrors","getAddingScheduleErrors","getEditingScheduleErrors","getRemovingScheduleErrors","ROUTES_EXECUTION_COMMENTS_FETCH_STARTED","ROUTES_EXECUTION_COMMENTS_FETCH_COMPLETED","ROUTES_EXECUTION_COMMENTS_FETCH_FAILED","ROUTES_EXECUTION_COMMENT_ADD_STARTED","ROUTES_EXECUTION_COMMENT_ADD_COMPLETED","ROUTES_EXECUTION_COMMENT_ADD_FAILED","ROUTES_EXECUTION_COMMENT_EDIT_STARTED","ROUTES_EXECUTION_COMMENT_EDIT_COMPLETED","ROUTES_EXECUTION_COMMENT_EDIT_FAILED","ROUTES_EXECUTION_COMMENT_REMOVE_STARTED","ROUTES_EXECUTION_COMMENT_REMOVE_COMPLETED","ROUTES_EXECUTION_COMMENT_REMOVE_FAILED","Option","components","SingleValue","NoOptionsMessage","filterOption","candidate","showOptionFilter","label","_","deburr","err","label_intl","IconOption","style","display","flexDirection","className","iconSVG","src","height","marginRight","marginTop","IconSingleValue","cache","CellMeasurerCache","defaultHeight","fixedWidth","MenuList","rows","rowRenderer","parent","columnIndex","measure","registerChild","ref","disableWidth","containerStyle","backgroundColor","maxWidth","rowCount","rowHeight","DropdownInput","field","fieldstate","hasPlaceholder","options","isInModal","forceinitialvalue","onClear","additionalonchangefunction","menuIsOpen","minWidth","onInputChange","onFocus","inputProps","getComputedStyle","useEffect","onChangeFinal","isInArray","o","onChange","for","addonType","prependcomponent","styles","menuPortal","zIndex","provided","control","boxShadow","isFocused","border","process","singleValue","fontWeight","fontSize","lineHeight","transition","menuList","placeholder","triggeredAction","onSelect","onBlur","isClearable","option","fieldValue","optValue","selectedValue","noOptionsMessage","maxMenuHeight","menuPortalTarget","querySelector","appendcomponent","ROUTES_ASSIGNMENTS_FETCH_STARTED","ROUTES_ASSIGNMENTS_FETCH_COMPLETED","ROUTES_ASSIGNMENTS_FETCH_FAILED","ROUTES_ASSIGNMENT_EDIT_STARTED","ROUTES_ASSIGNMENT_EDIT_COMPLETED","ROUTES_ASSIGNMENT_EDIT_FAILED","ROUTES_ASSIGNMENT_REMOVE_STARTED","ROUTES_ASSIGNMENT_REMOVE_COMPLETED","ROUTES_ASSIGNMENT_REMOVE_FAILED","ROUTES_ASSIGNMENTS_IMPORT_STARTED","ROUTES_ASSIGNMENTS_IMPORT_COMPLETED","ROUTES_ASSIGNMENTS_IMPORT_FAILED","TextInput","autocompleteinput","topRightComponent","disabled","errorinvalidmessage","errorvalidatemessage","autoComplete","invalid","defaultProps","startFetchingGeofences","completeFetchingGeofences","failFetchingGeofences","startPartialFetchingGeofences","completePartialFetchingGeofences","failPartialFetchingGeofences","startAddingGeofence","completeAddingGeofence","failAddingGeofence","startEditingGeofence","completeEditingGeofence","failEditingGeofence","startRemovingGeofence","completeRemovingGeofence","failRemovingGeofence","startRemovingGeofenceAssignation","startRemovingAllAssignmentsByGeofences","startRemovingAllAssignmentsByUnits","completeRemovingGeofenceAssignation","failRemovingGeofenceAssignation","startEditingGeofenceAssignation","completeEditingGeofenceAssignation","failEditingGeofenceAssignation","showGeofenceInMap","showAllGeofencesInMap","geofenceIds","hideGeofenceInMap","hideAllGeofencesInMap","startAssignUnitsGeofences","completeAssignUnitsGeofences","failAssignUnitsGeofences","WORKPLANS_EXECUTION_LOCATION_ADD_STARTED","WORKPLANS_EXECUTION_LOCATION_ADD_COMPLETED","WORKPLANS_EXECUTION_LOCATION_ADD_FAILED","WORKPLANS_EXECUTION_LOCATION_EDIT_STARTED","WORKPLANS_EXECUTION_LOCATION_EDIT_COMPLETED","WORKPLANS_EXECUTION_LOCATION_EDIT_FAILED","WORKPLANS_EXECUTION_LOCATION_REMOVE_STARTED","WORKPLANS_EXECUTION_LOCATION_REMOVE_COMPLETED","WORKPLANS_EXECUTION_LOCATION_REMOVE_FAILED","WORKPLAN_COMMENTS_FETCH_STARTED","WORKPLAN_COMMENTS_FETCH_COMPLETED","WORKPLAN_COMMENTS_FETCH_FAILED","WORKPLAN_COMMENT_ADD_STARTED","WORKPLAN_COMMENT_ADD_COMPLETED","WORKPLAN_COMMENT_ADD_FAILED","WORKPLAN_COMMENT_REMOVE_STARTED","WORKPLAN_COMMENT_REMOVE_COMPLETED","WORKPLAN_COMMENT_REMOVE_FAILED","isShowInMap","isShownInMap","geofenceIdState","geofencesPersistedConfig","whitelist","getGeofence","getGeofencesList","geofenceStatus","getParentGeofencesList","isParentGeofence","getSubGeofencesList","parentGeofenceId","getGeofencesListByMembership","geofencesList","getGeofenceByPrivateCodeByMembership","getParentGeofencesListByMembership","getSubGeofencesListByMembership","isPartialFetchingListGeofences","isFetchingListGeofences","isAddingGeofence","isEditingGeofence","isRemovingGeofence","performanceColors","vehiclePerformanceTitle","getPerformanceTitle","rangePerformance","performanceStatus","isDeficient","isRegular","isEfficient","vehiclePerformance","getPerformanceColor","expectedPerformance","getAllFilteredData","byVehicles","ranges","unitsWithRecentData","v","hasRecentData","systemDate","hasNoDowntimeReasonId","downTimeReasonId","hasPerformance","expectedfuelEconomyByVehicles","travel","loadThreshold","consumption","historicalFuelEconomy","unitsWithoutRecentData","hasNoRecentData","gpsDate","unitsWithoutPerformance","hasNoPerformance","dowtimeUnits","u","allFilters","poorPerformance","filterTelemetryData","regularPerformance","goodPerformance","overPerformance","excessivePerformance","unitsWithDischarges","unitsWithoutDischarges","goodUnitsPercent","min","max","vehiclesData","property","filtered","dec2binReverse","dec","binary","reversedBinary","reverseBinary","dec2bin","searchUseMetric","metricsMask","bitNumber","Metrics","ACCState","MetricId","MetricName","BitNumber","UseInVehicles","UseInAssets","UseInPeople","OrderNumber","ACCX","ACCY","ACCZ","AD1","AD2","AppVersion","BackupBattery","Battery","CellNumber","CoverTamperState","DoorState","FirmwareVersion","GSMSignalLevel","HardwareVersion","ICCID","IsCharging","MainVoltage","MCC","MNC","OverSpeedState","PadlockAuthorizationType","PadlockState","PLMN","Satellites","ShockSensorState","TrailerID","DriverId","getSummaryDataForDynamicTable","performanceSummary","statuses","statusLowerCase","total","keys","useCombinedFuelHistory","samples","fuelEvents","selectedSensor","useMemo","fuelHistory","resultFinal","unitPositionLogId","sampleMatch","fuelSamples","sample","eventId","startLogin","password","completeLogin","failLogin","logout","setSessionMembership","authenticationUserInformationCompleted","startRefreshToken","startForceRefreshToken","completeRefreshToken","failRefreshToken","startUpdatingProfileGeneralInformation","completeUpdatingProfileGeneralInformation","failUpdatingProfileGeneralInformation","startUpdatingProfilePassword","completeUpdatingProfilePassword","failUpdatingProfilePassword","completeUpdatingProfilePicture","startUpdatingProfileHomeScreen","completeUpdatingProfileHomeScreen","failUpdatingProfileHomeScreen","startChangingProduct","completeChangingProduct","failChangingProduct","startUpdatingProfileMapOptions","completeUpdatingProfileMapOptions","failUpdatingProfileMapOptions","startUpdatingMapSettingsConfiguration","completeUpdatingMapSettingsConfiguration","failUpdatingMapSettingsConfiguration","startFetchingQuotations","completeFetchingQuotations","failFetchingQuotations","completePartialFetchingQuotations","failPartialFetchingQuotations","startAddingQuotation","completeAddingQuotation","failAddingQuotation","startEditingQuotation","completeEditingQuotation","failEditingQuotation","startSchedulingQuotation","completeSchedulingQuotation","failSchedulingQuotation","startCheckingQuotationScheduling","completeCheckingQuotationScheduling","failCheckingQuotationScheduling","startApprovingDenyingQuotationManagement","completeApprovingDenyingQuotationManagement","failApprovingDenyingQuotationManagement","startAcceptingDenyingQuotationCustomer","completeAcceptingDenyingQuotationCustomer","failAcceptingDenyingQuotationCustomer","startSettingTimesupQuotation","completeSettingTimesupQuotation","failSettingTimesupQuotation","startRemovingQuotation","completeRemovingQuotation","failRemovingQuotation","changeQuotationOrganization","selectQuotation","deselectAllQuotations","quotationIds","startCopyingQuotation","completeCopyingQuotation","failCopyingQuotation","startFetchingSchedules","completeFetchingSchedules","failFetchingSchedules","startPartialFetchingSchedules","completePartialFetchingSchedules","failPartialFetchingSchedules","startAddingSchedule","completeAddingSchedule","failAddingSchedule","startAddingShift","startEditingSchedule","completeEditingSchedule","failEditingSchedule","startEditingShift","completeEditingShift","failEditingShift","startRemovingSchedule","completeRemovingSchedule","failRemovingSchedule","selectSchedule","deselectAllSchedules","deviceMetricId","getDeviceMetric","getDeviceAction","getGroup","reportId","getReport","imageId","getImage","getSensor","unitLiveStatus","fetchDate","historicalPositions","allPositions","eventName","eventParam","eventTextColor","eventColor","themeId","isFetchingLiveStatusList","isFetchingInformation","isFetchingPositions","isAcknowledgeEvent","isFetchedPosition","errorFetchingLiveStatusList","errorFetchingInformation","errorEditingInformation","getUnit","speedFormat","convertKilometersPerHourToAuthUserSpeedSystem","odometerFormat","speedLimit","hourMeterFormat","mainState","GetMainStateById","mainStateName","GetMainStateName","downtimeReasonDescription","fromNow","headingFormat","getUnitHeadingFormat","heading","distanceFormat","deviceMetricsSelectors","deviceActionsSelectors","groupsSelectors","reportsSelectors","imagesSelectors","sensorsSelectors","downtimeReasonId","deviceModelName","deviceIdentifier","brandName","newUnit","unitPublicId","imsi","cellularNumber","mobileOperatorId","mobileOperatorName","unitStatus","unitStatusName","unitIdState","isEditingDowntime","isCreatingSharedLink","oldMainStateIds","hasAlreadyFetched","errorUpdatingDevice","isUpdatingDevice","unitsPersistedConfig","isCreatingSharedLinkUnit","sharedLinkUnit","oldUnitMainStateIds","getUnitLiveStatus","getUnitsList","getUnitsSpecificList","list","getActiveUnitsList","getActiveUnitsListByMembership","getActiveUnitsListByPartialMembership","useOperator","useOrganization","useDivision","useSubdivision","getSelectedUnits","selectedUnits","getUnitByPrivateCode","getUnitByIdOrPrivateCode","getSelectedUnit","isPartialFetchingListUnits","isFetchingListUnits","haveUnitsBeenFetched","isAddingUnit","isEditingUnit","isEditingUnitDowntime","isRemovingUnit","getPartialFetchingListUnitsErrors","getFetchingListUnitsErrors","getAddingUnitErrors","getEditingUnitErrors","getRemovingUnitErrors","getUnitLiveFetchDate","selectorsUnitLiveStatus","getUnitsLiveStatusList","isFetchingListUnitsLiveStatus","isFetchingUnitInformation","isFetchingUnitPositions","isAcknowledgeUnitEvent","isFetchedUnitPosition","getFetchingListUnitsLiveStatusErrors","getFetchingUnitInformationErrors","sparepartsCatalog","workshopCatalog","categoriesCatalog","providersCatalog","addSpareparts","addWorkshop","addCategories","addProviders","editSpareparts","editWorkshop","editCategories","editProviders","removeSpareparts","removeWorkshop","removeCategories","removeProviders","generalReport","byCategoryReport","byUnitReport","byWorkShopReport","importTicket","addTickets","maintenanceLineAdd","maintenanceLineEdit","maintenanceLineRemove","preventiveNotices","addPreventiveNotices","editPreventiveNotices","removePreventiveNotices","reschedulePreventiveNotice","totalNotices","expiredNotices","activeNotices","COUNTRIES_FETCH_STARTED","COUNTRIES_FETCH_COMPLETED","COUNTRIES_FETCH_FAILED","COUNTRIES_PARTIAL_FETCH_STARTED","COUNTRIES_PARTIAL_FETCH_COMPLETED","COUNTRIES_PARTIAL_FETCH_FAILED","COUNTRY_FETCH_STARTED","COUNTRY_FETCH_COMPLETED","COUNTRY_FETCH_FAILED","COUNTRY_SELECTED","COUNTRIES_ALL_SELECTED","COUNTRY_DESELECTED","COUNTRIES_ALL_DESELECTED","startFetchingRoutesExecutions","completeFetchingRoutesExecutions","failFetchingRoutesExecutions","startCancelRoutesExecutions","completeCancelRoutesExecutions","failCancelRoutesExecutions","startEditRouteExecution","completeEditRouteExecution","failEditRouteExecution","startFinalizeRoutesExecutions","completeFinalizeRoutesExecutions","failFinalizeRoutesExecutions","startCompleteRoutesExecutions","completeCompleteRoutesExecutions","failCompleteRoutesExecutions","startRemoveRoutesExecutions","completeRemoveRoutesExecutions","failRemoveRoutesExecutions","startPauseRoutesExecutions","completePauseRoutesExecutions","failPauseRoutesExecutions","startStartRoutesExecutions","completeStartRoutesExecutions","failStartRoutesExecutions","startManualTransitRoutesExecutions","completeManualTransitRoutesExecutions","failManualTransitRoutesExecutions","startChangeToAlternateRoute","completeChangeToAlternateRoute","failChangeToAlternateRoute","startShareRoutesExecutions","completeShareRoutesExecutions","failShareRoutesExecutions","startAssignUnitRoutesExecutions","completeAssignUnitRoutesExecutions","failAssignUnitRoutesExecutions","organizationIds","organizationIdState","isAddingDowntimeReason","isEditingDowntimeReason","isRemovingDowntimeReason","errorAddingDowntimeReason","errorEditingDowntimeReason","errorRemovingDowntimeReason","getOrganizationOperator","getOrganizationOperatorName","getOrganization","getOrganizationName","getOrganizationsList","organizationStatus","getOrganizationsListByMembership","getOrganizationsListBySelectedOperator","getSelectedOrganizations","selectedOrganizations","getSelectedOrganization","isPartialFetchingListOrganizations","isFetchingListOrganizations","isAddingOrganization","isEditingOrganization","isRemovingOrganization","isAddingOrganizationDowntimeReason","isEditingOrganizationDowntimeReason","isRemovingOrganizationDowntimeReason","getPartialFetchingListOrganizationsErrors","getFetchingListOrganizationsErrors","getAddingOrganizationErrors","getEditingOrganizationErrors","getRemovingOrganizationErrors","getAddingOrganizationDowntimeReasonErrors","getEditingOrganizationDowntimeReasonErrors","getRemovingOrganizationDowntimeReasonErrors","isValidCode","isImporting","errorImporting","getLocation","locationIds","locationIdState","locationsPersistedConfig","getLocationsList","locationStatus","getLocationByPrivateCode","getLocationByPrivateCodeByMembership","getLocationsListByMembership","getLocationByGooglePlaceId","googlePlaceId","googleLocation","getLocationsListByLocationClassId","locationClassId","getLocationsOfficesList","useOnlyOffices","officeSelectors","officePrivateCode","getLocationOffice","getLocationsOfficesListByMembership","isPartialFetchingListLocations","isFetchingListLocations","haveLocationsBeenFetched","isAddingLocation","isEditingLocation","isRemovingLocation","getImportedLocationsList","importedLocationsSelectors","isImportingLocations","startFetchingJobsBacklog","completeFetchingJobsBacklog","failFetchingJobsBacklog","startPartialFetchingJobsBacklog","completePartialFetchingJobsBacklog","failPartialFetchingJobsBacklog","completeAddingJobBacklog","failAddingJobBacklog","completeEditingJobBacklog","failEditingJobBacklog","completeRemovingJobsBacklog","failRemovingJobsBacklog","completeChangeStatusJobs","failChangeStatusJobs","oldJobs","completeChangePriorityJobs","failChangePriorityJobs","completeChangeStartDateJobs","failChangeStartDateJobs","completeChangeDueDateJobs","failChangeDueDateJobs","completeChangeMinMaxTimeJobs","failChangeMinMaxTimeJobs","completeAssignUsersJobs","failAssignUsersJobs","completeAssignFormsJobs","failAssignFormsJobs","completeAssignFilesJobs","failAssignFilesJobs","completeRescheduleJobs","failRescheduleJobs","completeImportingJobs","failImportingJobs","DefaultButton","useSelector","isLoading","handleClick","tooltipMessage","iconSize","visible","useState","tooltipOpen","setTooltipOpen","Ripple","onClick","as","animation","role","aria-hidden","placement","isOpen","toggle","trigger","startFetchingContacts","completeFetchingContacts","failFetchingContacts","startPartialFetchingContacts","completePartialFetchingContacts","startAddingContact","completeAddingContact","failAddingContact","startEditingContact","completeEditingContact","failEditingContact","startRemovingContact","completeRemovingContact","failRemovingContact","selectContact","deselectAllContacts","contactIds","startFetchingOrganizations","completeFetchingOrganizations","failFetchingOrganizations","startPartialFetchingOrganizations","failPartialFetchingOrganizations","startAddingOrganization","completeAddingOrganization","failAddingOrganization","startEditingOrganization","completeEditingOrganization","failEditingOrganization","startSavingConsolidableEvents","completeSavingConsolidableEvents","failSavingConsolidableEvents","startRemovingOrganization","completeRemovingOrganization","failRemovingOrganization","selectOrganization","deselectOrganization","deselectAllOrganizations","startCheckingCode","completeCheckingCode","startAssigningCode","completeAssigningCode","failAssigningCode","startAddingOrganizationDowntimeReason","completeAddingOrganizationDowntimeReason","failAddingOrganizationDowntimeReason","startEditingOrganizationDowntimeReason","completeEditingOrganizationDowntimeReason","failEditingOrganizationDowntimeReason","oldDowntimeReason","startRemovingOrganizationDowntimeReason","completeRemovingOrganizationDowntimeReason","failRemovingOrganizationDowntimeReason","NumericalInput","step","useNumberSpinner","metric","allowUndefined","allowDecimals","decimalsPrecision","autoCompleteInput","allowZero","forceShowDecimals","setInputValue","authSystems","handleChangeNumber","newValue","isEmptyString","hasNumberFormat","validate","onKeyDown","preventDefault","readonly","startFetchingLocations","completeFetchingLocations","failFetchingLocations","startPartialFetchingLocations","completePartialFetchingLocations","failPartialFetchingLocations","startAddingLocation","completeAddingLocation","failAddingLocation","startEditingLocation","completeEditingLocation","failEditingLocation","startRemovingLocation","completeRemovingLocation","failRemovingLocation","startImportingLocations","completeImportingLocations","failImportingLocations","showLocationInMap","showAllLocationsInMap","hideLocationInMap","hideAllLocationsInMap","startFetchingGroups","completeFetchingGroups","failFetchingGroups","startPartialFetchingGroups","completePartialFetchingGroups","failPartialFetchingGroups","completeFetchingAllEntitiesGroups","failFetchingAllEntitiesGroups","startAddingGroup","completeAddingGroup","failAddingGroup","startAddingGroupWithEntities","completeAddingGroupWithEntities","failAddingGroupWithEntities","startEditingGroup","completeEditingGroup","failEditingGroup","startRemovingGroup","completeRemovingGroup","failRemovingGroup","startLeavingGroup","completeLeavingGroup","failLeavingGroup","startEditingNotificationsConfigurationGroup","completeEditingNotificationsConfigurationGroup","failEditingNotificationsConfigurationGroup","startRemovingEntitiesFromGroup","completeRemovingEntitiesFromGroup","startAddingEntitiesToGroup","completeAddingEntitiesToGroup","startEditingUserProfileInGroup","completeEditingUserProfileInGroup","selectGroup","deselectAllGroups","groupIds","startFetchingWorkplans","completeFetchingWorkplans","failFetchingWorkplans","startPartialFetchingWorkplans","completePartialFetchingWorkplans","failPartialFetchingWorkplans","completeFetchingWorkplanLocations","failFetchingWorkplanLocations","startAddingWorkplan","completeAddingWorkplan","failAddingWorkplan","startEditingWorkplan","completeEditingWorkplan","failEditingWorkplan","startRemovingWorkplan","completeRemovingWorkplan","failRemovingWorkplan","selectWorkplan","deselectWorkplan","startCopyWorkplan","completeCopyWorkplan","failCopyWorkplan","startAssignOriginGeofenceWorkplan","completeAssignOriginGeofenceWorkplan","failAssignOriginGeofenceWorkplan","startAssignWorkGeofenceWorkplan","completeAssignWorkGeofenceWorkplan","failAssignWorkGeofenceWorkplan","startAssignDestinationGeofenceWorkplan","completeAssignDestinationGeofenceWorkplan","failAssignDestinationGeofenceWorkplan","startFetchingForms","completeFetchingForms","failFetchingForms","startPartialFetchingForms","completePartialFetchingForms","failPartialFetchingForms","startFetchingFormSections","completeFetchingFormSections","failFetchingFormSections","startFetchingFormQuestions","completeFetchingFormQuestions","failFetchingFormQuestions","startAddingForm","formDescription","organizationFormCategoryId","useBarCodes","requireSignature","copyToCustomer","formTypeId","formUrl","notificationEmails","completeAddingForm","failAddingForm","startAddingExternal","startEditingExternal","startEditingForm","completeEditingForm","failEditingForm","startRemovingForm","completeRemovingForm","failRemovingForm","selectForm","deselectAllForms","startAddingResponse","tableResponses","responseDate","completeAddingResponse","failAddingResponse","addSection","sectionType","sectionId","changeSectionCollapsed","moveSection","startingPosition","endingPosition","editSectionName","sectionName","deleteSection","copySection","newSectionId","newSection","setSections","sectionsOrder","sectionsId","addRow","rowId","moveRow","editRowName","deleteRow","addQuestion","questionType","questionId","moveQuestion","deleteQuestion","copyQuestion","newQuestion","setQuestion","question","editQuestionHeight","changeQuestionCollapsed","startFetchingResponse","completeFetchingResponse","failFetchingResponse","startResendingResponse","completeResendingResponse","failResendingResponse","selectAnswer","responseId","moveAnswer","addAnswer","answerId","deleteAnswer","editAnswer","routesComments","isFetchingExecutions","isEditingExecution","isCancelingExecution","isFinalizingExecution","isCompletingExecution","isRemovingExecution","isSharingExecution","isPausingExecution","isStartingExecution","isUpdatingManualTransitExecution","isChangingToAlternateRoute","errorFetchingExecutions","errorEditingExecution","errorCancelingExecution","errorFinalizingExecution","errorCompletingExecution","errorRemovingExecution","errorPausingExecution","errorStartingExecution","errorUpdatingManualTransitExecution","errorSharingExecution","errorChangingToAlternateRoute","getRoutesExecution","getRouteExecutionInformation","getRoutesExecutionsList","getIndicatorsInformation","correctRunning","onOrigin","onDestination","onRoute","atCheckpoint","incorrectRunning","paused","offRoute","eao","unauthorizedReturn","running","scheduled","finalized","canceled","getTotalNotShown","getIndicators","viewTotalIndicator","viewScheduledIndicator","bigIndicator","details","info","onTime","late","popoverTitle","popoverBody","viewRunningIndicator","getExecutionsStatus","labels","series","viewRouteByStatusGraph","getRunningStatus","viewRouteRunningGraph","isFetchingRoutesExecutions","isEditingRouteExecution","isCancelingRoutesExecution","isFinalizingRoutesExecution","isCompletingRoutesExecution","isRemovingRoutesExecution","isPausingRoutesExecution","isStartingRoutesExecution","isUpdatingManualTransitRoutesExecution","isSharingRoutesExecution","isChangingToAlternateRouteExecution","getFetchingRoutesExecutionsErrors","getCancelingRoutesExecutionErrors","getFinalizingRoutesExecutionErrors","getCompletingRoutesExecutionErrors","getRemovingRoutesExecutionErrors","getPausingRoutesExecutionErrors","getStartingRoutesExecutionErrors","getUpdatingManualTransitRoutesExecutionErrors","getSharingRoutesExecutionErrors","getChangingToAlternateRouteErrors","JOBS_BOARD_FETCH_STARTED","JOBS_BOARD_FETCH_COMPLETED","JOBS_BOARD_FETCH_FAILED","JOBS_BOARD_CHANGE_STATUS_STARTED","JOBS_BOARD_CHANGE_STATUS_COMPLETED","JOBS_BOARD_CHANGE_STATUS_FAILED","startFetchingRoutes","completeFetchingRoutes","failFetchingRoutes","startPartialFetchingRoutes","completePartialFetchingRoutes","failPartialFetchingRoutes","startAddingRoute","completeAddingRoute","routeInformation","failAddingRoute","startEditingRoute","completeEditingRoute","failEditingRoute","startRemovingRoute","completeRemovingRoute","failRemovingRoute","startRemovingRoutes","completeRemovingRoutes","failRemovingRoutes","selectRoute","selectAllRoutes","deselectRoute","deselectAllRoutes","startCopyRoute","completeCopyRoute","failCopyRoute","showRouteInMap","showAllRoutesInMap","hideRouteInMap","hideAllRoutesInMap","JOB_FETCH_STARTED","JOB_FETCH_COMPLETED","JOB_FETCH_FAILED","WORKPLANS_VISITS_FETCH_STARTED","WORKPLANS_VISITS_FETCH_COMPLETED","WORKPLANS_VISITS_FETCH_FAILED","WORKPLANS_ALL_VISITS_FETCH_STARTED","WORKPLANS_ALL_VISITS_FETCH_COMPLETED","WORKPLANS_ALL_VISITS_FETCH_FAILED","divisionIds","divisionIdState","getDivision","getDivisionsList","divisionStatus","getDivisionsListByMembership","getDivisionsListBySelectedOrganization","getSelectedDivisions","selectedDivisions","getSelectedDivision","isPartialFetchingListDivisions","isFetchingListDivisions","isAddingDivision","isEditingDivision","isRemovingDivision","getPartialFetchingListDivisionsErrors","getFetchingListDivisionsErrors","getAddingDivisionErrors","getEditingDivisionErrors","getRemovingDivisionErrors","routeStatusLabel","routeStatusLabelInfo","routeStatus","convertKilometersPerLiterToAuthUserFuelSystem","isDeviceOpenLabel","isDeviceOpen","stopStatus","speedLabel","routeProgressLabel","routeProgress","distanceToCheckpointLabel","distanceToCheckpoint","distanceLabel","fuelConsumption","performanceOnRoute","distanceProgress","completionTypes","globalNotificationFrecs","startTimeWindow","routesEvents","routesTimelineEvents","routesCheckpointsIcons","iconTxt","getRouteStatusColorClass","getMarker","iconId","latLng","L","marker","getIcon","checkpointClassDefaultColor","checkpointTextDefaultColor","divIcon","iconAnchor","popupAnchor","getRouteBounds","latlngPolylines","performanceTemplate","args","performanceUnit","performanceRanges","percentage","translation","valueNodeRef","useRef","marginLeft","VALIDATION_ERROR_TYPES","getValidationErrorIcon","errors","level","getValidationErrorColor","validateDateTimesDiff","firstDate","secondDate","diffInMilliseconds","diffInMillisecondsAsInt","isSame","abs","duplicatedUnitRouteAssignmentValidator","assignedUnitsFromDatabase","commonValues","unitsRoutesAssignmentsFromState","unitsRoutesAssignment","correlative","assignmentTypeNumber","hasAssignmentAtSameHourOrScheduleNextRun","existingAssignments","comparePredicate","AssignmentTypes","ByDate","stepperStartDate","assignmentStartDate","existingAssignment","existingAssignmentStartDate","REACT_APP_MIN_VALID_DIFF_TIME_BETWEEN_UNITS_ROUTES_ASSIGNMENT","stepperNextRunDate","nextRunDate","existingAssignmentNextRunDate","unitRoutAssignmentNextRunDate","scheduleNextRunDate","unitRouteAssignment","ENTITIES_FETCH_STARTED","ENTITIES_FETCH_COMPLETED","ENTITIES_FETCH_FAILED","ENTITIES_RESET_IS_FETCHED","ENTITIES_UPDATE_STARTED","ENTITIES_UPDATE_COMPLETED","ENTITIES_UPDATE_FAILED","CheckboxInput","UUIDv4","classNameCustom","inline","checked","subdivisionIds","subdivisionIdState","getSubdivision","getSubdivisionsList","subdivisionStatus","getSubdivisionsListByMembership","getSubdivisionsListBySelectedDivision","getSelectedSubdivisions","selectedSubdivisions","getSelectedSubdivision","isPartialFetchingListSubdivisions","isFetchingListSubdivisions","isAddingSubdivision","isEditingSubdivision","isRemovingSubdivision","getPartialFetchingListSubdivisionsErrors","getFetchingListSubdivisionsErrors","getAddingSubdivisionErrors","getEditingSubdivisionErrors","getRemovingSubdivisionErrors","viewWorkplanModule","assignWorkplan","searchWorkplans","viewPlansIndicator","viewLocationsIndicator","viewVisitsIndicator","viewExecutionIndicator","viewArrivalEffectivnessGraph","viewPermanenceEffectivenessGraph","viewLocationsUnitsEffectivenessGraph","changeUnit","finalizeWorkplanAssignment","viewWorkplanMonitor","cancelWorkplanAssignment","viewWorkplanReport","deleteWorkplan","viewWorkplanCatalog","scheduledWorkplanList","scheduledWorkplanEdit","scheduledWorkplanDelete","Toolbar","buttons","child","FetchEntities","useUnits","unitsFilters","useSubdivisions","subdivisionsFilters","useMaintenanceLines","maintenanceLinesFilters","useVehicles","vehiclesFilters","useSims","simsFilters","useModules","modulesFilters","useDrivers","driversFilters","useAgents","useServiceClasses","useServiceClassesDropdown","useUsers","usersFilters","useOperators","useDivisions","divisionsFilters","useOrganizations","useContacts","useWorkplans","workplansFilters","useGeofences","geofencesFilters","useSchedules","useForms","useRoutes","routesFilters","useCountries","useLocations","locationsFilters","useOffices","officesFilters","useAssets","assetsFilters","useSensors","useJobsBacklog","jobsBacklogFilters","useGroups","groupsFilters","useOrganizationContracts","organizationContractsFilters","useContractTemplates","contractTemplatesFilters","useCustomers","customersFilters","useProtocols","additionalEntities","protocolsFilters","intervalTime","useDispatch","entitiesSelectors","fetchEntitiesWithFilters","finalEntities","fetchEntities","fetchDivisions","fetchSubdivisions","fetchMaintenanceLines","fetchLocations","fetchOffices","fetchDrivers","fetchWorkplans","fetchGeofences","fetchRoutes","fetchUnits","fetchVehicles","fetchAssets","jobsFilters","allowNullOperatorId","fetchUsers","fetchCustomers","fetchGroups","fetchOrganizationContracts","fetchContracTemplates","fetchModules","fetchSims","jobTitle","getJobsReportByUserListService","MainStateType","ONLINE","textColor","tooltip","shortIntl","OFFLINE","OFF","MOVING","ON_IDLE","ON_STANDBY","ON_STARTED","DOWNTIME","ON_STOPPED","ON_MOVING","STOPPED","OPPORTUNITY_CHARGE","DISCONNECTED","getIconByStatId","GetMainStateStyle","mainStateTitle","downTimeReason","extraMessage","getUnitIcon","getUnitActionIcon","getUnitMainStateIconAndSize","getUnitCommunicationDiagnosticsIcon","lastCommunicationDate","date1","date2","hoursDiff","getUnitHeadingIcon","getDatesDifferenceString","getTimeDifferenceString","getIconByDatesDifference","getDisabledUnitsListService","changeUnitSubState","getRouteAssignments","getFleetService","getUnitDeviceActionParametersService","getUnitDeviceActionsService","getUnitRunningTimeByHour","getUnitScriptHistory","getUnitTemperatureHistory","getUnitFuelHistory","getAssetFuelHistory","getUnitFuelSamples","getUnitFuelInformation","getUnitFuelEvents","getDowntimeBinnacleService","getUserAssignedUnits","removeUserAssignedUnits","addUserAssignedUnits","updateOdometer","updateHourmeter","updateDeviceService","startFetchingAgents","completeFetchingAgents","failFetchingAgents","startPartialFetchingAgents","completePartialFetchingAgents","failPartialFetchingAgents","startFetchingAgent","completeFetchingAgent","failFetchingAgent","startAddingAgent","completeAddingAgent","failAddingAgent","startEditingAgent","completeEditingAgent","failEditingAgent","startRemovingAgent","completeRemovingAgent","failRemovingAgent","selectAgent","deselectAgent","startFetchingOperators","completeFetchingOperators","failFetchingOperators","startPartialFetchingOperators","completePartialFetchingOperators","failPartialFetchingOperators","startAddingOperator","completeAddingOperator","failAddingOperator","startEditingOperator","completeEditingOperator","failEditingOperator","startEditingOperatorStandardPrices","completeEditingOperatorStandardPrices","startRemovingOperator","completeRemovingOperator","failRemovingOperator","selectOperator","deselectOperator","mileageReport","hourMetersReport","runningTimeReport","unitActivity","byUnitStopSummaryReport","byUnitScriptsHistoryReport","consolidatedStopSummaryReport","consolidatedOpportunityOfCharge","consolidatedUnitActivityReport","consolidatedEventActivityReport","parkedGeofenceReport","fuelSensorReport","scheduledReports","scheduledReportsCreate","scheduledReportsEdit","scheduledReportsDelete","systemCommunicationsDiagReport","systemNotificationsReport","accommodationChargesReport","administrativeReports","byUnitReports","consolidatedReports","listReports","deepSearch","consumptionAPIReport","readWebEvents","markReadedWebEvents","consolidatedSummary","readAPICost","startFetchingMonitoringUsers","completeFetchingMonitoringUsers","failFetchingMonitoringUsers","startPartialFetchingMonitoringUsers","completePartialFetchingMonitoringUsers","failPartialFetchingMonitoringUsers","startAddingMonitoringUser","completeAddingMonitoringUser","failAddingMonitoringUser","startEditingMonitoringUser","completeEditingMonitoringUser","failEditingMonitoringUser","startRemovingMonitoringUser","completeRemovingMonitoringUser","failRemovingMonitoringUser","selectMonitoringUser","monitoringUserId","deselectAllMonitoringUsers","monitoringUserIds","startUpdatingMonitoringUserPassword","completeUpdatingMonitoringUserPassword","failUpdatingMonitoringUserPassword","startSavingMonitoringUserRolesAndPermissions","completeSavingMonitoringUserRolesAndPermissions","startAssigningScheduleUsers","completeAssigningScheduleUsers","completeUnassigningScheduleUsers","startUnassigningScheduleUsers","routesReport","unitsById","routesById","isFetchingReport","errorFetchingReport","realDistanceLabel","realDistance","calculatedDistanceLabel","calculatedDistance","effectivenessLabel","effectiveness","durationLabel","completionDate","cancelDate","transitDurationLabel","transitDate","getRoutesUnit","getRoutesRoute","fuelConsumptionLabel","routesAssignments","routeIdState","isCopying","errorCopying","routesPersistConfig","getRoute","routeSelectorsCheckpoints","speedLimitFormat","getRoutesList","getRoutesListByMembership","isPartialFetchingListRoutes","isFetchingListRoutes","isAddingRoute","isEditingRoute","routesSelectorsExecutions","getRoutesExecutionsIndicators","getRoutesExecutionsTotalNotShown","getRoutesExecutionsStatus","getRoutesExecutionsRunningStatus","getRoutesReportExecutionsList","routesSelectorsReport","getRoutesReportUnitsList","getRoutesReportRoutesList","getRoutesReportIndicators","isFetchingRoutesReport","isFetchingListRouteCheckpoints","startFetchingEntities","startFetchingEntitiesAfterLogin","completeFetchingEntities","failFetchingEntities","resetIsFetchedEntities","startUpdatingEntities","completeUpdatingEntities","failUpdatingEntities","startFetchingDrivers","completeFetchingDrivers","failFetchingDrivers","startPartialFetchingDrivers","completePartialFetchingDrivers","failPartialFetchingDrivers","startAddingDriver","completeAddingDriver","failAddingDriver","startEditingDriver","completeEditingDriver","failEditingDriver","startRemovingDriver","completeRemovingDriver","failRemovingDriver","selectDriver","deselectAllDrivers","driverIds","startMassiveDriversAssignment","completeMassiveDriversAssignment","errorMassiveDriversAssignment","startImportData","completeImportDriver","startDriverAssignSensor","completeDriverAssignSensor","startDriverUnassignSensor","completeDriverUnassignSensor","startFetchingModules","completeFetchingModules","failFetchingModules","startPartialFetchingModules","completePartialFetchingModules","failPartialFetchingModules","completeFetchingModule","failFetchingModule","startAddingModule","completeAddingModule","failAddingModule","startEditingModule","completeEditingModule","failEditingModule","startRemovingModule","completeRemovingModule","failRemovingModule","selectModule","deselectModule","deselectAllModules","moduleIds","JOBS_REPORT_FETCH_STARTED","JOBS_REPORT_FETCH_COMPLETED","JOBS_REPORT_FETCH_FAILED","WORKPLANS_REPORT_FETCH_STARTED","WORKPLANS_REPORT_FETCH_COMPLETED","WORKPLANS_REPORT_FETCH_FAILED","ROUTES_REPORT_FETCH_STARTED","ROUTES_REPORT_FETCH_COMPLETED","ROUTES_REPORT_FETCH_FAILED","deleteRoute","assignRoute","deleteRouteAssignment","completeRouteAssignment","finalizeRouteAssignment","cancelRouteAssignment","viewDestinationIndicator","viewRouteCatalog","searchRoutes","viewRouteMonitor","viewRouteReport","viewExtraFieldsInRouteAssignment","changeCompletionType","shareRouteAssignment","startFetchingServiceClasses","completeFetchingServiceClasses","failFetchingServiceClasses","startPartialFetchingServiceClasses","completeFetchingServiceClass","failFetchingServiceClass","startAddingServiceClass","completeAddingServiceClass","failAddingServiceClass","startEditingServiceClass","completeEditingServiceClass","failEditingServiceClass","startRemovingServiceClass","completeRemovingServiceClass","failRemovingServiceClass","selectServiceClass","deselectAllServiceClasses","serviceClassIds","startFetchingAssets","completeFetchingAssets","failFetchingAssets","startPartialFetchingAssets","completePartialFetchingAssets","failPartialFetchingAssets","startAddingAsset","completeAddingAsset","failAddingAsset","startEditingAsset","completeEditingAsset","failEditingAsset","startRemovingAsset","completeRemovingAsset","failRemovingAsset","selectAsset","deselectAsset","startCheckingSecuritySealCode","completeCheckingSecuritySealCode","startFetchingContractTemplates","completeFetchingContractTemplates","failFetchingContractTemplates","startPartialFetchingContractTemplates","completePartialFetchingContractTemplates","failPartialFetchingContractTemplates","startAddingContractTemplate","completeAddingContractTemplate","failAddingContractTemplate","startEditingContractTemplate","completeEditingContractTemplate","failEditingContractTemplate","startRemovingContractTemplate","completeRemovingContractTemplate","failRemovingContractTemplate","selectContractTemplate","deselectAllContractTemplates","templateIds","startFetchingCustomers","completeFetchingCustomers","failFetchingCustomers","startPartialFetchingCustomers","completePartialFetchingCustomers","failPartialFetchingCustomers","startAddingCustomer","completeAddingCustomer","failAddingCustomer","startEditingCustomer","completeEditingCustomer","failEditingCustomer","startRemovingCustomer","completeRemovingCustomer","failRemovingCustomer","selectCustomer","deselectCustomer","startFetchingOffices","completeFetchingOffices","failFetchingOffices","startPartialFetchingOffices","completePartialFetchingOffices","failPartialFetchingOffices","startAddingOffice","completeAddingOffice","failAddingOffice","startEditingOffice","completeEditingOffice","failEditingOffice","startRemovingOffice","completeRemovingOffice","failRemovingOffice","selectOffice","deselectOffice","startFetchingDivisions","completeFetchingDivisions","failFetchingDivisions","startPartialFetchingDivisions","completePartialFetchingDivisions","failPartialFetchingDivisions","startAddingDivision","completeAddingDivision","failAddingDivision","startEditingDivision","completeEditingDivision","failEditingDivision","startRemovingDivision","completeRemovingDivision","failRemovingDivision","selectDivision","deselectDivision","startFetchingSubdivisions","completeFetchingSubdivisions","failFetchingSubdivisions","startPartialFetchingSubdivisions","completePartialFetchingSubdivisions","failPartialFetchingSubdivisions","startAddingSubdivision","completeAddingSubdivision","failAddingSubdivision","startEditingSubdivision","completeEditingSubdivision","failEditingSubdivision","startRemovingSubdivision","completeRemovingSubdivision","failRemovingSubdivision","selectSubdivision","deselectSubdivision","startFetchingSensors","completeFetchingSensors","failFetchingSensors","startPartialFetchingSensors","completePartialFetchingSensors","failPartialFetchingSensors","startAddingSensor","completeAddingSensor","failAddingSensor","startEditingSensor","completeEditingSensor","failEditingSensor","startRemovingSensor","completeRemovingSensor","failRemovingSensor","selectSensor","deselectSensor","sensorCalibrationStartStarted","sensorCalibrationStartCompleted","sensorCalibrationStartFail","sensorCalibrationFinalizeStarted","sensorCalibrationFinalizeCompleted","sensorCalibrationFinalizeFail","startFetchingOrganizationContracts","completeFetchingOrganizationContracts","failFetchingOrganizationContracts","startPartialFetchingOrganizationContracts","completePartialFetchingOrganizationContracts","failPartialFetchingOrganizationContracts","startAddingOrganizationContract","completeAddingOrganizationContract","failAddingOrganizationContract","startEditingOrganizationContract","completeEditingOrganizationContract","failEditingOrganizationContract","startRemovingOrganizationContract","completeRemovingOrganizationContract","failRemovingOrganizationContract","selectOrganizationContract","deselectAllOrganizationContracts","contractIds","operatorIds","operatorIdState","isEditingStandardPrices","errorEditingStandardPrices","getOperator","getOperatorsList","operatorStatus","getSelectedOperator","selectedOperators","isEditingOperatorStandardPrices","startFetchingVehicles","completeFetchingVehicles","failFetchingVehicles","startPartialFetchingVehicles","completePartialFetchingVehicles","failPartialFetchingVehicles","startAddingVehicle","completeAddingVehicle","failAddingVehicle","startEditingVehicle","completeEditingVehicle","failEditingVehicle","startRemovingVehicle","completeRemovingVehicle","failRemovingVehicle","selectVehicle","deselectVehicle","ROUTE_CHECKPOINTS_FETCH_STARTED","ROUTE_CHECKPOINTS_FETCH_COMPLETED","ROUTE_CHECKPOINTS_FETCH_FAILED","ROUTE_CHECKPOINTS_CLEAR","timeInSeconds","minute","VEHICLE_MAKERS_FETCH_STARTED","VEHICLE_MAKERS_FETCH_COMPLETED","VEHICLE_MAKERS_FETCH_FAILED","VEHICLE_MODELS_FETCH_STARTED","VEHICLE_MODELS_FETCH_COMPLETED","VEHICLE_MODELS_FETCH_FAILED","INSURANCE_COMPANIES_FETCH_STARTED","INSURANCE_COMPANIES_FETCH_COMPLETED","INSURANCE_COMPANIES_FETCH_FAILED","INSURANCE_AGENTS_FETCH_STARTED","INSURANCE_AGENTS_FETCH_COMPLETED","INSURANCE_AGENTS_FETCH_FAILED","startFetchingSims","completeFetchingSims","failFetchingSims","startPartialFetchingSims","completePartialFetchingSims","failPartialFetchingSims","startAddingSim","completeAddingSim","failAddingSim","startEditingSim","completeEditingSim","failEditingSim","startRemovingSim","completeRemovingSim","failRemovingSim","selectSim","deselectSim","deselectAllSims","simIds","HANDLE_SEARCH_QUERY","GET_BOOKMARKS_FETCH_STARTED","GET_BOOKMARKS_FETCH_COMPLETED","GET_BOOKMARKS_FETCH_FAILED","UPDATE_BOOKMARKED_STARTED","UPDATE_BOOKMARKED_COMPLETED","UPDATE_BOOKMARKED_FAILED","useScript","url","script","$","async","appendChild","getRectBoundsFromLatLng","radius","dy","dx","cos","PI","bounds","minLatitude","minLongitude","maxLatitude","maxLongitude","getIsInnerGeoreferenceFromLatLng","unitPositions","matches","unitPosition","matchStatus","getRectangleFromLatLng","getTriangleFromLatLng","originalContactId","contactIdState","isFetching","errorFetching","getContact","getContactsList","getSelectedContact","selectedContacts","isFetchingListContacts","isEditingContact","isAddingContact","startFetchingMaintenanceLines","completeFetchingMaintenanceLines","failFetchingMaintenanceLines","startPartialFetchingMaintenanceLines","completePartialFetchingMaintenanceLines","failPartialFetchingMaintenanceLines","startAddingMaintenanceLine","completeAddingMaintenanceLine","failAddingMaintenanceLine","startEditingMaintenanceLine","completeEditingMaintenanceLine","failEditingMaintenanceLine","startRemovingMaintenanceLine","completeRemovingMaintenanceLine","failRemovingMaintenanceLine","startCopyMaintenanceLine","completeCopyMaintenanceLine","failCopyMaintenanceLine","selectMaintenanceLine","deselectMaintenanceLine","BRANDS_FETCH_STARTED","BRANDS_FETCH_COMPLETED","BRANDS_FETCH_FAILED","DateInput","allowNulls","maxDate","minDate","isRange","showTime","enableTime","defaultHour","defaultMinute","additionalTimeProps","startRef","startButtonRef","endRef","endButtonRef","prevValue","setPrevValue","prevValueRange","setPrevValueRange","sm","cursor","current","flatpickr","open","Spanish","english","mode","selectedDates","startOf","endOf","onClose","CONFIGURATIONS_FETCH_STARTED","CONFIGURATIONS_FETCH_COMPLETED","CONFIGURATIONS_FETCH_FAILED","PROVIDERS_FETCH_STARTED","PROVIDERS_FETCH_COMPLETED","PROVIDERS_FETCH_FAILED","MODELS_FETCH_STARTED","MODELS_FETCH_COMPLETED","MODELS_FETCH_FAILED","Table","TableComponent","version","enablePersistence","omitPersistenceKeys","enableVirtualization","rerender","selectAll","deselectAll","initialFilterColumns","sortSettings","actionSave","onDrop","onDeselect","changeSelected","rerenderSelected","allowSorting","allowRowDragAndDrop","allowPaging","pageSize","allowResizing","allowReordering","allowFiltering","allowMultipleSelection","sortedColumn","frozenColumns","initialSelectedRowIndex","persistSelectIndexes","toolbarOptions","allowExcelExport","toolbarClick","setTableRef","allowGrouping","groupSettings","changeState","show","setShow","setLocale","stateRef","changeKey","setTooltip","tableColumns","setTableColumns","selectedRowIndexes","setSelectedRowIndexes","scrollLeft","setScrollLeft","intlContext","useContext","IntlContext","dataTable","dataRowTableId","savedVersion","headerModule","autoFitColumns","sortedColumnIndex","direction","reset","useDeepCompareEffect","getFilteredRecords","selectRowsByRange","selectedRows","getElementById","clearSelection","setTimeout","compareDeps","col","hide","selectRows","scrollModule","refresh","toolbar","allowEditing","t","beforeRender","arg","idColumnTooltip","indexColumnTooltip","getAttribute","parentElement","tooltipColumn","childElementCount","classList","contains","cssClass","tooltipText","showColumnChooser","cellSave","rowData","columnName","rowDrop","dataSource","assign","gridLines","rowSelected","rowIndexes","rowDeselected","deselect","pageSettings","currentPage","filterSettings","resizeSettings","selectionSettings","enableSimpleMultiRowSelection","selectedRowIndex","dataBound","editSettings","allowAdding","allowDeleting","stackedColumn","j","autoFit","stackedStackedColumn","isPrimaryKey","editType","editTemplate","headerTemplate","formatColumn","displayAsCheckBox","template","hasTooltip","freeze","edit","textAlign","valueAccessor","tooltipTemplate","aggregateType","customAggregate","customAggregateFn","footerTemplate","aggregateText","Count","services","Resize","Filter","Sort","Page","Search","Freeze","Reorder","Aggregate","Edit","RowDD","VirtualScroll","ExcelExport","ColumnChooser","Group","officeIds","officeIdState","getOffice","averageCapacityFormat","averageCapacity","minCapacityFormat","minCapacity","maxCapacityFormat","maxCapacity","getOfficesList","officeStatus","getOfficesListByMembership","getNotAssignedOfficesListByCustomer","getSelectedOffice","selectedOffices","isPartialFetchingListOffices","isFetchingListOffices","startFetchingProtocols","completeFetchingProtocols","failFetchingProtocols","patload","startPartialFetchingProtocols","completePartialFetchingProtocols","failPartialFetchingProtocols","startAddingProtocol","completeAddingProtocol","failAddingProtocol","startEditingProtocol","completeEditingProtocol","failEditingProtocol","startRemovingProtocol","completeRemovingProtocol","failRemovingProtocol","selectProtocol","deselectAllProtocols","protocolIds","startFetchingNotices","completeFetchingNotices","failFetchingNotices","startAddingNotice","completeAddingNotice","failAddingNotice","startEditingNotice","completeEditingNotice","failEditingNotice","oldNotice","startRenewNotice","completeRenewNotice","failRenewNotice","startRemovingNotice","completeRemovingNotice","failRemovingNotice","TimeInput","minTime","inFormat","defaultDate","noCalendar","time_24hr","dateValue","searchLocation","listLocations","importLocation","listPrivateOrganizationLocations","listLocationsOnMap","searchLocations","searchExternalLocations","paths","maintenanceLineList","addWorkshopOrders","typesLocations","workplanExecutionLocationIdState","locationSelectors","boundsCustomColor","getPropertyValue","locationVisitStatus","locationClassDefaultColor","jobStatusLabel","sequenceComplianceLabel","validSequence","locationVisitStatusLabel","getLocationsListByVisit","getAddingLocationErrors","getEditingLocationErrors","getRemovingLocationErrors","startFetchingAssignments","completeFetchingAssignmentsWithSchedule","completeFetchingAssignmentsWithDateTime","failFetchingAssignments","completeRemovingAssignmentWithSchedule","completeRemovingAssignmentWithDateTime","failRemovingAssignment","completeEditingAssignmentWithSchedule","failEditingAssignmentWithSchedule","completeEditingAssignmentWithDateTime","failEditingAssignmentWithDateTime","defaultOptions","colSize","showAllOperator","showAllOrganization","showAllAgent","showAllDivision","showAllSubdivision","showAllGroup","useUserOperator","useUserOrganization","useUserAgent","useUserDivision","useUserSubdivision","useUserGroup","setUserOperator","setUserOrganization","setUserAgent","setUserDivision","setUserSubdivision","setUserGroup","useAgent","useGroup","isOperatorDisabled","isOrganizationDisabled","isAgentDisabled","isDivisionDisabled","isSubdivisionDisabled","isGroupDisabled","Dropdowns","shouldUnregister","newMembership","membershipDefaultValue","membershipOptions","useController","defaultValue","operatorField","operatorFieldState","fieldState","organizationField","organizationFieldState","divisionField","divisionFieldState","subdivisionField","subdivisionFieldState","groupField","groupFieldState","operatorsList","organizationsList","divisionsList","filterOrganization","subdivisionsList","agentsList","agentsSelectors","groupList","finalOnChange","Col","subdivisionPlaceholder","render","Membership","isInitialize","setIsInitialize","setMembershipDefaultValue","setMembershipOptions","updateOptions","membershipAccessLevel","AuthSelectors","updateUserMembership","userMembership","updateModel","useMembership","Spinner","SwitchInput","onAfterChange","successColor","warningColor","dangerColor","infoColor","getJobDescriptionTemplate","jobDescription","ReactHtmlParser","getJobPriorityColor","priority","getJobPriorityTemplate","priorityColor","alignItems","justifyContent","pill","getJobTypeIcon","jobBacklogTypeId","jobTypesList","jobTypeId","getJobTypeTemplate","center","getJobRequesterTemplate","requesterUserName","img","requestUserImageUrl","requesterCompleteName","initials","getJobRequesterInfoTemplate","getUsersText","getJobUsersRowTemplate","userSplit","idx","completeName","getJobNotificationEmailsTemplate","nemail","getJobUsersInfoTemplate","getJobFormsInfoTemplate","formSplit","formResponsesCount","getJobFilesInfoTemplate","md","fileSplit","file","fileName","fileUrl","fileExtension","getTotalEstimatedTimeTemplate","estimatedDurationText","getTotalExecutionTimeTemplate","totalExecutionIsOnTime","totalExecutionTime","estimatedDuration","totalExecutionTimeColor","totalExecutionTimeText","getJobStatusColor","colorsJobStatus","getJobStatusColorClass","getJobStatusIcon","getJobStatusTemplate","jobStatusText","cardJobTemplate","startDateFormat","dueDateFormat","getJobStatusTitleColumnsTemplate","count","intlTasks","getJobStatusText","today","getJobLocationTemplate","onJobLocationCheck","getJobLocationInfoTemplate","mapLocationsOptions","hideMarkersByZoom","clusterMarkers","showLocations","setMapPositionToLocationBounds","useRectangleBounds","useSlidingpanelLocationInformation","locationClassIconName","rulerControlOptions","useControl","followingJobsSuccessChangeStatus","propertyChange","successJobs","flush","minsToDurationTimeText","mins","secondsInAHour","timeArray","convertHtmlToText","tempDivElement","innerText","customerIds","customerIdState","getCustomer","getCustomersList","customerStatus","getCustomersListByMembership","getNotAssignedCustomersList","getSelectedCustomer","selectedCustomers","isPartialFetchingListCustomers","isFetchingListCustomers","listGeofencesOnMap","listGeofences","listAsignedGeofences","asignGeofenceToUnit","unasignGeofenceToUnit","getLocationClass","getLocationClassIconName","lc","getLocationClassesList","isFetchingListLocationClasses","haveLocationClassesBeenFetched","DefaultSimpleButton","usersToAdd","isInGroup","locationsCount","workPlansCount","userCount","unitCount","geofenceCount","driverCount","entitiesToAdd","userImage","workPlanName","notifyAdmin","notifyOwner","shape","notifyEmails","driverPhoto","licenseNumber","licenseType","licenseExpireDate","entityId","groupIdState","isFetchingAllEntities","isLeaving","errorFetchingAllEntities","errorLeaving","groupsPersistedConfig","getGroupsList","groupStatus","getUnfilteredSelectedGroup","getAllGroupsList","getSelectedGroup","selectedGroups","isPartialFetchingListGroups","isFetchingListGroups","configurationId","getConfigurationsList","getConfiguration","startFetchingCategories","completeFetchingCategories","failFetchingCategories","startAddingCategory","completeAddingCategory","failAddingCategory","startEditingCategory","completeEditingCategory","failEditingCategory","oldCategory","startRemovingCategory","completeRemovingCategory","failRemovingCategory","Avatar","forwardRef","imgClassName","badgeUp","badgeColor","badgeText","imgHeight","imgWidth","Tag","tag","contentStyles","rest","classnames","str","results","getInitials","MultiValue","MultiValueLabel","badge","IconMultipleValue","identifierIcon","MultiSelectInput","canCreate","underText","innerOptions","setOptions","op","renderToString","multiValue","SelectComponent","CreatableSelect","Select","isMulti","selectedOptions","onCreate","isValidNewOption","currentValue","formatCreateLabel","inputValueNormalized","underIcon","iconAction","iconDisabled","iconTooltip","iconStyle","driverIdState","isImportingDriversAndUnitsList","importDriversAndUnits","isAssigningDrivers","driversPersistedConfig","getDriver","getDriversList","driverStatus","getDriversListByMembership","getDriverByPrivateCode","getDriverByPrivateCodeByMembership","getSelectedDriver","selectedDrivers","getDriverByIdOrPrivateCode","isPartialFetchingListDrivers","isFetchingListDrivers","isImportingDriversAndUnits","importedDriversAndUnits","TitleH4","textId","textTransform","agentIds","agentIdState","getAgent","getAgentsList","agentStatus","getAgentsListByMembership","getSelectedAgent","selectedAgents","isFetchingListAgents","addTicket","consolidatedReport","recordMultiple","workplansBulkInsert","isNew","temperatureCatalog","temperatureStadistics","fuelCatalog","fuelReport","fuelStadistics","tirePressureCatalog","obd2Monitor","telemtryUnits","downtime","MapBaseLayers","forceUseMapquestMaps","forceUseGoogleMaps","forceUseHereMaps","forceUseBingMaps","listenMapControlChanges","context","useLeafletContext","mapquestConsumerKey","googleMapsApiKey","osmmap","gmRoadmap","gmHybrid","gmSatellite","gmTerrain","gmTraffic","bing","bing_satelite","bing_hibrido","here_layer","here_satelite_layer","mqOsm","mqHybrid","mqSatellite","mqDark","mqLight","useMapquestMaps","MQ","useGoogleMaps","useBingMaps","useHereMaps","baseMapLayers","OpenStreetMap","TileLayer","maxZoom","attribution","mapLayer","hybridLayer","satelliteLayer","darkLayer","lightLayer","gridLayer","googleMutant","addGoogleLayer","bing_api_key","bingMapsApiKey","BingLayer","hereMapsAppId","hereMapsAppCode","tileLayer","app_id","app_code","layerGroup","Control","Layers","container","layerContainer","addLayer","addControl","homeLayer","addTo","removeControl","MapGeofenceEdit","useMap","showGeofence","onGeofenceEdit","usePopovers","isMapFullScreen","zoomMapAfterEdit","zoomMapToGeofence","geofenceGeoJSON","WKBtoGeoJSON","geofenceWktString","feature","coordinates","flyToBounds","toBounds","geoJson","getBounds","wkt","geometry","wkx","Geometry","toGeoJSON","geofenceRef","pm","enableLayerDrag","enable","removeLayerBelowMinVertexCount","draggable","openPopup","Circle","GeoJSON","coordsToLatLng","pathOptions","eventHandlers","click","parseGeoJSON","toWkt","getRadius","layer","Popup","Rectangle","coordsToLatLngs","Polygon","MarkerClusterGroup","createPathComponent","ctx","clusterProps","spiderLegPolylineOptions","pmIgnore","weight","opacity","removeOutsideVisibleBounds","chunkedLoading","iconCreateFunction","cluster","childCount","getChildCount","DivIcon","Point","clusterEvents","entries","propName","prop","markerClusterGroup","_getExpandedVisibleBounds","_map","eventAsProp","callback","clusterEvent","on","instance","paddingBottomRight","paddingTopLeft","animate","getZoom","MapGeofences","useMapEvents","moveend","displayGeofences","isSelectedSomething","setIsSelectedSomething","showGeofences","useIsShownGeofence","selectedGeofenceIds","setMapPositionToGeofenceBounds","useSlidingpanelGeofenceInformation","initialShowSlidingPanelGeofenceInformationOpen","initialGeofenceInformationOpenId","editingGeofenceParent","setEditingGeofenceParent","editingGeofenceParentRef","showGeofenceInformationSlidepanel","setShowGeofenceInformationSlidepanel","initialGeofenceId","setInitialGeofenceId","selectedGeofence","setSelectedGeofence","mainGeofence","geofenceActions","coords","flatten","coordinate","fitBounds","latLngBounds","bound","LatLng","initialGeofenceInformation","WrapperMarkerClusterGroup","Fragment","geofencesBounds","setGeofencesBounds","overlaps","onClickGeofence","zIndexOffset","Tooltip","offset","SlidingpanelGeofenceInformation","closeSlidepanel","isSlidepanelOpen","MapLocationEdit","showLocation","onLocationDragend","zoomMapToLocation","ll","markerRef","preventMarkerRemoval","popupRef","Marker","latlng","getLatLng","MapLocations","displayMarkers","useIsShownLocation","selectedLocationIds","initialShowSlidingPanelLocationInformationOpen","initialLocationInformationOpenId","editingLocationParent","setEditingLocationParent","editingLocationParentRef","selectedLocationInTable","showLocationInformationSlidepanel","setShowLocationInformationSlidepanel","initialLocationId","setInitialLocationId","selectedLocation","setSelectedLocation","loc","initialLocationInformation","locationsBounds","setLocationsBounds","showUnitByZoomAndRadius","riseOnHover","locationClassContent","permanent","fullImageUrl","Media","SlidingpanelLocationInformation","MapObjectsBounds","setMapPositionToUnitBounds","setMapPositionToUnitPositionsBounds","setMapPositionToRouteBounds","rerenderMapObjectBounds","s","zoomMapToObjects","encode","factor","output","fromCharCode","flipped","reverse","decode","precision","latitude_change","lat","lng","byte","pow","charCodeAt","fromGeoJSON","geojson","Routing","Google","Class","extend","initialize","travelMode","google","maps","TravelMode","DRIVING","unitSystem","UnitSystem","METRIC","provideRouteAlternatives","directionsService","DirectionsService","Util","_flatten","arrs","concat","_decodePolyline","latlngs","_maneuverToInstructionType","maneuver","waypoints","that","directions","geometryOnly","origin","destination","waypoint","stopover","DirectionsStatus","OK","iroute","summary","totalDistance","legs","leg","steps","previousValue","totalTime","indices","indicesSecondary","waypointIndices","nWaypoint","stepsPoints","points","via_waypoints","si","via_waypoint","step_index","sp","step_interpolation","inputWaypoints","actualWaypoints","instructions","exit","RouteItem","formValues","createdLocations","addCheckpoint","editCheckpoint","editPath","deleteCheckpoint","addNewMarkerOnMap","addGoogleLocationToCheckpoint","addLocationToCheckpoint","deleteLocationOfCheckpoint","mouseEnter","setMouseEnter","tooltipAddOpen","setTooltipAddOpen","tooltipEditOpen","setTooltipEditOpen","tooltipEditOpen2","setTooltipEditOpen2","tooltipEditSegmentOpen","setTooltipEditSegmentOpen","dropDownLocations","checkpointName","ListGroupItem","onMouseEnter","onMouseLeave","Row","useGoogleLocations","onSelectChangeLocationType","useLabel","InputGroupText","inputs","initialTab","hasButtonSubmit","hasButtonCancel","SlidingPaneAddAlternateRoute","isOpenSlidingPane","closeSlidingPane","isGeneratingRoute","alternateRoutes","setAlternateRoutes","useForm","handleSubmit","watch","rerenderMap","setRerenderMap","showOriginalRoute","setShowOriginalRoute","showAlternateRoute","setShowAlternateRoute","selectedRoute","routeSelectors","alternateRoute","routesOnMap","pathColor","routeCheckpointsActions","overlayClassName","onRequestClose","Map","mapRoutesOptions","showRoutes","useSlidingPaneRouteInformation","mapObjectsBoundsOptions","ar","Button","SlidingPaneEditRoute","subtitle","closeSlidingPaneForm","distanceRoute","setCheckpoints","selectedTab","setSelectedTab","isOpenSlidingPaneAddAlternateRoute","setSlidingPaneAddAlternateRoute","errorsKeys","isSaving","TabsWrapper","initialActiveTab","activeTab","setActiveTab","tabIndex","useCardContent","tabs","tabId","tabsContent","component","WebtrackCustomInput","FormGroup","Label","setList","AddButton","DeleteButton","getLatLngs","getNullIfNaN","converted","useMapRouteEdit","routePaths","setEditingRouteParent","formState","isGeneratingRouteRef","React","useCenterRoute","isStartingEdit","setIsStartingEdit","setDistanceRoute","counterGenerateRouteRef","checkpointsRef","setPaths","pathsRef","drawingRouteCheckpoint","setDrawingRouteCheckpoint","drawingRouteCheckpointRef","setCreatedLocations","createdLocationsRef","isOpenSlidingPaneEditRoute","setOpenSlidingPaneEditRoute","widthSlidingPaneEditRoute","setWidthSlidingPaneEditRoute","isOpenSlidingPaneForm","setOpenSlidingPaneForm","slidingPaneEditRoutesProps","setSlidingPaneEditRouteProps","slidingPaneFormProps","setSlidingPaneFormProps","slidingPaneFormPropsRef","editingRoute","setEditingRoute","editingRouteRef","copyPolylineLatLngs","setCopyPolylineLatLngs","copyPolylineLatLngsRef","alternateRoutesRef","useGetAlternateRoutes","deleteObjectsOnMap","newLocations","checkpoint","uuidv4","DomEvent","stopPropagation","secondsSegmentStopTime","segmentStopAuthorized","segmentWithoutStopTime","segmentStopTime","secondsSegmentTripMinTime","segmentTripMinTime","secondsSegmentTripMaxTime","segmentTripMaxTime","lastCheckpointsRef","element","updateMarkersOnMap","updatePathsOnMap","centerRoute","geocodeByLatLng","routePlace","formatted_address","radiusFormat","convertMetersToAuthUserDistance2System","addCreatedLocationToCheckpoint","catch","removeLayer","rectangle","chkpt","checkpointsWithLatLng","router","OSRMv1","serviceUrl","simplify","point","segmentDistance","updateDistances","getBoundsZoom","completionTimeByUser","abbreviation","defaultContacts","globalNotificationEmails","globalNotificationFrec","initialFetch","notificationEvents","distances","lastPointLatLngs","routeActions","convertAuthUserSpeedSystemToKilometersPerHour","completionTime","pointDistance","isInteger","stopType","stopMinTime","stopMaxTime","segmentSpeedLimit","inputCheckpoint","setIcon","setBounds","convertAuthUserDistance2SystemToMeters","setLatLngs","latLngs","disable","setStyle","setEditPathInputs","segmentSpeedLimitFormat","segmentDistanceFormat","customTranslation","tooltips","placeMarker","setLang","refreshTooltips","enableDraw","continueDrawing","markerEditable","markerStyle","newLocation","MapRouteEdit","SlidingPaneForm","isInMap","showRoute","createRoute","EditButton","routePermissions","sourceName","targetName","MapRoutes","useIsShownRoute","initialShowSlidingPanelRouteInformationOpen","initialShowSlidingPanelRouteCreateOpen","initialShowSlidingPanelRouteEditOpen","initialRouteInformationOpenId","editingRouteParent","showRouteInformationSlidingPane","setShowRouteInformationSlidingPane","openEditSlidingPane","setOpenEditSlidingPane","initialRouteId","setInitialRouteId","routesBounds","setRoutesBounds","setSelectedRoute","isFetchingCheckpoints","zoomMapToRoutes","intersects","initialRouteInformation","Polyline","SlidingPaneRouteInformation","RotatedMarker","rotationAngle","rotationOrigin","setRotationAngle","setRotationOrigin","SlidingPaneUnitHistoricalPositionsReport","columnInfo","background","padding","borderRadius","borderStyle","borderColor","margin","getArrowImage","isSlidingPaneOpen","showHistoricalPositions","setMapPositionToPositionsBounds","changeSetMapPositionToUnitsBounds","selectedUnit","setSelectedUnit","selectedUnitRef","extraColumns","defaultMetricName","defaultMetricUnit","formatToTwoDecimals","ignitionValue","hasIgnitionInput","fetchInterval","changeSize","viewTable","changeViewTable","search","setSearch","changeRerender","historicalPositionsOnMapBounds","setHistoricalPositionsOnMapBounds","dropDownUnit","displayObjects","cleanup","clearInterval","zoomMapToPositions","selectedPositionId","consoleEvents","showUnitHistoryMarkers","groupPositionsIntoPraked","showUnitHistoryParkedMarkers","showUnitHeatMap","useInterval","setInterval","reportDataSource","dataSets","orderBy","headingArrows","ignition","isIgnitionOn","distanceAllPositions","showUnitHistoryOnlyNormalPositionsMarkers","lineWidth","showUnitHistoryConsoleEventMarkers","UnitsDropdown","ReportViewerButton","channelName","useEmbbededChannel","reportPath","acknowledge","scriptId","getStatusStyles","isProcessed","Badge","SlidingPaneUnitHistoricalScriptsReport","defaultValues","useGetUnitScriptHistory","scriptHistory","isFetchingScriptHistory","startRefresh","useRerender","userOrganizationId","scriptHistoryRpt","sh","scriptDate","sentDate","deviceActionDescription","SlidingPaneShareUnitLocation","isLinkCreated","setIsLinkCreated","durations","ContactsDropdown","UncontrolledTooltip","clipboard","writeText","receivers","durationId","saveUnitImage","deleteUnitImage","SlidingPaneUnitImages","addImageInitial","isLoadingUnitImages","setIsLoadingUnitImages","activeSlideImage","setActiveSlideImage","addImage","setAddImage","imageUrl","setUploadImage","saveUnitImageAsync","defaultImageValues","unitImageSave","imageTypeId","isDefault","deleteUnitImageAsync","unitImageDelete","MediaGallery","isRtl","autoplay","onSlideChange","slideId","navigation","pagination","useThumbs","classNameThumbs","heightThumbs","Form","ImageUploader","cropShape","showGrid","aspect","onSuccessChangeFunction","onFailureChangeFunction","otherValues","onChangeImage","functionAfterUpload","filesPath","submitting","UnitFuel","history","useHistory","measureId","measureTypeId","metricDescription","pathname","measurementUnitId","numberValue","UnitTemperature","showHistTemperature","setShowHistTemperature","showTable","setShowTable","isOpenDateRangeForm","setIsOpenDateRangeForm","isOpenSensorForm","setIsOpenSensorForm","setSensorId","setMeasureId","controlSensor","watchSensor","useGetUnitTemperatureHistory","formValuesSensor","formValuesDateRange","Dropdown","isDefaultPrevented","DropdownToggle","uniqueIdentifier","DropdownMenu","measurementUnitName","ControlChart","metricValue","upperLimit","lowerLimit","titleTooltip","bulletRadius","maxValue","minValue","ButtonTypes","SlidingPaneManualHourmeterAdjustment","handleAction","useWebtrackServiceOnAction","newHourMeter","newHourmeter","ManualHourmeterAdjustment","buttonType","useBoolean","setTrue","setFalse","SlidingPaneUnitInformation","fetchInformationInterval","showAddImageSlidingPane","setShowAddImageSlidingPane","showHistPositionsReportSlidingPane","setShowHistPositionsReportSlidingPane","downtimeBinnacleSlideOpen","openDowntimeBinnacleSlide","showShareUnitLocationSlidingPane","setShowShareUnitLocationSlidingPane","showHistScriptsReportSlidingPane","setShowHistScriptsReportSlidingPane","showChangeStatusSlidingPane","setShowChangeStatusPane","showUnitImagesSlidingPane","setShowUnitImagesSlidingPane","previewDriverImagesSlideOpen","openPreviewDriverImagesSlide","isLightboxOpen","setIsLightboxOpen","slidingPaneProps","setSlidingPaneProps","intlLastEvent","userPermissions","permissionState","currentStatus","battery","useInActive","useInPeople","hidden","mainVoltage","sizeIcon","useInVehicles","isCharging","customChartTooltip","isSelectable","backupBattery","doorState","coverTamperState","padlockState","padlockAuthorizationType","satellites","linealChart","plmn","mcc","mnc","cellNumber","trailerId","appVersion","availableIndicators","unitTypeId","indicator","showAllButtonsRightToolbar","setShowAllButtonsRightToolbar","copyLatLong","disableOnInteraction","pauseOnMouseEnter","classNameImg","unitPermissions","isEmpty","driverPhoneNumber","driverTotalFiles","ManualOdometerAdjustment","privateCode2","requireUserConfirmation","requireParameters","param","inputType","deviceActionParameterId","isRequired","parameterName","parameterComments","doAction","discourageDownloads","reactModalStyle","overlay","imageTitle","imageCaption","driverBloodType","driverLicenseNumber","driverLicenseType","driverLicenseExpireDate","driverUseGlasses","driverBloodSugarProblems","mainSrc","onCloseRequest","SlidingPaneStartUnitDowntime","SlidingPaneDowntimeBinnacle","closeSlidingPaneDowntimeBinnacle","SlidingPanePreviewDriverImages","closeSlidingPanePreviewDriverImages","MapUnits","displayUnits","useLocation","showUnits","useIsShownUnit","selectedUnitIds","useSlidingPaneUnitInformation","initialShowSlidingPanelUnitInformationOpen","initialUnitInformationOpenId","selectedUnitState","fetchPositionInterval","showUnitInformationSlidingPane","setShowUnitInformationSlidingPane","initialUnitId","setInitialUnitId","setMapPositionToUnitsBounds","zoomMapToUnit","firstUnit","initialUnitInformation","unitsBounds","setUnitsBounds","l","RulerControl","pmOptions","tooltipTextDraganddelete","tooltipTextResume","tooltipTextAdd","tooltipTextFinish","tooltipTextDelete","tooltipTextMove","measureControlClasses","measureControlLabel","ReactDOMServer","renderToStaticMarkup","clearControlLabel","measureControlTitleOn","measureControlTitleOff","showClearControl","clearControlTitle","showUnitControl","unitControlTitle","metres","landmiles","nauticalmiles","polylineMeasure","ToolbarGeofencesControl","setShowGeofences","newGeofences","setNewGeofencesLayers","newGeofencesLayersRef","isOpenSlidingPaneFormRef","slidingPanePropsRef","editingGeofence","setEditingGeofence","editingGeofenceRef","isSatMonitor","REACT_APP_SAT_MONITOR","_shape","initialRadius","editing","bindPopup","customValidation","geofenceAddress","geofenceAddres","setRadius","radioButtons","parentGeofences","subGeofenceWktString","isActivationGeofence","getExtraGeofenceSaveValues","vertexCount","longitude2","latitude2","vertexCsv","geofenceWKT","remove","prevlayers","ImmediateSubAction","Toolbar2","Action","myAction","prototype","addHooks","viewGeofences","toolbarIcon","disableLayerDrag","closePopup","createNewCircleGeofence","createNewRectangleGeofence","createNewPolygonGeofence","cancelGeofence","disableDraw","geofencesOptions","subToolbar","geofencePermissions","GeofencesToolbar","geofencesToolbar","onClickCancelButton","setShowGeofence","ToolbarHomeControl","selectedLayer","layer_id","homeFunction","centerLatLng","getCenter","wrap","setHomeAction","useToolbar","ToolbarLocationsControl","setShowLocations","newMarkers","setNewMarkers","newMarkersRef","editingLocation","setEditingLocation","editingLocationRef","_icon","setLatLng","createNewLocationAction","locationAddress","prevMarkers","viewLocations","cancelLocation","locationsOptions","locationPermissions","LocationsToolbar","locationsToolbar","SlidingPaneEditLocation","enableDispatch","dispatchNotificationFreq","dispatchEmails","dispatchCompletionType","locationTypeId","setShowLocation","ToolbarRoutesControl","setShowRoutes","createNewRouteAction","cancelRoute","routesOptions","RoutesToolbar","routesToolbar","ToolbarUnitsControl","setShowUnits","createNewUnitAction","cancelUnit","unitsOptions","UnitsToolbar","unitsToolbar","MapsBasic","mapBaseLayersOptions","homeToolbarOptions","locationsToolbarOptions","geofencesToolbarOptions","routesToolbarOptions","unitsToolbarOptions","mapLocationsOptionsToolbar","mapLocationEditOptions","mapGeofencesOptionsToolbar","mapGeofencesOptions","mapGeofenceEditOptions","mapRoutesOptionsToolbar","mapUnitsOptionsToolbar","mapUnitsOptions","zoom","setMap","setMapControlChanges","listenMapControlChangesLayers","setMapControlChangesLayers","initialMapCenter","initialZoom","mapPosition","setMapPosition","mapLocationEditOptionsToolbar","setMapLocationEditOptionsToolbar","mapGeofenceEditOptionsToolbar","setMapGeofenceEditOptionsToolbar","invalidateSize","MapContainer","preferCanvas","whenCreated","leafletMap","useSlidingpanelUnitInformation","mapRouteEditOptions","roleId","userNameState","isUpdatingMonitoringUserPassword","getMonitoringUser","getMonitoringUsersList","userStatus","getMonitoringUsersSpecificList","getSelectedMonitoringUser","selectedMonitoringUsers","isFetchingListMonitoringUsers","isEditingMonitoringUser","formIdState","removed","oldSectionIndex","sectionsById","useDropDownRows","sectionToCopy","newRows","newQuestions","isPrivate","newQuestionA","newAnswers","oldQuestionIndex","oldQuestion","sectionTypeId","sectionRows","questionTypeId","questionName","selectedAnswer","getForm","getFormSections","getFormSectionsList","section","getFormSection","getFormQuestions","getFormQuestionsList","getFormQuestion","getFormsList","organizationFormStatus","getFormsSpecificList","getFormsListByMembership","getSelectedForm","selectedForms","getSections","getSectionOrder","allowOtherOption","getSection","getSelectedResponseDetails","selectedResponses","isFetchingForm","isFetchingListForms","getDriverInformationService","getDriverImagesService","getSensorsForPeople","startFetchingSpareParts","completeFetchingSpareParts","failFetchingSpareParts","startAddingSparePart","completeAddingSparePart","failAddingSparePart","startEditingSparePart","completeEditingSparePart","failEditingSparePart","oldSparePart","startRemovingSparePart","completeRemovingSparePart","failRemovingSparePart","listFleet","deviceAction1","deviceAction2","deviceAction3","deviceAction4","deviceAction5","deviceAction6","deviceAction8","deviceAction9","deviceAction11","deviceAction12","deviceAction13","deviceAction20","deviceAction21","deviceAction22","deviceAction23","deviceAction30","deviceAction31","deviceAction32","deviceAction33","deviceAction34","deviceAction35","deviceAction36","deviceAction50","deviceAction51","deviceAction52","deviceAction53","deviceAction54","deviceAction55","deviceAction56","deviceAction57","deviceAction60","deviceAction61","deviceAction70","deviceAction71","deviceAction80","deviceAction81","deviceAction90","deviceAction91","deviceAction92","deviceAction93","deviceAction100","deviceAction1000","deviceAction1001","deviceAction1002","deviceAction1003","deviceAction1004","deviceAction1005","deviceAction1006","deviceAction1007","deviceAction1008","deviceAction1009","deviceAction1010","deviceAction1011","deviceAction1200","completeFetchingAssignments","entitiesByDate","entitiesBySchedule","startEditingAssignment","completeEditingAssignment","failEditingAssignment","startRemovingAssignment","completeRemovingAssignment","completeImportingRouteAssignments","failImportingRouteAssignments","SENSOR_MEASURES_FETCH_STARTED","SENSOR_MEASURES_FETCH_COMPLETED","SENSOR_MEASURES_FETCH_FAILED","SENSOR_MEASURES_CLEAR","startFetchingWorkmanships","completeFetchingWorkmanships","failFetchingWorkmanships","startAddingWorkmanship","completeAddingWorkmanship","failAddingWorkmanship","startEditingWorkmanship","completeEditingWorkmanship","failEditingWorkmanship","oldWorkmanship","startRemovingWorkmanship","completeRemovingWorkmanship","failRemovingWorkmanship","getAlternateRoutesService","startFetchingComments","completeFetchingComments","failFetchingComments","startAddingComment","completeAddingComment","failAddingComment","startEditingComment","completeEditingComment","failEditingComment","startRemovingComment","completeRemovingComment","failRemovingComment","startFetchingProviders","completeFetchingProviders","failFetchingProviders","startAddingProvider","completeAddingProvider","failAddingProvider","startEditingProvider","completeEditingProvider","failEditingProvider","oldProvider","startRemovingProvider","completeRemovingProvider","failRemovingProvider","tooltipLabel","idTable","useTable","heightTable","columnsTable","onSelectTable","onDeselectTable","change","innerControl","innerHandleSubmit","isInnerForm","setIsInnerForm","saving","save","WrapperInput","wrapperInputProps","logo","REACT_APP_FLAVOR","default","LocationsDropdownInput","byLocationClassId","createFromGoogleLocations","notAssigned","initialLocationType","showOrganization","setGooglePlaceId","setIsOpenSlidingPane","locationType","setLocationType","locationByPlaceId","resetValue","setResetValue","locationsPermissions","categoryIdState","getCategoriesList","getCategory","getCategoriesListByMembership","isFetchingListCategories","haveCategoriesBeenFetched","getConsolidableEvents","getDowntimeReasons","getContactsService","operatorPermissions","operatorList","organizationPermissions","organizationCatalog","divisionPermissions","listDivision","subdivisionPermissions","subdivisionCatalog","serviceClassPermissions","listServiceClass","agentPermissions","agentList","operatorPaths","listOperator","screenId","screens","agentPaths","listAgent","organizationPaths","listOrganization","divisionPaths","subdivisionPaths","listSubdivision","serviceClassPaths","modulePermissions","listModule","modulePaths","simPermissions","listSim","simPaths","sensorPermissions","listSensor","sensorPaths","assetPermissions","assetCatalog","assetPaths","listAsset","vehiclePermissions","listVehicle","vehiclePaths","listShift","listTrigger","listGroup","listDrivers","listPerson","listPeople","listUsers","listCustomers","listCustomer","listContact","listOffices","listOffice","listEmailNotification","listConsoleNotifications","listWebServiceNotification","listEmailNotifications","listConsoleNotification","listWebServiceNotifications","listForms","answersFormReport","answersReportForms","header","affiliations","catalogs","inventories","notifications","workplanList","workplanMonitor","workplanReport","scheduledWorkplan","workplanAssignUnit","routeList","routeMonitor","routeReport","routeAssignUnit","viewOptimizations","listOptimization","vehicleFuel","vehicleMaintenance","optimizations","telemetryUnits","telemetryTemperature","telemetryFuelMonitor","telemetryFuelReport","telemetryFuelReportByVehicles","telemetryOBD2","telemetry","dashboard","geofencesAssignedList","consolidatedUnitMainStateReport","reportList","trackingUnitsList","listTrackingUnits","trackingUnits","pointsOfInterest","contractTemplatesPermissions","listTemplate","contractTemplatesPaths","organizationContractPermissions","listContract","organizationContractPaths","quotationPermissions","listQuotation","quotationPaths","listQuotations","contracts","listJobsBacklog","backlog","jobsImport","import","jobsBoard","board","jobsReport","jobsWorkingActivity","workingActivityReport","safedriver","safeDriver","businessPartnersPaths","editPartner","webServiceRates","businessPartners","listProtocol","createProtocol","deleteProtocol","protocolsList","general","apps","operations","administrations","sidebarOptionsCRM","generalCRM","sidebarOptionsMonitoring","generalMonitoringCenter","sidebarOptionsAdmin","generalAdmin","getOptions","optionNav","link","childrenOptions","LOCATION_CLASSES_FETCH_STARTED","LOCATION_CLASSES_FETCH_COMPLETED","LOCATION_CLASSES_FETCH_FAILED","TIME_ZONES_FETCH_STARTED","TIME_ZONES_FETCH_COMPLETED","TIME_ZONES_FETCH_FAILED","CURRENCIES_FETCH_STARTED","CURRENCIES_FETCH_COMPLETED","CURRENCIES_FETCH_FAILED","SENSOR_BRANDS_FETCH_STARTED","SENSOR_BRANDS_FETCH_COMPLETED","SENSOR_BRANDS_FETCH_FAILED","SENSOR_MODELS_FETCH_STARTED","SENSOR_MODELS_FETCH_COMPLETED","SENSOR_MODELS_FETCH_FAILED","PAYMENT_METHODS_FETCH_STARTED","PAYMENT_METHODS_FETCH_COMPLETED","PAYMENT_METHODS_FETCH_FAILED","SwiperCore","Navigation","Pagination","EffectFade","EffectCube","EffectCoverflow","Autoplay","Lazy","Virtual","Thumbs","defaultGalleryParams","effect","spaceBetween","initialSlide","centeredSlides","reverseDirection","loop","clickable","lightboxIndex","setLightboxIndex","thumbsSwiper","paramsThumbsDefault","slidesPerView","freeMode","watchSlidesVisibility","watchSlidesProgress","onSwiper","galleryOptions","thumbs","swiper","dir","activeIndex","imageDescription","nextSrc","prevSrc","onMovePrevRequest","onMoveNextRequest","imagesPath","activeSlideId","getAvailableUsersForGroup","getAvailableLocationsForGroup","getAvailableWorkplansForGroup","getAvailableUnitsForGroup","getAvailableGeofencesForGroup","getAvailableDriversForGroup","verifyUserExistsAndNotInGroup","workplansAssignments","bySchedule","byDateTime","byScheduleOrder","assignmentIdState","byDateTimeOrder","isFetchingAssignments","errorFetchingAssignments","getWorkplansAssignment","getWorkplansAssignmentsByScheduleListByMembership","getWorkplansAssignmentsByScheduleList","getWorkplansAssignmentsByDateTimeListByMembership","getWorkplansAssignmentsByDateTimeList","isFetchingWorkplansAssignments","getFuelCalibrationPubSubUrl","sendPubSubFuelCalibrationCommand","extraContacts","contactTypeId","setContactsIn","contactsIn","setNewContact","closeSlidingPaneAddEditContact","prependcomponentFun","appendcomponentFun","defaultJobTitle","changeSelectedContacts","addEditContactSlideOpen","openAddEditContactSlide","newContact","changeNewContact","selectAndEditContact","selectedContactOnCreate","ContactSelectors","formatContactsForDropdown","userContactsEmails","useGetOperatorContacts","areFetchingOperatorContacts","isFetchingOperatorContacts","operatorPublicContacts","useGetContacts","organizationPublicContacts","areFetchingOrganizationContacts","contactsToShow","userContacts","OrganizationContacts","usedEmails","filteredContacts","addNotIncludedContacts","filterContactByAcces","contactsToAdd","defaultContact","contactToAdd","selectedContact","setSelectedContact","string","selectedValues","operatorContact","organizationContact","userContact","isSelectedOnCreate","isEditingFromMulti","assetIds","assetIdState","validIdentifier","validSecuritySealCode","getAsset","getAssetsList","assetStatus","getAssetListByMembership","getSelectedAsset","selectedAssets","isValidIdentifier","isValidSecuritySealCode","isPartialFetchingListAssets","isFetchingListAssets","startFetchingRouteCheckpoints","completeFetchingRouteCheckpoints","failFetchingRouteCheckpoints","CustomersDropdown","appendAddCustomer","enableSelectLocation","customerSelectors","isOpenShiftPane","setOpenShiftPane","selectedCustomer","setSelectedCustomer","id_dropdwon","closeSlidingPaneAddEditCustomer","simIdState","getSim","getSimsList","simCardStatus","getSelectedSim","selectedSims","isPartialFetchingListSims","isFetchingListSims","sensorIds","calibrationState","sensorIdState","getSensorsList","sensorStatus","getSensorsListByMembership","getSelectedSensor","selectedSensors","addEmailNotification","removeEmailNotification","addConsoleNotification","removeConsoleNotification","addWebServiceNotification","removeWebServiceNotification","removeJobBacklog","searchJobBacklog","listAsignedJobsBacklog","asignJobBacklogToUnit","listOwnLocations","addLocations","editLocations","assignLocations","listLocationImages","addLocationImages","removeLocationImages","completeFetchingJobsBoard","failFetchingJobsBoard","completeChangeStatusJobsBoard","failChangeStatusJobsBoard","completeFetchingBookmarks","startFetchingBookmarks","failFetchingBookmarks","updateBookmarkedStarted","updateBookmarkedCompleted","updateBookmarkedFailed","handleSearchQuery","val","isVisible","isDataReady","buttonClicked","setButtonClicked","channel","BroadcastChannel","isReportViewerOpen","setIsReportViewerOpen","isActive","isReportOpen","postReportData","infoHeader","tableHeaderColor","audit","partnerLogo","ds","datasets","postMessage","reportDetail","dependencies","setRerender","startRerender","useCallback","meta","touched","initial","opt","app","appName","appLogoImage","appLogo","skin","routerTransition","footer","customizer","REACT_APP_CUSTOMIZER","scrollTop","isFetchingExecution","isManualTransitExecution","isChangingExecutionUnit","errorFetchingExecution","errorChangingExecutionUnit","getWorkplansExecution","workplansExecutionsLocations","workplansExecutionsLocationsSelectors","workplansExecutionsGeofences","workGeofenceArea","executionStatusLabel","executionStatusLabelInfo","progress","visited","progressLabel","pending","sequenceCompliance","sequenceCountValid","sequenceCountInvalid","sequenceCountPending","allById","allOrder","isFetchingVisits","isFetchingAllVisits","errorFetchingVisits","errorFetchingAllVisits","workplansReport","locationsById","workplansComments","workplanIdState","isFetchingLocationsList","isAssigningGeofence","errorFetchingLocationsList","errorAssigningGeofence","workplansPersistConfig","getWorkplan","estimatedTotalDistance","hasAutogeneratedGeofence","getWorkplansList","workplanStatus","getWorkplansListByMembership","getSelectedWorkplan","selectedWorkplans","isPartialFetchingListWorkplans","isFetchingListWorkplans","isFetchingLocationsListWorkplans","workplansSelectorsExecutions","serviceClassIdState","getServiceClass","getServiceClasssList","getSelectedServiceClass","selectedServiceClasses","isFetchingListServiceClasses","denyRequisitionReason","deniedCustomerReason","timesup","quotationIdState","isScheduling","isCheckingSchedule","isSettingTimesup","isApprovingDenyingManagement","getQuotation","getQuotationsSpecificList","getQuotationsList","getSelectedQuotation","selectedQuotations","isPartialFetchingListQuotations","isFetchingListQuotations","isAddingQuotation","isCopyingQuotation","isSchedulingQuotation","isSettingTimesupQuotation","isCheckingScheduleQuotation","vehicleIds","vehicleIdState","getVehicle","getVehiclesList","vehicleStatus","getVehiclesListByMembership","isLicenseValid","getSelectedVehicle","selectedVehicles","isPartialFetchingListVehicles","isFetchingListVehicles","routeEdit","moduleIdState","dirty","getModule","getModulesList","device","deviceStatus","getModulesListByMembership","getSelectedModule","selectedModules","isPartialFetchingListModules","isFetchingListModules","getCpGeofence","getUnitGeofences","getUnitGeofenceInfo","getAssignments","getUnassignedEntities","deleteSchedule","contractIdState","getOrganizationContract","getOrganizationContractsList","getSelectedOrganizationContract","selectedOrganizationContracts","isPartialFetchingListOrganizationContracts","isFetchingListOrganizationContracts","templateIdState","getContractTemplate","getContractTemplatesList","getSelectedContractTemplate","selectedContractTemplates","isPartialFetchingListContractTemplates","isFetchingListContractTemplates","OfficesDropdown","appendAddOffice","isMainOffice","selectedOffice","setSelectedOffice","SlidingPaneEditOffice","closeSlidingPaneEditOffice","mapHomeCenter","customerId1","initialLatitude","initialLongitude","initialLocationClassIconName","setLatitude","setLongitude","updateEditingLocation","locationClassesSelectors","closeSlidingPaneFunction","LocationClassesDropdownInput","customerId2","workplanEdit","startFetchingLocationClasses","completeFetchingLocationClasses","failFetchingLocationClasses","startFetchingJob","completeFetchingJob","failFetchingJob","ColorPicker","displayColorPicker","setDisplayColorPicker","reactCSS","swatch","backgroundClip","popover","cover","top","right","bottom","left","onChangeComplete","disableAlpha","presetColors","GeofenceShapeDropdownInput","gs","onchange","textType","TextEditorInput","DurationInput","useDays","useHours","useMinutes","useSeconds","JobTypeDropdownInput","JobPriorityDropdownInput","JobStatusDropdownInput","subGeofences","FormsDropdown","UsersDropdown","ScheduleDropdown","showScheduleInformation","NoticeTypeDropdownInput","CategoriesDropdownInput","maintenanceLineIds","maintenanceLineIdState","getMaintenanceLine","getMaintenanceLinesList","maintenanceLineStatus","getMaintenanceLinesListByMembership","MaintenanceLinesByOdometer","maintenanceNoticeTypeId","getSelectedMaintenanceLine","selectedMaintenanceLines","isPartialFetchingListMaintenanceLines","isFetchingListMaintenanceLines","RadioButtonsInput","radioButton","boolean","addScheduleDescription","relativeIntervalDay","1","2","3","4","5","6","7","frequencyDescription","frequencyInterval","8","sDays","frequencyRecurrenceFactor","16","32","frequencyRelativeInterval","frequencyType","daysList","msToTime","parsed","milliseconds","minutesToTime","timeAsMilliseconds","minutesToMilliseconds","availabilityUserNameService","getRoles","getPermissionGroups","getRolePermissionGroups","getScreens","deleteServiceClass","AlreadyLeftTheOrigin","SelectAssignmentTypeTab","useAssignmentContext","stepper","updateAssignmentType","outline","alreadyLeftTheOrigin","useSharedLink","next","routeAssignmentIdState","isImportingAssignments","getRoutesAssignment","getRoutesAssignmentsListByType","getRoutesAssignmentsList","isFetchingRoutesAssignments","protocolIdState","protocolsPersistedConfig","getProtocol","getProtocolsList","getProtocolsListByMembership","isPartialFetchingListProtocols","isFetchingListProtocols","isAddingProtocol","isEditingProtocol","getAssignedUnitsListService","routeCommentIdState","isFetchingComments","errorFetchingComments","getRoutesComment","getRoutesCommentsListByRouteAssignmentId","getRoutesCommentsList","isFetchingRoutesComments","completeFetchingJobsReport","entitiesByUser","orderByUser","failFetchingJobsReport","fillForm","listAllUserAnswersForm","routeCheckpointId","typesRoutes","getRouteCheckpointsList","getRouteCheckpoint","getRouteCheckpointsListByRoute","getFetchingListRouteCheckpointsErrors","TabsContent","Card","CardBody","TabContent","tabContent","TabPane","vertical","checkbox","align","Tabs","toggleTab","TabsCardContent","paddingLeft","setValue","SlidingPaneEditFileName","closeSlidingPaneEditFileName","isImg","editFileName","CardImg","fileId","onSubmit","breakpoints","700","FileGallery","FilePreview","onClickImage","deleteFile","editFileNameSlideOpen","openEditFileNameSlide","objectFit","marginBottom","paddingTop","paddingBottom","textOverflow","wordWrap","overflow","maxHeight","usePartialMembership","startFetchingCurrencies","completeFetchingCurrencies","failFetchingCurrencies","additionalActions","additionalOnError","setIsFetching","setResponse","setError","res","newRes","es","alertsEs","oldEs","vehicleFueli18n","workplansi18n","routesi18n","fileUploadi18n","mapi18n","operatorsi18n","organizationsi18n","divisionsi18n","subdivisionsi18n","agentsi18n","serviceClassesi18n","modulesi18n","vehiclesi18n","assetsi18n","usersi18n","simsi18n","locationi18n","driveri18n","sensorsi18n","unitsi18n","schedulesi18n","vehicleMaintenancei18n","maintenanceLinesi18n","paymentMethodsi18n","formsi18n","geofencesi18n","jobsi18n","safeDriveri18n","dashboardi18n","trackingUnitsi18n","reportsi18n","peoplei18n","notificationsi18n","telemetryi18n","operationsi18n","groupsi18n","consolei18n","contractsi18n","customersi18n","entitiesi18n","contractTemplatesi18n","quotationsi18n","officesi18n","optimizationsi18n","businessPartneri18n","protocolsi18n","newObj","replaceUnit","en","alertsEn","oldEn","notificationi18n","menuMessages","messagesEs","userMessagesEs","messagesEn","userMessagesEn","Context","createContext","IntlProviderWrapper","localStorageLang","messages","setMessages","loadCldr","numberingSystems","gregorian","numbers","timeZoneNames","weekData","L10n","load","messageEsGrid","messageEsDateTimePicker","Provider","switchLanguage","lang","defaultLocale","startFetchingTimeZones","completeFetchingTimeZones","failFetchingTimeZones","getBrandsList","getBrand","isFetchingListBrands","haveBrandsBeenFetched","assignmentByDate","idBySchedule","startFetchingBrands","completeFetchingBrands","failFetchingBrands","editTrackingUnits","providedCoordinates","GeometryCollection","geometries","vertex","startFetchingConfigurations","completeFetchingConfigurations","failFetchingConfigurations","startFetchingModels","completeFetchingModels","failFetchingModels","startFetchingVehicleMakers","completeFetchingVehicleMakers","failFetchingVehicleMakers","startFetchingVehicleModels","completeFetchingVehicleModels","failFetchingVehicleModels","listNotifications","jobCommentIdState","getWorkplansComment","getWorkplansCommentsListByFilters","getWorkplansCommentsList","isFetchingWorkplansComments","injectIntl","locationClassesActions","startFetchingRoutesReport","completeFetchingRoutesReport","failFetchingRoutesReport","startFetchingInsuranceCompanies","completeFetchingInsuranceCompanies","failFetchingInsuranceCompanies","startFetchingInsuranceAgents","completeFetchingInsuranceAgents","failFetchingInsuranceAgents","startFetchingSensorBrands","completeFetchingSensorBrands","failFetchingSensorBrands","startFetchingSensorModels","completeFetchingSensorModels","failFetchingSensorModels","startFetchingSensorMeasures","completeFetchingSensorMeasures","failFetchingSensorMeasures","clearSensorMeasures","jobsBacklog","jobIds","jobIdState","isRescheduling","jobsBacklogPersistedConfig","getJobBacklog","SlidingPaneManualOdometerAdjustment","distanceMeasure","parser","SimpleAlertMessage","newOdometer","createImage","Image","setAttribute","getRadianAngle","degreeValue","getCroppedImg","imageSrc","pixelCrop","rotation","fileType","canvas","getContext","maxSize","safeArea","sqrt","translate","rotate","drawImage","getImageData","putImageData","y","toDataURL","dataUrlToFile","dataUrl","blob","File","getRotatedImage","toBlob","URL","createObjectURL","readFile","reader","FileReader","readAsDataURL","ORIENTATION_TO_ANGLE","baseStyle","flex","borderWidth","activeStyle","acceptStyle","rejectStyle","showPreview","buttonConfirmTextId","buttonCancelTextId","dragndropTextId","uploadTextId","fileTypes","useDropzone","maxFiles","acceptedFiles","getRootProps","fileRejections","getInputProps","isDragActive","isDragAccept","isDragReject","onFileChange","imageDataUrl","getOrientation","orientation","setCroppedImage","setImageSrc","setFileType","setFileName","crop","setCrop","setRotation","setZoom","croppedAreaPixels","setCroppedAreaPixels","croppedImage","isLoadingImage","setIsLoadingImage","onCropComplete","croppedArea","uploadImage","Headers","append","FormData","jsonResponse","responseAfterUpload","onCropChange","onRotationChange","onZoomChange","Slider","aria-labelledby","trackingUnitsCreate","trackingUnitsEdit","trackingUnitsDelete","viewUnitMap","readDowntimeReasons","addDowntimeReasons","editDowntimeReasons","removeDowntimeReasons","changeToInactive","changeToPlaced","changeToActivated","changeToRemoved","changeToCanceled","cellularProvider","getFuelTanksAndSealTypes","getVehiclesListDropdownService","getBrandsAndModelsService","saveBrandService","saveModelService","deleteBrandService","deleteModelService","getUnitsAssetsService","getAvailableSensorsService","getFuelTanksService","getAssetsTemperatureAreas","getAssetTypes","pills","tab","IconTag","IconFeather","active","checkboxComponent","saveWorkplanAssignmentByScheduleService","saveWorkplanAssignmentByDateTimeService","geofencesAssign","operatorAdd","operatorEdit","operatorDelete","organizationAdd","organizationEdit","organizationDelete","agentAdd","agentEdit","agentDelete","deleteDivision","subdivisionAdd","subdivisionEdit","subdivisionDelete","editForms","reportForms","reportAnswerForms","addOptimizations","editOptimizations","deleteOptimizations","getRouteExecutionsReportService","getRouteExecutionService","TableTimePicker","getValue","strictMode","enabled","floatLabelType","toDate","getModulesDropdown","startFetchingPaymentMethods","completeFetchingPaymentMethods","failFetchingPaymentMethods","getSimsListDropdownService","AppCollapse","accordion","titleKey","contentKey","blockContent","borderCard","openCollapse","setOpenCollapse","handleCollapseToggle","collapsed","currencyId","getCurrency","getCurrenciesList","isFetchingListCurrencies","haveCurrenciesBeenFetched","SpinnerComponent","AssignmentContext","AssignmentProvider","changeStepper","setAssignmentType","setCommonValues","assignedUnits","setAssignedUnits","setAssignmentsByDate","setAssignmentsBySchedule","partialUpdatedAssignmentsByDate","setPartialUpdatedAssignmentsByDate","partialUpdatedAssignmentsBySchedule","setPartialUpdatedAssignmentsBySchedule","unitRouteAssignments","setUnitRouteAssignments","resetForms","startResetForms","schedulesSelectors","validateAssignments","assignments","validationFilters","isValidationNeeded","validationErrors","validatorErrors","resetAssignments","setStepper","prevState","updateCommonValues","revalidateUnitRouteAssignments","validatedItems","updateAssignedUnits","uniqueUnitIdValues","Set","oldStatus","removeAllAssignments","removeAllCompletedAssignments","completedAssignments","prev","el","updateUnitRouteAssignments","providedAssignments","newAssignments","newDataIdx","newAssignment","newItems","removeUnitRouteAssignment","syncAssignmentsByDate","partialUpdates","hasOwnProperty","completionType","completionTimeByUserInSec","automaticMonitoringWhenArrivingAtOrigin","startTimeWindowInSec","customField1","customField2","customField3","customField4","customField5","customField6","Yes","isSpecialCargo","completionTimeInMinutes","syncAssignmentsBySchedule","partialUpdateSelectedAssignmentsByDate","partialChanges","partialUpdateAssignmentsByDate","partialUpdateSelectedAssignmentsBySchedule","partialUpdateAssignmentsBySchedule","webpackContext","req","webpackContextResolve","__webpack_require__","exports","DriversDropdownInput","driverSelectors","driverPhotoUrl","addUsersToGroup","removeUsersFromGroup","addLocationsToGroup","removeLocationsFromGroup","addWorkplansToGroup","removeWorkplansFromGroup","addUnitsToGroup","removeUnitsFromGroup","addGeofencesToGroup","removeGeofencesFromGroup","addDriversToGroup","removeDriversFromGroup","appConfiguration","appendAddSchedule","showFrequency","showExecution","filterValidNextRun","selector","hasPermission","selectedSchedule","unfilteredSchedules","closeShiftPane","closeSchedulePane","isOpenTriggerPane","am4core","am4themes_animated","dataColor","axisRanges","fillOpacity","showFullChart","customColorTooltip","domRefId","tensionX","chart","chartIsReady","setChartIsReady","useLayoutEffect","dispose","am4charts","preloader","dateAxis","xAxes","dateFormats","setKey","tooltipDateFormat","baseInterval","timeUnit","valueAxis1","yAxes","grid","stroke","strokeWidth","strokeOpacity","strokeDasharray","inside","fill","verticalCenter","rangeAR","series1","dataFields","valueY","dateX","bullet","bullets","series2","bullet2","series3","bullet3","circle","propertyFields","yAxis","getFillFromObject","events","tooltipDataItem","dataContext","legend","scrollbarX","bottomAxesContainer","responseSparePart","newSparePart","confirmedSparePart","sparePartIdState","getSparePart","getSparePartsList","getSparePartsListByMembership","haveSparePartsBeenFetched","reportMileage","reportHourMeters","reportHourOpportunityCharge","reportRunningTime","reportByUnitStopSummary","reportByUnitScriptsHistory","reportConsolidatedStopSummary","reportConsolidatedUnitActivity","reportConsolidatedEventActivity","reportParkedGeofence","reportScheduledReports","reportSystemCommunicationsDiag","reportSystemNotifications","reportSystemApiConsumption","reportConsolidatedSummary","valueSec","onBlurInput","useGetDriverImages","update","driverImages","setData","isFetchingDriverImages","timeZoneId","getTimeZone","getTimeZonesList","isFetchingListTimeZones","haveTimezonesBeenFetched","monitoringUserSelectors","componentKey","customDecorators","wildcardGroups","wildcards","wildcardGroup","EditorState","createWithContent","ContentState","createFromBlockArray","htmlToDraft","contentBlocks","entityMap","editorState","setEditorState","removeWildcardKey","wildcardProps","invoke","editorStateAux","contentState","startIndex","endIndex","end","htmlValue","draftToHtml","convertToRaw","getCurrentContent","newContent","decorators","strategy","contentBlock","matchArr","wildcardsRegex","RegExp","wildcard","getText","caret","targetRange","getSelection","newContentState","Modifier","insertText","moveSelectionToEnd","insertWildcardKey","wrapperStyle","toolbarStyle","editorStyle","localization","onEditorStateChange","newEditorState","preserveSelectionOnBlur","useGetDowntimeBinnacle","execute","downtimeBinnacle","isFetchingDowntimeBinnacle","binnacle","initialDateRange","setIsReportOpen","currentDate","startDateRange","endDateRange","editContract","listContractVersions","consolidateContract","organizationFormTypeId","selectFirst","formSelectors","isSelectedFirst","setIsSelectedFirst","workmanshipIdState","getWorkmanship","getWorkmanshipsListByMembership","haveWorkmanshipsBeenFetched","addUser","editUser","removeUser","changePasswordUser","loadRolesPermissions","editUserPermissions","loadUserPermissions","role1000","role1001","role1002","role1003","role1005","role1009","role1012","role1015","role1016","role1020","role1023","customerAccessLevel","divisionAccessLevel","organizationAccessLevel","systemAccessLevel","agentAccessLevel","operatorAccessLevel","gpsAccessLevel","SlidingPaneAddEditContact","contactSelectors","initialValues","initialValuesRedux","reduxContacts","contactStatus","unfilteredContacts","pattern","phoneNumber","birthDate","identification","nacionality","homeAddress","isShared","contactIdAux","createContact","contactIn","getOperatorContactsService","getOperatorStandardPricesService","priorities","executeGetDriverImages","setExecuteGetDriverImages","fileTitle","variant","vehicleMakerId","getVehicleMakersList","getVehicleMaker","vehicleModelId","getVehicleModelsList","getVehicleModel","getVehicleModelsListByMaker","makerId","getModelsList","getModel","saveLocationImage","locationImageId","getLocationImages","deleteLocationImage","SlidepanelLocationImages","locationImages","setLocationImages","isLoadingLocationImages","setIsLoadingLocationImages","getLocationImagesAsync","imagePath","saveLocationImageAsync","locationImageSave","deleteLocationImageAsync","locationImageDelete","SlidepanelLocationInformation","onEditLocation","showLocationImagesSlidepanel","setShowLocationImagesSlidepanel","showAddImageSlidepanel","setShowAddImageSlidepanel","isOpenSlidingPaneEditLocation","setOpenSlidingPaneEditLocation","editingLocationLocal","setEditingLocationLocal","locationsRouteParam","updatedLocation","deleteModule","deleteSensor","measurementHistory","locationSensor","assetAdd","assetEdit","assetDelete","editDrivers","editPeople","editUsers","assignUnitsToUser","rolesPermissionsUsers","addCustomers","editCustomers","removeCustomers","editOptimization","editQuotations","followUpQuotations","webPageQuotations","sendingDiscountQuotations","addContract","deleteContract","addTemplate","deleteTemplate","listQuote","editQuote","addQuote","deleteQuote","jobTypes","jobType","GeofencesDropdownInput","subGeofence","AbilityContext","createContextualCan","Consumer","massAssignment","addPerson","editPerson","removePerson","sensorConfiguration","addOffices","editOffices","removeOffices","denyByManagement","denyByCustomer","approveByManagement","acceptByCustomer","previewQuotation","followUpQuotation","setContacts","SlidepanelGeofenceInformation","onEditGeofence","editingGeofenceLocal","setEditingGeofenceLocal","editingGeofenceLocalRef","onGeofenceDragend","updatedGeofence","geofencesRouteParam","bringToBack","SlidingPaneAddEditCustomer","locationPrivateCode","getValues","toLocaleTimeString","customerActions","businessName","taxId","customerAddress","customerEmails","contactName1","phone1","contactName2","phone2","contactName3","phone3","averageTime","createCustomer","GoogleLocationsDropdownInput","setGoogleLocation","getLatLngFromGoogle","geocodeByAddress","onChangeFinalGoogleLocation","place_id","REACT_APP_GOOGLE_ICON","selectProps","loadingMessage","autocompletionRequest","componentRestrictions","createOffice","noticeTypeOptions","noticeTypeId2","noticeTypeName","DropdownNotices","noticeType","DropDownCategories","Categorieselectors","categoryActions","connect","frequency","oneTimeDate","plus","oneTimeTime","local","recurrenceRange","sunday","utility","monday","tuesday","wednesday","thursday","friday","saturday","monthlyDay","frequencyDaily","frequencyWeekly","frequencyMonthly","frequencyDailyInterval","frequencyWeeklyInterval","isMonthlyRelative","relativeMonth","weekDaysList","frequencyDayType","stateProps","dispatchProps","ownProps","innerSelected","changeInnerSelected","shiftDays","setShiftDays","currentSchedule","scheduleShifts","daysToAdd","validDays","newDay","currentDay","newDayStartTime","newDayEndTime","currentDayStartTime","currentDayEndTime","errorDays","totalDays","shiftDay","startime","scheduleActions","saveShift","getScheduleTypes","getFrequency","getRelativeMonth","getWeekDaysList","getWeeklyFrequency","schedulePrivateCode","frequencyMonthlyInterval","noEndDate","selectedScheduleType","selectedFrequency","toISODate","toISOTime","valuesToDispatch","add","saveTrigger","getImportedLocationStatusColorClass","getExecution","additionalValidation","setDowntime","useGetDowntimeReasons","downtimeReasons","isFetchingDowntimeReasons","mainStates","subMainStateId","temperatureHistory","paymentMethodId","getPaymentMethod","getPaymentMethodsList","isFetchingListPaymentMethods","havePaymentMethodsBeenFetched","countryId","countryIds","getCountriesList","getCountry","isFetchingListCountries","getProvidersList","getProvider","getProvidersListByCountry","getInsuranceCompaniesList","getInsuranceCompaniesListByCountry","company","getInsuranceAgentsList","getInsuranceAgentsListByCountry","sensorBrandId","getSensorBrand","getSensorBrandsList","getSensorModel","getSensorModelsBySensorBrand","getSensorModelsList","getSensorMeasuresList","getSensorMeasure","noticeIdState","getNoticesList","getNotice","getNoticesListByMembershipAndState","stateType","getNoticesListByMembership","providerIdState","getProvidersListByMembership","haveProvidersBeenFetched","REACT_APP_TOKEN_LIFE_TIME","firstOccurrence","lack","p","noticeProgressLabel","noticeMessageFormatted","noticeMessage","progress2","noticeTypeId2Format","noticeTypeId","getPreventiveNoticesByOdometerIndicators","permissons","onAllClick","onCurrentsClick","onExpiredClick","isChangingStatus","errorChangingStatus","jobsBoardPersistedConfig","byIdUsers","orderUsers","jobsReportPersistedConfig","getJob","isFetchingJob","CatalogIconsOptions","optionId","DropdownIcons","DropdownCategoriesIcons","Field","createReactClass","ReactDOM","jQuery","jquery","existingAbility","ability","Ability","subject","ThemeColors","ThemeContext","setColors","getHex","light","main","secondary","danger","warning","dark","mounted","setMounted","isRippling","setIsRippling","setCoords","rect","getBoundingClientRect","clientX","clientY","Boolean","hostname","registerLicense","LazyApp","lazy","debug","accessToken","environment","captureUncaught","captureUnhandledRejections","ErrorBoundary","ReactRouterRoute","Route","fallback","newestOnTop","serviceWorker","ready","registration","unregister"],"mappings":"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MAAO,YACT,KAAK,GACH,MAAO,WACT,KAAK,GACH,MAAO,YACT,KAAK,GACH,MAAO,YACT,KAAK,GACH,MAAO,YACT,KAAK,GACH,MAAO,UACT,KAAK,GACH,MAAO,SACT,KAAK,GACH,MAAO,aACT,KAAK,GACH,MAAO,SACT,KAAK,GACH,MAAO,YACT,KAAK,GACH,MAAO,aACT,KAAK,GACH,MAAO,YACT,KAAK,GACH,MAAO,cACT,KAAK,GACH,MAAO,cACT,KAAK,GACH,MAAO,qBACT,KAAK,GACH,MAAO,aACT,KAAK,GACH,MAAO,gBACT,KAAK,GACH,MAAO,OACT,KAAK,IACH,MAAO,UAEX,MAAO,WAGI45B,EAAoB,SAACv9H,GAChC,OAAQA,GACN,KAAK,EACH,MAAO,kBACT,KAAK,EACH,MAAO,WACT,KAAK,EACH,MAAO,SACT,KAAK,EACH,MAAO,WACT,KAAK,EACH,MAAO,YACT,KAAK,EACH,MAAO,eACT,KAAK,EACH,MAAO,aACT,KAAK,EACH,MAAO,cACT,KAAK,EACH,MAAO,cACT,KAAK,GACH,MAAO,iBACT,KAAK,GACH,MAAO,0BACT,KAAK,GACH,MAAO,eACT,KAAK,GACH,MAAO,wBACT,KAAK,GACH,MAAO,kBACT,KAAK,GACH,MAAO,qBACT,KAAK,GACH,MAAO,qBACT,KAAK,GACH,MAAO,UACT,KAAK,GACH,MAAO,UACT,KAAK,GACH,MAAO,WACT,KAAK,GACH,MAAO,WACT,KAAK,GACH,MAAO,iCACT,KAAK,GACH,MAAO,wBACT,KAAK,GACH,MAAO,eACT,KAAK,GACH,MAAO,aACT,KAAK,GACH,MAAO,4BACT,KAAK,GACH,MAAO,qBACT,KAAK,GACH,MAAO,4BACT,KAAK,GACH,MAAO,mCACT,KAAK,GACH,MAAO,YACT,KAAK,GACH,MAAO,yBACT,KAAK,GACH,MAAO,gBACT,KAAK,GACH,MAAO,0BACT,KAAK,GACH,MAAO,yBACT,KAAK,GACH,MAAO,oBACT,KAAK,GACH,MAAO,sBACT,KAAK,GACH,MAAO,iBACT,KAAK,GACH,MAAO,kBACT,KAAK,GACH,MAAO,YACT,KAAK,GACH,MAAO,WACT,KAAK,GACH,MAAO,WACT,KAAK,GACH,MAAO,wBACT,KAAK,IACH,MAAO,iBACT,KAAK,IACH,MAAO,kBACT,KAAK,KACH,MAAO,qBACT,KAAK,KACH,MAAO,eACT,KAAK,KACH,MAAO,gCACT,KAAK,KACH,MAAO,8BACT,KAAK,KACH,MAAO,yBACT,KAAK,KACH,MAAO,UACT,KAAK,KACH,MAAO,uBACT,KAAK,KACH,MAAO,yBACT,KAAK,KACH,MAAO,wBACT,KAAK,KACH,MAAO,qBACT,KAAK,KACH,MAAO,oBACT,KAAK,KACH,MAAO,kBAEX,MAAO,mBAGIw9H,EAA8B,SAAC78H,GAC1C,OAAQA,GACN,KAAK,EACH,MAAO,CAAC,WAAY,IACtB,KAAK,EACH,MAAO,CAAC,SAAU,IACpB,KAAK,EACH,MAAO,CAAC,OAAQ,IAClB,KAAK,EACH,MAAO,CAAC,UAAW,IACrB,KAAK,EACH,MAAO,CAAC,WAAY,IACtB,QACE,MAAO,CAAC,UAAW,MAIZ88H,EAAsC,SAACC,GAClD,GAAIA,EAAuB,CACzB,IAAMC,EAAQ,IAAIh5H,KACZi5H,EAAQ,IAAIj5H,KAAK+4H,GACjBG,EAAYnxD,KAAKolD,IAAI6L,EAAM/4H,UAAYg5H,EAAMh5H,WAAa,KAChE,OAAIi5H,GAAa,EAAI,EAAU,gCACtBA,GAAa,GAAW,iCACrB,8BACP,MAAO,+BAGHC,EAAqB,WAAkB,IAAjB54B,EAAgB,uDAAN,EAE3C,OAAIA,EAAU,KAAa,UAElBA,EAAU,KAAa,eAEvBA,EAAU,MAAc,aAExBA,EAAU,MAAc,iBAExBA,EAAU,MAAc,YAExBA,EAAU,MAAc,gBAExBA,EAAU,MAAc,YAExBA,EAAU,MAAc,mBAA5B,GAGMD,EAAuB,WAAkB,IAAjBC,EAAgB,uDAAN,EAE7C,OAAIA,EAAU,KAAa,eAElBA,EAAU,KAAa,mBAEvBA,EAAU,MAAc,cAExBA,EAAU,MAAc,mBAExBA,EAAU,MAAc,eAExBA,EAAU,MAAc,mBAExBA,EAAU,MAAc,cAErB,kBAGD64B,EAA2B,SAACJ,EAAOC,EAAOxrJ,GACrD,MACE,IAAIuyB,KAAKg5H,GAAO/4H,UAAY,IAAID,KAAKi5H,GAAOh5H,UACxC,CAAC,IAAID,KAAKg5H,GAAO/4H,UAAW,IAAID,KAAKi5H,GAAOh5H,WAC5C,CAAC,IAAID,KAAKi5H,GAAOh5H,UAAW,IAAID,KAAKg5H,GAAO/4H,WAHlD,mBAAOukF,EAAP,KAAgBD,EAAhB,KAIA,OAAO80C,EAAwB90C,EAAWC,EAAS/2G,IAGxC4rJ,EAA0B,SAAC90C,EAAWC,EAAS/2G,GAC1D,IAAMy6F,EAAOH,KAAKC,MAAMD,KAAKolD,IAAI3oC,EAAUD,GAAnB,OAClB1c,EAAQE,KAAKC,MACjBD,KAAKolD,IAAI3oC,GAAWD,EAAY,MAAsBrc,IAAtD,MAEIJ,EAAUC,KAAKC,MACnBD,KAAKolD,IAAI3oC,GAAWD,EAAY,MAAkB,GAAKrc,EAAOL,KAA9D,KAEIF,EAAUI,KAAKC,MACnBD,KAAKolD,IAAI3oC,GAAWD,EAAY,KAAa,KAAUrc,EAAO,GAAKL,EAAQC,KAAa,KAE1F,OACGI,EAAO,EAAP,UAAcA,EAAd,YAAsBz6F,EAAK0E,cAAc,CAAEC,GAAI,gBAA/C,KAAqE,KACrEy1F,EAAQ,EAAR,UAAeA,EAAf,YAAwBp6F,EAAK0E,cAAc,CAAEC,GAAI,iBAAjD,KAAwE,KACxE01F,EAAU,EAAV,UAAiBA,EAAjB,YAA4Br6F,EAAK0E,cAAc,CAAEC,GAAI,mBAArD,KAA8E,KAC9Eu1F,EAAU,EAAV,UAAiBA,EAAjB,YAA4Bl6F,EAAK0E,cAAc,CAAEC,GAAI,mBAArD,KAA8E,KAItEknJ,EAA2B,SAACN,EAAOC,GAC9C,IAAMn+H,EAAU,IAAIkF,KAAKg5H,GAAO/4H,UAC1BpF,EAAY,IAAImF,KAAKi5H,GAAOh5H,UAC5B6nE,EAAUC,KAAKC,MAAMD,KAAKolD,IAAIryH,EAAUD,GAAnB,KAC3B,OAAIitE,GAAW,GAAKA,GAAW,EACtB,YACEA,EAAU,GAAKA,GAAW,GAC5B,YACEA,EAAU,IAAMA,GAAW,GAC7B,YACEA,EAAU,IAAMA,GAAW,IAE3BA,EAAU,IAAMA,GAAW,IAD7B,YAGEA,EAAU,KAAUA,GAAW,IACjC,YACEA,EAAU,IACZ,iBADF,I,6BCliBT,49BAOa1gE,EAAU,QAoDVtO,EAAsB,SAAChkB,EAAsBswB,GACxD,IAAM9wB,EAAe,IAAIjE,IASzB,OARAg1B,IAAsB1wB,6BAA6BC,IAAON,GAC1DA,EAAa5D,iBAAiB,CAC5BwB,OAAQ,aACRjO,OAAQ,MACR2N,WAAY,iBAGd0C,EAAa3D,iBAAiBy0B,GACvB9wB,EAAa9C,KAAb,UAAqB41B,EAArB,QAAoCtyB,IAGhCykJ,EAA8B,SAACzkJ,EAAsBswB,GAChE,IAAM9wB,EAAe,IAAIjE,IASzB,OARAg1B,IAAsB1wB,6BAA6BC,IAAON,GAC1DA,EAAa5D,iBAAiB,CAC5BwB,OAAQ,aACRjO,OAAQ,MACR2N,WAAY,iBAGd0C,EAAa3D,iBAAiBy0B,GACvB9wB,EAAa9C,KAAb,UAAqB41B,EAArB,gBAA4CtyB,IAGxC0kJ,EAAqB,SAChC1kJ,EACAvC,EACA4B,EACAixB,GAEA,IAAM9wB,EAAe,IAAIjE,IAYzB,OAXAg1B,IAAsB1wB,6BAA6BC,IAAON,GAC1DA,EAAa5D,iBAAiB,CAC5BwB,OAAQ,aACRjO,OAAQ,SACRsO,gBACA4B,qBACAvC,WAAY,iBAGd0C,EAAa3D,iBAAiBy0B,GAEvB9wB,EAAa9C,KAAb,UAAqB41B,EAArB,uBAAmDtyB,IAG/C2kJ,EAAsB,SAAC3kJ,EAA2BswB,GAC7D,IAAM9wB,EAAe,IAAIjE,IASzB,OARAg1B,IAAsB1wB,6BAA6BC,IAAON,GAC1DA,EAAa5D,iBAAiB,CAC5BwB,OAAQ,aACRjO,OAAQ,MACR2N,WAAY,iBAGd0C,EAAa3D,iBAAiBy0B,GACvB9wB,EAAa9C,KAAb,UAAqB41B,EAArB,wBAAoDtyB,IAGhD4kJ,EAAkB,SAAC5kJ,EAAuBswB,GACrD,IAAM9wB,EAAe,IAAIjE,IASzB,OARAg1B,IAAsB1wB,6BAA6BC,IAAON,GAC1DA,EAAa5D,iBAAiB,CAC5BwB,OAAQ,aACRjO,OAAQ,MACR2N,WAAY,iBAGd0C,EAAa3D,iBAAiBy0B,GACvB9wB,EAAa9C,KAAb,UAAqB41B,EAArB,aAAyCtyB,IAGrCkkB,EAAgC,SAC3ClkB,EACAswB,GAEA,IAAM9wB,EAAe,IAAIjE,IASzB,OARAg1B,IAAsB1wB,6BAA6BC,IAAON,GAC1DA,EAAa5D,iBAAiB,CAC5BwB,OAAQ,aACRjO,OAAQ,MACR2N,WAAY,iBAGd0C,EAAa3D,iBAAiBy0B,GACvB9wB,EAAa9C,KAAb,UAAqB41B,EAArB,uBAAmDtyB,IAG/CokB,EAA4B,SACvCpkB,EACAswB,GAEA,IAAM9wB,EAAe,IAAIjE,IASzB,OARAg1B,IAAsB1wB,6BAA6BC,IAAON,GAC1DA,EAAa5D,iBAAiB,CAC5BwB,OAAQ,aACRjO,OAAQ,MACR2N,WAAY,mBAGd0C,EAAa3D,iBAAiBy0B,GACvB9wB,EAAa9C,KAAb,UAAqB41B,EAArB,uBAAmDtyB,IAG/C6kJ,EAAuC,SAAC7kJ,GACnD,IAAMR,EAAe,IAAIjE,IACzBg1B,IAAsB1wB,6BAA6BC,IAAON,GAC1D,IAAM7G,EAAOI,cAQb,OAPAyG,EAAa5D,iBAAiB,CAC5BwB,OAAQ,aACRjO,OAAQ,SACRkQ,mBAAoB1G,EAAK0E,cAAc,CACrCC,GAAI,wCAGDkC,EAAa9C,KAAb,UAAqB41B,EAArB,kCAA8DtyB,IAE1D8kJ,EAA8B,SACzC9kJ,EACAswB,GAEA,IAAM9wB,EAAe,IAAIjE,IACzBg1B,IAAsB1wB,6BAA6BC,IAAON,GAC1D,IAAM7G,EAAOI,cASb,OARAyG,EAAa5D,iBAAiB,CAC5BwB,OAAQ,aACRjO,OAAQ,SACRkQ,mBAAoB1G,EAAK0E,cAAc,CACrCC,GAAI,wCAGRkC,EAAa3D,iBAAiBy0B,GACvB9wB,EAAa9C,KAAb,UAAqB41B,EAArB,yBAAqDtyB,IAGjDkmB,EAA0C,SACrDlmB,EACAswB,GAEA,IAAM9wB,EAAe,IAAIjE,IACzBg1B,IAAsB1wB,6BAA6BC,IAAON,GAC1D,IAAM7G,EAAOI,cAUb,OATAyG,EAAa5D,iBAAiB,CAC5BwB,OAAQ,aACRjO,OAAQ,SACRkQ,mBAAoB1G,EAAK0E,cAAc,CACrCC,GAAI,gDAIRkC,EAAa3D,iBAAiBy0B,GACvB9wB,EAAa9C,KAAb,UAAqB41B,EAArB,2BAAuDtyB,IAGnDymB,EAA6B,SACxCzmB,EACAswB,GAEA,IAAM9wB,EAAe,IAAIjE,IACzBg1B,IAAsB1wB,6BAA6BC,IAAON,GAC1D,IAAM7G,EAAOI,cAcb,OAbAyG,EAAa5D,iBAAiB,CAC5BwB,OAAQ,aACRjO,OAAQ,SACRsO,cAAe9E,EAAK0E,cAAc,CAChCC,GAAI,qCAEN+B,mBAAoB1G,EAAK0E,cAAc,CACrCC,GAAI,4CAGJgzB,GACF9wB,EAAa3D,iBAAiBy0B,GAEzB9wB,EAAa9C,KAAb,UAAqB41B,EAArB,wBAAoDtyB,IAGhD8mB,EAA8B,SAAC9mB,EAAcswB,GACxD,IAAM9wB,EAAe,IAAIjE,IAIzB,OAHAg1B,IAAsB1wB,6BAA6BC,IAAON,GAE1DA,EAAa3D,iBAAiBy0B,GACvB9wB,EAAa9C,KAAb,UAAqB41B,EAArB,qBAAiDtyB,IAG7C+kJ,EAA2B,SACtC/kJ,EACAswB,GAEA,IAAM9wB,EAAe,IAAIjE,IASzB,OARAg1B,IAAsB1wB,6BAA6BC,IAAON,GAC1DA,EAAa5D,iBAAiB,CAC5BwB,OAAQ,kBACRjO,OAAQ,MACR2N,WAAY,eAGd0C,EAAa3D,iBAAiBy0B,GACvB9wB,EAAa9C,KAAb,UAAqB41B,EAArB,6BAAyDtyB,IAGrDglJ,EAAuB,SAAChlJ,EAA0BswB,GAC7D,IAAM9wB,EAAe,IAAIjE,IASzB,OARAg1B,IAAsB1wB,6BAA6BC,IAAON,GAC1DA,EAAa5D,iBAAiB,CAC5BwB,OAAQ,kBACRjO,OAAQ,MACR2N,WAAY,eAGd0C,EAAa3D,iBAAiBy0B,GACvB9wB,EAAa9C,KAAb,UAAqB41B,EAArB,yBAAqDtyB,IAGjDilJ,EAA4B,SAACjlJ,EAAcswB,GACtD,IAAM9wB,EAAe,IAAIjE,IAIzB,OAHAg1B,IAAsB1wB,6BAA6BC,IAAON,GAE1DA,EAAa3D,iBAAiBy0B,GACvB9wB,EAAa9C,KAAb,UAAqB41B,EAArB,+BAA2DtyB,IAGvDklJ,EAAqB,SAACllJ,EAAcswB,GAC/C,IAAM9wB,EAAe,IAAIjE,IAIzB,OAHAg1B,IAAsB1wB,6BAA6BC,IAAON,GAE1DA,EAAa3D,iBAAiBy0B,GACvB9wB,EAAa9C,KAAb,UAAqB41B,EAArB,2BAAuDtyB,IAGnDmlJ,EAAsB,SAACnlJ,EAAcswB,GAChD,IAAM9wB,EAAe,IAAIjE,IAIzB,OAHAg1B,IAAsB1wB,6BAA6BC,IAAON,GAE1DA,EAAa3D,iBAAiBy0B,GACvB9wB,EAAa9C,KAAb,UAAqB41B,EAArB,6BAAyDtyB,IAGrDolJ,EAAqB,SAACplJ,EAAcswB,GAC/C,IAAM9wB,EAAe,IAAIjE,IAIzB,OAHAg1B,IAAsB1wB,6BAA6BC,IAAON,GAE1DA,EAAa3D,iBAAiBy0B,GACvB9wB,EAAa9C,KAAb,UAAqB41B,EAArB,uBAAmDtyB,IAG/CqlJ,EAAyB,SAACrlJ,EAAcswB,GACnD,IAAM9wB,EAAe,IAAIjE,IAIzB,OAHAg1B,IAAsB1wB,6BAA6BC,IAAON,GAE1DA,EAAa3D,iBAAiBy0B,GACvB9wB,EAAa9C,KAAb,UAAqB41B,EAArB,2BAAuDtyB,IAGnDslJ,EAAoB,SAACtlJ,EAAcswB,GAC9C,IAAM9wB,EAAe,IAAIjE,IAIzB,OAHAg1B,IAAsB1wB,6BAA6BC,IAAON,GAE1DA,EAAa3D,iBAAiBy0B,GACvB9wB,EAAa9C,KAAb,UAAqB41B,EAArB,sBAAkDtyB,IAG9CulJ,EAA6B,SACxCvlJ,EACAswB,GAEA,IAAM9wB,EAAe,IAAIjE,IASzB,OARAg1B,IAAsB1wB,6BAA6BC,IAAON,GAC1DA,EAAa5D,iBAAiB,CAC5BwB,OAAQ,yBACRjO,OAAQ,MACR2N,WAAY,iBAGd0C,EAAa3D,iBAAiBy0B,GACvB9wB,EAAa9C,KAAb,UAAqB41B,EAArB,wBAAoDtyB,IAGhDwlJ,EAAuB,SAClCxlJ,EACAswB,GAEA,IAAM9wB,EAAe,IAAIjE,IASzB,OARAg1B,IAAsB1wB,6BAA6BC,IAAON,GAC1DA,EAAa5D,iBAAiB,CAC5BwB,OAAQ,sBACRjO,OAAQ,MACR2N,WAAY,iBAGd0C,EAAa3D,iBAAiBy0B,GACvB9wB,EAAa9C,KAAb,UAAqB41B,EAArB,yBAAqDtyB,IAGjDylJ,EAA0B,SACrCzlJ,EACAswB,GAEA,IAAM9wB,EAAe,IAAIjE,IASzB,OARAg1B,IAAsB1wB,6BAA6BC,IAAON,GAC1DA,EAAa5D,iBAAiB,CAC5BwB,OAAQ,sBACRjO,OAAQ,MACR2N,WAAY,iBAGd0C,EAAa3D,iBAAiBy0B,GACvB9wB,EAAa9C,KAAb,UAAqB41B,EAArB,4BAAwDtyB,IAGpD0lJ,EAAuB,SAClC1lJ,EACAswB,GAEA,IAAM9wB,EAAe,IAAIjE,IASzB,OARAg1B,IAAsB1wB,6BAA6BC,IAAON,GAC1DA,EAAa5D,iBAAiB,CAC5BwB,OAAQ,sBACRjO,OAAQ,MACR2N,WAAY,iBAGd0C,EAAa3D,iBAAiBy0B,GACvB9wB,EAAa9C,KAAb,UAAqB41B,EAArB,yBAAqDtyB,IAGjD2lJ,EAAiB,SAC5B3lJ,EACAswB,GAEA,IAAM9wB,EAAe,IAAIjE,IASzB,OARAg1B,IAAsB1wB,6BAA6BC,IAAON,GAC1DA,EAAa5D,iBAAiB,CAC5BwB,OAAQ,yBACRjO,OAAQ,MACR2N,WAAY,eAGd0C,EAAa3D,iBAAiBy0B,GACvB9wB,EAAa9C,KAAb,UAAqB41B,EAArB,mBAA+CtyB,IAG3C4lJ,EAAkB,SAC7B5lJ,EACAswB,GAEA,IAAM9wB,EAAe,IAAIjE,IASzB,OARAg1B,IAAsB1wB,6BAA6BC,IAAON,GAC1DA,EAAa5D,iBAAiB,CAC5BwB,OAAQ,yBACRjO,OAAQ,MACR2N,WAAY,eAGd0C,EAAa3D,iBAAiBy0B,GACvB9wB,EAAa9C,KAAb,UAAqB41B,EAArB,oBAAgDtyB,IAG5C6lJ,EAAsB,SACjC7lJ,EACAswB,GAEA,IAAM9wB,EAAe,IAAIjE,IASzB,OARAg1B,IAAsB1wB,6BAA6BC,IAAON,GAC1DA,EAAa5D,iBAAiB,CAC5BwB,OAAQ,6BACRjO,OAAQ,OACR2N,WAAY,eAGd0C,EAAa3D,iBAAiBy0B,GACvB9wB,EAAa9C,KAAb,UAAqB41B,EAArB,iBAA6CtyB,IAGzC0nB,EAAuB,SAClC1nB,EACAswB,GAEA,IAAM9wB,EAAe,IAAIjE,IASzB,OARAg1B,IAAsB1wB,6BAA6BC,IAAON,GAC1DA,EAAa5D,iBAAiB,CAC5BwB,OAAQ,6BACRjO,OAAQ,OACR2N,WAAY,eAGd0C,EAAa3D,iBAAiBy0B,GACvB9wB,EAAa9C,KAAb,UAAqB41B,EAArB,kBAA8CtyB,K,kCC/bvD,orBAEa8lJ,EAAsB,eAACryI,EAAD,uDAAW,GAAX,MAAmB,CACpDrkB,KAAMC,IACNI,QAASgkB,IAEEsyI,EAAyB,SAAC34I,EAAUshB,GAAX,MAAsB,CAC1Dt/B,KAAMC,IACNI,QAAS,CACP2d,WACAshB,WAGSs3H,EAAqB,eAAC/0J,EAAD,uDAAS,CAAE+U,aAAc,QAASsL,YAAa,KAA/C,MAA0D,CAC1FliB,KAAMC,IACNI,QAAS,CACPwB,WAISg1J,EAA6B,SAACv0I,GAAD,MAAmB,CAC3DtiB,KAAMC,IACNI,QAASiiB,IAEEw0I,EAAgC,SAAC94I,EAAUshB,GAAX,MAAsB,CACjEt/B,KAAMC,IACNI,QAAS,CACP2d,WACAshB,WAGSy3H,EAA4B,eAACl1J,EAAD,uDAAS,CAAE+U,aAAc,QAASsL,YAAa,KAA/C,MAA0D,CACjGliB,KAAMC,IACNI,QAAS,CACPwB,WAISm1J,EAAqB,SAACt0I,GAAD,MAAc,CAC9C1iB,KAAMC,IACNI,QAASqiB,IAGEu0I,EAAwB,SAAC72I,GAAD,MAAY,CAC/CpgB,KAAMC,IACNI,QAAS+f,IAGE82I,EAAoB,eAACr1J,EAAD,uDAAS,CAAE+U,aAAc,QAASsL,YAAa,KAA/C,MAA0D,CACzFliB,KAAMC,IACNI,QAAS,CACPwB,WAISs1J,EAAmB,SAAC/2I,GAAD,MAAY,CAC1CpgB,KAAMC,IACNI,QAAS+f,IAEEg3I,EAAsB,SAACrpH,EAAO3tB,GAAR,MAAmB,CACpDpgB,KAAMC,IACNI,QAAS,CAAE0tC,QAAO3tB,WAEPi3I,EAAkB,SAACtpH,EAAOlsC,GAAR,MAAmB,CAChD7B,KAAMC,IACNI,QAAS,CACP0tC,QACAlsC,WAISy1J,EAAoB,SAACl3I,GAAD,MAAY,CAC3CpgB,KAAMC,IACNI,QAAS+f,IAEEm3I,EAAuB,SAACn3I,GAAD,MAAY,CAC9CpgB,KAAMC,IACNI,QAAS+f,IAEEo3I,EAAmB,SAACz0I,EAAUlhB,GAAX,MAAsB,CACpD7B,KAAMC,IACNI,QAAS,CACP0iB,WACAlhB,WAIS41J,EAAqB,SAAC/0I,GAAD,MAAc,CAC9C1iB,KAAMC,IACNI,QAAS,CACPqiB,aAGSg1I,EAAwB,SAACh1I,GAAD,MAAc,CACjD1iB,KAAMC,IACNI,QAAS,CACPqiB,aAGSi1I,EAAoB,SAACj1I,EAAS7gB,GAAV,MAAqB,CACpD7B,KAAMC,IACNI,QAAS,CACPqiB,UACA7gB,WAIS+1J,EAAc,SAACl1I,GAAD,MAAc,CACvC1iB,KAAMC,IACNI,QAASqiB,IAUEm1I,EAAgB,SAACn1I,GAAD,MAAc,CACzC1iB,KAAMC,IACNI,QAASqiB,K,6BCzHX,kpBAEao1I,EAAyB,eAACzzI,EAAD,uDAAW,GAAX,MAAmB,CACvDrkB,KAAMC,IACNI,QAASgkB,IAEE0zI,EAA4B,SAAC/5I,EAAUshB,GAAX,MAAsB,CAC7Dt/B,KAAMC,IACNI,QAAS,CACP2d,WACAshB,WAGS04H,EAAwB,eAACn2J,EAAD,uDAAS,CAAE+U,aAAc,QAASsL,YAAa,KAA/C,MAA0D,CAC7FliB,KAAMC,IACNI,QAAS,CACPwB,WAISo2J,EAAgC,SAAC31I,GAAD,MAAmB,CAC9DtiB,KAAMC,IACNI,QAASiiB,IAEE41I,EAAmC,SAACl6I,EAAUshB,GAAX,MAAsB,CACpEt/B,KAAMC,IACNI,QAAS,CACP2d,WACAshB,WAGS64H,EAA+B,eAC1Ct2J,EAD0C,uDAClC,CAAE+U,aAAc,QAASsL,YAAa,KADJ,MAEtC,CACJliB,KAAMC,IACNI,QAAS,CACPwB,WAISu2J,EAAsB,SAAC3tI,GAAD,MAAe,CAChDzqB,KAAMC,IACNI,QAASoqB,IAEE4tI,EAAyB,SAACtqH,EAAOtjB,GAAR,MAAsB,CAC1DzqB,KAAMC,IACNI,QAAS,CAAE0tC,QAAOtjB,cAEP6tI,EAAqB,SAACvqH,EAAOlsC,GAAR,MAAmB,CACnD7B,KAAMC,IACNI,QAAS,CACP0tC,QACAlsC,WAIS02J,EAAuB,SAAC9tI,GAAD,MAAe,CACjDzqB,KAAMC,IACNI,QAASoqB,IAEE+tI,EAA0B,SAAC/tI,GAAD,MAAe,CACpDzqB,KAAMC,IACNI,QAASoqB,IAEEguI,EAAsB,SAAC1sI,EAAalqB,GAAd,MAAyB,CAC1D7B,KAAMC,IACNI,QAAS,CACP0rB,cACAlqB,WAIS62J,EAAqC,SAACxsI,GAAD,MAAqB,CACrElsB,KAAMC,IACNI,QAAS6rB,IAEEysI,EAAwC,SAACzsI,GAAD,MAAqB,CACxElsB,KAAMC,IACNI,QAAS6rB,IAUE0sI,EAAwB,SAACvzJ,GAAD,MAAiB,CACpDrF,KAAMC,IACNI,QAAS,CACPgF,gBAGSwzJ,EAA2B,SAACxzJ,GAAD,MAAiB,CACvDrF,KAAMC,IACNI,QAAS,CACPgF,gBAGSyzJ,EAAuB,SAACzzJ,EAAYxD,GAAb,MAAwB,CAC1D7B,KAAMC,IACNI,QAAS,CACPgF,aACAxD,WAISk3J,EAAiB,SAAC1zJ,GAAD,MAAiB,CAC7CrF,KAAMC,IACNI,QAASgF,IAUE2zJ,EAAmB,SAAC3zJ,GAAD,MAAiB,CAC/CrF,KAAMC,IACNI,QAASgF,K,6BC1HX,0PAMaitB,EAAQ,IAAIjS,IAAOC,OAAO,SAAU,GAAI,CAAEC,YAAa,YACvDrB,EAAS,IAAImB,IAAOG,MAAM8R,GAE1B/xB,EAAO,IAAI8f,IAAOC,OAAO,QAAS,GAAI,CAAEC,YAAa,aACrDuoB,EAAQ,IAAIzoB,IAAOG,MAAMjgB,GAEzBuxC,EAAW,IAAIzxB,IAAOC,OAAO,YAAa,GAAI,CAAEC,YAAa,eAC7DpC,EAAY,IAAIkC,IAAOG,MAAMsxB,GAE7BzI,EAAW,IAAIhpB,IAAOC,OAAO,YAAa,GAAI,CAAEC,YAAa,eAC7DrC,EAAY,IAAImC,IAAOG,MAAM6oB,GAE7BpX,EAAO,IAAI5R,IAAOC,OAAO,QAAS,GAAI,CAAEC,YAAa,WACrD/B,EAAQ,IAAI6B,IAAOG,MAAMyR,GAEzBjL,EAAW,IAAI3G,IAAOC,OAAO,YAAa,GAAI,CAAEC,YAAa,eAC7D5B,EAAY,IAAI0B,IAAOG,MAAMwG,GAE7Bu2B,EAAS,IAAIl9B,IAAOC,OAAO,UAAW,GAAI,CAAEC,YAAa,aACzDnC,EAAU,IAAIiC,IAAOG,MAAM+8B,I,8BCOzBl5C,IAhCK,CAClB40J,cAAe,QACfC,iBAAkB,QAClBC,kBAAmB,QACnBC,aAAc,QACdC,wBAAyB,QACzBC,2BAA4B,QAC5BC,8BAA+B,QAC/BC,gCAAiC,QACjCC,+BAAgC,QAChCC,gCAAiC,QACjCC,qBAAsB,QACtBC,iBAAkB,QAClBC,iBAAkB,QAClBC,uBAAwB,QACxBC,qBAAsB,QACtBC,uBAAwB,QACxBC,+BAAgC,QAChCC,0BAA2B,QAC3BC,2BAA4B,QAC5BC,sBAAuB,QACvBC,cAAe,QACfC,oBAAqB,QACrBC,YAAa,QACbC,WAAY,QACZC,qBAAsB,QACtBC,cAAe,QACfC,oBAAqB,QACrBC,oBAAqB,QACrBC,YAAa,U,+BC7Bf,g4BAEaC,EAA+B,eAACz2I,EAAD,uDAAW,GAAX,MAAmB,CAC7DrkB,KAAMC,IACNI,QAASgkB,IAEE02I,EAAkC,SAAC/8I,EAAUshB,EAAOj6B,EAAYb,GAA9B,MAAkD,CAC/FxE,KAAMC,IACNI,QAAS,CACP2d,WACAshB,QACAj6B,aACAb,oBAGSw2J,EAA8B,eACzCn5J,EADyC,uDACjC,CAAE+U,aAAc,QAASsL,YAAa,KADL,MAErC,CACJliB,KAAMC,IACNI,QAAS,CACPwB,WAISo5J,EAAsC,SACjD34I,GADiD,IAEjDjd,EAFiD,uDAEpC,KACbb,EAHiD,uDAGhC,KAHgC,MAI7C,CACJxE,KAAMC,IACNI,QAAS,CAAEiiB,eAAcjd,aAAYb,oBAE1B02J,EAAyC,SACpDl9I,EACAshB,EACAj6B,EACAb,GAJoD,MAKhD,CACJxE,KAAMC,IACNI,QAAS,CACP2d,WACAshB,QACAj6B,aACAb,oBAGS22J,EAAqC,eAChDt5J,EADgD,uDACxC,CAAE+U,aAAc,QAASsL,YAAa,KADE,MAE5C,CACJliB,KAAMC,IACNI,QAAS,CACPwB,WAISu5J,EAA4B,SAACh0H,GAAD,MAAqB,CAC5DpnC,KAAMC,IACNI,QAAS+mC,IAEEi0H,EAA+B,SAACttH,EAAO3G,GAAR,MAA4B,CACtEpnC,KAAMC,IACNI,QAAS,CAAE0tC,QAAO3G,oBAEPk0H,EAA2B,SAACvtH,EAAOlsC,GAAR,MAAmB,CACzD7B,KAAMC,IACNI,QAAS,CACP0tC,QACAlsC,WAIS05J,EAA6B,SAACn0H,GAAD,MAAqB,CAC7DpnC,KAAMC,IACNI,QAAS+mC,IAEEo0H,EAAgC,SAACztH,EAAO3G,GAAR,MAA4B,CACvEpnC,KAAMC,IACNI,QAAS,CAAE0tC,QAAO3G,oBAEPq0H,EAA4B,SAAC7yH,EAAmB/mC,GAApB,MAA+B,CACtE7B,KAAMC,IACNI,QAAS,CACPuoC,oBACA/mC,WAIS65J,EAA8B,SAAC5yH,EAAOC,GAAR,MAAuB,CAChE/oC,KAAMC,IACNI,QAAS,CACPyoC,QACAC,eAGS4yH,EAAiC,SAAC7yH,EAAOC,GAAR,MAAuB,CACnE/oC,KAAMC,IACNI,QAAS,CACPyoC,QACAC,eAGS6yH,EAA6B,SAAC9yH,EAAOjnC,GAAR,MAAmB,CAC3D7B,KAAMC,IACNI,QAAS,CACPyoC,QACAjnC,WAISg6J,EAAuB,SAACC,GAAD,MAAuB,CACzD97J,KAAMC,IACNI,QAASy7J,IAQEC,EAA6B,eACxCC,EADwC,uDACpB,GADoB,MACjB,CAEvBh8J,KAAMC,IACNI,QAAS27J,IAGEC,EAAsC,SAACh/H,GAAD,MAAa,CAC9Dj9B,KAAMC,IACNI,QAAS48B,IAGEi/H,EAAyC,SAACj/H,GAAD,MAAa,CACjEj9B,KAAMC,IACNI,QAAS48B,IAGEk/H,EAAqC,SAACt6J,GAAD,MAAY,CAC5D7B,KAAMC,IACNI,QAAS,CAAEwB,WAGAu6J,EAA+C,SAACn/H,GAAD,MAAa,CACvEj9B,KAAMC,IACNI,QAAS48B,IAGEo/H,EAAkD,SAACp/H,GAAD,MAAa,CAC1Ej9B,KAAMC,IACNI,QAAS48B,IAGEq/H,EAA8B,SAAClzH,GAAD,MAAyB,CAClEppC,KAAMC,IACNI,QAAS+oC,IAGEmzH,EAAiC,SAACnzH,GAAD,MAAyB,CACrEppC,KAAMC,IACNI,QAAS+oC,IAGEozH,EAAmC,SAACpzH,GAAD,MAAyB,CACvEppC,KAAMC,IACNI,QAAS+oC,IAGEqzH,EAAgC,SAACrzH,GAAD,MAAyB,CACpEppC,KAAMC,IACNI,QAAS+oC,K,irCC+CIszH,EAZMv8J,YAAgB,CACnCs5G,KAjMW,WAAyB,IAAxB35G,EAAuB,uDAAf,GAAIC,EAAW,uCACnC,OAAQA,EAAOC,MACb,KAAKkgB,IACH,MAAO,GAGT,KAAKjgB,IACH,MAA4BF,EAAOM,QAA3B2d,EAAR,EAAQA,SAAUshB,EAAlB,EAAkBA,MACZrf,EAAQ,eAAQngB,GAStB,OARAw/B,EAAMrR,SAAQ,SAAC0f,GACb1tB,EAAS0tB,GAAT,qCACExf,YAAY,GACTruB,EAAM6tC,IACN3vB,EAAS2vB,IAHd,IAIE13B,aAAa,OAGVgK,EAIT,QACE,OAAOngB,IA4KXw/B,MAvKY,WAAyB,IAAxBx/B,EAAuB,uDAAf,GAAIC,EAAW,uCACpC,OAAQA,EAAOC,MACb,KAAKkgB,IACH,MAAO,GAGT,KAAKjgB,IACH,IAAQq/B,EAAUv/B,EAAOM,QAAjBi/B,MACR,OAAOs6E,IAAMt6E,GAIf,QACE,OAAOx/B,IA2JX+lC,WAtJiB,WAAyB,IAAxB/lC,EAAuB,uDAAf,GAAIC,EAAW,uCACzC,OAAQA,EAAOC,MACb,KAAKkgB,IACH,MAAO,GAGT,KAAKjgB,IACH,IAAQ4lC,EAAe9lC,EAAOM,QAAtBwlC,WACF5lB,EAAQ,eAAQ4lB,GACtB,OAAO5lB,EAIT,QACE,OAAOngB,IAyIX68J,UApIgB,WAAyB,IAAxB78J,EAAuB,uDAAf,GAAIC,EAAW,uCACxC,OAAQA,EAAOC,MACb,KAAKkgB,IACH,MAAO,GAGT,KAAKjgB,IACH,MAAsCF,EAAOM,QAArCwmC,EAAR,EAAQA,cAAeC,EAAvB,EAAuBA,WACjB7mB,EAAQ,eAAQngB,GAStB,OARAgnC,EAAW7Y,SAAQ,SAAC8G,GAClB9U,EAAS8U,GAAT,qCACE5G,YAAY,GACTruB,EAAMi1B,IACN8R,EAAc9R,IAHnB,IAIE9e,aAAa,OAGVgK,EAIT,QACE,OAAOngB,IA+GXgnC,WA1GiB,WAAyB,IAAxBhnC,EAAuB,uDAAf,GAAIC,EAAW,uCACzC,OAAQA,EAAOC,MACb,KAAKkgB,IACH,MAAO,GAGT,KAAKjgB,IACH,IAAQ6mC,EAAe/mC,EAAOM,QAAtBymC,WACR,OAAO8yE,IAAM9yE,GAIf,QACE,OAAOhnC,IA8FX88J,WAzFiB,WAAyB,IAAxB98J,EAAuB,uDAAf,GAAIC,EAAW,uCACzC,OAAQA,EAAOC,MACb,KAAKkgB,IACH,MAAO,GAGT,KAAKjgB,IACH,MAAwCF,EAAOM,QAAvC2mC,EAAR,EAAQA,eAAgBC,EAAxB,EAAwBA,YAClBhnB,EAAQ,eAAQngB,GAStB,OARAmnC,EAAYhZ,SAAQ,SAACoP,GACnBpd,EAASod,GAAT,qCACElP,YAAY,GACTruB,EAAMu9B,IACN2J,EAAe3J,IAHpB,IAIEpnB,aAAa,OAGVgK,EAIT,QACE,OAAOngB,IAoEXmnC,YA/DkB,WAAyB,IAAxBnnC,EAAuB,uDAAf,GAAIC,EAAW,uCAC1C,OAAQA,EAAOC,MACb,KAAKkgB,IACH,MAAO,GAGT,KAAKjgB,IACH,IAAQgnC,EAAgBlnC,EAAOM,QAAvB4mC,YACR,OAAO2yE,IAAM3yE,GAIf,QACE,OAAOnnC,IAmDX+8J,iBA7CuB,WAA4B,IAA3B/8J,EAA0B,wDAAXC,EAAW,uCAClD,OAAQA,EAAOC,MACb,KAAKkgB,IACH,OAAO,EAET,KAAKjgB,IACH,OAAO,EAET,KAAKA,IACL,KAAKA,IACH,OAAO,EAET,QACE,OAAOH,IAiCXg9J,oBA5B0B,WAA2B,IAA1Bh9J,EAAyB,uDAAjB,KAAMC,EAAW,uCACpD,OAAQA,EAAOC,MACb,KAAKkgB,IACH,OAAO,KAET,KAAKjgB,IACH,IAAQ4B,EAAU9B,EAAOM,QAAjBwB,MACR,OAAOA,EAET,KAAK5B,IACL,KAAKA,IACH,OAAO,KAET,QACE,OAAOH,MAoBAyC,EAAc,SAACzC,GAAD,OAAWA,EAAMwe,OAAOo+I,cAGtC5e,EAAqB,SAACh+I,EAAO0iC,GAAuB,IAAD,QACxDj5B,EAAOI,cACPw6B,EAAiB5hC,EAAYzC,GAAO25G,KAAKj3E,GACzCipE,EAAUnqF,aAAyBxhB,GAGvC0H,GAIEikG,EALFgwB,8CAKEhwB,EAJFjkG,2CAEAS,GAEEwjG,EAHFpkG,sCAGEokG,EAFFxjG,uCACA09I,EACEl6C,EADFk6C,8CAEF,OAAO,2BACFxhH,GADL,IAEE44H,kBAAmBz7I,aACLxhB,GACX0H,0CAA0C28B,EAAe64H,cAAgB,GAC5EC,wBAAyB37I,aACXxhB,GACXuH,sCAAsC88B,EAAe+4H,oBAAsB,GAC9EC,oBAAqBh5H,EAAei5H,eAAiB,GAAGh7I,WAAa,IACrEi7I,cAAel5H,EAAexN,UAC1Bu+H,YACE/wH,EAAexN,UADO,oBAEtBwN,EAAem5H,sBAFO,QAEWn5H,EAAeo5H,kBAF1B,QAEwC,IAAIzhI,KAClEvyB,GAEF,MACJi0J,qBAAsBr5H,EAAes5H,YACjCvI,YACE/wH,EAAes5H,YADO,oBAEtBt5H,EAAem5H,sBAFO,QAEWn5H,EAAeo5H,kBAF1B,QAEwC,IAAIzhI,KAClEvyB,GAEF,MACJ88I,gBAAiBp+I,EAAsCk8B,EAAekiH,iBAAmB,GACzFp4B,oBAAqB03B,EACnBxhH,EAAe8pF,qBAAuB,GAExCq4B,mBAAoBX,EAClBxhH,EAAemiH,oBAAsB,GAEvCC,iBAAkB/+I,EAChB28B,EAAeoiH,kBAAoB,MAM5BmX,EAAgB,SAAC59J,EAAOi1B,GACnC,IAAM9C,EAAO1vB,EAAYzC,GAAO68J,UAAU5nI,GACpC02E,EAAUnqF,aAAyBxhB,GAEvC0H,EAIEikG,EAJFjkG,0CACAH,EAGEokG,EAHFpkG,sCACAY,EAEEwjG,EAFFxjG,sCACA09I,EACEl6C,EADFk6C,8CAEF,OAAO,2BACF1zH,GADL,IAEE8qI,kBAAmBv1J,EAA0CyqB,EAAK+qI,cAAgB,GAClFC,wBAAyB51J,EAAsC4qB,EAAKirI,oBAAsB,GAC1FC,oBAAqBlrI,EAAKmrI,eAAiB,GAAGh7I,WAAa,IAC3DikI,gBAAiBp+I,EAAsCgqB,EAAKo0H,iBAAmB,GAC/Ep4B,oBAAqB03B,EACnB1zH,EAAKg8F,qBAAuB,GAE9Bq4B,mBAAoBX,EAA8C1zH,EAAKq0H,oBAAsB,MAKpFqX,EAAiB,SAAC79J,EAAOu9B,GACpC,IAAMF,EAAQ56B,EAAYzC,GAAO88J,WAAWv/H,GAC5C,OAAO,2BACFF,GADL,IAEE4/H,kBAAmBz7I,aACLxhB,GACXuH,sCAAsC81B,EAAM6/H,cAAgB,GAC/DC,wBAAyB37I,aACXxhB,GACXuH,sCAAsC81B,EAAM+/H,oBAAsB,GACrEU,qBAAsBt8I,aACRxhB,GACXmI,sCAAsCk1B,EAAMkpH,iBAAmB,GAClE8W,oBAAqBhgI,EAAMigI,eAAiB,GAAGh7I,WAAa,O,4CCyQ1D9D,EAAcne,YAAgB,CAClCikC,qBACAy5H,sBACAtgI,qBACAm/H,eACAjjD,KA7iBW,WAAyB,IAAxB35G,EAAuB,uDAAf,GAAIC,EAAW,uCACnC,OAAQA,EAAOC,MACb,KAAKkgB,IACH,MAAO,GAGT,KAAKjgB,IACL,KAAKA,IACH,MAA4BF,EAAOM,QAA3B2d,EAAR,EAAQA,SAAUshB,EAAlB,EAAkBA,MACZrf,EAAQ,eAAQngB,GAUtB,OATAw/B,EAAMrR,SAAQ,SAACoP,GACbpd,EAASod,GAAT,qCACE6uF,cAAc,EACd/9F,YAAY,GACTruB,EAAMu9B,IACNrf,EAASqf,IAJd,IAKEpnB,aAAa,OAGVgK,EAGT,KAAKhgB,IACH,MAGIF,EAAOM,QAFT0tC,EADF,EACEA,MACoB5Q,EAFtB,EAEEklH,iBAAoBllH,MAEhBld,EAAW69F,IAAKh+G,EAAOiuC,GAO7B,OANA9tB,EAASkd,EAAME,SAAf,uCACKv9B,EAAMiuC,IACN5Q,GAFL,IAGE+uF,cAAc,EACdj2G,aAAa,IAERgK,EAGT,KAAKhgB,IACH,IAAQk9B,EAAUp9B,EAAOM,QAAjB88B,MACR,OAAO,2BACFr9B,GADL,kBAEGq9B,EAAME,QAFT,qCAGI6uF,cAAc,GACXpO,IAAKh+G,EAAMq9B,EAAME,SAAU,CAAC,cAC5BygF,IAAK3gF,EAAO,CAAC,cALpB,IAMIlnB,aAAa,MAMnB,KAAKhW,IACH,IAAQk9B,EAAUp9B,EAAOM,QAAjB88B,MACFld,EAAQ,eAAQngB,GAOtB,OANAmgB,EAASkd,EAAME,SAAf,yBACE6uF,cAAc,EACd/9F,YAAY,GACTgP,GAHL,IAIElnB,aAAa,IAERgK,EAET,KAAKhgB,IACH,IAAQk9B,EAAUp9B,EAAOM,QAAjB88B,MACR,OAAO,2BACFr9B,GADL,kBAEGq9B,EAAME,QAFT,yBAGI6uF,cAAc,GACXpsH,EAAMq9B,EAAME,UAJnB,IAKIkC,SAAUz/B,EAAMq9B,EAAME,SACtBpnB,aAAa,MAMnB,KAAKhW,IACH,IAAQ8tC,EAAUhuC,EAAOM,QAAjB0tC,MACR,OAAIjuC,EAAMiuC,GACD+vE,IAAKh+G,EAAOiuC,GAEdjuC,EAET,KAAKG,IACH,IAAQs/B,EAAax/B,EAAOM,QAApBk/B,SACR,OAAO,2BACFz/B,GADL,kBAEGy/B,EAASlC,QAFZ,qCAGI6uF,cAAc,GACXpO,IAAKh+G,EAAMy/B,EAASlC,SAAU,CAAC,cAC/BkC,GALP,IAMItpB,aAAa,MAMnB,KAAKhW,IACH,IAAQo9B,EAAYt9B,EAAOM,QAAnBg9B,QACR,OAAOygF,IAAKh+G,EAAOu9B,GAIrB,KAAKp9B,IACH,IAAMo9B,EAAUt9B,EAAOM,QACjB4f,EAAQ,2BACTngB,GADS,kBAEXu9B,EAFW,2BAGPv9B,EAAMu9B,IAHC,IAIV6uF,cAAc,MAGlB,OAAOjsG,EAGT,KAAKhgB,IACH,IAAMo9B,EAAUt9B,EAAOM,QACvB,OAAO,2BACFP,GADL,kBAEGu9B,EAFH,2BAGOv9B,EAAMu9B,IAHb,IAII6uF,cAAc,MAKpB,KAAKjsH,IACH,IAAM4/B,EAAW9/B,EAAOM,QAClB4f,EAAQ,eAAQngB,GAiBtB,OAhBuB,GAAnB+/B,EAAS/W,OACXmF,IAAQnuB,GAAO,SAACq9B,EAAYE,GAC1Bpd,EAASod,GAAT,2BACKF,GADL,IAEE+uF,cAAc,OAIlBrsF,EAAS5R,SAAQ,SAACoP,GAChBpd,EAASod,GAAT,2BACKv9B,EAAMu9B,IADX,IAEE6uF,cAAc,OAKbjsG,EAGT,KAAKhgB,IACH,IAAM4/B,EAAW9/B,EAAOM,QAClB4f,EAAQ,eAAQngB,GAiBtB,OAhBuB,GAAnB+/B,EAAS/W,OACXmF,IAAQnuB,GAAO,SAACq9B,EAAYE,GAC1Bpd,EAASod,GAAT,2BACKF,GADL,IAEE+uF,cAAc,OAIlBrsF,EAAS5R,SAAQ,SAACoP,GAChBpd,EAASod,GAAT,2BACKv9B,EAAMu9B,IADX,IAEE6uF,cAAc,OAKbjsG,EAIT,KAAKhgB,IACH,IAAMo9B,EAAUt9B,EAAOM,QACjB4f,EAAQ,2BACTngB,GADS,kBAEXu9B,EAFW,2BAGPv9B,EAAMu9B,IAHC,IAIVlP,YAAY,MAGhB,OAAOlO,EAGT,KAAKhgB,IACH,IAAMo9B,EAAUt9B,EAAOM,QACvB,OAAO,2BACFP,GADL,kBAEGu9B,EAFH,2BAGOv9B,EAAMu9B,IAHb,IAIIlP,YAAY,MAKlB,KAAKluB,IACH,IAAM4/B,EAAW9/B,EAAOM,QAClB4f,EAAQ,eAAQngB,GAiBtB,OAhBuB,GAAnB+/B,EAAS/W,OACXmF,IAAQnuB,GAAO,SAACq9B,EAAYE,GAC1Bpd,EAASod,GAAT,2BACKF,GADL,IAEEhP,YAAY,OAIhB0R,EAAS5R,SAAQ,SAACoP,GAChBpd,EAASod,GAAT,2BACKv9B,EAAMu9B,IADX,IAEElP,YAAY,OAKXlO,EAGT,KAAKhgB,IACH,IAAM4/B,EAAW9/B,EAAOM,QAClB4f,EAAQ,eAAQngB,GAiBtB,OAhBuB,GAAnB+/B,EAAS/W,OACXmF,IAAQnuB,GAAO,SAACq9B,EAAYE,GAC1Bpd,EAASod,GAAT,2BACKF,GADL,IAEEhP,YAAY,OAIhB0R,EAAS5R,SAAQ,SAACoP,GAChBpd,EAASod,GAAT,2BACKv9B,EAAMu9B,IADX,IAEElP,YAAY,OAKXlO,EAIT,KAAKhgB,IACH,MACEF,EAAOM,QADDg9B,EAAR,EAAQA,QAAS0C,EAAjB,EAAiBA,WAAYC,EAA7B,EAA6BA,aAAcx7B,EAA3C,EAA2CA,eAAgBE,EAA3D,EAA2DA,WAAYE,EAAvE,EAAuEA,cAEvE,OAAO,2BACF9E,GADL,kBAEGigC,EAFH,yBAGI5R,YAAY,GACTruB,EAAMu9B,IAJb,IAKIA,QAAS0C,EACTH,UAAWI,EACXx7B,iBACAE,aACAE,gBACAqR,aAAa,MAMnB,QACE,OAAOnW,IA2SXw/B,MAtSY,WAAyB,IAAxBx/B,EAAuB,uDAAf,GAAIC,EAAW,uCACpC,OAAQA,EAAOC,MACb,KAAKkgB,IACH,MAAO,GAGT,KAAKjgB,IACH,IAAQq/B,EAAUv/B,EAAOM,QAAjBi/B,MACR,OAAOs6E,IAAMt6E,GAGf,KAAKr/B,IACH,IAAQq/B,EAAUv/B,EAAOM,QAAjBi/B,MACR,OAAO+yB,IAAK,GAAD,mBAAKvyD,GAAL,YAAew/B,KAG5B,KAAKr/B,IACH,MAGIF,EAAOM,QAFT0tC,EADF,EACEA,MACoB5Q,EAFtB,EAEEklH,iBAAoBllH,MAEtB,OAAOr9B,EAAMgiB,KAAI,SAACub,GAAD,OAAcA,IAAY0Q,EAAQ5Q,EAAME,QAAUA,KAGrE,KAAKp9B,IACH,IAAQo9B,EAAYt9B,EAAOM,QAAnBg9B,QACR,OAAOv9B,EAAMs8B,QAAO,SAAC0hI,GAAD,OAAkBA,IAAiBzgI,KAGzD,KAAKp9B,IACH,IAAQ4/B,EAAa9/B,EAAOM,QAApBw/B,SACR,OAAO//B,EAAMs8B,QAAO,SAAC0hI,GAAD,OAAmBj+H,EAASv6B,SAASw4J,MAI3D,KAAK79J,IACH,IAAQk9B,EAAUp9B,EAAOM,QAAjB88B,MACR,MAAM,GAAN,mBAAWr9B,GAAX,CAAkBq9B,EAAME,UAI1B,KAAKp9B,IACH,IAAQ8tC,EAAUhuC,EAAOM,QAAjB0tC,MACR,OAAOjuC,EAAMs8B,QAAO,SAAC0hI,GAAD,OAAkBA,IAAiB/vH,KAIzD,KAAK9tC,IACH,IAAQ8/B,EAAehgC,EAAOM,QAAtB0/B,WACR,MAAM,GAAN,mBAAWjgC,GAAX,CAAkBigC,IAIpB,QACE,OAAOjgC,IAiPXm+G,sBAzN4B,WAA4B,IAA3Bn+G,EAA0B,wDAAXC,EAAW,uCACvD,OAAQA,EAAOC,MACb,KAAKkgB,IACH,OAAO,EAET,KAAKjgB,IACH,OAAO,EAET,KAAKA,IACL,KAAKA,IACH,OAAO,EAET,QACE,OAAOH,IA6MX47G,eA5OqB,WAA4B,IAA3B57G,EAA0B,wDAAXC,EAAW,uCAChD,OAAQA,EAAOC,MACb,KAAKkgB,IACH,OAAO,EAET,KAAKjgB,IACH,OAAO,EAET,KAAKA,IACL,KAAKA,IACH,OAAO,EAET,QACE,OAAOH,IAgOXo+G,SAzMe,WAA4B,IAA3Bp+G,EAA0B,wDAAXC,EAAW,uCAC1C,OAAQA,EAAOC,MACb,KAAKkgB,IACH,OAAO,EAET,KAAKjgB,IACH,OAAO,EAET,KAAKA,IACL,KAAKA,IACH,OAAO,EAET,QACE,OAAOH,IA6LXq+G,UAxLgB,WAA4B,IAA3Br+G,EAA0B,wDAAXC,EAAW,uCAC3C,OAAQA,EAAOC,MACb,KAAKkgB,IACH,OAAO,EAET,KAAKjgB,IACH,OAAO,EAET,KAAKA,IACL,KAAKA,IACH,OAAO,EAET,QACE,OAAOH,IA4KXs+G,WAvKiB,WAA4B,IAA3Bt+G,EAA0B,wDAAXC,EAAW,uCAC5C,OAAQA,EAAOC,MACb,KAAKkgB,IACH,OAAO,EAET,KAAKjgB,IACL,KAAKA,IACH,OAAO,EAET,KAAKA,IACL,KAAKA,IACL,KAAKA,IACL,KAAKA,IACH,OAAO,EAET,QACE,OAAOH,IAwJXi+J,UAnJgB,WAA4B,IAA3Bj+J,EAA0B,wDAAXC,EAAW,uCAC3C,OAAQA,EAAOC,MACb,KAAKkgB,IACH,OAAO,EAET,KAAKjgB,IACH,OAAO,EAET,KAAKA,IACL,KAAKA,IACH,OAAO,EAET,QACE,OAAOH,IAuIXu+G,yBA/G+B,WAA2B,IAA1Bv+G,EAAyB,uDAAjB,KAAMC,EAAW,uCACzD,OAAQA,EAAOC,MACb,KAAKkgB,IACH,OAAO,KAET,KAAKjgB,IACH,IAAQ4B,EAAU9B,EAAOM,QAAjBwB,MACR,OAAOA,EAET,KAAK5B,IACL,KAAKA,IACH,OAAO,KAET,QACE,OAAOH,IAkGX87G,kBAnIwB,WAA2B,IAA1B97G,EAAyB,uDAAjB,KAAMC,EAAW,uCAClD,OAAQA,EAAOC,MACb,KAAKkgB,IACH,OAAO,KAET,KAAKjgB,IACH,IAAQ4B,EAAU9B,EAAOM,QAAjBwB,MACR,OAAOA,EAET,KAAK5B,IACL,KAAKA,IACH,OAAO,KAET,QACE,OAAOH,IAsHXw+G,YA9FkB,WAA2B,IAA1Bx+G,EAAyB,uDAAjB,KAAMC,EAAW,uCAC5C,OAAQA,EAAOC,MACb,KAAKkgB,IACH,OAAO,KAET,KAAKjgB,IACH,IAAQ4B,EAAU9B,EAAOM,QAAjBwB,MACR,OAAOA,EAET,KAAK5B,IACL,KAAKA,IACH,OAAO,KAET,QACE,OAAOH,IAiFXy+G,aA5EmB,WAA2B,IAA1Bz+G,EAAyB,uDAAjB,KAAMC,EAAW,uCAC7C,OAAQA,EAAOC,MACb,KAAKkgB,IACH,OAAO,KAET,KAAKjgB,IACH,IAAQ4B,EAAU9B,EAAOM,QAAjBwB,MACR,OAAOA,EAET,KAAK5B,IACL,KAAKA,IACH,OAAO,KAET,QACE,OAAOH,IA+DX0+G,cA1DoB,WAA2B,IAA1B1+G,EAAyB,uDAAjB,KAAMC,EAAW,uCAC9C,OAAQA,EAAOC,MACb,KAAKkgB,IACH,OAAO,KAET,KAAKjgB,IACL,KAAKA,IACH,IAAQ4B,EAAU9B,EAAOM,QAAjBwB,MACR,OAAOA,EAET,KAAK5B,IACL,KAAKA,IACL,KAAKA,IACL,KAAKA,IACH,OAAO,KAET,QACE,OAAOH,IA0CXk+J,aArCmB,WAA4B,IAA3Bl+J,EAA0B,wDAAXC,EAAW,uCAC9C,OAAQA,EAAOC,MACb,KAAKkgB,IACH,OAAO,EAET,KAAKjgB,IACH,IAAQ4B,EAAU9B,EAAOM,QAAjBwB,MACR,OAAOA,EAET,KAAK5B,IACL,KAAKA,IACH,OAAO,EAET,QACE,OAAOH,MA0BPm+J,EAAsB,CAC1Bj8J,IAAK,SACLC,QAASC,IACTC,gBAAiBC,IACjBC,UAAW,CACT,mBACA,mBACA,eACA,wBACA,iBACA,WACA,YACA,aACA,YACA,2BACA,oBACA,cACA,eACA,gBACA,gBAEFgqH,UAAW,CAAC,OAAQ,UAMT9pH,GAHED,gBAAe27J,EAAqB3/I,GAGxB,SAACxe,GAAD,OAAWA,EAAMwe,SAG/B4/I,EAAW,SAACp+J,EAAOu9B,GAC9B,IAAMF,EAAQ56B,EAAYzC,GAAO25G,KAAKp8E,GACtC,GAAIF,EACF,OAAO,2BACFA,GADL,IAEEkC,YAAa8+H,IAAyDr+J,EAAOq9B,EAAME,SACnFi/F,eAAgBh7G,aACFxhB,GACXuH,sCAAsC81B,EAAMh3B,UAC5C+9F,QAAQ,GACXk6D,iBAAkB98I,aACJxhB,GACX27H,8CAA8Ct+F,EAAMw+F,eAKhD0iC,EAAgB,SAACv+J,GAAD,OAC3ByC,EAAYzC,GACTw/B,MAAMxd,KAAI,SAAC5T,GAAD,OAAQgwJ,EAASp+J,EAAOoO,MAClCkuB,QAAO,SAACe,GAAD,OAAWA,EAAMuoH,YAAc,MAC9B4Y,EAA4B,SAACx+J,EAAOsB,GAC/C,OAAOi9J,EAAcv+J,GAAOs8B,QAC1B,SAACe,GAAD,OACE/7B,KACEA,EAAWiE,YAAcjE,EAAWiE,aAAe83B,EAAM93B,eACzDjE,EAAWoD,gBAAkBpD,EAAWoD,iBAAmB24B,EAAM34B,mBACjEpD,EAAWsD,YAActD,EAAWsD,aAAey4B,EAAMz4B,eACzDtD,EAAWwD,eAAiBxD,EAAWwD,gBAAkBu4B,EAAMv4B,mBAoB1D25J,EAA8B,SAACz+J,GAAD,OAAWyC,EAAYzC,GAAOm+G,uBAC5DugD,EAAuB,SAAC1+J,GAAD,OAAWyC,EAAYzC,GAAO47G,gBACrD+iD,EAAgB,SAAC3+J,GAAD,OAAWyC,EAAYzC,GAAOo+G,UAC9CwgD,EAAiB,SAAC5+J,GAAD,OAAWyC,EAAYzC,GAAOq+G,WAiB/C2/B,EAAqB,SAACh+I,EAAOmtC,GAAR,OAChC0xH,IAA6C7+J,EAAOmtC,IACzC+wG,EAA0B,SAACl+I,GAAD,OACrC6+J,IAAkD7+J,IAGvC8+J,EAAgC,SAAC9+J,GAAD,OAC3C6+J,IAAwC7+J,IAC7B++J,EAAmC,SAAC/+J,GAAD,OAC9C6+J,IAA2C7+J,IAChCg/J,EAA4B,SAACh/J,GAAD,OACvC6+J,IAA8C7+J,IACnCi/J,EAAmC,SAACj/J,GAAD,OAC9C6+J,IAA2C7+J,IAGhCogJ,EAA6B,SAACpgJ,GAAD,OACxC6+J,IAAqD7+J,IAC1CsgJ,EAA6B,SAACtgJ,GAAD,OACxC6+J,IAAqD7+J,IAC1CugJ,EAA8B,SAACvgJ,GAAD,OACzC6+J,IAAsD7+J,IAC3CwgJ,EAA8B,SAACxgJ,GAAD,OACzC6+J,IAAsD7+J,IAC3CygJ,EAA4B,SAACzgJ,GAAD,OACvC6+J,IAAoD7+J,IACzC0gJ,GAA2B,SAAC1gJ,GAAD,OACtC6+J,IAAmD7+J,IACxC2gJ,GAA4B,SAAC3gJ,GAAD,OACvC6+J,IAAoD7+J,IACzC4gJ,GAAyC,SAAC5gJ,GAAD,OACpD6+J,IAAiE7+J,IACtD6gJ,GAA2B,SAAC7gJ,GAAD,OACtC6+J,IAAmD7+J,IACxC8gJ,GAAsC,SAAC9gJ,GAAD,OACjD6+J,IAA8D7+J,IA8BnDk/J,GAAgC,SAACl/J,GAAD,ODveN,SAACA,GAAD,OACrCyC,EAAYzC,GAAOw/B,MAAMxd,KAAI,SAAC5T,GAAD,OAAQ4vI,EAAmBh+I,EAAOoO,MCue/D+wJ,CAA8Cn/J,IAGnCo/J,GAA2B,SAACp/J,GAAD,ODpdN,SAACA,GAAD,OAChCyC,EAAYzC,GAAOgnC,WAAWhlB,KAAI,SAAC5T,GAAD,OAAQwvJ,EAAc59J,EAAOoO,MCmdd+wJ,CAAyCn/J,IAG/Eq/J,GAA4B,SAACr/J,GAAD,ODrcN,SAACA,GAAD,OACjCyC,EAAYzC,GAAOmnC,YAAYnlB,KAAI,SAAC5T,GAAD,OAAQyvJ,EAAe79J,EAAOoO,MCqcjE+wJ,CAA0Cn/J,IAC/Bs/J,GAA4B,SAACt/J,GAAD,ODrcZ,SAACA,GAC5B,IAAMyJ,EAAOI,cACPk8B,EAAatjC,EAAYzC,GAAO+lC,WACtC,MAAO,CACL,CACEzwB,MAAO7L,EAAK0E,cAAc,CACxBC,GAAI,iBAENkxI,aAAcv5G,EAAW2tF,OAAS,GAEpC,CACEp+G,MAAO7L,EAAK0E,cAAc,CACxBC,GAAI,qBAENkxI,aAAcv5G,EAAWi5G,WAAa,GAExC,CACE1pI,MAAO7L,EAAK0E,cAAc,CACxBC,GAAI,oBAENkxI,aAAcv5G,EAAWk5G,UAAY,GAEvC,CACE3pI,MAAO7L,EAAK0E,cAAc,CACxBC,GAAI,mBAENkxI,aAAcv5G,EAAW+4G,SAAW,IC2aUqgB,CAAoCn/J,IAG3Eu/J,GAAyB,SAACv/J,GAAD,ODxaA,SAACA,GAAD,OAAWyC,EAAYzC,GAAO+8J,iBCyalEoC,CAA6Cn/J,IAUlCw/J,GAAiC,SAACx/J,GAAD,OAC5Cq+J,IAAyDr+J,K,+BC1wB3D,kCAgBO,IAAM0Q,EAAoB,SAACxE,GAChC,GAAIA,EACF,IAAK,IAAD,EAGF,UAAA+8F,OAAO0qB,KAAKznH,UAAZ,SAAmB8V,KAAI,SAAC9f,GAEpBA,EAAIgP,cAAc1L,SAAS,SACb,OAAd0G,EAAKhK,IACkB,SAAvBgK,EAAKhK,GAAKuhG,OAAO,KAEjBv3F,EAAKhK,GAAOgK,EAAKhK,GAAKwjG,QAAQ,QAAS,oBAI3C,MAAOuE,IAEX,OAAO/9F,I,6BCjCT,qSAMauzJ,EAAwB,iBAAO,CAC1Cv/J,KAAMC,IACNI,QAAS,KAGEm/J,EAAkC,eAC7C56I,EAD6C,uDACnBgmD,mCADmB,MAEzC,CACJ5qE,KAAMC,IACNI,QAASukB,IAEE66I,EAA2B,SAACzhJ,EAAUshB,GAAX,MAAsB,CAC5Dt/B,KAAMC,IACNI,QAAS,CAAE2d,WAAUshB,WAGVogI,EAAuB,SAAC79J,GAAD,MAAY,CAC9C7B,KAAMC,IACNI,QAAS,CAAEwB,WAGA89J,EAAyB,iBAAO,CAC3C3/J,KAAMC,IACNI,QAAS,KAGEu/J,EAAwB,eAACh7I,EAAD,uDAA2B,GAA3B,MAAmC,CACtE5kB,KAAMC,IACNI,QAASukB,IAGEi7I,EAA2B,iBAAO,CAC7C7/J,KAAMC,MAGK6/J,EAAuB,SAACj+J,GAAD,MAAY,CAC9C7B,KAAMC,IACNI,QAAS,CAAEwB,Y,6BC3Cb,g4BAEak+J,EAAuB,eAAC17I,EAAD,uDAAW,GAAX,MAAmB,CACrDrkB,KAAMC,IACNI,QAASgkB,IAEE27I,EAA0B,SAAChiJ,EAAUshB,EAAOj6B,EAAYb,GAA9B,MAAkD,CACvFxE,KAAMC,IACNI,QAAS,CACP2d,WACAshB,QACAj6B,aACAb,oBAGSy7J,EAAsB,eAACp+J,EAAD,uDAAS,CAAE+U,aAAc,QAASsL,YAAa,KAA/C,MAA0D,CAC3FliB,KAAMC,IACNI,QAAS,CACPwB,WAISq+J,EAA8B,SACzC59I,GADyC,IAEzCjd,EAFyC,uDAE5B,KACbb,EAHyC,uDAGxB,KAHwB,MAIrC,CACJxE,KAAMC,IACNI,QAAS,CAAEiiB,eAAcjd,aAAYb,oBAE1B27J,EAAiC,SAACniJ,EAAUshB,EAAOj6B,EAAYb,GAA9B,MAAkD,CAC9FxE,KAAMC,IACNI,QAAS,CACP2d,WACAshB,QACAj6B,aACAb,oBAGS47J,EAA6B,eACxCv+J,EADwC,uDAChC,CAAE+U,aAAc,QAASsL,YAAa,KADN,MAEpC,CACJliB,KAAMC,IACNI,QAAS,CACPwB,WAISw+J,EAAoB,SAAC9iH,EAAQoB,GAAT,MAAqB,CACpD3+C,KAAMC,IACNI,QAASk9C,EACToB,OAAQA,IAEG2hH,EAAuB,SAACvyH,EAAOwP,GAAR,MAAoB,CACtDv9C,KAAMC,IACNI,QAAS,CAAE0tC,QAAOwP,YAEPgjH,EAAmB,SAACxyH,EAAOlsC,GAAR,MAAmB,CACjD7B,KAAMC,IACNI,QAAS,CACP0tC,QACAlsC,WAIS2+J,EAAqB,SAACjjH,EAAQoB,GAAT,MAAqB,CACrD3+C,KAAMC,IACNI,QAASk9C,EACToB,OAAQA,IAEG8hH,EAAwB,SAACljH,GAAD,MAAa,CAChDv9C,KAAMC,IACNI,QAASk9C,IAEEmjH,EAAoB,SAAC3hH,EAAWl9C,GAAZ,MAAuB,CACtD7B,KAAMC,IACNI,QAAS,CACP0+C,YACAl9C,WAIS8+J,EAAsB,SAAC9hH,EAAUF,GAAX,MAAuB,CACxD3+C,KAAMC,IACNI,QAAS,CACPw+C,YAEFF,OAAQA,IAEGiiH,EAAyB,SAAC/hH,GAAD,MAAe,CACnD7+C,KAAMC,IACNI,QAAS,CACPw+C,cAGSgiH,EAAqB,SAAChiH,EAAUh9C,GAAX,MAAsB,CACtD7B,KAAMC,IACNI,QAAS,CACPw+C,WACAh9C,WAISi/J,EAAe,SAACjiH,GAAD,MAAe,CACzC7+C,KAAMC,IACNI,QAASw+C,IAeEkiH,EAAqB,eAChCC,EADgC,uDACpB,GADoB,MACjB,CAEfhhK,KAAMC,IACNI,QAAS2gK,IAGEC,EAAgC,SAACphH,EAAgCz+C,GAAjC,MAAsD,CACjGpB,KAAMC,IACNI,QAAS,CAAEw/C,qBAAoBz+C,gBAEpB8/J,EAAmC,SAACl1J,GAAD,MAAW,CACzDhM,KAAMC,IACNI,QAAS2L,IAEEm1J,EAAgC,SAACn1J,GAAD,MAAW,CACtDhM,KAAMC,IACNI,QAAS2L,IAGEo1J,EAAkB,SAAC7hH,GAAD,MAA+B,CAC5Dv/C,KAAMC,IACNI,QAASk/C,IAEE8hH,EAAuB,SAAC7hH,GAAD,MAAmB,CACrDx/C,KAAMC,IACNI,QAASm/C,IAGE8hH,EAA0B,SAACziH,EAAUlsB,GAAX,MAAuB,CAC5D3yB,KAAMC,IACNI,QAAS,CAAEw+C,WAAUlsB,YAEV4uI,EAA6B,SAAC1iH,EAAUlsB,GAAX,MAAuB,CAC/D3yB,KAAMC,IACNI,QAAS,CAAEw+C,WAAUlsB,YAGV6uI,EAA4B,SAAC3iH,EAAUlsB,GAAX,MAAuB,CAC9D3yB,KAAMC,IACNI,QAAS,CAAEw+C,WAAUlsB,YAEV8uI,EAA+B,SAAC5iH,EAAUlsB,GAAX,MAAuB,CACjE3yB,KAAMC,IACNI,QAAS,CAAEw+C,WAAUlsB,a,6BCpKvB,orBAEa+uI,EAAuB,eAACr9I,EAAD,uDAAW,GAAX,MAAmB,CACrDrkB,KAAMC,IACNI,QAASgkB,IAEEs9I,EAA0B,SAAC3jJ,EAAUshB,EAAOj6B,EAAYb,GAA9B,MAAkD,CACvFxE,KAAMC,IACNI,QAAS,CACP2d,WACAshB,QACAj6B,aACAb,oBAGSo9J,EAAsB,eAAC//J,EAAD,uDAAS,CAAE+U,aAAc,QAASsL,YAAa,KAA/C,MAA0D,CAC3FliB,KAAMC,IACNI,QAAS,CACPwB,WAISggK,EAA8B,SACzCv/I,GADyC,IAEzCjd,EAFyC,uDAE5B,KACbb,EAHyC,uDAGxB,KACjBgB,EAJyC,6CAKrC,CACJxF,KAAMC,IACNI,QAAS,CAAEiiB,eAAcjd,aAAYb,iBAAgBgB,6BAE1Cs8J,EAAiC,SAAC9jJ,EAAUshB,EAAOj6B,EAAYb,GAA9B,MAAkD,CAC9FxE,KAAMC,IACNI,QAAS,CACP2d,WACAshB,QACAj6B,aACAb,oBAGSu9J,EAA6B,eACxClgK,EADwC,uDAChC,CAAE+U,aAAc,QAASsL,YAAa,KADN,MAEpC,CACJliB,KAAMC,IACNI,QAAS,CACPwB,WASSmgK,EAAyB,SAAC/3I,GAAD,MAAa,CACjDjqB,KAAMC,IACNI,QAAS4pB,IAGEg4I,EAAqB,eAACpgK,EAAD,uDAAS,CAAE+U,aAAc,QAASsL,YAAa,KAA/C,MAA0D,CAC1FliB,KAAMC,IACNI,QAAS,CACPwB,WAISqgK,EAAoB,SAACj4I,GAAD,MAAa,CAC5CjqB,KAAMC,IACNI,QAAS4pB,IAEEk4I,EAAuB,SAACp0H,EAAO9jB,GAAR,MAAoB,CACtDjqB,KAAMC,IACNI,QAAS,CAAE0tC,QAAO9jB,YAEPm4I,EAAmB,SAACr0H,EAAOlsC,GAAR,MAAmB,CACjD7B,KAAMC,IACNI,QAAS,CACP0tC,QACAlsC,WAISwgK,EAAqB,SAACp4I,GAAD,MAAa,CAC7CjqB,KAAMC,IACNI,QAAS4pB,IAEEq4I,EAAwB,SAACr4I,GAAD,MAAa,CAChDjqB,KAAMC,IACNI,QAAS4pB,IAEEs4I,EAAoB,SAACj4I,EAAWzoB,GAAZ,MAAuB,CACtD7B,KAAMC,IACNI,QAAS,CACPiqB,YACAzoB,WAIS2gK,EAAsB,SAACj4I,GAAD,MAAe,CAChDvqB,KAAMC,IACNI,QAAS,CACPkqB,cAGSk4I,EAAyB,SAACl4I,GAAD,MAAe,CACnDvqB,KAAMC,IACNI,QAAS,CACPkqB,cAGSm4I,EAAqB,SAACn4I,EAAU1oB,GAAX,MAAsB,CACtD7B,KAAMC,IACNI,QAAS,CACPkqB,WACA1oB,WAIS8gK,EAAe,SAACp4I,GAAD,MAAe,CACzCvqB,KAAMC,IACNI,QAASkqB,IAUEq4I,EAAiB,SAACr4I,GAAD,MAAe,CAC3CvqB,KAAMC,IACNI,QAASkqB,IAGEs4I,EAAqB,eAChCC,EADgC,uDACpB,GADoB,MACjB,CAEf9iK,KAAMC,IACNI,QAASyiK,K,6BC3IX,sGAAO,IAAMC,EAA4B,4BAC5BC,EAA8B,8BAC9BC,EAA2B,4B,8BCFxC,sGAAO,IAAMC,EAAiC,iCACjCC,EAAmC,mCACnCC,EAAgC,iC,6BCF7C,sGAAO,IAAMC,EAA8B,8BAC9BC,EAAgC,gCAChCC,EAA6B,8B,kCCuB3Bl/J,IAzBK,CAClBu5B,SAAU,QACVE,UAAW,QACX0lI,YAAa,QACbC,YAAa,QACbC,sBAAuB,QACvBC,wBAAyB,QACzBC,wBAAyB,QACzBC,sBAAuB,QACvB5jB,sBAAuB,QACvBF,uBAAwB,QACxBb,mBAAoB,QACpBS,qBAAsB,QACtBR,uBAAwB,QACxB2kB,yBAA0B,QAC1BC,iBAAkB,QAClBC,aAAc,QACdC,iBAAkB,QAClBC,gBAAiB,QACjBC,iCAAkC,QAClCC,qBAAsB,QACtBC,qBAAsB,QACtBxiI,uBAAwB,U,8BCtB1B,8kBAEayiI,EAA8B,eAACjgJ,EAAD,uDAAW,GAAIoB,EAAf,uCAA2BgL,EAA3B,8DAAkD,CAC3FzwB,KAAMC,IACNI,QAAS,CACPgkB,UACAoB,aACAgL,eAGS8zI,EAAiC,SAACvmJ,EAAUshB,GAAX,MAAsB,CAClEt/B,KAAMC,IACNI,QAAS,CACP2d,WACAshB,WAGSklI,EAA6B,eACxC3iK,EADwC,uDAChC,CAAE+U,aAAc,QAASsL,YAAa,KADN,MAEpC,CACJliB,KAAMC,IACNI,QAAS,CACPwB,WAGS4iK,EAAqC,SAACniJ,GAAD,MAAmB,CACnEtiB,KAAMC,IACNI,QAAS,CAAEiiB,kBAuBAoiJ,EAA+B,SAAC50I,GAAD,MAAmB,CAC7D9vB,KAAMC,IACNI,QAASyvB,IAGE60I,EAA2B,eAAC9iK,EAAD,uDAAS,CAAE+U,aAAc,QAASsL,YAAa,KAA/C,MAA0D,CAChGliB,KAAMC,IACNI,QAAS,CACPwB,WAIS+iK,EAA0B,SAAC90I,GAAD,MAAmB,CACxD9vB,KAAMC,IACNI,QAASyvB,IAEE+0I,EAA6B,SAAC92H,EAAOje,GAAR,MAA0B,CAClE9vB,KAAMC,IACNI,QAAS,CAAE0tC,QAAOje,kBAEPg1I,EAAyB,SAAC/2H,EAAOlsC,GAAR,MAAmB,CACvD7B,KAAMC,IACNI,QAAS,CACP0tC,QACAlsC,WAISkjK,EAA2B,SAACj1I,GAAD,MAAmB,CACzD9vB,KAAMC,IACNI,QAASyvB,IAEEk1I,EAA8B,SAACl1I,GAAD,MAAmB,CAC5D9vB,KAAMC,IACNI,QAASyvB,IAEEm1I,EAA0B,SAACl0I,EAAiBlvB,GAAlB,MAA6B,CAClE7B,KAAMC,IACNI,QAAS,CACP0wB,kBACAlvB,WAISqjK,EAA4B,SAACv0I,GAAD,MAAqB,CAC5D3wB,KAAMC,IACNI,QAAS,CACPswB,oBAGSw0I,EAA+B,SAACx0I,GAAD,MAAqB,CAC/D3wB,KAAMC,IACNI,QAAS,CACPswB,oBAGSy0I,EAA2B,SAACz0I,EAAgB9uB,GAAjB,MAA4B,CAClE7B,KAAMC,IACNI,QAAS,CACPswB,iBACA9uB,WAISwjK,EAAqB,SAAC10I,GAAD,MAAqB,CACrD3wB,KAAMC,IACNI,QAASswB,IAeE20I,EAA4B,eACvCC,EADuC,uDACrB,GADqB,MAClB,CAErBvlK,KAAMC,IACNI,QAASklK,K,6BCvIX,stBAEaC,EAAsB,eAACnhJ,EAAD,uDAAW,GAAX,MAAmB,CACpDrkB,KAAMC,IACNI,QAASgkB,IAEEohJ,EAAyB,SAACznJ,EAAUshB,EAAOj6B,EAAYb,GAA9B,MAAkD,CACtFxE,KAAMC,IACNI,QAAS,CACP2d,WACAshB,QACAj6B,aACAb,oBAGSkhK,EAAqB,eAAC7jK,EAAD,uDAAS,CAAE+U,aAAc,QAASsL,YAAa,KAA/C,MAA0D,CAC1FliB,KAAMC,IACNI,QAAS,CACPwB,WAIS8jK,EAA6B,SACxCrjJ,GADwC,IAExCjd,EAFwC,uDAE3B,KACbb,EAHwC,uDAGvB,KAHuB,MAIpC,CACJxE,KAAMC,IACNI,QAAS,CAAEiiB,eAAcjd,aAAYb,oBAE1BohK,EAAgC,SAAC5nJ,EAAUshB,EAAOj6B,EAAYb,GAA9B,MAAkD,CAC7FxE,KAAMC,IACNI,QAAS,CACP2d,WACAshB,QACAj6B,aACAb,oBAGSqhK,EAA4B,eAAChkK,EAAD,uDAAS,CAAE+U,aAAc,QAASsL,YAAa,KAA/C,MAA0D,CACjGliB,KAAMC,IACNI,QAAS,CACPwB,WAISikK,EAAmB,SAACjtH,GAAD,MAAY,CAC1C74C,KAAMC,IACNI,QAASw4C,IAEEktH,EAAsB,SAACh4H,EAAO8K,GAAR,MAAmB,CACpD74C,KAAMC,IACNI,QAAS,CAAE0tC,QAAO8K,WAEPmtH,EAAkB,SAACj4H,EAAOlsC,GAAR,MAAmB,CAChD7B,KAAMC,IACNI,QAAS,CACP0tC,QACAlsC,WAISokK,EAAoB,SAACptH,GAAD,MAAY,CAC3C74C,KAAMC,IACNI,QAASw4C,IAEEqtH,EAAuB,SAACrtH,GAAD,MAAY,CAC9C74C,KAAMC,IACNI,QAASw4C,IAEEstH,EAAmB,SAAClsH,EAAUp4C,GAAX,MAAsB,CACpD7B,KAAMC,IACNI,QAAS,CACP45C,WACAp4C,WAISukK,EAAqB,SAACvsH,GAAD,MAAc,CAC9C75C,KAAMC,IACNI,QAAS,CACPw5C,aAGSwsH,EAAwB,SAACxsH,GAAD,MAAc,CACjD75C,KAAMC,IACNI,QAAS,CACPw5C,aAGSysH,EAAoB,SAACzsH,EAASh4C,GAAV,MAAqB,CACpD7B,KAAMC,IACNI,QAAS,CACPw5C,UACAh4C,WAIS0kK,EAAc,SAAC1sH,GAAD,MAAc,CACvC75C,KAAMC,IACNI,QAASw5C,IAUE2sH,EAAgB,SAAC3sH,GAAD,MAAc,CACzC75C,KAAMC,IACNI,QAASw5C,IAUE41F,EAAoB,SAAC51F,EAAS1vB,GAAV,MAA0B,CACzDnqB,KAAMC,IACNI,QAAS,CACPw5C,UACA1vB,gBAGSulH,EAAuB,SAAC15H,GAAD,MAAa,CAC/ChW,KAAMC,IACNI,QAAS2V,IASEywJ,EAAgC,SAAC5sH,EAASQ,GAAV,MAAgC,CAC3Er6C,KAAMC,IACNI,QAAS,CACPw5C,UACAQ,sBAGSqsH,EAAmC,SAAC1wJ,GAAD,MAAa,CAC3DhW,KAAMC,IACNI,QAAS2V,K,6BCrJX,8kBAEa2wJ,EAAiC,eAACtiJ,EAAD,uDAAW,GAAX,MAAmB,CAC/DrkB,KAAMC,IACNI,QAASgkB,IAEEuiJ,EAAoC,SAAC5oJ,EAAUshB,EAAOj6B,EAAYb,GAA9B,MAAkD,CACjGxE,KAAMC,IACNI,QAAS,CACP2d,WACAshB,QACAj6B,aACAb,oBAGSqiK,EAAgC,eAC3ChlK,EAD2C,uDACnC,CAAE+U,aAAc,QAASsL,YAAa,KADH,MAEvC,CACJliB,KAAMC,IACNI,QAAS,CACPwB,WAISilK,EAAwC,SACnDxkJ,GADmD,IAEnDjd,EAFmD,uDAEtC,KACbb,EAHmD,uDAGlC,KAHkC,MAI/C,CACJxE,KAAMC,IACNI,QAAS,CAAEiiB,eAAcjd,aAAYb,oBAE1BuiK,EAA2C,SACtD/oJ,EACAshB,EACAj6B,EACAb,GAJsD,MAKlD,CACJxE,KAAMC,IACNI,QAAS,CACP2d,WACAshB,QACAj6B,aACAb,oBAGSwiK,EAAuC,eAClDnlK,EADkD,uDAC1C,CAAE+U,aAAc,QAASsL,YAAa,KADI,MAE9C,CACJliB,KAAMC,IACNI,QAAS,CACPwB,WAISolK,EAA8B,SAAC58G,GAAD,MAA2B,CACpErqD,KAAMC,IACNI,QAASgqD,IAEE68G,EAAiC,SAACn5H,EAAOsc,GAAR,MAAkC,CAC9ErqD,KAAMC,IACNI,QAAS,CAAE0tC,QAAOsc,0BAEP88G,EAA6B,SAACp5H,EAAOlsC,GAAR,MAAmB,CAC3D7B,KAAMC,IACNI,QAAS,CACP0tC,QACAlsC,WAISulK,EAA+B,SAAC/8G,GAAD,MAA2B,CACrErqD,KAAMC,IACNI,QAASgqD,IAEEg9G,EAAkC,SAACh9G,GAAD,MAA2B,CACxErqD,KAAMC,IACNI,QAASgqD,IAEEi9G,EAA8B,SAACj7G,EAAqBxqD,GAAtB,MAAiC,CAC1E7B,KAAMC,IACNI,QAAS,CACPgsD,sBACAxqD,WAIS0lK,EAAgC,SAACt7G,GAAD,MAAiB,CAC5DjsD,KAAMC,IACNI,QAAS,CACP4rD,gBAGSu7G,EAAmC,SAACv7G,GAAD,MAAiB,CAC/DjsD,KAAMC,IACNI,QAAS,CACP4rD,gBAGSw7G,EAA+B,SAACx7G,EAAYpqD,GAAb,MAAwB,CAClE7B,KAAMC,IACNI,QAAS,CACP4rD,aACApqD,WAIS6lK,EAAyB,SAACz7G,GAAD,MAAiB,CACrDjsD,KAAMC,IACNI,QAAS4rD,IAeE07G,EAA+B,eAC1CC,EAD0C,uDAC5B,GAD4B,MACzB,CAEjB5nK,KAAMC,IACNI,QAASunK,K,6BChIX,8kBAEaC,EAAyB,eAACxjJ,EAAD,uDAAW,GAAX,MAAmB,CACvDrkB,KAAMC,IACNI,QAASgkB,IAEEyjJ,EAA4B,SAAC9pJ,EAAUshB,EAAOj6B,EAAYb,GAA9B,MAAkD,CACzFxE,KAAMC,IACNI,QAAS,CACP2d,WACAshB,QACAj6B,aACAb,oBAGSujK,EAAwB,eAAClmK,EAAD,uDAAS,CAAE+U,aAAc,QAASsL,YAAa,KAA/C,MAA0D,CAC7FliB,KAAMC,IACNI,QAAS,CACPwB,WAISmmK,EAAgC,SAC3C1lJ,GAD2C,IAE3Cjd,EAF2C,uDAE9B,KACbb,EAH2C,uDAG1B,KAH0B,MAIvC,CACJxE,KAAMC,IACNI,QAAS,CAAEiiB,eAAcjd,aAAYb,oBAE1ByjK,EAAmC,SAACjqJ,EAAUshB,EAAOj6B,EAAYb,GAA9B,MAAkD,CAChGxE,KAAMC,IACNI,QAAS,CACP2d,WACAshB,QACAj6B,aACAb,oBAGS0jK,EAA+B,eAC1CrmK,EAD0C,uDAClC,CAAE+U,aAAc,QAASsL,YAAa,KADJ,MAEtC,CACJliB,KAAMC,IACNI,QAAS,CACPwB,WAISsmK,EAAsB,SAAC57G,GAAD,MAAe,CAChDvsD,KAAMC,IACNI,QAASksD,IAEE67G,EAAyB,SAACr6H,EAAOwe,EAAUkB,GAAlB,MAA8B,CAClEztD,KAAMC,IACNI,QAAS,CAAE0tC,QAAOwe,WAAUkB,YAEjB46G,EAAqB,SAACt6H,EAAOlsC,GAAR,MAAmB,CACnD7B,KAAMC,IACNI,QAAS,CACP0tC,QACAlsC,WAISymK,EAAuB,SAAC/7G,GAAD,MAAe,CACjDvsD,KAAMC,IACNI,QAASksD,IAEEg8G,EAA0B,SAACh8G,EAAUkB,GAAX,MAAuB,CAC5DztD,KAAMC,IACNI,QAAS,CAAEksD,WAAUkB,YAEV+6G,EAAsB,SAAC96G,EAAa7rD,GAAd,MAAyB,CAC1D7B,KAAMC,IACNI,QAAS,CACPqtD,cACA7rD,WAIS4mK,EAAwB,SAAC/7G,GAAD,MAAiB,CACpD1sD,KAAMC,IACNI,QAAS,CACPqsD,gBAGSg8G,EAA2B,SAACh8G,GAAD,MAAiB,CACvD1sD,KAAMC,IACNI,QAAS,CACPqsD,gBAGSi8G,EAAuB,SAACj8G,EAAY7qD,GAAb,MAAwB,CAC1D7B,KAAMC,IACNI,QAAS,CACPqsD,aACA7qD,WAIS+mK,EAAiB,SAACl8G,GAAD,MAAiB,CAC7C1sD,KAAMC,IACNI,QAASqsD,IAUEm8G,EAAmB,SAACn8G,GAAD,MAAiB,CAC/C1sD,KAAMC,IACNI,QAASqsD,K,6BClHX,8kBAEao8G,EAAuB,eAACzkJ,EAAD,uDAAW,GAAX,MAAmB,CACrDrkB,KAAMC,IACNI,QAASgkB,IAEE0kJ,EAA0B,SAAC/qJ,EAAUshB,EAAOj6B,EAAYb,GAA9B,MAAkD,CACvFxE,KAAMC,IACNI,QAAS,CACP2d,WACAshB,QACAj6B,aACAb,oBAGSwkK,EAAsB,eAACnnK,EAAD,uDAAS,CAAE+U,aAAc,QAASsL,YAAa,KAA/C,MAA0D,CAC3FliB,KAAMC,IACNI,QAAS,CACPwB,WAISonK,EAA8B,SACzC3mJ,GADyC,IAEzCjd,EAFyC,uDAE5B,KACbb,EAHyC,uDAGxB,KAHwB,MAIrC,CACJxE,KAAMC,IACNI,QAAS,CAAEiiB,eAAcjd,aAAYb,oBAE1B0kK,EAAiC,SAAClrJ,EAAUshB,EAAOj6B,EAAYb,GAA9B,MAAkD,CAC9FxE,KAAMC,IACNI,QAAS,CACP2d,WACAshB,QACAj6B,aACAb,oBAGS2kK,EAA6B,eACxCtnK,EADwC,uDAChC,CAAE+U,aAAc,QAASsL,YAAa,KADN,MAEpC,CACJliB,KAAMC,IACNI,QAAS,CACPwB,WAISunK,EAAoB,SAAC37G,GAAD,MAAa,CAC5CztD,KAAMC,IACNI,QAASotD,IAEE47G,EAAuB,SAACt7H,EAAO0f,GAAR,MAAoB,CACtDztD,KAAMC,IACNI,QAAS,CAAE0tC,QAAO0f,YAEP67G,EAAmB,SAACv7H,EAAOlsC,GAAR,MAAmB,CACjD7B,KAAMC,IACNI,QAAS,CACP0tC,QACAlsC,WAIS0nK,EAAqB,SAAC97G,GAAD,MAAa,CAC7CztD,KAAMC,IACNI,QAASotD,IAEE+7G,EAAwB,SAAC/7G,GAAD,MAAa,CAChDztD,KAAMC,IACNI,QAAS,CAAEotD,YAEAg8G,EAAoB,SAAC76G,EAAW/sD,GAAZ,MAAuB,CACtD7B,KAAMC,IACNI,QAAS,CACPuuD,YACA/sD,WAIS6nK,EAAsB,SAAC37G,GAAD,MAAe,CAChD/tD,KAAMC,IACNI,QAAS,CACP0tD,cAGS47G,EAAyB,SAAC57G,GAAD,MAAe,CACnD/tD,KAAMC,IACNI,QAAS,CACP0tD,cAGS67G,EAAqB,SAAC77G,EAAUlsD,GAAX,MAAsB,CACtD7B,KAAMC,IACNI,QAAS,CACP0tD,WACAlsD,WAISgoK,EAAe,SAAC97G,GAAD,MAAe,CACzC/tD,KAAMC,IACNI,QAAS0tD,IAUE+7G,EAAiB,SAAC/7G,GAAD,MAAe,CAC3C/tD,KAAMC,IACNI,QAAS0tD,K,6BClHX,8kBAEag8G,EAAyB,eAAC1lJ,EAAD,uDAAW,GAAX,MAAmB,CACvDrkB,KAAMC,IACNI,QAASgkB,IAEE2lJ,EAA4B,SAAChsJ,EAAUshB,EAAOj6B,EAAYb,GAA9B,MAAkD,CACzFxE,KAAMC,IACNI,QAAS,CACP2d,WACAshB,QACAj6B,aACAb,oBAGSylK,EAAwB,eAACpoK,EAAD,uDAAS,CAAE+U,aAAc,QAASsL,YAAa,KAA/C,MAA0D,CAC7FliB,KAAMC,IACNI,QAAS,CACPwB,WAISqoK,EAAgC,SAC3C5nJ,GAD2C,IAE3Cjd,EAF2C,uDAE9B,KACbb,EAH2C,uDAG1B,KAH0B,MAIvC,CACJxE,KAAMC,IACNI,QAAS,CAAEiiB,eAAcjd,aAAYb,oBAE1B2lK,EAAmC,SAACnsJ,EAAUshB,EAAOj6B,EAAYb,GAA9B,MAAkD,CAChGxE,KAAMC,IACNI,QAAS,CACP2d,WACAshB,QACAj6B,aACAb,oBAGS4lK,EAA+B,eAC1CvoK,EAD0C,uDAClC,CAAE+U,aAAc,QAASsL,YAAa,KADJ,MAEtC,CACJliB,KAAMC,IACNI,QAAS,CACPwB,WAISwoK,EAAsB,SAAClnJ,GAAD,MAAe,CAChDnjB,KAAMC,IACNI,QAAS8iB,IAEEmnJ,EAAyB,SAACv8H,EAAO5qB,GAAR,MAAsB,CAC1DnjB,KAAMC,IACNI,QAAS,CAAE0tC,QAAO5qB,cAEPonJ,EAAqB,SAACx8H,EAAOlsC,GAAR,MAAmB,CACnD7B,KAAMC,IACNI,QAAS,CACP0tC,QACAlsC,WAIS2oK,EAAuB,SAACrnJ,GAAD,MAAe,CACjDnjB,KAAMC,IACNI,QAAS8iB,IAEEsnJ,EAA0B,SAACtnJ,GAAD,MAAe,CACpDnjB,KAAMC,IACNI,QAAS8iB,IAEEunJ,EAAsB,SAACzmJ,EAAapiB,GAAd,MAAyB,CAC1D7B,KAAMC,IACNI,QAAS,CACP4jB,cACApiB,WAIS8oK,EAAwB,SAACjmK,GAAD,MAAiB,CACpD1E,KAAMC,IACNI,QAAS,CACPqE,gBAGSkmK,EAA2B,SAAClmK,GAAD,MAAiB,CACvD1E,KAAMC,IACNI,QAAS,CACPqE,gBAGSmmK,EAAuB,SAACnmK,EAAY7C,GAAb,MAAwB,CAC1D7B,KAAMC,IACNI,QAAS,CACPqE,aACA7C,WAISipK,EAAiB,SAACpmK,GAAD,MAAiB,CAC7C1E,KAAMC,IACNI,QAASqE,IAUEqmK,EAAmB,SAACrmK,GAAD,MAAiB,CAC/C1E,KAAMC,IACNI,QAASqE,K,6BClHX,8kBAEasmK,EAA4B,eAAC3mJ,EAAD,uDAAW,GAAX,MAAmB,CAC1DrkB,KAAMC,IACNI,QAASgkB,IAEE4mJ,EAA+B,SAACjtJ,EAAUshB,EAAOj6B,EAAYb,GAA9B,MAAkD,CAC5FxE,KAAMC,IACNI,QAAS,CACP2d,WACAshB,QACAj6B,aACAb,oBAGS0mK,EAA2B,eAACrpK,EAAD,uDAAS,CAAE+U,aAAc,QAASsL,YAAa,KAA/C,MAA0D,CAChGliB,KAAMC,IACNI,QAAS,CACPwB,WAISspK,EAAmC,SAC9C7oJ,GAD8C,IAE9Cjd,EAF8C,uDAEjC,KACbb,EAH8C,uDAG7B,KAH6B,MAI1C,CACJxE,KAAMC,IACNI,QAAS,CAAEiiB,eAAcjd,aAAYb,oBAE1B4mK,EAAsC,SACjDptJ,EACAshB,EACAj6B,EACAb,GAJiD,MAK7C,CACJxE,KAAMC,IACNI,QAAS,CACP2d,WACAshB,QACAj6B,aACAb,oBAGS6mK,EAAkC,eAC7CxpK,EAD6C,uDACrC,CAAE+U,aAAc,QAASsL,YAAa,KADD,MAEzC,CACJliB,KAAMC,IACNI,QAAS,CACPwB,WAISypK,EAAyB,SAACr6I,GAAD,MAAkB,CACtDjxB,KAAMC,IACNI,QAAS4wB,IAEEs6I,EAA4B,SAACx9H,EAAO9c,GAAR,MAAyB,CAChEjxB,KAAMC,IACNI,QAAS,CAAE0tC,QAAO9c,iBAEPu6I,EAAwB,SAACz9H,EAAOlsC,GAAR,MAAmB,CACtD7B,KAAMC,IACNI,QAAS,CACP0tC,QACAlsC,WAIS4pK,EAA0B,SAACx6I,GAAD,MAAkB,CACvDjxB,KAAMC,IACNI,QAAS4wB,IAEEy6I,EAA6B,SAACz6I,GAAD,MAAkB,CAC1DjxB,KAAMC,IACNI,QAAS4wB,IAEE06I,EAAyB,SAAC55I,EAAgBlwB,GAAjB,MAA4B,CAChE7B,KAAMC,IACNI,QAAS,CACP0xB,iBACAlwB,WAIS+pK,EAA2B,SAAChnK,GAAD,MAAoB,CAC1D5E,KAAMC,IACNI,QAAS,CACPuE,mBAGSinK,EAA8B,SAACjnK,GAAD,MAAoB,CAC7D5E,KAAMC,IACNI,QAAS,CACPuE,mBAGSknK,EAA0B,SAAClnK,EAAe/C,GAAhB,MAA2B,CAChE7B,KAAMC,IACNI,QAAS,CACPuE,gBACA/C,WAISkqK,EAAoB,SAACnnK,GAAD,MAAoB,CACnD5E,KAAMC,IACNI,QAASuE,IAUEonK,EAAsB,SAACpnK,GAAD,MAAoB,CACrD5E,KAAMC,IACNI,QAASuE,K,6BCvHX,81BAEaqnK,EAAuB,eAAC5nJ,EAAD,uDAAW,GAAX,MAAmB,CACrDrkB,KAAMC,IACNI,QAASgkB,IAEE6nJ,EAA0B,SAACluJ,EAAUshB,GAAX,MAAsB,CAC3Dt/B,KAAMC,IACNI,QAAS,CACP2d,WACAshB,WAGS6sI,EAAsB,eAACtqK,EAAD,uDAAS,CAAE+U,aAAc,QAASsL,YAAa,KAA/C,MAA0D,CAC3FliB,KAAMC,IACNI,QAAS,CACPwB,WAISuqK,EAA8B,eAAC/nJ,EAAD,uDAAW,GAAX,MAAmB,CAC5DrkB,KAAMC,IACNI,QAASgkB,IAEEgoJ,EAAiC,SAACruJ,EAAUshB,GAAX,MAAsB,CAClEt/B,KAAMC,IACNI,QAAS,CACP2d,WACAshB,WAGSgtI,EAA6B,eACxCzqK,EADwC,uDAChC,CAAE+U,aAAc,QAASsL,YAAa,KADN,MAEpC,CACJliB,KAAMC,IACNI,QAAS,CACPwB,WAqBS0qK,EAAoB,SAAC55I,GAAD,MAAa,CAC5C3yB,KAAMC,IACNI,QAASsyB,IAEE65I,EAAuB,SAACz+H,EAAOpb,GAAR,MAAoB,CACtD3yB,KAAMC,IACNI,QAAS,CAAE0tC,QAAOpb,YAEP85I,EAAmB,SAAC1+H,EAAOlsC,GAAR,MAAmB,CACjD7B,KAAMC,IACNI,QAAS,CACP0tC,QACAlsC,WAIS6qK,EAAqB,SAAC/5I,GAAD,MAAa,CAC7C3yB,KAAMC,IACNI,QAASsyB,IAEEg6I,EAAwB,SAACh6I,GAAD,MAAa,CAChD3yB,KAAMC,IACNI,QAASsyB,IAEEi6I,EAAoB,SAAClxH,EAAW75C,GAAZ,MAAuB,CACtD7B,KAAMC,IACNI,QAAS,CACPq7C,YACA75C,WAISgrK,EAAsB,SAACj3H,GAAD,MAAe,CAChD51C,KAAMC,IACNI,QAAS,CACPu1C,cAGSk3H,EAAyB,SAACl3H,GAAD,MAAe,CACnD51C,KAAMC,IACNI,QAAS,CACPu1C,cAGSm3H,EAAqB,SAACn3H,EAAU/zC,GAAX,MAAsB,CACtD7B,KAAMC,IACNI,QAAS,CACPu1C,WACA/zC,WAISmrK,EAAe,SAACp3H,GAAD,MAAe,CACzC51C,KAAMC,IACNI,QAASu1C,IAUEq3H,EAAiB,SAACr3H,GAAD,MAAe,CAC3C51C,KAAMC,IACNI,QAASu1C,IAUE65F,EAAoB,SAAC75F,EAAUzrB,GAAX,MAA2B,CAC1DnqB,KAAMC,IACNI,QAAS,CACPu1C,WACAzrB,gBAGSulH,EAAuB,SAAC15H,GAAD,MAAa,CAC/ChW,KAAMC,IACNI,QAAS2V,IASEk3J,EAAgC,SAACt3H,GAAD,MAAe,CAC1D51C,KAAMC,IACNI,QAAS,CACPu1C,cAGSu3H,EAAkC,SAACv3H,GAAD,MAAe,CAC5D51C,KAAMC,IACNI,QAAS,CACPu1C,cAGSw3H,EAA6B,SAACx3H,EAAU/zC,GAAX,MAAsB,CAC9D7B,KAAMC,IACNI,QAAS,CACPu1C,WACA/zC,WAISwrK,EAAmC,SAACz3H,GAAD,MAAe,CAC7D51C,KAAMC,IACNI,QAAS,CACPu1C,cAGS03H,EAAqC,SAAC13H,GAAD,MAAe,CAC/D51C,KAAMC,IACNI,QAAS,CACPu1C,cAGS23H,EAAgC,SAAC33H,EAAU/zC,GAAX,MAAsB,CACjE7B,KAAMC,IACNI,QAAS,CACPu1C,WACA/zC,Y,6BC3LJ,8kBAEa2rK,EAAqC,eAACnpJ,EAAD,uDAAW,GAAX,MAAmB,CACnErkB,KAAMC,IACNI,QAASgkB,IAEEopJ,EAAwC,SACnDzvJ,EACAshB,EACAj6B,EACAb,GAJmD,MAK/C,CACJxE,KAAMC,IACNI,QAAS,CACP2d,WACAshB,QACAj6B,aACAb,oBAGSkpK,EAAoC,eAC/C7rK,EAD+C,uDACvC,CAAE+U,aAAc,QAASsL,YAAa,KADC,MAE3C,CACJliB,KAAMC,IACNI,QAAS,CACPwB,WAIS8rK,EAA4C,SACvDrrJ,GADuD,IAEvDjd,EAFuD,uDAE1C,KACbb,EAHuD,uDAGtC,KACjBgB,EAJuD,6CAKnD,CACJxF,KAAMC,IACNI,QAAS,CAAEiiB,eAAcjd,aAAYb,iBAAgBgB,6BAE1CooK,EAA+C,SAC1D5vJ,EACAshB,EACAj6B,EACAb,GAJ0D,MAKtD,CACJxE,KAAMC,IACNI,QAAS,CACP2d,WACAshB,QACAj6B,aACAb,oBAGSqpK,EAA2C,eACtDhsK,EADsD,uDAC9C,CAAE+U,aAAc,QAASsL,YAAa,KADQ,MAElD,CACJliB,KAAMC,IACNI,QAAS,CACPwB,WAISisK,EAAkC,SAACzjH,GAAD,MAA2B,CACxErqD,KAAMC,IACNI,QAASgqD,IAEE0jH,EAAqC,SAAChgI,EAAOsc,GAAR,MAAkC,CAClFrqD,KAAMC,IACNI,QAAS,CAAE0tC,QAAOsc,0BAEP2jH,EAAiC,SAACjgI,EAAOlsC,GAAR,MAAmB,CAC/D7B,KAAMC,IACNI,QAAS,CACP0tC,QACAlsC,WAISosK,EAAmC,SAAC5jH,GAAD,MAA2B,CACzErqD,KAAMC,IACNI,QAASgqD,IAEE6jH,EAAsC,SAAC7jH,GAAD,MAA2B,CAC5ErqD,KAAMC,IACNI,QAASgqD,IAEE8jH,EAAkC,SAAC/iH,EAAyBvpD,GAA1B,MAAqC,CAClF7B,KAAMC,IACNI,QAAS,CACP+qD,0BACAvpD,WAISusK,EAAoC,SAACpjH,GAAD,MAAiB,CAChEhrD,KAAMC,IACNI,QAAS,CACP2qD,gBAGSqjH,EAAuC,SAACrjH,GAAD,MAAiB,CACnEhrD,KAAMC,IACNI,QAAS,CACP2qD,gBAGSsjH,EAAmC,SAACtjH,EAAYnpD,GAAb,MAAwB,CACtE7B,KAAMC,IACNI,QAAS,CACP2qD,aACAnpD,WAIS0sK,EAA6B,SAACvjH,GAAD,MAAiB,CACzDhrD,KAAMC,IACNI,QAAS2qD,IAeEwjH,EAAmC,eAC9CC,EAD8C,uDAChC,GADgC,MAC7B,CAEjBzuK,KAAMC,IACNI,QAASouK,K,qRC8QLhxJ,EAAYtd,YAAgB,CAChCs5G,KA5YW,WAAyB,IAAxB35G,EAAuB,uDAAf,GAAIC,EAAW,uCACnC,OAAQA,EAAOC,MAEb,KAAKC,IACL,KAAKA,IACH,MAA4BF,EAAOM,QAA3B2d,EAAR,EAAQA,SAAUshB,EAAlB,EAAkBA,MACZrf,EAAQ,eAAQngB,GAStB,OARAw/B,EAAMrR,SAAQ,SAAC5oB,GACb4a,EAAS5a,GAAT,qCACE8oB,YAAY,GACTruB,EAAMuF,IACN2Y,EAAS3Y,IAHd,IAIE4Q,aAAa,OAGVgK,EAGT,KAAKhgB,IACH,MAA4BF,EAAOM,QAA3B0tC,EAAR,EAAQA,MAAOtjB,EAAf,EAAeA,SACTxK,EAAW69F,IAAKh+G,EAAOiuC,GAM7B,OALA9tB,EAASwK,EAASplB,YAAlB,uCACKvF,EAAMiuC,IACNtjB,GAFL,IAGExU,aAAa,IAERgK,EAGT,KAAKhgB,IACH,IAAMwqB,EAAW1qB,EAAOM,QACxB,OAAO,2BACFP,GADL,kBAEG2qB,EAASplB,WAFZ,uCAGOy4G,IAAKh+G,EAAM2qB,EAASplB,YAAa,CAAC,iBAClCy4G,IAAKrzF,EAAU,CAAC,iBAJvB,IAKIxU,aAAa,MAMnB,KAAKhW,IACH,IAAMwqB,EAAW1qB,EAAOM,QAClB4f,EAAQ,eAAQngB,GAMtB,OALAmgB,EAASwK,EAASplB,YAAlB,yBACE8oB,YAAY,GACT1D,GAFL,IAGExU,aAAa,IAERgK,EAET,KAAKhgB,IACH,IAAMwqB,EAAW1qB,EAAOM,QACxB,OAAO,2BACFP,GADL,kBAEG2qB,EAASplB,WAFZ,uCAGOvF,EAAM2qB,EAASplB,aAHtB,IAII0mB,YAAajsB,EAAM2qB,EAASplB,aACzBolB,GALP,IAMIxU,aAAa,MAMnB,KAAKhW,IACH,IAAQ8tC,EAAUhuC,EAAOM,QAAjB0tC,MACR,OAAIjuC,EAAMiuC,GACD+vE,IAAKh+G,EAAOiuC,GAEdjuC,EAET,KAAKG,IACH,IAAQ8rB,EAAgBhsB,EAAOM,QAAvB0rB,YACR,OAAO,2BACFjsB,GADL,kBAEGisB,EAAY1mB,WAFf,uCAGOy4G,IAAKh+G,EAAMisB,EAAY1mB,YAAa,CAAC,iBACrC0mB,GAJP,IAKI9V,aAAa,MAMnB,KAAKhW,IACH,IAAQoF,EAAetF,EAAOM,QAAtBgF,WACR,OAAOy4G,IAAKh+G,EAAOuF,GAIrB,KAAKpF,IACH,IAAMoF,EAAatF,EAAOM,QACpB4f,EAAQ,2BACTngB,GADS,kBAEXuF,EAFW,2BAGPvF,EAAMuF,IAHC,IAIV8oB,YAAY,MAGhB,OAAOlO,EAGT,KAAKhgB,IACH,IAAMoF,EAAatF,EAAOM,QAC1B,OAAO,2BACFP,GADL,kBAEGuF,EAFH,2BAGOvF,EAAMuF,IAHb,IAII8oB,YAAY,MAKlB,KAAKluB,IACH,IAAMyuK,EAAc3uK,EAAOM,QACrB4f,EAAQ,eAAQngB,GAiBtB,OAhB0B,GAAtB4uK,EAAY5lJ,OACdmF,IAAQnuB,GAAO,SAAC2qB,EAAeplB,GAC7B4a,EAAS5a,GAAT,2BACKolB,GADL,IAEE0D,YAAY,OAIhBugJ,EAAYzgJ,SAAQ,SAAC5oB,GACnB4a,EAAS5a,GAAT,2BACKvF,EAAMuF,IADX,IAEE8oB,YAAY,OAKXlO,EAGT,KAAKhgB,IACH,IAAMyuK,EAAc3uK,EAAOM,QACrB4f,EAAQ,eAAQngB,GAiBtB,OAhB0B,GAAtB4uK,EAAY5lJ,OACdmF,IAAQnuB,GAAO,SAAC2qB,EAAeplB,GAC7B4a,EAAS5a,GAAT,2BACKolB,GADL,IAEE0D,YAAY,OAIhBugJ,EAAYzgJ,SAAQ,SAAC5oB,GACnB4a,EAAS5a,GAAT,2BACKvF,EAAMuF,IADX,IAEE8oB,YAAY,OAKXlO,EAIT,QACE,OAAOngB,IA4OXw/B,MAvOY,WAAyB,IAAxBx/B,EAAuB,uDAAf,GAAIC,EAAW,uCACpC,OAAQA,EAAOC,MAEb,KAAKC,IACH,IAAQq/B,EAAUv/B,EAAOM,QAAjBi/B,MACR,OAAOs6E,IAAMt6E,GAGf,KAAKr/B,IACH,IAAQq/B,EAAUv/B,EAAOM,QAAjBi/B,MACR,OAAO+yB,IAAK,GAAD,mBAAKvyD,GAAL,YAAew/B,KAG5B,KAAKr/B,IACH,MAA4BF,EAAOM,QAA3B0tC,EAAR,EAAQA,MAAOtjB,EAAf,EAAeA,SACf,OAAO3qB,EAAMgiB,KAAI,SAACzc,GAAD,OAAiBA,IAAe0oC,EAAQtjB,EAASplB,WAAaA,KAGjF,KAAKpF,IACH,IAAQoF,EAAetF,EAAOM,QAAtBgF,WACR,OAAOvF,EAAMs8B,QAAO,SAACuyI,GAAD,OAAqBA,IAAoBtpK,KAI/D,KAAKpF,IACH,IAAMwqB,EAAW1qB,EAAOM,QACxB,MAAM,GAAN,mBAAWP,GAAX,CAAkB2qB,EAASplB,aAI7B,KAAKpF,IACH,IAAQ8tC,EAAUhuC,EAAOM,QAAjB0tC,MACR,OAAOjuC,EAAMs8B,QAAO,SAACuyI,GAAD,OAAqBA,IAAoB5gI,KAI/D,QACE,OAAOjuC,IAmMXm+G,sBA9K4B,WAA4B,IAA3Bn+G,EAA0B,wDAAXC,EAAW,uCACvD,OAAQA,EAAOC,MACb,KAAKC,IACH,OAAO,EAET,KAAKA,IACL,KAAKA,IACH,OAAO,EAET,QACE,OAAOH,IAqKX47G,eA9LqB,WAA4B,IAA3B57G,EAA0B,wDAAXC,EAAW,uCAChD,OAAQA,EAAOC,MACb,KAAKC,IACH,OAAO,EAET,KAAKA,IACL,KAAKA,IACH,OAAO,EAET,QACE,OAAOH,IAqLXo+G,SAjKe,WAA4B,IAA3Bp+G,EAA0B,wDAAXC,EAAW,uCAC1C,OAAQA,EAAOC,MACb,KAAKC,IACH,OAAO,EAET,KAAKA,IACL,KAAKA,IACH,OAAO,EAET,QACE,OAAOH,IAwJXq+G,UAnJgB,WAA4B,IAA3Br+G,EAA0B,wDAAXC,EAAW,uCAC3C,OAAQA,EAAOC,MACb,KAAKC,IACH,OAAO,EAET,KAAKA,IACL,KAAKA,IACH,OAAO,EAET,QACE,OAAOH,IA0IX8uK,wBArI8B,WAA4B,IAA3B9uK,EAA0B,wDAAXC,EAAW,uCACzD,OAAQA,EAAOC,MACb,KAAKC,IACH,OAAO,EAET,KAAKA,IACL,KAAKA,IACH,OAAO,EAET,QACE,OAAOH,IA4HXs+G,WAvHiB,WAA4B,IAA3Bt+G,EAA0B,wDAAXC,EAAW,uCAC5C,OAAQA,EAAOC,MACb,KAAKC,IACH,OAAO,EAET,KAAKA,IACL,KAAKA,IACH,OAAO,EAET,QACE,OAAOH,IA8GXu+G,yBAzF+B,WAA2B,IAA1Bv+G,EAAyB,uDAAjB,KAAMC,EAAW,uCACzD,OAAQA,EAAOC,MACb,KAAKC,IACH,IAAQ4B,EAAU9B,EAAOM,QAAjBwB,MACR,OAAOA,EAET,KAAK5B,IACL,KAAKA,IACH,OAAO,KAET,QACE,OAAOH,IA+EX87G,kBA1GwB,WAA2B,IAA1B97G,EAAyB,uDAAjB,KAAMC,EAAW,uCAClD,OAAQA,EAAOC,MACb,KAAKC,IACH,IAAQ4B,EAAU9B,EAAOM,QAAjBwB,MACR,OAAOA,EAET,KAAK5B,IACL,KAAKA,IACH,OAAO,KAET,QACE,OAAOH,IAgGXw+G,YA3EkB,WAA2B,IAA1Bx+G,EAAyB,uDAAjB,KAAMC,EAAW,uCAC5C,OAAQA,EAAOC,MACb,KAAKC,IACH,IAAQ4B,EAAU9B,EAAOM,QAAjBwB,MACR,OAAOA,EAET,KAAK5B,IACL,KAAKA,IACH,OAAO,KAET,QACE,OAAOH,IAiEXy+G,aA5DmB,WAA2B,IAA1Bz+G,EAAyB,uDAAjB,KAAMC,EAAW,uCAC7C,OAAQA,EAAOC,MACb,KAAKC,IACH,IAAQ4B,EAAU9B,EAAOM,QAAjBwB,MACR,OAAOA,EAET,KAAK5B,IACL,KAAKA,IACH,OAAO,KAET,QACE,OAAOH,IAkDX+uK,2BA7CiC,WAA2B,IAA1B/uK,EAAyB,uDAAjB,KAAMC,EAAW,uCAC3D,OAAQA,EAAOC,MACb,KAAKC,IACH,IAAQ4B,EAAU9B,EAAOM,QAAjBwB,MACR,OAAOA,EAET,KAAK5B,IACL,KAAKA,IACH,OAAO,KAET,QACE,OAAOH,IAmCX0+G,cA9BoB,WAA2B,IAA1B1+G,EAAyB,uDAAjB,KAAMC,EAAW,uCAC9C,OAAQA,EAAOC,MACb,KAAKC,IACH,IAAQ4B,EAAU9B,EAAOM,QAAjBwB,MACR,OAAOA,EAET,KAAK5B,IACL,KAAKA,IACH,OAAO,KAET,QACE,OAAOH,MAsBE2d,MAGR,IAAMlb,EAAc,SAACzC,GAAD,OAAWA,EAAM2d,WAG/BqxJ,EAAc,SAAChvK,EAAOuF,GAAR,OAAuB9C,EAAYzC,GAAO25G,KAAKp0G,IAC7D0pK,EAAmB,SAACjvK,GAAD,OAC9ByC,EAAYzC,GACTw/B,MAAMxd,KAAI,SAAC5T,GAAD,OAAQ4gK,EAAYhvK,EAAOoO,MACrCkuB,QAAO,SAAC3R,GAAD,OAAcA,EAASukJ,eAAiB,MASvCC,EAAsB,SAACnvK,GAClC,IAAMovK,EAAoBH,EAAiBjvK,GAAOs8B,QAAO,SAAC3R,GAAD,OAAcA,EAAS0D,cAEhF,OAAiC,IAA7B+gJ,EAAkBpmJ,OAAqBomJ,EAAkB,GAEjD,MAQDC,EAAkC,SAACrvK,GAAD,OAC7CyC,EAAYzC,GAAO8uK,0B,kCCtcrB,kpBAEaQ,EAAwB,eAAC/qJ,EAAD,uDAAW,GAAX,MAAmB,CACtDrkB,KAAMC,IACNI,QAASgkB,IAEEgrJ,EAA2B,SAACrxJ,EAAUshB,EAAOj6B,EAAYb,GAA9B,MAAkD,CACxFxE,KAAMC,IACNI,QAAS,CACP2d,WACAshB,QACAj6B,aACAb,oBAGS8qK,EAAuB,eAACztK,EAAD,uDAAS,CAAE+U,aAAc,QAASsL,YAAa,KAA/C,MAA0D,CAC5FliB,KAAMC,IACNI,QAAS,CACPwB,WAIS0tK,EAA+B,SAC1CjtJ,GAD0C,IAE1Cjd,EAF0C,uDAE7B,KACbb,EAH0C,uDAGzB,KAHyB,MAItC,CACJxE,KAAMC,IACNI,QAAS,CAAEiiB,eAAcjd,aAAYb,oBAE1BgrK,EAAkC,SAACxxJ,EAAUshB,EAAOj6B,EAAYb,GAA9B,MAAkD,CAC/FxE,KAAMC,IACNI,QAAS,CACP2d,WACAshB,QACAj6B,aACAb,oBAGSirK,EAA8B,eACzC5tK,EADyC,uDACjC,CAAE+U,aAAc,QAASsL,YAAa,KADL,MAErC,CACJliB,KAAMC,IACNI,QAAS,CACPwB,WAIS6tK,EAAqB,SAACl4H,GAAD,MAAc,CAC9Cx3C,KAAMC,IACNI,QAASm3C,IAEEm4H,EAAwB,SAAC5hI,EAAOyJ,GAAR,MAAqB,CACxDx3C,KAAMC,IACNI,QAAS,CAAE0tC,QAAOyJ,aAEPo4H,EAAoB,SAAC7hI,EAAOlsC,GAAR,MAAmB,CAClD7B,KAAMC,IACNI,QAAS,CACP0tC,QACAlsC,WAISguK,EAAsB,SAACr4H,GAAD,MAAc,CAC/Cx3C,KAAMC,IACNI,QAASm3C,IAEEs4H,EAAyB,SAACt4H,GAAD,MAAc,CAClDx3C,KAAMC,IACNI,QAASm3C,IAEEu4H,EAAqB,SAACt3H,EAAY52C,GAAb,MAAwB,CACxD7B,KAAMC,IACNI,QAAS,CACPo4C,aACA52C,WAISmuK,EAAuB,SAAC33H,GAAD,MAAgB,CAClDr4C,KAAMC,IACNI,QAAS,CACPg4C,eAGS43H,EAA0B,SAAC53H,GAAD,MAAgB,CACrDr4C,KAAMC,IACNI,QAAS,CACPg4C,eAGS63H,EAAsB,SAAC73H,EAAWx2C,GAAZ,MAAuB,CACxD7B,KAAMC,IACNI,QAAS,CACPg4C,YACAx2C,WAISsuK,EAAgB,SAAC93H,GAAD,MAAgB,CAC3Cr4C,KAAMC,IACNI,QAASg4C,IAUE+3H,EAAkB,SAAC/3H,GAAD,MAAgB,CAC7Cr4C,KAAMC,IACNI,QAASg4C,IAUEo3F,EAAoB,SAACp3F,EAAWM,GAAZ,MAA8B,CAC7D34C,KAAMC,IACNI,QAAS,CACPg4C,YACAM,kBAGS+2F,EAAuB,SAAC15H,GAAD,MAAa,CAC/ChW,KAAMC,IACNI,QAAS2V,K,6BCrIX,wIAAO,IAAMq6J,EAAkC,kCAClCC,EAAoC,oCACpCC,EAAiC,iCAEjCC,EAA0B,2B,6BCJvC,kCAAO,IAAMC,EAAgB,CACzBC,OAAQ,GACRv+D,KAAM,KACNiO,IAAK,MACLjZ,KAAM,S,kCCJV,sGAAO,IAAMwpE,EAA+B,+BAC/BC,EAAiC,iCACjCC,EAA8B,+B,6BCF3C,sGAAO,IAAMC,EAA+B,+BAC/BC,EAAiC,iCACjCC,EAA8B,+B,6BCF3C,sGAAO,IAAMC,EAAoC,oCACpCC,EAAsC,sCACtCC,EAAmC,oC,6BCFhD,sGAAO,IAAMC,EAAiC,iCACjCC,EAAmC,mCACnCC,EAAgC,iC,6BCF7C,gnBAEaC,EAAoB,eAACltJ,EAAD,uDAAW,GAAX,MAAmB,CAClDrkB,KAAMC,IACNI,QAAS,CAAEgkB,aAEAmtJ,EAAuB,SAClCxzJ,EACAshB,EACAj6B,EACAb,GAJkC,IAKlCE,EALkC,uDAKrB,KACbE,EANkC,uDAMlB,KANkB,MAO9B,CACJ5E,KAAMC,IACNI,QAAS,CACP2d,WACAshB,QACAj6B,aACAb,iBACAE,aACAE,mBAGS6sK,EAAmB,eAAC5vK,EAAD,uDAAS,CAAE+U,aAAc,QAASsL,YAAa,KAA/C,MAA0D,CACxFliB,KAAMC,IACNI,QAAS,CACPwB,WAIS6vK,EAA2B,SACtCpvJ,GADsC,IAEtCjd,EAFsC,uDAEzB,KACbb,EAHsC,uDAGrB,KACjBE,EAJsC,uDAIzB,KACbE,EALsC,uDAKtB,KAChBY,EANsC,6CAOlC,CACJxF,KAAMC,IACNI,QAAS,CACPiiB,eACAjd,aACAb,iBACAE,aACAE,gBACAY,6BAGSmsK,EAA8B,SACzC3zJ,EACAshB,EACAj6B,EACAb,GAJyC,IAKzCE,EALyC,uDAK5B,KACbE,EANyC,uDAMzB,KANyB,MAOrC,CACJ5E,KAAMC,IACNI,QAAS,CACP2d,WACAshB,QACAj6B,aACAb,iBACAE,aACAE,mBAGSgtK,EAA0B,eAAC/vK,EAAD,uDAAS,CAAE+U,aAAc,QAASsL,YAAa,KAA/C,MAA0D,CAC/FliB,KAAMC,IACNI,QAAS,CACPwB,WAISgwK,EAAiB,SAACx7H,GAAD,MAAU,CACtCr2C,KAAMC,IACNI,QAASg2C,IAEEy7H,EAAoB,SAAC/jI,EAAOsI,GAAR,MAAiB,CAChDr2C,KAAMC,IACNI,QAAS,CAAE0tC,QAAOsI,SAEP07H,EAAgB,SAAChkI,EAAOlsC,GAAR,MAAmB,CAC9C7B,KAAMC,IACNI,QAAS,CACP0tC,QACAlsC,WAISmwK,EAAkB,SAAC37H,GAAD,MAAU,CACvCr2C,KAAMC,IACNI,QAASg2C,IAEE47H,EAAqB,SAAC57H,GAAD,MAAU,CAC1Cr2C,KAAMC,IACNI,QAASg2C,IAEE67H,EAAiB,SAAC76H,EAAQx1C,GAAT,MAAoB,CAChD7B,KAAMC,IACNI,QAAS,CACPg3C,SACAx1C,WAISswK,EAAmB,SAACl7H,GAAD,MAAY,CAC1Cj3C,KAAMC,IACNI,QAAS,CACP42C,WAGSm7H,EAAsB,SAACn7H,GAAD,MAAY,CAC7Cj3C,KAAMC,IACNI,QAAS,CACP42C,WAGSo7H,EAAkB,SAACp7H,EAAOp1C,GAAR,MAAmB,CAChD7B,KAAMC,IACNI,QAAS,CACP42C,QACAp1C,WAISywK,EAAY,SAACr7H,GAAD,MAAY,CACnCj3C,KAAMC,IACNI,QAAS42C,IAUEs7H,EAAc,SAACt7H,GAAD,MAAY,CACrCj3C,KAAMC,IACNI,QAAS42C,IAGEu7H,EAAkB,eAC7BC,EAD6B,uDACpB,GADoB,MACjB,CAEZzyK,KAAMC,IACNI,QAASoyK,K,6BCnJX,8OAAO,IAAMC,EAAsB,sBAEtBC,EAA8B,8BAC9BC,EAAgC,gCAChCC,EAA6B,6BAE7BC,EAA4B,4BAC5BC,EAA8B,8BAC9BC,EAA2B,4B,8BCPxC,qLAEaC,EAAY,SAACC,GACxB5tD,qBAAU,WACR,IAAI6tD,EACJ,IAC2C,IAArCC,EAAE,eAAD,OAAgBF,EAAhB,OAAyBpqJ,UAC5BqqJ,EAASngE,SAASC,cAAc,WACzB+P,IAAMkwD,EACbC,EAAOE,OAAQ,EACfrgE,SAASvxF,KAAK6xJ,YAAYH,IAE5B,aACD,CAACD,KAGOK,EAA0B,SAACt0I,EAAUC,EAAWs0I,GAC3D,IAAIC,EAAKD,EACTC,EAAW,GAALA,EAAW,SACjB,IAAIC,EAA4C,QAAvC7vE,KAAK8vE,IAAK10I,EAAW4kE,KAAK+vE,GAAM,KAOrCC,EAAS,CACXC,YAJW70I,EAAWw0I,EAKtBM,aAJW70I,GAJbw0I,EAAe,IAATF,EAAgBE,GASpBM,YARW/0I,EAAWw0I,EAStBQ,aARW/0I,EAAYw0I,GAUzB,MAAO,CACL,CAACG,EAAOC,YAAaD,EAAOE,cAC5B,CAACF,EAAOG,YAAaH,EAAOI,gBAGnBC,EAAmC,SAACj1I,EAAUC,EAAWs0I,EAAQW,GAC5E,IAAIV,EAAKD,EACTC,EAAW,GAALA,EAAW,SACjB,IAAIC,EAA4C,QAAvC7vE,KAAK8vE,IAAK10I,EAAW4kE,KAAK+vE,GAAM,KAOrCC,EAHS50I,EAAWw0I,EAGpBI,GANJH,EAAe,IAATF,EAAgBE,EACTz0I,EAAWw0I,GAWlBW,EAAUD,EAAc/3I,QAAO,SAACi4I,GACpC,IACc,OAAZA,QAAY,IAAZA,OAAA,EAAAA,EAAcp1I,WAAY40I,IACd,OAAZQ,QAAY,IAAZA,OAAA,EAAAA,EAAcp1I,WAAY40I,EAE1B,OAAOQ,KAIX,MAAO,CAAED,QAASA,EAASE,YAAaF,EAAQtrJ,OAAS,IAQ9CyrJ,EAAyB,SAACt1I,EAAUC,EAAWs0I,GAC1D,IAAIC,EAAKD,EACTC,EAAW,GAALA,EAAW,SACjB,IAAIC,EAA4C,QAAvC7vE,KAAK8vE,IAAK10I,EAAW4kE,KAAK+vE,GAAM,KAOrCC,EAAS,CACXC,YAJW70I,EAAWw0I,EAKtBM,aAJW70I,GAJbw0I,EAAe,IAATF,EAAgBE,GASpBM,YARW/0I,EAAWw0I,EAStBQ,aARW/0I,EAAYw0I,GAUzB,MAAO,CACL,CAACG,EAAOC,YAAaD,EAAOE,cAC5B,CAACF,EAAOC,YAAaD,EAAOI,cAC5B,CAACJ,EAAOG,YAAaH,EAAOI,cAC5B,CAACJ,EAAOG,YAAaH,EAAOE,cAC5B,CAACF,EAAOC,YAAaD,EAAOE,gBAInBS,EAAwB,SAACv1I,EAAUC,EAAWs0I,GACzD,IAAIC,EAAKD,EACTC,EAAW,GAALA,EAAW,SACjB,IAAIC,EAA4C,QAAvC7vE,KAAK8vE,IAAK10I,EAAW4kE,KAAK+vE,GAAM,KAOrCC,EAAS,CACXC,YAJW70I,EAAWw0I,EAKtBM,aAJW70I,GAJbw0I,EAAe,IAATF,EAAgBE,GASpBM,YARW/0I,EAAWw0I,EAStBQ,aARW/0I,EAAYw0I,GAUzB,MAAO,CACL,CAACG,EAAOC,YAAaD,EAAOE,cAC5B,CAACF,EAAOC,YAAaD,EAAOI,cAC5B,CAACJ,EAAOG,YAAaH,EAAOI,cAC5B,CAACJ,EAAOC,YAAaD,EAAOE,iB,mXCmS1BppJ,EAAWxqB,YAAgB,CAC/Bs5G,KA5YW,WAAyB,IAAxB35G,EAAuB,uDAAf,GAAIC,EAAW,uCACnC,OAAQA,EAAOC,MAEb,KAAKC,IACL,KAAKA,IACH,MAA4BF,EAAOM,QAA3B2d,EAAR,EAAQA,SAAUshB,EAAlB,EAAkBA,MACZrf,EAAQ,eAAQngB,GAQtB,OAPAw/B,EAAMrR,SAAQ,SAACyS,GACbzgB,EAASygB,GAAT,yBACEvS,YAAY,GACTnQ,EAAS0iB,IAFd,IAGEzqB,aAAa,OAGVgK,EAGT,KAAKhgB,IACH,MAA2BF,EAAOM,QAA1B0tC,EAAR,EAAQA,MAAOrjB,EAAf,EAAeA,QACTzK,EAAW69F,IAAKh+G,EAAOiuC,GAM7B,OALA9tB,EAASyK,EAAQgW,WAAjB,uCACK5gC,EAAMiuC,IACNrjB,GAFL,IAGEzU,aAAa,IAERgK,EAGT,KAAKhgB,IACH,IAAMyqB,EAAU3qB,EAAOM,QAEjB4f,EAAQ,2BACTngB,GADS,kBAEX4qB,EAAQgW,UAFG,uCAGPo9E,IAAKh+G,EAAM4qB,EAAQgW,WAAY,CAAC,gBAChCo9E,IAAKpzF,EAAS,CAAC,gBAJR,IAKVzU,aAAa,EACbkY,YAAY,MAIhB,OAAOzD,EAAQ+pJ,mBAAqB/pJ,EAAQ+pJ,mBAAqB/pJ,EAAQgW,UACrEo9E,IAAK79F,EAAU,CAACyK,EAAQ+pJ,oBACxBx0J,EAGN,KAAKhgB,IAA4B,IAAD,EACxByqB,EAAU3qB,EAAOM,QACjB4f,EAAQ,eAAQngB,GAMtB,OALAmgB,EAASyK,EAAQgW,WAAjB,yBACEvS,WAAU,UAAEzD,EAAQyD,kBAAV,UACPzD,GAFL,IAGEzU,aAAa,IAERgK,EAGT,KAAKhgB,IACH,IAAMyqB,EAAU3qB,EAAOM,QACvB,OAAO,2BACFP,GADL,kBAEG4qB,EAAQgW,UAFX,uCAGO5gC,EAAM4qB,EAAQgW,YAHrB,IAIII,WAAYhhC,EAAM4qB,EAAQgW,YACvBhW,GALP,IAMIzU,aAAa,MAKnB,KAAKhW,IACH,IAAQ8tC,EAAUhuC,EAAOM,QAAjB0tC,MACR,OAAIjuC,EAAMiuC,GACD+vE,IAAKh+G,EAAOiuC,GAEdjuC,EAGT,KAAKG,IACH,IAAMyqB,EAAU3qB,EAAOM,QACjB4f,EAAQ,eAAQngB,GAOtB,OANAmgB,EAASyK,EAAQgW,WAAjB,qCACEvS,YAAY,GACTruB,EAAM4qB,EAAQgW,YACdhW,GAHL,IAIEzU,aAAa,IAERgK,EAIT,KAAKhgB,IACH,IAAMygC,EAAY3gC,EAAOM,QACnB4f,EAAQ,2BACTngB,GADS,kBAEX4gC,EAFW,2BAGP5gC,EAAM4gC,IAHC,IAIVvS,YAAY,MAGhB,OAAOlO,EAGT,KAAKhgB,IACH,IAAMygC,EAAY3gC,EAAOM,QACzB,OAAO,2BACFP,GADL,kBAEG4gC,EAFH,2BAGO5gC,EAAM4gC,IAHb,IAIIvS,YAAY,MAKlB,KAAKluB,IACH,IAAMmuI,EAAaruI,EAAOM,QACpB4f,EAAQ,eAAQngB,GAiBtB,OAhByB,GAArBsuI,EAAWtlH,OACbmF,IAAQnuB,GAAO,SAAC4qB,EAAcgW,GAC5BzgB,EAASygB,GAAT,2BACKhW,GADL,IAEEyD,YAAY,OAIhBigH,EAAWngH,SAAQ,SAACyS,GAClBzgB,EAASygB,GAAT,2BACK5gC,EAAM4gC,IADX,IAEEvS,YAAY,OAKXlO,EAGT,KAAKhgB,IACH,IAAMmuI,EAAaruI,EAAOM,QACpB4f,EAAQ,eAAQngB,GAiBtB,OAhByB,GAArBsuI,EAAWtlH,OACbmF,IAAQnuB,GAAO,SAAC4qB,EAAcgW,GAC5BzgB,EAASygB,GAAT,2BACKhW,GADL,IAEEyD,YAAY,OAIhBigH,EAAWngH,SAAQ,SAACyS,GAClBzgB,EAASygB,GAAT,2BACK5gC,EAAM4gC,IADX,IAEEvS,YAAY,OAKXlO,EAIT,KAAKhgB,IACH,IAAQ0qB,EAAa5qB,EAAOM,QAApBsqB,SACR,OAAOmzF,IAAKh+G,EAAO6qB,GAIrB,QACE,OAAO7qB,IAuOXw/B,MAlOY,WAAyB,IAAxBx/B,EAAuB,uDAAf,GAAIC,EAAW,uCACpC,OAAQA,EAAOC,MAEb,KAAKC,IACH,IAAQq/B,EAAUv/B,EAAOM,QAAjBi/B,MACR,OAAOs6E,IAAMt6E,GAGf,KAAKr/B,IACH,IAAQq/B,EAAUv/B,EAAOM,QAAjBi/B,MACR,OAAO+yB,IAAK,GAAD,mBAAKvyD,GAAL,YAAew/B,KAE5B,KAAKr/B,IACH,MAA2BF,EAAOM,QAA1B0tC,EAAR,EAAQA,MAAOrjB,EAAf,EAAeA,QACf,OAAO5qB,EAAMgiB,KAAI,SAAC4e,GAAD,OAAgBA,IAAcqN,EAAQrjB,EAAQgW,UAAYA,KAI7E,KAAKzgC,IACH,IAAMyqB,EAAU3qB,EAAOM,QACvB,MAAM,GAAN,mBAAWP,GAAX,CAAkB4qB,EAAQgW,YAI5B,KAAKzgC,IACH,IAAQ8tC,EAAUhuC,EAAOM,QAAjB0tC,MACR,OAAOjuC,EAAMs8B,QAAO,SAACs4I,GAAD,OAAoBA,IAAmB3mI,KAI7D,KAAK9tC,IACH,IAAMyqB,EAAU3qB,EAAOM,QACvB,OAAOqqB,EAAQ+pJ,mBAAqB/pJ,EAAQ+pJ,mBAAqB/pJ,EAAQgW,UACrE5gC,EAAMs8B,QAAO,SAACs4I,GAAD,OAAoBhqJ,EAAQ+pJ,mBAAqBC,KAC9D50K,EAIN,KAAKG,IACH,IAAQ0qB,EAAa5qB,EAAOM,QAApBsqB,SACR,OAAO7qB,EAAMs8B,QAAO,SAACs4I,GAAD,OAAoB/pJ,EAAS06E,QAAQqvE,GAAkB,KAI7E,QACE,OAAO50K,IAsLX60K,WAjKiB,WAA4B,IAA3B70K,EAA0B,wDAAXC,EAAW,uCAC5C,OAAQA,EAAOC,MACb,KAAKC,IACH,OAAO,EAET,KAAKA,IACL,KAAKA,IACH,OAAO,EAET,QACE,OAAOH,IAwJX47G,eAjLqB,WAA4B,IAA3B57G,EAA0B,wDAAXC,EAAW,uCAChD,OAAQA,EAAOC,MACb,KAAKC,IACH,OAAO,EAET,KAAKA,IACL,KAAKA,IACH,OAAO,EAET,QACE,OAAOH,IAwKXo+G,SApJe,WAA4B,IAA3Bp+G,EAA0B,wDAAXC,EAAW,uCAC1C,OAAQA,EAAOC,MACb,KAAKkgB,IACH,OAAO,EAET,KAAKjgB,IACH,OAAO,EAET,KAAKA,IACL,KAAKA,IACH,OAAO,EAET,QACE,OAAOH,IAwIXq+G,UAnIgB,WAA4B,IAA3Br+G,EAA0B,wDAAXC,EAAW,uCAC3C,OAAQA,EAAOC,MACb,KAAKkgB,IACH,OAAO,EAET,KAAKjgB,IACH,OAAO,EAET,KAAKA,IACL,KAAKA,IACH,OAAO,EAET,QACE,OAAOH,IAuHXs+G,WAlHiB,WAA4B,IAA3Bt+G,EAA0B,wDAAXC,EAAW,uCAC5C,OAAQA,EAAOC,MACb,KAAKkgB,IACH,OAAO,EAET,KAAKjgB,IACH,OAAO,EAET,KAAKA,IACL,KAAKA,IACH,OAAO,EAET,QACE,OAAOH,IAsGX80K,cAjFoB,WAA2B,IAA1B90K,EAAyB,uDAAjB,KAAMC,EAAW,uCAC9C,OAAQA,EAAOC,MACb,KAAKC,IACH,IAAQ4B,EAAU9B,EAAOM,QAAjBwB,MACR,OAAOA,EAET,KAAK5B,IACL,KAAKA,IACH,OAAO,KAET,QACE,OAAOH,IAuEX87G,kBAlGwB,WAA2B,IAA1B97G,EAAyB,uDAAjB,KAAMC,EAAW,uCAClD,OAAQA,EAAOC,MACb,KAAKC,IACH,IAAQ4B,EAAU9B,EAAOM,QAAjBwB,MACR,OAAOA,EAET,KAAK5B,IACL,KAAKA,IACH,OAAO,KAET,QACE,OAAOH,IAwFXw+G,YAnEkB,WAA2B,IAA1Bx+G,EAAyB,uDAAjB,KAAMC,EAAW,uCAC5C,OAAQA,EAAOC,MACb,KAAKkgB,IACH,OAAO,KAET,KAAKjgB,IACH,IAAQ4B,EAAU9B,EAAOM,QAAjBwB,MACR,OAAOA,EAET,KAAK5B,IACL,KAAKA,IACH,OAAO,KAET,QACE,OAAOH,IAsDXy+G,aAjDmB,WAA2B,IAA1Bz+G,EAAyB,uDAAjB,KAAMC,EAAW,uCAC7C,OAAQA,EAAOC,MACb,KAAKkgB,IACH,OAAO,KAET,KAAKjgB,IACH,IAAQ4B,EAAU9B,EAAOM,QAAjBwB,MACR,OAAOA,EAET,KAAK5B,IACL,KAAKA,IACH,OAAO,KAET,QACE,OAAOH,IAoCX0+G,cA/BoB,WAA2B,IAA1B1+G,EAAyB,uDAAjB,KAAMC,EAAW,uCAC9C,OAAQA,EAAOC,MACb,KAAKkgB,IACH,OAAO,KAET,KAAKjgB,IACH,IAAQ4B,EAAU9B,EAAOM,QAAjBwB,MACR,OAAOA,EAET,KAAK5B,IACL,KAAKA,IACH,OAAO,KAET,QACE,OAAOH,IAkBXizC,qBAGI90B,EAAS9d,YAAgB,CAC7BwqB,WACAtM,sBAGaJ,MAGR,IAAM1b,EAAc,SAACzC,GAAD,OAAWA,EAAMme,OAAO0M,UAGtCkqJ,EAAa,SAAC/0K,EAAO4gC,GAAR,OAAsBn+B,EAAYzC,GAAO25G,KAAK/4E,IAC3Do0I,EAAkB,SAACh1K,GAAD,OAC7ByC,EAAYzC,GAAOw/B,MAAMxd,KAAI,SAAC5T,GAAD,OAAQ2mK,EAAW/0K,EAAOoO,OAY5C6mK,EAAqB,SAACj1K,GACjC,IAAMk1K,EAAmBF,EAAgBh1K,GAAOs8B,QAAO,SAAC1R,GAAD,OAAaA,EAAQyD,cAE5E,OAAgC,IAA5B6mJ,EAAiBlsJ,OAAqBksJ,EAAiB,GAE/C,MAKDC,EAAyB,SAACn1K,GAAD,OAAWyC,EAAYzC,GAAO47G,gBACvDw5D,EAAmB,SAACp1K,GAAD,OAAWyC,EAAYzC,GAAOq+G,WACjDg3D,EAAkB,SAACr1K,GAAD,OAAWyC,EAAYzC,GAAOo+G,W,kCC5c7D,orBAEak3D,EAAgC,eAAC/wJ,EAAD,uDAAW,GAAX,MAAmB,CAC9DrkB,KAAMC,IACNI,QAASgkB,IAEEgxJ,EAAmC,SAACr3J,EAAUshB,EAAOj6B,EAAYb,GAA9B,MAAkD,CAChGxE,KAAMC,IACNI,QAAS,CACP2d,WACAshB,QACAj6B,aACAb,oBAGS8wK,EAA+B,eAC1CzzK,EAD0C,uDAClC,CAAE+U,aAAc,QAASsL,YAAa,KADJ,MAEtC,CACJliB,KAAMC,IACNI,QAAS,CACPwB,WAIS0zK,EAAuC,SAClDjzJ,GADkD,IAElDjd,EAFkD,uDAErC,KACbb,EAHkD,uDAGjC,KAHiC,MAI9C,CACJxE,KAAMC,IACNI,QAAS,CAAEiiB,eAAcjd,aAAYb,oBAE1BgxK,EAA0C,SACrDx3J,EACAshB,EACAj6B,EACAb,GAJqD,MAKjD,CACJxE,KAAMC,IACNI,QAAS,CACP2d,WACAshB,QACAj6B,aACAb,oBAGSixK,EAAsC,eACjD5zK,EADiD,uDACzC,CAAE+U,aAAc,QAASsL,YAAa,KADG,MAE7C,CACJliB,KAAMC,IACNI,QAAS,CACPwB,WAIS6zK,EAA6B,SAAChiH,GAAD,MAAsB,CAC9D1zD,KAAMC,IACNI,QAASqzD,IAEEiiH,EAAgC,SAAC5nI,EAAO2lB,GAAR,MAA6B,CACxE1zD,KAAMC,IACNI,QAAS,CAAE0tC,QAAO2lB,qBAEPkiH,EAA4B,SAAC7nI,EAAOlsC,GAAR,MAAmB,CAC1D7B,KAAMC,IACNI,QAAS,CACP0tC,QACAlsC,WAISg0K,EAA8B,SAACniH,GAAD,MAAsB,CAC/D1zD,KAAMC,IACNI,QAASqzD,IAEEoiH,EAAiC,SAACpiH,GAAD,MAAsB,CAClE1zD,KAAMC,IACNI,QAASqzD,IAEEqiH,EAA6B,SAACxgH,EAAoB1zD,GAArB,MAAgC,CACxE7B,KAAMC,IACNI,QAAS,CACPk1D,qBACA1zD,WAISm0K,EAA+B,SAACniH,GAAD,MAAgC,CAC1E7zD,KAAMC,IACNI,QAAS,CACPwzD,uBAGSoiH,EAAkC,SAACpiH,GAAD,MAAwB,CACrE7zD,KAAMC,IACNI,QAAS,CACPwzD,uBAGSqiH,EAA8B,SAACriH,EAAmBhyD,GAApB,MAA+B,CACxE7B,KAAMC,IACNI,QAAS,CACPwzD,oBACAhyD,WAISs0K,EAA2B,SAACziH,GAAD,MAAsB,CAC5D1zD,KAAMC,IACNI,QAASqzD,IAEE0iH,EAA8B,SAAC1iH,GAAD,MAAsB,CAC/D1zD,KAAMC,IACNI,QAASqzD,IAEE2iH,EAA0B,SAACx0K,GAAD,MAAY,CACjD7B,KAAMC,IACNI,QAAS,CACPwB,WAISy0K,EAAwB,SAACziH,GAAD,MAAwB,CAC3D7zD,KAAMC,IACNI,QAASwzD,IAUE0iH,EAA0B,SAAC1iH,GAAD,MAAwB,CAC7D7zD,KAAMC,IACNI,QAASwzD,K,8BCxIX,sGAAO,IAAM2iH,EAAuB,uBACvBC,EAAyB,yBACzBC,EAAsB,uB,+OC0C7BC,EAAY,SAACxgK,GAAkB,IAAD,YAEhCquG,EAiBEruG,EAjBFquG,MACAC,EAgBEtuG,EAhBFsuG,WACA7tG,EAeET,EAfFS,aACAsyF,EAcE/yF,EAdF+yF,SAJF,EAkBI/yF,EAbFygK,kBALF,SAMEC,EAYE1gK,EAZF0gK,QACAn3B,EAWEvpI,EAXFupI,YACAh6B,EAUEvvG,EAVFuvG,SACAoxD,EASE3gK,EATF2gK,QACAC,EAQE5gK,EARF4gK,QACAC,EAOE7gK,EAPF6gK,SACAC,EAME9gK,EANF8gK,WACA50D,EAKElsG,EALFksG,MACAqG,EAIEvyG,EAJFuyG,SAdF,EAkBIvyG,EAHF+gK,mBAfF,MAegB,GAfhB,IAkBI/gK,EAFFghK,qBAhBF,MAgBkB,GAhBlB,IAkBIhhK,EADFihK,2BAjBF,MAiBwB,GAjBxB,EAmBM7tK,EAAOG,cACP2tK,EAAWjvB,iBAAY,IACvBkvB,EAAiBlvB,iBAAY,IAC7BmvB,EAASnvB,iBAAY,IACrBovB,GAAepvB,iBAAY,IAC3BpkC,GAAMokC,iBAAY,IACxB,GAAkC7b,mBAAgB,IAAlD,qBAAOkrC,GAAP,MAAkBC,GAAlB,MACA,GAA4CnrC,mBAAgB,IAA5D,qBAAOorC,GAAP,MAAuBC,GAAvB,MAEA,OACE,eAAC,IAAD,WACE,eAAC,IAAD,CAAOjyD,IAAKnB,EAAMr2G,KAAlB,UACGk0G,GAAS,cAAC,IAAD,CAAkBn0G,GAAI6oK,EAAU,eAAiB,gBAC1D7tE,GAAY,sBAAM4Z,UAAU,WAAhB,sBAEf,eAAC,IAAD,WACE,cAAC,IAAD,CAAK+0D,GAAIjB,EAAa,UAAOxoK,EAA7B,SACE,eAAC,IAAD,WACG2oK,GAAWE,GACV,qCACE,qBAAKjzD,IAAKszD,EAAgBx0D,UAAW,sBAArC,SACE,cAAC,IAAD,CACE50G,GAAI,kBACJy0G,MAAO,CAAEm1D,OAAQ,WACjBh1D,UAAW,MACX6pB,QAAS,WAAO,IAAD,EACc,IAAvB,UAAAnoB,EAAM/tG,aAAN,eAAaqS,QACfuuJ,EAASU,QAAQC,UAAUC,UAAK7pK,EAAWkpK,EAAeS,SACvD/zD,GAAI+zD,QAAQC,UAAUC,QAP/B,SAUE,cAAC,IAAD,CAAUl+J,KAAM,SAGpB,cAAC,IAAD,CACEiqG,IAAKqzD,EACL5gK,MAA8B,IAAvB,UAAA+tG,EAAM/tG,aAAN,eAAaqS,QAAc07F,EAAM/tG,MAAM,QAAKrI,EACnDs3G,SAAU,SAACjvG,GACT+tG,EAAMkB,SAAS,CAAC1d,IAAOvxF,EAAM,IAAIwxF,OAAO,oBAAqBuc,EAAM/tG,MAAM,MAE3EkuG,QAAO,aACLla,OAAwB,OAAhBlhG,EAAKkhG,OAAkBytE,UAAUC,UACzC7sE,WAAY0rE,EAAW,YAAc,QACrCF,QAASA,EACTD,QAAgC,IAAvB,UAAAryD,EAAM/tG,aAAN,eAAaqS,QAAc07F,EAAM/tG,MAAM,QAAKrI,EACrD6oK,YAAY,EACZmB,KAAM,SACNlB,YAAaA,EACbC,cAAeA,GACZC,GAELt0D,UAAW,WAEb,cAAC,IAAD,CAAqBqqB,QAAQ,QAAQH,UAAU,MAAMn8B,OAAQ,kBAA7D,SACGtnG,EAAK0E,cAAc,CAAEC,GAAI,0BAIhC,cAAC,IAAD,CACE81G,IAAKA,GACL0E,SAAUA,EACVx6G,GAAIs2G,EAAMr2G,KACV20G,UACE5Z,GAAgC,MAApBub,EAAW5iH,MACnB,yCACA,+BAEN8iH,QAAO,aACLla,OAAwB,OAAhBlhG,EAAKkhG,OAAkBytE,UAAUC,UACzC7sE,WAAY0rE,EAAW,YAAc,QACrCF,QAASA,EACTD,QAASA,EACTI,WAAYA,EACZmB,KAAMrB,EAAU,QAAU,SAC1BG,YAAaA,EACbC,cAAeA,GACZC,GAEL3gK,MAAO+tG,EAAM/tG,MACbivG,SAAU,SAACjvG,EAAO6rG,EAAG51G,GACnB,IAAKA,EAAOugI,QAAU8pC,GAA4B,IAAjBtgK,EAAMqS,OACrCk7F,GAAI+zD,QAAQC,UAAUK,cAAgB,GACtCr0D,GAAI+zD,QAAQC,UAAU1xE,QAAQ0d,GAAI+zD,QAAQC,UAAUK,oBAEpD,GAAqB,IAAjB5hK,EAAMqS,QAAiBiuJ,GAMpB,GAAqB,IAAjBtgK,EAAMqS,QAAgBiuJ,GAAWE,EAAY,CAAC,IAAD,GACtD,UAAIjzD,GAAI+zD,eAAR,aAAI,EAAaC,aACXP,GAAU3uJ,OAASrS,EAAMqS,QAC3Bk7F,GAAI+zD,QAAQC,UAAUK,cAAc,GAAG9qE,SAAS,EAAG,EAAG,EAAG,GACzDyW,GAAI+zD,QAAQC,UAAU1xE,QAAQ0d,GAAI+zD,QAAQC,UAAUK,gBAC3CZ,GAAU3uJ,OAASrS,EAAMqS,SAClCk7F,GAAI+zD,QAAQC,UAAUK,cAAc,GAAG9qE,SACrCkqE,GAAU,GAAG7qE,WACb6qE,GAAU,GAAG5qE,aACb,EACA,GAEFmX,GAAI+zD,QAAQC,UAAU1xE,QAAQ0d,GAAI+zD,QAAQC,UAAUK,iBAGxDX,GAAa,YAAIjhK,SACZ,GAAqB,IAAjBA,EAAMqS,QAAgBiuJ,EAAS,CAAC,IAAD,GACpC,UAAA/yD,GAAI+zD,eAAJ,eAAaC,YAAaf,IACxBQ,GAAU3uJ,OAAS6uJ,GAAe7uJ,QACpCk7F,GAAI+zD,QAAQC,UAAUK,cAAc,GAAG9qE,SAAS,GAAI,GAAI,EAAG,GAC3DyW,GAAI+zD,QAAQC,UAAU1xE,QAAQ0d,GAAI+zD,QAAQC,UAAUK,gBAC3CZ,GAAU3uJ,OAAS6uJ,GAAe7uJ,SAC3Ck7F,GAAI+zD,QAAQC,UAAUK,cAAc,GAAG9qE,SACrCoqE,GAAe,GAAG/qE,WAClB+qE,GAAe,GAAG9qE,aAClB,EACA,GAEFmX,GAAI+zD,QAAQC,UAAU1xE,QAAQ0d,GAAI+zD,QAAQC,UAAUK,iBAGxD7zD,EAAMkB,SACJjvG,EAAMqL,KAAI,SAACU,EAAMwU,GACf,OAAKigJ,EAISjvE,IAAOxlF,GAAMylF,OAAO,oBAHtB,IAANjxE,EACKgxE,IAAOxlF,GAAM81J,QAAQ,OAAOrwE,OAAO,oBACrCD,IAAOxlF,GAAM+1J,MAAM,OAAOtwE,OAAO,wBAI9C2vE,GAAkBnhK,GAClBihK,GAAa,YAAIjhK,SA/CiB,CAClC,IAAM+L,GACJy0J,EAAajvE,IAAOvxF,EAAM,IAAMuxF,IAAOvxF,EAAM,IAAI6hK,QAAQ,QACzDrwE,OAAOgvE,EAAa,mBAAqB,cAC3CzyD,EAAMkB,SAASljG,GACXkjG,GAAUA,EAASljG,KA8C7Bg2J,QAAS,SAAC/hK,IACHsgK,GAAWtgK,EAAMqS,OAAS,GAAG07F,EAAMkB,SAAS,MAC7CqxD,GAAWtgK,EAAMqS,OAAS,IAC5B07F,EAAMkB,SAAS,MACfgyD,GAAa,IACbE,GAAkB,QAIvBb,GAAWE,GACV,eAAC,IAAD,CAAqB9pC,QAAQ,QAAQH,UAAU,MAAMn8B,OAAQ2T,EAAMr2G,KAAnE,UACG5E,EAAK0E,cAAc,CAAEC,GAAI,qBAC1B,uBACwB,IAAvB,UAAAs2G,EAAM/tG,aAAN,eAAaqS,QAAc07F,EAAM/tG,MAAMspC,KAAK,YAAS3xC,KAGzDsxI,GACC,cAAC,IAAD,CAAqBvS,QAAQ,QAAQH,UAAU,MAAMn8B,OAAQ2T,EAAMr2G,KAAnE,SACE,cAAC,IAAD,UAAcuxI,MAGjBq3B,GAAWE,GACV,qCACE,cAAC,IAAD,CACEjzD,IAAKuzD,EACL9gK,MAA8B,IAAvB,UAAA+tG,EAAM/tG,aAAN,eAAaqS,QAAc07F,EAAM/tG,MAAM,QAAKrI,EACnDs3G,SAAU,SAACjvG,GACT+tG,EAAMkB,SAAS,CAAClB,EAAM/tG,MAAM,GAAIuxF,IAAOvxF,EAAM,IAAIwxF,OAAO,uBAE1D0c,QAAO,aACLla,OAAwB,OAAhBlhG,EAAKkhG,OAAkBytE,UAAUC,UACzC7sE,WAAY0rE,EAAW,YAAc,QACrCF,QAAgC,IAAvB,UAAAtyD,EAAM/tG,aAAN,eAAaqS,QAAc07F,EAAM/tG,MAAM,QAAKrI,EACrDyoK,QAASA,EACTI,YAAY,EACZmB,KAAM,SACNlB,YAAaA,EACbC,cAAeA,GACZC,GAELt0D,UAAW,WAEb,qBAAKkB,IAAKwzD,GAAc10D,UAAW,qBAAnC,SACE,cAAC,IAAD,CACE50G,GAAI,gBACJy0G,MAAO,CAAEm1D,OAAQ,WACjBh1D,UAAW,MACX6pB,QAAS,WAAO,IAAD,EACc,IAAvB,UAAAnoB,EAAM/tG,aAAN,eAAaqS,QACfyuJ,EAAOQ,QAAQC,UAAUC,UAAK7pK,EAAWopK,GAAaO,SACnD/zD,GAAI+zD,QAAQC,UAAUC,QAP/B,SAUE,cAAC,IAAD,CAAUl+J,KAAM,SAGpB,cAAC,IAAD,CAAqBozH,QAAQ,QAAQH,UAAU,MAAMn8B,OAAQ,gBAA7D,SACGtnG,EAAK0E,cAAc,CAAEC,GAAI,6BAMnC0oK,GACC,cAAC,IAAD,CAAKiB,GAAG,IAAIl1D,MAAO,CAAEm1D,OAAQ,WAAah1D,UAAU,QAApD,SACE,cAAC,IAAD,CACE6pB,QAAS,WACPnoB,EAAMkB,SAAS,MACXA,GAAUA,EAAS,cAMhCjB,EAAW5iH,OACV,qBAAKihH,UAAU,mBAAmBH,MAAO,CAAEC,QAAS,SAApD,UACG,UAAA6B,EAAW5iH,aAAX,eAAkB0M,UAAWqI,GAC5B,cAAC,IAAD,CAAkB1I,GAAG,+BAQjCyoK,EAAU5tD,aAAe,CACvB7f,UAAU,EACV+tE,YAAY,EACZD,UAAU,EACVtuD,UAAU,GAGGiuD,O,sCCnSf,sGAAO,IAAM8B,EAA+B,+BAC/BC,EAAiC,iCACjCC,EAA8B,+B,6BCF3C,sGAAO,IAAMC,EAA0B,0BAC1BC,EAA4B,4BAC5BC,EAAyB,0B,6BCFtC,sGAAO,IAAMC,EAAuB,uBACvBC,EAAyB,yBACzBC,EAAsB,uB,0WCkG7BC,EAAmB,SAAC/iK,GAGxB,OAFuBA,EAAfw+J,WAKN,cAAC,IAAD,UACE,cAAC,IAAD,CAAKkD,GAAG,KAAK/0D,UAAU,eAAvB,SACE,cAAC,IAAD,CAAS9oG,MAAM,UAAUD,KAAK,WAJlC,cAACo/J,EAAD,eAAoBhjK,KASlBgjK,EAAiB,SAAChjK,GAAkB,IAAD,UAErCjI,EAsCEiI,EAtCFjI,GACAkrK,EAqCEjjK,EArCFijK,QACAC,EAoCEljK,EApCFkjK,kBACAC,EAmCEnjK,EAnCFmjK,oBACAC,EAkCEpjK,EAlCFojK,qBACAryE,EAiCE/wF,EAjCF+wF,QACAsyE,EAgCErjK,EAhCFqjK,SACAC,EA+BEtjK,EA/BFsjK,UACAC,EA8BEvjK,EA9BFujK,YACAC,EA6BExjK,EA7BFwjK,qBAVF,EAuCIxjK,EA5BFyjK,oBAXF,WAWiBxrK,EAXjB,EAYEpC,GA2BEmK,EA3BFnK,KACA6tK,GA0BE1jK,EA1BF0jK,WACAC,GAyBE3jK,EAzBF2jK,OACA/yD,GAwBE5wG,EAxBF4wG,SACAgzD,GAuBE5jK,EAvBF4jK,WACAt5I,GAsBEtqB,EAtBFsqB,SACAu5I,GAqBE7jK,EArBF6jK,eACAC,GAoBE9jK,EApBF8jK,iBACAC,GAmBE/jK,EAnBF+jK,aACAC,GAkBEhkK,EAlBFgkK,oBACAC,GAiBEjkK,EAjBFikK,YACAC,GAgBElkK,EAhBFkkK,SACAC,GAeEnkK,EAfFmkK,cACAC,GAcEpkK,EAdFokK,gBACAC,GAaErkK,EAbFqkK,eACAC,GAYEtkK,EAZFskK,uBACAC,GAWEvkK,EAXFukK,aACAC,GAUExkK,EAVFwkK,cACAC,GASEzkK,EATFykK,wBAEA33D,IAOE9sG,EARF0kK,qBAQE1kK,EAPF8sG,QACA63D,GAME3kK,EANF2kK,eACAC,GAKE5kK,EALF4kK,iBACAC,GAIE7kK,EAJF6kK,aACAC,GAGE9kK,EAHF8kK,YACAC,GAEE/kK,EAFF+kK,cACAC,GACEhlK,EADFglK,cAGF,GAA6B5uC,mBAASxjC,QAAtC,qBAAOjpG,GAAP,MAAcs7K,GAAd,MACA,GAAwB7uC,oBAAkB,GAA1C,qBAAO8uC,GAAP,MAAaC,GAAb,MACA,GAA4B/uC,qBAA5B,qBAAO9hC,GAAP,MAAe8wE,GAAf,MACMC,GAAWpzB,iBAAOtoJ,IAKxB,GAAyBysI,mBAAqB,IAAIzwG,MAAlD,qBAAO95B,GAAP,MAAYy5K,GAAZ,MACA,GAA8BlvC,mBAAkC,MAAhE,qBAAO+mB,GAAP,MAAgBooB,GAAhB,MACA,GAAwCnvC,mBAAgB,IAAxD,qBAAOovC,GAAP,MAAqBC,GAArB,MACA,GAAoDrvC,mBAAgB,IAApE,qBAAOsvC,GAAP,MAA2BC,GAA3B,MACA,GAAoCvvC,mBAAc,MAAlD,qBAAOwvC,GAAP,MAAmBC,GAAnB,MACMC,GAAcC,qBAAWC,KACzBC,GAAS,OAAGpwK,SAAH,IAAGA,QAAH,EAAGA,GAAM8V,KAAI,SAAC8mF,EAAK5xE,GAAN,mBAAC,eACxB4xE,GADuB,IAE1ByzE,eAAgBrlJ,OAGlB,GAA8Bi1G,aAAY,SAACnsI,GAAD,MAAY,CACpDS,KAAI,OAAE+gB,QAAF,IAAEA,OAAF,EAAEA,cAA2BxhB,GACjCqxI,YAAW,OAAE7vH,QAAF,IAAEA,OAAF,EAAEA,iBAA8BxhB,OAFrCS,GAAR,GAAQA,KAAM4wI,GAAd,GAAcA,YAKd7rB,qBAAU,WAER,IACE,GAAIp3G,GAAMmrK,GAAqBC,IAA0C,OAAnBA,QAAmB,IAAnBA,OAAA,EAAAA,EAAqBxwJ,QAAS,EAAG,CAAC,IAAD,IAC/ErS,EAAK,UAAG8D,cAAH,iBAAG,EAAQC,oBAAX,aAAG,EAAsBC,QAAQ,OAASvM,GACrD,GAAIuI,EAAO,CAAC,IAAD,IACH6lK,EAAet3K,SAAQ,OAC3B0V,WAD2B,IAC3BA,UAD2B,EAC3BA,KAAMC,OAAY,QAAN,EAAAJ,cAAA,mBAAQC,oBAAR,eAAsBC,QAAQ,OAASvM,EAAK,cAAe,MAEzE,IAAKkrK,GAAW,KAAOkD,EAAc,CAAC,IAAD,IAC7BlpI,EAAQ0qE,eAAI,OAACpjG,WAAD,IAACA,UAAD,EAACA,KAAMC,MAAMlE,GAAQ6iK,GACjC,QAAN,EAAA/+J,cAAA,mBAAQC,oBAAR,SAAsBa,QAAQ,OAASnN,EAAvC,OAA2CwM,WAA3C,IAA2CA,UAA3C,EAA2CA,KAAMgH,UAAU0xB,QACtD,CAAC,IAAD,QACC,QAAN,EAAA74B,cAAA,mBAAQC,oBAAR,SAAsB2F,WAAW,OAASjS,GACpC,QAAN,EAAAqM,cAAA,mBAAQC,oBAAR,SAAsBa,QAAQ,OAASnN,EAAK,WAA5C,OAAwDwM,WAAxD,IAAwDA,UAAxD,EAAwDA,KAAMgH,UAAU03J,OAI9E,MAAOv3K,GACPmnB,QAAQ22B,KAAK,KACb32B,QAAQ22B,KAAK99C,MAEd,IAEHyjH,qBAAU,WACR,IACMxlH,KACF07K,GAASzD,QAAUj4K,KAGZ,OAALA,SAAK,IAALA,QAAA,EAAAA,GAAOy8K,gBAAP,OAAuBz8K,SAAvB,IAAuBA,QAAvB,EAAuBA,GAAO08K,kBAC3B,OAAL18K,SAAK,IAALA,OAAO08K,kBAET,MAAO36K,GACPmnB,QAAQ22B,KAAK,KACb32B,QAAQ22B,KAAK99C,MAEd,CAAC/B,KAGJwlH,qBAAU,WACRt8F,QAAQC,IAAI,mBAAoB0yJ,IAEhC,IAAK,IAAD,cAUA,EATF,IACO,OAAL77K,SAAK,IAALA,QAAA,EAAAA,GAAOy8K,gBAAP,OACAz8K,SADA,IACAA,QADA,EACAA,GAAO85K,gBADP,OAEAc,SAFA,IAEAA,QAFA,EAEAA,GAAc+B,qBACF,OAAZd,SAAY,IAAZA,QAAA,EAAAA,GAAc7yJ,QAAS,IACmB,KAApC,OAALhpB,SAAK,IAALA,IAAA,UAAAA,GAAO85K,oBAAP,mBAAqB1yE,eAArB,eAA8Bp+E,UAC7B,UAAA6yJ,GAAY,OAACjB,SAAD,IAACA,QAAD,EAACA,GAAc+B,0BAA3B,eAA+C91E,cAA/C,OACE7mG,SADF,IACEA,IADF,UACEA,GAAO85K,oBADT,iBACE,EAAqB1yE,QAAQ,UAD/B,aACE,EAAiCsd,QACnCk2D,GAAagC,aAAb,OAA2B58K,SAA3B,IAA2BA,IAA3B,UAA2BA,GAAO85K,oBAAlC,iBAA2B,EAAqB1yE,QAAQ,UAAxD,aAA2B,EAAiCw1E,YAE9D58K,GAAM85K,aAAa1yE,QAAU,CAC3B,CACEsd,MAAK,UAAEm3D,GAAY,OAACjB,SAAD,IAACA,QAAD,EAACA,GAAc+B,0BAA7B,aAAE,EAA+C91E,UACtD+1E,UAAS,OAAEhC,SAAF,IAAEA,QAAF,EAAEA,GAAcgC,YAG7BC,KAEF,MAAO96K,GACPmnB,QAAQ22B,KAAK,KACb32B,QAAQ22B,KAAK99C,MAEd,QAAC/B,SAAD,IAACA,QAAD,EAACA,GAAO85K,aAAR,OAAsB+B,SAAtB,IAAsBA,QAAtB,EAAsBA,GAAc7yJ,OAApC,OAA4C4xJ,SAA5C,IAA4CA,QAA5C,EAA4CA,GAAc+B,oBAE7DG,aAAqB,WAEnB,IAEiE,IAAD,EAD9D,IAAW,OAAP11E,QAAO,IAAPA,OAAA,EAAAA,EAASp+E,QAAS,EACpB,GAA2B,KAAnB,OAAJvoB,SAAI,IAAJA,QAAA,EAAAA,GAAMuE,gBAA8C,KAAnB,OAAJvE,SAAI,IAAJA,QAAA,EAAAA,GAAMuE,eACrC82K,GAAe,OACb10E,QADa,IACbA,GADa,UACbA,EACI9qE,QAAO,SAACitE,GAAD,YAAuBj7F,IAAXi7F,GAAmC,OAAXA,YAFlC,aACb,EAEIjtE,QACA,SAACitE,GAAD,aAAkB,OAANA,QAAM,IAANA,OAAA,EAAAA,EAAQ1C,cAAa,UAAC,CAAC,uBAAF,aAAC,EAAkBrhG,SAAlB,OAA2B+jG,QAA3B,IAA2BA,OAA3B,EAA2BA,EAAQ1C,qBAGtE,GAA2B,IAAnB,OAAJpmG,SAAI,IAAJA,QAAA,EAAAA,GAAMuE,eAAoB,CAAC,IAAD,EACnC82K,GAAe,OACb10E,QADa,IACbA,GADa,UACbA,EACI9qE,QAAO,SAACitE,GAAD,YAAuBj7F,IAAXi7F,GAAmC,OAAXA,YAFlC,aACb,EAEIjtE,QACA,SAACitE,GAAD,aACQ,OAANA,QAAM,IAANA,OAAA,EAAAA,EAAQ1C,cACR,UAAC,CAAC,eAAgB,2BAAlB,aAAC,EAAsCrhG,SAAtC,OAA+C+jG,QAA/C,IAA+CA,OAA/C,EAA+CA,EAAQ1C,qBAG3D,GAA2B,IAAnB,OAAJpmG,SAAI,IAAJA,QAAA,EAAAA,GAAMuE,eAAoB,CAAC,IAAD,EACnC82K,GAAe,OACb10E,QADa,IACbA,GADa,UACbA,EACI9qE,QAAO,SAACitE,GAAD,YAAuBj7F,IAAXi7F,GAAmC,OAAXA,YAFlC,aACb,EAEIjtE,QACA,SAACitE,GAAD,aACQ,OAANA,QAAM,IAANA,OAAA,EAAAA,EAAQ1C,cACR,UAAC,CAAC,eAAgB,mBAAoB,uBAAtC,aAAC,EAAsDrhG,SAAtD,OAA+D+jG,QAA/D,IAA+DA,OAA/D,EAA+DA,EAAQ1C,qBAG3E,GAA2B,IAAnB,OAAJpmG,SAAI,IAAJA,QAAA,EAAAA,GAAMuE,gBAA6C,KAAnB,OAAJvE,SAAI,IAAJA,QAAA,EAAAA,GAAMuE,eAAqB,CAAC,IAAD,EAChE82K,GAAe,OACb10E,QADa,IACbA,GADa,UACbA,EACI9qE,QAAO,SAACitE,GAAD,YAAuBj7F,IAAXi7F,GAAmC,OAAXA,YAFlC,aACb,EAEIjtE,QACA,SAACitE,GAAD,aACQ,OAANA,QAAM,IAANA,OAAA,EAAAA,EAAQ1C,cACR,UAAC,CACC,eACA,mBACA,eACA,0BAJF,aAAC,EAKErhG,SALF,OAKW+jG,QALX,IAKWA,OALX,EAKWA,EAAQ1C,qBAGI,KAAnB,OAAJpmG,SAAI,IAAJA,QAAA,EAAAA,GAAMuE,gBAA8C,IAAnB,OAAJvE,SAAI,IAAJA,QAAA,EAAAA,GAAMuE,gBAC5C82K,GAAe,OAAC10E,QAAD,IAACA,OAAD,EAACA,EAAS9qE,QAAO,SAACitE,GAAD,YAAuBj7F,IAAXi7F,GAAmC,OAAXA,MAGxE,MAAOxnG,GAEPmnB,QAAQ22B,KAAK,KACb32B,QAAQ22B,KAAK99C,MAEd,CAACtB,GAAD,OAAO2mG,QAAP,IAAOA,OAAP,EAAOA,EAASp+E,SAEnBw8F,qBAAU,WACR,IACE,GACE7kF,IACAu5I,KACS,OAAToC,SAAS,IAATA,QAAA,EAAAA,GAAWtzJ,QAAS,GACiB,oBAArC,OAAOhpB,SAAP,IAAOA,QAAP,EAAOA,GAAO+8K,oBACd,CAAC,IAAD,GACA,OAAI/8K,SAAJ,IAAIA,QAAJ,EAAIA,GAAOg9K,qBAAwB,OAALh9K,SAAK,IAALA,OAAOg9K,kBAAkB,EAAzB,OAA4BV,SAA5B,IAA4BA,QAA5B,EAA4BA,GAAWtzJ,SACrE,IAAIi0J,EAAsB,GAE1B,GAA6B,KAAb,QAAZ,EADJA,EAAY,OAAGj9K,SAAH,IAAGA,QAAH,EAAGA,GAAO+8K,4BAClB,eAAc/zJ,QAAc,CAAC,IAAD,EACxBxS,EAAK,UAAG08F,gBAAH,aAAG,EAAUgqE,eAAV,UAA4B9uK,EAA5B,eAEZ6uK,EADEzmK,EACU,OAAG8lK,SAAH,IAAGA,QAAH,EAAGA,GAAWhgJ,QAAO,SAACpwB,GAAD,sBAC/B2vK,SAD+B,IAC/BA,IAD+B,UAC/BA,GACIv/I,QAAO,SAACitE,GAAD,MAA+C,kBAA5Br9F,EAAI,OAACq9F,QAAD,IAACA,OAAD,EAACA,EAAQ1C,qBAFZ,iBAC/B,EAEI7kF,KAAI,SAACunF,GAAD,+BACJr9F,EAAI,OAACq9F,QAAD,IAACA,OAAD,EAACA,EAAQ1C,kBADT,iBACJ,EACI1B,qBAFA,iBACJ,EAEIoD,cAHA,aACJ,EAGI/iG,SAHJ,UAGagR,EAAK,aAHlB,iBAGa,EAAgB2uF,qBAH7B,aAGa,EAA+BoD,kBAPjB,aAC/B,EAQI/iG,UAAS,MAGH,sBACPm7B,IADO,mBAEP27I,SAFO,IAEPA,QAFO,EAEPA,GAAWhgJ,QACZ,SAACwsE,EAAK5xE,GAAN,cAAY,OAACyJ,SAAD,IAACA,IAAD,UAACA,GAAU3e,KAAI,SAAC8mF,GAAD,cAASA,QAAT,IAASA,OAAT,EAASA,EAAKyzE,yBAA7B,aAAC,EAA6C/2K,SAAS0xB,SAK3EgjJ,GAAe+C,IAEjB,MAAOl7K,GACPmnB,QAAQ22B,KAAK,KACb32B,QAAQ22B,KAAK99C,MAEd,CAAC43K,IAEJn0D,qBAAU,WACR,KACE,OAAIxlH,SAAJ,IAAIA,QAAJ,EAAIA,GAAOm9K,kBAAqB,OAALn9K,SAAK,IAALA,OAAOm9K,kBAC9Bx8I,IAAYu5I,IACdA,GAAe,IAEjB,MAAOn4K,GACPmnB,QAAQ22B,KAAK,KACb32B,QAAQ22B,KAAK99C,MAEd,CAAC63K,IAgBJp0D,qBAAU,WACR,IACM7a,IACF6wE,IAAQ,GACR4B,YAAW,kBAAM5B,IAAQ,KAAO,MAEhCC,GAAS,OAACU,SAAD,IAACA,QAAD,EAACA,GAAaxxE,QAEzB,MAAO5oG,GACPmnB,QAAQ22B,KAAK,KACb32B,QAAQ22B,KAAK99C,MAEd,QAACo6K,SAAD,IAACA,QAAD,EAACA,GAAaxxE,SAEjB,IAAM0yE,GAAW,OAAGxB,SAAH,IAAGA,QAAH,EAAGA,GAAc75J,KAAI,SAACs7J,GAAD,MAAU,CAC9Cz2E,UAAS,OAAEy2E,QAAF,IAAEA,OAAF,EAAEA,EAAKz2E,UAChBe,WAAU,OAAE01E,QAAF,IAAEA,OAAF,EAAEA,EAAK11E,WACjB21E,KAAI,OAAED,QAAF,IAAEA,OAAF,EAAEA,EAAKC,SAEbT,aAAqB,WACnB,IACE5zJ,QAAQC,IAAI,gCACZ0zJ,KACInD,GAAU0D,YAAW,kBAAMzB,GAAUjC,KAAW,KACpD,MAAO33K,GACPmnB,QAAQ22B,KAAK,KACb32B,QAAQ22B,KAAK99C,MAEd,CAAC23K,EAAU2D,KAEd73D,qBAAU,WACR,KACW,OAALxlH,SAAK,IAALA,QAAA,EAAAA,GAAOw9K,aAAc78I,KAClB,OAAL3gC,SAAK,IAALA,OAAOw9K,WAAP,OACE78I,SADF,IACEA,QADF,EACEA,GAAU3e,KAAI,SAAC9T,GACb,cAAOA,QAAP,IAAOA,OAAP,EAAOA,EAAQquK,oBAGjBrC,IAAgBA,GAAev5I,IACnC,MAAO5+B,GACPmnB,QAAQ22B,KAAK,MACb32B,QAAQ22B,KAAK99C,MAEd,CAACo4K,KAEJ,IAAM0C,GAAQ,WACRZ,IACFmB,YAAW,WACT1B,GAASzD,QAAQwF,aAAjB,QAAyCxB,WAAaA,GACtDC,GAAc,QACb,KAGL,OAAIl8K,SAAJ,IAAIA,QAAJ,EAAIA,GAAO09K,WAAc,OAAL19K,SAAK,IAALA,OAAO09K,WAEvB/8I,IAAYu5I,IAAgBA,GAAe,KAiD3CyD,GAAmC,OACvC3C,SADuC,IACvCA,MACCa,KAAY,OAAIA,SAAJ,IAAIA,QAAJ,EAAIA,GAAch2K,MAAK,SAAC0jG,GAAD,OAAYA,EAAOq0E,sBAAgBtvK,EAAY,CAAC,UAEtF,OAAOitK,GACL,cAAC,IAAD,CACExqE,OAAO,wBACPmT,IAAK,SAAC25D,GACAA,GACFjC,GAAWiC,IAGfC,aAAc,SAACC,GACb,GAAIA,GAAOvqB,GAAS,CAAC,IAAD,oBAQa,EAgBtB,IAvBHziD,EAAM,OAAGgtE,QAAH,IAAGA,OAAH,EAAGA,EAAKhtE,OACditE,EAAe,OAAGjtE,QAAH,IAAGA,OAAH,EAAGA,EAAQ3iG,GAC1B6vK,GAA2B,OAANltE,QAAM,IAANA,OAAA,EAAAA,EAAQmtE,aAAa,WAAY,EACtDp6D,GACD,OAAHi6D,QAAG,IAAHA,GAAA,UAAAA,EAAKhtE,cAAL,mBAAaotE,qBAAb,mBAA4BA,qBAA5B,mBAA2CA,qBAA3C,mBAA0DA,qBAA1D,mBAAyEA,qBAAzE,mBACIx0K,SAAS,UADb,mBACiBA,SAAS,UAD1B,mBAC8BA,SAAS,UADvC,eAC2CA,SAASs0K,MADpD,OAEAF,QAFA,IAEAA,GAFA,UAEAA,EAAKhtE,cAFL,aAEA,EAAaotE,eACf,GAAIH,GAAmBl6D,EACrB,aAAI+3D,GAAamC,UAAjB,aAAI,EAA+BI,cACjC,IAAK,IAAIl5J,EAAQ,EAAGA,GAAK,OAAG4+F,QAAH,IAAGA,OAAH,EAAGA,EAAQu6D,mBAAmBn5J,IAAS,CAAC,IAAD,MACxDvb,EAAQ,OAAGm6G,QAAH,IAAGA,OAAH,EAAGA,EAAQn6G,SAASub,IACjB,OAAGvb,QAAH,IAAGA,OAAH,EAAGA,EAAUu0K,aAAa,iBAE9B,OACXv0K,QADW,IACXA,GADW,UACXA,EAAU20K,iBADC,aACX,EAAqBC,SAAS,aAD9B,OAEA50K,QAFA,IAEAA,GAFA,UAEAA,EACIu0K,aAAa,qBAHjB,aAEA,EAEI14K,SAFJ,UAEaq2K,GAAamC,UAF1B,aAEa,EAA+BI,kBAE5C5qB,GAAQ9jJ,QAAR,OAAkB/F,QAAlB,IAAkBA,OAAlB,EAAkBA,EAAUypG,UAC5BogD,GAAQgrB,UAAmB,OAAR70K,QAAQ,IAARA,OAAA,EAAAA,EAAUypG,WAAY,GAAK,uBAIlDogD,GAAQ9jJ,QAAR,UAAkBmsK,GAAamC,UAA/B,aAAkB,EAA+BS,YACjDjrB,GAAQgrB,UAAW,UAAA3C,GAAamC,UAAb,eAA+BS,aAAc,GAAK,mBAlC/E,UAwCe,OAAZ5C,SAAY,IAAZA,QAAA,EAAAA,GAAc7yJ,QAAS,GACtB,eAAC,IAAD,CACE5a,GAAIA,EAEJswK,mBAAmB,EACnBv7D,OAAQm3D,QAAchsK,EAAY60G,GAClCw7D,SAAU,SAAC9qE,GACT,IACE,GAAIA,GAAyB,cAAX,OAALA,QAAK,IAALA,OAAA,EAAAA,EAAOxlG,MAAqB,CAAC,IAAD,IACjC+4F,EAAO,OAAGyM,QAAH,IAAGA,OAAH,EAAGA,EAAO+qE,QACvBx3E,EAAO,OAACyM,QAAD,IAACA,OAAD,EAACA,EAAOgrE,YAAf,OAA6BhrE,QAA7B,IAA6BA,OAA7B,EAA6BA,EAAOl9F,MACpCulK,GAAa,OAACl8K,SAAD,IAACA,IAAD,UAACA,GAAOy9K,oBAAR,iBAAC,EAAqB/tK,eAAtB,aAAC,EAA8BusK,YACxClC,IAAYA,GAAW3yE,IAE7B,MAAOrlG,GACPmnB,QAAQ22B,KAAK,MACb32B,QAAQ22B,KAAK99C,KAGjB+8K,QAAS,SAACjrE,GACR,IACMmmE,IAAQA,GAAOnmE,GACnB,MAAO9xG,GACPmnB,QAAQ22B,KAAK,MACb32B,QAAQ22B,KAAK99C,KAGjBw3K,kBAAmBA,EACnBE,uBACEoC,OACa,OAAZA,SAAY,IAAZA,QAAA,EAAAA,GAAch2K,MAAK,SAAC0jG,GAAD,cAAYA,QAAZ,IAAYA,OAAZ,EAAYA,EAAQq0E,mBAA0B,OAATtB,SAAS,IAATA,QAAA,EAAAA,GAAWtzJ,SAAU,OAE1EywJ,EAEN9uE,OAAgC,QAAb,OAAXwxE,SAAW,IAAXA,QAAA,EAAAA,GAAaxxE,QAAkB,QAA/B,OAAyCwxE,SAAzC,IAAyCA,QAAzC,EAAyCA,GAAaxxE,OAC9Do0E,WAAU,OAAEzC,SAAF,IAAEA,QAAF,EAAEA,GAAWt6J,KAAI,SAAC8mF,EAAK5xE,GAAN,yBAAC,eACvB4xE,GADsB,OAEtB+yE,SAFsB,IAEtBA,IAFsB,UAEtBA,GACCv/I,QAAO,SAACghJ,GAAD,MAAuB,cAAX,OAAHA,QAAG,IAAHA,OAAA,EAAAA,EAAKp9K,gBAHA,aAEtB,EAEC0jD,QACA,SAACsiD,EAAK1rF,GAAN,cACEyuF,aADF,IACEA,YADF,EACEA,OAAQ+1E,OAAO94E,EAAf+C,OAAA,IAAAA,CAAA,UACGzuF,QADH,IACGA,OADH,EACGA,EAAMqsF,UAAYiC,EAAG,OAACtuF,QAAD,IAACA,OAAD,EAACA,EAAMqsF,WAAa,IAAI7qE,KAAK8sE,EAAG,OAACtuF,QAAD,IAACA,OAAD,EAACA,EAAMqsF,YAAc,SAE/E,QAGNo4E,UAAW,aACXC,YAAa,SAACrrE,IA3IP,SAACA,GACd,GAAIlzE,IAAYu5I,GAAgB,CACI,IAAD,KAAjC,OAAIx5J,YAAJ,IAAIA,WAAJ,EAAIA,MAAOswF,QAAP,OAAe6C,QAAf,IAAeA,OAAf,EAAeA,EAAO3nG,QACf,OAAL2nG,QAAK,IAALA,GAAA,UAAAA,EAAO3nG,YAAP,eAAa8c,QAAS,EACxBkxJ,GAAe,GAAD,mBACTv5I,IADS,mBAETkzE,QAFS,IAETA,GAFS,UAETA,EAAO3nG,YAFE,aAET,EAAaowB,QACd,SAACwsE,GAAD,cAAS,OAACnoE,SAAD,IAACA,IAAD,UAACA,GAAU3e,KAAI,SAAC8mF,GAAD,cAASA,QAAT,IAASA,OAAT,EAASA,EAAKyzE,yBAA7B,aAAC,EAA6C/2K,SAA7C,OAAsDsjG,QAAtD,IAAsDA,OAAtD,EAAsDA,EAAKyzE,uBAIzErC,GAAe,GAAD,mBACTv5I,IADS,mBAET27I,SAFS,IAETA,QAFS,EAETA,GAAWhgJ,QACZ,SAACwsE,EAAK5xE,GAAN,eACO,OAAL28E,QAAK,IAALA,GAAA,UAAAA,EAAOsrE,kBAAP,eAAmB35K,SAAS0xB,OAC5B,OAACyJ,SAAD,IAACA,IAAD,UAACA,GAAU3e,KAAI,SAAC8mF,GAAD,cAASA,QAAT,IAASA,OAAT,EAASA,EAAKyzE,yBAA7B,aAAC,EAA6C/2K,SAA7C,OAAsDsjG,QAAtD,IAAsDA,OAAtD,EAAsDA,EAAKyzE,4BAG3CjuK,KAAX,OAALulG,QAAK,IAALA,OAAA,EAAAA,EAAO3nG,MAChBguK,GAAe,GAAD,mBAAKv5I,IAAL,mBAAkB27I,SAAlB,IAAkBA,QAAlB,EAAkBA,GAAWhgJ,QAAO,SAACwsE,EAAK5xE,GAAN,OAAYA,KAAC,OAAK28E,QAAL,IAAKA,OAAL,EAAKA,EAAO9K,gBACxEmxE,GAAe,GAAD,mBAAKv5I,IAAL,QAAekzE,QAAf,IAAeA,OAAf,EAAeA,EAAO3nG,QACrC+6G,IAAUA,GAASpT,IAsHjBtyF,CAAOsyF,IAETurE,cAAe,SAACvrE,IApHP,SAACA,GACZlzE,IAAYu5I,MACd,OAAIx5J,YAAJ,IAAIA,WAAJ,EAAIA,MAAOswF,QAAP,OAAe6C,QAAf,IAAeA,OAAf,EAAeA,EAAO3nG,OACxBguK,GAAc,OACZv5I,SADY,IACZA,QADY,EACZA,GAAUrE,QACR,SAACwsE,GAAD,gBAAS,OAAC+K,QAAD,IAACA,GAAD,UAACA,EAAO3nG,YAAR,iBAAC,EAAa8V,KAAI,SAAC8mF,GAAD,cAASA,QAAT,IAASA,OAAT,EAASA,EAAKyzE,yBAAhC,aAAC,EAAgD/2K,SAAhD,OAAyDsjG,QAAzD,IAAyDA,OAAzD,EAAyDA,EAAKyzE,qBAI5ErC,GAAc,OACZv5I,SADY,IACZA,QADY,EACZA,GAAUrE,QACR,SAACwsE,GAAD,iBACK,OAAHA,QAAG,IAAHA,OAAA,EAAAA,EAAKyzE,mBAAL,iBACC1oE,QADD,IACCA,GADD,UACCA,EAAO3nG,YADR,aACC,EAAaqwK,sBADd,kBACgCD,GAAS,OAACzoE,QAAD,IAACA,OAAD,EAACA,EAAO9K,iBADjD,aACgC,EAA4BwzE,oBAGhEtC,IAAYA,GAAWpmE,IAqGrBwrE,CAASxrE,IAEXqQ,IAAK,SAACA,GACAi3D,IAAaA,GAAYj3D,GAC7Bo3D,GAAYp3D,IAEdo2D,YAAaA,GACbgF,aAAc,CACZ/E,SAAUd,EAAuB,IAAMc,GACvCgF,YAAazE,GAAuB,OAChC/2E,WADgC,IAChCA,UADgC,EAChCA,KAAMkK,MAAM6sE,GAA0B,IAA3B,OAAiCP,SAAjC,IAAiCA,MAAY,UACxDjsK,GAENksK,cAAeA,GACfH,oBAAqBA,GACrBY,iBAAkBA,GAClBR,gBAAiBA,GACjBC,eAAgBA,GAChB8E,eAAgB,CACdp4E,QAASyyE,EACT35K,KAAM,QAERk6K,aAAcA,GACdN,aACEA,IAEI+B,GAAa,GACb,CACEz0E,QAAS,CAAC,CAAEsd,MAAK,UAAEm3D,GAAa,UAAf,aAAE,EAAiBh1E,UAAW+1E,UAAW,oBAE5DtuK,GAEN4sK,aAAcA,GACdl4D,WAAW26D,KAAkB,OAAPA,SAAO,IAAPA,OAAS30J,QAAa,qBAC5C20J,QAASA,GACT8B,eAAgB,CACdnH,KAAM,QAERoH,kBACE/E,GACI,CACEgF,+BAA+B,EAC/Bz/K,KAAM,iBAERoO,EAENsxK,iBAC6B,MAA3B9E,GAAkCA,IAAuB,OAAIP,SAAJ,IAAIA,MAAY,SAAMjsK,EAEjFuxK,UAAW,WACT,IAAK,IAAD,GACoB,OAAlB9D,SAAkB,IAAlBA,QAAA,EAAAA,GAAoB/yJ,QAAS,IAAK,UAAA+yJ,GAAmB,UAAnB,eAAuB/yJ,QAAS,IAChE+yJ,GAAmB,IAChB,OAAL/7K,SAAK,IAALA,OAAOw9K,WAAWzB,GAAmB,IACrCC,GAAsB,KACjBA,GAAsB,CAACD,GAAmB,IAAI,KAEvD,MAAOh6K,GACPmnB,QAAQ22B,KAAK,UACb32B,QAAQ22B,KAAK99C,KAGjB+9K,aAAc,CACZlC,cACgB,OAAd5C,SAAc,IAAdA,QAAA,EAAAA,GAAgBx1K,SAAS,UACxBq2K,KAAY,OAAIA,SAAJ,IAAIA,QAAJ,EAAIA,GAAch2K,MAAK,SAAC0jG,GAAD,cAAYA,QAAZ,IAAYA,OAAZ,EAAYA,EAAQq0E,iBAC1DmC,YAAW,OAAE/E,SAAF,IAAEA,QAAF,EAAEA,GAAgBx1K,SAAS,OACtCw6K,cAAa,OAAEhF,SAAF,IAAEA,QAAF,EAAEA,GAAgBx1K,SAAS,UACxC8yK,KAAM,SAER+C,cAAeA,GACfD,cAAeA,GA1HjB,UA4HE,eAAC,IAAD,kBACGS,SADH,IACGA,QADH,EACGA,GAAc75J,KAAI,SAACunF,EAAQryE,GAAT,2BACX,OAANqyE,QAAM,IAANA,OAAA,EAAAA,EAAQnC,WAAiB,OAANmC,QAAM,IAANA,GAAA,UAAAA,EAAQnC,eAAR,eAAiBp+E,QAAS,EAC3C,cAAC,IAAD,CACE6+E,iBAAgB,OAAE0B,QAAF,IAAEA,OAAF,EAAEA,EAAQ1B,iBAC1BD,aACS,OAAN2B,QAAM,IAANA,OAAA,EAAAA,EAAQxC,eACA,OAANwC,QAAM,IAANA,OAAA,EAAAA,EAAQ3B,YAAR,UACG/9F,qBADH,aACG,EAAWsE,cAAc,CAAEC,GAAE,OAAEm7F,QAAF,IAAEA,OAAF,EAAEA,EAAQ3B,aACvC,OACC,OAAN2B,QAAM,IAANA,OAAA,EAAAA,EAAQsnC,SACC,OAANtnC,QAAM,IAANA,OAAA,EAAAA,EAAQxC,cAAR,OAAsBwC,QAAtB,IAAsBA,OAAtB,EAAsBA,EAAQ3B,YAC5B,WACiCt5F,IAAhC+iI,GAAW,OAAC9nC,QAAD,IAACA,OAAD,EAACA,EAAQsnC,QACjBQ,GAAW,OAAC9nC,QAAD,IAACA,OAAD,EAACA,EAAQsnC,QADvB,OAEGtnC,QAFH,IAEGA,OAFH,EAEGA,EAAQsnC,QACZ,SACgCviI,IAAhC+iI,GAAW,OAAC9nC,QAAD,IAACA,OAAD,EAACA,EAAQsnC,QACpBQ,GAAW,OAAC9nC,QAAD,IAACA,OAAD,EAACA,EAAQsnC,QADpB,OAEAtnC,QAFA,IAEAA,OAFA,EAEAA,EAAQsnC,OACV,IAGNzpC,QAAO,OAAEmC,QAAF,IAAEA,GAAF,UAAEA,EAAQnC,eAAV,aAAE,EAAiBplF,KAAI,SAACi+J,EAAeC,GAAhB,yBACf,OAAbD,QAAa,IAAbA,OAAA,EAAAA,EAAe74E,WAAwB,OAAb64E,QAAa,IAAbA,GAAA,UAAAA,EAAe74E,eAAf,eAAwBp+E,QAAS,EACvD,CACEm3J,SAAS,EACTt4E,iBAAgB,OAAEo4E,QAAF,IAAEA,OAAF,EAAEA,EAAep4E,iBACjCD,aACgB,OAAbq4E,QAAa,IAAbA,OAAA,EAAAA,EAAel5E,eACA,OAAbk5E,QAAa,IAAbA,OAAA,EAAAA,EAAer4E,YAAf,UACG/9F,qBADH,aACG,EAAWsE,cAAc,CAAEC,GAAE,OAAE6xK,QAAF,IAAEA,OAAF,EAAEA,EAAer4E,aAC9C,OACQ,OAAbq4E,QAAa,IAAbA,OAAA,EAAAA,EAAepvC,SACC,OAAbovC,QAAa,IAAbA,OAAA,EAAAA,EAAel5E,cAAf,OAA6Bk5E,QAA7B,IAA6BA,OAA7B,EAA6BA,EAAer4E,YAC1C,WACwCt5F,IAAvC+iI,GAAW,OAAC4uC,QAAD,IAACA,OAAD,EAACA,EAAepvC,QACxBQ,GAAW,OAAC4uC,QAAD,IAACA,OAAD,EAACA,EAAepvC,QAD9B,OAEGovC,QAFH,IAEGA,OAFH,EAEGA,EAAepvC,QACnB,SACuCviI,IAAvC+iI,GAAW,OAAC4uC,QAAD,IAACA,OAAD,EAACA,EAAepvC,QAC3BQ,GAAW,OAAC4uC,QAAD,IAACA,OAAD,EAACA,EAAepvC,QAD3B,OAEAovC,QAFA,IAEAA,OAFA,EAEAA,EAAepvC,OACjB,IACN3uI,KAAkB,OAAb+9K,QAAa,IAAbA,OAAA,EAAAA,EAAep5E,aAAf,OAA4Bo5E,QAA5B,IAA4BA,OAA5B,EAA4BA,EAAen5E,WAChD5mG,KAAM+/K,EAAc//K,MAAQ,SAC5BssI,SAAiC,KAAX,OAAbyzC,QAAa,IAAbA,OAAA,EAAAA,EAAe1C,MACxBn2E,QAAO,OAAE64E,QAAF,IAAEA,GAAF,UAAEA,EAAe74E,eAAjB,aAAE,EAAwBplF,KAAI,SAACo+J,GAAD,kBAA2B,CAC9DD,SAAS,EACTj+K,IAAG,OAAEk+K,QAAF,IAAEA,OAAF,EAAEA,EAAsBv5E,UAC3B6d,MAAK,OAAE07D,QAAF,IAAEA,OAAF,EAAEA,EAAsBv5E,UAC7Byd,SAAQ,OAAE87D,QAAF,IAAEA,OAAF,EAAEA,EAAsB97D,SAChCa,SAAQ,OAAEi7D,QAAF,IAAEA,OAAF,EAAEA,EAAsBj7D,SAEhCvd,aACuB,OAApBw4E,QAAoB,IAApBA,OAAA,EAAAA,EAAsBr5E,eACA,OAApBq5E,QAAoB,IAApBA,OAAA,EAAAA,EAAsBx4E,YAAtB,UACG/9F,qBADH,aACG,EAAWsE,cAAc,CACvBC,GAAE,OAAEgyK,QAAF,IAAEA,OAAF,EAAEA,EAAsBx4E,aAE5B,OACe,OAApBw4E,QAAoB,IAApBA,OAAA,EAAAA,EAAsBvvC,SACN,OAAbovC,QAAa,IAAbA,OAAA,EAAAA,EAAel5E,cAAf,OAA6Bq5E,QAA7B,IAA6BA,OAA7B,EAA6BA,EAAsBx4E,YACjD,WAC+Ct5F,IAA9C+iI,GAAW,OAAC+uC,QAAD,IAACA,OAAD,EAACA,EAAsBvvC,QAC/BQ,GAAW,OAAC+uC,QAAD,IAACA,OAAD,EAACA,EAAsBvvC,QADrC,OAEGuvC,QAFH,IAEGA,OAFH,EAEGA,EAAsBvvC,QAC1B,SAC8CviI,IAA9C+iI,GAAW,OAAC+uC,QAAD,IAACA,OAAD,EAACA,EAAsBvvC,QAClCQ,GAAW,OAAC+uC,QAAD,IAACA,OAAD,EAACA,EAAsBvvC,QADlC,OAEAuvC,QAFA,IAEAA,OAFA,EAEAA,EAAsBvvC,OACxB,IACN+sC,aAAY,iBAAEwC,QAAF,IAAEA,OAAF,EAAEA,EAAsBxC,oBAAxB,SACZyC,aAAY,OAAED,QAAF,IAAEA,OAAF,EAAEA,EAAsBC,aACpCC,SAAQ,iBACNF,QADM,IACNA,OADM,EACNA,EAAsBE,gBADhB,QAE0B,YAAX,OAApBF,QAAoB,IAApBA,OAAA,EAAAA,EAAsBlgL,MACnB,cAC+B,aAAX,OAApBkgL,QAAoB,IAApBA,OAAA,EAAAA,EAAsBlgL,MACtB,cAC+B,cAAX,OAApBkgL,QAAoB,IAApBA,OAAA,EAAAA,EAAsBlgL,MACtB,eACA,aACNqgL,aAAY,iBAAEH,QAAF,IAAEA,OAAF,EAAEA,EAAsBG,oBAAxB,QAAwC,KACpDC,eAAc,OAAEJ,QAAF,IAAEA,OAAF,EAAEA,EAAsBI,eACtCr4E,OAAM,OAAEi4E,QAAF,IAAEA,OAAF,EAAEA,EAAsBK,aAC9BvgL,MAA0B,OAApBkgL,QAAoB,IAApBA,OAAA,EAAAA,EAAsBlgL,OAAQ,SACpCwgL,kBAAkD,aAAX,OAApBN,QAAoB,IAApBA,OAAA,EAAAA,EAAsBlgL,MACzCygL,SAAQ,OAAEP,QAAF,IAAEA,OAAF,EAAEA,EAAsBO,SAChC94E,kBAAsC,OAApBu4E,QAAoB,IAApBA,OAAA,EAAAA,EAAsBv4E,kBAAtB,OACdu4E,QADc,IACdA,OADc,EACdA,EAAsBv4E,iBACtB,CACEC,OAA2B,OAApBs4E,QAAoB,IAApBA,OAAA,EAAAA,EAAsBQ,YACzB,aACA,iBACJxyK,GAAI8oB,EAAI,IAAMgpJ,GAEpB1zC,SAAwC,KAAX,OAApB4zC,QAAoB,IAApBA,OAAA,EAAAA,EAAsB7C,MAC/BsD,OAAQX,GAAC,OAAIrF,SAAJ,IAAIA,OAAkB,GAAK,YAASvsK,EAG7CwyK,KAAI,OAAEV,QAAF,IAAEA,OAAF,EAAEA,EAAsBU,KAC5BC,WAA+B,OAApBX,QAAoB,IAApBA,OAAA,EAAAA,EAAsBW,WAAtB,OACPX,QADO,IACPA,OADO,EACPA,EAAsBW,UACtB,YAGR,CACEZ,SAAS,EACTj+K,IAAG,OAAE+9K,QAAF,IAAEA,OAAF,EAAEA,EAAep5E,UACpB6d,MAAK,OAAEu7D,QAAF,IAAEA,OAAF,EAAEA,EAAep5E,UACtByd,SAAQ,OAAE27D,QAAF,IAAEA,OAAF,EAAEA,EAAe37D,SACzBa,SAAQ,OAAE86D,QAAF,IAAEA,OAAF,EAAEA,EAAe96D,SAEzBvd,aACgB,OAAbq4E,QAAa,IAAbA,OAAA,EAAAA,EAAel5E,eACA,OAAbk5E,QAAa,IAAbA,OAAA,EAAAA,EAAer4E,YAAf,UACG/9F,qBADH,aACG,EAAWsE,cAAc,CAAEC,GAAE,OAAE6xK,QAAF,IAAEA,OAAF,EAAEA,EAAer4E,aAC9C,OACQ,OAAbq4E,QAAa,IAAbA,OAAA,EAAAA,EAAepvC,SACC,OAAbovC,QAAa,IAAbA,OAAA,EAAAA,EAAel5E,cAAf,OAA6Bk5E,QAA7B,IAA6BA,OAA7B,EAA6BA,EAAer4E,YAC1C,WACwCt5F,IAAvC+iI,GAAW,OAAC4uC,QAAD,IAACA,OAAD,EAACA,EAAepvC,QACxBQ,GAAW,OAAC4uC,QAAD,IAACA,OAAD,EAACA,EAAepvC,QAD9B,OAEGovC,QAFH,IAEGA,OAFH,EAEGA,EAAepvC,QACnB,SACuCviI,IAAvC+iI,GAAW,OAAC4uC,QAAD,IAACA,OAAD,EAACA,EAAepvC,QAC3BQ,GAAW,OAAC4uC,QAAD,IAACA,OAAD,EAACA,EAAepvC,QAD3B,OAEAovC,QAFA,IAEAA,OAFA,EAEAA,EAAepvC,OACjB,IACN+sC,aAAY,iBAAEqC,QAAF,IAAEA,OAAF,EAAEA,EAAerC,oBAAjB,SACZyC,aAAY,OAAEJ,QAAF,IAAEA,OAAF,EAAEA,EAAeI,aAC7BC,SAAQ,iBACNL,QADM,IACNA,OADM,EACNA,EAAeK,gBADT,QAEmB,YAAX,OAAbL,QAAa,IAAbA,OAAA,EAAAA,EAAe//K,MACZ,cACwB,aAAX,OAAb+/K,QAAa,IAAbA,OAAA,EAAAA,EAAe//K,MACf,cACwB,cAAX,OAAb+/K,QAAa,IAAbA,OAAA,EAAAA,EAAe//K,MACf,eACA,aACNqgL,aAAY,iBAAEN,QAAF,IAAEA,OAAF,EAAEA,EAAeM,oBAAjB,QAAiC,KAC7CC,eAAc,OAAEP,QAAF,IAAEA,OAAF,EAAEA,EAAeO,eAC/Br4E,OAAM,OAAE83E,QAAF,IAAEA,OAAF,EAAEA,EAAeQ,aACvBvgL,MAAmB,OAAb+/K,QAAa,IAAbA,OAAA,EAAAA,EAAe//K,OAAQ,SAC7BwgL,kBAA2C,aAAX,OAAbT,QAAa,IAAbA,OAAA,EAAAA,EAAe//K,MAClCygL,SAAQ,OAAEV,QAAF,IAAEA,OAAF,EAAEA,EAAeU,SACzB94E,kBAAwB,OAAN0B,QAAM,IAANA,OAAA,EAAAA,EAAQ1B,kBACtB,CACEC,MAAO,kCACP15F,GAAI8oB,EAAI,IAAMgpJ,GAEhB,CACEp4E,OAAa,OAANyB,QAAM,IAANA,OAAA,EAAAA,EAAQq3E,YAAa,aAAe,iBAC3CxyK,GAAI8oB,EAAI,IAAMgpJ,GAEpB1zC,SAAiC,KAAX,OAAbyzC,QAAa,IAAbA,OAAA,EAAAA,EAAe1C,MACxBsD,OAAQX,GAAC,OAAIrF,SAAJ,IAAIA,OAAkB,GAAK,YAASvsK,EAG7CwyK,KAAI,OAAEb,QAAF,IAAEA,OAAF,EAAEA,EAAea,KACrBC,WAAwB,OAAbd,QAAa,IAAbA,OAAA,EAAAA,EAAec,WAAf,OAA2Bd,QAA3B,IAA2BA,OAA3B,EAA2BA,EAAec,UAAY,aA3I9D,OAANx3E,QAAM,IAANA,OAAA,EAAAA,EAAQ1C,aAAR,OAAqB0C,QAArB,IAAqBA,OAArB,EAAqBA,EAAQzC,YAgJpC,cAAC,IAAD,CACEq5E,SAAS,EAETz7D,MAAK,OAAEnb,QAAF,IAAEA,OAAF,EAAEA,EAAQ1C,UACfyd,SAAQ,OAAE/a,QAAF,IAAEA,OAAF,EAAEA,EAAQ+a,SAClBa,SAAQ,OAAE5b,QAAF,IAAEA,OAAF,EAAEA,EAAQ4b,SAElBvd,aACS,OAAN2B,QAAM,IAANA,OAAA,EAAAA,EAAQxC,eACA,OAANwC,QAAM,IAANA,OAAA,EAAAA,EAAQ3B,YAAR,UACG/9F,qBADH,aACG,EAAWsE,cAAc,CAAEC,GAAE,OAAEm7F,QAAF,IAAEA,OAAF,EAAEA,EAAQ3B,aACvC,OACC,OAAN2B,QAAM,IAANA,OAAA,EAAAA,EAAQsnC,SACC,OAANtnC,QAAM,IAANA,OAAA,EAAAA,EAAQxC,cAAR,OAAsBwC,QAAtB,IAAsBA,OAAtB,EAAsBA,EAAQ3B,YAC5B,WACiCt5F,IAAhC+iI,GAAW,OAAC9nC,QAAD,IAACA,OAAD,EAACA,EAAQsnC,QACjBQ,GAAW,OAAC9nC,QAAD,IAACA,OAAD,EAACA,EAAQsnC,QADvB,OAEGtnC,QAFH,IAEGA,OAFH,EAEGA,EAAQsnC,QACZ,SACgCviI,IAAhC+iI,GAAW,OAAC9nC,QAAD,IAACA,OAAD,EAACA,EAAQsnC,QACpBQ,GAAW,OAAC9nC,QAAD,IAACA,OAAD,EAACA,EAAQsnC,QADpB,OAEAtnC,QAFA,IAEAA,OAFA,EAEAA,EAAQsnC,OACV,IAEN+sC,aAAY,iBAAEr0E,QAAF,IAAEA,OAAF,EAAEA,EAAQq0E,oBAAV,SACZyC,aAAY,OAAE92E,QAAF,IAAEA,OAAF,EAAEA,EAAQ82E,aACtBC,SAAQ,iBACN/2E,QADM,IACNA,OADM,EACNA,EAAQ+2E,gBADF,QAEY,YAAX,OAAN/2E,QAAM,IAANA,OAAA,EAAAA,EAAQrpG,MACL,cACiB,aAAX,OAANqpG,QAAM,IAANA,OAAA,EAAAA,EAAQrpG,MACR,cACiB,cAAX,OAANqpG,QAAM,IAANA,OAAA,EAAAA,EAAQrpG,MACR,eACA,aAENqgL,aAAY,iBAAEh3E,QAAF,IAAEA,OAAF,EAAEA,EAAQg3E,oBAAV,QAA0B,KACtCC,eAAc,OAAEj3E,QAAF,IAAEA,OAAF,EAAEA,EAAQi3E,eACxBr4E,OAAM,OAAEoB,QAAF,IAAEA,OAAF,EAAEA,EAAQk3E,aAChBvgL,MAAY,OAANqpG,QAAM,IAANA,OAAA,EAAAA,EAAQrpG,OAAQ,SACtBwgL,kBAAoC,aAAX,OAANn3E,QAAM,IAANA,OAAA,EAAAA,EAAQrpG,MAC3BygL,SAAQ,OAAEp3E,QAAF,IAAEA,OAAF,EAAEA,EAAQo3E,SAClB94E,kBACQ,OAAN0B,QAAM,IAANA,OAAA,EAAAA,EAAQ1B,kBAAR,OACI0B,QADJ,IACIA,OADJ,EACIA,EAAQ1B,iBACR,CACEC,OAAa,OAANyB,QAAM,IAANA,OAAA,EAAAA,EAAQq3E,YAAa,aAAe,iBAC3CxyK,GAAI8oB,GAGZs1G,SAA0B,KAAX,OAANjjC,QAAM,IAANA,OAAA,EAAAA,EAAQg0E,MACjBsD,OAAQ3pJ,GAAC,OAAI2jJ,SAAJ,IAAIA,OAAkB,GAAK,YAASvsK,EAC7C0yK,cAAe,SAACt8D,EAAOx4G,GAAR,OACP,OAANq9F,QAAM,IAANA,OAAA,EAAAA,EAAQpB,QAAR,OAAiBoB,QAAjB,IAAiBA,OAAjB,EAAiBA,EAAQpB,OAAOj8F,EAAKw4G,IAAUx4G,EAAKw4G,IAEtDo8D,KAAI,OAAEv3E,QAAF,IAAEA,OAAF,EAAEA,EAAQu3E,KACdC,WAAiB,OAANx3E,QAAM,IAANA,OAAA,EAAAA,EAAQw3E,WAAR,OAAoBx3E,QAApB,IAAoBA,OAApB,EAAoBA,EAAQw3E,UAAY,QAxDrD,iBAEOx3E,QAFP,IAEOA,OAFP,EAEOA,EAAQ1C,iBAFf,eAE4B0C,QAF5B,IAE4BA,OAF5B,EAE4BA,EAAQzC,cAxK1C,OAkOG+0E,SAlOH,IAkOGA,IAlOH,UAkOGA,GACGv/I,QAAO,SAACitE,GAAD,cAAYA,QAAZ,IAAYA,OAAZ,EAAYA,EAAQ60E,wBAnOjC,aAkOG,EAEGp8J,KAAI,SAACunF,GAAD,OACJ,cAAC,IAAD,CACE1B,iBAAgB,OAAE0B,QAAF,IAAEA,OAAF,EAAEA,EAAQ1B,iBAC1Bs4E,SAAS,EAETz7D,MAAK,OAAEnb,QAAF,IAAEA,OAAF,EAAEA,EAAQ60E,cACfuC,SAAQ,OAAEp3E,QAAF,IAAEA,OAAF,EAAEA,EAAQ03E,gBAClBz0C,SAAS,GANX,OAGOjjC,QAHP,IAGOA,OAHP,EAGOA,EAAQ60E,qBAOF,IAAlBvD,IACC,cAAC,IAAD,UACE,cAAC,IAAD,UACGgB,KACW,OAAZA,SAAY,IAAZA,IAAA,UAAAA,GAAcv/I,QAAO,SAACitE,GAAD,cAAYA,QAAZ,IAAYA,OAAZ,EAAYA,EAAQ23E,wBAAzC,eAAyDl4J,QAAS,EAChE,cAAC,IAAD,iBACG6yJ,SADH,IACGA,IADH,UACGA,GACGv/I,QAAO,SAACitE,GAAD,cAAYA,QAAZ,IAAYA,OAAZ,EAAYA,EAAQ23E,wBAFjC,aACG,EAEGl/J,KAAI,SAACunF,GAAD,OACJ,cAAC,IAAD,CAEEmb,MAAK,OAAEnb,QAAF,IAAEA,OAAF,EAAEA,EAAQ1C,UACf3mG,KAAI,OAAEqpG,QAAF,IAAEA,OAAF,EAAEA,EAAQ23E,cACdC,iBAAuB,OAAN53E,QAAM,IAANA,OAAA,EAAAA,EAAQ63E,yBAAqB9yK,EAC9C+yK,eAAgB,SAAChrK,GAAD,eACd,2CACGxM,qBADH,aACG,EAAWsE,cAAc,CACxBC,IAAU,OAANm7F,QAAM,IAANA,OAAA,EAAAA,EAAQ+3E,gBAAiB,uBAAiB/3E,QAAjB,IAAiBA,OAAjB,EAAiBA,EAAQ23E,iBAF1D,IAII,IACyB,aAApB,OAAN33E,QAAM,IAANA,OAAA,EAAAA,EAAQ23E,eAAR,UACG7qK,EAAK,OAACkzF,QAAD,IAACA,OAAD,EAACA,EAAQ23E,sBADjB,aACG,EAA8B98E,QAAQ,GACtC/tF,EAAK,OAACkzF,QAAD,IAACA,OAAD,EAACA,EAAQ23E,oBAbxB,OACO33E,QADP,IACOA,OADP,EACOA,EAAQ1C,gBAmBrB,cAAC,IAAD,UACE,cAAC,IAAD,CACE6d,MAAOm3D,GAAa,GAAb,UAAkBA,GAAa,UAA/B,aAAkB,EAAiBh1E,eAAYv4F,EACtDpO,KAAM,QACNmhL,eAAgB,SAAChrK,GAAD,aACd,2CACGxM,qBADH,aACG,EAAWsE,cAAc,CAAEC,GAAI,sBADlC,YAC4DiI,QAD5D,IAC4DA,OAD5D,EAC4DA,EAAOkrK,kBASjF,cAAC,IAAD,CACEC,SAAU,CACRC,IACAC,IACAC,IACAC,IACA7zB,IACA8zB,IACAC,IACAC,IACAC,IACAC,IACAC,IACAC,IACAC,IACAC,IACAC,SAvaN,OAEOpgL,SAFP,IAEOA,QAFP,EAEOA,GAAKogB,cA4ahB,cAAC,IAAD,UACE,cAAC,IAAD,CAAKy1J,GAAG,KAAK/0D,UAAU,eAAvB,SACE,cAAC,IAAD,CAAS9oG,MAAM,UAAUD,KAAK,YAMtCm/J,EAAMnwD,aAAe,CACnBswD,mBAAmB,EACnBC,oBAAqB,CACnB,mBACA,iBACA,iBACA,iBACA,gBAEFC,sBAAsB,EACtB5E,YAAY,EACZuF,cAAc,EACdE,aAAa,EACbC,SAAU,GACVF,qBAAqB,EACrBG,eAAe,EACfE,gBAAgB,EAChBD,iBAAiB,EACjBG,aAAc,CACZ+B,kBAAmB,EACnBC,UAAW,aAEbjC,wBAAwB,EACxBE,cAAe,EACf13D,OAAQ,IACR68D,eAAe,EACf5E,eAAe,GAGFhC,O,kZCvlBT35J,EAAUpf,YAAgB,CAC9Bs5G,KA5XW,WAAyB,IAAxB35G,EAAuB,uDAAf,GAAIC,EAAW,uCACnC,OAAQA,EAAOC,MAEb,KAAKC,IACL,KAAKA,IACH,MAA4BF,EAAOM,QAA3B2d,EAAR,EAAQA,SAAUshB,EAAlB,EAAkBA,MACZrf,EAAQ,eAAQngB,GAStB,OARAw/B,EAAMrR,SAAQ,SAAC8/B,GACb9tC,EAAS8tC,GAAT,qCACE5/B,YAAY,GACTruB,EAAMiuD,IACN/vC,EAAS+vC,IAHd,IAIE93C,aAAa,OAGVgK,EAGT,KAAKhgB,IACH,MAA0BF,EAAOM,QAAzB0tC,EAAR,EAAQA,MAAO0f,EAAf,EAAeA,OACTxtC,EAAW69F,IAAKh+G,EAAOiuC,GAM7B,OALA9tB,EAASwtC,EAAOM,UAAhB,uCACKjuD,EAAMiuC,IACN0f,GAFL,IAGEx3C,aAAa,IAERgK,EAGT,KAAKhgB,IACH,IAAQwtD,EAAW1tD,EAAOM,QAAlBotD,OACR,OAAO,2BACF3tD,GADL,kBAEG2tD,EAAOM,SAFV,uCAGO+vD,IAAKh+G,EAAM2tD,EAAOM,UAAW,CAAC,eAC9B+vD,IAAKrwD,EAAQ,CAAC,eAJrB,IAKIx3C,aAAa,MAKnB,KAAKqlG,IACL,KAAKA,IAAyC,IAAD,EACnC7tD,EAAW1tD,EAAOM,QAAlBotD,OACFxtC,EAAQ,eAAQngB,GAOtB,OANAmgB,EAASwtC,EAAOM,UAAhB,qCACE5/B,YAAY,GADd,UAEMlO,EAASwtC,EAAOM,iBAFtB,QAEmC,IAC9BN,GAHL,IAIEx3C,aAAa,IAERgK,EAIT,KAAKhgB,IACH,IAAMwtD,EAAS1tD,EAAOM,QAChB4f,EAAQ,eAAQngB,GAMtB,OALAmgB,EAASwtC,EAAOM,UAAhB,yBACE5/B,YAAY,GACTs/B,GAFL,IAGEx3C,aAAa,IAERgK,EAET,KAAKhgB,IACH,IAAMwtD,EAAS1tD,EAAOM,QACtB,OAAO,2BACFP,GADL,kBAEG2tD,EAAOM,SAFV,uCAGOjuD,EAAM2tD,EAAOM,WAHpB,IAIIa,UAAW9uD,EAAM2tD,EAAOM,WACrBN,GALP,IAMIx3C,aAAa,MAMnB,KAAKhW,IACH,IAAQ8tC,EAAUhuC,EAAOM,QAAjB0tC,MACR,OAAIjuC,EAAMiuC,GACD+vE,IAAKh+G,EAAOiuC,GAEdjuC,EAET,KAAKG,IACH,IAAQ2uD,EAAc7uD,EAAOM,QAArBuuD,UACR,OAAO,2BACF9uD,GADL,kBAEG8uD,EAAUb,SAFb,uCAGO+vD,IAAKh+G,EAAM8uD,EAAUb,UAAW,CAAC,eACjCa,GAJP,IAKI34C,aAAa,MAMnB,KAAKhW,IACH,IAAQ8tD,EAAahuD,EAAOM,QAApB0tD,SACR,OAAO+vD,IAAKh+G,EAAOiuD,GAIrB,KAAK9tD,IACH,IAAM8tD,EAAWhuD,EAAOM,QAClB4f,EAAQ,2BACTngB,GADS,kBAEXiuD,EAFW,2BAGPjuD,EAAMiuD,IAHC,IAIV5/B,YAAY,MAGhB,OAAOlO,EAGT,KAAKhgB,IACH,IAAM8tD,EAAWhuD,EAAOM,QACxB,OAAO,2BACFP,GADL,kBAEGiuD,EAFH,2BAGOjuD,EAAMiuD,IAHb,IAII5/B,YAAY,MAKlB,KAAKluB,IACH,IAAMoiL,EAAYtiL,EAAOM,QACnB4f,EAAQ,eAAQngB,GAiBtB,OAhBwB,GAApBuiL,EAAUv5J,OACZmF,IAAQnuB,GAAO,SAAC2tD,EAAaM,GAC3B9tC,EAAS8tC,GAAT,2BACKN,GADL,IAEEt/B,YAAY,OAIhBk0J,EAAUp0J,SAAQ,SAAC8/B,GACjB9tC,EAAS8tC,GAAT,2BACKjuD,EAAMiuD,IADX,IAEE5/B,YAAY,OAKXlO,EAGT,KAAKhgB,IACH,IAAMoiL,EAAYtiL,EAAOM,QACnB4f,EAAQ,eAAQngB,GAiBtB,OAhBwB,GAApBuiL,EAAUv5J,OACZmF,IAAQnuB,GAAO,SAAC2tD,EAAaM,GAC3B9tC,EAAS8tC,GAAT,2BACKN,GADL,IAEEt/B,YAAY,OAIhBk0J,EAAUp0J,SAAQ,SAAC8/B,GACjB9tC,EAAS8tC,GAAT,2BACKjuD,EAAMiuD,IADX,IAEE5/B,YAAY,OAKXlO,EAIT,QACE,OAAOngB,IA+MXw/B,MA1MY,WAAyB,IAAxBx/B,EAAuB,uDAAf,GAAIC,EAAW,uCACpC,OAAQA,EAAOC,MAEb,KAAKC,IACL,KAAKA,IACH,IAAQq/B,EAAUv/B,EAAOM,QAAjBi/B,MACR,OAAO+yB,IAAK,GAAD,mBAAKvyD,GAAL,YAAew/B,KAG5B,KAAKr/B,IACH,MAA0BF,EAAOM,QAAzB0tC,EAAR,EAAQA,MAAO0f,EAAf,EAAeA,OACf,OAAO3tD,EAAMgiB,KAAI,SAACisC,GAAD,OAAeA,IAAahgB,EAAQ0f,EAAOM,SAAWA,KAGzE,KAAKutD,IACL,KAAKA,IACH,IAAQ7tD,EAAW1tD,EAAOM,QAAlBotD,OACR,OAAO4E,IAAK,GAAD,mBAAKvyD,GAAL,CAAY2tD,EAAOM,YAGhC,KAAK9tD,IACH,IAAQ8tD,EAAahuD,EAAOM,QAApB0tD,SACR,OAAOjuD,EAAMs8B,QAAO,SAACkmJ,GAAD,OAAmBA,IAAkBv0H,KAI3D,KAAK9tD,IACH,IAAMwtD,EAAS1tD,EAAOM,QACtB,MAAM,GAAN,mBAAWP,GAAX,CAAkB2tD,EAAOM,WAI3B,KAAK9tD,IACH,IAAQ8tC,EAAUhuC,EAAOM,QAAjB0tC,MACR,OAAOjuC,EAAMs8B,QAAO,SAACkmJ,GAAD,OAAmBA,IAAkBv0I,KAI3D,QACE,OAAOjuC,IAoKXm+G,sBA/I4B,WAA4B,IAA3Bn+G,EAA0B,wDAAXC,EAAW,uCACvD,OAAQA,EAAOC,MACb,KAAKC,IACH,OAAO,EAET,KAAKA,IACL,KAAKA,IACH,OAAO,EAET,QACE,OAAOH,IAsIX47G,eA/JqB,WAA4B,IAA3B57G,EAA0B,wDAAXC,EAAW,uCAChD,OAAQA,EAAOC,MACb,KAAKC,IACH,OAAO,EAET,KAAKA,IACL,KAAKA,IACH,OAAO,EAET,QACE,OAAOH,IAsJXo+G,SAlIe,WAA4B,IAA3Bp+G,EAA0B,wDAAXC,EAAW,uCAC1C,OAAQA,EAAOC,MACb,KAAKC,IACH,OAAO,EAET,KAAKA,IACL,KAAKA,IACH,OAAO,EAET,QACE,OAAOH,IAyHXq+G,UApHgB,WAA4B,IAA3Br+G,EAA0B,wDAAXC,EAAW,uCAC3C,OAAQA,EAAOC,MACb,KAAKC,IACH,OAAO,EAET,KAAKA,IACL,KAAKA,IACH,OAAO,EAET,QACE,OAAOH,IA2GXs+G,WAtGiB,WAA4B,IAA3Bt+G,EAA0B,wDAAXC,EAAW,uCAC5C,OAAQA,EAAOC,MACb,KAAKC,IACH,OAAO,EAET,KAAKA,IACL,KAAKA,IACH,OAAO,EAET,QACE,OAAOH,IA6FXu+G,yBAxE+B,WAA2B,IAA1Bv+G,EAAyB,uDAAjB,KAAMC,EAAW,uCACzD,OAAQA,EAAOC,MACb,KAAKC,IACH,IAAQ4B,EAAU9B,EAAOM,QAAjBwB,MACR,OAAOA,EAET,KAAK5B,IACL,KAAKA,IACH,OAAO,KAET,QACE,OAAOH,IA8DX87G,kBAzFwB,WAA2B,IAA1B97G,EAAyB,uDAAjB,KAAMC,EAAW,uCAClD,OAAQA,EAAOC,MACb,KAAKC,IACH,IAAQ4B,EAAU9B,EAAOM,QAAjBwB,MACR,OAAOA,EAET,KAAK5B,IACL,KAAKA,IACH,OAAO,KAET,QACE,OAAOH,IA+EXw+G,YA1DkB,WAA2B,IAA1Bx+G,EAAyB,uDAAjB,KAAMC,EAAW,uCAC5C,OAAQA,EAAOC,MACb,KAAKC,IACH,IAAQ4B,EAAU9B,EAAOM,QAAjBwB,MACR,OAAOA,EAET,KAAK5B,IACL,KAAKA,IACH,OAAO,KAET,QACE,OAAOH,IAgDXy+G,aA3CmB,WAA2B,IAA1Bz+G,EAAyB,uDAAjB,KAAMC,EAAW,uCAC7C,OAAQA,EAAOC,MACb,KAAKC,IACH,IAAQ4B,EAAU9B,EAAOM,QAAjBwB,MACR,OAAOA,EAET,KAAK5B,IACL,KAAKA,IACH,OAAO,KAET,QACE,OAAOH,IAiCX0+G,cA5BoB,WAA2B,IAA1B1+G,EAAyB,uDAAjB,KAAMC,EAAW,uCAC9C,OAAQA,EAAOC,MACb,KAAKC,IACH,IAAQ4B,EAAU9B,EAAOM,QAAjBwB,MACR,OAAOA,EAET,KAAK5B,IACL,KAAKA,IACH,OAAO,KAET,QACE,OAAOH,MAoBEyf,MAGR,IAAMhd,EAAc,SAACzC,GAAD,OAAWA,EAAMyf,SAG/BgjK,EAAY,SAACziL,EAAOiuD,GAC/B,IAAMN,EAASlrD,EAAYzC,GAAO25G,KAAK1rD,GACvC,GAAIN,EAAQ,CACV,IAAM4yD,EAAY5yD,EAAO4yD,UAAY5yD,EAAO4yD,UAAU/7G,MAAM,UAAO8J,EAC7DkyG,EAAU7yD,EAAO6yD,QAAU7yD,EAAO6yD,QAAQh8G,MAAM,UAAO8J,EACvDq9F,EAAUnqF,aAAyBxhB,GACnCqxI,EAAc7vH,iBAA6BxhB,GACjD,OAAO,2BACF2tD,GADL,IAEE4yD,UAAWA,EACPrY,KAAO,IAAIlsE,MAAOyxE,SAAS8S,EAAU,GAAIA,EAAU,GAAIA,EAAU,KAAKpY,OACpE,yBAEF75F,EACJkyG,QAASA,EACLtY,KAAO,IAAIlsE,MAAOyxE,SAAS+S,EAAQ,GAAIA,EAAQ,GAAIA,EAAQ,KAAKrY,OAAO,yBACvE75F,EACJo0K,sBAAuB/0H,EAAOg1H,gBAAP,UAChBh3E,EAAQrjG,yCAAyCqlD,EAAOg1H,iBAAiBv+E,QAAQ,GADjE,YAEjBitC,EAAY5qI,aAEd6H,EACJs0K,kBAAmBj1H,EAAOk1H,YAAP,UACZl3E,EAAQrjG,yCAAyCqlD,EAAOk1H,aAAaz+E,QAAQ,GADjE,YAEbitC,EAAY5qI,aAEd6H,EACJw0K,kBAAmBn1H,EAAOo1H,YAAP,UACZp3E,EAAQrjG,yCAAyCqlD,EAAOo1H,aAAa3+E,QAAQ,GADjE,YAEbitC,EAAY5qI,aAEd6H,MAIG00K,EAAiB,SAAChjL,GAAD,OAC5ByC,EAAYzC,GACTw/B,MAAMxd,KAAI,SAAC5T,GAAD,OAAQq0K,EAAUziL,EAAOoO,MACnCkuB,QAAO,SAACqxB,GAAD,OAAYA,EAAOs1H,aAAe,MAEjCC,EAA6B,SAACljL,EAAOsB,GAEhD,OAAO0hL,EAAehjL,GAAOs8B,QAC3B,SAACqxB,GAAD,OACErsD,KACEA,EAAWoD,gBAAkBpD,EAAWoD,iBAAmBipD,EAAOjpD,mBAClEpD,EAAWsD,YAActD,EAAWsD,aAAe+oD,EAAO/oD,eAC1DtD,EAAWwD,eAAiBxD,EAAWwD,gBAAkB6oD,EAAO7oD,mBAI3Dq+K,EAAsC,SAACnjL,EAAO8tC,EAAY8e,GAApB,OACjDo2H,EAAehjL,GAAOs8B,QACpB,SAACqxB,GAAD,OACEA,EAAOf,aAAeA,KACpBe,EAAO7f,YAAeA,GAAc6f,EAAO7f,aAAeA,OAgBrDs1I,EAAoB,SAACpjL,GAChC,IAAMqjL,EAAkBL,EAAehjL,GAAOs8B,QAAO,SAACqxB,GAAD,OAAYA,EAAOt/B,cAExE,OAA+B,IAA3Bg1J,EAAgBr6J,OAAqBq6J,EAAgB,GAE7C,MAIDC,EAA+B,SAACtjL,GAAD,OAAWyC,EAAYzC,GAAOm+G,uBAC7DolE,EAAwB,SAACvjL,GAAD,OAAWyC,EAAYzC,GAAO47G,iB,gCC7enE,+kBAEa4nE,EAAyB,eAACj/J,EAAD,uDAAW,GAAX,MAAmB,CACvDrkB,KAAMC,IACNI,QAASgkB,IAGEk/J,EAA4B,SAACvlK,EAAUshB,EAAOj6B,EAAYb,GAA9B,MAAkD,CACzFxE,KAAMC,IACNI,QAAS,CACP2d,WACAshB,QACAj6B,aACAb,oBAISg/K,EAAwB,eAAC3hL,EAAD,uDAAS,CAAE+U,aAAc,QAASsL,YAAa,KAA/C,MAA0D,CAC7FliB,KAAMC,IACNwjL,QAAS,CACP5hL,WAIS6hL,EAAgC,SAC3CphK,GAD2C,IAE3Cjd,EAF2C,uDAE9B,KACbb,EAH2C,uDAG1B,KAH0B,MAIvC,CACJxE,KAAMC,IACNI,QAAS,CAAEiiB,eAAcjd,aAAYb,oBAG1Bm/K,EAAmC,SAAC3lK,EAAUshB,EAAOj6B,EAAYb,GAA9B,MAAkD,CAChGxE,KAAMC,IACNI,QAAS,CACP2d,WACAshB,QACAj6B,aACAb,oBAISo/K,EAA+B,eAC1C/hL,EAD0C,uDAClC,CAAE+U,aAAc,QAASsL,YAAa,KADJ,MAEtC,CACJliB,KAAMC,IACNI,QAAS,CACPwB,WAISgiL,EAAsB,SAAC7pH,GAAD,MAAe,CAChDh6D,KAAMC,IACNI,QAAS25D,IAEE8pH,EAAyB,SAAC/1I,EAAOisB,GAAR,MAAsB,CAC1Dh6D,KAAMC,IACNI,QAAS,CAAE0tC,QAAOisB,cAEP+pH,EAAqB,SAACh2I,EAAOlsC,GAAR,MAAmB,CACnD7B,KAAMC,IACNI,QAAS,CACP0tC,QACAlsC,WAISmiL,EAAuB,SAAChqH,GAAD,MAAe,CACjDh6D,KAAMC,IACNI,QAAS25D,IAEEiqH,EAA0B,SAACjqH,GAAD,MAAe,CACpDh6D,KAAMC,IACNI,QAAS25D,IAEEkqH,EAAsB,SAACjpH,EAAap5D,GAAd,MAAyB,CAC1D7B,KAAMC,IACNI,QAAS,CACP46D,cACAp5D,WAISsiL,EAAwB,SAAChqH,GAAD,MAAiB,CACpDn6D,KAAMC,IACNI,QAAS,CACP85D,gBAGSiqH,EAA2B,SAACjqH,GAAD,MAAiB,CACvDn6D,KAAMC,IACNI,QAAS,CACP85D,gBAGSkqH,EAAuB,SAAClqH,EAAYt4D,GAAb,MAAwB,CAC1D7B,KAAMC,IACNI,QAAS,CACP85D,aACAt4D,WAISyiL,EAAiB,SAACnqH,GAAD,MAAiB,CAC7Cn6D,KAAMC,IACNI,QAAS85D,IAeEoqH,EAAuB,eAClCC,EADkC,uDACpB,GADoB,MACjB,CAEjBxkL,KAAMC,IACNI,QAASmkL,K,+iBCvHEC,EAAuB,eAACpgK,EAAD,uDAAW,GAAX,MAAmB,CACrDrkB,KAAMC,IACNI,QAASgkB,IAGEqgK,EAA0B,SAAC1mK,EAAUshB,GAAX,MAAsB,CAC3Dt/B,KAAMC,IACNI,QAAS,CACP2d,WACAshB,WAISqlJ,EAAsB,eAAC9iL,EAAD,uDAAS,CAAE+U,aAAc,QAASsL,YAAa,KAA/C,MAA0D,CAC3FliB,KAAMC,IACNI,QAAS,CACPwB,WA0BS+iL,EAAoB,SAAClvH,GAAD,MAAuC,CACtE11D,KAAMC,IACNI,QAASq1D,IAGEmvH,EAAuB,SAAC32K,EAAY6/B,EAAe2nB,GAA5B,MAAwC,CAC1E11D,KAAMC,IACNI,QAAS,CAAE6N,KAAI6/B,QAAO2nB,YAGXovH,EAAmB,SAAC/2I,EAAOlsC,GAAR,MAAmB,CACjD7B,KAAMC,IACNI,QAAS,CACP0tC,QACAlsC,WAISkjL,EAAqB,SAACrvH,GAAD,MAAuC,CACvE11D,KAAMC,IACNI,QAASq1D,IAGEsvH,EAAwB,SAACtvH,GAAD,MAAa,CAChD11D,KAAMC,IACNI,QAASq1D,IAGEuvH,EAAoB,SAACC,EAAWrjL,GAAZ,MAAuB,CACtD7B,KAAMC,IACNI,QAAS,CACP6kL,YACArjL,WAKSsjL,EAAmB,SAACzvH,GAAD,MAAkC,CAChE11D,KAAMC,IACNI,QAASq1D,IAGE0vH,EAAsB,SAAC1vH,GAAD,MAAa,CAC9C11D,KAAMC,IACNI,QAASq1D,IAGE2vH,EAAkB,SAACH,EAAWrjL,GAAZ,MAAuB,CACpD7B,KAAMC,IACNI,QAAS,CACP6kL,YACArjL,WAISyjL,EAAsB,SAAC10K,GAAD,MAAoD,CACrF5Q,KAAMC,IACNI,QAAQ,eACHuQ,KAIM20K,EAAyB,SAACr3K,GAAD,MAAS,CAC7ClO,KAAMC,IACNI,QAAS,CACP6N,QAISs3K,EAAqB,SAACt3K,EAAIrM,GAAL,MAAgB,CAChD7B,KAAMC,IACNI,QAAS,CACP6N,KACArM,Y,iCCzHJ,4IAiCM4jL,EAAY,SAACtvK,GAAkB,IAAD,EAEhCquG,EAYEruG,EAZFquG,MACAC,EAWEtuG,EAXFsuG,WACAvb,EAUE/yF,EAVF+yF,SACAhmD,EASE/sC,EATF+sC,QACAtsC,EAQET,EARFS,aACA8uK,EAOEvvK,EAPFuvK,QACArjE,EAMElsG,EANFksG,MACAqG,EAKEvyG,EALFuyG,SARF,EAaIvyG,EAJFygK,kBATF,WAaIzgK,EAHFwvK,gBAVF,WAaIxvK,EAFF+gK,mBAXF,MAWgB,EAXhB,IAaI/gK,EADFghK,qBAZF,MAYkB,EAZlB,EAeMyO,EAAoBv4E,YAA8B6pE,EAAaC,GAMrE,OAJA7xD,qBAAU,YACJ,OAACd,QAAD,IAACA,OAAD,EAACA,EAAO/tG,QAAO+tG,EAAMkB,SAASkgE,KACjC,IAGD,eAAC,IAAD,WACE,eAAC,IAAD,CAAOjgE,IAAKnB,EAAMr2G,KAAlB,UACGk0G,GAAS,cAAC,IAAD,CAAkBn0G,GAAI,gBAC/Bg7F,GAAY,sBAAM4Z,UAAU,WAAhB,sBAEf,eAAC,IAAD,WACE,cAAC,IAAD,CAAK+0D,GAAIjB,EAAa,UAAOxoK,EAA7B,SACE,cAAC,IAAD,CACEs6G,SAAUA,EACVx6G,GAAIs2G,EAAMr2G,KACV20G,UACsB,MAApB2B,EAAW5iH,MACP,yCACA,+BAEN8iH,QAAS,CACPla,OAA6B,OAArB9gG,cAAU8gG,OAAkBytE,UAAUC,UAC9ClB,YAAY,EACZ4O,YAAY,EACZv6E,WAAY,MACZ4rE,YAAaA,EACbC,cAAeA,EACf2O,WAAW,EACXJ,QAASA,EACTxiI,QAASA,GAEXzsC,MAAO+tG,EAAM/tG,MACbivG,SAAU,SAACjvG,GACT,IAAMsvK,EAAkBtvK,EAAM,GAC1BA,EAAMqS,OAAS,IACb68J,EAAUnhE,EAAMkB,SAAS1d,IAAO+9E,GAAW99E,OAAO,UACjDuc,EAAMkB,SAASqgE,KAGxBvN,QAAS,SAAC/hK,GACa,IAAjBA,EAAMqS,QAAc07F,EAAMwC,OAAO,WAI1C4vD,GACC,cAAC,IAAD,CAAKiB,GAAG,IAAIl1D,MAAO,CAAEm1D,OAAQ,WAAah1D,UAAU,QAApD,SACE,cAAC,IAAD,CACE6pB,QAAS,WACPnoB,EAAMkB,SAAS,cAMxBjB,EAAW5iH,OACV,qBAAKihH,UAAU,mBAAmBH,MAAO,CAAEC,QAAS,SAApD,UACG,UAAA6B,EAAW5iH,aAAX,eAAkB0M,UAAWqI,GAC5B,cAAC,IAAD,CAAkB1I,GAAG,+BAQjCu3K,EAAU18D,aAAe,CACvB7f,UAAU,EACV+tE,YAAY,EACZD,UAAU,EACVtuD,UAAU,GAGG+8D,O,6BC9GAphL,IAbK,CAClBq4C,YAAa,QACbE,aAAc,QACdE,eAAgB,QAChBkpI,eAAgB,QAChBC,cAAe,QACfC,eAAgB,QAChBC,iCAAkC,QAClCC,mBAAoB,QACpBC,gBAAiB,QACjBC,wBAAyB,U,iCCiBZC,IA3BD,CAEZ7lD,kBAAmB,wCACnBC,gBAAiB,uCACjBC,kBAAmB,yCACnBC,iBAAkB,wCAGlBa,cAAe,qCACfC,iBAAkB,wCAClBC,aAAc,oCACdC,iBAAkB,wCAGlBC,aAAc,oCAGdK,kBAAmB,wCAGnBqkD,oBAAqB,4CACrBvkD,oBAAqB,4CAGrBwkD,kBAAmB,2C,mYC2PftoK,EAAYhe,YAAgB,CAChCs5G,KA1QW,WAAyB,IAAxB35G,EAAuB,uDAAf,GAAIC,EAAW,uCACnC,OAAQA,EAAOC,MACb,KAAKkgB,IACH,MAAO,GAGT,KAAKjgB,IACH,MACEF,EAAOM,QADDqvC,EAAR,EAAQA,mCAAoCC,EAA5C,EAA4CA,gCAEtC1vB,EAAQ,eAAQngB,GAUtB,OATA6vC,EAAgC1hB,SAAQ,SAACqgB,GACvCruB,EAASquB,GAAT,qCACEngB,YAAY,EACZmgB,+BACGxuC,EAAMwuC,IACNoB,EAAmCpB,IAJxC,IAKEr4B,aAAa,OAGVgK,EAGT,KAAKymK,IACH,MAA6C3mL,EAAOM,QAA5C0tC,EAAR,EAAQA,MAAOC,EAAf,EAAeA,0BACT/tB,EAAW69F,eAAKh+G,EAAOiuC,GAM7B,OALA9tB,EAAS+tB,EAA0BM,6BAAnC,uCACKxuC,EAAMiuC,IACNC,GAFL,IAGE/3B,aAAa,IAERgK,EAGT,KAAKymK,IACH,IAAM14I,EAA4BjuC,EAAOM,QACzC,OAAO,2BACFP,GADL,kBAEGkuC,EAA0BM,4BAF7B,uCAGOwvE,eAAKh+G,EAAMkuC,EAA0BM,6BAA8B,CACpE,kCAECwvE,eAAK9vE,EAA2B,CAAC,kCANxC,IAOI/3B,aAAa,MAMnB,KAAKywK,IACH,IAAM14I,EAA4BjuC,EAAOM,QACnC4f,EAAQ,eAAQngB,GAMtB,OALAmgB,EAAS+tB,EAA0BM,6BAAnC,yBACEngB,YAAY,GACT6f,GAFL,IAGE/3B,aAAa,IAERgK,EAET,KAAKymK,IACH,IAAM14I,EAA4BjuC,EAAOM,QACzC,OAAO,2BACFP,GADL,kBAEGkuC,EAA0BM,4BAF7B,uCAGOxuC,EAAMkuC,EAA0BM,8BAHvC,IAIIF,6BACEtuC,EAAMkuC,EAA0BM,8BAC/BN,GANP,IAOI/3B,aAAa,MAMnB,KAAKywK,IACH,IAAQ34I,EAAUhuC,EAAOM,QAAjB0tC,MACR,OAAIjuC,EAAMiuC,GACD+vE,eAAKh+G,EAAOiuC,GAEdjuC,EAET,KAAK4mL,IACH,IAAQt4I,EAAiCruC,EAAOM,QAAxC+tC,6BACR,OAAO,2BACFtuC,GADL,kBAEGsuC,EAA6BzD,WAFhC,uCAGOmzE,eAAKh+G,EAAMsuC,EAA6BzD,YAAa,CAAC,kCACtDyD,GAJP,IAKIn4B,aAAa,MAMnB,KAAKywK,IACH,IAAQp4I,EAAgCvuC,EAAOM,QAAvCiuC,4BACR,OAAOwvE,eAAKh+G,EAAOwuC,GAIrB,QACE,OAAOxuC,IAuKXw/B,MAlKY,WAAyB,IAAxBx/B,EAAuB,uDAAf,GAAIC,EAAW,uCACpC,OAAQA,EAAOC,MACb,KAAKkgB,IACH,MAAO,GAGT,KAAKjgB,IACH,IAAQ0vC,EAAoC5vC,EAAOM,QAA3CsvC,gCACR,OAAOiqE,gBAAMjqE,GAGf,KAAK+2I,IACH,MAA6C3mL,EAAOM,QAA5C0tC,EAAR,EAAQA,MAAOC,EAAf,EAAeA,0BACf,OAAOluC,EAAMgiB,KAAI,SAACwsB,GAAD,OACfA,IAAgCP,EAC5BC,EAA0BM,4BAC1BA,KAIR,KAAKo4I,IACH,IAAQp4I,EAAgCvuC,EAAOM,QAAvCiuC,4BACR,OAAOxuC,EAAMs8B,QACX,SAACuqJ,GAAD,OACEA,IAAqCr4I,KAK3C,KAAKo4I,IACH,IAAM14I,EAA4BjuC,EAAOM,QACzC,MAAM,GAAN,mBAAWP,GAAX,CAAkBkuC,EAA0BM,8BAI9C,KAAKo4I,IACH,IAAQ34I,EAAUhuC,EAAOM,QAAjB0tC,MACR,OAAOjuC,EAAMs8B,QACX,SAACuqJ,GAAD,OAAsCA,IAAqC54I,KAK/E,QACE,OAAOjuC,IAuHXo+G,SAlHe,WAA4B,IAA3Bp+G,EAA0B,wDAAXC,EAAW,uCAC1C,OAAQA,EAAOC,MACb,KAAKkgB,IACH,OAAO,EAET,KAAKwmK,IACH,OAAO,EAET,KAAKA,IACL,KAAKA,IACH,OAAO,EAET,QACE,OAAO5mL,IAsGXq+G,UAjGgB,WAA4B,IAA3Br+G,EAA0B,wDAAXC,EAAW,uCAC3C,OAAQA,EAAOC,MACb,KAAKkgB,IACH,OAAO,EAET,KAAKwmK,IACH,OAAO,EAET,KAAKA,IACL,KAAKA,IACH,OAAO,EAET,QACE,OAAO5mL,IAqFXs+G,WAhFiB,WAA4B,IAA3Bt+G,EAA0B,wDAAXC,EAAW,uCAC5C,OAAQA,EAAOC,MACb,KAAKkgB,IACH,OAAO,EAET,KAAKwmK,IACH,OAAO,EAET,KAAKA,IACL,KAAKA,IACH,OAAO,EAET,QACE,OAAO5mL,IAoEXw+G,YA/DkB,WAA2B,IAA1Bx+G,EAAyB,uDAAjB,KAAMC,EAAW,uCAC5C,OAAQA,EAAOC,MACb,KAAKkgB,IACH,OAAO,KAET,KAAKwmK,IACH,IAAQ7kL,EAAU9B,EAAOM,QAAjBwB,MACR,OAAOA,EAET,KAAK6kL,IACL,KAAKA,IACH,OAAO,KAET,QACE,OAAO5mL,IAkDXy+G,aA7CmB,WAA2B,IAA1Bz+G,EAAyB,uDAAjB,KAAMC,EAAW,uCAC7C,OAAQA,EAAOC,MACb,KAAKkgB,IACH,OAAO,KAET,KAAKwmK,IACH,IAAQ7kL,EAAU9B,EAAOM,QAAjBwB,MACR,OAAOA,EAET,KAAK6kL,IACL,KAAKA,IACH,OAAO,KAET,QACE,OAAO5mL,IAgCX0+G,cA3BoB,WAA2B,IAA1B1+G,EAAyB,uDAAjB,KAAMC,EAAW,uCAC9C,OAAQA,EAAOC,MACb,KAAKkgB,IACH,OAAO,KAET,KAAKwmK,IACH,IAAQ7kL,EAAU9B,EAAOM,QAAjBwB,MACR,OAAOA,EAET,KAAK6kL,IACL,KAAKA,IACH,OAAO,KAET,QACE,OAAO5mL,MAgBEqe,MAGR,IAAM5b,EAAc,SAACzC,GAAD,OAAWA,EAAMoe,UAAUkyB,oBAAoBjyB,WAG7D+pH,EAAc,SAACpoI,EAAOwuC,GACjC,IAAM/kC,EAAOI,cACPg5G,EAAQ0C,iBAAiBrS,SAASvxF,MAClCusB,EAA4BzrC,EAAYzC,GAAO25G,KAAKnrE,GAC1D,GAAIN,EAA2B,CAC7B,IAAM8D,EAAW80I,IAA8B9mL,EAAOkuC,EAA0BJ,YAChF,OAAO,uCACFkE,GACA9D,GAFL,IAGE64I,kBAAmBlkE,EAAMmkE,iBACvB,CAAC,IAAK,IAAK,KAAKxhL,SAAS0oC,EAA0B+4I,qBAC/C,YACA,YAENC,0BAA2BrkE,EAAMmkE,iBAC/B,CAAC,IAAK,IAAK,KAAKxhL,SAAS0oC,EAA0B+4I,qBAC/C,YACA,YAENE,eAAgBj5I,EAA0B0U,UACtCn5C,EAAK0E,cAAc,CACjBC,GAAI,kBAAoB8/B,EAA0B0U,YAEpD,GACJwkI,wBAAyB,CAAC,IAAK,IAAK,IAAK,EAAG,EAAG,GAAG5hL,SAChD0oC,EAA0Bm5I,eAExB59K,EAAK0E,cAAc,CACjBC,GACE,gCAEA8/B,EAA0Bm5I,gBAE9B,GACJC,yBAA0Bp5I,EAA0B+4I,oBAChDx9K,EAAK0E,cAAc,CACjBC,GAAI,iCAAmC8/B,EAA0B+4I,sBAEnE,OAMGM,EAA0B,SAACvnL,EAAO6tC,GAAR,OAFP,SAAC7tC,GAAD,OAC9ByC,EAAYzC,GAAOw/B,MAAMxd,KAAI,SAAC5T,GAAD,OAAQg6H,EAAYpoI,EAAOoO,MAExDo6H,CAAiBxoI,GAAOs8B,QACtB,SAAC4R,GAAD,OAA+BA,EAA0BL,UAAYA,MAI5D87F,EAAmB,SAAC3pI,GAAD,OAAWyC,EAAYzC,GAAOo+G,UACjDwrB,EAAoB,SAAC5pI,GAAD,OAAWyC,EAAYzC,GAAOq+G,WAClDwrB,EAAqB,SAAC7pI,GAAD,OAAWyC,EAAYzC,GAAOs+G,YAGnDkpE,EAA0B,SAACxnL,GAAD,OAAWyC,EAAYzC,GAAOw+G,aACxDipE,EAA2B,SAACznL,GAAD,OAAWyC,EAAYzC,GAAOy+G,cACzDipE,EAA4B,SAAC1nL,GAAD,OAAWyC,EAAYzC,GAAO0+G,gB,6BC7VvE,mYAEaipE,EAA2B,eAACpjK,EAAD,uDAAW,GAAX,MAAmB,CACzDrkB,KAAMC,IACNI,QAASgkB,IAEEqjK,EAA0C,SAAC1pK,EAAUshB,GAAX,MAAsB,CAC3Et/B,KAAMC,IACNI,QAAS,CACP2d,WACAshB,WAGSqoJ,EAA0C,SAAC3pK,EAAUshB,GAAX,MAAsB,CAC3Et/B,KAAMC,IACNI,QAAS,CACP2d,WACAshB,WAGSsoJ,EAA0B,eAAC/lL,EAAD,uDAAS,CAAE+U,aAAc,QAASsL,YAAa,KAA/C,MAA0D,CAC/FliB,KAAMC,IACNI,QAAS,CACPwB,WAWSgmL,EAAyC,SAAC56I,GAAD,MAAmB,CACvEjtC,KAAMC,IACNI,QAAS,CACP4sC,kBAGS66I,EAAyC,SAAC76I,GAAD,MAAmB,CACvEjtC,KAAMC,IACNI,QAAS,CACP4sC,kBAGS86I,EAAyB,SAAC96I,EAAcprC,GAAf,MAA0B,CAC9D7B,KAAMC,IACNI,QAAS,CACP4sC,eACAprC,WAQSmmL,EAAwC,SAACzlJ,GAAD,MAAiB,CACpEviC,KAAMC,IACNI,QAASkiC,IAEE0lJ,EAAoC,SAACxlJ,EAAe5gC,GAAhB,MAA2B,CAC1E7B,KAAMC,IACNI,QAAS,CACPoiC,gBACA5gC,WAQSqmL,EAAwC,SAAC3lJ,GAAD,MAAiB,CACpEviC,KAAMC,IACNI,QAASkiC,IAEE4lJ,EAAoC,SAAC1lJ,EAAe5gC,GAAhB,MAA2B,CAC1E7B,KAAMC,IACNI,QAAS,CACPoiC,gBACA5gC,Y,6MCtBEumL,EAAiB,CACrBC,QAAS,IACTC,iBAAiB,EACjBC,qBAAqB,EACrBC,cAAc,EACdC,iBAAiB,EACjBC,oBAAoB,EACpBC,cAAc,EACdC,iBAAiB,EACjBC,qBAAqB,EACrBC,cAAc,EACdC,iBAAiB,EACjBC,oBAAoB,EACpBC,cAAc,EACdC,iBAAiB,EACjBC,qBAAqB,EACrBC,cAAc,EACdC,iBAAiB,EACjBC,oBAAoB,EACpBC,cAAc,EACd5qD,aAAa,EACbC,iBAAiB,EACjB4qD,UAAU,EACV3qD,aAAa,EACbC,gBAAgB,EAChB2qD,UAAU,EACVC,oBAAoB,EACpBC,wBAAwB,EACxBC,iBAAiB,EACjBC,oBAAoB,EACpBC,uBAAuB,EACvBC,iBAAiB,G,OCSbC,EAAgC,SAAC7zK,GAAW,IAAD,QAE7ChI,EAOEgI,EAPFhI,KACA+3G,EAME/vG,EANF+vG,QAFF,EAQI/vG,EALF8zK,wBAHF,WAQI9zK,EAJFyuG,iBAJF,WAQIzuG,EAHF4uG,kCALF,MAK+B,SAACmlE,EAAevlE,GAAhB,OAA4B,MAL3D,EAMEwlE,EAEEh0K,EAFFg0K,uBACAC,EACEj0K,EADFi0K,kBAGF,EAAiEC,YAAc,CAC7El8K,KAAMA,EAAO,cACb+3G,QAASA,EACT+jE,iBAAkBA,EAClBK,aAAY,OAAEH,QAAF,IAAEA,OAAF,EAAEA,EAAwB9kL,WACtCqjG,MAAO,CAAEQ,SAAUkhF,EAAkBzrD,cAAgByrD,EAAkB9B,mBAL1DiC,EAAf,EAAQ/lE,MAAkCgmE,EAA1C,EAA8BC,WAQ9B,EAAyEJ,YAAc,CACrFl8K,KAAMA,EAAO,kBACb+3G,QAASA,EACT+jE,iBAAkBA,EAClBK,aAAY,OAAEH,QAAF,IAAEA,OAAF,EAAEA,EAAwB3lL,eACtCkkG,MAAO,CAAEQ,SAAUkhF,EAAkBxrD,kBAAoBwrD,EAAkB7B,uBAL9DmC,EAAf,EAAQlmE,MAAsCmmE,EAA9C,EAAkCF,WAQlC,EAAiEJ,YAAc,CAC7El8K,KAAMA,EAAO,cACb+3G,QAASA,EACT+jE,iBAAkBA,EAClBK,aAAY,OAAEH,QAAF,IAAEA,OAAF,EAAEA,EAAwBzlL,WACtCgkG,MAAO,CAAEQ,SAAUkhF,EAAkBvrD,cAAgBurD,EAAkB3B,mBAL1DmC,EAAf,EAAQpmE,MAAkCqmE,EAA1C,EAA8BJ,WAQ9B,EAAuEJ,YAAc,CACnFl8K,KAAMA,EAAO,iBACb+3G,QAASA,EACT+jE,iBAAkBA,EAClBK,aAAY,OAAEH,QAAF,IAAEA,OAAF,EAAEA,EAAwBvlL,cACtC8jG,MAAO,CAAEQ,SAAUkhF,EAAkBtrD,iBAAmBsrD,EAAkB1B,sBAL7DoC,EAAf,EAAQtmE,MAAqCumE,EAA7C,EAAiCN,WAQjC,EAA2DJ,YAAc,CACvEl8K,KAAMA,EAAO,WACb+3G,QAASA,EACT+jE,iBAAkBA,EAClBK,aAAY,OAAEH,QAAF,IAAEA,OAAF,EAAEA,EAAwBxjI,QACtC+hD,MAAO,CAAEQ,SAAUkhF,EAAkBX,WAAaW,EAAkBzB,gBALvDqC,EAAf,EAAQxmE,MAA+BymE,EAAvC,EAA2BR,WAQrBlhL,EAAOG,cAEb,EAOIuiI,aAAY,SAACnsI,GAAD,YAAY,CAC1BorL,cAAel/J,IAAmClsB,GAAOgiB,KAAI,SAAC2I,GAAD,MAAe,CAC1EhU,MAAOgU,EAASplB,WAChBg9G,MAAO53F,EAASiB,iBAElBy/J,kBAAmBf,EAAkBzrD,YACjCp5H,yCAC0CzF,EAAO,CAC7CuF,WAAYklL,EAAc9zK,QAE3BqL,KAAI,SAACsK,GAAD,MAAmB,CACtB3V,MAAO2V,EAAa5nB,eACpB69G,MAAOj2F,EAAaqC,qBAExBlpB,uBAA2CzF,GAAOgiB,KAAI,SAACsK,GAAD,MAAmB,CACvE3V,MAAO2V,EAAa5nB,eACpB69G,MAAOj2F,EAAaqC,qBAE1B28J,cACEhB,EAAkBxrD,iBAAmBwrD,EAAkBiB,mBACnDxsE,yCAC0C/+G,EAAO,CAC7CuF,WAAYklL,EAAc9zK,MAC1BjS,eAAc,UAAEkmL,EAAkBj0K,aAApB,QAA6B2zK,EAAkBiB,qBAE9DvpK,KAAI,SAACqB,GAAD,MAAe,CAClB1M,MAAO0M,EAASze,WAChB29G,MAAOl/F,EAASY,iBAEpB86F,mBAAmC/+G,GAAOgiB,KAAI,SAACqB,GAAD,MAAe,CAC3D1M,MAAO0M,EAASze,WAChB29G,MAAOl/F,EAASY,iBAExBunK,iBAAkBlB,EAAkBvrD,YAChC/f,wCACyCh/G,EAAO,CAC5CuF,WAAYklL,EAAc9zK,MAC1BjS,eAAgBkmL,EAAkBj0K,MAClC/R,WAAYkmL,EAAcn0K,QAE3BqL,KAAI,SAACmP,GAAD,MAAkB,CACrBxa,MAAOwa,EAAYrsB,cACnBy9G,MAAOpxF,EAAYa,oBAEvBgtF,sBAAyCh/G,GAAOgiB,KAAI,SAACmP,GAAD,MAAkB,CACpExa,MAAOwa,EAAYrsB,cACnBy9G,MAAOpxF,EAAYa,oBAEzBy5J,WAAYnB,EAAkBZ,SAC1BgC,IAC6B1rL,EAAO,CAChCuF,WAAYklL,EAAc9zK,QAE3BqL,KAAI,SAAC1B,GAAD,MAAY,CACf3J,MAAO2J,EAAMsC,QACb2/F,MAAOjiG,EAAMwC,cAEjB4oK,IAA8B1rL,GAAOgiB,KAAI,SAAC1B,GAAD,MAAY,CACnD3J,MAAO2J,EAAMsC,QACb2/F,MAAOjiG,EAAMwC,cAEnB6oK,UAAWhvD,IAA8B38H,GAAOgiB,KAAI,SAACwQ,GAAD,MAAY,CAC9D7b,MAAO6b,EAAMq0B,QACb07D,MAAO/vF,EAAMy0B,kBArEfmkI,EADF,EACEA,cACAC,EAFF,EAEEA,kBACAC,EAHF,EAGEA,cACAE,EAJF,EAIEA,iBACAC,EALF,EAKEA,WACAE,EANF,EAMEA,UAqEFnmE,qBAAU,WACRomE,EAAc,CACZrmL,WAAYklL,EAAc9zK,MAC1BjS,eAAgBkmL,EAAkBj0K,MAClC/R,WAAYkmL,EAAcn0K,MAC1B7R,cAAekmL,EAAiBr0K,MAChCkwC,QAASqkI,EAAWv0K,UAErB,CACD8zK,EAAc9zK,MACdi0K,EAAkBj0K,MAClBm0K,EAAcn0K,MACdq0K,EAAiBr0K,MACjBu0K,EAAWv0K,QAGb,IAAMi1K,EAAgB,SAACzuJ,GACrB8nF,EAA2B9nF,EAAQmtJ,IAErC,OACE,eAAC,WAAD,WACE,cAACp8B,EAAA,EAAD,CACEqB,cAAY,EACZC,iBAAkB,CAChBjqJ,WAAYklL,EAAc9zK,MAC1BjS,eAAc,UAAEkmL,EAAkBj0K,aAApB,QAA6B2zK,EAAkBiB,oBAE/Dl9B,iBAAe,EACfC,oBAAqB,CACnB/oJ,WAAYklL,EAAc9zK,MAC1BjS,eAAc,UAAEkmL,EAAkBj0K,aAApB,QAA6B2zK,EAAkBiB,oBAE/D16B,UAAWy5B,EAAkBX,SAC7B74B,cAAe,CACbvrJ,WAAYklL,EAAc9zK,MAC1BjS,eAAc,UAAEkmL,EAAkBj0K,aAApB,QAA6B2zK,EAAkBiB,sBAGhEjB,EAAkBzrD,aACjB,cAACgtD,EAAA,EAAD,CAAK9T,GAAIuS,EAAkB/B,QAA3B,SACE,cAAC9jE,EAAA,EAAD,CACEC,MAAK,2BACA+lE,GADA,IAEH7kE,SAAU,SAACjvG,GACL8zK,EAAc9zK,QAAUA,IAC1B8zK,EAAc7kE,SAASjvG,GACvBi0K,EAAkBhlE,SAAS,MAC3BklE,EAAcllE,SAAS,MACvBolE,EAAiBplE,SAAS,MAC1BslE,EAAWtlE,SAAS,UAI1BjB,WAAY+lE,EACZ3lE,kBAAmBslE,EAAuB9kL,WAC1C6jG,UAAWkhF,EAAkB9B,gBAC7BrhE,YAAamjE,EAAkB9B,gBAC/BxjE,QAAS,WACPylE,EAAc7kE,SAAS,MACvBglE,EAAkBhlE,SAAS,MAC3BklE,EAAcllE,SAAS,MACvBolE,EAAiBplE,SAAS,MAC1BslE,EAAWtlE,SAAS,OAEtBx3G,GAAI,gBACJ02G,UAAWA,EACXjsG,WAAYyxK,EAAkBV,mBAC9B/kE,QAASumE,EACT7oE,MAAO94G,EAAK0E,cAAc,CACxBC,GAAI,uBAEN24G,YAAat9G,EAAK0E,cAAc,CAC9BC,GAAIk8K,EAAkB9B,gBAAkB,aAAe,iCAK9D8B,EAAkBxrD,iBACjB,cAAC+sD,EAAA,EAAD,CAAK9T,GAAIuS,EAAkB/B,QAA3B,SACE,cAAC9jE,EAAA,EAAD,CACEC,MAAK,2BACAkmE,GADA,IAEHhlE,SAAU,SAACjvG,GACLi0K,EAAkBj0K,QAAUA,IAC9Bi0K,EAAkBhlE,SAASjvG,GAC3Bm0K,EAAcllE,SAAS,MACvBolE,EAAiBplE,SAAS,MAC1BslE,EAAWtlE,SAAS,UAI1BjB,WAAYkmE,EACZ9lE,kBAAmBslE,EAAuB3lL,eAC1C0kG,UAAWkhF,EAAkB7B,oBAC7BthE,YAAamjE,EAAkB7B,oBAC/BzjE,QAAS,WACP4lE,EAAkBhlE,SAAS,MAC3BklE,EAAcllE,SAAS,MACvBolE,EAAiBplE,SAAS,MAC1BslE,EAAWtlE,SAAS,OAEtBx3G,GAAI,oBACJ02G,UAAWA,EACXjsG,WAAYyxK,EAAkBT,uBAC9BhlE,QAASwmE,EACT9oE,MAAO94G,EAAK0E,cAAc,CACxBC,GAAI,+BAEN24G,YAAat9G,EAAK0E,cAAc,CAC9BC,GAAIk8K,EAAkB7B,oBAClB,aACA,yCAKX6B,EAAkBvrD,aACjB,cAAC8sD,EAAA,EAAD,CAAK9T,GAAIuS,EAAkB/B,QAA3B,SACE,cAAC9jE,EAAA,EAAD,CACEC,MAAK,2BACAomE,GADA,IAEHllE,SAAU,SAACjvG,GACLm0K,EAAcn0K,QAAUA,IAC1Bm0K,EAAcllE,SAASjvG,GACvBq0K,EAAiBplE,SAAS,MAC1BslE,EAAWtlE,SAAS,UAI1BjB,WAAYomE,EACZhmE,kBAAmBslE,EAAuBzlL,WAC1CwkG,UAAWkhF,EAAkB3B,gBAC7BxhE,YAAamjE,EAAkB3B,gBAC/B3jE,QAAS,WACP8lE,EAAcllE,SAAS,MACvBolE,EAAiBplE,SAAS,MAC1BslE,EAAWtlE,SAAS,OAEtBx3G,GAAI,gBACJ02G,UAAWA,EACXjsG,WAAYyxK,EAAkBP,mBAC9BllE,QAASymE,EACT/oE,MAAO94G,EAAK0E,cAAc,CACxBC,GAAI,uBAEN24G,YAAat9G,EAAK0E,cAAc,CAC9BC,GAAIk8K,EAAkB3B,gBAAkB,aAAe,iCAK9D2B,EAAkBtrD,gBACjB,cAAC6sD,EAAA,EAAD,CAAK9T,GAAIuS,EAAkB/B,QAA3B,SACE,cAAC9jE,EAAA,EAAD,CACEC,MAAOsmE,EACPrmE,WAAYsmE,EACZlmE,kBAAmBslE,EAAuBvlL,cAC1CskG,UAAWkhF,EAAkB1B,mBAC7BzhE,YAAamjE,EAAkB1B,mBAC/Bx6K,GAAI,mBACJ02G,UAAWA,EACXjsG,WAAYyxK,EAAkBN,sBAC9BnlE,QAAS2mE,EACTjpE,MAAO94G,EAAK0E,cAAc,CACxBC,GAAI,6BAEN24G,YAAW,UACTujE,EAAkBwB,8BADT,QAETriL,EAAK0E,cAAc,CACjBC,GAAIk8K,EAAkB1B,mBAClB,aACA,uCAMb0B,EAAkBZ,UACjB,cAACmC,EAAA,EAAD,CAAK9T,GAAIuS,EAAkB/B,QAA3B,SACE,cAAC,IAAD,CACEniE,QAASA,EACT+jE,iBAAkBA,EAClB97K,KAAMA,EAAO,WACbm8K,aAAY,OAAEH,QAAF,IAAEA,OAAF,EAAEA,EAAwBznK,QACtCgmF,MAAO,CAAEQ,UAAWkhF,EAAkB5B,cACtCqD,OAAQ,gBAAGrnE,EAAH,EAAGA,MAAOimE,EAAV,EAAUA,WAAV,OACN,cAAClmE,EAAA,EAAD,CACEC,MAAOA,EACPC,WAAYgmE,EACZ5lE,kBAAmBslE,EAAuBznK,QAC1CwmF,UAAWkhF,EAAkB5B,aAC7BvhE,YAAamjE,EAAkB5B,aAC/Bt6K,GAAI,aACJ02G,UAAWA,EACXjsG,WAAYyxK,EAAkBR,gBAC9BjlE,QAAS4mE,EACTlpE,MAAO94G,EAAK0E,cAAc,CACxBC,GAAI,iBAEN24G,YAAat9G,EAAK0E,cAAc,CAC9BC,GAAIk8K,EAAkB5B,aAAe,aAAe,8BAO/D4B,EAAkBX,UACjB,cAACkC,EAAA,EAAD,CAAK9T,GAAIuS,EAAkB/B,QAA3B,SACE,cAAC9jE,EAAA,EAAD,CACEC,MAAK,2BACAwmE,GADA,IAEHtlE,SAAU,SAACjvG,GACLu0K,EAAWv0K,QAAUA,GACvBu0K,EAAWtlE,SAASjvG,MAI1BguG,WAAYwmE,EACZpmE,kBAAmBslE,EAAuBxjI,QAC1CuiD,UAAWkhF,EAAkBzB,aAC7B1hE,YAAamjE,EAAkBzB,aAC/B7jE,QAAS,WACPkmE,EAAWtlE,SAAS,OAEtBx3G,GAAI,aACJ02G,UAAWA,EACXjsG,WAAYyxK,EAAkBL,gBAC9BplE,QAAS8mE,EACTppE,MAAO94G,EAAK0E,cAAc,CACxBC,GAAI,iBAEN24G,YAAat9G,EAAK0E,cAAc,CAC9BC,GAAIk8K,EAAkBzB,aAAe,aAAe,8BAqDnDmD,IA5Ce,SAAC31K,GAC7B,MAkBIA,EAjBFwuG,eADF,MACY,GADZ,IAkBIxuG,EAhBFm0K,oBAFF,MAEiB,CACb3jI,QAAS,KACTjkC,QAAS,KACTrd,WAAY,KACZb,eAAgB,KAChBE,WAAY,KACZE,cAAe,KACf8mB,aAAc,GACd+C,iBAAkB,GAClB1K,aAAc,GACd+N,gBAAiB,GACjBlP,UAAW,GACXmkC,UAAW,IAdf,IAkBI5wC,EAFFw7I,qBAhBF,SAoBA,GAFIx7I,EADF4uG,2BD1YyB,SAACJ,EAASvxE,GAErC,MAAwCm5F,oBAAkB,GAA1D,mBAAOw/C,EAAP,KAAqBC,EAArB,KAEA,EAA4Dz/C,mBAASn5F,GAArE,mBAAO+2I,EAAP,KAA+B8B,EAA/B,KAEA,EAAkD1/C,mBAAQ,2BACrD67C,GACAzjE,IAFL,mBAAOylE,EAAP,KAA0B8B,EAA1B,KAMAtP,aAAqB,WACnBuP,EAAcxnE,KACb,CAACA,IAGJW,qBAAU,WACR8mE,IACAD,EAAc,2BACT/B,GACAgC,QAEJ,IAGH,MAAwCngD,aAAY,SAACnsI,GAAD,MAAY,CAC9DS,KAAM8rL,2BAAuCvsL,GAC7Cy8G,sBAAuBh6F,IAAsCziB,EAAO,CAClEwpE,mBACAE,6BAJIjpE,EAAR,EAAQA,KAAMg8G,EAAd,EAAcA,sBASd+I,qBAAU,WACJ/I,IACF+vE,EAAqB,2BAChBlC,GACAgC,MAELJ,GAAgB,MAEjB,CAACzvE,IAGJ,IAAM6vE,EAAwB,WAC5B,IAAIztD,EAAcyrD,EAAkBzrD,YAChCC,EAAkBwrD,EAAkBxrD,gBACpCC,EAAcurD,EAAkBvrD,YAChCC,EAAiBsrD,EAAkBtrD,eAmBvC,OAlB0B,IAAtBv+H,EAAKuE,eAA6C,IAAtBvE,EAAKuE,gBACnC65H,GAAc,GAEU,GAAtBp+H,EAAKuE,gBACP65H,GAAc,EACdC,GAAkB,GAEM,GAAtBr+H,EAAKuE,gBACP65H,GAAc,EACdC,GAAkB,EAClBC,GAAc,GAEU,GAAtBt+H,EAAKuE,eAA4C,IAAtBvE,EAAKuE,gBAClC65H,GAAc,EACdC,GAAkB,EAClBC,GAAc,EACdC,GAAiB,GAEZ,CACLH,cACAC,kBACAC,cACAC,mBAKEwtD,EAAuB,SAAClC,GAE5B,IAAImC,EAAsBpC,IAGtBC,EAAkBzrD,aAAeyrD,EAAkBxB,iBAClDwB,EAAkBlB,kBAAoB,CAAC,EAAG,IAAI5jL,SAASN,SAASzE,EAAKuE,kBACtEqlL,GAA2BA,EAAuB9kL,aAEpDknL,EAAelnL,WAAaL,SAASzE,EAAK8E,YAC1CknL,EAAe7gK,aAAenrB,EAAKmrB,gBAIjC0+J,EAAkBxrD,iBAAmBwrD,EAAkBvB,qBACtDuB,EAAkBjB,sBAChB,CAAC,EAAG,GAAI,GAAI,IAAI7jL,SAASN,SAASzE,EAAKuE,kBAC1CqlL,GAA2BA,EAAuB3lL,iBAEpD+nL,EAAe/nL,eAAiBQ,SAASzE,EAAKiE,gBAC9C+nL,EAAe99J,iBAAmBluB,EAAKkuB,oBAIrC27J,EAAkBvrD,aAAeurD,EAAkBrB,iBAClDqB,EAAkBf,kBAChB,CAAC,EAAG,EAAG,GAAI,GAAI,IAAI/jL,SAASN,SAASzE,EAAKuE,kBAC7CqlL,GAA2BA,EAAuBzlL,aAEpD6nL,EAAe7nL,WAAaM,SAASzE,EAAKmE,YAC1C6nL,EAAexoK,aAAexjB,EAAKwjB,gBAIjCqmK,EAAkBtrD,gBAAkBsrD,EAAkBpB,oBACrDoB,EAAkBd,qBAChB,CAAC,EAAG,EAAG,EAAG,GAAI,GAAI,IAAIhkL,SAASN,SAASzE,EAAKuE,kBAChDqlL,GAA2BA,EAAuBvlL,gBAEpD2nL,EAAe3nL,cAAgBI,SAASzE,EAAKqE,eAC7C2nL,EAAez6J,gBAAkBvxB,EAAKuxB,iBAExC06J,EAAYD,IAIRC,EAAc,SAACp5I,GACnB64I,EAA0B,2BACrB9B,GACA/2I,KAKD+4I,EAAgB,SAACxnE,GACrBunE,EAAqB,2BAChB9B,GACAzlE,KAIP,MAAO,CAACwlE,EAAwBC,EAAmB2B,GCkQeU,CAChE9nE,EACA2lE,IAFF,mBAAOH,EAAP,KAA+BC,EAA/B,KAAkD2B,EAAlD,KAKA,OACE,eAAC,WAAD,WACGp6B,GAAiB,cAAC3D,EAAA,EAAD,CAAeoB,cAAY,EAACG,kBAAgB,IAC7Dw8B,EACC,cAAC,EAAD,2BACM51K,GADN,IAEEg0K,uBAAwBA,EACxBC,kBAAmBA,KAGrB,cAACuB,EAAA,EAAD,CAAK9T,GAAIuS,EAAkB/B,QAASvlE,UAAU,0CAA9C,SACE,cAAC4pE,EAAA,EAAD,CAAS1yK,MAAM,UAAUD,KAAK,c,mFCzelC4yK,EAAc,SAACx2K,GAAkB,IAAD,EAElCquG,EAQEruG,EARFquG,MACAnC,EAOElsG,EAPFksG,MACAwC,EAME1uG,EANF0uG,kBAHF,EASI1uG,EALFuyG,gBAJF,SAKE3D,EAIE5uG,EAJF4uG,2BALF,EASI5uG,EAHFi2H,sBANF,MAMmB,KANnB,IASIj2H,EAFF2sG,iBAPF,MAOc,YAPd,IASI3sG,EADFy2K,qBARF,MAQkB,SAACt+D,EAAGqvD,KARtB,EAUA,EAAsCpxC,oBAAS,GAA/C,mBAAOC,EAAP,KAAoBC,EAApB,KAEAnnB,qBAAU,gBACWl3G,GAAfo2G,EAAM/tG,OAAoB8uG,EAAcf,EAAM/tG,SACjD,CAAC+tG,EAAM/tG,QAEV6uG,qBAAU,gBACiBl3G,GAArBy2G,GAAgCU,EAAcV,KACjD,CAACA,IAEJ,IAAMU,EAAgB,SAAC9uG,GACrB+tG,EAAMkB,SAASjvG,GAEXsuG,GACFA,EAA2BtuG,IAI/B,OACE,qCACE,cAAC,IAAD,CAAWqsG,UAAWA,EAAtB,SACE,cAAC,IAAD,CACE9iH,KAAK,SACLkO,GAAIs2G,EAAMr2G,KACVA,KAAMq2G,EAAMr2G,KACZk0G,MAAO,qBAAKn0G,GAAI,WAAas2G,EAAMr2G,KAA5B,SAAmCk0G,IAC1C+oC,QAAO,UAAE5mC,EAAM/tG,aAAR,QAAiB,GACxBivG,SAAU,WACRH,GAAef,EAAM/tG,OACrBm2K,GAAepoE,EAAM/tG,MAAO+tG,EAAMr2G,OAEpCu6G,SAAUA,MAGb0jB,GACC,cAAC,IAAD,CACEY,UAAU,MACVC,OAAQT,EACR37B,OAAQ,WAAa2T,EAAMr2G,KAC3B++H,OAtCO,kBAAMT,GAAgBD,IAuC7BW,QAAQ,cALV,SAOGf,QAOXugD,EAAY5jE,aAAe,CACzB1G,MAAO,GACPhsG,cAAc,GAGDs2K,O,8BCnFf,ojCAkBMhqE,EAAQ0C,iBAAiBrS,SAASvxF,MAClCorK,EAAelqE,EAAMmkE,iBAAiB,aACtCgG,EAAenqE,EAAMmkE,iBAAiB,aACtCiG,EAAcpqE,EAAMmkE,iBAAiB,YACrCkG,EAAYrqE,EAAMmkE,iBAAiB,UAE5BmG,EAA4B,SAAChtI,GACxC,OAAU,OAAHA,QAAG,IAAHA,OAAA,EAAAA,EAAKitI,gBAAiBC,IAAgBltI,EAAIitI,gBAAkB,OAExDE,EAAsB,SAACC,GAClC,OAAmB,GAAZA,EAAgBN,EAA0B,GAAZM,EAAgBP,EAAeD,GAKzDS,EAAyB,SAACrtI,GACrC,IAAMjmC,EAA2B,GAAnBimC,EAAI6C,YAAmB,SAA8B,GAAnB7C,EAAI6C,YAAmB,UAAY,UAC7EyqI,EAAa,gBAAYvzK,GAC/B,OACE,sBAEE2oG,MAAO,CACLC,QAAS,OACT4qE,WAAY,SACZC,eAAgB,UALpB,SAQE,eAAC,IAAD,CAAOzzK,MAAOuzK,EAAeG,MAAI,EAAC/qE,MAAO,CAAEC,QAAS,eAAgB6D,SAAU,QAA9E,UACE,cAAC,IAAD,CAAM93G,KAAM,cAAem0G,UAAW,QAAS/oG,KAAM,KACpDpQ,cAAUsE,cAAc,CAAEC,GAAG,iBAAD,OAAmB+xC,EAAI6C,mBATjD7C,EAAIoC,QAeFsrI,EAAiB,SAACC,GAC7B,OAAQ5oL,SAAS4oL,IACf,KAAK,EACH,MAAO,SACT,KAAK,EACH,MAAO,WACT,KAAK,EACH,MAAO,oBACT,KAAK,EACH,MAAO,cACT,KAAK,EACH,MAAO,eACT,KAAK,EACH,MAAO,SACT,KAAK,EACH,MAAO,aACT,KAAK,EACH,MAAO,QACT,KAAK,EACH,MAAO,YACT,KAAK,GACH,MAAO,QACT,KAAK,GACH,MAAO,UACT,QACE,MAAO,gBAIAC,EAAe,CAC1B,CACEC,UAAW,EACXn/K,KAAM,cAAC,IAAD,CAAMA,KAAMg/K,EAAe,GAAI7qE,UAAW,QAAS/oG,KAAM,KAC/DsoG,MAAO,kBAET,CACEyrE,UAAW,EACXn/K,KAAM,cAAC,IAAD,CAAMA,KAAMg/K,EAAe,GAAI7qE,UAAW,QAAS/oG,KAAM,KAC/DsoG,MAAO,kBAET,CACEyrE,UAAW,EACXn/K,KAAM,cAAC,IAAD,CAAMA,KAAMg/K,EAAe,GAAI7qE,UAAW,QAAS/oG,KAAM,KAC/DsoG,MAAO,kBAET,CACEyrE,UAAW,EACXn/K,KAAM,cAAC,IAAD,CAAMA,KAAMg/K,EAAe,GAAI7qE,UAAW,QAAS/oG,KAAM,KAC/DsoG,MAAO,kBAET,CACEyrE,UAAW,EACXn/K,KAAM,cAAC,IAAD,CAAMA,KAAMg/K,EAAe,GAAI7qE,UAAW,QAAS/oG,KAAM,KAC/DsoG,MAAO,kBAET,CACEyrE,UAAW,EACXn/K,KAAM,cAAC,IAAD,CAAMA,KAAMg/K,EAAe,GAAI7qE,UAAW,QAAS/oG,KAAM,KAC/DsoG,MAAO,kBAET,CACEyrE,UAAW,EACXn/K,KAAM,cAAC,IAAD,CAAMA,KAAMg/K,EAAe,GAAI7qE,UAAW,QAAS/oG,KAAM,KAC/DsoG,MAAO,kBAET,CACEyrE,UAAW,EACXn/K,KAAM,cAAC,IAAD,CAAMA,KAAMg/K,EAAe,GAAI7qE,UAAW,QAAS/oG,KAAM,KAC/DsoG,MAAO,kBAET,CACEyrE,UAAW,EACXn/K,KAAM,cAAC,IAAD,CAAMA,KAAMg/K,EAAe,GAAI7qE,UAAW,QAAS/oG,KAAM,KAC/DsoG,MAAO,kBAET,CACEyrE,UAAW,GACXn/K,KAAM,cAAC,IAAD,CAAMA,KAAMg/K,EAAe,IAAK7qE,UAAW,QAAS/oG,KAAM,KAChEsoG,MAAO,mBAET,CACEyrE,UAAW,GACXn/K,KAAM,cAAC,IAAD,CAAMA,KAAMg/K,EAAe,IAAK7qE,UAAW,QAAS/oG,KAAM,KAChEsoG,MAAO,oBAIE0rE,EAAqB,SAAC9tI,GAAwB,IAAnB+tI,IAAkB,yDACxD,OACE,8BACE,sBACErrE,MACEqrE,EACI,CACEprE,QAAS,OACT4qE,WAAY,SACZC,eAAgB,UAElB,CAAE7qE,QAAS,QARnB,SAWE,eAAC,IAAD,CAAO8qE,MAAI,EAAC1zK,MAAM,aAAa2oG,MAAO,CAAEC,QAAS,eAAgB6D,SAAU,QAA3E,UACE,cAAC,IAAD,CAAM93G,KAAMg/K,EAAe1tI,EAAI6tI,WAAYhrE,UAAW,QAAS/oG,KAAM,KACpEpQ,cAAUsE,cAAc,CACvBC,GAAG,gBAAD,OAAkB+xC,EAAI6tI,mBAftB7tI,EAAIoC,QAuBL4rI,EAA0B,SAAChuI,GACtC,OAAOA,EAAIiuI,kBACT,sBAEEvrE,MAAO,CACLC,QAAS,OACTC,cAAe,MACf2qE,WAAY,SACZC,eAAgB,UANpB,SASE,cAAC,IAAD,CAEEU,IAAKluI,EAAImuI,oBAAsBnuI,EAAImuI,yBAAsBhgL,EACzD4L,MAAM,gBACN8oG,UAAW,QACXtzG,QAAsC,MAA7BywC,EAAIouI,sBAAgC,GAAKpuI,EAAIouI,sBACtDC,UAAQ,KAdLruI,EAAIoC,OAkBX,OAISksI,EAA8B,SAACtuI,GAC1C,OAAOA,EAAIiuI,kBACT,uBAEEvrE,MAAO,CACLC,QAAS,OACTC,cAAe,MACf2qE,WAAY,SACZC,eAAgB,UANpB,UASE,cAAC,IAAD,CAEEU,IAAKluI,EAAImuI,oBAAsBnuI,EAAImuI,yBAAsBhgL,EACzD4L,MAAM,gBACN8oG,UAAW,QACXtzG,QAAsC,MAA7BywC,EAAIouI,sBAAgC,GAAKpuI,EAAIouI,sBACtDC,UAAQ,IAfZ,UAiBMruI,EAAIouI,yBAhBHpuI,EAAIoC,OAmBX,OAISmsI,EAAe,SAACvuI,GAQ3B,OANKA,EAAInX,MAGCmX,EAAInX,MAAMxkC,MAAM,KAFhB,IAKGwd,KAAI,SAACvhB,GAAD,OAAUA,EAAK+D,MAAM,KAAK,MAAIy7C,KAAK,QAGzC0uI,EAAyB,SAACxuI,GAAwB,IACzDnX,EADsCklJ,IAAkB,yDAQ5D,OAHEllJ,EAHGmX,EAAInX,MAGCmX,EAAInX,MAAMxkC,MAAM,KAFhB,GAMR,qBAEEq+G,MACEqrE,EACI,CACEprE,QAAS,OACTC,cAAe,MACf2qE,WAAY,SACZC,eAAgB,UAElB,GAVR,SAaG3kJ,EAAMhnB,KAAI,SAAC4sK,EAAWC,GACrB,IAAMpuL,EAAOmuL,EAAUpqL,MAAM,KAEvBsqL,GADWruL,EAAK,GACDA,EAAK,IACpBW,EAAeX,EAAK,GAC1B,OACE,+BACE,cAAC,IAAD,CAEE4tL,IAAoC,SAAnB,OAAZjtL,QAAY,IAAZA,OAAA,EAAAA,EAAc8P,eAA0B9P,OAAekN,EAC5D4L,MAAM,gBACN8oG,UAAW,QACXtzG,QAAyB,MAAhBo/K,EAAuB,GAAKA,EACrCN,UAAQ,KAPDK,OAlBV1uI,EAAIoC,QAkCFwsI,EAAmC,SAAC5uI,GAC/C,IAAIu4F,EAMJ,OAFEA,EAHGv4F,EAAIu4F,mBAGcv4F,EAAIu4F,mBAAmBl0I,MAAM,KAF7B,IAIGwkB,OAAS,EACjC,qBAEE65F,MAAO,CACLC,QAAS,OACTC,cAAe,SACfM,UAAW,OALf,SAUGq1B,EAAmB12H,KAAI,SAACgtK,EAAQH,GAC/B,OACE,uBAAMhsE,MAAO,CAAEQ,UAAW,OAA1B,UACE,cAAC,IAAD,CAEEgrE,SAAK//K,EACL4L,MAAM,gBACN8oG,UAAW,QACXtzG,QAASs/K,EACTR,UAAQ,IAPZ,UASMQ,KATkCH,OAXvC1uI,EAAIoC,OA0BX,OAIS0sI,EAA0B,SAAC9uI,GACtC,IAAInX,EAMJ,OAFEA,EAHGmX,EAAInX,MAGCmX,EAAInX,MAAMxkC,MAAM,KAFhB,GAKR,qBAEEq+G,MAAO,CACLC,QAAS,OACTC,cAAe,SACfM,UAAW,OALf,SAUGr6E,EAAMhnB,KAAI,SAAC4sK,EAAWC,GACrB,IAAMpuL,EAAOmuL,EAAUpqL,MAAM,KAEvBsqL,GADWruL,EAAK,GACDA,EAAK,IACpBW,EAAeX,EAAK,GAC1B,OACE,uBAAMoiH,MAAO,CAAEQ,UAAW,OAA1B,UACE,cAAC,IAAD,CAEEgrE,IAAoC,SAAnB,OAAZjtL,QAAY,IAAZA,OAAA,EAAAA,EAAc8P,eAA0B9P,OAAekN,EAC5D4L,MAAM,gBACN8oG,UAAW,QACXtzG,QAAyB,MAAhBo/K,EAAuB,GAAKA,EACrCN,UAAQ,IAPZ,UASMM,EATN,aASuBruL,EAAK,GAT5B,OAAwCouL,OAfvC1uI,EAAIoC,QAgCF2sI,EAA0B,SAAC/uI,GACtC,IAAIjhC,EAOJ,OAHEA,EAHGihC,EAAIjhC,MAGCihC,EAAIjhC,MAAM1a,MAAM,KAFhB,IAKGwkB,OAAS,EACpB,qBAEE65F,MAAO,CACLC,QAAS,OACTC,cAAe,SACfM,UAAW,OALf,SAUGnkG,EAAM8C,KAAI,SAACmtK,EAAWN,GACrB,IAAMnvK,EAAOyvK,EAAU3qL,MAAM,KAEvBytD,GADqBvyC,EAAK,GACHA,EAAK,IAC5B0vK,EAAqB1vK,EAAK,GAChC,OACE,uBAAMmjG,MAAO,CAAEQ,UAAW,OAA1B,UACE,cAAC,IAAD,CAAMx0G,KAAM,UAAWm0G,UAAW,UADpC,UAEM/wD,GAEJ,cAAC,IAAD,CACE27H,MAAI,EACJ1zK,MAAM,aACN8oG,UAAW,QACXH,MAAO,CAAEC,QAAS,eAAgB6D,SAAU,QAJ9C,SAMGyoE,MAVmCP,OAfvC1uI,EAAIoC,OAgCX,OAIS8sI,EAA0B,SAAClvI,GACtC,IAAI4D,EAOJ,OAHEA,EAHG5D,EAAI4D,MAGC5D,EAAI4D,MAAMv/C,MAAM,KAFhB,IAKGwkB,OAAS,EACpB,cAAC,IAAD,UACE,cAAC,IAAD,CAAKsmK,GAAI,KAAT,SACE,cAAC,IAAD,CACEvrI,MAAOA,EAAM/hC,KAAI,SAACutK,GAChB,IAAMC,EAAOD,EAAU/qL,MAAM,KAC7B,MAAO,CACLirL,SAAUD,EAAK,GACfE,QAASF,EAAK,GACdG,cAAeH,EAAK,YARpBrvI,EAAIoC,OAed,OAISqtI,EAAgC,SAACzvI,GAC5C,OAAO,+BAAuBA,EAAI0vI,uBAAhB1vI,EAAIoC,QAGXutI,EAAgC,SAAC3vI,GAKvC,IAAD,EACE4vI,GACD,OAAH5vI,QAAG,IAAHA,OAAA,EAAAA,EAAK6vI,sBAAL,OACA7vI,QADA,IACAA,OADA,EACAA,EAAK8vI,qBACF,OAAH9vI,QAAG,IAAHA,OAAA,EAAAA,EAAK6vI,sBAAL,OAA2B7vI,QAA3B,IAA2BA,OAA3B,EAA2BA,EAAK8vI,oBACP,GAAzB9vI,EAAI8vI,kBAIAC,EADwD,GAAzB/vI,EAAI8vI,kBAErC,gBACAF,EACA,gBACA,aACJ,OACE,+BACE,eAAC,IAAD,CACEnC,MAAI,EACJ1zK,MAAOg2K,EACPrtE,MAAO,CAAEC,QAAS,eAAgB6D,SAAU,QAH9C,UAKE,cAAC,IAAD,CAAM93G,KAAM,QAASm0G,UAAW,QAAS/oG,KAAM,KALjD,UAMGkmC,EAAIgwI,8BANP,QAMiC,OAPxBhwI,EAAIoC,QAaN6tI,EAAoB,SAACxtI,GAChC,IAAMytI,EACM,UADNA,EAEG,UAFHA,EAGO,UAHPA,EAII,UAJJA,EAKS,UALTA,EAMa,UANbA,EAOI,UAPJA,EAQQ,UARRA,EASK,UAEX,OAAQnrL,SAAS09C,IACf,KAAK,EACH,OAAOytI,EACT,KAAK,EACH,OAAOA,EACT,KAAK,EACH,OAAOA,EACT,KAAK,EACH,OAAOA,EACT,KAAK,EACH,OAAOA,EACT,KAAK,EACH,OAAOA,EACT,KAAK,EACH,OAAOA,EACT,KAAK,EACH,OAAOA,EAET,QACE,OAAOA,IAIAC,EAAyB,SAAC1tI,GACrC,OAAQ19C,SAAS09C,IACf,KAAK,EACH,MAAO,eACT,KAAK,EACH,MAAO,eACT,KAAK,EACH,MAAO,kBACT,KAAK,EACH,MAAO,mBACT,KAAK,EACH,MAAO,oBACT,KAAK,EACH,MAAO,kBACT,KAAK,EACH,MAAO,iBACT,KAAK,EACH,MAAO,gBAET,QACE,MAAO,gBAIA2tI,EAAmB,SAAC3tI,GAC/B,OAAQ19C,SAAS09C,IACf,KAAK,EACH,MAAO,aACT,KAAK,EACH,MAAO,cACT,KAAK,EACH,MAAO,cACT,KAAK,EACH,MAAO,gBACT,KAAK,EACH,MAAO,WACT,KAAK,EACH,MAAO,WACT,KAAK,EACH,MAAO,UACT,KAAK,EACH,MAAO,SACT,QACE,MAAO,SAIA4tI,EAAuB,SAACrwI,GACnC,OACE,+BACE,eAAC,IAAD,CACEytI,MAAI,EACJ1zK,MAAOo2K,EAAuBnwI,EAAIyC,WAClCigE,MAAO,CACLC,QAAS,eACT6D,SAAU,QALd,UAQE,cAAC,IAAD,CAAM93G,KAAM0hL,EAAiBpwI,EAAIyC,WAAYogE,UAAW,QAAS/oG,KAAM,KACtEkmC,EAAIswI,kBAVEtwI,EAAIoC,QAgBNmuI,EAAkB,SAACvwI,GAC9B,OACE,sBAAK6iE,UAAW,wBAAhB,UACE,qBAAKA,UAAU,gBAAf,SACE,sBAAKA,UAAU,wBAAf,UACE,qBAAKA,UAAU,qCAAf,SAAqD7iE,EAAIgzG,WACzD,qBAAKnwC,UAAU,iBAAf,SAAiCirE,EAAmB9tI,GAAK,UAG7D,qBAAK6iE,UAAU,iBAAf,SACE,qBAAKA,UAAU,SAAf,SAAyBmqE,EAA0BhtI,OAErD,qBAAK6iE,UAAU,uBAAf,SACE,eAAC,IAAD,WACE,cAAC,IAAD,CAAK+0D,GAAG,IAAI/0D,UAAU,OAAtB,SACG2rE,EAAuBxuI,GAAK,KAE/B,cAAC,IAAD,CAAK43H,GAAG,IAAI/0D,UAAU,OAAtB,SACE,gCACE,mBAAGA,UAAW,OAAd,SAAuB7iE,EAAIwwI,kBAC3B,mBAAG3tE,UAAW,OAAd,SAAuB7iE,EAAIywI,8BAS5BC,EAAmC,SAAC1wI,GAC/C,OACE,eAAC,IAAD,CACE0iE,MAAO,CACLltG,MAAO,SAETqtG,UAAU,oDAJZ,UAME,oBACEA,UAAU,OACVH,MAAO,CACL8D,SAAU,QAHd,SAMGxmE,EAAIswI,gBAEP,cAAC,IAAD,CACE7C,MAAI,EACJ1zK,MAAOo2K,EAAuBnwI,EAAIyC,WAClCogE,UAAW,UACXH,MAAO,CACLC,QAAS,eACT6D,SAAU,QANd,mBASMxmE,EAAI2wI,MATV,YASmB3wI,EAAI4wI,iBAMhBC,EAAmB,SAAC7wI,GAC/B,IAAM8wI,EAAQ,IAAIj1J,KAClB,OACmB,MAAjBmkB,EAAItpB,WACJ,IAAImF,KAAKmkB,EAAItpB,WAAW4vE,WAAawqF,EAAMxqF,WAC1B,GAAjBtmD,EAAIyC,UAEG/4C,cAAUsE,cAAc,CAAEC,GAAG,eAAD,OAAiB+xC,EAAIyC,UAArB,YAE9B/4C,cAAUsE,cAAc,CAAEC,GAAG,eAAD,OAAiB+xC,EAAIyC,cAG7CsuI,EAAyB,SAAC/wI,GACrC,OACoB,MAAlBA,EAAIrS,YACF,sBACE+0E,MAAO,CACLC,QAAS,OACT4qE,WAAY,SACZC,eAAgB,UAJpB,SAOE,cAAC,IAAD,CACE9+K,KAAK,QACLm0G,UAAW,QACX9oG,MAAOimC,EAAIgxI,mBAAJ,UAA4BpE,GAA5B,UAAgDG,QAMpDkE,EAA6B,SAACjxI,GACzC,OAAyB,MAAlBA,EAAIrS,WACT,8BACE,cAAC,IAAD,CACEltC,WAAY,CACVoiH,UAAW,GACXH,MAAO,CAAEM,OAAQ,SAEnBkuE,oBAAqB,CACnBC,mBAAmB,EACnBC,gBAAgB,EAChBC,eAAe,EACfC,gCAAgC,EAChCC,oBAAoB,EACpBC,oCAAoC,EACpCtzK,UAAW,CACT,CACEyvB,WAAYqS,EAAIrS,WAChB3O,SAAUghB,EAAIhhB,SACdC,UAAW+gB,EAAI/gB,UACfiQ,aAAc8Q,EAAI9Q,aAClBuiJ,sBAAuB/D,EAAe1tI,EAAI6tI,WAC1C9G,0BAA2B/mI,EAAIgxI,mBAAJ,UAA4BpE,GAA5B,UAAgDG,MAIjF2E,oBAAqB,CAAEC,YAAY,MAxB7B3xI,EAAIoC,OA2BZ,MAGOwvI,EAAmC,SAAC,GAM1C,IALLvjL,EAKI,EALJA,UACAwjL,EAII,EAJJA,eACA/hL,EAGI,EAHJA,OACAgiL,EAEI,EAFJA,YACAxoL,EACI,EADJA,KAEA,OACE,cAAC,IAAD,CAAMu5G,UAAU,qDAAhB,SACE,eAAC,IAAD,WACE,cAAC,IAAD,UACGv5G,EAAK0E,cACJ,CAAEC,GAAII,GACN,CAAEwjL,eAAgBvoL,EAAK0E,cAAc,CAAEC,GAAI4jL,IAAmB/hL,OAAQA,MAG1E,cAAC,IAAD,CAAWiiL,OAAK,EAAhB,gBACGD,QADH,IACGA,OADH,EACGA,EAAajwK,KAAI,SAACm+B,EAAKjpB,GACtB,OACE,eAAC,IAAD,WACE,cAAC,IAAD,CAAOhd,MAAM,kBAAkB0zK,MAAI,EAAC5qE,UAAU,OAA9C,SACG7iE,EAAIoC,QAEP,+BAAOpC,EAAIgzG,aAJOj8H,cAcrBi7J,EAAyB,SAACC,GAErC,IACMC,EAAiB,KAInB1uF,EAAUI,KAAKH,MAHK,GAGCwuF,GACnBluF,EAAOH,KAAKC,MAAML,EAAO,OAE/BA,GAAWO,EAAOmuF,EALE,GAOpB,IAAMxuF,EAAQE,KAAKC,MAAML,EAAU0uF,GAEnC1uF,GAAWE,EAAQwuF,EAEnB,IAAMvuF,EAAUC,KAAKC,MAAML,EAZH,IAcxBA,GAdwB,GAcbG,EAGX,IAAMwuF,EAAsB,GAO5B,OANApuF,GAAQouF,EAAU91K,KAAK0nF,EAAO,MAC7BA,GAAQL,IAAUyuF,EAAU91K,KAAKqnF,EAAQ,MACzCK,GAAQL,GAASC,IAAYwuF,EAAU91K,KAAKsnF,EAAU,KACvDwuF,EAAU91K,KAAKmnF,EAAU,KAGlB2uF,EAAUryI,KAAK,MAGXsyI,EAAoB,SAACv/E,GAEhC,IAAIw/E,EAAiBt/E,SAASC,cAAc,OAM5C,OAHAq/E,EAAep/E,UAAYJ,EAGpBw/E,EAAen/E,aAAem/E,EAAeC,WAAa,K,uXCnY7DjzK,EAAYnf,YAAgB,CAChCs5G,KAzWW,WAAyB,IAAxB35G,EAAuB,uDAAf,GAAIC,EAAW,uCACnC,OAAQA,EAAOC,MAEb,KAAKC,IACL,KAAKA,IACH,MAA4BF,EAAOM,QAA3B2d,EAAR,EAAQA,SAAUshB,EAAlB,EAAkBA,MACZrf,EAAQ,eAAQngB,GAStB,OARAw/B,EAAMrR,SAAQ,SAACy+B,GACbzsC,EAASysC,GAAT,qCACEv+B,YAAY,GACTruB,EAAM4sD,IACN1uC,EAAS0uC,IAHd,IAIEz2C,aAAa,OAGVgK,EAGT,KAAKhgB,IACH,MAA4BF,EAAOM,QAA3B0tC,EAAR,EAAQA,MAAOwe,EAAf,EAAeA,SACTtsC,EAAW69F,IAAKh+G,EAAOiuC,GAM7B,OALA9tB,EAASssC,EAASG,YAAlB,uCACK5sD,EAAMiuC,IACNwe,GAFL,IAGEt2C,aAAa,IAERgK,EAGT,KAAKhgB,IACH,IAAQssD,EAAaxsD,EAAOM,QAApBksD,SACR,OAAO,2BACFzsD,GADL,kBAEGysD,EAASG,WAFZ,uCAGOoxD,IAAKh+G,EAAMysD,EAASG,YAAa,CAAC,iBAClCoxD,IAAKvxD,EAAU,CAAC,iBAJvB,IAKIt2C,aAAa,MAMnB,KAAKhW,IACH,IAAMssD,EAAWxsD,EAAOM,QAClB4f,EAAQ,eAAQngB,GAMtB,OALAmgB,EAASssC,EAASG,YAAlB,yBACEv+B,YAAY,GACTo+B,GAFL,IAGEt2C,aAAa,IAERgK,EAET,KAAKhgB,IACH,IAAMssD,EAAWxsD,EAAOM,QACxB,OAAO,2BACFP,GADL,kBAEGysD,EAASG,WAFZ,uCAGO5sD,EAAMysD,EAASG,aAHtB,IAIIgB,YAAa5tD,EAAMysD,EAASG,aACzBH,GALP,IAMIt2C,aAAa,MAMnB,KAAKhW,IACH,IAAQ8tC,EAAUhuC,EAAOM,QAAjB0tC,MACR,OAAIjuC,EAAMiuC,GACD+vE,IAAKh+G,EAAOiuC,GAEdjuC,EAET,KAAKG,IACH,IAAQytD,EAAgB3tD,EAAOM,QAAvBqtD,YACR,OAAO,2BACF5tD,GADL,kBAEG4tD,EAAYhB,WAFf,uCAGOoxD,IAAKh+G,EAAM4tD,EAAYhB,YAAa,CAAC,iBACrCgB,GAJP,IAKIz3C,aAAa,MAMnB,KAAKhW,IACH,IAAQysD,EAAe3sD,EAAOM,QAAtBqsD,WACR,OAAOoxD,IAAKh+G,EAAO4sD,GAIrB,KAAKzsD,IACH,IAAMysD,EAAa3sD,EAAOM,QACpB4f,EAAQ,2BACTngB,GADS,kBAEX4sD,EAFW,2BAGP5sD,EAAM4sD,IAHC,IAIVv+B,YAAY,MAGhB,OAAOlO,EAGT,KAAKhgB,IACH,IAAMysD,EAAa3sD,EAAOM,QAC1B,OAAO,2BACFP,GADL,kBAEG4sD,EAFH,2BAGO5sD,EAAM4sD,IAHb,IAIIv+B,YAAY,MAKlB,KAAKluB,IACH,IAAMuyL,EAAczyL,EAAOM,QACrB4f,EAAQ,eAAQngB,GAiBtB,OAhB0B,GAAtB0yL,EAAY1pK,OACdmF,IAAQnuB,GAAO,SAACysD,EAAeG,GAC7BzsC,EAASysC,GAAT,2BACKH,GADL,IAEEp+B,YAAY,OAIhBqkK,EAAYvkK,SAAQ,SAACy+B,GACnBzsC,EAASysC,GAAT,2BACK5sD,EAAM4sD,IADX,IAEEv+B,YAAY,OAKXlO,EAGT,KAAKhgB,IACH,IAAMuyL,EAAczyL,EAAOM,QACrB4f,EAAQ,eAAQngB,GAiBtB,OAhB0B,GAAtB0yL,EAAY1pK,OACdmF,IAAQnuB,GAAO,SAACysD,EAAeG,GAC7BzsC,EAASysC,GAAT,2BACKH,GADL,IAEEp+B,YAAY,OAIhBqkK,EAAYvkK,SAAQ,SAACy+B,GACnBzsC,EAASysC,GAAT,2BACK5sD,EAAM4sD,IADX,IAEEv+B,YAAY,OAKXlO,EAIT,QACE,OAAOngB,IAyMXw/B,MApMY,WAAyB,IAAxBx/B,EAAuB,uDAAf,GAAIC,EAAW,uCACpC,OAAQA,EAAOC,MAEb,KAAKC,IACL,KAAKA,IACH,IAAQq/B,EAAUv/B,EAAOM,QAAjBi/B,MACR,OAAO+yB,IAAK,GAAD,mBAAKvyD,GAAL,YAAew/B,KAG5B,KAAKr/B,IACH,MAA4BF,EAAOM,QAA3B0tC,EAAR,EAAQA,MAAOwe,EAAf,EAAeA,SACf,OAAOzsD,EAAMgiB,KAAI,SAAC4qC,GAAD,OAAiBA,IAAe3e,EAAQwe,EAASG,WAAaA,KAGjF,KAAKzsD,IACH,IAAQysD,EAAe3sD,EAAOM,QAAtBqsD,WACR,OAAO5sD,EAAMs8B,QAAO,SAACq2J,GAAD,OAAqBA,IAAoB/lI,KAI/D,KAAKzsD,IACH,IAAMssD,EAAWxsD,EAAOM,QACxB,MAAM,GAAN,mBAAWP,GAAX,CAAkBysD,EAASG,aAI7B,KAAKzsD,IACH,IAAQ8tC,EAAUhuC,EAAOM,QAAjB0tC,MACR,OAAOjuC,EAAMs8B,QAAO,SAACq2J,GAAD,OAAqBA,IAAoB1kJ,KAI/D,QACE,OAAOjuC,IAoKXm+G,sBA/I4B,WAA4B,IAA3Bn+G,EAA0B,wDAAXC,EAAW,uCACvD,OAAQA,EAAOC,MACb,KAAKC,IACH,OAAO,EAET,KAAKA,IACL,KAAKA,IACH,OAAO,EAET,QACE,OAAOH,IAsIX47G,eA/JqB,WAA4B,IAA3B57G,EAA0B,wDAAXC,EAAW,uCAChD,OAAQA,EAAOC,MACb,KAAKC,IACH,OAAO,EAET,KAAKA,IACL,KAAKA,IACH,OAAO,EAET,QACE,OAAOH,IAsJXo+G,SAlIe,WAA4B,IAA3Bp+G,EAA0B,wDAAXC,EAAW,uCAC1C,OAAQA,EAAOC,MACb,KAAKC,IACH,OAAO,EAET,KAAKA,IACL,KAAKA,IACH,OAAO,EAET,QACE,OAAOH,IAyHXq+G,UApHgB,WAA4B,IAA3Br+G,EAA0B,wDAAXC,EAAW,uCAC3C,OAAQA,EAAOC,MACb,KAAKC,IACH,OAAO,EAET,KAAKA,IACL,KAAKA,IACH,OAAO,EAET,QACE,OAAOH,IA2GXs+G,WAtGiB,WAA4B,IAA3Bt+G,EAA0B,wDAAXC,EAAW,uCAC5C,OAAQA,EAAOC,MACb,KAAKC,IACH,OAAO,EAET,KAAKA,IACL,KAAKA,IACH,OAAO,EAET,QACE,OAAOH,IA6FXu+G,yBAxE+B,WAA2B,IAA1Bv+G,EAAyB,uDAAjB,KAAMC,EAAW,uCACzD,OAAQA,EAAOC,MACb,KAAKC,IACH,IAAQ4B,EAAU9B,EAAOM,QAAjBwB,MACR,OAAOA,EAET,KAAK5B,IACL,KAAKA,IACH,OAAO,KAET,QACE,OAAOH,IA8DX87G,kBAzFwB,WAA2B,IAA1B97G,EAAyB,uDAAjB,KAAMC,EAAW,uCAClD,OAAQA,EAAOC,MACb,KAAKC,IACH,IAAQ4B,EAAU9B,EAAOM,QAAjBwB,MACR,OAAOA,EAET,KAAK5B,IACL,KAAKA,IACH,OAAO,KAET,QACE,OAAOH,IA+EXw+G,YA1DkB,WAA2B,IAA1Bx+G,EAAyB,uDAAjB,KAAMC,EAAW,uCAC5C,OAAQA,EAAOC,MACb,KAAKC,IACH,IAAQ4B,EAAU9B,EAAOM,QAAjBwB,MACR,OAAOA,EAET,KAAK5B,IACL,KAAKA,IACH,OAAO,KAET,QACE,OAAOH,IAgDXy+G,aA3CmB,WAA2B,IAA1Bz+G,EAAyB,uDAAjB,KAAMC,EAAW,uCAC7C,OAAQA,EAAOC,MACb,KAAKC,IACH,IAAQ4B,EAAU9B,EAAOM,QAAjBwB,MACR,OAAOA,EAET,KAAK5B,IACL,KAAKA,IACH,OAAO,KAET,QACE,OAAOH,IAiCX0+G,cA5BoB,WAA2B,IAA1B1+G,EAAyB,uDAAjB,KAAMC,EAAW,uCAC9C,OAAQA,EAAOC,MACb,KAAKC,IACH,IAAQ4B,EAAU9B,EAAOM,QAAjBwB,MACR,OAAOA,EAET,KAAK5B,IACL,KAAKA,IACH,OAAO,KAET,QACE,OAAOH,MAoBEwf,MAGR,IAAM/c,EAAc,SAACzC,GAAD,OAAWA,EAAMwf,WAG/BozK,EAAc,SAAC5yL,EAAO4sD,GACjC,IAAMH,EAAWhqD,EAAYzC,GAAO25G,KAAK/sD,GACzC,GAAIH,EAAU,CAAC,IAAD,EACNkB,EAAM,UAAGy7E,IAA0BppI,EAAOysD,EAASwB,iBAA7C,QAA0D,GACtE,OAAO,uCACFxB,GACAuxD,IAAKrwD,EAAQ,CAAC,cAAe,cAAe,gBAFjD,IAGE07E,kBAAiB,OAAE17E,QAAF,IAAEA,OAAF,EAAEA,EAAQ4xD,gBAIpBszE,EAAmB,SAAC7yL,GAAD,OAC9ByC,EAAYzC,GACTw/B,MAAMxd,KAAI,SAAC5T,GAAD,OAAQwkL,EAAY5yL,EAAOoO,MACrCkuB,QAAO,SAACmwB,GAAD,OAAcA,EAASqmI,eAAiB,MAEvCC,EAA+B,SAAC/yL,EAAOsB,GAElD,OAAOuxL,EAAiB7yL,GAAOs8B,QAC7B,SAACmwB,GAAD,OACEnrD,KACEA,EAAWoD,gBAAkBpD,EAAWoD,iBAAmB+nD,EAAS/nD,mBACpEpD,EAAWsD,YAActD,EAAWsD,aAAe6nD,EAAS7nD,eAC5DtD,EAAWwD,eAAiBxD,EAAWwD,gBAAkB2nD,EAAS3nD,mBAI7DkuL,EAA8B,SAAChzL,EAAO8tC,GAAR,OACzC+kJ,EAAiB7yL,GAAOs8B,QAEtB,SAACmwB,GAAD,QAAc,OAACA,QAAD,IAACA,OAAD,EAACA,EAAU3e,aAAeA,IAAsB,OAAR2e,QAAQ,IAARA,OAAA,EAAAA,EAAU3e,cAAeA,MAWtEmlJ,EAAsB,SAACjzL,GAClC,IAAMkzL,EAAoBL,EAAiB7yL,GAAOs8B,QAAO,SAACmwB,GAAD,OAAcA,EAASp+B,cAEhF,OAAiC,IAA7B6kK,EAAkBlqK,OAAqBkqK,EAAkB,GAEjD,MAIDC,EAAiC,SAACnzL,GAAD,OAAWyC,EAAYzC,GAAOm+G,uBAC/Di1E,EAA0B,SAACpzL,GAAD,OAAWyC,EAAYzC,GAAO47G,iB,8BC/atDr3G,IAXK,CAClBgjB,YAAa,QACbE,aAAc,QACdE,eAAgB,QAChB0rK,mBAAoB,QACpBC,cAAe,QACfC,qBAAsB,QACtBC,oBAAqB,QACrBC,sBAAuB,U,kOCgFnBj2K,G,KAAkBnd,YAAgB,CACtCs5G,KAnFW,WAAyB,IAAxB35G,EAAuB,uDAAf,GAAIC,EAAW,uCACnC,OAAQA,EAAOC,MAEb,KAAKC,IACH,MAA4BF,EAAOM,QAA3B2d,EAAR,EAAQA,SAAUshB,EAAlB,EAAkBA,MACZrf,EAAQ,eAAQngB,GAStB,OARAw/B,EAAMrR,SAAQ,SAAC86G,GACb9oH,EAAS8oH,GAAT,qCACE56G,YAAY,GACTruB,EAAMipI,IACN/qH,EAAS+qH,IAHd,IAIE9yH,aAAa,OAGVgK,EAIT,QACE,OAAOngB,IAiEXw/B,MA5DY,WAAyB,IAAxBx/B,EAAuB,uDAAf,GAAIC,EAAW,uCACpC,OAAQA,EAAOC,MAEb,KAAKC,IACH,IAAQq/B,EAAUv/B,EAAOM,QAAjBi/B,MACR,OAAOs6E,IAAMt6E,GAIf,QACE,OAAOx/B,IAmDX47G,eA7CqB,WAA4B,IAA3B57G,EAA0B,wDAAXC,EAAW,uCAChD,OAAQA,EAAOC,MACb,KAAKC,IACH,OAAO,EAET,KAAKA,IACL,KAAKA,IACH,OAAO,EAET,QACE,OAAOH,IAoCX+9H,kBA/BwB,WAA4B,IAA3B/9H,EAA0B,wDAAXC,EAAW,uCACnD,OAAQA,EAAOC,MACb,KAAKC,IACH,OAAO,EAET,QACE,OAAOH,IA0BX87G,kBArBwB,WAA2B,IAA1B97G,EAAyB,uDAAjB,KAAMC,EAAW,uCAClD,OAAQA,EAAOC,MACb,KAAKC,IACH,IAAQ4B,EAAU9B,EAAOM,QAAjBwB,MACR,OAAOA,EAET,KAAK5B,IACL,KAAKA,IACH,OAAO,KAET,QACE,OAAOH,OAaEwd,MAGR,IAAM/a,EAAc,SAACzC,GAAD,OAAWA,EAAM2c,eAAea,iBAG9Ck2K,EAAmB,SAAC1zL,EAAOipI,GAAR,OAC9BxmI,EAAYzC,GAAO25G,KAAKsvB,IAEb0qD,EAA2B,SAAC3zL,EAAOipI,GAC9C,IAAI2qD,EAAKF,EAAiB1zL,EAAOipI,GACjC,OAAO2qD,GAAMA,EAAGhC,sBAAwBgC,EAAGhC,sBAAoC,UAiBpEiC,EAAyB,SAAC7zL,GAAD,OACpCyC,EAAYzC,GAAOw/B,MAAMxd,KAAI,SAAC5T,GAAD,OAAQslL,EAAiB1zL,EAAOoO,OAGlD0lL,EAAgC,SAAC9zL,GAAD,OAAWyC,EAAYzC,GAAO47G,gBAC9Dm4E,EAAiC,SAAC/zL,GAAD,OAAWyC,EAAYzC,GAAO+9H,oB,0FC9GtEi2D,EAAsB,SAAC39K,GAC3B,IAAMzF,EAAQu7H,aAAY,SAACnsI,GAAD,OAAWA,KAEnCqsI,EAUEh2H,EAVFg2H,YACAC,EASEj2H,EATFi2H,eACAz9H,EAQEwH,EARFxH,KACAT,EAOEiI,EAPFjI,GACA7J,EAME8R,EANF9R,YACA2V,EAKE7D,EALF6D,MANF,EAWI7D,EAJF2hK,cAPF,MAOW,UAPX,EAQE/9J,EAGE5D,EAHF4D,KACA+oG,EAEE3sG,EAFF2sG,UATF,EAWI3sG,EADFm2H,eAVF,SAYA,EAAsCC,oBAAS,GAA/C,mBAAOC,EAAP,KAAoBC,EAApB,KAEA,OAAQpoI,GAAeid,+BAA2C5Q,EAAOrM,GACvE,qBAAK6J,GAAIA,EAAI40G,UAAWA,EAAxB,SACGwpB,EACC,qCACE,cAAC,IAAD,CACE3pB,MAAO,CAAEm1D,UACTnpK,KAAMA,EACNqL,MAAOA,EACPD,KAAI,OAAEA,QAAF,IAAEA,IAAQ,GACd4yH,QAAS,kBAAMR,GAAeA,OAE/BC,GACC,cAAC,IAAD,CACEY,UAAU,MACVC,OAAQT,EACR37B,OAAQ3iG,EACRg/H,OAjBG,kBAAMT,GAAgBD,IAkBzBW,QAAQ,cALV,SAOGf,OAIL,OAEJ,MAGN0nD,EAAoB/qE,aAAe,CACjC76G,GAAI,sBACJS,KAAM,OACNgK,YAAY,EACZmqG,UAAW,IAGEgxE,O,gbC23BT50K,EAAc/e,YAAgB,CAClCs5G,KAl7BW,WAAyB,IAAxB35G,EAAuB,uDAAf,GAAIC,EAAW,uCACnC,OAAQA,EAAOC,MACb,KAAKkgB,IACH,MAAO,GAIT,KAAKjgB,IACL,KAAKA,IACH,MAAyBF,EAAOM,QAAxB0tC,EAAR,EAAQA,MAAOzb,EAAf,EAAeA,MACTrS,EAAW69F,IAAKh+G,EAAOiuC,GAK7B,OAJA9tB,EAASqS,EAAMq0B,SAAf,2BACK7mD,EAAMiuC,IACNzb,GAEErS,EAGT,KAAKhgB,IACL,KAAKA,IACH,IAAMqyB,EAAQvyB,EAAOM,QACrB,OAAO,2BACFP,GADL,kBAEGwyB,EAAMq0B,QAFT,2BAGOm3D,IAAKh+G,EAAMwyB,EAAMq0B,SAAU,CAAC,cAC5Bm3D,IAAKxrF,EAAO,CAAC,gBAKtB,KAAKryB,IACH,MAA4BF,EAAOM,QAA3B2d,EAAR,EAAQA,SAAUshB,EAAlB,EAAkBA,MACZrf,EAAW,GAmDjB,OAlDAqf,EAAMrR,SAAQ,SAAC04B,GACb,IACc7d,EACV/mB,YACF/D,EAAS2oC,GAAS3oC,SAAS,GAAG8D,KAAI,SAACqC,GAAD,OAAY3jB,IAAc2jB,MAC5DnC,KAHAhE,SAAY8qB,MAMA3qB,EACV4D,YACF/D,EAAS2oC,GAAS3oC,SAAS,GAAG8D,KAAI,SAACqC,GAAD,OAAY3jB,IAAc2jB,MAC5DnC,KAHAhE,SAAYG,UAMAD,EACV6D,YACF/D,EAAS2oC,GAAS3oC,SAAS,GAAG8D,KAAI,SAACqC,GAAD,OAAY3jB,IAAc2jB,MAC5DnC,KAHAhE,SAAYE,UAMAM,EACVuD,YACF/D,EAAS2oC,GAAS3oC,SAAS,GAAG8D,KAAI,SAACqC,GAAD,OAAY3jB,IAAc2jB,MAC5DnC,KAHAhE,SAAYQ,MAMAG,EACVoD,YACF/D,EAAS2oC,GAAS3oC,SAAS,GAAG8D,KAAI,SAACqC,GAAD,OAAY3jB,IAAc2jB,MAC5DnC,KAHAhE,SAAYW,UAMAP,EACV2D,YACF/D,EAAS2oC,GAAS3oC,SAAS,GAAG8D,KAAI,SAACqC,GAAD,OAAY3jB,IAAc2jB,MAC5DnC,KAHAhE,SAAYI,QAMd6B,EAAS0mC,GAAT,2BACK7mD,EAAM6mD,IADX,IAEEx4B,YAAY,EACZ2a,MAAK,OAAEA,QAAF,IAAEA,IAAS,GAChB3qB,UAAS,OAAEA,QAAF,IAAEA,IAAa,GACxBD,UAAS,OAAEA,QAAF,IAAEA,IAAa,GACxBM,MAAK,OAAEA,QAAF,IAAEA,IAAS,GAChBG,UAAS,OAAEA,QAAF,IAAEA,IAAa,GACxBP,QAAO,OAAEA,QAAF,IAAEA,IAAW,IACjB0/F,IAAK9/F,EAAS2oC,GAAU,gBAGxB1mC,EAGT,KAAKhgB,IACH,MAA4BF,EAAOM,QAA3B2d,EAAR,EAAQA,SAAUshB,EAAlB,EAAkBA,MACZrf,EAAQ,eAAQngB,GAmDtB,OAlDAw/B,EAAMrR,SAAQ,SAAC04B,GACb,IACc7d,EACV/mB,YACF/D,EAAS2oC,GAAS3oC,SAAS,GAAG8D,KAAI,SAACqC,GAAD,OAAY3jB,IAAc2jB,MAC5DnC,KAHAhE,SAAY8qB,MAMA3qB,EACV4D,YACF/D,EAAS2oC,GAAS3oC,SAAS,GAAG8D,KAAI,SAACqC,GAAD,OAAY3jB,IAAc2jB,MAC5DnC,KAHAhE,SAAYG,UAMAD,EACV6D,YACF/D,EAAS2oC,GAAS3oC,SAAS,GAAG8D,KAAI,SAACqC,GAAD,OAAY3jB,IAAc2jB,MAC5DnC,KAHAhE,SAAYE,UAMAM,EACVuD,YACF/D,EAAS2oC,GAAS3oC,SAAS,GAAG8D,KAAI,SAACqC,GAAD,OAAY3jB,IAAc2jB,MAC5DnC,KAHAhE,SAAYQ,MAMAG,EACVoD,YACF/D,EAAS2oC,GAAS3oC,SAAS,GAAG8D,KAAI,SAACqC,GAAD,OAAY3jB,IAAc2jB,MAC5DnC,KAHAhE,SAAYW,UAMAP,EACV2D,YACF/D,EAAS2oC,GAAS3oC,SAAS,GAAG8D,KAAI,SAACqC,GAAD,OAAY3jB,IAAc2jB,MAC5DnC,KAHAhE,SAAYI,QAMd6B,EAAS0mC,GAAT,2BACK7mD,EAAM6mD,IADX,IAEEx4B,YAAY,EACZ2a,MAAK,OAAEA,QAAF,IAAEA,IAAS,GAChB3qB,UAAS,OAAEA,QAAF,IAAEA,IAAa,GACxBD,UAAS,OAAEA,QAAF,IAAEA,IAAa,GACxBM,MAAK,OAAEA,QAAF,IAAEA,IAAS,GAChBG,UAAS,OAAEA,QAAF,IAAEA,IAAa,GACxBP,QAAO,OAAEA,QAAF,IAAEA,IAAW,IACjB0/F,IAAK9/F,EAAS2oC,GAAU,gBAGxB1mC,EAGT,KAAKhgB,IACH,MAA8BF,EAAOM,QAA7B2d,EAAR,EAAQA,SAAU2oC,EAAlB,EAAkBA,QACZ1mC,EAAQ,eAAQngB,GAUtB,OATAmgB,EAAS0mC,GAAT,aACE7d,MAAO9qB,EAAS8qB,MAChB3qB,UAAWH,EAASG,UACpBD,UAAWF,EAASE,UACpBM,MAAOR,EAASQ,MAChBG,UAAWX,EAASW,UACpBP,QAASJ,EAASI,SACfte,EAAM6mD,IAEJ1mC,EAIT,KAAKhgB,IACH,MAAwCF,EAAOM,QAAvCiyB,EAAR,EAAQA,MAAOwW,EAAf,EAAeA,MAAOK,EAAtB,EAAsBA,cAChBlpB,EAAQ,eAAQngB,GAChBi0L,EAAa,GAwBnB,OAvBAjrJ,EACG1M,QAAO,SAAC77B,GAAD,OAA+B,IAApB+xB,EAAM0hK,UAAkBzzL,EAAKmoC,WAAaS,EAAgB5oC,KAC5EuhB,KAAI,SAACvhB,GACJwzL,EAAWxzL,EAAKmoC,UAAYnoC,KAEhC0f,EAASqS,EAAMq0B,SAAf,yBACEx4B,YAAY,EACZ2a,MAAOirJ,EACP51K,UAAW,GACXD,UAAW,GACXM,MAAO,GACPG,UAAW,GACXP,QAAS,GACT0pC,UAAW,EACXmsI,eAAgB,EAChBC,eAAgB,EAChBC,UAAWrrJ,EAAMhgB,OACjBsrK,UAAW,EACXC,cAAe,EACfC,YAAa,GACVhiK,GAfL,IAgBE0hK,UAAW1hK,EAAM0hK,YAEZ/zK,EAGT,KAAKhgB,IACH,MAA+DF,EAAOM,QAA9DiyB,EAAR,EAAQA,MAAO6W,EAAf,EAAeA,cAAe+d,EAA9B,EAA8BA,WAAYlpC,EAA1C,EAA0CA,SAAUmpC,EAApD,EAAoDA,OAC9ClnC,EAAQ,eAAQngB,GAChBi0L,EAAU,yBAAS5qJ,EAAcT,UAAaS,GAC9CorJ,EAAgBv2K,EAAS8D,KAAI,SAACqC,GAAD,MAClB,UAAf+iC,EACI,CACE1rB,OAAQrX,EAAOqX,OACfkN,SAAUvkB,EAAOukB,SACjBkmJ,aAAczqK,EAAOyqK,aACrB4F,UAAWrwK,EAAOqwK,UAClB1sI,UAAWX,EAAOW,WAEL,cAAfZ,EACA,CACEtZ,WAAYzpB,EAAOypB,WACnBuB,aAAchrB,EAAOgrB,aACrBqkI,OAAQrvJ,EAAOqvJ,OACfv0I,SAAU9a,EAAO8a,SACjBC,UAAW/a,EAAO+a,UAClBzQ,iBAAkBtK,EAAOsK,kBAEZ,cAAfy4B,EACA,CACEU,WAAYzjC,EAAOwmB,WACnB8pJ,aAActwK,EAAOgnB,aACrB1c,iBAAkBtK,EAAOsK,kBAEZ,UAAfy4B,EACA,CACEnyB,OAAQ5Q,EAAO4Q,OACfgyB,UAAWz0B,EAAMy0B,UACjBxvB,SAAUpT,EAAOoT,SACjBujG,QAAS32G,EAAO22G,QAChBzb,YAAal7F,EAAOk7F,YACpB5wF,iBAAkBtK,EAAOsK,kBAEZ,cAAfy4B,EACA,CACE1+B,WAAYrE,EAAOqE,WACnBijB,aAActnB,EAAOsnB,aACrBipJ,YAAavtI,EAAOutI,YACpBC,YAAaxtI,EAAOwtI,YACpBC,MAAOzwK,EAAOywK,MACdC,aAAc1tI,EAAO0tI,cAER,YAAf3tI,EACA,CACErI,SAAU16B,EAAO06B,SACjBhnB,WAAY1T,EAAO0T,WACnBi9J,YAAa3wK,EAAO2wK,YACpBC,cAAe5wK,EAAO4wK,cACtBC,YAAa7wK,EAAO6wK,YACpBC,kBAAmB9wK,EAAO8wK,mBAE5B9wK,KAuEN,OApEAlE,EAASqS,EAAMq0B,SAAf,yBACEx4B,YAAY,EACZ2a,MAAOirJ,EACP51K,UAAW,GACXD,UAAW,GACXM,MAAO,GACPG,UAAW,GACXP,QAAS,GACT0pC,UAAW,EACXmsI,eAAgB,EAChBC,eAAgB,EAChBC,UAAW,EACXC,UAAW,EACXC,cAAe,EACfC,YAAa,GACVhiK,GAfL,IAgBE0hK,UAAW1hK,EAAM0hK,YAGnBO,EAActmK,SAAQ,SAAC9J,GAAY,IAAD,EAChClE,EAASqS,EAAMq0B,SAAf,2BACK1mC,EAASqS,EAAMq0B,UADpB,uBAEGO,EAFH,2BAGOjnC,EAASqS,EAAMq0B,SAASO,IAH/B,kBAIoB,UAAfA,EACG/iC,EAAOukB,SACQ,cAAfwe,EACA/iC,EAAOypB,WACQ,cAAfsZ,EACA/iC,EAAOwmB,WACQ,UAAfuc,EACA/iC,EAAO4Q,OACQ,cAAfmyB,EACA/iC,EAAOqE,WACQ,YAAf0+B,EACA/iC,EAAO06B,SACP16B,EAAO+wK,SAAW/wK,KAhB1B,cAkBkB,UAAf+iC,EACG,YACe,cAAfA,EACA,iBACe,cAAfA,EACA,iBACe,UAAfA,EACA,YACe,cAAfA,EACA,gBACe,YAAfA,EACA,cACA,GACFjnC,EAASqS,EAAMq0B,SACE,UAAfO,EACI,YACe,cAAfA,EACA,iBACe,cAAfA,EACA,iBACe,UAAfA,EACA,YACe,cAAfA,EACA,gBACe,YAAfA,EACA,cACA,IACF,GA7CR,OAgDKjnC,EAGT,KAAKhgB,IACL,KAAKA,IACH,IAAMqyB,EAAQvyB,EAAOM,QACrB,OAAO,2BACFP,GADL,kBAEGwyB,EAAMq0B,QAFT,2BAGO7mD,EAAMwyB,EAAMq0B,UAHnB,IAIIW,SAAUxnD,EAAMwyB,EAAMq0B,UACnBr0B,KAMT,KAAKryB,IACL,KAAKA,IACH,IAAQqnD,EAAavnD,EAAOM,QAApBinD,SACR,OAAO,2BACFxnD,GADL,kBAEGwnD,EAASX,QAFZ,2BAGOm3D,IAAKh+G,EAAMwnD,EAASX,SAAU,CAAC,cAC/BW,KAMT,KAAKrnD,IAAwC,IAAD,EACpC0mD,EAAU5mD,EAAOM,QAAQsmD,QACzBO,EAAannD,EAAOM,QAAQ6mD,WAC5BlpC,EAAWje,EAAOM,QAAQ2d,SAC1BiC,EAAQ,2BACTngB,GADS,kBAEX6mD,EAFW,2BAGP7mD,EAAM6mD,IAHC,uBAITO,EAAa42D,IAAKh+G,EAAM6mD,GAASO,GAAalpC,IAJrC,cAKM,UAAfkpC,EACG,YACe,cAAfA,EACA,iBACe,cAAfA,EACA,iBACe,UAAfA,EACA,YACe,cAAfA,EACA,gBACe,YAAfA,EACA,cACA,GACFpnD,EAAM6mD,GACW,UAAfO,EACI,YACe,cAAfA,EACA,iBACe,cAAfA,EACA,iBACe,UAAfA,EACA,YACe,cAAfA,EACA,gBACe,YAAfA,EACA,cACA,IACFlpC,EAAS8K,QAhCL,MAmCd,OAAO7I,EAGT,KAAKhgB,IACH,IAAMqyB,EAAQvyB,EAAOM,QAAQiyB,MACvB40B,EAAannD,EAAOM,QAAQ6mD,WAC5BlpC,EAAWje,EAAOM,QAAQ2d,SAC1BmpC,EAASpnD,EAAOM,QAAQ8mD,OACxBlnC,GAAQ,eAAQngB,GAEhBy0L,GAAgBv2K,EAAS8D,KAAI,SAACqC,GAAD,MAClB,UAAf+iC,EACI,CACE1rB,OAAQrX,EAAOqX,OACfkN,SAAUvkB,EAAOukB,SACjBkmJ,aAAczqK,EAAOyqK,aACrB4F,UAAWrwK,EAAOqwK,UAClB1sI,UAAWX,EAAOW,WAEL,cAAfZ,EACA,CACEtZ,WAAYzpB,EAAOypB,WACnBuB,aAAchrB,EAAOgrB,aACrBqkI,OAAQrvJ,EAAOqvJ,OACfv0I,SAAU9a,EAAO8a,SACjBC,UAAW/a,EAAO+a,UAClBzQ,iBAAkBtK,EAAOsK,kBAEZ,cAAfy4B,EACA,CACEU,WAAYzjC,EAAOyjC,WACnB6sI,aAActwK,EAAOswK,aACrBhmK,iBAAkBtK,EAAOsK,kBAEZ,UAAfy4B,EACA,CACEnyB,OAAQ5Q,EAAO4Q,OACfgyB,UAAWz0B,EAAMy0B,UACjBxvB,SAAUpT,EAAOoT,SACjBujG,QAAS32G,EAAO22G,QAChBzb,YAAal7F,EAAOk7F,YACpB5wF,iBAAkBtK,EAAOsK,kBAEZ,cAAfy4B,EACA,CACE1+B,WAAYrE,EAAOqE,WACnBijB,aAActnB,EAAOsnB,aACrBipJ,YAAavtI,EAAOutI,YACpBC,YAAaxtI,EAAOwtI,YACpBC,MAAOzwK,EAAOywK,MACdC,aAAc1tI,EAAO0tI,cAER,YAAf3tI,EACA,CACErI,SAAU16B,EAAO06B,SACjBhnB,WAAY1T,EAAO0T,WACnBi9J,YAAa3wK,EAAO2wK,YACpBC,cAAe5wK,EAAO4wK,cACtBC,YAAa7wK,EAAO6wK,YACpBC,kBAAmB9wK,EAAO8wK,mBAE5B9wK,KAoDN,OAjDAowK,GAActmK,SAAQ,SAAC9J,GAAY,IAAD,EAChClE,GAASqS,EAAMq0B,SAAf,2BACK7mD,EAAMwyB,EAAMq0B,UADjB,uBAEGO,EAFH,2BAGOjnC,GAASqS,EAAMq0B,SAASO,IAH/B,kBAIoB,UAAfA,EACG/iC,EAAOukB,SACQ,cAAfwe,EACA/iC,EAAOypB,WACQ,cAAfsZ,EACA/iC,EAAOyjC,WACQ,UAAfV,EACA/iC,EAAO4Q,OACQ,cAAfmyB,EACA/iC,EAAOqE,WACQ,YAAf0+B,EACA/iC,EAAO06B,SACP16B,EAAO+wK,SAAW/wK,KAhB1B,cAkBkB,UAAf+iC,EACG,YACe,cAAfA,EACA,iBACe,cAAfA,EACA,iBACe,UAAfA,EACA,YACe,cAAfA,EACA,gBACe,YAAfA,EACA,cACA,GACFjnC,GAASqS,EAAMq0B,SACE,UAAfO,EACI,YACe,cAAfA,EACA,iBACe,cAAfA,EACA,iBACe,UAAfA,EACA,YACe,cAAfA,EACA,gBACe,YAAfA,EACA,cACA,IACF,GA7CR,OAgDKjnC,GAIT,KAAKhgB,IACH,OAA4DF,EAAOM,QAA3DsmD,GAAR,GAAQA,QAASje,GAAjB,GAAiBA,SAAUmf,GAA3B,GAA2BA,kBAAmBC,GAA9C,GAA8CA,UACxChf,GAAK,eAAQhpC,EAAM6mD,IAAS7d,OAClCA,GAAMJ,IAAN,2BAAuBI,GAAMJ,KAA7B,IAAwCof,UAAWA,KACnD,IAAM7nC,GAAQ,2BACTngB,GADS,kBAEX6mD,GAFW,2BAGP7mD,EAAM6mD,KAHC,IAIV7d,MAAOA,GACPgf,UAAWD,KAAsBnf,GAAWof,GAAYhoD,EAAM6mD,IAAN,cAG5D,OAAO1mC,GAIT,KAAKhgB,IACH,IAAQ0mD,GAAY5mD,EAAOM,QAAnBsmD,QACR,OAAOm3D,IAAKh+G,EAAO6mD,IAIrB,KAAK1mD,IACH,OAA8CF,EAAOM,QAA7CsmD,GAAR,GAAQA,QAASa,GAAjB,GAAiBA,SAAUC,GAA3B,GAA2BA,eAC3B,IAAiB,IAAbD,GAAmB,CACrB,IAAMvnC,GAAQ,2BACTngB,GADS,kBAEX6mD,GAFW,2BAGP7mD,EAAM6mD,KAHC,IAIV7d,MAAOg1E,IAAKh+G,EAAM6mD,IAAN,MAAyBc,IACrC0sI,UAAWr0L,EAAM6mD,IAAN,UAA8B,EACzCqtI,UAAW,EACXlsI,UAAW,MAGf,OAAO7nC,GAET,OAAO69F,IAAKh+G,EAAO6mD,IAIrB,KAAK1mD,IACH,IAAM0mD,GAAU5mD,EAAOM,QACjB4f,GAAQ,2BACTngB,GADS,kBAEX6mD,GAFW,2BAGP7mD,EAAM6mD,KAHC,IAIVx4B,YAAY,MAGhB,OAAOlO,GAGT,KAAKhgB,IACH,IAAM0mD,GAAU5mD,EAAOM,QACvB,OAAO,2BACFP,GADL,kBAEG6mD,GAFH,2BAGO7mD,EAAM6mD,KAHb,IAIIx4B,YAAY,MAKlB,KAAKluB,IACH,IAAMm1I,GAAWr1I,EAAOM,QAClB4f,GAAQ,eAAQngB,GAiBtB,OAhBuB,GAAnBs1I,GAAStsH,OACXmF,IAAQnuB,GAAO,SAACwyB,EAAYq0B,GAC1B1mC,GAAS0mC,GAAT,2BACKr0B,GADL,IAEEnE,YAAY,OAIhBinH,GAASnnH,SAAQ,SAAC04B,GAChB1mC,GAAS0mC,GAAT,2BACK7mD,EAAM6mD,IADX,IAEEx4B,YAAY,OAKXlO,GAGT,KAAKhgB,IACH,IAAMm1I,GAAWr1I,EAAOM,QAClB4f,GAAQ,eAAQngB,GAiBtB,OAhBuB,GAAnBs1I,GAAStsH,OACXmF,IAAQnuB,GAAO,SAACwyB,EAAYq0B,GAC1B1mC,GAAS0mC,GAAT,2BACKr0B,GADL,IAEEnE,YAAY,OAIhBinH,GAASnnH,SAAQ,SAAC04B,GAChB1mC,GAAS0mC,GAAT,2BACK7mD,EAAM6mD,IADX,IAEEx4B,YAAY,OAKXlO,GAIT,QACE,OAAOngB,IAiVXw/B,MA5UY,WAAyB,IAAxBx/B,EAAuB,uDAAf,GAAIC,EAAW,uCACpC,OAAQA,EAAOC,MACb,KAAKkgB,IACH,MAAO,GAGT,KAAKjgB,IACH,IAAQq/B,EAAUv/B,EAAOM,QAAjBi/B,MACR,OAAOs6E,IAAMt6E,GAGf,KAAKr/B,IACL,KAAKA,IACH,MAAyBF,EAAOM,QAAxB0tC,EAAR,EAAQA,MAAOzb,EAAf,EAAeA,MACf,OAAOxyB,EAAMgiB,KAAI,SAAC6kC,GAAD,OAAcA,IAAY5Y,EAAQzb,EAAMq0B,QAAUA,KAGrE,KAAK1mD,IACH,IAAQq/B,EAAUv/B,EAAOM,QAAjBi/B,MACR,OAAO+yB,IAAK,GAAD,mBAAKvyD,GAAL,YAAew/B,KAG5B,KAAKr/B,IACH,IAAQ0mD,EAAY5mD,EAAOM,QAAnBsmD,QACR,OAAO7mD,EAAMs8B,QAAO,SAAC+4J,GAAD,OAAkBA,IAAiBxuI,KAGzD,KAAK1mD,IACH,MAA8BF,EAAOM,QAA7BsmD,EAAR,EAAQA,QAASa,EAAjB,EAAiBA,SACjB,OAAO1nD,EAAMs8B,QAAO,SAAC+4J,GAAD,OACL,IAAb3tI,EAAoB2tI,EAAeA,IAAiBxuI,KAKxD,KAAK1mD,IACL,KAAKA,IACH,MAAwBF,EAAOM,QAAvBiyB,EAAR,EAAQA,MAAR,EAAe/xB,KACf,MAAM,GAAN,mBAAWT,GAAX,CAAkBwyB,EAAMq0B,UAI1B,KAAK1mD,IACL,KAAKA,IACH,IAAQ8tC,EAAUhuC,EAAOM,QAAjB0tC,MACR,OAAOjuC,EAAMs8B,QAAO,SAAC+4J,GAAD,OAAkBA,IAAiBpnJ,KAIzD,QACE,OAAOjuC,IA2RXm+G,sBAjP4B,WAA4B,IAA3Bn+G,EAA0B,wDAAXC,EAAW,uCACvD,OAAQA,EAAOC,MACb,KAAKkgB,IACH,OAAO,EAET,KAAKjgB,IACH,OAAO,EAET,KAAKA,IACL,KAAKA,IACH,OAAO,EAET,QACE,OAAOH,IAqOX47G,eAtRqB,WAA4B,IAA3B57G,EAA0B,wDAAXC,EAAW,uCAChD,OAAQA,EAAOC,MACb,KAAKkgB,IACH,OAAO,EAET,KAAKjgB,IACH,OAAO,EAET,KAAKA,IACL,KAAKA,IACH,OAAO,EAET,QACE,OAAOH,IA0QXs1L,sBArQ4B,WAA4B,IAA3Bt1L,EAA0B,wDAAXC,EAAW,uCACvD,OAAQA,EAAOC,MACb,KAAKkgB,IACH,OAAO,EAET,KAAKjgB,IACH,OAAO,EAET,KAAKA,IACL,KAAKA,IACH,OAAO,EAET,QACE,OAAOH,IAyPXo+G,SAlOe,WAA4B,IAA3Bp+G,EAA0B,wDAAXC,EAAW,uCAC1C,OAAQA,EAAOC,MACb,KAAKkgB,IACH,OAAO,EAET,KAAKjgB,IACH,OAAO,EAET,KAAKA,IACL,KAAKA,IACL,KAAKA,IACL,KAAKA,IACH,OAAO,EAET,QACE,OAAOH,IAoNXq+G,UA/MgB,WAA4B,IAA3Br+G,EAA0B,wDAAXC,EAAW,uCAC3C,OAAQA,EAAOC,MACb,KAAKkgB,IACH,OAAO,EAET,KAAKjgB,IACL,KAAKA,IACL,KAAKA,IACL,KAAKA,IACH,OAAO,EAET,KAAKA,IACL,KAAKA,IACL,KAAKA,IACL,KAAKA,IACL,KAAKA,IACH,OAAO,EAET,QACE,OAAOH,IA6LXs+G,WAxLiB,WAA4B,IAA3Bt+G,EAA0B,wDAAXC,EAAW,uCAC5C,OAAQA,EAAOC,MACb,KAAKkgB,IACH,OAAO,EAET,KAAKjgB,IACH,OAAO,EAET,KAAKA,IACL,KAAKA,IACH,OAAO,EAET,QACE,OAAOH,IA4KXu1L,UAvKgB,WAA4B,IAA3Bv1L,EAA0B,wDAAXC,EAAW,uCAC3C,OAAQA,EAAOC,MACb,KAAKkgB,IACH,OAAO,EAET,KAAKjgB,IACH,OAAO,EAET,KAAKA,IACL,KAAKA,IACH,OAAO,EAET,QACE,OAAOH,IA2JXu+G,yBA7B+B,WAA2B,IAA1Bv+G,EAAyB,uDAAjB,KAAMC,EAAW,uCACzD,OAAQA,EAAOC,MACb,KAAKkgB,IACH,OAAO,KAET,KAAKjgB,IACH,IAAQ4B,EAAU9B,EAAOM,QAAjBwB,MACR,OAAOA,EAET,KAAK5B,IACL,KAAKA,IACH,OAAO,KAET,QACE,OAAOH,IAgBX87G,kBApEwB,WAA2B,IAA1B97G,EAAyB,uDAAjB,KAAMC,EAAW,uCAClD,OAAQA,EAAOC,MACb,KAAKkgB,IACH,OAAO,KAET,KAAKjgB,IACH,IAAQ4B,EAAU9B,EAAOM,QAAjBwB,MACR,OAAOA,EAET,KAAK5B,IACL,KAAKA,IACH,OAAO,KAET,QACE,OAAOH,IAuDXw1L,yBAlD+B,WAA2B,IAA1Bx1L,EAAyB,uDAAjB,KAAMC,EAAW,uCACzD,OAAQA,EAAOC,MACb,KAAKkgB,IACH,OAAO,KAET,KAAKjgB,IACH,IAAQ4B,EAAU9B,EAAOM,QAAjBwB,MACR,OAAOA,EAET,KAAK5B,IACL,KAAKA,IACH,OAAO,KAET,QACE,OAAOH,IAqCXw+G,YAzJkB,WAA2B,IAA1Bx+G,EAAyB,uDAAjB,KAAMC,EAAW,uCAC5C,OAAQA,EAAOC,MACb,KAAKkgB,IACH,OAAO,KAET,KAAKjgB,IACL,KAAKA,IACH,IAAQ4B,EAAU9B,EAAOM,QAAjBwB,MACR,OAAOA,EAET,KAAK5B,IACL,KAAKA,IACL,KAAKA,IACL,KAAKA,IACH,OAAO,KAET,QACE,OAAOH,IAyIXy+G,aApImB,WAA2B,IAA1Bz+G,EAAyB,uDAAjB,KAAMC,EAAW,uCAC7C,OAAQA,EAAOC,MACb,KAAKkgB,IACH,OAAO,KAET,KAAKjgB,IACH,IAAQ4B,EAAU9B,EAAOM,QAAjBwB,MACR,OAAOA,EAET,KAAK5B,IACL,KAAKA,IACL,KAAKA,IACL,KAAKA,IACL,KAAKA,IACL,KAAKA,IACH,OAAO,KAET,QACE,OAAOH,IAmHX0+G,cA9GoB,WAA2B,IAA1B1+G,EAAyB,uDAAjB,KAAMC,EAAW,uCAC9C,OAAQA,EAAOC,MACb,KAAKkgB,IACH,OAAO,KAET,KAAKjgB,IACH,IAAQ4B,EAAU9B,EAAOM,QAAjBwB,MACR,OAAOA,EAET,KAAK5B,IACL,KAAKA,IACH,OAAO,KAET,QACE,OAAOH,IAiGXy1L,aA5FmB,WAA2B,IAA1Bz1L,EAAyB,uDAAjB,KAAMC,EAAW,uCAC7C,OAAQA,EAAOC,MACb,KAAKkgB,IACH,OAAO,KAET,KAAKjgB,IACH,IAAQ4B,EAAU9B,EAAOM,QAAjBwB,MACR,OAAOA,EAET,KAAK5B,IACL,KAAKA,IACH,OAAO,KAET,QACE,OAAOH,MAiFP01L,EAAwB,CAC5BxzL,IAAK,SACLC,QAASC,IACTC,gBAAiBC,IACjBC,UAAW,CAAC,WAAY,YAAa,aAAc,iBAAkB,yBACrEgqH,UAAW,CAAC,OAAQ,UAGP/pH,gBAAekzL,EAAuBt2K,GAG9C,IAAM3c,EAAc,SAACzC,GAAD,OAAWA,EAAMof,QAG/B86G,EAAW,SAACl6H,EAAO6mD,GAC9B,IAAMr0B,EAAQ/vB,EAAYzC,GAAO25G,KAAK9yD,GACtC,OAAIr0B,EACK,eACFA,QAEA,GA2BImjK,EAAgB,SAAC31L,GAAD,OAC3ByC,EAAYzC,GACTw/B,MAAMxd,KAAI,SAAC5T,GAAD,OAAQ8rH,EAASl6H,EAAOoO,MAClCkuB,QAAO,SAAC9J,GAAD,OAAWA,EAAMojK,YAAc,MAa9BC,EAA6B,SAAC71L,GAAD,uBAXV,SAACA,GAAD,OAC9ByC,EAAYzC,GAAOw/B,MAAMxd,KAAI,SAAC5T,GAAD,OAAQ8rH,EAASl6H,EAAOoO,MAWrD0nL,CAAiB91L,GAAOoc,MAAK,SAACoW,GAAD,OAAWA,EAAMnE,qBADN,QACqB,MAElD0nK,EAAmB,SAAC/1L,GAC/B,IAAMg2L,EAAiBL,EAAc31L,GAAOs8B,QAAO,SAAC9J,GAAD,OAAWA,EAAMnE,cAEpE,OAA8B,IAA1B2nK,EAAehtK,OAAqBgtK,EAAe,GAE3C,MAeDC,EAA8B,SAACj2L,GAAD,OAAWyC,EAAYzC,GAAOm+G,uBAC5D+3E,EAAuB,SAACl2L,GAAD,OAAWyC,EAAYzC,GAAO47G,iB,oIC59B5D3oE,EAAiB5yC,YAAgB,CACrCs5G,KAvEW,WAAyB,IAAxB35G,EAAuB,uDAAf,GAAIC,EAAW,uCACnC,OAAQA,EAAOC,MAEb,KAAKC,IACH,MAA4BF,EAAOM,QAA3B2d,EAAR,EAAQA,SAAUshB,EAAlB,EAAkBA,MACZrf,EAAQ,eAAQngB,GAQtB,OAPAw/B,EAAMrR,SAAQ,SAACgoK,GACbh2K,EAASg2K,GAAT,yBACE9nK,YAAY,GACTnQ,EAASi4K,IAFd,IAGEhgL,aAAa,OAGVgK,EAIT,QACE,OAAOngB,IAsDXw/B,MAjDY,WAAyB,IAAxBx/B,EAAuB,uDAAf,GAAIC,EAAW,uCACpC,OAAQA,EAAOC,MAEb,KAAKC,IACH,IAAQq/B,EAAUv/B,EAAOM,QAAjBi/B,MACR,OAAOs6E,IAAMt6E,GAIf,QACE,OAAOx/B,IAwCX47G,eAlCqB,WAA4B,IAA3B57G,EAA0B,wDAAXC,EAAW,uCAChD,OAAQA,EAAOC,MACb,KAAKC,IACH,OAAO,EAET,KAAKA,IACL,KAAKA,IACH,OAAO,EAET,QACE,OAAOH,IAyBX87G,kBApBwB,WAA2B,IAA1B97G,EAAyB,uDAAjB,KAAMC,EAAW,uCAClD,OAAQA,EAAOC,MACb,KAAKC,IACH,IAAQ4B,EAAU9B,EAAOM,QAAjBwB,MACR,OAAOA,EAET,KAAK5B,IACL,KAAKA,IACH,OAAO,KAET,QACE,OAAOH,MAYEizC,MAGR,IAAMxwC,EAAc,SAACzC,GAAD,OAAWA,EAAM2c,eAAec,OAAO81B,OAAON,gBAK5DmjJ,EAAwB,SAACp2L,GAAD,OACnCyC,EAAYzC,GAAOw/B,MAAMxd,KAAI,SAAC5T,GAAD,OAHC,SAACpO,EAAOm2L,GAAR,OAC9B1zL,EAAYzC,GAAO25G,KAAKw8E,GAEaE,CAAiBr2L,EAAOoO,Q,4cC5FlDkoL,EAA0B,eAAC/xK,EAAD,uDAAW,GAAX,MAAmB,CACxDrkB,KAAMC,IACNI,QAASgkB,IAGEgyK,EAA6B,SAACr4K,EAAUshB,GAAX,MAAsB,CAC9Dt/B,KAAMC,IACNI,QAAS,CACP2d,WACAshB,WAISg3J,EAAyB,eAACz0L,EAAD,uDAAS,CAAE+U,aAAc,QAASsL,YAAa,KAA/C,MAA0D,CAC9FliB,KAAMC,IACNI,QAAS,CACPwB,WA0BS00L,EAAsB,SAAC/jI,GAAD,MAAgC,CACjExyD,KAAMC,IACNI,QAASmyD,IAGEgkI,EAAyB,SAACtoL,EAAY6/B,EAAeykB,GAA5B,MAA0C,CAC9ExyD,KAAMC,IACNI,QAAS,CAAE6N,KAAI6/B,QAAOykB,cAGXikI,EAAqB,SAAC1oJ,EAAOlsC,GAAR,MAAmB,CACnD7B,KAAMC,IACNI,QAAS,CACP0tC,QACAlsC,WAIS60L,EAAuB,SAAClkI,GAAD,MAAgC,CAClExyD,KAAMC,IACNI,QAASmyD,IAGEmkI,EAA0B,SAACnkI,GAAD,MAAe,CACpDxyD,KAAMC,IACNI,QAASmyD,IAGEokI,EAAsB,SAACC,EAAah1L,GAAd,MAAyB,CAC1D7B,KAAMC,IACNI,QAAS,CACPw2L,cACAh1L,WAISi1L,EAAwB,SAAClmL,GAAD,MAA4D,CAC/F5Q,KAAMC,IACNI,QAAQ,eACHuQ,KAIMmmL,EAA2B,SAAC7oL,GAAD,MAAS,CAC/ClO,KAAMC,IACNI,QAAS,CACP6N,QAIS8oL,EAAuB,SAAC9oL,EAAIrM,GAAL,MAAgB,CAClD7B,KAAMC,IACNI,QAAS,CACP6N,KACArM,Y,sjBChGS4iL,EAAuB,eAACpgK,EAAD,uDAAW,GAAX,MAAmB,CACrDrkB,KAAMC,IACNI,QAASgkB,IAGEqgK,EAA0B,SAAC1mK,EAAUshB,GAAX,MAAsB,CAC3Dt/B,KAAMC,IACNI,QAAS,CACP2d,WACAshB,WAISqlJ,EAAsB,eAAC9iL,EAAD,uDAAS,CAAE+U,aAAc,QAASsL,YAAa,KAA/C,MAA0D,CAC3FliB,KAAMC,IACNI,QAAS,CACPwB,WA0BS+iL,EAAoB,SAAClvH,GAAD,MAAsC,CACrE11D,KAAMC,IACNI,QAASq1D,IAGEmvH,EAAuB,SAAC32K,EAAY6/B,EAAe2nB,GAA5B,MAAwC,CAC1E11D,KAAMC,IACNI,QAAS,CAAE6N,KAAI6/B,QAAO2nB,YAGXovH,EAAmB,SAAC/2I,EAAOlsC,GAAR,MAAmB,CACjD7B,KAAMC,IACNI,QAAS,CACP0tC,QACAlsC,WAISkjL,EAAqB,SAACrvH,GAAD,MAAsC,CACtE11D,KAAMC,IACNI,QAASq1D,IAGEsvH,EAAwB,SAACtvH,GAAD,MAAa,CAChD11D,KAAMC,IACNI,QAASq1D,IAGEuvH,EAAoB,SAACC,EAAWrjL,GAAZ,MAAuB,CACtD7B,KAAMC,IACNI,QAAS,CACP6kL,YACArjL,WAKSsjL,EAAmB,SAACzvH,GAAD,MAAsC,CACpE11D,KAAMC,IACNI,QAASq1D,IAGE0vH,EAAsB,SAAC1vH,GAAD,MAAa,CAC9C11D,KAAMC,IACNI,QAASq1D,IAGE2vH,EAAkB,SAACH,EAAWrjL,GAAZ,MAAuB,CACpD7B,KAAMC,IACNI,QAAS,CACP6kL,YACArjL,WAISyjL,EAAsB,SAAC10K,GAAD,MAAoD,CACrF5Q,KAAMC,IACNI,QAAQ,eACHuQ,KAIM20K,EAAyB,SAACr3K,GAAD,MAAS,CAC7ClO,KAAMC,IACNI,QAAS,CACP6N,QAISs3K,EAAqB,SAACt3K,EAAIrM,GAAL,MAAgB,CAChD7B,KAAMC,IACNI,QAAS,CACP6N,KACArM,Y,qGC9GEo1L,EAASC,sBAAW,SAAC/gL,EAAO6tG,GAAS,IAAD,IAGtChqG,EAiBE7D,EAjBF6D,MACA8oG,EAgBE3sG,EAhBF2sG,UACAq0E,EAeEhhL,EAfFghL,aACA7I,EAcEn4K,EAdFm4K,SACAv0K,EAaE5D,EAbF4D,KACAq9K,EAYEjhL,EAZFihL,QACA5nL,EAWE2G,EAXF3G,QACAb,EAUEwH,EAVFxH,KACA0oL,EASElhL,EATFkhL,WACAC,EAQEnhL,EARFmhL,UACAnJ,EAOEh4K,EAPFg4K,IACAoJ,EAMEphL,EANFohL,UACAC,EAKErhL,EALFqhL,SACAznL,EAIEoG,EAJFpG,OACK0nL,EAGHthL,EAHFuhL,IACAC,EAEExhL,EAFFwhL,cACGC,EAjBL,YAkBIzhL,EAlBJ,wKA8BA,OACE,eAACshL,EAAD,yBACE30E,UAAW+0E,IAAW,UAAD,mBAClB/0E,EAAYA,GADM,2BAEZ9oG,GAAUA,GAFE,+BAGRD,GAASA,GAHD,IAKrBiqG,IAAKA,GACD4zE,GAPN,eASW,IAARzJ,QAAyB//K,IAAR+/K,EAChB,uBACErrE,UAAW+0E,IAAW,iBAAkB,CACtC,oBAAqBT,IAEvBz0E,MAAK,2BACAg1E,GADA,IAEH10E,OAAQs0E,IAAcx9K,EAAOw9K,EAAY,GACzC9hL,MAAO+hL,IAAaz9K,EAAOy9K,EAAW,KAP1C,UAUGlJ,EA9BW,SAACwJ,GACnB,IAAMC,EAAU,GAKhB,OAJkBD,EAAIxzL,MAAM,KAClB2pB,SAAQ,SAAC87E,GACjBguF,EAAQz7K,KAAKytF,EAAE,OAEVguF,EAAQh4I,KAAK,IAwBFi4I,CAAYxoL,GAAWA,EAElCb,GAAc,KACdyoL,EACC,cAAC,IAAD,CAAOp9K,MAAOq9K,GAA0B,UAAWv0E,UAAU,oBAAoB4qE,MAAI,EAArF,SACG4J,GAAwB,MAEzB,QAGN,qBACEx0E,UAAW+0E,IAAW,eACnBV,EAAeA,IAElBn0E,IAAKmrE,EACLt6E,IAAI,YACJoP,OAAQs0E,IAAcx9K,EAAOw9K,EAAY,GACzC9hL,MAAO+hL,IAAaz9K,EAAOy9K,EAAW,KAGzCznL,EACC,sBACE+yG,UAAW+0E,KAAU,2CACD9nL,GAAWA,GADV,sCAEDgK,GAASA,GAFR,MAKrB,YAKKk9K,MA+DfA,EAAOluE,aAAe,CACpB2uE,IAAK,Q,yPCnIC51E,EAAuEC,IAAvED,OAAQE,EAA+DD,IAA/DC,YAAai2E,EAAkDl2E,IAAlDk2E,WAAYh2E,EAAsCF,IAAtCE,iBAEnCC,GAFyEH,IAApBm2E,gBAEtC,SAAC/1E,EAAW7rG,GAC/B,IAAI8rG,GAAmB,EACvB,IACEA,EACEA,GACCD,EAAUn2G,MACTm2G,EAAUn2G,KAAKq2G,OACfE,IAAOJ,EAAUn2G,KAAKq2G,MAAMpd,eAAe3/F,SAASi9G,IAAOjsG,EAAM2uF,gBACrE,MAAOud,IACT,IACEJ,EACEA,GACCD,EAAUn2G,KAAKy2G,YACdF,IAAOJ,EAAUn2G,KAAKy2G,WAAWxd,eAAe3/F,SAASi9G,IAAOjsG,EAAM2uF,gBAC1E,MAAOud,IAET,OAAOJ,IAEHM,EAAa,SAACvsG,GAClB,OACE,cAAC2rG,EAAD,2BAAY3rG,GAAZ,aACE,qBACEwsG,MAAO,CACLC,QAAS,OACTC,cAAe,MACf2qE,WAAY,SACZC,eAAiBt3K,EAAMnK,KAAKmsL,MAAS,gBAAoB,UAL7D,cAQwB/pL,IAArB+H,EAAMnK,KAAKmsL,MACV,qCACE,sBACEx1E,MAAO,CACLC,QAAS,OACTC,cAAe,MACf2qE,WAAY,UAJhB,UAOsB,MAAnBr3K,EAAMnK,KAAK2C,MAAgB,qBAAKm0G,UAAU,OAAf,SAAuB3sG,EAAMnK,KAAK2C,OAPhE,UAQMwH,EAAMnK,KAAKq2G,UAEhBlsG,EAAMnK,KAAKmsL,OACV,qCACE,cAAC,IAAD,CACEjqL,GAAE,eAAUiI,EAAMnK,KAAKmsL,MAAMjqL,IAC7Bw/K,MAAI,EACJ5qE,UAAU,QACVH,MAAOxsG,EAAMnK,KAAKmsL,MAAMx1E,MAJ1B,SAMGxsG,EAAMnK,KAAKmsL,MAAMvpL,OAEpB,cAAC,IAAD,CACEu+H,QAAQ,QACRH,UAAU,MACVn8B,OAAM,eAAU16F,EAAMnK,KAAKmsL,MAAMjqL,IAHnC,SAKGiI,EAAMnK,KAAKmsL,MAAM7kC,gBAM1B,qCACsB,MAAnBn9I,EAAMnK,KAAK2C,MAAgB,qBAAKm0G,UAAU,OAAf,SAAuB3sG,EAAMnK,KAAK2C,OADhE,UAEMwH,EAAMnK,KAAKq2G,gBAOrBe,EAAkB,SAACjtG,GACvB,OACE,cAAC6rG,EAAD,2BAAiB7rG,GAAjB,aACE,sBAAKwsG,MAAO,CAAEC,QAAS,OAAQC,cAAe,MAAO2qE,WAAY,UAAjE,UACsB,MAAnBr3K,EAAMnK,KAAK2C,MAAgB,qBAAKm0G,UAAU,OAAf,SAAuB3sG,EAAMnK,KAAK2C,OADhE,UAEMwH,EAAMnK,KAAKq2G,cAMjB+1E,EAAoB,SAACjiL,GACzB,OACE,eAAC8hL,EAAD,2BAAgB9hL,GAAhB,cACGA,EAAMnK,KAAKqsL,gBACV,qBAAK11E,MAAO,CAAEO,YAAa,OAA3B,SAAqC/sG,EAAMnK,KAAKqsL,iBAElD,sBAAK11E,MAAO,CAAEC,QAAS,OAAQC,cAAe,MAAO2qE,WAAY,UAAjE,UACsB,MAAnBr3K,EAAMnK,KAAK2C,MAAgB,qBAAKm0G,UAAU,OAAf,SAAuB3sG,EAAMnK,KAAK2C,OADhE,UAEMwH,EAAMnK,KAAKq2G,UAEhBlsG,EAAMnK,KAAK40K,MACV,qBAAK99D,UAAU,0BAA0BH,MAAO,CAAE0lC,WAAY,OAA9D,SACE,cAAC,IAAD,CAAM15I,KAAM,QAASoL,KAAM,GAAI4yH,QAAS,kBAAMx2H,EAAMnK,KAAK40K,KAAKzqK,EAAMnK,KAAKkC,cAmRpEoqL,IA5QU,SAACniL,GAAW,IAAD,YAEhCquG,EAUEruG,EAVFquG,MACAC,EASEtuG,EATFsuG,WAFF,EAWItuG,EARFwuG,eAHF,MAGY,GAHZ,IAWIxuG,EAPFyuG,iBAJF,WAWIzuG,EANF8C,kBALF,WAWI9C,EALFoiL,iBANF,WAWIpiL,EAJF+1H,iBAPF,SAQEt1H,EAGET,EAHFS,aARF,EAWIT,EAFFqiL,iBATF,MASc,GATd,EAUKpzE,EAVL,YAWIjvG,EAXJ,8GAYM5M,EAAOG,cAEb,EAAoC6iI,mBAAiB,IAArD,mBAAOh2H,EAAP,KAAmB26H,EAAnB,KACA,EAAmC3E,mBAAgB,IAAnD,oBAAOksD,GAAP,MAAqBC,GAArB,MACA9b,aAAqB,WACnB,GAAIp4D,EAAM/tG,OAASkuG,EAAQ77F,OAAS,EAClC,GAA2B,kBAAhB07F,EAAM/tG,MAAoB,CACnC,IAAM46H,EAAW1sB,EACdvoF,QAAO,SAAC8qF,GAAD,OACN1C,EAAM/tG,MACHnS,MAAM,KACNgB,SAASwlG,MAAMoc,EAAOzwG,OAASywG,EAAOzwG,MAAQywG,EAAOzwG,MAAM2L,eAE/DN,KAAI,SAAColG,GAAD,OAAYA,EAAOzwG,SACvBspC,KAAK,KACJykE,EAAM/tG,MAAMqS,SAAWuoH,EAASvoH,QAAQ07F,EAAMkB,SAAS2rB,QAE3D7sB,EAAMkB,SAAS,IAGnBgzE,GAAW/zE,KACV,CACDA,EAAQ7iG,KAAI,SAAC62K,GAAD,mBAAC,eACRA,GADO,IAEVhqL,KAAyB,kBAAZgqL,EAAGhqL,KAAoBiqL,yBAAeD,EAAGhqL,MAAQgqL,EAAGhqL,UAEnEpF,EAAKkhG,SAGO4a,iBAAiBrS,SAASvxF,MAAxC,IAEMqkG,GAAS,CACbI,QAAS,SAACD,EAAUnmH,GAClB,OAAO,2BACFmmH,GADL,IAGEE,WAAWrmH,EAAMsmH,UAAY,kBAC7BC,OAAQvmH,EAAMsmH,UAAN,oBAPEE,UAOF,eAAsD,kCAGlEC,YAAa,SAACN,EAAUnmH,GACtB,OAAO,2BACFmmH,GADL,IAEEO,WAAY,IACZC,SAAU,OACVC,WAAY,KACZ1sG,MAAO,UACP2sG,WAAY,kEAGhBkyE,WAAY,SAAC5yE,EAAUnmH,GACrB,OAAO,2BACFmmH,GADL,IAEEO,WAAY,IACZC,SAAU,OACVC,WAAY,KACZ1sG,MAAO,UAEP2sG,WAAY,kEAGhBC,SAAU,SAACX,EAAUnmH,GACnB,OAAO,2BACFmmH,GADL,IAGEO,WAAY,IACZC,SAAU,OACVC,WAAY,KACZ1sG,MAAO,UACP2sG,WAAY,mEAIZmyE,GAAkBP,EAAYQ,IAAkBC,IAEhD31E,GAAQ,IAAIC,IAAkB,CAClCC,cAAe,GACfC,YAAY,IAoDd,OACE,eAAC,IAAD,WACE,eAAC,IAAD,CAAOV,UAAU,aAAa6C,IAAKP,EAAWl3G,GAA9C,UACGk3G,EAAW/C,MACX+C,EAAWlc,UAAY,sBAAM4Z,UAAU,WAAhB,sBAE1B,eAAC,IAAD,WACE,cAAC,IAAD,CAAiB8C,UAAU,UAA3B,SAAsCzvG,EAAM0vG,mBAC5C,cAACizE,GAAD,CACEngL,WAAYysG,EAAWzsG,WACvBsgL,QAAShgL,EACT6sG,OAAQA,GACR53G,GAAIk3G,EAAWl3G,GACfg+H,UAAWA,EAGXnqB,WAAY,CACVD,OAAQY,EACRV,YAAaoB,EACb60E,WAAYG,EACZ30E,SArEO,SAACttG,GAChB,IAAMutG,EAAOvtG,EAAM1M,SACbk6G,EAAc,SAAC,GAAD,IAAG3hH,EAAH,EAAGA,IAAKgjB,EAAR,EAAQA,MAAO4+F,EAAf,EAAeA,OAAQjB,EAAvB,EAAuBA,MAAvB,OAClB,cAAC,IAAD,CAAcU,MAAOA,GAAOQ,YAAa,EAAaD,OAAQA,EAAQ/a,SAAU7jF,EAAhF,SACG,cAAG8+F,QAAH,IAAYC,EAAZ,EAAYA,cAAZ,OACC,qBAAKC,IAAKD,EAAyBpB,MAAOA,EAA1C,SACGe,EAAK1+F,IADsBhjB,KAFeA,IASnD,OAAO0hH,EAAK56F,OAAS,EACnB,cAAC,IAAD,CAAWm7F,cAAY,EAAvB,SACG,cAAGhB,OAAH,OACC,cAAC,IAAD,CACEiB,eAAgB,CACdzuG,MAAO,OACP0uG,gBAAiB,UACjBC,SAAU,QAEZzB,MAAO,CACLltG,MAAO,QAETA,MAAO,EACPwtG,OAAQ,IACRoB,SAAUX,EAAK56F,QAAU,EACzB66F,YAAaA,EACbW,UAAW,SAACN,GACV,IAAMf,EAASI,GAAMiB,UAAUN,GAC/B,OAAOf,EAAkB,GAATA,QAMxB,cAAChB,EAAD,eAAsB9rG,MAmClB0wG,YAAW,UACTzB,EAAWyB,mBADF,QACiBl9G,cAAUsE,cAAc,CAAEC,GAAI,wBAE1D40G,UACsB,MAApB2B,EAAW5iH,MAAgB,kCAAoC,wBAEjE6jH,SAAU,SAACwzE,EAAiBn5L,GAK1B,GAJsB,kBAAlBA,EAAOA,QACLqlH,EAAW+zE,UAAU/zE,EAAW+zE,SAASD,GAGzB,iBAAlBn5L,EAAOA,OAA2B,CACpC,IAAMwW,EAAa2iL,EAAgB3iL,WAAWivF,QAAQ,OAAQ,KAC9D,OAAO,2BAAK0zF,GAAZ,IAA6B3iL,eAG/BiuG,EAAMkB,SACJwzE,EACIjgL,EACEigL,EAAgBp3K,KAAI,SAAC2e,GAAD,OAAcA,EAAShqB,MAAM2L,cAAY29B,KAAK,KAClEm5I,EAAgBziL,MAAM2L,WACxB,MAEFgjG,EAAW2B,UAAU3B,EAAW2B,SAASmyE,GAC7ChoD,EAAc,KAEhBlqB,OAAQxC,EAAMwC,OACdoyE,iBAAkBb,EAAY,SAACpxE,GAAD,OAAgBtiB,YAAasiB,IAAc,KACzExC,QAAS8zE,GACTv2E,aAAcA,EACd+E,aAAwC,IAA3B7B,EAAW6B,YACxBxwG,MAAOkuG,EAAQvoF,QAAO,SAAC8qF,GAAD,MACG,kBAAhB1C,EAAM/tG,MACT+tG,EAAM/tG,MACHnS,MAAM,KACNwd,KAAI,SAACrL,GAAD,OAAWA,KACfnR,SAASwlG,MAAMoc,EAAOzwG,OAASywG,EAAOzwG,MAAQywG,EAAOzwG,MAAM2L,YAC9D,MAENklG,iBAAkB,SAAC+xE,GAAD,OAChBd,EACI5uL,cAAUsE,cACR,CAAEC,GAAI,uBACN,CAAEuI,MAAO4iL,EAAalyE,aAExBx9G,cAAUsE,cAAc,CAAEC,GAAI,sBAEpCq5G,cAAe,IACf+xE,kBACEf,EACI,SAAC9hL,GAAD,OAAW9M,cAAUsE,cAAc,CAAEC,GAAI,iBAAmB,CAAEuI,gBAC9DrI,EAENo5G,iBAAkB5C,OAAYx2G,EAAY4kG,SAASyU,cAAc,QACjElxG,WAAYA,EACZ2uG,cAAe,SAAC3uG,EAAYxW,EAAQ0I,GAClC,IAAM8wL,EAAuBruF,YAAmB30F,GAC5C6uG,EAAWF,eAAeE,EAAWF,cAAcq0E,EAAsBx5L,GAEzC,kBAAzBw5L,GACTroD,EAAcqoD,MAIpB,cAAC,IAAD,CAAiB3zE,UAAU,SAA3B,SAAqCzvG,EAAMuxG,qBAE5CjD,EAAW5iH,OACV,qBAAKihH,UAAU,mBAAmBH,MAAO,CAAEC,QAAS,SAApD,UACG,UAAA6B,EAAW5iH,aAAX,eAAkB0M,UAAWqI,GAC5B,cAAC,IAAD,CAAkB1I,GAAG,2BAIZ,KAAdsqL,GACC,sBAAK71E,MAAO,CAAEC,QAAS,QAAvB,UACGwC,EAAWo0E,YACTp0E,EAAWo0E,UAAUC,WACpB,cAAC,IAAD,CACEvrL,GAAI,kBACJS,KAAMy2G,EAAWo0E,UAAUl+K,SAC3B+wH,SAAU,GACVryH,MAAK,UAAEorG,EAAWo0E,UAAU/pL,iBAAvB,QAAoC,YACzCqzG,UAAU,iBACVnqG,WAAU,UAAEysG,EAAWo0E,UAAUE,oBAAvB,SACVvtD,YAAa/mB,EAAWo0E,UAAUC,WAClCrtD,eAAc,UAAEhnB,EAAWo0E,UAAUG,mBAAvB,aAAsCvrL,IAGtD,cAAC,IAAD,CACE2L,KAAM,GACNpL,KAAMy2G,EAAWo0E,UAAUl+K,SAC3BtB,MAAOorG,EAAWo0E,UAAU/pL,UAC5BkzG,MAAK,UAAEyC,EAAWo0E,UAAUI,iBAAvB,QAAoC,MAG/C,qBAAK92E,UAAU,iBAAiBH,MAAO,CAAEC,QAAS,SAAlD,SACG41E,SArHOpzE,EAAWpjH,O,shBCqPzBoc,EAAeje,YAAgB,CACnCs5G,KAvfW,WAAyB,IAAxB35G,EAAuB,uDAAf,GAAIC,EAAW,uCACnC,OAAQA,EAAOC,MACb,KAAKkgB,IACH,MAAO,GAGT,KAAKjgB,IACH,MAA4BF,EAAOM,QAA3B2d,EAAR,EAAQA,SAAUshB,EAAlB,EAAkBA,MACZrf,EAAW,GAUjB,OATAqf,EAAMrR,SAAQ,SAAC4wB,GACb5+B,EAAS4+B,GAAT,qCACE1wB,YAAY,EACZ+9F,cAAc,GACXpsH,EAAM++C,IACN7gC,EAAS6gC,IAJd,IAKE5oC,aAAa,OAGVgK,EAGT,KAAKhgB,IACH,MAA4BF,EAAOM,QAA3B2d,EAAR,EAAQA,SAAUshB,EAAlB,EAAkBA,MACZrf,EAAQ,eAAQngB,GAUtB,OATAw/B,EAAMrR,SAAQ,SAAC4wB,GACb5+B,EAAS4+B,GAAT,qCACE1wB,YAAY,EACZ+9F,cAAc,GACXpsH,EAAM++C,IACN7gC,EAAS6gC,IAJd,IAKE5oC,aAAa,OAGVgK,EAGT,KAAKhgB,IACH,MAA0BF,EAAOM,QAAzB0tC,EAAR,EAAQA,MAAOwP,EAAf,EAAeA,OACTt9B,EAAW69F,IAAKh+G,EAAOiuC,GAO7B,OANA9tB,EAASs9B,EAAOsB,UAAhB,qCACEqtE,cAAc,GACXpsH,EAAMiuC,IACNwP,GAHL,IAIEtnC,aAAa,IAERgK,EAGT,KAAKhgB,IACH,IAAMs9C,EAASx9C,EAAOM,QACtB,OAAO,2BACFP,GADL,kBAEGy9C,EAAOsB,SAFV,qCAGIqtE,cAAc,GACXpO,IAAKh+G,EAAMy9C,EAAOsB,UAAW,CAAC,eAC9Bi/D,IAAKvgE,EAAQ,CAAC,eALrB,IAMItnC,aAAa,MAMnB,KAAKhW,IACH,IAAMs9C,EAASx9C,EAAOM,QAChB4f,EAAQ,eAAQngB,GAOtB,OANAmgB,EAASs9B,EAAOsB,UAAhB,yBACEqtE,cAAc,EACd/9F,YAAY,GACT2vF,IAAKvgE,EAAQ,UAHlB,IAIEtnC,aAAa,IAERgK,EAET,KAAKhgB,IACH,IAAMs9C,EAASx9C,EAAOM,QACtB,OAAO,2BACFP,GADL,kBAEGy9C,EAAOsB,SAFV,qCAGIqtE,cAAc,GACXpsH,EAAMy9C,EAAOsB,WAJpB,IAKIE,UAAWj/C,EAAMy9C,EAAOsB,WACrBi/D,IAAKvgE,EAAQ,UANpB,IAOItnC,aAAa,MAMnB,KAAKhW,IACH,IAAQ8tC,EAAUhuC,EAAOM,QAAjB0tC,MACR,OAAIjuC,EAAMiuC,GACD+vE,IAAKh+G,EAAOiuC,GAEdjuC,EAET,KAAKG,IACH,IAAQ8+C,EAAch/C,EAAOM,QAArB0+C,UACR,OAAO,2BACFj/C,GADL,kBAEGi/C,EAAUF,SAFb,qCAGIqtE,cAAc,GACXpO,IAAKh+G,EAAMi/C,EAAUF,UAAW,CAAC,eACjCE,GALP,IAMI9oC,aAAa,MAMnB,KAAKhW,IACH,IAAQ4+C,EAAa9+C,EAAOM,QAApBw+C,SACR,OAAOi/D,IAAKh+G,EAAO++C,GAIrB,KAAK5+C,IACH,IAAM4+C,EAAW9+C,EAAOM,QAClB4f,EAAQ,2BACTngB,GADS,kBAEX++C,EAFW,2BAGP/+C,EAAM++C,IAHC,IAIV1wB,YAAY,MAGhB,OAAOlO,EAGT,KAAKhgB,IACH,IAAM4+C,EAAW9+C,EAAOM,QACxB,OAAO,2BACFP,GADL,kBAEG++C,EAFH,2BAGO/+C,EAAM++C,IAHb,IAII1wB,YAAY,MAKlB,KAAKluB,IACH,IAAM+gK,EAAYjhK,EAAOM,QACnB4f,EAAQ,eAAQngB,GAiBtB,OAhBwB,GAApBkhK,EAAUl4I,OACZmF,IAAQnuB,GAAO,SAACy9C,EAAasB,GAC3B5+B,EAAS4+B,GAAT,2BACKtB,GADL,IAEEpvB,YAAY,OAIhB6yI,EAAU/yI,SAAQ,SAAC4wB,GACjB5+B,EAAS4+B,GAAT,2BACK/+C,EAAM++C,IADX,IAEE1wB,YAAY,OAKXlO,EAGT,KAAKhgB,IACH,IAAM+gK,EAAYjhK,EAAOM,QACnB4f,EAAQ,eAAQngB,GAiBtB,OAhBwB,GAApBkhK,EAAUl4I,OACZmF,IAAQnuB,GAAO,SAACy9C,EAAasB,GAC3B5+B,EAAS4+B,GAAT,2BACKtB,GADL,IAEEpvB,YAAY,OAIhB6yI,EAAU/yI,SAAQ,SAAC4wB,GACjB5+B,EAAS4+B,GAAT,2BACK/+C,EAAM++C,IADX,IAEE1wB,YAAY,OAKXlO,EAIT,KAAKhgB,IACH,IAAM4+C,EAAW9+C,EAAOM,QAAQw+C,SAC1BlsB,EAAS5yB,EAAOM,QAAQsyB,OACxB1S,EAAQ,2BACTngB,GADS,kBAEX++C,EAFW,2BAGP/+C,EAAM++C,IAHC,IAIVjJ,SAAUjjB,EAAOijB,SACjBqJ,WAAYtsB,EAAOssB,eAGvB,OAAOh/B,EAGT,KAAKhgB,IACH,IAAM4+C,EAAW9+C,EAAOM,QAAQw+C,SAChC,OAAO,2BACF/+C,GADL,kBAEG++C,EAFH,2BAGO/+C,EAAM++C,IAHb,IAIIjJ,SAAU,KACVqJ,WAAY,SAMlB,QACE,OAAOn/C,IAqSXw/B,MAhSY,WAAyB,IAAxBx/B,EAAuB,uDAAf,GAAIC,EAAW,uCACpC,OAAQA,EAAOC,MACb,KAAKkgB,IACH,MAAO,GAGT,KAAKjgB,IACH,IAAQq/B,EAAUv/B,EAAOM,QAAjBi/B,MACR,OAAOs6E,IAAMt6E,GAGf,KAAKr/B,IACH,IAAQq/B,EAAUv/B,EAAOM,QAAjBi/B,MACR,OAAO+yB,IAAK,GAAD,mBAAKvyD,GAAL,YAAew/B,KAG5B,KAAKr/B,IACH,MAA0BF,EAAOM,QAAzB0tC,EAAR,EAAQA,MAAOwP,EAAf,EAAeA,OACf,OAAOz9C,EAAMgiB,KAAI,SAAC+8B,GAAD,OAAeA,IAAa9Q,EAAQwP,EAAOsB,SAAWA,KAGzE,KAAK5+C,IACH,IAAQ4+C,EAAa9+C,EAAOM,QAApBw+C,SACR,OAAO/+C,EAAMs8B,QAAO,SAACy9J,GAAD,OAAmBA,IAAkBh7I,KAI3D,KAAK5+C,IACH,IAAMs9C,EAASx9C,EAAOM,QACtB,MAAM,GAAN,mBAAWP,GAAX,CAAkBy9C,EAAOsB,WAI3B,KAAK5+C,IACH,IAAQ8tC,EAAUhuC,EAAOM,QAAjB0tC,MACR,OAAOjuC,EAAMs8B,QAAO,SAACy9J,GAAD,OAAmBA,IAAkB9rJ,KAI3D,QACE,OAAOjuC,IAyPXm+G,sBAxL4B,WAA4B,IAA3Bn+G,EAA0B,wDAAXC,EAAW,uCACvD,OAAQA,EAAOC,MACb,KAAKkgB,IACH,OAAO,EAET,KAAKjgB,IACH,OAAO,EAET,KAAKA,IACL,KAAKA,IACH,OAAO,EAET,QACE,OAAOH,IA4KX47G,eA3MqB,WAA4B,IAA3B57G,EAA0B,wDAAXC,EAAW,uCAChD,OAAQA,EAAOC,MACb,KAAKkgB,IACH,OAAO,EAET,KAAKjgB,IACH,OAAO,EAET,KAAKA,IACL,KAAKA,IACH,OAAO,EAET,QACE,OAAOH,IA+LXo+G,SAxKe,WAA4B,IAA3Bp+G,EAA0B,wDAAXC,EAAW,uCAC1C,OAAQA,EAAOC,MACb,KAAKkgB,IACH,OAAO,EAET,KAAKjgB,IACH,OAAO,EAET,KAAKA,IACL,KAAKA,IACH,OAAO,EAET,QACE,OAAOH,IA4JXq+G,UAvJgB,WAA4B,IAA3Br+G,EAA0B,wDAAXC,EAAW,uCAC3C,OAAQA,EAAOC,MACb,KAAKkgB,IACH,OAAO,EAET,KAAKjgB,IACH,OAAO,EAET,KAAKA,IACL,KAAKA,IACH,OAAO,EAET,QACE,OAAOH,IA2IXs+G,WAtIiB,WAA4B,IAA3Bt+G,EAA0B,wDAAXC,EAAW,uCAC5C,OAAQA,EAAOC,MACb,KAAKkgB,IACH,OAAO,EAET,KAAKjgB,IACH,OAAO,EAET,KAAKA,IACL,KAAKA,IACH,OAAO,EAET,QACE,OAAOH,IA0HXu+G,yBAlG+B,WAA2B,IAA1Bv+G,EAAyB,uDAAjB,KAAMC,EAAW,uCACzD,OAAQA,EAAOC,MACb,KAAKkgB,IACH,OAAO,KAET,KAAKjgB,IACH,IAAQ4B,EAAU9B,EAAOM,QAAjBwB,MACR,OAAOA,EAET,KAAK5B,IACL,KAAKA,IACH,OAAO,KAET,QACE,OAAOH,IAqFX87G,kBAtHwB,WAA2B,IAA1B97G,EAAyB,uDAAjB,KAAMC,EAAW,uCAClD,OAAQA,EAAOC,MACb,KAAKkgB,IACH,OAAO,KAET,KAAKjgB,IACH,IAAQ4B,EAAU9B,EAAOM,QAAjBwB,MACR,OAAOA,EAET,KAAK5B,IACL,KAAKA,IACH,OAAO,KAET,QACE,OAAOH,IAyGXw+G,YAjFkB,WAA2B,IAA1Bx+G,EAAyB,uDAAjB,KAAMC,EAAW,uCAC5C,OAAQA,EAAOC,MACb,KAAKkgB,IACH,OAAO,KAET,KAAKjgB,IACH,IAAQ4B,EAAU9B,EAAOM,QAAjBwB,MACR,OAAOA,EAET,KAAK5B,IACL,KAAKA,IACH,OAAO,KAET,QACE,OAAOH,IAoEXy+G,aA/DmB,WAA2B,IAA1Bz+G,EAAyB,uDAAjB,KAAMC,EAAW,uCAC7C,OAAQA,EAAOC,MACb,KAAKkgB,IACH,OAAO,KAET,KAAKjgB,IACH,IAAQ4B,EAAU9B,EAAOM,QAAjBwB,MACR,OAAOA,EAET,KAAK5B,IACL,KAAKA,IACH,OAAO,KAET,QACE,OAAOH,IAkDX0+G,cA7CoB,WAA2B,IAA1B1+G,EAAyB,uDAAjB,KAAMC,EAAW,uCAC9C,OAAQA,EAAOC,MACb,KAAKkgB,IACH,OAAO,KAET,KAAKjgB,IACH,IAAQ4B,EAAU9B,EAAOM,QAAjBwB,MACR,OAAOA,EAET,KAAK5B,IACL,KAAKA,IACH,OAAO,KAET,QACE,OAAOH,IAgCX+9H,kBA3BwB,WAA4B,IAA3B/9H,EAA0B,wDAAXC,EAAW,uCACnD,OAAQA,EAAOC,MACb,KAAKkgB,IACH,OAAO,EAET,KAAKjgB,IACH,OAAO,EAET,QACE,OAAOH,IAmBXg6L,+BApOqC,WAAqC,IAAjB/5L,EAAgB,uCACzE,OAAQA,EAAOC,MACb,KAAKC,IACH,OAAO,EAET,KAAKA,IAGL,QACE,OAAO,IA4NX85L,sBAlP4B,WAAgC,IAAZh6L,EAAW,uCAC3D,OAAQA,EAAOC,MACb,KAAKC,IACH,MAAO,GAET,KAAKA,IAA6C,IAAD,EAC/C,iBAAOF,EAAOM,eAAd,QAAyB,GAE3B,QAAU,IAAD,EACP,iBAAON,EAAOM,eAAd,QAAyB,KA0O7B25L,mBAjQyB,WAAqC,IAAjBj6L,EAAgB,uCAC7D,OAAQA,EAAOC,MACb,KAAKC,IACH,OAAO,EAET,KAAKA,IAGL,QACE,OAAO,MA2PPg6L,EAAyB,CAC7Bj4L,IAAK,UACLC,QAASC,IACTC,gBAAiBC,IACjBC,UAAW,CAAC,WAAY,YAAa,aAAc,iBAAkB,yBACrEgqH,UAAW,CAAC,OAAQ,QAAS,0BAIhB/pH,gBAAe23L,EAAwB77K,GAI/C,IAAM7b,EAAc,SAACzC,GAAD,OAAWA,EAAMse,SAG/B87K,EAAY,SAACp6L,EAAO++C,GAAR,uBACvBt8C,EAAYzC,GAAO25G,KAAK56D,UADD,QACc,MAE1Bs7I,EAAiB,SAACr6L,GAAD,OAC5ByC,EAAYzC,GACTw/B,MAAMxd,KAAI,SAAC5T,GAAD,OAAQgsL,EAAUp6L,EAAOoO,MACnCkuB,QAAO,SAACmhB,GAAD,OAAYA,EAAO68I,aAAe,MAEjCC,EAA6B,SAACv6L,EAAOsB,GAEhD,OAAO+4L,EAAer6L,GAAOs8B,QAC3B,SAACmhB,GAAD,aACEn8C,KACEA,EAAWiE,YAAcjE,EAAWiE,aAAek4C,EAAOl4C,eAC1DjE,EAAWoD,gBAAkBpD,EAAWoD,iBAAmB+4C,EAAO/4C,mBAClEpD,EAAWsD,YAActD,EAAWsD,aAAe64C,EAAO74C,eAC1DtD,EAAWwD,eAAiBxD,EAAWwD,gBAAkB24C,EAAO34C,kBAChExD,EAAWulD,UAAZ,UACCpJ,EAAOr+B,cADR,aACC,EAAe5a,MAAM,KAAKgB,SAAS0/F,OAAO5jG,EAAWulD,YACrDvlD,EAAWulD,QAAU,KAAOpJ,EAAOr+B,YAI9Bo7K,EAAyB,SAACx6L,EAAYs/C,GACjD,OAAO+6I,EAAer6L,GAAOoc,MAAK,SAACqhC,GAAD,OAAkB,OAANA,QAAM,IAANA,OAAA,EAAAA,EAAQ8hE,eAAgBjgE,MAG3Dm7I,EAAqC,SAChDz6L,EACAs/C,EACAh+C,GAEA,OAAOi5L,EAA2Bv6L,EAAOsB,GAAY8a,MACnD,SAACqhC,GAAD,OAAkB,OAANA,QAAM,IAANA,OAAA,EAAAA,EAAQ8hE,eAAgBjgE,MAY3Bo7I,EAAoB,SAAC16L,GAChC,IAAM26L,EAAkBN,EAAer6L,GAAOs8B,QAAO,SAACmhB,GAAD,OAAYA,EAAOpvB,cAExE,OAA+B,IAA3BssK,EAAgB3xK,OAAqB2xK,EAAgB,GAE7C,MAqBDC,EAA6B,SAAC56L,EAAY++C,EAAkBwgE,GACvE,GAAiB,OAAbxgE,QAAkCzwC,IAAbywC,EAAwB,CAC/C,IAAMtB,EAAS28I,EAAUp6L,EAAO++C,GAChC,GAAItB,EAAQ,OAAOA,EAErB,GAAoB,OAAhB8hE,QAAwCjxG,IAAhBixG,IAA8B,OAAOta,KAAKsa,GAAc,CAClF,IAAM9hE,EAAS+8I,EAAuBx6L,EAAOu/G,GAC7C,GAAI9hE,EAAQ,OAAOA,IAKVo9I,EAA+B,SAAC76L,GAAD,OAAWyC,EAAYzC,GAAOm+G,uBAC7D28E,EAAwB,SAAC96L,GAAD,OAAWyC,EAAYzC,GAAO47G,gBAStDm/E,EAA6B,SAAC/6L,GAAD,OACxCyC,EAAYzC,GAAOg6L,gCACRgB,EAA0B,SAACh7L,GAAD,OAAWyC,EAAYzC,GAAOi6L,wB,8DCznBtDgB,IANC,SAAC,GAAD,IAAGC,EAAH,EAAGA,OAAH,IAAWhN,cAAX,aAA2BiN,qBAA3B,MAA2C,GAA3C,MAA+Ct4E,aAA/C,MAAuD,GAAvD,SACd,oBAAIA,MAAK,aAAIk+D,UAAWmN,EAAS,SAAW,GAAIiN,cAAeA,GAAkBt4E,GAAjF,SACE,cAAC,IAAD,CAAkBz0G,GAAI8sL,Q,uTCwYpBl9K,EAAS3d,YAAgB,CAC7Bs5G,KA1YW,WAAyB,IAAxB35G,EAAuB,uDAAf,GAAIC,EAAW,uCACnC,OAAQA,EAAOC,MAEb,KAAKC,IACH,MAA4BF,EAAOM,QAA3B2d,EAAR,EAAQA,SAAUshB,EAAlB,EAAkBA,MACZrf,EAAQ,eAAQngB,GAQtB,OAPAw/B,EAAMrR,SAAQ,SAACvL,GACbzC,EAASyC,GAAT,yBACEyL,YAAY,GACTnQ,EAAS0E,IAFd,IAGEzM,aAAa,OAGVgK,EAGT,KAAKhgB,IACH,MAA4BF,EAAOM,QAA3B2d,EAAR,EAAQA,SAAUshB,EAAlB,EAAkBA,MACZrf,EAAQ,eAAQngB,GAStB,OARAw/B,EAAMrR,SAAQ,SAAC8G,GACb9U,EAAS8U,GAAT,qCACE5G,YAAY,GACTruB,EAAMi1B,IACN/W,EAAS+W,IAHd,IAIE9e,aAAa,OAGVgK,EAGT,KAAKhgB,IACH,IAAMmgB,EAAQrgB,EAAOM,QACf4f,EAAQ,eAAQngB,GAOtB,OANAmgB,EAASG,EAAMsC,SAAf,qCACEyL,YAAY,GACTruB,EAAMsgB,EAAMsC,UACZtC,GAHL,IAIEnK,aAAa,IAERgK,EAGT,KAAKhgB,IACH,MAAyBF,EAAOM,QAAxB0tC,EAAR,EAAQA,MAAO3tB,EAAf,EAAeA,MACTH,EAAW69F,IAAKh+G,EAAOiuC,GAM7B,OALA9tB,EAASG,EAAMsC,SAAf,uCACK5iB,EAAMiuC,IACN3tB,GAFL,IAGEnK,aAAa,IAERgK,EAGT,KAAKhgB,IACH,IAAMmgB,EAAQrgB,EAAOM,QACrB,OAAO,2BACFP,GADL,kBAEGsgB,EAAMsC,QAFT,uCAGOo7F,IAAKh+G,EAAMsgB,EAAMsC,SAAU,CAAC,cAC5Bo7F,IAAK19F,EAAO,CAAC,cAJpB,IAKInK,aAAa,MAMnB,KAAKhW,IACH,IAAMmgB,EAAQrgB,EAAOM,QACf4f,EAAQ,eAAQngB,GAMtB,OALAmgB,EAASG,EAAMsC,SAAf,yBACEyL,YAAY,GACT/N,GAFL,IAGEnK,aAAa,IAERgK,EAET,KAAKhgB,IACH,IAAMmgB,EAAQrgB,EAAOM,QACrB,OAAO,2BACFP,GADL,kBAEGsgB,EAAMsC,QAFT,uCAGO5iB,EAAMsgB,EAAMsC,UAHnB,IAIIK,SAAUjjB,EAAMsgB,EAAMsC,UACnBtC,GALP,IAMInK,aAAa,MAMnB,KAAKhW,IACH,IAAQ8tC,EAAUhuC,EAAOM,QAAjB0tC,MACR,OAAIjuC,EAAMiuC,GACD+vE,IAAKh+G,EAAOiuC,GAEdjuC,EAET,KAAKG,IACH,IAAM8iB,EAAWhjB,EAAOM,QACxB,OAAO,2BACFP,GADL,kBAEGijB,EAASL,QAFZ,uCAGOo7F,IAAKh+G,EAAMijB,EAASL,SAAU,CAAC,cAC/BK,GAJP,IAKI9M,aAAa,MAMnB,KAAKhW,IACH,IAAQyiB,EAAY3iB,EAAOM,QAAnBqiB,QACR,OAAOo7F,IAAKh+G,EAAO4iB,GAIrB,KAAKziB,IACH,IAAMyiB,EAAU3iB,EAAOM,QACjB4f,EAAQ,2BACTngB,GADS,kBAEX4iB,EAFW,2BAGP5iB,EAAM4iB,IAHC,IAIVyL,YAAY,MAGhB,OAAOlO,EAGT,KAAKhgB,IACH,IAAMyiB,EAAU3iB,EAAOM,QACvB,OAAO,2BACFP,GADL,kBAEG4iB,EAFH,2BAGO5iB,EAAM4iB,IAHb,IAIIyL,YAAY,MAKlB,KAAKluB,IACH,IAAMi7L,EAAWn7L,EAAOM,QAClB4f,EAAQ,eAAQngB,GAiBtB,OAhBuB,GAAnBo7L,EAASpyK,OACXmF,IAAQnuB,GAAO,SAACsgB,EAAYsC,GAC1BzC,EAASyC,GAAT,2BACKtC,GADL,IAEE+N,YAAY,OAIhB+sK,EAASjtK,SAAQ,SAACvL,GAChBzC,EAASyC,GAAT,2BACK5iB,EAAM4iB,IADX,IAEEyL,YAAY,OAKXlO,EAGT,KAAKhgB,IACH,IAAMi7L,EAAWn7L,EAAOM,QAClB4f,EAAQ,eAAQngB,GAiBtB,OAhBuB,GAAnBo7L,EAASpyK,OACXmF,IAAQnuB,GAAO,SAACsgB,EAAYsC,GAC1BzC,EAASyC,GAAT,2BACKtC,GADL,IAEE+N,YAAY,OAIhB+sK,EAASjtK,SAAQ,SAACvL,GAChBzC,EAASyC,GAAT,2BACK5iB,EAAM4iB,IADX,IAEEyL,YAAY,OAKXlO,EAIT,QACE,OAAOngB,IAkNXw/B,MA7MY,WAAyB,IAAxBx/B,EAAuB,uDAAf,GAAIC,EAAW,uCACpC,OAAQA,EAAOC,MAEb,KAAKC,IACH,IAAQq/B,EAAUv/B,EAAOM,QAAjBi/B,MACR,OAAOs6E,IAAMt6E,GAGf,KAAKr/B,IACH,IAAQq/B,EAAUv/B,EAAOM,QAAjBi/B,MACR,OAAO+yB,IAAK,GAAD,mBAAKvyD,GAAL,YAAew/B,KAG5B,KAAKr/B,IACH,IAAMmgB,EAAQrgB,EAAOM,QACrB,OAAOgyD,IAAK,GAAD,mBAAKvyD,GAAL,CAAYsgB,EAAMsC,WAG/B,KAAKziB,IACH,MAAyBF,EAAOM,QAAxB0tC,EAAR,EAAQA,MAAO3tB,EAAf,EAAeA,MACf,OAAOtgB,EAAMgiB,KAAI,SAACY,GAAD,OAAcA,IAAYqrB,EAAQ3tB,EAAMsC,QAAUA,KAGrE,KAAKziB,IACH,IAAQyiB,EAAY3iB,EAAOM,QAAnBqiB,QACR,OAAO5iB,EAAMs8B,QAAO,SAAC++J,GAAD,OAAkBA,IAAiBz4K,KAIzD,KAAKziB,IACH,IAAMmgB,EAAQrgB,EAAOM,QACrB,MAAM,GAAN,mBAAWP,GAAX,CAAkBsgB,EAAMsC,UAI1B,KAAKziB,IACH,IAAQ8tC,EAAUhuC,EAAOM,QAAjB0tC,MACR,OAAOjuC,EAAMs8B,QAAO,SAAC++J,GAAD,OAAkBA,IAAiBptJ,KAIzD,QACE,OAAOjuC,IAoKX60K,WA/IiB,WAA4B,IAA3B70K,EAA0B,wDAAXC,EAAW,uCAC5C,OAAQA,EAAOC,MACb,KAAKC,IACH,OAAO,EAET,KAAKA,IACL,KAAKA,IACH,OAAO,EAET,QACE,OAAOH,IAsIX47G,eA/JqB,WAA4B,IAA3B57G,EAA0B,wDAAXC,EAAW,uCAChD,OAAQA,EAAOC,MACb,KAAKC,IACH,OAAO,EAET,KAAKA,IACL,KAAKA,IACH,OAAO,EAET,QACE,OAAOH,IAsJXo+G,SAlIe,WAA4B,IAA3Bp+G,EAA0B,wDAAXC,EAAW,uCAC1C,OAAQA,EAAOC,MACb,KAAKC,IACH,OAAO,EAET,KAAKA,IACL,KAAKA,IACH,OAAO,EAET,QACE,OAAOH,IAyHXq+G,UApHgB,WAA4B,IAA3Br+G,EAA0B,wDAAXC,EAAW,uCAC3C,OAAQA,EAAOC,MACb,KAAKC,IACH,OAAO,EAET,KAAKA,IACL,KAAKA,IACH,OAAO,EAET,QACE,OAAOH,IA2GXs+G,WAtGiB,WAA4B,IAA3Bt+G,EAA0B,wDAAXC,EAAW,uCAC5C,OAAQA,EAAOC,MACb,KAAKC,IACH,OAAO,EAET,KAAKA,IACL,KAAKA,IACH,OAAO,EAET,QACE,OAAOH,IA6FX80K,cAxEoB,WAA2B,IAA1B90K,EAAyB,uDAAjB,KAAMC,EAAW,uCAC9C,OAAQA,EAAOC,MACb,KAAKC,IACH,IAAQ4B,EAAU9B,EAAOM,QAAjBwB,MACR,OAAOA,EAET,KAAK5B,IACL,KAAKA,IACH,OAAO,KAET,QACE,OAAOH,IA8DX87G,kBAzFwB,WAA2B,IAA1B97G,EAAyB,uDAAjB,KAAMC,EAAW,uCAClD,OAAQA,EAAOC,MACb,KAAKC,IACH,IAAQ4B,EAAU9B,EAAOM,QAAjBwB,MACR,OAAOA,EAET,KAAK5B,IACL,KAAKA,IACH,OAAO,KAET,QACE,OAAOH,IA+EXw+G,YA1DkB,WAA2B,IAA1Bx+G,EAAyB,uDAAjB,KAAMC,EAAW,uCAC5C,OAAQA,EAAOC,MACb,KAAKC,IACH,IAAQ4B,EAAU9B,EAAOM,QAAjBwB,MACR,OAAOA,EAET,KAAK5B,IACL,KAAKA,IACH,OAAO,KAET,QACE,OAAOH,IAgDXy+G,aA3CmB,WAA2B,IAA1Bz+G,EAAyB,uDAAjB,KAAMC,EAAW,uCAC7C,OAAQA,EAAOC,MACb,KAAKC,IACH,IAAQ4B,EAAU9B,EAAOM,QAAjBwB,MACR,OAAOA,EAET,KAAK5B,IACL,KAAKA,IACH,OAAO,KAET,QACE,OAAOH,IAiCX0+G,cA5BoB,WAA2B,IAA1B1+G,EAAyB,uDAAjB,KAAMC,EAAW,uCAC9C,OAAQA,EAAOC,MACb,KAAKC,IACH,IAAQ4B,EAAU9B,EAAOM,QAAjBwB,MACR,OAAOA,EAET,KAAK5B,IACL,KAAKA,IACH,OAAO,KAET,QACE,OAAOH,MAoBEge,MAGR,IAAMvb,EAAc,SAACzC,GAAD,OAAWA,EAAMge,QAG/Bs9K,EAAW,SAACt7L,EAAO4iB,GAAR,OAAoBngB,EAAYzC,GAAO25G,KAAK/2F,IACvD24K,EAAgB,SAACv7L,GAAD,OAC3ByC,EAAYzC,GACTw/B,MAAMxd,KAAI,SAAC5T,GAAD,OAAQktL,EAASt7L,EAAOoO,MAClCkuB,QAAO,SAAChc,GAAD,OAAWA,EAAMk7K,YAAc,MAE9BC,EAA4B,SAACz7L,EAAOsB,GAC/C,OAAOi6L,EAAcv7L,GAAOs8B,QAC1B,SAAChc,GAAD,OACEhf,KACEA,EAAWiE,YAAcjE,EAAWiE,aAAe+a,EAAM/a,eACzDjE,EAAWoD,gBAAkBpD,EAAWoD,iBAAmB4b,EAAM5b,mBACjEpD,EAAWsD,YAActD,EAAWsD,aAAe0b,EAAM1b,eACzDtD,EAAWwD,eAAiBxD,EAAWwD,gBAAkBwb,EAAMxb,mBAU1D42L,EAAmB,SAAC17L,GAC/B,IAAM27L,EAAiBJ,EAAcv7L,GAAOs8B,QAAO,SAAChc,GAAD,OAAWA,EAAM+N,cAEpE,OAA8B,IAA1BstK,EAAe3yK,OAAqB2yK,EAAe,GAE3C,MAKDC,EAAuB,SAAC57L,GAAD,OAAWyC,EAAYzC,GAAO47G,iB,oCC/bnDr3G,IATK,CAClBs3L,UAAW,QACX75D,aAAc,QACdF,aAAc,QACdg6D,mBAAoB,QACpBl/I,YAAa,QACbm/I,eAAgB,U,+BCNlB,wOAMa34J,EAAU,YAUVwH,EAA0B,SAAC95B,EAAcrE,GACpD,IAAM6D,EAAe,IAAIjE,IAGzB,OAFAg1B,IAAsB1wB,6BAA6BC,IAAON,GAC1DA,EAAa3D,iBAAiBF,GACvB6D,EAAa9C,KAAb,UAAqB41B,EAArB,QAAoCtyB,IA+BhCkrL,EAAsB,SAAClrL,EAA4BrE,GAC9D,IAAM6D,EAAe,IAAIjE,IAGzB,OAFAg1B,IAAsB1wB,6BAA6BC,IAAON,GAC1DA,EAAa3D,iBAAiBF,GACvB6D,EAAa9C,KAAb,UAAqB41B,EAArB,wBAAoDtyB,IAGhDs6B,EAAwB,SAACt6B,EAAcrE,GAClD,IAAM6D,EAAe,IAAIjE,IASzB,OARAg1B,IAAsB1wB,6BAA6BC,IAAON,GAC1DA,EAAa5D,iBAAiB,CAC5B2B,KAAK,GAAD,OAAKyC,EAAQu6B,cACjBn9B,OAAQ,qBACRjO,OAAQ,SACR2N,WAAY,iBAEd0C,EAAa3D,iBAAiBF,GACvB6D,EAAa9C,KAAb,UAAqB41B,EAArB,WAAuCtyB,IAGnCg6B,EAAsB,SAACh6B,EAAcrE,EAA6BwvL,GAC7E,IAAM3rL,EAAe,IAAIjE,IASzB,OARAg1B,IAAsB1wB,6BAA6BC,IAAON,GAC1DA,EAAa5D,iBAAiB,CAC5B2B,KAAK,GAAD,OAAKyC,EAAQu6B,cACjBn9B,OAAQ,qBACRjO,OAAQg8L,EAAQ,SAAW,OAC3BruL,WAAY,iBAEd0C,EAAa3D,iBAAiBF,GACvB6D,EAAa9C,KAAb,UAAqB41B,EAArB,SAAqCtyB,IAGjCs+B,EAAyC,SACpDt+B,EACArE,GAEA,IAAM6D,EAAe,IAAIjE,IASzB,OARAg1B,IAAsB1wB,6BAA6BC,IAAON,GAC1DA,EAAa5D,iBAAiB,CAC5B2B,KAAK,GAAD,OAAKyC,EAAQu+B,cACjBnhC,OAAQ,qBACRjO,OAAQ,SACR2N,WAAY,mBAEd0C,EAAa3D,iBAAiBF,GACvB6D,EAAa9C,KAAb,UAAqB41B,EAArB,oCAAgEtyB,IAG5Dk+B,EAAuC,SAACl+B,EAAcrE,GACjE,IAAM6D,EAAe,IAAIjE,IASzB,OARAg1B,IAAsB1wB,6BAA6BC,IAAON,GAC1DA,EAAa5D,iBAAiB,CAC5B2B,KAAK,GAAD,OAAKyC,EAAQu+B,cACjBnhC,OAAQ,qBACRjO,OAAQ,OACR2N,WAAY,mBAEd0C,EAAa3D,iBAAiBF,GACvB6D,EAAa9C,KAAb,UAAqB41B,EAArB,kCAA8DtyB,K,6BClGxDvM,IAZK,CAClB23L,mBAAoB,QACpBC,sBAAuB,QACvBC,YAAa,QACbC,WAAY,QACZC,eAAgB,QAChBC,oBAAqB,QACrBC,YAAa,QACbC,cAAe,QACfC,SAAU,U,8gBCNC/X,EAAuB,eAACpgK,EAAD,uDAAW,GAAX,MAAmB,CACrDrkB,KAAMC,IACNI,QAASgkB,IAGEqgK,EAA0B,SAAC1mK,EAAUshB,GAAX,MAAsB,CAC3Dt/B,KAAMC,IACNI,QAAS,CACP2d,WACAshB,WAISqlJ,EAAsB,eAAC9iL,EAAD,uDAAS,CAAE+U,aAAc,QAASsL,YAAa,KAA/C,MAA0D,CAC3FliB,KAAMC,IACNI,QAAS,CACPwB,WA0BS+iL,EAAoB,SAAClvH,GAAD,MAAkC,CACjE11D,KAAMC,IACNI,QAASq1D,IAGEmvH,EAAuB,SAAC32K,EAAY6/B,EAAe2nB,GAA5B,MAAwC,CAC1E11D,KAAMC,IACNI,QAAS,CAAE6N,KAAI6/B,QAAO2nB,YAGXovH,EAAmB,SAAC/2I,EAAOlsC,GAAR,MAAmB,CACjD7B,KAAMC,IACNI,QAAS,CACP0tC,QACAlsC,WAISkjL,EAAqB,SAACrvH,GAAD,MAAkC,CAClE11D,KAAMC,IACNI,QAASq1D,IAGEsvH,EAAwB,SAACtvH,GAAD,MAAa,CAChD11D,KAAMC,IACNI,QAASq1D,IAGEuvH,EAAoB,SAACC,EAAWrjL,GAAZ,MAAuB,CACtD7B,KAAMC,IACNI,QAAS,CACP6kL,YACArjL,WAKSsjL,EAAmB,SAACzvH,GAAD,MAAkC,CAChE11D,KAAMC,IACNI,QAASq1D,IAQE2vH,EAAkB,SAACH,EAAWrjL,GAAZ,MAAuB,CACpD7B,KAAMC,IACNI,QAAS,CACP6kL,YACArjL,WAISyjL,EAAsB,SAAC10K,GAAD,MAAoD,CACrF5Q,KAAMC,IACNI,QAAQ,eACHuQ,KAIM20K,EAAyB,SAACr3K,GAAD,MAAS,CAC7ClO,KAAMC,IACNI,QAAS,CACP6N,QAISs3K,EAAqB,SAACt3K,EAAIrM,GAAL,MAAgB,CAChD7B,KAAMC,IACNI,QAAS,CACP6N,KACArM,Y,iPChGE46L,EAAgB,SAACtmL,GACrB,IACEumL,EAMEvmL,EANFumL,qBACAC,EAKExmL,EALFwmL,mBACAC,EAIEzmL,EAJFymL,iBACAC,EAGE1mL,EAHF0mL,iBACA7tL,EAEEmH,EAFFnH,SACA8tL,EACE3mL,EADF2mL,wBAEIv8L,EAAO0rI,YAAY3qH,eACnBy7K,EAAUC,cAwNhB,OApNA/pB,YAAU,8DAAD,OACuD1yK,EAAK08L,sBAErEhqB,YAAU,+CAAD,OACwC1yK,EAAK28L,iBAD7C,sBAKT53E,qBAAU,WACR,IAAI63E,EACAC,EAAY,KACZC,EAAW,KACXC,EAAc,KACdC,EAAY,KACZC,EAAY,KACZC,EAAO,KACPC,EAAgB,KAChBC,EAAe,KACfC,EAAa,KACbC,EAAsB,KACtBC,EAAQ,KACRC,EAAW,KACXC,EAAc,KACdC,EAAS,KACTC,EAAU,KAKRC,EAEU,qBAAPC,KAA+C,GAAxB79L,EAAK49L,iBAAwBzB,GACvD2B,EAAsC,GAAtB99L,EAAK89L,eAAsB1B,EAC3C2B,EAAkC,GAApB/9L,EAAK+9L,aAAoBzB,EACvC0B,EAAkC,GAApBh+L,EAAKg+L,aAAoB3B,EAQzC4B,EAAgB,CAAEC,cAJtBtB,EAAS,IAAIh2C,IAAEu3C,UAFF,2CAEoB,CAC/BC,QAAS,GACTC,YAHc,gDAQZT,IAEFL,EAAQM,GAAGS,WAEXd,EAAWK,GAAGU,cAEdd,EAAcI,GAAGW,iBAEjBd,EAASG,GAAGY,YAEZd,EAAUE,GAAGa,aAEbT,EAAa,SAAeV,EAC5BU,EAAc,mBAAqBT,EACnCS,EAAc,sBAAwBR,EACtCQ,EAAc,iBAAmBP,EACjCO,EAAc,kBAAoBN,GAIhCG,IACFjB,EAAYj2C,IAAE+3C,UAAUC,aAAa,CACnCR,QAAS,GACT3+L,KAAM,YAERq9L,EAAWl2C,IAAE+3C,UAAUC,aAAa,CAClCR,QAAS,GACT3+L,KAAM,WAERs9L,EAAcn2C,IAAE+3C,UAAUC,aAAa,CACrCR,QAAS,GACT3+L,KAAM,cAERu9L,EAAYp2C,IAAE+3C,UAAUC,aAAa,CACnCR,QAAS,GACT3+L,KAAM,aAERw9L,EAAYr2C,IAAE+3C,UAAUC,aAAa,CACnCR,QAAS,GACT3+L,KAAM,cAEOw9L,EAAU4B,eAAe,gBAExCZ,EAAc,eAAiBpB,EAC/BoB,EAAc,gCAAkCnB,EAChDmB,EAAc,uBAAyBhB,EACvCgB,EAAc,uBAAyBjB,EACvCiB,EAAc,yBAA2BlB,GAI3C,IAAM+B,EAAe9+L,EAAK++L,eACtBhB,IACFZ,EAAgB,IAAIv2C,IAAEo4C,UAAUF,EAAc,CAC5Cr/L,KAAM,WAER29L,EAAe,IAAIx2C,IAAEo4C,UAAUF,EAAc,CAC3Cr/L,KAAM,qBAERy9L,EAAO,IAAIt2C,IAAEo4C,UAAUF,EAAc,CACnCr/L,KAAM,SAERw+L,EAAc,aAAef,EAC7Be,EAAc,kBAAoBd,EAClCc,EAAc,eAAiBb,GAIjC,IAAM6B,EAAgBj/L,EAAKi/L,cACrBC,EAAkBl/L,EAAKk/L,gBACzBlB,IACFX,EAAaz2C,IAAEu4C,UAAU1rJ,SAAS,iBAAkB,CAClD2rJ,OAAQH,EACRI,SAAUH,IAEZ5B,EAAsB12C,IAAEu4C,UAAU1rJ,SAAS,iBAAkB,CAC3D2rJ,OAAQH,EACRI,SAAUH,IAGZjB,EAAc,aAAeZ,EAC7BY,EAAc,uBAAyBX,GAGzC,IAAMgC,EAAa,IAAI14C,IAAE24C,QAAQC,OAAOvB,EAAe,GAAI,CAAExvL,SAAUA,IACjEgxL,EAAYjD,EAAQkD,gBAAkBlD,EAAQj7K,IACpDk+K,EAAUE,SAAS/C,GACnB6C,EAAUG,WAAWN,GAIrB,IAAIO,EAAY,KAEhB,OADoBp7L,SAASzE,EAAK6/L,YAEhC,KAAK,EAGL,KAAK,EACHA,EAAYjD,EACZ,MACF,KAAK,EACHiD,EAAYjC,EAAkBL,EAAQX,EACtC,MACF,KAAK,EACHiD,EAAY/B,EAAgBjB,EAAYkB,EAAcb,EAAON,EAC7D,MACF,KAAK,EACHiD,EAAY/B,EAAgBhB,EAAWiB,EAAcb,EAAON,EAC5D,MACF,KAAK,EACHiD,EAAY9B,EAAcb,EAAON,EACjC,MACF,KAAK,EACHiD,EAAYjD,EACZ,MACF,KAAK,EACHiD,EAAY9B,EAAcZ,EAAgBP,EAC1C,MACF,KAAK,EACHiD,EAAY9B,EAAcX,EAAeR,EACzC,MACF,KAAK,EACHiD,EAAY7B,EAAcX,EAAaT,EACvC,MACF,KAAK,GACHiD,EAAY7B,EAAcV,EAAsBV,EAChD,MACF,KAAK,GACHiD,EAAY/B,EAAgBf,EAAcgB,EAAcb,EAAON,EAC/D,MACF,KAAK,GACHiD,EAAY/B,EAAgBb,EAAYc,EAAcb,EAAON,EAC7D,MACF,KAAK,GACHiD,EAAY/B,EAAgBd,EAAYe,EAAcb,EAAON,EAC7D,MACF,KAAK,GACHiD,EAAYjC,EAAkBJ,EAAWZ,EACzC,MACF,KAAK,GACHiD,EAAYjC,EAAkBH,EAAcb,EAC5C,MACF,KAAK,GACHiD,EAAYjC,EAAkBF,EAASd,EACvC,MACF,KAAK,GACHiD,EAAYjC,EAAkBD,EAAUf,EACxC,MACF,KAAK,GAGL,KAAK,GAGL,KAAK,GACHiD,EAAYjD,EAOhB,OAHKiD,IAAWA,EAAYjD,GAE5BiD,EAAUC,MAAML,GACT,WACLA,EAAUM,cAAcT,MAxMnB,YA0MF/C,IAEA,MAGTL,EAAc1zE,aAAe,CAC3B2zE,sBAAsB,EACtBC,oBAAoB,EACpBC,kBAAkB,EAClBC,kBAAkB,EAClB7tL,SAAU,aACV8tL,wBAAyB,IAEZL,Q,8FC9OT8D,EAAkB,SAACpqL,GAAmC,IAAD,QACnD2L,EAAM0+K,cACJC,EAAiFtqL,EAAjFsqL,aAAcz5K,EAAmE7Q,EAAnE6Q,SAAU05K,EAAyDvqL,EAAzDuqL,eAAgBC,EAAyCxqL,EAAzCwqL,YAAhD,EAAyFxqL,EAA5ByqL,gBAEvDC,SAFN,UAGMC,EAAoB,SAAC95K,GACzB,GAAsB,KAAlBA,EAAS4tK,MAAc,CAAC,IAAD,EACrBmM,EAAkBC,EAAah6K,EAAUA,EAASi6K,mBAClDC,EAAU/5C,IAAED,OAAO65C,EAAgBI,YAAY,GAAIJ,EAAgBI,YAAY,IACnFr/K,EAAIs/K,YAAYF,EAAQG,SAAR,UAAmC,EAAlBr6K,EAASwsJ,cAA1B,QAAwC,KAAM,QACzD,CACL,IAAIutB,EAAkBC,EAAah6K,EAAUA,EAASi6K,mBAClDC,EAAU/5C,IAAEm6C,QAAQP,GAExBj/K,EAAIs/K,YAAYF,EAAQK,YAAa,MAGnCP,EAAe,SAACh6K,EAAUw6K,GAE9B,GAAIA,EAAK,CACP,IAAIC,EAAWC,IAAIC,SAAShnL,MAAM6mL,GAMlC,MALsB,KAAlBx6K,EAAS4tK,QACX6M,EAASzhM,KAAO,cAEFyhM,EAASG,cAO7Bt8E,qBAAU,WACR,IACEu8E,EAAY9pB,QAAQ+pB,GAAGC,kBACvBF,EAAY9pB,QAAQ+pB,GAAGE,OAAO,CAAEC,gCAAgC,EAAOC,WAAW,IAC9EvB,GACFkB,EAAY9pB,QAAQoqB,YAEtB,UACEn7K,GAAY+hF,OAAO0qB,KAAKzsG,GAAU8B,OAAS,GACzC+3K,GAAkBC,EAAkB95K,KAEzC,CAACA,EAASwB,aAEb88F,qBAAU,WACR,IACMu8E,EAAY9pB,UACd8pB,EAAY9pB,QAAQ+pB,GAAGC,kBACvBF,EAAY9pB,QAAQ+pB,GAAGE,OAAO,CAAEC,gCAAgC,EAAOC,WAAW,KAEpF,aACD,CAACl7K,EAASi6K,oBAEC57E,iBAAiBrS,SAASvxF,MAAxC,IACMgjF,EAAU6hB,UACVu7E,EAAcz5C,iBAAO,MAErB24C,EAAkBC,EAAah6K,EAAUA,EAASi6K,mBAExD,OACE,qCACGR,GAAgBM,GACf,gCACqB,KAAlB/5K,EAAS4tK,OACR,mCACE,cAACwN,EAAA,EAAD,CACEp+E,IAAK69E,EAEL7T,OAAQ7mC,IAAEk7C,QAAQC,eAAevB,EAAgBI,aACjD3tB,OAAQxsJ,EAASwsJ,OACjB+uB,YAAa,CAAEvoL,MAAK,UAAEgN,EAAShN,aAAX,QAAoByqF,GACxC+9F,cAAe,CACbC,MAAO,SAAC14F,KACR,UAAW,SAACA,GACV,IAAI03F,EAAWC,IAAIC,SAASe,aAAa34F,EAAE8G,OAAO+wF,YAAYH,UAE1Df,GACFA,EAAe,CACbO,kBAAmBQ,EAASkB,QAC5BnvB,OAAQzpE,EAAE8G,OAAO+xF,cAEjB/B,GACFC,EAAkB,2BACb95K,GADY,IAEfi6K,kBAAmBQ,EAASkB,QAC5BnvB,OAAQzpE,EAAE8G,OAAO+xF,gBAGvB,aAAc,SAAC74F,GACbA,EAAE84F,MAAMf,GAAGC,kBACXh4F,EAAE84F,MAAMf,GAAGE,OAAO,CAAEE,WAAW,IAC/B,IAAIT,EAAWC,IAAIC,SAASe,aAAa34F,EAAE8G,OAAO+wF,YAAYH,UAC1Df,GACFA,EAAe,CACbO,kBAAmBQ,EAASkB,QAC5BnvB,OAAQzpE,EAAE8G,OAAO+xF,cAEjB/B,GACFC,EAAkB,2BACb95K,GADY,IAEfi6K,kBAAmBQ,EAASkB,QAC5BnvB,OAAQzpE,EAAE8G,OAAO+xF,iBApC3B,SAyCGjC,GACC,cAACmC,EAAA,EAAD,UACE,mBAAGhgF,UAAU,cAAcH,MAAO,CAAE8D,SAAU,QAA9C,SACGz/F,EAASykB,qBAQH,KAAlBzkB,EAAS4tK,OACR,mCACE,cAACmO,EAAA,EAAD,CACE/+E,IAAK69E,EACLhuB,OAC0B,cAAxBktB,EAAgB/gM,KACZmnJ,IAAEk7C,QAAQW,gBAAgBjC,EAAgBI,aAC1Ch6C,IAAEk7C,QAAQW,gBAAgBjC,EAAgBI,YAAY,IAE5DoB,YAAa,CAAEvoL,MAAK,UAAEgN,EAAShN,aAAX,QAAoByqF,GACxC+9F,cAAe,CACbC,MAAO,SAAC14F,KACR,UAAW,SAACA,GACV,IAAI03F,EAAWC,IAAIC,SAASe,aAAa34F,EAAE8G,OAAO+wF,YAAYH,UAC1Df,GAAgBA,EAAe,CAAEO,kBAAmBQ,EAASkB,UAC7D9B,GACFC,EAAkB,2BACb95K,GADY,IAEfi6K,kBAAmBQ,EAASkB,YAIlC,aAAc,SAAC54F,GACbA,EAAE84F,MAAMf,GAAGC,kBACXh4F,EAAE84F,MAAMf,GAAGE,OAAO,CAAEE,WAAW,IAC/B,IAAIT,EAAWC,IAAIC,SAASe,aAAa34F,EAAE8G,OAAO+wF,YAAYH,UAE1Df,GAAgBA,EAAe,CAAEO,kBAAmBQ,EAASkB,UAC7D9B,GACFC,EAAkB,2BACb95K,GADY,IAEfi6K,kBAAmBQ,EAASkB,aA7BtC,SAkCGhC,GACC,cAACmC,EAAA,EAAD,UACE,mBAAGhgF,UAAU,cAAcH,MAAO,CAAE8D,SAAU,QAA9C,SACGz/F,EAASykB,qBAQH,KAAlBzkB,EAAS4tK,OACR,CAAC,eAAgB,sBAAsBtvL,SAASy7L,EAAgB/gM,OAC9D,mCACE,cAACqiM,EAAA,EAAD,CACEr+E,IAAK69E,EACL71L,KAAM+0L,EACNwB,YAAa,CAAEvoL,MAAK,UAAEgN,EAAShN,aAAX,QAAoByqF,GACxC+9F,cAAe,CACbC,MAAO,SAAC14F,KACR,UAAW,SAACA,GACV,IAAI03F,EAAWC,IAAIC,SAASe,aAAa34F,EAAE84F,MAAMjB,YAAYH,UACzDf,GAAgBA,EAAe,CAAEO,kBAAmBQ,EAASkB,UAC7D9B,GACFC,EAAkB,2BACb95K,GADY,IAEfi6K,kBAAmBQ,EAASkB,YAGlC,aAAc,SAAC54F,GACbA,EAAE84F,MAAMf,GAAGC,kBACXh4F,EAAE84F,MAAMf,GAAGE,OAAO,CAAEE,WAAW,IAC/B,IAAIT,EAAWC,IAAIC,SAASe,aAAa34F,EAAE84F,MAAMjB,YAAYH,UACzDf,GAAgBA,EAAe,CAAEO,kBAAmBQ,EAASkB,UAC7D9B,GACFC,EAAkB,2BACb95K,GADY,IAEfi6K,kBAAmBQ,EAASkB,aAvBtC,SA4BGhC,GACC,cAACmC,EAAA,EAAD,UACE,mBAAGhgF,UAAU,cAAcH,MAAO,CAAE8D,SAAU,QAA9C,SACGz/F,EAASykB,qBAOL,KAAlBzkB,EAAS4tK,QACP,CAAC,eAAgB,sBAAsBtvL,SAASy7L,EAAgB/gM,OAC/D,mCACE,cAACijM,EAAA,EAAD,CACEj/E,IAAK69E,EACL3qK,UAC0B,cAAxB6pK,EAAgB/gM,KACZmnJ,IAAEk7C,QAAQW,gBAAgBjC,EAAgBI,aAG1Ch6C,IAAEk7C,QAAQW,gBAAgBjC,EAAgBI,YAAY,IAE5DoB,YAAa,CAAEvoL,MAAK,UAAEgN,EAAShN,aAAX,QAAoByqF,GACxC+9F,cAAe,CACbC,MAAO,SAAC14F,KACR,UAAW,SAACA,GACV,IAAI03F,EAAWC,IAAIC,SAASe,aAAa34F,EAAE84F,MAAMjB,YAAYH,UACzDf,GAAgBA,EAAe,CAAEO,kBAAmBQ,EAASkB,UAC7D9B,GACFC,EAAkB,2BACb95K,GADY,IAEfi6K,kBAAmBQ,EAASkB,YAGlC,aAAc,SAAC54F,GACbA,EAAE84F,MAAMf,GAAGC,kBACXh4F,EAAE84F,MAAMf,GAAGE,OAAO,CAAEE,WAAW,IAC/B,IAAIT,EAAWC,IAAIC,SAASe,aAAa34F,EAAE84F,MAAMjB,YAAYH,UACzDf,GAAgBA,EAAe,CAAEO,kBAAmBQ,EAASkB,UAC7D9B,GACFC,EAAkB,2BACb95K,GADY,IAEfi6K,kBAAmBQ,EAASkB,aA7BtC,SAkCGhC,GACC,cAACmC,EAAA,EAAD,UACE,mBAAGhgF,UAAU,cAAcH,MAAO,CAAE8D,SAAU,QAA9C,SACGz/F,EAASykB,qBAOL,KAAlBzkB,EAAS4tK,OACR,cAACyN,EAAA,EAAD,CAEEr+E,IAAK69E,EACLl/E,MAAO,CAAE3oG,MAAOgN,EAAShN,OACzBhO,KAAM+0L,EAJR,SAMGJ,GACC,cAACmC,EAAA,EAAD,UACE,mBAAGhgF,UAAU,cAAcH,MAAO,CAAE8D,SAAU,QAA9C,SACGz/F,EAASykB,sBA1M1B,QAuNJ80J,EAAgBx3E,aAAe,CAC7B/hG,SAAU,GACVy5K,cAAc,EACdG,iBAAiB,EACjBD,aAAa,GAGAJ,Q,iEC1OA2C,G,QA/DYC,aAAoB,WAA0CC,GAAQ,EAA/C35L,SAAgD,IAAD,IAAjCkF,YAAiC,MAA1B,KAA0B,EAAjBwH,EAAiB,mCACzFktL,EAAe,CACnBC,yBAA0B,CAAEC,UAAU,EAAMC,OAAQ,IAAKxpL,MAAO,UAAWypL,QAAS,IACpFC,4BAA4B,EAC5BC,gBAAgB,EAChBC,mBAAoB,SAAUC,GAC5B,IAAIC,EAAaD,EAAQE,gBAErBt7L,EAAI,mBASR,OAPEA,GADEq7L,EAAa,GACV,QACIA,EAAa,IACjB,SAEA,QAGA,IAAI38C,IAAE68C,QAAQ,CACnBlxF,KAAMnkG,EACFiqL,yBACE,sBACEj2E,MAAO,CAAE8D,SAAU,QACnB3D,UAAW,mDAFb,UAIE,+BAAOghF,IACNn1L,MAGLiqL,yBACE,qBAAKj2E,MAAO,CAAE8D,SAAU,QAAxB,SACE,+BAAOq9E,OAGfhhF,UAAW,iBAAmBr6G,EAC9B4jI,SAAU,IAAI8a,IAAE88C,MAAM,GAAI,QAI1BC,EAAgB,GAGtBn7F,OAAOo7F,QAAQhuL,GAAO8X,SAAQ,mCAAEm2K,EAAF,KAAYC,EAAZ,YAC5BD,EAAS/vF,WAAW,MAAS6vF,EAAcE,GAAYC,EAAShB,EAAae,GAAYC,KAI3F,IAAMC,EAAqB,IAAIn9C,IAAEm9C,mBAAmBjB,GAWpD,OAVAiB,EAAmBC,0BAA4B,WAC7C,OAAOD,EAAmBE,KAAKjD,aAIjCx4F,OAAOo7F,QAAQD,GAAej2K,SAAQ,YAA8B,IAAD,mBAA3Bw2K,EAA2B,KAAdC,EAAc,KAC3DC,EAAY,iBAAaF,EAAYv0F,UAAU,GAAGjL,eACxDq/F,EAAmBM,GAAGD,EAAcD,MAG/B,CACLG,SAAUP,EACVvH,QAAQ,2BAAMqG,GAAP,IAAYnD,eAAgBqE,SChCjCtD,EAAe,SAACQ,GAIpB,OAFeE,IAAIC,SAAShnL,MAAM6mL,GAElBI,aAGLd,EAAoB,SAACh/K,EAAK8+K,EAAiB55K,GACtD,GAAsB,KAAlBA,EAAS4tK,MAAc,CAAC,IAAD,EACrBmM,EAAkBC,EAAah6K,EAASi6K,mBACxCC,EAAU/5C,IAAED,OAAO65C,EAAgBI,YAAY,GAAIJ,EAAgBI,YAAY,IACnFr/K,EAAIs/K,YACFF,EAAQG,SAAR,UAAmC,IAAlBr6K,EAASwsJ,cAA1B,QAA0C,KAC1CotB,EACI,CACEkE,mBAAoB,CAAC,IAAK,GAC1BC,eAAgB,CAAC,EAAG,IACpBpG,QAAS,GACTqG,QAAS,KAAOljL,EAAImjL,WAEtB,CACEtG,QAAS,GACTqG,QAAS,KAAOljL,EAAImjL,gBAGvB,CACL,IAAIlE,EAAkBC,EAAY,OAACh6K,QAAD,IAACA,OAAD,EAACA,EAAUi6K,mBACzCC,EAAU/5C,IAAEm6C,QAAQP,GACxBj/K,EAAIs/K,YACFF,EAAQK,YACRX,EACI,CACEkE,mBAAoB,CAAC,IAAK,GAC1BC,eAAgB,CAAC,EAAG,IACpBpG,QAAS,GACTqG,QAAS,KAAOljL,EAAImjL,WAEtB,CACEtG,QAAS,GACTqG,QAAS,KAAOljL,EAAImjL,cAM1BC,EAAe,SAAC/uL,GACJ6mL,cAAhB,IACMl7K,EAAMqjL,YAAa,CACvBC,QAAS,WACPC,QAIFC,EAgBEnvL,EAhBFmvL,oBACAC,EAeEpvL,EAfFovL,uBAFF,EAiBIpvL,EAdFqvL,qBAHF,WAiBIrvL,EAbFsvL,0BAJF,WAiBItvL,EAZFwI,iBALF,MAKc,GALd,EAME+mL,EAWEvvL,EAXFuvL,oBANF,EAiBIvvL,EAVFwvL,sCAPF,WAiBIxvL,EATFyvL,0CARF,WAiBIzvL,EARFk7K,sBATF,SAUEsP,EAOExqL,EAPFwqL,YAVF,EAiBIxqL,EANFyqL,uBAXF,WAiBIzqL,EALF0vL,sDAZF,SAaEC,EAIE3vL,EAJF2vL,iCACAC,EAGE5vL,EAHF4vL,sBACAC,EAEE7vL,EAFF6vL,yBACAC,EACE9vL,EADF8vL,yBAEIv1L,EAAQu7H,aAAY,SAACnsI,GAAD,OAAWA,KAC/BwoB,EAAWipI,cACjB,EAAkFhlB,oBAAS,GAA3F,mBAAO25D,EAAP,KAA0CC,EAA1C,KACA,GAAkD55D,qBAAlD,qBAAO65D,GAAP,MAA0BC,GAA1B,MACA,GAAgD95D,mBAAc,IAA9D,qBAAO+5D,GAAP,MAAyBC,GAAzB,MACA,GAA8Ct6D,aAAY,SAACnsI,GAAD,YAAY,CACpEq+G,UAAW7yE,IAAoCxrC,GAC/Co+G,SAAU5yE,IAAmCxrC,GAC7C0mM,aAAcl7J,IACZxrC,EADY,OAEZmmM,QAFY,IAEZA,GAFY,UAEZA,EAA0BluB,eAFd,aAEZ,EAAmCnrD,sBAL/BzO,GAAR,GAAQA,UAAWD,GAAnB,GAAmBA,SAAUsoF,GAA7B,GAA6BA,aAS7BlhF,qBAAU,WACR,UAAIkhF,SAAJ,IAAIA,QAAJ,EAAIA,GAAch+K,WAGhB,OAFAs4K,EAAkBh/K,EAAK8+K,EAAiB4F,IACxCl+K,EAASm+K,IAAkCD,GAAah+K,aACjD,WACLF,EAASm+K,IAAkCD,GAAah+K,gBAG3D,QAACg+K,SAAD,IAACA,QAAD,EAACA,GAAch+K,aAElB88F,qBAAU,WACJigF,GACFA,EAAuB,2BAClBD,GADiB,IAEpB3mL,UAA2C,OAAhB,OAAhB2nL,SAAgB,IAAhBA,QAAA,EAAAA,GAAkB99K,iBAGhC,CAAC89K,KAEJhhF,qBAAU,YACHnH,IAAamoF,GAAiB99K,aACjC+9K,GAAoBj7J,IAA8B56B,EAAO41L,GAAiB99K,aAC1E29K,GAAqC,MAEtC,CAAChoF,KAEJmH,qBAAU,WACR,GAAIqgF,GAAkC7jL,GAAOnD,EAAUmK,OAAS,EAC9D,GAAwB,GAApBnK,EAAUmK,OACZg4K,EAAkBh/K,EAAK8+K,EAAiBjiL,EAAU,QAC7C,CACL,IAAIk1J,EAAS,GACbl1J,EAAUmD,KAAI,SAACkF,GACb,IAAI+5K,EAEJA,EAAkBC,EAAah6K,EAASi6K,mBAClB,KAAlBj6K,EAAS4tK,MACX/gB,EAAM,sBACDA,GADC,CAEJ1sB,IAAED,OAAO65C,EAAgBI,YAAY,GAAIJ,EAAgBI,YAAY,MAE5C,KAAlBn6K,EAAS4tK,MAClB/gB,EAAM,sBACDA,GADC,YAEDktB,EAAgBI,YAAY,GAAGr/K,KAAI,SAAC4kL,GAAD,OAAYv/C,IAAED,OAAO,CAACw/C,EAAO,GAAIA,EAAO,UAErD,KAAlB1/K,EAAS4tK,MAClB/gB,EAAM,sBACDA,GADC,YAEwB,cAAxBktB,EAAgB/gM,KAChB+gM,EAAgBI,YAAYr/K,KAAI,SAAC4kL,GAAD,OAAYv/C,IAAED,OAAO,CAACw/C,EAAO,GAAIA,EAAO,QACxE3F,EAAgBI,YAAY,GAAGr/K,KAAI,SAAC4kL,GAAD,OAAYv/C,IAAED,OAAO,CAACw/C,EAAO,GAAIA,EAAO,UAEtD,KAAlB1/K,EAAS4tK,QAClB/gB,EAAM,sBACDA,GADC,CAEJvxD,EAAEqkF,QACA5F,EAAgBI,YAAYr/K,KAAI,SAAC8kL,GAAD,OAC9BA,EAAW9kL,KAAI,SAAC4kL,GAAD,OACbA,EAAO,IAAMA,EAAO,GAAKv/C,IAAED,OAAO,CAACw/C,EAAO,GAAIA,EAAO,KAAO,kBAOxE5kL,EAAI+kL,UACF1/C,IAAE2/C,aAAajzB,EAAOz3I,QAAO,SAAC2qK,GAAD,OAAoB,MAATA,GAAiBA,aAAiB5/C,IAAE6/C,eAIjF,CAACroL,EAAUmK,OAAQ68K,IAGtBrgF,qBAAU,WACR,GAAIugF,GAAkDD,GACpD,GAAIE,EAAkC,CACpC,IAAMmB,EAA6B37J,IACjC56B,EACAo1L,GAIAM,KAAsBN,GACtBmB,EAA2BrS,QAE3ByR,GAAqBY,EAA2Bz+K,YAChD+9K,GAAoBU,GACpBnG,EAAkBh/K,EAAK8+K,EAAiBqG,IAE1Cd,GAAqC,SAGvCE,QAAqBj4L,GACrBm4L,GAAoB,IACpBJ,GAAqC,KAEtC,CAACL,IACUzgF,iBAAiBrS,SAASvxF,MAAxC,IACMgjF,GAAU6hB,UAGZ4gF,GAA4BC,WAC5B9V,IACF6V,GAA4BhE,GAG9B,OAA8C32D,mBAAS,IAAvD,qBAAO66D,GAAP,MAAwBC,GAAxB,MACMhC,GAAmB,WACvBgC,GACE1oL,EAAUyd,QAAO,SAACpV,GAChB,IAAKA,EAASi6K,kBAAmB,OAAO,EACxC,IAAIF,EAAkBC,EAAah6K,EAASi6K,mBACxCC,EAAU/5C,IAAEm6C,QAAQP,GACxB,OAAOj/K,IACHA,EAAIy/K,YAAYljB,SAAS6iB,EAAQK,cAC/Bz/K,EAAIy/K,YAAY+F,SAASpG,EAAQK,mBAK7C3kB,aAAqB,WACnByoB,OACC,CAACG,EAAernF,GAAWD,GAAUv/F,IAExC,IAAM4oL,GAAkB,SAACx9F,EAAG/iF,IAC1B,OAAIi/K,QAAJ,IAAIA,OAAJ,EAAIA,EAA0BluB,WAC5BzvJ,EAASm+K,IAAA,OAAkCR,QAAlC,IAAkCA,OAAlC,EAAkCA,EAA0BluB,QAAQvvJ,aACzEw9K,GAA0BA,OAAyB53L,IAGzDm4L,GAAoB,2BAAKv/K,GAAN,IAAgB67K,MAAO94F,EAAE8G,UACxC+0F,GACFO,GAAqC,GAEvCrF,EAAkBh/K,EAAK8+K,EAAiB55K,IAG1C,OACE,sCACIw+K,GAAiBC,IACjB,cAACyB,GAAD,UACGE,GAAgBtlL,KAAI,SAACkF,GAAc,IAAD,QAC3B+5K,EAAkBC,EAAah6K,EAASi6K,mBAO9C,MAL0B,gBAAxBF,EAAgB/gM,MACQ,sBAAxB+gM,EAAgB/gM,MAEhBgpB,QAAQC,IAAI,cAAejC,EAASykB,eAGlC+5J,IAAkBC,GACjBA,GAAsBz+K,EAASklG,eAChC,gCACqB,KAAlBllG,EAAS4tK,OACR,mCACE,cAACwN,EAAA,EAAD,CACEoF,aACE9B,GACAA,EAAoB58K,OAAS,GAC7B48K,EAAoBpgM,SAAS0hB,EAASwB,YAClC,IACA,IAENwlK,OAAQ7mC,IAAED,OACR65C,EAAgBI,YAAY,GAC5BJ,EAAgBI,YAAY,IAE9B3tB,OAAQxsJ,EAASwsJ,OACjB+uB,YAAa,CACXvoL,OACqB,OAAnB0rL,QAAmB,IAAnBA,OAAA,EAAAA,EAAqB58K,QAAS,IAC7B48K,EAAoBpgM,SAAS0hB,EAASwB,YACnC,2BAFJ,UAGIxB,EAAShN,aAHb,QAGsByqF,IAE1B+9F,cAAe,CACbC,MAAO,SAAC14F,GACNw9F,GAAgBx9F,EAAG/iF,KAtBzB,SA0BG25K,GACC,cAAC8G,EAAA,EAAD,CAAS/qB,UAAW,MAAOgrB,OAAQ,CAAC,EAAG,GAAvC,SACE,mBAAG5kF,UAAU,cAAcH,MAAO,CAAE8D,SAAU,QAA9C,SACGz/F,EAASykB,qBAOH,KAAlBzkB,EAAS4tK,OACR,mCACE,cAACmO,EAAA,EAAD,CACEyE,aACE9B,GACAA,EAAoB58K,OAAS,GAC7B48K,EAAoBpgM,SAAS0hB,EAASwB,YAClC,IACA,IAENqrJ,OAAQktB,EAAgBI,YAAY,GAAGr/K,KAAI,SAAC4kL,GAAD,MAAY,CACrDA,EAAO,GACPA,EAAO,OAETnE,YAAa,CACXvoL,MACE0rL,GACAA,EAAoB58K,OAAS,IAC5B48K,EAAoBpgM,SAAS0hB,EAASwB,YACnC,OAHJ,UAIIxB,EAAShN,aAJb,QAIsByqF,IAE1B+9F,cAAe,CACbC,MAAO,SAAC14F,GACNw9F,GAAgBx9F,EAAG/iF,KAtBzB,SA0BG25K,GACC,cAAC8G,EAAA,EAAD,CAAS/qB,UAAW,MAAOgrB,OAAQ,CAAC,EAAG,GAAvC,SACE,mBAAG5kF,UAAU,cAAcH,MAAO,CAAE8D,SAAU,QAA9C,SACGz/F,EAASykB,qBAQH,KAAlBzkB,EAAS4tK,OACR,CAAC,eAAgB,sBAAsBtvL,SAASy7L,EAAgB/gM,OAC9D,mCACE,cAACqiM,EAAA,EAAD,CACEmF,aACE9B,GACAA,EAAoB58K,OAAS,GAC7B48K,EAAoBpgM,SAAS0hB,EAASwB,YAClC,IACA,IAENxc,KAAM+0L,EACNwB,YAAa,CACXvoL,MACE0rL,GACAA,EAAoB58K,OAAS,IAC5B48K,EAAoBpgM,SAAS0hB,EAASwB,YACnC,OAHJ,UAIIxB,EAAShN,aAJb,QAIsByqF,IAE1B+9F,cAAe,CACbC,MAAO,SAAC14F,GACNw9F,GAAgBx9F,EAAG/iF,KAnBzB,SAuBG25K,GACC,cAAC8G,EAAA,EAAD,CAAS/qB,UAAW,MAAOgrB,OAAQ,CAAC,EAAG,GAAvC,SACE,mBAAG5kF,UAAU,cAAcH,MAAO,CAAE8D,SAAU,QAA9C,SACGz/F,EAASykB,qBAQL,KAAlBzkB,EAAS4tK,QACP,CAAC,eAAgB,sBAAsBtvL,SAASy7L,EAAgB/gM,OAC/D,mCACE,cAACijM,EAAA,EAAD,CACEuE,aACE9B,GACAA,EAAoB58K,OAAS,GAC7B48K,EAAoBpgM,SAAS0hB,EAASwB,YAClC,IACA,IAEN0O,UAC0B,cAAxB6pK,EAAgB/gM,KACZ+gM,EAAgBI,YAAYr/K,KAAI,SAAC4kL,GAAD,MAAY,CAACA,EAAO,GAAIA,EAAO,OAC/D3F,EAAgBI,YAAY,GAAGr/K,KAAI,SAAC4kL,GAAD,MAAY,CAC7CA,EAAO,GACPA,EAAO,OAGfnE,YAAa,CACXvoL,MACE0rL,GACAA,EAAoB58K,OAAS,IAC5B48K,EAAoBpgM,SAAS0hB,EAASwB,YACnC,OAHJ,UAIIxB,EAAShN,aAJb,QAIsByqF,IAE1B+9F,cAAe,CACbC,MAAO,SAAC14F,GACNw9F,GAAgBx9F,EAAG/iF,KA1BzB,SA8BG25K,GACC,cAAC8G,EAAA,EAAD,CAAS/qB,UAAW,MAAOgrB,OAAQ,CAAC,EAAG,GAAvC,SACE,mBAAG5kF,UAAU,cAAcH,MAAO,CAAE8D,SAAU,QAA9C,SACGz/F,EAASykB,qBAQL,KAAlBzkB,EAAS4tK,OACR,cAACyN,EAAA,EAAD,CACEmF,aACE9B,GACAA,EAAoB58K,OAAS,GAC7B48K,EAAoBpgM,SAAS0hB,EAASwB,YAClC,IACA,IAGNm6F,MAAO,CACL3oG,MACE0rL,GACAA,EAAoB58K,OAAS,IAC5B48K,EAAoBpgM,SAAS0hB,EAASwB,YACnC,OACAxB,EAAShN,OAEjBhO,KAAM+0L,EAjBR,SAmBGJ,GACC,cAAC8G,EAAA,EAAD,CAAS/qB,UAAW,MAAOgrB,OAAQ,CAAC,EAAG,GAAvC,SACE,mBAAG5kF,UAAU,cAAcH,MAAO,CAAE8D,SAAU,QAA9C,SACGz/F,EAASykB,qBAtLZzkB,EAASwB,iBAmM7B,cAACm/K,EAAA,EAAD,CACEz7D,UAAW/tB,GACXypF,gBAAiB,WACfzB,GAAqC,GACrCI,GAAoB,KAEtBsB,iBAAkB3B,EAClB9wL,MAAOkxL,GAAiB76J,aACxBzkB,SAAUs/K,GACVP,sBAAuBA,EACvBE,yBAA0BA,EAC1BD,yBAA0BA,QAMlCd,EAAan8E,aAAe,CAC1B48E,gCAAgC,EAChCC,oCAAoC,EACpCjnL,UAAW,GACX6mL,eAAe,EACfnU,gBAAgB,EAChBuP,iBAAiB,EACjBiF,gDAAgD,EAChDlF,aAAa,EACbmF,sCAAkC13L,EAClCq3L,oBAAoB,GAGPP,Q,UC3dT4C,EAAkB,SAAC3xL,GAAmC,IAAD,IACnD2L,EAAM0+K,cAEVuH,EAOE5xL,EAPF4xL,aACAj2J,EAME37B,EANF27B,SAFF,EAQI37B,EALFq7K,0BAHF,SAKEwW,GAGE7xL,EAJFs7K,mCAIEt7K,EAHF6xL,mBACArH,EAEExqL,EAFFwqL,YANF,EAQIxqL,EADFyqL,uBAPF,SAUMqH,EAAoB,SAAC/gD,GACzB,IAAMy3C,EAAU96F,KAAKssB,IAAI,GAAIruG,EAAImjL,WACjC/nB,YAAW,WACT,IAAIgrB,EAEFA,EADEhhD,aAAkBC,IAAE6/C,OACjB9/C,EAEAC,IAAED,OAAOA,GAEhBplI,EAAIs/K,YACF,CAAC8G,GACDtH,EACI,CACEkE,mBAAoB,CAAC,IAAK,GAC1BC,eAAgB,CAAC,EAAG,IACpBpG,UACAqG,QAAS,GAAKljL,EAAImjL,WAEpB,CACEtG,UACAqG,QAAS,GAAKljL,EAAImjL,cAGzB,MAGL3/E,qBAAU,WACR,IACE6iF,EAAUpwB,QAAQ+pB,GAAGE,OAAO,CAAEoG,sBAAsB,IAChDzH,GACFwH,EAAUpwB,QAAQoqB,YAEpB,UACuB,MAArBrwJ,EAAS7S,UAA0C,MAAtB6S,EAAS5S,WACxC+oK,EAAkB9gD,IAAED,OAAOp1G,EAAS7S,SAAU6S,EAAS5S,cAExD,CAAC4S,IAEUuzE,iBAAiBrS,SAASvxF,MAAxC,IAEM0mL,EAAY//C,iBAAO,MACnBigD,EAAWjgD,iBAAO,MAExB,OACE,qCACG2/C,GAAsC,OAAd,OAARj2J,QAAQ,IAARA,OAAA,EAAAA,EAAU7S,WAA2C,OAAf,OAAR6S,QAAQ,IAARA,OAAA,EAAAA,EAAU5S,YACvD,gCACE,cAACopK,EAAA,EAAD,CACEtkF,IAAKmkF,EACLjG,YAAW8F,EACXr5L,KAAMw4I,IAAEK,QAAQ,CACd1kC,UAAW,kBACXhQ,KAAK,oDAAD,OACoC,MAAtChhE,EAASk1I,0BACL,gBACAl1I,EAASk1I,0BAHX,4CAKFl1I,EAAS4/I,6BALP,QAKgC,UALhC,+EAQJrlD,SAAU,CAAC,GAAI,IACfob,WAAY,CAAC,GAAI,IACjBC,YAAa,CAAC,GAAI,MAEpB14I,SAAU,CAAC8iC,EAAS7S,SAAU6S,EAAS5S,WACvCsjK,cAAe,CACbC,MAAO,SAAC14F,GACNk+F,EAAkBl+F,EAAEw+F,SAEtB,aAAc,SAACx+F,GACTi+F,GAAmBA,EAAkBj+F,EAAE8G,OAAO23F,eAvBxD,SA2BG7H,GACC,cAACmC,EAAA,EAAD,CAAO9+E,IAAKqkF,EAAZ,SACE,mBAAGvlF,UAAU,cAAcH,MAAO,CAAE8D,SAAU,QAA9C,SACG30E,EAAS3C,mBAMjBqiJ,GACC,cAACuR,EAAA,EAAD,CACElvB,OAAQN,YACNzhI,EAAS7S,SACT6S,EAAS5S,UAFoB,UAG7B4S,EAAS0hI,cAHoB,QAGV,IAErB+uB,YAAa,CAAEvoL,MAnDXssG,gBAKd,QAwDJwhF,EAAgB/+E,aAAe,CAC7Bj3E,SAAU,GACVi2J,cAAc,EACdvW,oBAAoB,EACpBoP,iBAAiB,EACjBD,aAAa,GAGAmH,Q,kDCrGTW,GAAe,SAACtyL,GACpB,IAAM2L,EAAMqjL,YAAa,CACvBC,QAAS,WACPsD,QAIFpD,EAmBEnvL,EAnBFmvL,oBACAC,EAkBEpvL,EAlBFovL,uBAFF,EAoBIpvL,EAjBFm7K,qBAHF,WAoBIn7K,EAhBFwyL,0BAJF,WAoBIxyL,EAfFgI,iBALF,MAKc,GALd,EAMEyqL,EAcEzyL,EAdFyyL,oBANF,EAoBIzyL,EAbFq7K,0BAPF,WAoBIr7K,EAZFo7K,sCARF,WAoBIp7K,EAXFs7K,0CATF,WAoBIt7K,EAVFk7K,sBAVF,WAoBIl7K,EATFi7K,yBAXF,SAYEuP,EAQExqL,EARFwqL,YAZF,GAoBIxqL,EAPFyqL,gBAOEzqL,EANF0yL,uDAdF,SAeEC,EAKE3yL,EALF2yL,iCACAC,EAIE5yL,EAJF4yL,sBACAC,EAGE7yL,EAHF6yL,yBACAC,EAEE9yL,EAFF8yL,yBACAC,EACE/yL,EADF+yL,wBAEI5gL,EAAWipI,cACjB,EAAkFhlB,oBAAS,GAA3F,mBAAO48D,EAAP,KAA0CC,EAA1C,KACA,EAAkD78D,qBAAlD,mBAAO88D,EAAP,KAA0BC,EAA1B,KACA,GAAgD/8D,mBAAc,IAA9D,qBAAOg9D,GAAP,MAAyBC,GAAzB,MACA,GAA6Cv9D,aAAY,SAACnsI,GAAD,MAAY,CACnE4Q,MAAO5Q,EACPS,KAAM+gB,cAA0BxhB,GAChCq+G,UAAWyoE,IAAoC9mL,GAC/Co+G,SAAU0oE,IAAmC9mL,OAJvC4Q,GAAR,GAAQA,MAAOnQ,GAAf,GAAeA,KAAM49G,GAArB,GAAqBA,UAAWD,GAAhC,GAAgCA,SAOhCoH,qBAAU,WACJigF,GACFA,EAAuB,2BAClBD,GADiB,IAEpBnnL,UAA2C,OAAhB,OAAhBorL,SAAgB,IAAhBA,QAAA,EAAAA,GAAkB37J,iBAGhC,CAAC27J,KAEJjkF,qBAAU,YACHnH,IAAaorF,GAAiB37J,aACjC47J,GAAoB5iB,IAA8Bl2K,GAAO64L,GAAiB37J,aAC1Ew7J,GAAqC,MAEtC,CAACjrF,KAEJ,IAAM8pF,GAAoB,SAAC/gD,GACzB,IAAIghD,EAEFA,EADEhhD,aAAkBC,IAAE6/C,OACjB9/C,EAEAC,IAAED,OAAOA,GAEhBplI,EAAIs/K,YAAY,CAAC8G,GAAK,CACpBpD,mBAAoB,CAACoE,EAA0B,EAAI,IAAK,GACxDnE,eAAgB,CAAC,EAAG,IACpBpG,QAAS,GACTqG,QAAS,KAAOljL,EAAImjL,aAIxBroB,aAAqB,WACnB,GAAI2U,GAAkCzvK,GAAO3D,EAAU2K,OAAS,EAC9D,GAAwB,GAApB3K,EAAU2K,QACZ,GAA6B,MAAzB3K,EAAU,GAAG8gB,UAA8C,MAA1B9gB,EAAU,GAAG+gB,UAAmB,CACnE,IAAIgpK,EAAK/gD,IAAED,OAAO/oI,EAAU,GAAG8gB,SAAU9gB,EAAU,GAAG+gB,WACtDpd,EAAIs/K,YAAY8G,EAAG7G,SAAS,KAAM,SAE/B,CACL,IAAIxtB,EAAS1sB,IAAE2/C,aAAa3oL,EAAU2D,KAAI,SAAC2nL,GAAD,MAAS,CAACA,EAAIxqK,SAAUwqK,EAAIvqK,eACtEpd,EAAI+kL,UAAUhzB,MAGjB,QACD11J,QADC,IACDA,OADC,EACDA,EAAW2D,KAAI,SAACgwB,GAAD,MAAe,CAC5B7S,SAAQ,OAAE6S,QAAF,IAAEA,OAAF,EAAEA,EAAU7S,SACpBC,UAAS,OAAE4S,QAAF,IAAEA,OAAF,EAAEA,EAAU5S,UACrBgtF,aAAY,OAAEp6E,QAAF,IAAEA,OAAF,EAAEA,EAAUo6E,iBAE1BqlE,IAGFjsE,qBAAU,WACR,GAAI4jF,EAAyB,CAC3B,IAAIhB,EAAK/gD,IAAED,OAAOgiD,EAAwBjqK,SAAUiqK,EAAwBhqK,WAC5E+oK,GAAkBC,MAEnB,CAACgB,IAGJ5jF,qBAAU,WACR,GAAIujF,GAAkDpX,GACpD,GAAIqX,EAAkC,CACpC,IAAMY,EAA6B9iB,IACjCl2K,GACAo4L,GAGF,GACEO,IAAsBP,GACiB,MAAvCY,EAA2BzqK,UACa,MAAxCyqK,EAA2BxqK,UAC3B,CACAoqK,EAAqBI,EAA2B97J,YAChD47J,GAAoBE,GACpB,IAAIxB,EAAK/gD,IAAED,OACTwiD,EAA2BzqK,SAC3ByqK,EAA2BxqK,WAE7B+oK,GAAkBC,GAEpBkB,GAAqC,SAGvCE,OAAqBl7L,GACrBo7L,GAAoB,IACpBJ,GAAqC,KAEtC,CAACN,IACUzjF,iBAAiBrS,SAASvxF,MAAxC,IAIIylL,GAA4BC,WAC5Bx4L,QAAOP,EACPijL,IACF6V,GAA4BhE,EAC5Bv0L,GAAO,cAAC,KAAD,CAAMA,KAAM,UAAWoL,KAAM,MAGtC,OAA8CwyH,mBAAS,IAAvD,qBAAOo9D,GAAP,MAAwBC,GAAxB,MACMlB,GAAiB,WACrBkB,GACEzrL,EAAUie,QAAO,SAAC0V,GAAD,OACfhwB,GAC0B,OAAd,OAARgwB,QAAQ,IAARA,OAAA,EAAAA,EAAU7S,WACa,OAAf,OAAR6S,QAAQ,IAARA,OAAA,EAAAA,EAAU5S,YACVpd,EAAIy/K,YAAYljB,SAASl3B,IAAED,OAAOp1G,EAAS7S,SAAU6S,EAAS5S,eAC5DkyJ,GACAyY,aAAwB/nL,EAAImjL,WAAmB,OAARnzJ,QAAQ,IAARA,OAAA,EAAAA,EAAU0hI,SAAU,MAD5D,OAECo1B,QAFD,IAECA,OAFD,EAECA,EAAqBtjM,SAArB,OAA8BwsC,QAA9B,IAA8BA,OAA9B,EAA8BA,EAAUlE,mBAkBpD,OAbAgvI,aAAqB,WACnB8rB,OACC,CACDpX,EACAnzE,GACAD,GAHC,OAID//F,QAJC,IAIDA,OAJC,EAIDA,EAAW2D,KAAI,SAACgwB,GAAD,MAAe,CAC5B7S,SAAU6S,EAAS7S,SACnBC,UAAS,OAAE4S,QAAF,IAAEA,OAAF,EAAEA,EAAU5S,UACrBgtF,aAAY,OAAEp6E,QAAF,IAAEA,OAAF,EAAEA,EAAUo6E,mBAK1B,sCACIolE,GAAiBqX,IACjB,cAACzB,GAAD,2BAAgCv4L,GAAO,CAAEA,cAASP,GAAlD,aACGu7L,GAAgB7nL,KACf,SAACgwB,GAAD,iBACuB,MAArBA,EAAS7S,UACa,MAAtB6S,EAAS5S,YACPoyJ,IAAkBqX,GACjBA,GAAsB72J,EAASo6E,eAChC,gCACE,cAACo8E,EAAA,EAAD,CAEEd,aACEoB,GACAA,EAAoB9/K,OAAS,GAC7B8/K,EAAoBtjM,SAASwsC,EAASlE,YAClC,IACA,IAENk8J,aAAa,EACbn7L,KAAMw4I,IAAEK,QAAQ,CACd1kC,UAAW,kBACXhQ,KAAK,oDAAD,QACiB,OAAnB81F,QAAmB,IAAnBA,OAAA,EAAAA,EAAqB9/K,QAAS,IAC7B8/K,EAAoBtjM,SAASwsC,EAASlE,YACnC,2BACsC,MAAtCkE,EAASk1I,0BACT,gBACAl1I,EAASk1I,0BANX,6BAQFl1I,EAASi4J,4BARP,2CAUAj4J,EAAS4/I,6BAVT,QAUkC,UAVlC,gFAcJrlD,SAAU,CAAC,GAAI,IACfob,WAAY,CAAC,GAAI,IACjBC,YAAa,CAAC,GAAI,MAEpB14I,SAAU,CAAC8iC,EAAS7S,SAAU6S,EAAS5S,WACvCsjK,cAAe,CACbC,MAAO,SAAC14F,IACN,OAAIk/F,QAAJ,IAAIA,OAAJ,EAAIA,EAA0BlxB,WAC5BzvJ,EACE9B,KAAA,OACEyiL,QADF,IACEA,OADF,EACEA,EAA0BlxB,QAAQnqI,aAGlCo7J,GAA0BA,OAAyB56L,IAEzDo7L,GAAoB13J,GAChB2/I,GACF2X,GAAqC,GAEvCnB,GAAkBl+F,EAAEw+F,UA7C1B,SAiDG5H,GACC,eAAC8G,EAAA,EAAD,CACEuC,UAA6C,IAA9B,OAAJzpM,SAAI,IAAJA,QAAA,EAAAA,GAAMK,0BACjB87K,UAAW,MACXgrB,OAAQ,CAAC,GAAI,IAHf,UAKE,mBAAG5kF,UAAU,cAAcH,MAAO,CAAE8D,SAAU,QAA9C,SACG30E,EAAS3C,eAGX2C,EAASm4J,cACR,qCACE,uBADF,IACS,uBACP,cAACC,EAAA,EAAD,CACElnF,IAAKlxE,EAASm4J,aACdhnF,OAAO,KACPxtG,MAAM,KACNktG,MAAO,CACLC,QAAS,QACTylC,WAAY,OACZnlC,YAAa,kBAS1BsuE,GACC,cAACuR,EAAA,EAAD,CACElvB,OAAQN,YACNzhI,EAAS7S,SACT6S,EAAS5S,UAFoB,UAG7B4S,EAAS0hI,cAHoB,QAGV,IAErB+uB,YAAa,CAAEvoL,MAAO83B,EAAS+0I,mBAtInCvgE,eAgDQx0E,EAASlE,kBA+F7B,cAACu8J,GAAA,EAAD,CACEj+D,UAAW/tB,GACXypF,gBAAiB,WACfwB,GAAqC,GACrCI,GAAoB,KAEtB3B,iBAAkBsB,EAClB/zL,MAAOm0L,GAAiBp6J,aACxB2C,SAAUy3J,GACVR,sBAAuBA,EACvBE,yBAA0BA,EAC1BD,yBAA0BA,QAMlCP,GAAa1/E,aAAe,CAC1BwoE,gCAAgC,EAChCE,oCAAoC,EACpCtzK,UAAW,GACXmzK,eAAe,EACfE,oBAAoB,EACpBH,gBAAgB,EAChBD,mBAAmB,EACnBwP,iBAAiB,EACjBiI,gDAAgD,EAChDlI,aAAa,EACbmI,sCAAkC16L,EAClCu6L,oBAAoB,GAGPF,U,UC3TT2B,GAAmB,SAACj0L,GACR6mL,cAAhB,IAGEsI,EAaEnvL,EAbFmvL,oBADF,EAcInvL,EAZFwvL,sCAFF,WAcIxvL,EAXFo7K,sCAHF,WAcIp7K,EAVFk0L,kCAJF,WAcIl0L,EATFm0L,2CALF,WAcIn0L,EARFo0L,mCANF,WAcIp0L,EAPFwI,iBAPF,MAOc,GAPd,IAcIxI,EANFgI,iBARF,MAQc,GARd,IAcIhI,EALFqI,aATF,MASU,GATV,IAcIrI,EAJFmI,cAVF,MAUW,GAVX,EAWEksL,EAGEr0L,EAHFq0L,wBACA1F,EAEE3uL,EAFF2uL,mBACAC,EACE5uL,EADF4uL,eAGIjjL,GADQmqH,aAAY,SAACnsI,GAAD,OAAWA,KACzB0gM,eAuFNQ,EAAe,SAACQ,GAIpB,OAFeE,IAAIC,SAAShnL,MAAM6mL,GAElBI,aAelB,OAbAhlB,aAAqB,WAEM,MAAvB0oB,GAC+D,IAA/Dv8F,OAAO9rE,OAAOqoK,GAAqBlpK,QAAO,SAACquK,GAAD,OAAOA,KAAG3hL,QA9F/B,WACvB,IAAI+qJ,EAAS,GACT0d,GACFpzK,EACGie,QAAO,SAAC0V,GAAD,OAAoC,OAAd,OAARA,QAAQ,IAARA,OAAA,EAAAA,EAAU7S,WAA2C,OAAf,OAAR6S,QAAQ,IAARA,OAAA,EAAAA,EAAU5S,cAC7Dpd,KAAI,SAACgwB,GACJ+hI,EAAM,sBAAOA,GAAP,CAAe1sB,IAAED,OAAOp1G,EAAS7S,SAAU6S,EAAS5S,gBAG5DymK,GACFhnL,EAAUmD,KAAI,SAACkF,GACb,IAAI+5K,EACJA,EAAkBC,EAAah6K,EAASi6K,mBAClB,KAAlBj6K,EAAS4tK,MACX/gB,EAAM,sBACDA,GADC,CAEJ1sB,IAAED,OAAO65C,EAAgBI,YAAY,GAAIJ,EAAgBI,YAAY,MAE5C,KAAlBn6K,EAAS4tK,MAClB/gB,EAAM,sBACDA,GADC,YAEDktB,EAAgBI,YAAY,GAAGr/K,KAAI,SAAC4kL,GAAD,OAAYv/C,IAAED,OAAO,CAACw/C,EAAO,GAAIA,EAAO,UAErD,KAAlB1/K,EAAS4tK,MAClB/gB,EAAM,sBACDA,GADC,YAEwB,cAAxBktB,EAAgB/gM,KAChB+gM,EAAgBI,YAAYr/K,KAAI,SAAC4kL,GAAD,OAAYv/C,IAAED,OAAO,CAACw/C,EAAO,GAAIA,EAAO,QACxE3F,EAAgBI,YAAY,GAAGr/K,KAAI,SAAC4kL,GAAD,OAAYv/C,IAAED,OAAO,CAACw/C,EAAO,GAAIA,EAAO,UAEtD,KAAlB1/K,EAAS4tK,QAClB/gB,EAAM,sBACDA,GADC,CAEJvxD,EAAEqkF,QACA5F,EAAgBI,YAAYr/K,KAAI,SAAC8kL,GAAD,OAC9BA,EAAW9kL,KAAI,SAAC4kL,GAAD,OACbA,EAAO,IAAMA,EAAO,GAAKv/C,IAAED,OAAO,CAACw/C,EAAO,GAAIA,EAAO,KAAO,kBAQtE2D,GACF7rL,EACG4d,QAAO,SAACnK,GAAD,OAA4B,OAAd,OAAJA,QAAI,IAAJA,OAAA,EAAAA,EAAMgN,WAAuC,OAAf,OAAJhN,QAAI,IAAJA,OAAA,EAAAA,EAAMiN,cACjDpd,KAAI,SAACmQ,GACJ4hJ,EAAM,sBAAOA,GAAP,CAAe1sB,IAAED,OAAOj1H,EAAKgN,SAAUhN,EAAKiN,gBAGpDorK,GACF9rL,EACG4d,QAAO,SAACnK,GAAD,oBAAUA,QAAV,IAAUA,GAAV,UAAUA,EAAMuoG,2BAAhB,aAAU,EAA2BvjG,YAC5CnV,KAAI,SAACmQ,GACJA,EAAKuoG,oBAAoBvjG,SAASnV,KAAI,SAAC9S,GACrC6kK,EAAM,sBAAOA,GAAP,CAAe1sB,IAAED,OAAOl4I,EAASiwB,SAAUjwB,EAASkwB,mBAI9DqrK,GACFjsL,EAAOwD,KAAI,SAACqb,GACV02I,EAAM,sBAAOA,GAAP,YAAkBlsB,aAAexqH,SAIxCwoK,GACCpU,GACA8Y,GACAC,GACAC,IACF12B,EAAO/qJ,OAAS,GAEhBhH,EAAIs/K,YACFj6C,IAAE2/C,aAAajzB,EAAOz3I,QAAO,SAAC2qK,GAAD,OAAoB,MAATA,GAAiBA,aAAiB5/C,IAAE6/C,WAC5E,CACElC,mBAAkB,OAAEA,QAAF,IAAEA,SAAsB12L,EAC1C22L,eAAc,OAAEA,QAAF,IAAEA,SAAkB32L,EAClCuwL,QAAS,GACTqG,QAAS,KAAOljL,EAAImjL,YAiBxByF,KACD,CACDpF,EACA3mL,EACAR,EACAwnL,EACA6E,IAEK,MAGTJ,GAAiBrhF,aAAe,CAC9B48E,gCAAgC,EAChCpU,gCAAgC,EAChC5yK,UAAW,GACXR,UAAW,IAGEisL,U,6TCvJXnzK,GAAW,GAEf,SAAS0zK,GAAO/D,EAAYgE,GAC1BhE,EAAa/iG,KAAKH,MAAMkjG,EAAagE,IACrChE,IAAe,GACE,IACfA,GAAcA,GAGhB,IADA,IAAIiE,EAAS,GACNjE,GAAc,IACnBiE,GAAU7lG,OAAO8lG,aAA4C,IAA9B,GAAqB,GAAblE,IACvCA,IAAe,EAGjB,OADAiE,GAAU7lG,OAAO8lG,aAAalE,EAAa,IAwF7C,SAASmE,GAAQrE,GAEf,IADA,IAAIqE,EAAU,GACL/zK,EAAI,EAAGA,EAAI0vK,EAAO59K,OAAQkO,IACjC+zK,EAAQzuL,KAAKoqL,EAAO1vK,GAAGusE,QAAQynG,WAEjC,OAAOD,EA9ET9zK,GAASg0K,OAAS,SAAUnT,EAAKoT,GAe/B,IAdA,IAOEC,EAPEnmL,EAAQ,EACVomL,EAAM,EACNC,EAAM,EACNlK,EAAc,GACdrtF,EAAQ,EACR99F,EAAS,EACTs1L,EAAO,KAGPV,EAAS/mG,KAAK0nG,IAAI,GAAIL,GAAa,GAK9BlmL,EAAQ8yK,EAAIhvK,QAAQ,CAEzBwiL,EAAO,KACPx3F,EAAQ,EACR99F,EAAS,EAET,GAEEA,IAAkB,IADlBs1L,EAAOxT,EAAI0T,WAAWxmL,KAAW,MACN8uF,EAC3BA,GAAS,QACFw3F,GAAQ,IAEjBH,EAA2B,EAATn1L,IAAeA,GAAU,GAAKA,GAAU,EAE1D89F,EAAQ99F,EAAS,EAEjB,GAEEA,IAAkB,IADlBs1L,EAAOxT,EAAI0T,WAAWxmL,KAAW,MACN8uF,EAC3BA,GAAS,QACFw3F,GAAQ,IAIjBF,GAAOD,EACPE,GAH4B,EAATr1L,IAAeA,GAAU,GAAKA,GAAU,EAK3DmrL,EAAY7kL,KAAK,CAAC8uL,EAAMR,EAAQS,EAAMT,IAGxC,OAAOzJ,GAUTlqK,GAAS0zK,OAAS,SAAUxJ,EAAa+J,GACvC,IAAK/J,EAAYr4K,OACf,MAAO,GAMT,IAHA,IAAI8hL,EAAS/mG,KAAK0nG,IAAI,GAAIL,GAAa,GACrCL,EAASF,GAAOxJ,EAAY,GAAG,GAAIyJ,GAAUD,GAAOxJ,EAAY,GAAG,GAAIyJ,GAEhE5zK,EAAI,EAAGA,EAAImqK,EAAYr4K,OAAQkO,IAAK,CAC3C,IAAIhqB,EAAIm0L,EAAYnqK,GAClB6uE,EAAIs7F,EAAYnqK,EAAI,GACtB6zK,GAAUF,GAAO39L,EAAE,GAAK64F,EAAE,GAAI+kG,GAC9BC,GAAUF,GAAO39L,EAAE,GAAK64F,EAAE,GAAI+kG,GAGhC,OAAOC,GAkBT5zK,GAASw0K,YAAc,SAAUC,EAASR,GAIxC,GAHIQ,GAA4B,YAAjBA,EAAQ1rM,OACrB0rM,EAAUA,EAAQjK,WAEfiK,GAA4B,eAAjBA,EAAQ1rM,KACtB,MAAM,IAAIivG,MAAM,sCAElB,OAAOh4E,GAAS0zK,OAAOI,GAAQW,EAAQvK,aAAc+J,IAUvDj0K,GAAS2qK,UAAY,SAAU9J,EAAKoT,GAElC,MAAO,CACLlrM,KAAM,aACNmhM,YAAa4J,GAHF9zK,GAASg0K,OAAOnT,EAAKoT,MAOrBj0K,UCtJfkwH,EAAEwkD,QAAUxkD,EAAEwkD,SAAW,GACzBxkD,EAAEwkD,QAAQC,OAASzkD,EAAE0kD,MAAMC,OAAO,CAChCnnF,QAAS,GACTonF,WAAY,SAAUpnF,GACpB/3G,KAAK+3G,QAAUwiC,EAAE2kD,OAAOl/L,KAAK+3G,QAAS,CACpCqnF,WAAYC,OAAOC,KAAKC,WAAWC,QACnCC,WAAYJ,OAAOC,KAAKI,WAAWC,OACnCC,0BAA0B,IAE5B5/L,KAAK6/L,kBAAoB,IAAIR,OAAOC,KAAKQ,kBACzCvlD,EAAEwlD,KAAKjU,WAAW9rL,KAAM+3G,IAE1BioF,SAAU,SAAUC,GAClB,IACE71K,EADEs3E,EAAM,GAEV,IAAKt3E,EAAI,EAAGA,EAAI61K,EAAK/jL,OAAQkO,IAAKs3E,EAAMA,EAAIw+F,OAAOD,EAAK71K,IACxD,OAAOs3E,GAETy+F,gBAAiB,SAAUtL,GACzB,IAEEzqK,EAFE0vK,EAASzvK,GAASg0K,OAAOxJ,EAAU,GACrCuL,EAAU,IAAIxsL,MAAMkmL,EAAO59K,QAE7B,IAAKkO,EAAI,EAAGA,EAAI0vK,EAAO59K,OAAQkO,IAC7Bg2K,EAAQh2K,GAAK,IAAImwH,EAAE6/C,OAAON,EAAO1vK,GAAG,GAAI0vK,EAAO1vK,GAAG,IAGpD,OAAOg2K,GAETC,2BAA4B,SAAUC,GACpC,OAAQA,GACN,IAAK,aACH,MAAO,QACT,IAAK,oBACL,IAAK,aACL,IAAK,aACH,MAAO,cACT,IAAK,mBACH,MAAO,aACT,IAAK,YACH,MAAO,OACT,IAAK,mBACL,IAAK,YACL,IAAK,YACH,MAAO,aACT,IAAK,kBACH,MAAO,YACT,IAAK,cACL,IAAK,aACH,MAAO,aACT,IAAK,kBACL,IAAK,mBACH,MAAO,aACT,QACE,MAAO,aAGb/vK,MAAO,SAAUgwK,EAAWzI,EAAU3H,EAASp4E,GAC7C,IAAIyoF,EAAOxgM,KACPygM,EAAalmD,EAAE2kD,OAAO,GAAIl/L,KAAK+3G,SA+GnC,OA9GIA,EAAQ2oF,eACVD,EAAWb,0BAA2B,GAExCa,EAAWE,OAASJ,EAAU,GAAGjmD,OAAOkkD,IAAM,IAAM+B,EAAU,GAAGjmD,OAAOmkD,IACxEgC,EAAWG,YACTL,EAAUA,EAAUrkL,OAAS,GAAGo+H,OAAOkkD,IAAM,IAAM+B,EAAUA,EAAUrkL,OAAS,GAAGo+H,OAAOmkD,IAC5FgC,EAAWF,UAAYA,EAAU5pG,MAAM,EAAG4pG,EAAUrkL,OAAS,GAAGhH,KAAI,SAAU2rL,GAC5E,MAAO,CACL37J,SAAU27J,EAASvmD,OAAOkkD,IAAM,IAAMqC,EAASvmD,OAAOmkD,IACtDqC,UAAU,MAId9gM,KAAK6/L,kBAAkBtvK,MAAMkwK,GAAY,SAAUr3L,EAAQjG,GACzD,GAAIA,GAAUk8L,OAAOC,KAAKyB,iBAAiBC,GAAI,CAC7C,IAAIz4I,EAAIn/C,EAAOsI,OAAOwD,KAAI,SAAUqb,GAClC,IACEnG,EAEAy5G,EAHEo9D,EAAS,GAIbA,EAAO1/L,KAAOgvB,EAAM2wK,QACpBD,EAAOC,QAAU,CACfC,cAAeX,EACZR,SACCzvK,EAAM6wK,KAAKlsL,KAAI,SAAUmsL,GACvB,OAAOA,EAAIC,MAAMpsL,KAAI,SAAU2uH,GAC7B,OAAOA,EAAKtqI,SAASsQ,aAI1BitC,QAAO,SAAUyqJ,EAAe9U,GAC/B,OAAO8U,EAAgB9U,KAE3B+U,UAAWhB,EACRR,SACCzvK,EAAM6wK,KAAKlsL,KAAI,SAAUmsL,GACvB,OAAOA,EAAIC,MAAMpsL,KAAI,SAAU2uH,GAC7B,OAAOA,EAAKrhC,SAAS34F,aAI1BitC,QAAO,SAAUyqJ,EAAe9U,GAC/B,OAAO8U,EAAgB9U,MAI7BwU,EAAO1M,YAAc,GACrB,IAAIkN,EAAU,GACZC,EAAmB,GAEjBC,EAAkB,CAAC,GACnBC,EAAY,EAEhB,IAAKx3K,EAAI,EAAGA,EAAImG,EAAM6wK,KAAKllL,OAAQkO,IAAK,CACtCs3K,EAAmB,GACnB,IAAIG,EAAc,GAElB,IAAKzuB,EAAI,EAAGA,EAAI7iJ,EAAM6wK,KAAKh3K,GAAGk3K,MAAMplL,OAAQk3J,IAAK,CAC/CvvC,EAAOtzG,EAAM6wK,KAAKh3K,GAAGk3K,MAAMluB,GAC3B,IAAI0uB,EAAStB,EAAKL,gBAAgBt8D,EAAKx5G,SAASy3K,QAChDD,EAAYzuB,GAAK0uB,EAAO5lL,OACxBwlL,EAAiBhyL,KAAKuxL,EAAO1M,YAAYr4K,QACzC+kL,EAAO1M,YAAc0M,EAAO1M,YAAY2L,OAAO4B,GAEjDL,EAAQ/xL,KAAKgyL,GAEb,IAAK,IAAItuB,EAAI,EAAGA,EAAI7iJ,EAAM6wK,KAAKh3K,GAAG23K,cAAc7lL,OAAQk3J,IAAK,CAC3D,IAAI4uB,EAAKzxK,EAAM6wK,KAAKh3K,GAAG63K,aAAa7uB,GAAG8uB,WACnCC,EAAK5xK,EAAM6wK,KAAKh3K,GAAG63K,aAAa7uB,GAAGgvB,mBAEvCT,EAAgBC,GAAaF,EAAiBM,GAAM/qG,KAAKC,MAAM2qG,EAAYG,GAAMG,GACjFP,KAUJ,GANAX,EAAOoB,eAAiB9B,GAAa,GACrCU,EAAOV,UAAYU,EAAOqB,gBAAkB/B,EAE5CoB,EAAgBC,GAAaX,EAAO1M,YAAYr4K,OAAS,EACzD+kL,EAAOU,gBAAkBA,GAEpB5pF,EAAQ2oF,aAEX,IADAO,EAAOsB,aAAe,GACjBn4K,EAAI,EAAGA,EAAImG,EAAM6wK,KAAKllL,OAAQkO,IACjC,IAAKgpJ,EAAI,EAAGA,EAAI7iJ,EAAM6wK,KAAKh3K,GAAGk3K,MAAMplL,OAAQk3J,IAC1CvvC,EAAOtzG,EAAM6wK,KAAKh3K,GAAGk3K,MAAMluB,GAC3B6tB,EAAOsB,aAAa7yL,KAAK,CACvBtc,KAAMotM,EAAKH,2BAA2Bx8D,EAAKy8D,UAC3Ct+L,KAAM6hI,EAAK0+D,aAAa3pG,QAAQ,iBAAkB,IAClDr/F,SAAUsqI,EAAKtqI,SAASsQ,MACxBk2F,KAAM8jC,EAAKrhC,SAAS34F,MACpBuO,MAAOqpL,EAAQr3K,GAAGgpJ,GAClBovB,KAAM,OAId,OAAOvB,KAET,IACEnJ,EAASnjL,KAAKw7K,GAAW2H,EAAU,KAAMvvI,GACzC,gBAEF,IACEuvI,EAASnjL,KAAKw7K,EAAS,CACrBhtL,OAAQA,EACRxB,QAASyH,IAEX,cAGCpJ,QAIXu6I,EAAEwkD,QAAQM,OAAS,SAAUtnF,GAC3B,OAAO,IAAIwiC,EAAEwkD,QAAQC,OAAOjnF,IC3I9B,IAAM0qF,GAAY,SAACl5L,GACjB,IACE+vG,EAcE/vG,EAdF+vG,QACAopF,EAaEn5L,EAbFm5L,WACAjwK,EAYElpB,EAZFkpB,YACAkwK,EAWEp5L,EAXFo5L,iBACAC,EAUEr5L,EAVFq5L,cACAC,EASEt5L,EATFs5L,eACAC,EAQEv5L,EARFu5L,SACAC,EAOEx5L,EAPFw5L,iBACAC,EAMEz5L,EANFy5L,kBACAC,EAKE15L,EALF05L,8BACAC,EAIE35L,EAJF25L,wBACAC,EAGE55L,EAHF45L,2BACAz1L,EAEEnE,EAFFmE,KACA0K,EACE7O,EADF6O,MAEIzb,EAAOG,cACb,EAAoC6iI,oBAAkB,GAAtD,mBAAOyjE,EAAP,KAAmBC,EAAnB,KACA,EAA4C1jE,oBAAkB,GAA9D,mBAAO2jE,EAAP,KAAuBC,EAAvB,KACA,EAA8C5jE,oBAAkB,GAAhE,mBAAO6jE,EAAP,KAAwBC,EAAxB,KACA,EAAgD9jE,oBAAkB,GAAlE,mBAAO+jE,EAAP,KAAyBC,EAAzB,KACA,EAA4DhkE,oBAAkB,GAA9E,mBAAOikE,EAAP,KAA+BC,EAA/B,KACA,EAAkDlkE,oBAAkB,GAApE,mBAEMpuH,GAFN,UAEkB8tH,aAAY,SAACnsI,GAC7B,IAAM4wM,EAAiB,sBAAO9pB,IAAmC9mL,IAA1C,YAAqDyvM,IAC5E,OACEj1L,EAAKszB,aAAe8iK,EAAkB5uL,KAAI,SAAC2nL,GAAD,OAASA,EAAI77J,cAAYtoC,SAASgV,EAAKszB,YAAjF,sBACQ8iK,GADR,CAC2Bp2L,IACvBo2L,GACJ5uL,KAAI,SAAC2nL,GAAD,OACJA,EAAI77J,aAAetzB,EAAKszB,WAAxB,2BAA0C67J,GAA1C,IAA+Ct6J,aAAc70B,EAAKq2L,iBAAmBlH,SAIzF,OACE,eAACmH,GAAA,EAAD,CACE9tF,UAAW99F,IAAUqa,EAAYvW,OAAS,EAAI,GAAK,uBAEnD+nL,aAAc,kBAAMZ,GAAc,IAClCa,aAAc,kBAAMb,GAAc,IAJpC,UAME,eAACc,GAAA,EAAD,CAAKjuF,UAAW,4BAAhB,UACE,eAAC6oE,GAAA,EAAD,CACEz9K,GAAI,QAAU8W,EACd6yJ,GAAG,IACHlrC,QAAS,kBACU,MAAjBryH,EAAK2kB,UACa,MAAlB3kB,EAAK4kB,WACLuwK,EACEn1L,EAAKgjB,aACK,IAAVtY,EAAc,EAAIA,IAAUqa,EAAYvW,OAAS,EAAI,EAAI,EACzD9D,IATN,UAaa,IAAVA,EACC,cAAC,KAAD,CACE29F,MAAwB,MAAjBroG,EAAK2kB,UAAsC,MAAlB3kB,EAAK4kB,UAAoB,CAAE44I,OAAQ,WAAc,GACjF/9J,KAAM,GACNpL,KAAK,SACLm0G,UAAW,SAEX99F,IAAUqa,EAAYvW,OAAS,EACjC,cAAC,KAAD,CACE65F,MAAwB,MAAjBroG,EAAK2kB,UAAsC,MAAlB3kB,EAAK4kB,UAAoB,CAAE44I,OAAQ,WAAc,GACjF/9J,KAAM,GACNpL,KAAK,cACLm0G,UAAW,SAGb,cAAC,KAAD,CACEH,MAAwB,MAAjBroG,EAAK2kB,UAAsC,MAAlB3kB,EAAK4kB,UAAoB,CAAE44I,OAAQ,WAAc,GACjF/9J,KAAM,GACNpL,KAAK,SACLm0G,UAAW,SAGG,MAAjBxoG,EAAK2kB,UAAsC,MAAlB3kB,EAAK4kB,WAC7B,cAAC,KAAD,CACE8tG,UAAU,MACVC,OAAQqjE,EACRz/F,OAAQ,QAAU7rF,EAClBkoH,OAAQ,kBAAMqjE,GAAqBD,IACnCnjE,QAAQ,cALV,SAOG5jI,EAAK0E,cAAc,CAClBC,GACY,IAAV8W,EACI,oBACAA,IAAUqa,EAAYvW,OAAS,EAC/B,yBACA,+BAKd,cAAC6iK,GAAA,EAAD,CAAK9T,GAAG,KAAR,SACE,cAAC,KAAD,CACE3xD,QAASA,EACT/3G,KAAM,gBAAkBmM,EAAKgjB,aAAalb,WAC1CsmF,MAAO,CAAEQ,UAAU,GACnB2iF,OAAQ,gBAAGrnE,EAAH,EAAGA,MAAOimE,EAAV,EAAUA,WAAV,OACN,cAAC,KAAD,CACEjmE,MAAOA,EACPC,WAAYgmE,EACZv8K,GAAI,mBAAqBoM,EAAKgjB,aAAalb,WAC3C4uL,oBAAkB,EAClB9nG,UAAQ,EACR+d,aAAW,EACXgqF,4BAA0B,EAC1BC,UAAU,EACVnsF,2BAA4B,SAACtuG,GAC3BA,EACI64L,EAAW,gBAAkBh1L,EAAKgjB,aAAalb,cAAgB3L,KACzD,OAALA,QAAK,IAALA,OAAA,EAAAA,EAAOoyH,gBACJgnE,EAA8Bv1L,EAAKgjB,aAAc7mB,GACjDq5L,EAAwBx1L,EAAKgjB,aAAc7mB,IAC/C64L,EAAW,gBAAkBh1L,EAAKgjB,aAAalb,aAC/C2tL,EAA2Bz1L,EAAKgjB,eAEtCsnF,WAAW,EACXC,kBAAmBvqG,EAAKszB,WACxB+2E,QAASxmG,EAAU2D,KAAI,SAACgwB,GAAD,MAAe,CACpCr7B,MAAOq7B,EAASlE,WAChBy0E,MAAOvwE,EAAS3C,iBAElBu4E,gBACE,qCACE,eAACypF,GAAA,EAAD,CACEjjM,GAAI,cAAgB8W,EACpB29F,MAAO,CAAEm1D,OAAQ,WACjBh1D,UAAW,MACX6pB,QAAS,kBACU,MAAjBryH,EAAK2kB,UAAsC,MAAlB3kB,EAAK4kB,UAC1BuwK,EACEn1L,EAAKgjB,aACK,IAAVtY,EAAc,EAAIA,IAAUqa,EAAYvW,OAAS,EAAI,EAAI,EACzD9D,GAEF4qL,EAAkB5qL,IAX1B,UAcoB,MAAjB1K,EAAK2kB,UAAsC,MAAlB3kB,EAAK4kB,UAC7B,cAAC,KAAD,CAAOnlB,KAAM,KAEb,cAAC,KAAD,CAAQA,KAAM,KAEhB,cAAC,KAAD,CACEizH,UAAU,MACVC,OAAQmjE,EACRv/F,OAAQ,cAAgB7rF,EACxBkoH,OAAQ,kBAAMmjE,GAAoBD,IAClCjjE,QAAQ,cALV,SAOG5jI,EAAK0E,cAAc,CAClBC,GACmB,MAAjBoM,EAAK2kB,UAAsC,MAAlB3kB,EAAK4kB,UAChB,IAAVla,EACE,oBACAA,IAAUqa,EAAYvW,OAAS,EAC/B,yBACA,wBACF,iCAIXuW,EAAYvW,OAAS,GACpB,cAACqoL,GAAA,EAAD,CACEjjM,GAAI,gBAAkB8W,EACtB29F,MAAO,CAAEm1D,OAAQ,WACjBh1D,UAAW,MACX6pB,QAAS,kBAAMgjE,EAAiBr1L,EAAKgjB,eAJvC,SAME,cAAC,KAAD,CAAOvjB,KAAM,UAqBrB8sG,YAAat9G,EAAK0E,cAAc,CAC9BC,GAAI,4CAOhB,eAACg8L,EAAA,EAAD,WACGllL,IAAUqa,EAAYvW,OAAS,GAC9B,qCACE,cAAC,KAAD,CACE5a,GAAI,WAAa8W,EACjB29F,MAAO,CAAEm1D,OAAQ,WACjB/9J,KAAM,GACN+oG,UAAW,OACX6pB,QAAS,kBAAM+iE,EAAS1qL,MAE1B,cAAC,KAAD,CACEgoH,UAAU,MACVC,OAAQujE,EACR3/F,OAAQ,WAAa7rF,EACrBkoH,OAAQ,kBAAMujE,GAA2BD,IACzCrjE,QAAQ,cALV,SAOG5jI,EAAK0E,cAAc,CAClBC,GAAI,4BAKZ,qBAAKA,GAAI,gBAAkB8W,EAAO29F,MAAO,CAAEltG,MAAO,OAAQwtG,OAAQ,QAAlE,SACG+sF,GACC,qCACE,cAAC,KAAD,CAAMrtF,MAAO,CAAEm1D,OAAQ,WAAa/9J,KAAM,GAAI4yH,QAAS,kBAAM6iE,EAAcxqL,MAC3E,cAAC,KAAD,CACEgoH,UAAU,QACVC,OAAQijE,EACRr/F,OAAQ,gBAAkB7rF,EAC1BkoH,OAAQ,kBAAMijE,GAAmBD,IACjC/iE,QAAQ,cALV,SAOG5jI,EAAK0E,cAAc,CAClBC,GAAI,wCAxMXoM,EAAKgjB,eAmNhB+xK,GAAUtmF,aAAe,CACvBqoF,OAAQ,GACRC,WAAY,EACZC,iBAAiB,EACjBC,iBAAiB,GAGJlC,U,yCCzQTmC,GAA+B,SAACr7L,GACpC,IACEknB,EAYElnB,EAZFknB,QACAF,EAWEhnB,EAXFgnB,MACA/nB,EAUEe,EAVFf,MACAC,EASEc,EATFd,YACAo8L,EAQEt7L,EARFs7L,kBACAC,EAOEv7L,EAPFu7L,iBACAJ,EAMEn7L,EANFm7L,gBACAC,EAKEp7L,EALFo7L,gBACAI,EAIEx7L,EAJFw7L,kBACAC,EAGEz7L,EAHFy7L,gBACAC,EAEE17L,EAFF07L,mBACAzwM,EACE+U,EADF/U,WAGImI,EAAOG,cACP4e,EAAWipI,cACjB,EAAyCugD,eAAjC5rF,EAAR,EAAQA,QAAS6rF,EAAjB,EAAiBA,aACXzC,GAAa0C,EADnB,EAA+BA,SAE/B,EAAsCzlE,mBAAe,IAAIzwG,MAAzD,mBAAOm2K,EAAP,KAAoBC,EAApB,KACA,EAAkD3lE,oBAAkB,GAApE,mBAAO4lE,EAAP,KAA0BC,EAA1B,KACA,EAAoD7lE,oBAAkB,GAAtE,mBAAO8lE,EAAP,KAA2BC,EAA3B,KAEA,EAAgCrmE,aAAY,SAACnsI,GAC3C,IAAMyyM,EAAgBC,IAAwB1yM,EAAxB,OAA+BwvM,QAA/B,IAA+BA,OAA/B,EAA+BA,EAAYmD,gBACjE,MAAO,CACLn0L,OAAQk0L,IAAyC1yM,EAAOsB,GACxDsxM,YAAa,EACVf,GAAqBQ,EAAoBh1K,OAAQ/uB,EAClDmkM,GAAiBF,EAAjB,2BAA2CE,GAA3C,IAA0DI,UAAW,iBAAcvkM,GACnFguB,QAAO,SAACe,GAAD,OAAWA,SAPhB7e,EAAR,EAAQA,OAAQo0L,EAAhB,EAAgBA,YAoBhB,OAVAptF,qBAAU,YACR,OAAIgqF,QAAJ,IAAIA,OAAJ,EAAIA,EAAYmD,iBACdnqL,EAASsqL,KAAA,OAAsDtD,QAAtD,IAAsDA,OAAtD,EAAsDA,EAAYmD,mBAE5E,QAACnD,QAAD,IAACA,OAAD,EAACA,EAAYmD,iBAEhB71B,aAAqB,WACnBs1B,EAAe,IAAIp2K,QAClB,CAAC42K,IAGF,eAAC,KAAD,CACE5vF,UAAU,2BACV+vF,iBAAkB,kCAClB5lE,OAAQwkE,EACRr8L,MAAOA,EACPK,MAAO,QACPq9L,eAAgB,kBAAMpB,KANxB,UAQE,cAACqB,GAAD,CACEryM,WAAY,CACVoiH,UAAW,GACXH,MAAO,CAAEM,OAAQ,QACjBgvF,YAAaA,GAEfe,kBACa,OAAXN,QAAW,IAAXA,OAAA,EAAAA,EAAa5pL,QAAS,EAClB,CACEmqL,YAAY,EACZrS,iBAAiB,EACjBsS,gCAAgC,EAChC50L,OAAQo0L,GAEV,GAENS,wBAAyB,CACvB5I,6BAA6B,EAC7BjsL,OAAQo0L,EACRlI,wBAAyByH,KAG7B,cAAClB,GAAA,EAAD,CAAKjuF,UAAW,OAAhB,SACE,cAAC6oE,GAAA,EAAD,CAAK9T,GAAG,KAAR,SACE,cAAC,KAAD,CACE3xD,QAASA,EACT+jE,kBAAgB,EAChB97K,KAAM,iBACNu6F,MAAO,CAAEQ,UAAU,GACnB2iF,OAAQ,gBAAGrnE,EAAH,EAAGA,MAAOimE,EAAV,EAAUA,WAAV,OACN,cAAClmE,GAAA,EAAD,CACEC,MAAOA,EACPC,WAAYgmE,EACZv8K,GAAI,sBACJ+4G,aAAa,EACbrC,WAAS,EACT1b,UAAQ,EACRyb,QAASrmG,EACN8d,QACC,SAACe,GAAD,aACEE,IAAYF,EAAME,UACjBu0K,EAAgB9vL,KAAI,SAACsxL,GAAD,OAAQA,EAAG/1K,WAAS/3B,SAAS63B,EAAME,aACvD,OAACiyK,QAAD,IAACA,GAAD,UAACA,EAAYluM,kBAAb,aAAC,EAAwBoD,iBACxB8qM,EAAWluM,WAAWoD,iBAAmB24B,EAAM34B,mBAEpDsd,KAAI,SAACqb,GAAD,MAAY,CACfjvB,GAAIivB,EAAME,QACV5mB,MAAO0mB,EAAME,QACbglF,MAAOllF,EAAMyC,cAEjByiF,MAAO94G,EAAK0E,cAAc,CACxBC,GAAI,0BAEN24G,YAAat9G,EAAK0E,cAAc,CAAEC,GAAI,qCAMhD,uBACA,eAAC6iM,GAAA,EAAD,CAAKjuF,UAAW,mBAAhB,UACE,cAAC6oE,GAAA,EAAD,CAAK9T,GAAG,KAAR,SACE,eAACqyB,EAAA,EAAD,WACE,cAAC,KAAD,CAAOlwL,MAAO,SACbzQ,EAAK0E,cAAc,CAAEC,GAAI,yBAC1B,cAAC4lL,GAAA,EAAD,CACEhxE,UAAW,QACXn0G,KAAMwjM,EAAoB,SAAW,MACrCn4L,MAAO,OACPmyH,YAAa,kBAAMimE,GAAsBD,IACzCjkM,GAAI,gCAIV,cAACy9K,GAAA,EAAD,CAAK9T,GAAG,KAAR,SACE,eAACqyB,EAAA,EAAD,WACE,cAAC,KAAD,CAAOlwL,MAAO,YACbzQ,EAAK0E,cAAc,CAAEC,GAAI,2BACf,OAAVohM,QAAU,IAAVA,OAAA,EAAAA,EAAYmD,iBACX,cAAC3e,GAAA,EAAD,CACEhxE,UAAW,QACXn0G,KAAM0jM,EAAqB,SAAW,MACtCr4L,MAAO,UACPmyH,YAAa,kBAAMmmE,GAAuBD,IAC1CnkM,GAAI,oCAMd,cAAC6iM,GAAA,EAAD,CAAKjuF,UAAW,oBAAhB,SACE,eAAC6oE,GAAA,EAAD,CAAK9T,GAAG,aAAR,UACGy5B,GACC,cAAC+B,GAAA,EAAO3mE,OAAR,CACE5pB,UAAU,mBACV9oG,MAAM,UAEN2yH,QAASolE,GAAa,SAAC90K,GACrB40K,EAAmB,GAAD,mBACbD,GADa,YAEbtzL,EAAO8d,QAAO,SAACe,GAAD,OAAWA,EAAME,UAAYJ,EAAOw1K,qBAEvDf,OATJ,SAYGr8L,GAAe,cAAC,KAAD,CAAkBnH,GAAG,kBAGxCqjM,GACC,cAAC8B,GAAA,EAAO3mE,OAAR,CACE5pB,UAAU,mBACV9oG,MAAM,QACN2yH,QAAS,kBAAM+kE,KAHjB,SAKE,cAAC,KAAD,CAAkBxjM,GAAG,6BASnCsjM,GAA6BzoF,aAAe,CAC1CuoF,iBAAiB,EACjBC,iBAAiB,GAGJC,UCrJTtqG,GAAU,CACd,CACEP,UAAW,UACXe,WAAY,aAEd,CACEf,UAAW,YACXe,WAAY,eAEd,CACEf,UAAW,eACXe,WAAY,uBAEd,CACEf,UAAW,iBACXe,WAAY,kBACZipC,OAAQ,WACR3wI,KAAM,SACNugL,aAAc,MAEhB,CACE55E,UAAW,aACXe,WAAY,iBAEd,CACEf,UAAW,aACXe,WAAY,sBAEd,CACEf,UAAW,cACXe,WAAY,uBAIV4rG,GAAuB,SAACn9L,GAE5B,IACEknB,EAiCElnB,EAjCFknB,QACA5nB,EAgCEU,EAhCFV,MACAL,EA+BEe,EA/BFf,MACAm+L,EA8BEp9L,EA9BFo9L,SACAl+L,EA6BEc,EA7BFd,YACAg8L,EA4BEl7L,EA5BFk7L,WACAI,EA2BEt7L,EA3BFs7L,kBACA+B,EA0BEr9L,EA1BFq9L,qBACApC,EAyBEj7L,EAzBFi7L,OACAE,EAwBEn7L,EAxBFm7L,gBACAC,EAuBEp7L,EAvBFo7L,gBACAxxM,EAsBEoW,EAtBFpW,OACA4xM,EAqBEx7L,EArBFw7L,kBACAI,EAoBE57L,EApBF47L,aACA7rF,EAmBE/vG,EAnBF+vG,QACAopF,EAkBEn5L,EAlBFm5L,WACA9mD,EAiBEryI,EAjBFqyI,OACAtc,EAgBE/1H,EAhBF+1H,UACAunE,EAeEt9L,EAfFs9L,cACAltB,EAcEpwK,EAdFowK,MACAlnJ,EAaElpB,EAbFkpB,YACAq0K,EAYEv9L,EAZFu9L,eACAnE,EAWEp5L,EAXFo5L,iBACAC,EAUEr5L,EAVFq5L,cACAC,EASEt5L,EATFs5L,eACAC,EAQEv5L,EARFu5L,SACAC,EAOEx5L,EAPFw5L,iBACAC,EAMEz5L,EANFy5L,kBACAC,EAKE15L,EALF05L,8BACAC,EAIE35L,EAJF25L,wBACAC,EAGE55L,EAHF45L,2BACA6B,EAEEz7L,EAFFy7L,gBACAC,EACE17L,EADF07L,mBAGItoM,EAAOG,cACb,EAAsC6iI,mBAAc8kE,GAApD,mBAAOsC,EAAP,KAAoBC,EAApB,KACA,EAAmCrnE,mBAAmB,IAAtD,mBAAO9rG,EAAP,KAAiBu5I,EAAjB,KACA,EACEztC,oBAAkB,GADpB,mBAAOsnE,GAAP,KAA2CC,GAA3C,KAGA,GAAgC7nE,aAAY,SAACnsI,GAAD,MAAY,CACtDwe,OAAQk0L,IAA6B1yM,GACrCqxI,YAAa7vH,iBAA6BxhB,OAF5BqxI,IAAhB,GAAQ7yH,OAAR,GAAgB6yH,aAKhByrC,aAAqB,WACnB,IAAMm3B,EAAahrG,OAAO0qB,KAAK+0B,GAC3BurD,EAAWjrL,OAAS,IAEJ,IAAhB6qL,GACmF,IAAnFI,EAAW33K,QAAO,SAACp6B,GAAD,MAAS,CAAC,eAAgB,aAAasD,SAAStD,MAAM8mB,OAExE8qL,EAAe,GAEC,IAAhBD,GACoE,IAApEI,EAAW33K,QAAO,SAACp6B,GAAD,OAASA,EAAIsD,SAAS,mBAAiBwjB,OAEzD8qL,EAAe,GAEC,IAAhBD,GACmF,IAAnFI,EAAW33K,QAAO,SAACp6B,GAAD,MAAS,CAAC,eAAgB,aAAasD,SAAStD,MAAM8mB,OAExE8qL,EAAe,IAEC,IAAhBD,GACAI,EAAW33K,QAAO,SAACp6B,GAAD,OAASA,EAAIsD,SAAS,mBAAiBwjB,OAEzD8qL,EAAe,OAGlB,CAAC7qG,OAAO0qB,KAAK+0B,KAEhB,IAAMkpD,GAAmB,SAACsC,GACxBR,EAAqBQ,IAGvB,OACE,qCACE,eAAC,KAAD,CACElxF,UAAU,2BACV+vF,iBAAkB,kCAClB5lE,OAAQwkE,EACRr8L,MAAOA,EACPm+L,SAAUA,EACV99L,MAAOA,EACPq9L,eAAgB,kBAAMpB,IAAiB,IAPzC,UASE,cAACuC,GAAA,EAAD,CACEC,iBAAgB,OAAEP,QAAF,IAAEA,IAAetC,EACjC8C,UAAWR,EACXS,aAAc,SAACC,GACbT,EAAeS,IAEjBC,gBAAgB,EAChBC,KAAM,CACJ,CACEC,MAAO,EACPp/L,MAAO,6BAET,CACEo/L,MAAO,EACP7lM,KAAM,QACNyG,MAAO,sBAET,CACEo/L,MAAO,EACP7lM,KAAM,UACNyG,MAAO,2BAGXq/L,YAAa,CACX,CACED,MAAO,EACPE,UACE,cAAC3D,GAAA,EAAD,CAAKjuF,UAAW,gCAAhB,SACGsuF,EAAOtvL,KAAI,SAACxL,EAAO0gB,GAAR,OACV,eAAC20J,GAAA,EAAD,CACE9T,GAAG,KACH/0D,UAA0B,eAAfxsG,EAAMtW,KAAwB,YAAc,GAFzD,UAKGsW,EAAMi9L,UACL,oBAAIzwF,UAAiB,IAAN9rF,EAAU,cAAgB,mBAAzC,SACG1gB,EAAMi9L,SAASjvM,MAAM,MAAMwd,KAAI,SAACkV,EAAGh1B,GAClC,OAAe,IAARA,EACL,+BAA4Bg1B,GAAjB,SAAWh1B,GAEtB,iCACE,uBACCg1B,IAFQ,SAAWh1B,QAQ9B,cAAC2yM,GAAA,EAAD,CAA6BzuF,QAASA,EAAS5vG,MAAOA,GAA5B0gB,KAhBrBA,EAAE5U,kBAsBjB,CACEoyL,MAAO,EACPE,UACE,eAAC3D,GAAA,EAAD,WACG7kE,EACC,eAACy/C,GAAA,EAAD,CAAK9T,GAAG,KAAR,UACE,oBAAI/0D,UAAW,2BACf,qBAAKA,UAAU,0CAAf,SACE,cAAC4pE,GAAA,EAAD,CAAS1yK,MAAM,cAEjB,oBAAI8oG,UAAW,8BAGjB,cAAC6oE,GAAA,EAAD,CAAK9T,GAAG,KAAR,SACE,eAAC+8B,GAAA,EAAD,WACE,oBAAI9xF,UAAW,2BACf,cAAC+xF,GAAA,EAAD,CAAO/xF,UAAU,oBAAjB,SACGv5G,EAAK0E,cAAc,CAAEC,GAAI,sBAE5B,cAAC2mM,GAAA,EAAD,CAAO/xF,UAAU,oCAAjB,WACiB,OAAb2wF,QAAa,IAAbA,OAAA,EAAAA,EAAen3E,iBAAkB,KAAO,IAAM6U,GAAW,WAE7D,oBAAIruB,UAAW,gCAIrB,cAAC6oE,GAAA,EAAD,CAAK9T,GAAG,KAAR,SACE,cAAC,iBAAD,CACE6f,IAAI,KACJ50E,UAAU,aACVyb,KAAMl/F,EACNy1K,QAASpB,EAJX,SAMGr0K,EAAYvd,KAAI,SAACxH,EAAM0K,GAAP,OACf,cAAC,GAAD,CAEEkhG,QAASA,EACTopF,WAAYA,EACZjwK,YAAaA,EACbkwK,iBAAkBA,EAClBC,cAAeA,EACfC,eAAgBA,EAChBC,SAAUA,EACVC,iBAAkBA,EAClBC,kBAAmBA,EACnBC,8BAA+BA,EAC/BC,wBAAyBA,EACzBC,2BAA4BA,EAC5Bz1L,KAAMA,EACN0K,MAAOA,GAdFA,cAsBnB,CACEwvL,MAAO,EACPE,UACE,qCACE,cAAC7mD,GAAA,EAAD,CACEC,QAAS,CACP,cAACinD,GAAA,EAAD,CACE3oE,eAAgB,wBAChBD,YAAa,kBAAM2nE,IAAgC,MAErD,cAACkB,GAAA,EAAD,CACE5oE,eAAgB,wBAChBzzH,WAAgC,IAApB8nB,EAAS3X,OACrBqjH,YAAa,WACX0lE,EACED,EAAgBx1K,QAAO,SAACe,GAAD,OAAWA,EAAME,UAAYoD,EAAS,GAAGpD,kBAM1E,cAAC67I,GAAA,EAAD,CACEhyE,QAASA,GACTmyE,mBAAmB,EACnBrtK,KAAM4lM,EACNnxK,SAAUA,EACVu5I,eAAgBA,WAO5B,cAAC+2B,GAAA,EAAD,CAAKjuF,UAAW,oBAAhB,SACE,eAAC6oE,GAAA,EAAD,CAAK9T,GAAG,aAAR,UACGy5B,GACC,cAAC+B,GAAA,EAAO3mE,OAAR,CACE5pB,UAAU,mBACV9oG,MAAM,UAEN2yH,QAASolE,GAAa,SAAC90K,GACrBl9B,EAAOk9B,GACPy0K,IAAiB,MANrB,SASGr8L,GAAe,cAAC,KAAD,CAAkBnH,GAAG,kBAGxCqjM,GACC,cAAC8B,GAAA,EAAO3mE,OAAR,CACE5pB,UAAU,mBACV9oG,MAAM,QACN2yH,QAAS,kBAAM+kE,IAAiB,IAHlC,SAKE,cAAC,KAAD,CAAkBxjM,GAAG,4BAM/B,cAAC,GAAD,CACEmvB,QAASA,EACTF,MAAO,CACLE,QAAS,gBACTuC,UAAWr2B,EAAK0E,cAAc,CAAEC,GAAI,yBACpCmxB,YAAaA,EAAYvd,KAAI,SAAC8c,EAAK5H,GAAN,iBACrB,IAANA,EAAA,2BACS4H,GADT,IACcC,YAAa,KAD3B,2BAGSD,GAHT,IAIMC,YAAW,UAAE0nJ,EAAMvvJ,EAAI,UAAZ,iBAAE,EAAcC,gBAAhB,iBAAE,EAAwBg+K,oBAA1B,aAAE,EAAsCnzL,KAAI,SAACymL,GAAD,MAAa,CAClEtpK,SAAUspK,EAAO6C,IACjBlsK,UAAWqpK,EAAO8C,cAK9Bj2L,MAAO7L,EAAK0E,cAAc,CAAEC,GAAI,0BAChCyjM,kBAAmBA,EACnBC,gBAAiBA,EACjBC,mBAAoBA,EACpBzwM,WAAU,OAAEkuM,QAAF,IAAEA,OAAF,EAAEA,EAAYluM,WACxBqwM,kBAAmBoC,GACnBnC,iBAAkB,kBAAMoC,IAAgC,IACxDz+L,YAAa9L,EAAK0E,cAAc,CAAEC,GAAI,mCAM9ColM,GAAqBvqF,aAAe,CAClCqoF,OAAQ,GACRC,WAAY,EACZC,iBAAiB,EACjBC,iBAAiB,GAGJ+B,U,qDCrWT4B,GAAe,SAAClpM,GACpB,IAAMmpM,EAAYjgJ,OAAOlpD,GAEzB,OAAO8+F,MAAMqqG,GAAa,KAAOA,GAGtBC,GAAkB,SAACj/L,GAC9B,IAAQgnB,EAA+DhnB,EAA/DgnB,MAAOk4K,EAAwDl/L,EAAxDk/L,WAAY93K,EAA4CpnB,EAA5ConB,iBAC3B,GADuEpnB,EAA1Bm/L,sBACOxD,gBAA5C5rF,EAAR,EAAQA,QAAS6rF,EAAjB,EAAiBA,aAAcC,EAA/B,EAA+BA,MAAOuD,EAAtC,EAAsCA,UAChChsM,EAAOG,cACPoY,EAAM0+K,cACNl4K,EAAWipI,cAMXikD,GAJQnwF,iBAAiBrS,SAASvxF,MAIXg0L,IAAMrtD,QAAO,IACpCstD,EAAiBD,IAAMrtD,QAAO,GACpC,EAA4C7b,oBAAkB,GAA9D,mBAAOopE,EAAP,KAAuBC,EAAvB,KACA,EAA0CrpE,mBAAc,CAAEpmI,SAAU,IAApE,mBAAOstM,EAAP,KAAsBoC,EAAtB,KACMC,EAA0BL,IAAMrtD,OAAO,GAC7C,EAAsC7b,mBAAgB,IAAtD,mBAAOltG,EAAP,KAAoBq0K,EAApB,KACMqC,EAAiBN,IAAMrtD,OAAO/oH,GACpC,EAA0BktG,mBAAc,MAAxC,mBAAOg6C,EAAP,KAAcyvB,EAAd,KACMC,EAAWR,IAAMrtD,OAAOm+B,GAC9B,EAA4Dh6C,mBAAc,MAA1E,mBAAO2pE,EAAP,KAA+BC,EAA/B,KACMC,EAA4BX,IAAMrtD,OAAO8tD,GAC/C,EAAgD3pE,mBAAgB,IAAhE,mBAAOgjE,GAAP,KAAyB8G,GAAzB,KACMC,GAAsBb,IAAMrtD,OAAOmnD,IACzC,GAAkEhjE,oBAAS,GAA3E,qBAAOgqE,GAAP,MAAmCC,GAAnC,MACA,GAAkEjqE,mBAAS,SAA3E,qBAAOkqE,GAAP,MAAkCC,GAAlC,MACA,GAAwDnqE,oBAAS,GAAjE,qBAAOoqE,GAAP,MAA8BC,GAA9B,MACA,GAAmErqE,mBAAc,CAAE6kE,OAAQ,KAA3F,qBAAOyF,GAAP,MAAmCC,GAAnC,MACA,GAAwDvqE,mBAAc,CAAE6kE,OAAQ,KAAhF,qBAAO2F,GAAP,MAA6BC,GAA7B,MACMC,GAA0BxB,IAAMrtD,OAAO2uD,IAC7C,GAAwCxqE,wBAAcn+H,GAAtD,qBAAO8oM,GAAP,MAAqBC,GAArB,MACMC,GAAkB3B,IAAMrtD,OAAO8uD,IACrC,GAAsD3qE,mBAAc,IAApE,qBAAO8qE,GAAP,MAA4BC,GAA5B,MACMC,GAAyB9B,IAAMrtD,OAAOivD,IAC5C,GAA8C9qE,mBAAgB,IAA9D,qBAAOqlE,GAAP,MAAwBC,GAAxB,MACM2F,GAAqB/B,IAAMrtD,OAAOwpD,IAElCtC,GAAa0C,IACnB,GAA4C/lE,aAAY,SAACnsI,GAAD,MAAY,CAClEqe,UAAWyoK,IAAmC9mL,GAC9CqxI,YAAa7vH,iBAA6BxhB,GAC1C2rG,QAASnqF,aAAyBxhB,OAH5Bqe,GAAR,GAAQA,UAAWstF,GAAnB,GAAmBA,QAAS0lC,GAA5B,GAA4BA,YAM5B,GAA6BsmE,aAAqB,OAACP,SAAD,IAACA,QAAD,EAACA,GAAc75K,SAAzDrxB,GAAR,GAAQA,KAAM2oK,GAAd,GAAcA,WAEdrvD,qBAAU,WACHqvD,IAAYk9B,GAAmB7lM,MACnC,CAAC2oK,KAEJrvD,qBAAU,WACR8xF,GAAgBr/B,QAAUm/B,QACN9oM,GAAhB8oM,IACFp5K,OAED,CAACo5K,KAGJ5xF,qBAAU,WACRuwF,EAAiB,2BACZpC,GADW,IAEdn3E,eAAgB7wB,GACbpkG,sCAAsCosM,EAActtM,UACpD+9F,QAAQ,QAEZ,QAACuvG,QAAD,IAACA,OAAD,EAACA,EAAettM,WAEnBm/G,qBAAU,WAER,GADAoyF,KACIrC,EAAWvsL,OAAS,EAAG,CACzB8sL,GAAkB,GAClB,IAAM+B,EAAep6K,EAClBnB,QAAO,SAACw7K,GAAD,OAAiBA,EAAWhqK,cACnC9rB,KAAI,SAAC81L,GAAD,MAAiB,CACpBhqK,WAAYiqK,eACZv6K,aAAcs6K,EAAWt6K,aACzB6R,aAAcyoK,EAAWjH,eACzBzxK,UAAW04K,EAAW14K,UACtBD,SAAU24K,EAAW34K,SACrBu0I,OAAQokC,EAAWpkC,WAEvB6iC,GAAoBsB,GACpBjE,EACEn2K,EAAiBzb,KAAI,SAAC81L,GACpB,OAAOA,EAAWhqK,WACdgqK,EADG,2BAGEA,GAHF,IAIDhqK,WAAY+pK,EAAav7K,QACvB,SAACqtK,GAAD,OAASA,EAAInsK,eAAiBs6K,EAAWt6K,gBACzC,GAAGsQ,iBAIfooK,EACEX,EAAWvzL,KAAI,SAAC/U,EAAMiqB,GACpB,IAAMC,EAAWlqB,EAAKkqB,SAMtB,OALAA,EAASopK,MAAMv+K,GACfmV,EAAS2tK,GAAG,SAAS,SAAC76F,GACpBo9C,IAAE2wD,SAASC,gBAAgBhuG,GAC3B2lG,GAAS14K,MAEJ,2BACFjqB,GADL,IAEEirM,wBACM,OAAJjrM,QAAI,IAAJA,OAAA,EAAAA,EAAMkrM,wBAAyB,EAAC,EAAO,GAAG3yM,SAAX,OAAoByH,QAApB,IAAoBA,OAApB,EAAoBA,EAAMmrM,wBAC7B,IAApB,OAAJnrM,QAAI,IAAJA,OAAA,EAAAA,EAAMorM,sBACN/pM,EACNgqM,0BAAyB,OAAErrM,QAAF,IAAEA,OAAF,EAAEA,EAAMsrM,mBACjCC,0BAAyB,OAAEvrM,QAAF,IAAEA,OAAF,EAAEA,EAAMwrM,mBACjCthL,iBAIN4+K,EAAiB,2BAAKpC,GAAN,IAAqBttM,SAAUg3B,EAAMh3B,iBAErDkwM,GAAoB,IACpB3C,EAAen2K,GACfy4K,EAASX,GACTQ,EAAiB,2BAAKpC,GAAN,IAAqBttM,SAAU,KAEjD2wM,GAA6B,CAAE1F,OAAQ,KACvC+F,GAAgBh6K,KACf,CAACA,IAEJy/I,aAAqB,WACnB,IAAK44B,EAAqBz9B,QAAS,CACjC,IAAMygC,EAAqBzC,EAAeh+B,QACtC76H,EAAgB,KAGhBs7J,EAAmB1vL,QAAUuW,EAAYvW,QACzC0vL,EAAmBvyM,OAAM,SAACwyM,EAASzzL,GAcjC,OAXGqa,EACEjD,QAAO,SAACwC,GAAD,OAASA,EAAIgP,cACpB9rB,KAAI,SAAC8c,GAAD,OAASA,EAAIgP,cACjBtoC,SAASmzM,EAAQ7qK,cAEpBsP,EAAgB,CACdu7J,EAAQn7K,aACE,IAAVtY,EAAc,EAAIA,IAAUqa,EAAYvW,OAAS,EAAI,EAAI,EACzD9D,IAIFyzL,EAAQx5K,WAAaI,EAAYra,GAAOia,UACxCw5K,EAAQv5K,YAAcG,EAAYra,GAAOka,eAM1Cy2K,GAAgB+B,KAErBgB,KAEIx7J,GAAeuyJ,GAAc,WAAd,cAAkBvyJ,IAEhCy4J,EACAC,GAAkB,GADF+C,SAIxB,CAACt5K,EAAam2K,EAAqBz9B,UAEtCzyD,qBAAU,WACR2wF,EAASl+B,QAAUwO,EAEdowB,IAAuBiC,KAC5BlD,EAAe39B,SAAU,IACxB,CAACwO,IAEJjhE,qBAAU,WACR2xF,GAAwBl/B,QAAUg/B,KACjC,CAACA,KAEJzxF,qBAAU,WACRiyF,GAAuBx/B,QAAUs/B,KAChC,CAACA,KAEJz6B,aAAqB,WACnB05B,GAAoBv+B,QAAUw3B,KAC7B,CAACA,KAEJjqF,qBAAU,WACR8wF,EAA0Br+B,QAAUm+B,IACnC,CAACA,IAEJ5wF,qBAAU,WACRkyF,GAAmBz/B,QAAU65B,KAC5B,CAACA,KAkBJtsF,qBAAU,WACRxjG,EAAI8iL,GAAG,aAAa,SAAC76F,GACnB,GAAe,UAAXA,EAAE6qF,OAAqBwhB,EAA0Br+B,QAAS,CAC5D2+B,GAA6B,SAC7B,IAAQtvD,EAAWr9C,EAAXq9C,OAER,EAAqBA,EAAOohD,YAApB4C,EAAR,EAAQA,IAAKC,EAAb,EAAaA,IACTD,GAAOC,GACTwN,aAAgB,CAAEzN,MAAKC,QACpBt1L,MAAK,SAACgiL,GAAa,IAAD,EACX+gB,EAAa/gB,EAAQ37J,QAAO,SAAC+4B,GAAD,OAAOA,EAAEl1D,MAAMqF,SAAS,YAAU,GAC9DwsC,EAAW,CACflE,WAAYiqK,eACZ1oK,aAAc2pK,EACVA,EAAWC,kBADS,UAEpBhhB,EAAQ,UAFY,aAEpB,EAAYghB,kBAChB75K,UAAWmsK,EACXpsK,SAAUmsK,EACV53B,OAbO,IAcPwlC,aAAcvtG,GAAQwtG,uCAAuC,MAE/DC,GAA+B9xD,EAAQt1G,MAExCqnK,OAAM,WACL,IAAMrnK,EAAW,CACflE,WAAYiqK,eACZ1oK,aAAc5lC,EAAK0E,cAAc,CAAEC,GAAI,yBACvCgxB,UAAWmsK,EACXpsK,SAAUmsK,EACV53B,OAxBO,IAyBPwlC,aAAcvtG,GAAQwtG,uCAAuC,MAE/DC,GAA+B9xD,EAAQt1G,YAKhD,IAEH,IAAM4lK,GAAqB,WACzB3B,EAAeh+B,QACZ37I,QAAO,SAACw7K,GAAD,OAAgBA,EAAWxwD,UAClCtlI,KAAI,SAAC81L,GACAA,EAAWxwD,QAAQtlI,EAAIs3L,YAAYxB,EAAWxwD,QAC9CwwD,EAAWyB,WAAWv3L,EAAIs3L,YAAYxB,EAAWyB,eAEhD,OAAL9yB,QAAK,IAALA,OAAA,EAAAA,EAAOz9J,QAAS,GAClBy9J,EAAMzkK,KAAI,SAAC/U,GACLA,EAAKkqB,UAAUnV,EAAIs3L,YAAYrsM,EAAKkqB,cAqBxCyhL,GAAqB,WACzB3C,EAAeh+B,QAAU14I,EAAYvd,KAAI,SAAC81L,EAAY5gL,GACpD,GAA2B,MAAvB4gL,EAAW34K,UAA4C,MAAxB24K,EAAW14K,UAAmB,CAC/D,IAAMkoH,EAASJ,aACP,IAANhwH,EAAU,EAAIA,IAAMqI,EAAYvW,OAAS,EAAI,EAAI,EACjDkO,EACsB,IAAtB4gL,EAAW3wD,YAAe74I,EAAYwpM,EAAW3wD,OACjDE,IAAED,OAAO0wD,EAAW34K,SAAU24K,EAAW14K,YAE3CkoH,EAAOi5C,MAAMv+K,GACbslI,EAAOw9C,GAAG,cAAc,SAAC76F,GACvB,MAAqBA,EAAE8G,OAAO23F,YAAtB4C,EAAR,EAAQA,IAAKC,EAAb,EAAaA,IACbqK,EAAe39B,SAAU,EACzB27B,EACEqC,EAAeh+B,QAAQj2J,KAAI,SAACw3L,GAAD,OACzBA,EAAMh8K,eAAiBs6K,EAAWt6K,aAAlC,2BAESg8K,GAFT,IAGMp6K,UAAWmsK,EACXpsK,SAAUmsK,IAEZkO,SAIVlyD,EAAOw9C,GAAG,SAAS,SAAC76F,GAClBmzE,YAAW,WACJs4B,EAAqBz9B,SACxB03B,GACEmI,EAAWt6K,aACL,IAANtG,EAAU,EAAIA,IAAMqI,EAAYvW,OAAS,EAAI,EAAI,EACjDkO,KAEH,QAELowH,EAAO06C,GAAGE,OAAO,IAEjB,IAAMqX,EAAYlyD,IAAEkyD,UAClB9lC,YAAwBqkC,EAAW34K,SAAU24K,EAAW14K,UAAW04K,EAAWpkC,QAC9E,CAAEx5J,MArTMssG,YAyTV,OAFA+yF,EAAUhZ,MAAMv+K,GAET,2BACF81L,GADL,IAGExwD,SACAiyD,cAEG,OAAOzB,KAIhBgB,KAEI7C,EAAeh+B,QAAQ37I,QAAO,SAACw7K,GAAD,OAAgBA,EAAWxwD,UAAQt+H,OAAS,GAC5E4qL,EAAeqC,EAAeh+B,UAG5B4gC,GAAmB,SAAnBA,IACJ,IAAMY,EAAwBxD,EAAeh+B,QAAQ37I,QAAO,SAACw7K,GAAD,OAAgBA,EAAWxwD,UAEvF,GAAImyD,EAAsBzwL,OAAS,EAAG,CAEpC,IAAMo9F,EAAUihC,IAAEwkD,QAAQzlF,QAAQ,CAChCinF,UAAWoM,EAAsBz3L,KAAI,SAAC81L,GAAD,OACnCzwD,IAAED,OAAO0wD,EAAW34K,SAAU24K,EAAW14K,cAE3Cs6K,OACE1D,EAAwB/9B,SAAW,EAC/B5wB,IAAEwkD,QAAQM,SACV,IAAI9kD,IAAEwkD,QAAQ8N,OAAO,CAAEC,WAAY,4CAG3CxzF,EAAQ0+E,GAAG,gBAAgB,WACzB4Q,EAAqBz9B,SAAU,KAGjC7xD,EAAQ0+E,GAAG,gBAAgB,SAAC/iM,IACE,IAAxBA,EAAMA,MAAMkO,SACd+lM,EAAwB/9B,QAAU+9B,EAAwB/9B,QAAU,EACpE4gC,QAIJzyF,EAAQ0+E,GAAG,eAAe,SAACuI,GAEzB,GADAqI,EAAqBz9B,SAAU,EAC/B,OAAIo1B,QAAJ,IAAIA,OAAJ,EAAIA,EAAW7uL,OAAO,GAAG6iL,YAAa,CACpC,IAAMA,EAAW,OAAGgM,QAAH,IAAGA,OAAH,EAAGA,EAAW7uL,OAAO,GAAG6iL,YACnCoN,EAAe,OAAGpB,QAAH,IAAGA,OAAH,EAAGA,EAAW7uL,OAAO,GAAGiwL,gBACvChoB,EAAQgoB,EACXzsL,KAAI,SAACkD,EAAOgS,GAAR,OACHA,IAAMu3K,EAAgBzlL,OAAS,EAC3B6wL,KAAS,CAEL,CACE5D,EAAeh+B,QAAQ37I,QACrB,SAACwC,GAAD,OAAyB,MAAhBA,EAAIK,UAAqC,MAAjBL,EAAIM,aACrClI,GAAGiI,SACL82K,EAAeh+B,QAAQ37I,QACrB,SAACwC,GAAD,OAAyB,MAAhBA,EAAIK,UAAqC,MAAjBL,EAAIM,aACrClI,GAAGkI,YARH,mBAUDiiK,EACA59F,MAAMv+E,EAAOupL,EAAgBv3K,EAAI,GAAK,GACtClV,KAAI,SAAColI,GAAD,MAAY,CAACA,EAAOkkD,IAAKlkD,EAAOmkD,SAZnC,CAaJ,CACE0K,EAAeh+B,QAAQ37I,QACrB,SAACwC,GAAD,OAAyB,MAAhBA,EAAIK,UAAqC,MAAjBL,EAAIM,aACrClI,EAAI,GAAGiI,SACT82K,EAAeh+B,QAAQ37I,QACrB,SAACwC,GAAD,OAAyB,MAAhBA,EAAIK,UAAqC,MAAjBL,EAAIM,aACrClI,EAAI,GAAGkI,aAGb,MACApd,KAAI,SAAC83L,GAAD,OAAWzyD,IAAED,OAAO0yD,EAAM,GAAIA,EAAM,YAC1CxrM,KAELguB,QAAO,SAACrvB,GAAD,OAAUA,KAGhB5G,EAAW,EACf6vM,EACEzvB,EAAMzkK,KAAI,SAAC/U,EAAMiqB,GACf,IAAMC,EAAWkwH,IAAElwH,SAASlqB,EAAM,CAAEiN,MAAO,SAC3Cid,EAASopK,MAAMv+K,GACfmV,EAAS2tK,GAAG,SAAS,SAAC76F,GACpBo9C,IAAE2wD,SAASC,gBAAgBhuG,GAC3B2lG,GAAS14K,MAEX,IAAM6iL,EAAkB5iL,EACrBg+K,aACAnzL,KAAI,SAAC83L,EAAO55B,GAAR,OACG,IAANA,EAAU,EAAIl+J,EAAI3b,SAAS8wB,EAASg+K,aAAaj1B,EAAI,GAAI45B,MAE1Dl2J,QAAO,SAACC,EAAKx9C,GAAN,OAAmBw9C,EAAMx9C,IAAU,GAE7C,OADAA,GAAsB0zM,EACf,CACL5iL,WACA4iL,uBAINhE,EAAiB,2BAAKpC,GAAN,IAAqBttM,cAEvC2vM,EAAwB/9B,QAAU,KAIpC7xD,EAAQ/oF,aAER64K,EAAS,IACTH,EAAiB,2BAAKpC,GAAN,IAAqBttM,SAAU,MAI7C2zM,GAAkB,WAAO,IAAD,EAC5B,IAAI,UAAA7D,EAASl+B,eAAT,eAAkBjvJ,QAAS,EAAG,CAChC,IAAI3iB,EAAW,EACf6vM,EACEC,EAASl+B,QAAQj2J,KAAI,SAAC/U,GACpB,IAAM8sM,EAAkB9sM,EAAKkqB,SAC1Bg+K,aACAnzL,KAAI,SAAC83L,EAAO55B,GAAR,OACG,IAANA,EAAU,EAAIl+J,EAAI3b,SAAS4G,EAAKkqB,SAASg+K,aAAaj1B,EAAI,GAAI45B,MAE/Dl2J,QAAO,SAACC,EAAKx9C,GAAN,OAAmBw9C,EAAMx9C,IAAU,GAE7C,OADAA,GAAsB0zM,EACf,2BACF9sM,GADL,IAEE8sM,wBAINhE,EAAiB,2BAAKpC,GAAN,IAAqBttM,gBAInCyyM,GAAc,WAClB,GAAIlD,EAAe39B,SAAWg+B,EAAeh+B,QAAQ37I,QAAO,SAACwC,GAAD,OAASA,EAAIwoH,UAAQt+H,OAAS,EAAG,CAAC,IAAD,EACvF8+H,EAAkB,IAClB,UAAAquD,EAASl+B,eAAT,eAAkBjvJ,QAAS,GAC7BmtL,EAASl+B,QAAQj2J,KAAI,SAAC/U,GAAD,OACnBA,EAAKkqB,SAASg+K,aAAanzL,KAAI,SAAColI,GAAD,OAAYU,EAAgBtrI,KAAK,CAAC4qI,EAAOkkD,IAAKlkD,EAAOmkD,YAGxF,IAAMx3B,EAAM,sBACPkiC,EAAeh+B,QACf37I,QAAO,SAACwC,GAAD,OAASA,EAAIwoH,UACpBtlI,KAAI,SAAC8c,GAAD,MAAS,CAACA,EAAIK,SAAUL,EAAIM,eAChC0oH,GAGL9lI,EAAIs/K,YAAYvtB,EAAQ,CACtBixB,mBAAoB,CAAC,IAAK,GAC1BC,eAAgB,CAAC,EAAG,IACpBC,QAASljL,EAAIi4L,cAAclmC,OAAQzlK,EAAW,CAAC,IAAK,OAAS0T,EAAImjL,cAKjEnnK,GAAY,WAAO,IAAD,kCACtB04K,IAA4B,GAC5BI,IAAuB,GACvBE,GAA6B,CAC3B1hM,OACE,UAAAgiM,GAAgBr/B,eAAhB,eAAyB16I,WAAzB,UAAoC+5K,GAAgBr/B,eAApD,aAAoC,EAAyBn4I,WAA7D,UACIw3K,GAAgBr/B,eADpB,aACI,EAAyBn4I,UACzBr2B,EAAK0E,cAAc,CAAEC,GAAI,eAC/BkjM,OAAQ,CACN,CACEpxM,KAAM,OACNmO,KAAM,YACN+6F,UAAU,EACV7yF,cAAc,UAAA+gM,GAAgBr/B,eAAhB,eAAyBn4I,iBAAaxxB,EACpDi0G,MAAO94G,EAAK0E,cAAc,CAAEC,GAAI,iBAElC,CACElO,KAAM,oBACNmO,KAAM,aACNkI,cAAc,UAAA+gM,GAAgBr/B,eAAhB,eAAyBrrH,kBAAct+C,EACrD64G,aAAa,EACbiqC,iBAAkB,IAEpB,CACElxJ,KAAM,WACNmO,KAAM,iBACNkI,cAAc,UAAA+gM,GAAgBr/B,eAAhB,eAAyBiiC,4BAAwB5rM,EAC/Di0G,MAAO94G,EAAK0E,cAAc,CAAEC,GAAI,2BAElC,CACElO,KAAM,SACNmO,KAAM,kBACN+6F,UAAU,EACV7yF,cAAc,UAAA+gM,GAAgBr/B,eAAhB,eAAyBrxB,kBAAmB,IAC1D/hC,QAAS+hC,KAAgB5kI,KAAI,SAAColG,GAAD,mBAAC,eACzBA,GADwB,IAE3B7E,MAAO6E,EAAO7E,MAAQ94G,EAAK0E,cAAc,CAAEC,GAAI,wBAEjDm0G,MAAO94G,EAAK0E,cAAc,CAAEC,GAAI,4BAElC,CACElO,KAAM,SACNmO,KAAM,mBACNkI,cAAc,UAAA+gM,GAAgBr/B,eAAhB,eAAyB3Z,wBAAoBhwJ,EAC3D8hH,IAAK,EACLC,IAAK1kB,GAAQgwB,8CAA8C,KAC3DkV,OAAQ,QACRtuB,MAAO94G,EAAK0E,cAAc,CAAEC,GAAI,uBAElC,CACElO,KAAM,OACNmO,KAAM,eACN+6F,UAAU,EACV7yF,cAAc,UAAA+gM,GAAgBr/B,eAAhB,eAAyBkiC,oBAAgB7rM,EACvDi0G,MAAO94G,EAAK0E,cAAc,CAAEC,GAAI,yBAElC,CACElO,KAAM,OACNmO,KAAM,cACNkI,cAAc,UAAA+gM,GAAgBr/B,eAAhB,eAAyB14D,mBAAejxG,EACtDi0G,MAAO94G,EAAK0E,cAAc,CAAEC,GAAI,wBAElC,CACElO,KAAM,aACNmO,KAAM,aACNw2G,QAAS,CACP0jE,QAAS,KACT1pD,aAAa,EACbkqD,qBAAqB,EACrBE,iBAAiB,EACjBC,oBAAoB,EACpBG,qBAAqB,EACrBE,iBAAiB,EACjBC,oBAAoB,EACpBb,iBAAiB,EACjBC,oBAAoB,GAEtBryK,aAAc,CACZ7R,gBAAgB,UAAA4yM,GAAgBr/B,eAAhB,eAAyBvzK,sBAAkB4J,EAC3D1J,YAAY,UAAA0yM,GAAgBr/B,eAAhB,eAAyBrzK,kBAAc0J,EACnDxJ,eAAe,UAAAwyM,GAAgBr/B,eAAhB,eAAyBnzK,qBAAiBwJ,IAG7D,CACEpO,KAAM,mBACNk6M,iBAAiB,UAAA9C,GAAgBr/B,eAAhB,eAAyBoiC,gCAA4B/rM,EACtED,KAAM,2BACNk0G,MAAO94G,EAAK0E,cAAc,CAAEC,GAAI,qCAElC,CACElO,KAAM,SACNmO,KAAM,yBACNkI,cAAc,UAAA+gM,GAAgBr/B,eAAhB,eAAyBqiC,8BAA0BhsM,EACjEu2G,QAAQ,CACN,CACEluG,MAAO,IACP4rG,MAAO94G,EAAK0E,cAAc,CAAEC,GAAI,oBAChCu0G,WAAYl5G,EAAK0E,cAAc,CAAEC,GAAI,sBAJlC,mBAMFu4I,KAAwB3kI,KAAI,SAAColG,GAAD,mBAAC,eAC3BA,GAD0B,IAE7B7E,MAAO94G,EAAK0E,cAAc,CAAEC,GAAIg5G,EAAO7E,QACvCI,WAAYl5G,EAAK0E,cAAc,CAAEC,GAAIg5G,EAAO7E,eAGhDA,MAAO94G,EAAK0E,cAAc,CAAEC,GAAI,kCAChC+4G,aAAa,GAEf,CACEjnH,KAAM,mBACNk6M,iBAAiB,UAAA9C,GAAgBr/B,eAAhB,eAAyBv/B,0BAAsBpqI,EAChED,KAAM,qBACNksM,cAAc,EACdh4F,MAAO94G,EAAK0E,cAAc,CAAEC,GAAI,+BAElC,CACElO,KAAM,cACNmO,KAAM,qBACNkI,cAAc,UAAA+gM,GAAgBr/B,eAAhB,eAAyBuiC,0BAAsBlsM,EAC7Du2G,QAASgiC,KAAa7kI,KAAI,SAAColG,GAAD,mBAAC,eACtBA,GADqB,IAExB7E,MAAO94G,EAAK0E,cAAc,CAAEC,GAAIg5G,EAAO7E,QACvCI,WAAYl5G,EAAK0E,cAAc,CAAEC,GAAIg5G,EAAO7E,aAE9CA,MAAO94G,EAAK0E,cAAc,CAAEC,GAAI,gCAGpCnO,OAAQ,SAACk9B,GAAY,IAAD,EACZl9B,EAASq3M,GAAgBr/B,QAAQ16I,QAAU,oBAAsB,mBACnEk9K,EAAY,GACZv1L,GAAS,EACTw1L,EAAmB,KACnBr0M,EAAW,EACfmiB,EACEmyL,GAAa16M,GAAQ,CACnBo9B,MAAM,qCACJE,QAAS+5K,GAAgBr/B,QAAQ16I,SAAW+5K,GAAgBr/B,QAAQh4I,YACjE9C,GACAA,EAAO77B,YAHP,IAIHu6H,WAAYlwB,GAAQivG,8CAClBz9K,EAAOmhI,kBAETg8C,wBAA8B,OAANn9K,QAAM,IAANA,OAAA,EAAAA,EAAQm9K,yBAA0B,IAC1DJ,sBAA4B,OAAN/8K,QAAM,IAANA,GAAA,UAAAA,EAAQ09K,sBAAR,eAAwB1uG,eAAgB,EAC9Dl/F,KAAMkpM,EAASl+B,QACZj2J,KAAI,SAAC/U,EAAMiqB,GACV,IAAI6iL,EAAkB,EACtB,OAAO9sM,EAAKkqB,SACTg+K,aACAnzL,KAAI,SAAC83L,EAAO55B,GACX,IAAM46B,EAAgBJ,EAClB14L,EAAI3b,SAASq0M,EAAkBZ,GAC/B,EAOJ,OANAY,EAAmBZ,EACnBC,EAAwB,IAAN75B,EAAU,EAAI65B,EAAkBe,EAClDz0M,GAAsBy0M,EACtB51L,GAAgB,EACZjY,EAAKkqB,SAASg+K,aAAansL,OAAS,IAAMk3J,GAC5Cu6B,EAAUj+L,KAAKu9L,GAEf70L,EAAM5C,WACN,KACC4U,EAAI,GAAG5U,WACR,IACAw3L,EAAMxO,IAAIhpL,WACV,IACAw3L,EAAMvO,IAAIjpL,WACV,IACAjc,KAGH45C,KAAK,QAETA,KAAK,KACR55C,SAAUo0M,EAAU72J,QAAO,SAACC,EAAKx9C,GAAN,OAAmBw9C,EAAMx9C,IAAU,GAC9DyrM,gBAAiB4F,GAAmBz/B,QAAQj2J,KAAI,SAACsxL,GAAD,OAAQA,EAAG/1K,WAAS0iB,KAAK,OAE3E1gB,YAAa02K,EAAeh+B,QAAQj2J,KAAI,SAAC81L,EAAY5gL,GAAb,wBAAoB,CAC1DsG,aAActG,EACdqG,QAAS+5K,GAAgBr/B,QAAQ16I,SAAW+5K,GAAgBr/B,QAAQh4I,WACpE6N,WAAYsnB,OAAO2lJ,UAAUjD,EAAWhqK,YAAcgqK,EAAWhqK,WAAa,KAC9E+iK,eAAgBiH,EAAWjH,eAC3B1xK,SAAU24K,EAAW34K,SACrBC,UAAW04K,EAAW14K,UACtBs0I,OAAQokC,EAAWpkC,OACnBjqB,YAAavyH,EACb7wB,SACQ,IAAN6wB,EAAU,EAAIujL,EAAUh3G,MAAM,EAAGvsE,GAAG0sB,QAAO,SAACC,EAAKx9C,GAAN,OAAmBw9C,EAAMx9C,IAAU,GAChF8gJ,OAAQ2wD,EAAW3wD,OACnB6zD,SAAUlD,EAAWkD,SACrBC,YAAW,UAAEnD,EAAWmD,mBAAb,QAA4B,KACvCC,YAAW,UAAEpD,EAAWoD,mBAAb,QAA4B,KACvCnB,gBAAuB,IAAN7iL,EAAU,EAAIk+K,GAAaqF,EAAUvjL,EAAI,IAC1DikL,kBACQ,IAANjkL,EAAU,KAAOk+K,GAAY,UAACe,EAASl+B,QAAQ/gJ,EAAI,UAAtB,aAAC,EAAyBikL,mBACzDhD,sBACQ,IAANjhL,EAAU,KAAV,UAAiBi/K,EAASl+B,QAAQ/gJ,EAAI,UAAtC,aAAiB,EAAyBihL,sBAC5CD,uBACQ,IAANhhL,EAAU,KAAOk+K,GAAY,UAACe,EAASl+B,QAAQ/gJ,EAAI,UAAtB,aAAC,EAAyBghL,wBACzDI,0BACQ,IAANphL,EAAU,KAAOk+K,GAAY,UAACe,EAASl+B,QAAQ/gJ,EAAI,UAAtB,aAAC,EAAyBohL,2BACzDE,0BACQ,IAANthL,EAAU,KAAOk+K,GAAY,UAACe,EAASl+B,QAAQ/gJ,EAAI,UAAtB,aAAC,EAAyBshL,2BACzD9/D,mBAAoBo/D,EAAWp/D,6BAMzCg+D,IAA4B,IAWxB/G,GAAiB,SAACnyK,EAAct9B,EAAMglB,GAAW,IAAD,EAC9C4yL,EAAa7B,EAAeh+B,QAAQ37I,QACxC,SAACw7K,GAAD,OAAgBA,EAAWt6K,eAAiBA,KAC5C,GACF,GAA6B,MAAvBs6K,EAAW34K,UAA4C,MAAxB24K,EAAW14K,YAAqB04K,EAAWxwD,OAC9E,OAAO,KACTtlI,EAAIs/K,YAAY,CAAC,CAACwW,EAAW34K,SAAU24K,EAAW14K,YAAa,CAC7D4lK,mBAAoB,CAAC,IAAK,GAC1BC,eAAgB,CAAC,EAAG,IACpBpG,QAAS,GACTqG,QAAS,KAAOljL,EAAImjL,YAEtB,IAAMiW,EACK,IAATl7M,EACI,CACE,CACEA,KAAM,SACNmO,KAAM,SACNkI,aAAY,UAAEuhM,EAAW3wD,cAAb,QAAuB,EACnCtiC,QAASkiC,KAAuB/kI,KAAI,SAAC62K,GAAD,mBAAC,eAChCA,GAD+B,IAElCt2E,MAAO94G,EAAK0E,cAAc,CAAEC,GAAIyqL,EAAGt2E,aAErCA,MAAO94G,EAAK0E,cAAc,CAAEC,GAAI,0BAChC62G,2BAA4B,SAACtuG,IACtBA,GAASmhM,EAAW3wD,OACvB2wD,EAAWxwD,OAAO+zD,QAAQ9zD,aAAQrnJ,EAAMglB,EAAO4yL,EAAW3wD,SACvD2wD,EAAWxwD,OAAO+zD,QAAQ9zD,aAAQrnJ,EAAMglB,EAAOvO,MAGxD,CACEzW,KAAM,mBACNmO,KAAM,qBACNkI,aAAcuhM,EAAWp/D,yBAAsBpqI,EAC/Ci0G,MAAO94G,EAAK0E,cAAc,CAAEC,GAAI,mBAElC,CACElO,KAAM,SACNmO,KAAM,WACNkI,aAAcuhM,EAAWkD,WAAY,EACrCz4F,MAAO94G,EAAK0E,cAAc,CAAEC,GAAI,oBAChC62G,2BAA4B,SAACtuG,GAAW,IAAD,GACrC,OAAIwgM,SAAJ,IAAIA,IAAJ,UAAIA,GAAyBl/B,eAA7B,aAAI,EAAkCq5B,SACpC4F,GAAwB,2BACnBC,GAAwBl/B,SADN,IAErBq5B,OAAQ36L,EAAK,sBAEJwgM,GAAwBl/B,QAAQq5B,QAF5B,CAGP,CACEpxM,KAAM,WACNmO,KAAM,cACNkI,aAAcuhM,EAAWmD,kBAAe3sM,EACxCi0G,MAAO94G,EAAK0E,cAAc,CAAEC,GAAI,wBAElC,CACElO,KAAM,WACNmO,KAAM,cACNkI,aAAcuhM,EAAWoD,kBAAe5sM,EACxCi0G,MAAO94G,EAAK0E,cAAc,CAAEC,GAAI,0BAGpC+oM,GAAwBl/B,QAAQq5B,OAAO7tG,MAAM,EAAG,SAK9D,GAENqzG,IAAuB,GACvBI,GAAwB,CACtB5hM,MACW,IAATpV,EACIuJ,EAAK0E,cAAc,CAAEC,GAAI,sBAChB,IAATlO,EACAuJ,EAAK0E,cAAc,CAAEC,GAAI,0BACzB3E,EAAK0E,cAAc,CAAEC,GAAI,2BAC/BkjM,OAAO,CACL,CACEpxM,KAAM,OACNmO,KAAM,iBACN+6F,UAAU,EACV7yF,aAAcuhM,EAAWjH,qBAAkBviM,EAC3Ci0G,MACW,IAATriH,EACIuJ,EAAK0E,cAAc,CAAEC,GAAI,sBAChB,IAATlO,EACAuJ,EAAK0E,cAAc,CAAEC,GAAI,0BACzB3E,EAAK0E,cAAc,CAAEC,GAAI,4BAEjC,CACElO,KAAM,SACNmO,KAAM,eACNkI,aAAcuhM,EAAWoB,mBAAgB5qM,EACzC8hH,IAAKzkB,GAAQwtG,uCAAuC,IACpD9oF,IAAK1kB,GAAQwtG,uCAAuC,KACpDtoE,OAAQ,YACRtuB,MAAO94G,EAAK0E,cAAc,CAAEC,GAAI,kBAChC62G,2BAA4B,SAACtuG,GAAD,OAC1BmhM,EAAWyB,UAAU+B,UACnB7nC,YACEqkC,EAAW34K,SACX24K,EAAW14K,UACXusE,GAAQ4vG,uCAAuC5kM,QA1BnD,OA8BDykM,GAELn7M,OAAQ,SAACk9B,GACP,IAAMu2I,EAAS/nE,GAAQ4vG,uCAAuCp+K,EAAO+7K,cACrEpB,EAAWxwD,OAAO+zD,QAAQ9zD,aAAQrnJ,EAAMglB,EAAOiY,EAAOgqH,SACtD2wD,EAAWyB,UAAU+B,UACnB7nC,YAAwBqkC,EAAW34K,SAAU24K,EAAW14K,UAAWs0I,IAErEuiC,EAAeh+B,QAAUg+B,EAAeh+B,QAAQj2J,KAAI,SAAC8c,GAAD,eAClDA,EAAItB,eAAiBs6K,EAAWt6K,aAAhC,uCAESsB,GACA3B,GAHT,IAIMu2I,SACAunC,YAAa99K,EAAO69K,SAAP,UAAkB79K,EAAO89K,mBAAzB,aAAkB,EAAoB9uG,kBAAe79F,EAClE4sM,YAAa/9K,EAAO69K,SAAP,UAAkB79K,EAAO+9K,mBAAzB,aAAkB,EAAoB/uG,kBAAe79F,IAEpEwwB,KAEN80K,EAAeqC,EAAeh+B,UAEhCy7B,qBAAsB,WACpBoF,KACAhB,EAAWxwD,OAAO+zD,QAAQ9zD,aAAQrnJ,EAAMglB,EAAO4yL,EAAW3wD,SAC1D2wD,EAAWyB,UAAU+B,UACnB7nC,YAAwBqkC,EAAW34K,SAAU24K,EAAW14K,UAAW04K,EAAWpkC,SAEhFojC,IAAuB,MAG3BA,IAAuB,IAiBnBlH,GAAW,SAAC1qL,GAChB,GAAIixL,EAASl+B,QAAS,CACpB,IAAMhrK,EAAOkpM,EAASl+B,QAAQ/yJ,GAC9B,GAAIjY,EAAM,CAAC,IAAD,OAEqCqB,IAAzC,UAAAmpM,GAAuBx/B,eAAvB,eAAgC/yJ,SAClCixL,EAASl+B,QAAQw/B,GAAuBx/B,QAAQ/yJ,OAAOiS,SAASqkL,WAC9D/D,GAAuBx/B,QAAQwjC,SAEjCtF,EAASl+B,QAAQw/B,GAAuBx/B,QAAQ/yJ,OAAOiS,SAAS6qK,GAAG0Z,UACnEvF,EAASl+B,QAAQw/B,GAAuBx/B,QAAQ/yJ,OAAOiS,SAASwkL,SAAS,CACvEzhM,MAAO,UAGXs9L,GAAuB,CACrBiE,QAAStF,EAASl+B,QAAQ/yJ,GAAOiS,SAASg+K,aAC1CjwL,MAAOA,IAET,IAAMhlB,EAAOglB,IAAUixL,EAASl+B,QAAQjvJ,OAAS,EAAI,EAAI,EACzD/b,EAAKkqB,SAAS6qK,GAAGE,OAAO,CAAEE,WAAW,IACrCn1L,EAAKkqB,SAASwkL,SAAS,CAAEzhM,MAAO,QAChC8H,EAAIs/K,YAAYr0L,EAAKkqB,SAASsqK,YAAa,CACzCuD,mBAAoB,CAAC,IAAK,GAC1BC,eAAgB,CAAC,EAAG,IACpBC,QACEljL,EAAIi4L,cAAchtM,EAAKkqB,SAASsqK,iBAAanzL,EAAW,CAAC,IAAK,OAAS0T,EAAImjL,YAE/E2R,IAAuB,GACvB8E,GAAkB,2BAEX3uM,GAFU,IAGb4uM,wBAAyBlwG,GACtBgwB,8CAA8C1uH,EAAKkuM,mBACnD/2G,QAAQ,GACX03G,sBAAuBnwG,GACpBpkG,sCAAsC0F,EAAK8sM,iBAC3C31G,QAAQ,KAEbl/E,EACAhlB,GAEF42M,IAAuB,MAKvB8E,GAAoB,SAApBA,EAAqB3uM,EAAMiY,EAAOhlB,GAAU,IAAD,IAC/Cg3M,GAAwB,CACtB5hM,MAAM,GAAD,OAAK7L,EAAK0E,cAAc,CAAEC,GAAI,uBAA9B,uBACH6nM,EAAeh+B,QAAQ/yJ,UADpB,aACH,EAA+B2rL,eAD5B,wBAECoF,EAAeh+B,QAAQ/yJ,EAAQ,UAFhC,aAEC,EAAmC2rL,eAFpC,KAGLS,OAAQ,CACN,CACEpxM,KAAM,YACN00M,UACE,eAACE,GAAA,EAAD,WACE,oBAAI9xF,UAAW,2BACf,cAAC+xF,GAAA,EAAD,CAAO/xF,UAAU,oBAAjB,SACGv5G,EAAK0E,cAAc,CAAEC,GAAI,sBAE5B,cAAC2mM,GAAA,EAAD,CAAO/xF,UAAU,0BAAjB,WACQ,OAAJ/1G,QAAI,IAAJA,OAAA,EAAAA,EAAM6uM,wBAAyB,KAAO,IAAMzqE,GAAW,WAE3D,oBAAIruB,UAAW,+BAIrB,CACE9iH,KAAM,SACNmO,KAAM,0BACNkI,cAAkB,OAAJtJ,QAAI,IAAJA,OAAA,EAAAA,EAAM4uM,+BAA2BvtM,EAC/C22G,2BAA4B,SAACtuG,GAC3BilM,EAAkB,2BAAK3uM,GAAN,IAAY4uM,wBAAyBllM,IAASuO,EAAOhlB,IAExEkwH,IAAK,EACLC,IAAK1kB,GAAQgwB,8CAA8C,KAC3DkV,OAAQ,QACRtuB,MAAO94G,EAAK0E,cAAc,CAAEC,GAAI,uBAElC,CACElO,KAAM,WACNmO,KAAM,qBACN42G,2BAA4B,SAACtuG,GAC3BilM,EAAkB,2BAAK3uM,GAAN,IAAYsrM,mBAAoB5hM,IAASuO,EAAOhlB,IAEnEqW,cAAkB,OAAJtJ,QAAI,IAAJA,OAAA,EAAAA,EAAMsrM,0BAAsBjqM,EAC1Ci0G,MAAO94G,EAAK0E,cAAc,CAAEC,GAAI,+BAElC,CACElO,KAAM,WACNmO,KAAM,qBACN42G,2BAA4B,SAACtuG,GAC3BilM,EAAkB,2BAAK3uM,GAAN,IAAYwrM,mBAAoB9hM,IAASuO,EAAOhlB,IAEnEqW,cAAkB,OAAJtJ,QAAI,IAAJA,OAAA,EAAAA,EAAMwrM,0BAAsBnqM,EAC1Ci0G,MAAO94G,EAAK0E,cAAc,CAAEC,GAAI,+BAElC,CACElO,KAAM,SACNmO,KAAM,wBACNkI,kBACiCjI,IAA3B,OAAJrB,QAAI,IAAJA,OAAA,EAAAA,EAAMkrM,yBAAN,OAA2ClrM,QAA3C,IAA2CA,OAA3C,EAA2CA,EAAMkrM,uBACnD51F,MAAO94G,EAAK0E,cAAc,CAAEC,GAAI,iCAChC62G,2BAA4B,SAACtuG,GAC3BilM,EAAkB,2BAEX3uM,GAFU,IAGbkrM,sBAAuBxhM,EACvByhM,4BAAwB9pM,EACxB+pM,qBAAiB/pM,IAEnB4W,EACAhlB,MAIF,OAAJ+M,QAAI,IAAJA,OAAA,EAAAA,EAAMkrM,uBACF,CACEj4M,KAAM,SACNmO,KAAM,yBACNkI,kBACkCjI,IAA5B,OAAJrB,QAAI,IAAJA,OAAA,EAAAA,EAAMmrM,0BAAN,OAA4CnrM,QAA5C,IAA4CA,OAA5C,EAA4CA,EAAMmrM,wBACpD71F,MAAO94G,EAAK0E,cAAc,CAAEC,GAAI,kCAChC62G,2BAA4B,SAACtuG,GAC3BilM,EAAkB,2BACX3uM,GADU,IACJmrM,uBAAwBzhM,EAAO0hM,qBAAiB/pM,IAC3D4W,EACAhlB,UAINoO,GACA,OAAJrB,QAAI,IAAJA,OAAA,EAAAA,EAAMkrM,wBAAyB,EAAC,EAAO,GAAG3yM,SAAX,OAAoByH,QAApB,IAAoBA,OAApB,EAAoBA,EAAMmrM,wBACrD,CACEl4M,KAAM,SACNmO,KAAM,kBACN42G,2BAA4B,SAACtuG,GAC3BilM,EAAkB,2BAAK3uM,GAAN,IAAYorM,gBAAiB1hM,IAASuO,EAAOhlB,IAEhEqW,cAAkB,OAAJtJ,QAAI,IAAJA,OAAA,EAAAA,EAAMorM,uBAAmB/pM,EACvCs5G,gBAAiBn+G,EAAK0E,cAAc,CAAEC,GAAI,mBAC1C2iI,eAAe,EACfxuB,MAAO94G,EAAK0E,cAAc,CAAEC,GAAI,iCAElCE,GAENrO,OAAQ,SAACk9B,GACP68K,KACA9D,EACEC,EAASl+B,QAAQj2J,KAAI,SAAC/U,EAAMiqB,GAAP,eACnBA,IAAMhS,EAAN,uCAESjY,GACAkwB,GAHT,IAIM+6K,wBACQ,OAAN/6K,QAAM,IAANA,OAAA,EAAAA,EAAQg7K,wBACR,EAAC,EAAO,GAAG3yM,SAAX,OAAoB23B,QAApB,IAAoBA,OAApB,EAAoBA,EAAQi7K,wBACE,IAApB,OAANj7K,QAAM,IAANA,OAAA,EAAAA,EAAQk7K,sBACR/pM,EACN8pM,0BACQ,OAANj7K,QAAM,IAANA,OAAA,EAAAA,EAAQk7K,iBAAkB,KAA1B,OAA8Bl7K,QAA9B,IAA8BA,OAA9B,EAA8BA,EAAQi7K,wBACxCE,2BAAiC,OAANn7K,QAAM,IAANA,GAAA,UAAAA,EAAQo7K,0BAAR,eAA4BpsG,oBAAgB79F,EACvEkqM,2BAAiC,OAANr7K,QAAM,IAANA,GAAA,UAAAA,EAAQs7K,0BAAR,eAA4BtsG,oBAAgB79F,EACvE6sM,kBAAmBxvG,GAChBivG,8CAA8Cz9K,EAAO0+K,yBACrDz3G,QAAQ,KAEbn3F,OAIVyrK,QAAS,WACPy9B,EAASl+B,QAAQ/yJ,GAAOiS,SAASqkL,WAAW/D,GAAuBx/B,QAAQwjC,UAE7E/H,qBAAsB,WACpByC,EAASl+B,QAAQ/yJ,GAAOiS,SAAS6qK,GAAG0Z,UACpCvF,EAASl+B,QAAQ/yJ,GAAOiS,SAASwkL,SAAS,CAAEzhM,MAAO,SACnD8/L,KACAlB,KACAhC,IAAuB,GACvBU,GAAuB,QA0BvB4B,GAAiC,SAAC9xD,EAAQt1G,GAC9CukK,GAAoB,GAAD,mBAAKC,GAAoBv+B,SAAzB,CAAkCjmI,KACrD4hK,EACEqC,EAAeh+B,QAAQj2J,KAAI,SAAC81L,GAAD,OACzBA,EAAWt6K,eAAiB84K,EAA0Br+B,QAAQz6I,aAA9D,2BAESs6K,GAFT,IAGM/uE,gBAAgB,EAChBj7F,WAAYkE,EAASlE,WACrB+iK,eAAgB7+J,EAAS3C,aACzBjQ,UAAW4S,EAAS5S,UACpBD,SAAU6S,EAAS7S,SACnBu0I,OAAQ1hI,EAAS0hI,OACjBwlC,aAAcvtG,GAAQwtG,uCAAuCnnK,EAAS0hI,UAExEokC,MAGR91L,EAAIs3L,YAAYhyD,GAChB+uD,EAA0B,OAqD5B,MAAO,CACL7G,cACAppF,UACA6rF,eACAyD,uBACAe,8BACA9C,gBACAltB,QACAlnJ,cACAq0K,iBACAnE,oBACAC,cAlcoB,SAACxqL,GACrB0uL,EAAe,GAAD,mBACTr0K,EAAYkkE,MAAM,EAAGv+E,EAAQ,IADpB,CAEZ,CAAEsY,aAAcu6K,iBAFJ,YAGTx4K,EAAYkkE,MAAMv+E,EAAQ,OA+b/ByqL,kBACAC,YACAC,iBAlTuB,SAACryK,GACnBgyK,GAAWhyK,eACdo6K,KACAhE,EACEr0K,EAAYjD,QAAO,SAACw7K,GAKlB,OAJIA,EAAWt6K,eAAiBA,GAAgBs6K,EAAWxwD,QACzDivD,GACE9G,GAAiBnzK,QAAO,SAACqtK,GAAD,OAASA,EAAI77J,aAAegqK,EAAWhqK,eAE5DgqK,EAAWt6K,eAAiBA,QA0SzCsyK,kBAr3BwB,SAAC5qL,GACzBmxL,EAA0B92K,EAAYra,IACtC0xL,GAA6B,QAtEP,SAAC12M,GACvB,IAAM67M,EAAoB,CACxBC,SAAU,CACRC,YAAaxyM,EAAK0E,cAAc,CAC9BC,GACW,IAATlO,EACI,sBACS,IAATA,EACA,2BACA,8BAIZ8hB,EAAIggL,GAAGka,QAAQ,oBAAqBH,EAAmBtyM,EAAKkhG,QA0D5DwxG,CAA0B,IAAVj3L,EAAc,EAAIA,IAAUqa,EAAYvW,OAAS,EAAI,EAAI,GACzEhH,EAAIggL,GAAGoa,WAAW,SAAU,CAC1BC,iBAAiB,EACjBC,gBAAgB,EAChBC,YAAa,CACX1tM,KAAM04I,aACM,IAAVriI,EAAc,EAAIA,IAAUqa,EAAYvW,OAAS,EAAI,EAAI,EACzD9D,EACAqa,EAAYra,GAAOiiI,YA22BzB4oD,8BAlEoC,SAACvyK,EAAcwU,GAC/CA,GACF4hK,EACEr0K,EAAYvd,KAAI,SAAC81L,GACf,GAAIA,EAAWt6K,eAAiBA,EAAc,CAC5C,IAAMg/K,EAAW,2BACZ1E,GADY,IAEf/uE,eAAgB/2F,EAAS+2F,eACzBj7F,WAAYkE,EAASlE,WACrB+iK,eAAgB7+J,EAAS3C,aACzBjQ,UAAW4S,EAAS5S,UACpBD,SAAU6S,EAAS7S,SACnBu0I,OAAQ1hI,EAAS0hI,OACjBwlC,aAAcvtG,GAAQwtG,uCAAuCnnK,EAAS0hI,UAMxE,OAJA6iC,GAAoB,GAAD,mBACd9G,IADc,aAAC,eAEb+M,GAFY,IAECntK,aAAc2C,EAAS3C,kBAEpCmtK,EACF,OAAO1E,OA+CpB9H,wBA9G8B,SAACxyK,EAAcsQ,GAC7C,IAAMkE,EAAW3zB,GAAUie,QAAO,SAAC0V,GAAD,OAAcA,EAASlE,aAAeA,KAAY,GAChFkE,GACF4hK,EACEr0K,EAAYvd,KAAI,SAAC81L,GAAD,OACdA,EAAWt6K,eAAiBA,GAAgBs6K,EAAWhqK,aAAeA,EAAtE,2BAESgqK,GAFT,IAGM/uE,gBAAgB,EAChBj7F,WAAYkE,EAASlE,WACrB+iK,eAAgB7+J,EAAS3C,aACzBjQ,UAAW4S,EAAS5S,UACpBD,SAAU6S,EAAS7S,SACnBu0I,OAAQ1hI,EAAS0hI,OACjBwlC,aAAcvtG,GAAQwtG,uCAAuCnnK,EAAS0hI,UAExEokC,OA+FV7H,2BA1CiC,SAACzyK,GAC7BgyK,GAAWhyK,cACdo2K,EACEr0K,EAAYvd,KAAI,SAAC81L,GACf,OAAIA,EAAWt6K,eAAiBA,GAC9B+4K,GACE9G,GAAiBnzK,QAAO,SAACqtK,GAAD,OAASA,EAAI77J,aAAegqK,EAAWhqK,eAE7DgqK,EAAWxwD,QAAQtlI,EAAIs3L,YAAYxB,EAAWxwD,QAC3C,2BACFwwD,GADL,IAEE/uE,oBAAgBz6H,EAChBw/B,gBAAYx/B,EACZuiM,oBAAgBviM,EAChBg5I,YAAQh5I,EACR8wB,eAAW9wB,EACX6wB,cAAU7wB,EACVolK,YAAQplK,KAEEwpM,OAwBpBR,mBACAM,sBACAlB,+BACAW,mBACAd,uBACAL,WACAc,gCACAjB,mBACAgB,8BACAF,yBACAC,0BACAG,wBACAN,6BACAjuD,OAAQ+sD,EAAU/sD,OAClBmpD,kBAAmB6D,EAAqBz9B,QACxC65B,mBACAC,wBCtqCE0K,GAAe,SAACpmM,GAAgC,IAAD,EAC3Cm/L,EAA0Bn/L,EAA1Bm/L,sBACR,EAoCIF,GAAgBj/L,GAnClBm5L,EADF,EACEA,WACAppF,EAFF,EAEEA,QACA6rF,EAHF,EAGEA,aACAyD,EAJF,EAIEA,qBACAe,EALF,EAKEA,2BACA9C,EANF,EAMEA,cACAltB,EAPF,EAOEA,MACAlnJ,EARF,EAQEA,YACAq0K,EATF,EASEA,eACAnE,EAVF,EAUEA,iBACAC,EAXF,EAWEA,cACAC,EAZF,EAYEA,eACAC,EAbF,EAaEA,SACAC,EAdF,EAcEA,iBACAC,EAfF,EAeEA,kBACAC,EAhBF,EAgBEA,8BACAC,EAjBF,EAiBEA,wBACAC,EAlBF,EAkBEA,2BACAqH,EAnBF,EAmBEA,gBACAM,EApBF,EAoBEA,mBACAlB,EArBF,EAqBEA,4BACAW,EAtBF,EAsBEA,gBACAd,EAvBF,EAuBEA,oBACAL,EAxBF,EAwBEA,SACAc,EAzBF,EAyBEA,6BACAjB,EA1BF,EA0BEA,iBACAgB,EA3BF,EA2BEA,2BACAF,EA5BF,EA4BEA,sBACAC,EA7BF,EA6BEA,uBACAG,EA9BF,EA8BEA,qBACAN,EA/BF,EA+BEA,0BACAjuD,EAhCF,EAgCEA,OACAmpD,EAjCF,EAiCEA,kBACAC,EAlCF,EAkCEA,gBACAC,EAnCF,EAmCEA,mBAEItoM,EAAOG,cACP4e,EAAWipI,cAEjB,OACE,qCACE,cAACvD,GAAA,EAAD,CACE+B,WAAS,EACTC,cAAa,OAAEs/C,QAAF,IAAEA,OAAF,EAAEA,EAAYluM,WAC3B8uJ,cAAY,EACZC,iBAAgB,OAAEm/C,QAAF,IAAEA,OAAF,EAAEA,EAAYluM,aAEhC,cAAC,GAAD,aACE8kH,QAASA,EACTzwG,MAAOghM,EACPp5K,QAAO,OAAE+5K,QAAF,IAAEA,GAAF,UAAEA,EAAiBr/B,eAAnB,aAAE,EAA0B16I,QACnC00K,aAAcA,EACdzC,WAAYA,EACZ9mD,OAAQA,EACRtc,UAAWspE,EAAqBz9B,QAChC1iK,YAAa9L,EAAK0E,cAAc,CAAEC,GAAI,gBACtCujM,kBAAmB8E,EACnB5E,kBAAmBA,EACnB8B,cAAeA,EACfltB,MAAOA,EACPlnJ,YAAaA,EACbq0K,eAAgBA,EAChBnE,iBAAkBA,EAClBC,cAAeA,EACfC,eAAgBA,EAChBC,SAAUA,EACVC,iBAAkBA,EAClBC,kBAAmBA,EACnBC,8BAA+BA,EAC/BC,wBAAyBA,EACzBC,2BAA4BA,EAC5B6B,gBAAiBA,EACjBC,mBAAoBA,EACpB2B,qBAAsB,SAACQ,GAAc,IAAD,GAC7BA,IAAD,UAAaoD,EAAgBr/B,eAA7B,aAAa,EAAyB16I,UACxC/U,EAASmyL,kBAA4BrD,EAAgBr/B,QAAQ16I,UAC/Dq6K,IACAlB,GAA4B,GAC5BW,OAAgB/oM,GAChBioM,EAAoB,IACpB3C,EAAe,IACfsC,EAAS,IACTc,EAA6B,CAAE1F,OAAQ,KACvCyE,EAAiB,2BAAKpC,GAAN,IAAqBttM,SAAU,KAC/C+2K,YAAW,kBAAMo4B,OAAsBlnM,KAAY,OAEjDyoM,IAEN,cAAC2F,GAAA,EAAD,aACEnnM,YAAa9L,EAAK0E,cAAc,CAAEC,GAAI,gBACtCujM,kBAAmBkF,EACnBnD,qBAAsB,WACpBoD,GAAuB,IAEzB6F,SAAS,GACL1F,QAMZwF,GAAaxzF,aAAe,CAC1B5rF,MAAO,GACPu/K,WAAW,EACX9b,iBAAiB,EACjBD,aAAa,GAGA4b,U,yCCtGTjJ,GAAuB,SAACn9L,GAAkB,IAAD,wBAErCf,EACNe,EADMf,MAAOm+L,EACbp9L,EADao9L,SAAUp2K,EACvBhnB,EADuBgnB,MAAO+uG,EAC9B/1H,EAD8B+1H,UAAWulE,EACzCt7L,EADyCs7L,kBAAmBC,EAC5Dv7L,EAD4Du7L,iBAAkBiL,EAC9ExmM,EAD8EwmM,YAG1EpzM,EAAOG,cAELynI,EAAgBlF,aAAY,SAACnsI,GAAD,MAAY,CAC9CqxI,YAAa7vH,iBAA6BxhB,OADpCqxI,YAIR,OACE,eAAC,KAAD,CACEruB,UAAU,2BACV+vF,iBAAkB,kCAClB5lE,OAAQwkE,EACRr8L,MAAOA,EACPm+L,SAAUA,EACV99L,MAAO,QACPq9L,eAAgB,kBAAMpB,KAPxB,UASE,cAAC3W,GAAA,EAAD,CAASC,OAAQ,uBAAwBhN,QAAQ,EAAMiN,cAAe,cACrE/uD,EACC,qBAAKppB,UAAU,qCAAf,SACE,cAAC4pE,GAAA,EAAD,CAAS1yK,MAAM,cAGjB,qCACE,cAAC6zI,GAAA,EAAD,CACEC,QAAS,CACP,cAAC8uD,GAAA,EAAD,CACExwE,eAAgB,uBAChBzzH,YAAY,EACZwzH,YAAa,kBAAMwwE,EAAYx/K,IAC/B94B,YAAa,CAACw4M,KAAiB/+K,gBAIrC,eAAC82K,GAAA,EAAD,WACE,oBAAI9xF,UAAW,2BACf,cAAC+xF,GAAA,EAAD,CAAO/xF,UAAU,oBAAjB,SAAsCv5G,EAAK0E,cAAc,CAAEC,GAAI,kBAC/D,cAAC2mM,GAAA,EAAD,CAAO/xF,UAAU,0BAAjB,mBAA4C3lF,EAAMyC,iBAAlD,QAA+D,QAC/D,oBAAIkjF,UAAW,2BACf,cAAC+xF,GAAA,EAAD,CAAO/xF,UAAU,oBAAjB,SACGv5G,EAAK0E,cAAc,CAAEC,GAAI,0BAE5B,cAAC2mM,GAAA,EAAD,CAAO/xF,UAAU,0BAAjB,mBAA4C3lF,EAAM88K,oBAAlD,QAAkE,QAClE,oBAAIn3F,UAAW,2BACf,cAAC+xF,GAAA,EAAD,CAAO/xF,UAAU,oBAAjB,SACGv5G,EAAK0E,cAAc,CAAEC,GAAI,oBAE5B,cAAC2mM,GAAA,EAAD,CAAO/xF,UAAU,0BAAjB,mBACG3lF,EAAM2/K,kBADT,SAEU,OAAL3/K,QAAK,IAALA,GAAA,UAAAA,EAAOkC,mBAAP,eAAoBvW,QAAS,EAA7B,OAAiCqU,QAAjC,IAAiCA,GAAjC,UAAiCA,EAAOkC,YAAY,UAApD,aAAiC,EAAuBsxK,eAAiB,QAE9E,oBAAI7tF,UAAW,2BACf,cAAC+xF,GAAA,EAAD,CAAO/xF,UAAU,oBAAjB,SACGv5G,EAAK0E,cAAc,CAAEC,GAAI,yBAE5B,cAAC2mM,GAAA,EAAD,CAAO/xF,UAAU,0BAAjB,mBACG3lF,EAAM4/K,kBADT,SAEU,OAAL5/K,QAAK,IAALA,GAAA,UAAAA,EAAOkC,mBAAP,eAAoBvW,QAAS,EAA7B,OACGqU,QADH,IACGA,GADH,UACGA,EAAOkC,aAAiB,OAALlC,QAAK,IAALA,GAAA,UAAAA,EAAOkC,mBAAP,eAAoBvW,QAAS,UADnD,aACG,EAAoD6nL,eACpD,QAER,oBAAI7tF,UAAW,2BACf,cAAC+xF,GAAA,EAAD,CAAO/xF,UAAU,oBAAjB,SACGv5G,EAAK0E,cAAc,CAAEC,GAAI,sBAE5B,cAAC2mM,GAAA,EAAD,CAAO/xF,UAAU,oCAAjB,SACG3lF,EAAMm/F,eAAiBn/F,EAAMm/F,eAAiB,IAAM6U,EAAW,SAAe,QAEjF,oBAAIruB,UAAW,2BACf,cAAC+xF,GAAA,EAAD,CAAO/xF,UAAU,oBAAjB,SACGv5G,EAAK0E,cAAc,CAAEC,GAAI,iCAE5B,cAAC2mM,GAAA,EAAD,CAAO/xF,UAAU,0BAAjB,mBAA4C3lF,EAAM1O,wBAAlD,QAAsE,QACtE,oBAAIq0F,UAAW,2BACf,cAAC+xF,GAAA,EAAD,CAAO/xF,UAAU,oBAAjB,SACGv5G,EAAK0E,cAAc,CAAEC,GAAI,yBAE5B,cAAC2mM,GAAA,EAAD,CAAO/xF,UAAU,0BAAjB,mBAA4C3lF,EAAMpZ,oBAAlD,QAAkE,QAClE,oBAAI++F,UAAW,2BACf,cAAC+xF,GAAA,EAAD,CAAO/xF,UAAU,oBAAjB,SACGv5G,EAAK0E,cAAc,CAAEC,GAAI,+BAE5B,cAAC2mM,GAAA,EAAD,CAAO/xF,UAAU,0BAAjB,mBAA4C3lF,EAAMrL,uBAAlD,QAAqE,QACrE,oBAAIgxF,UAAW,qCAQ3BwwF,GAAqBvqF,aAAe,GAErBuqF,UC5FT0J,GAAY,SAAC7mM,GACjB,IAAM2L,EAAMqjL,YAAa,CACvBC,QAAS,WACPsD,QAIFpD,EAgBEnvL,EAhBFmvL,oBACAC,EAeEpvL,EAfFovL,uBAFF,EAiBIpvL,EAdF88L,kBAHF,WAiBI98L,EAbF8mM,uBAJF,WAiBI9mM,EAZFmI,cALF,MAKW,GALX,IAiBInI,EAXFo0L,mCANF,WAiBIp0L,EAVF+8L,sCAPF,SAQEvS,EASExqL,EATFwqL,YARF,EAiBIxqL,EARFw8L,iBATF,MASc,KATd,IAiBIx8L,EAPF+mM,mDAVF,WAiBI/mM,EANFgnM,8CAXF,WAiBIhnM,EALFinM,4CAZF,SAaEC,EAIElnM,EAJFknM,8BACAC,EAGEnnM,EAHFmnM,mBACAhI,EAEEn/L,EAFFm/L,sBAfF,EAiBIn/L,EADFyqL,uBAhBF,SAkBMlwL,EAAQu7H,aAAY,SAACnsI,GAAD,OAAWA,KAC/BwoB,EAAWipI,cACjB,EAA8EhlB,oBAAS,GAAvF,mBAAOgxE,EAAP,KAAwCC,EAAxC,KACA,EAAsDjxE,oBAAS,GAA/D,mBAAOkxE,EAAP,KAA4BC,EAA5B,KACA,EAA4CnxE,qBAA5C,mBAAOoxE,GAAP,KAAuBC,GAAvB,KACA,GAAwCrxE,mBAAS,IAAjD,qBAAOsxE,GAAP,MAAqBC,GAArB,MACA,GAA0CvxE,mBAAc,IAAxD,qBAAOgmE,GAAP,MAAsBwL,GAAtB,MAIA,IAHc14F,iBAAiBrS,SAASvxF,MAGewqH,aAAY,SAACnsI,GAAD,MAAY,CAC7Eq+G,UAAWq0F,IAA8B1yM,GACzCo+G,SAAUs0F,IAA6B1yM,GACvCk+M,sBAAuBxL,IAA8C1yM,QAH/Dq+G,GAAR,GAAQA,UAAWD,GAAnB,GAAmBA,SAAU8/F,GAA7B,GAA6BA,sBAM7B14F,qBAAU,WACJigF,GACFA,EAAuB,2BAClBD,GADiB,IAEpBhnL,OAAkC,OAAb,OAAbi0L,SAAa,IAAbA,QAAA,EAAAA,GAAel1K,cAG1B,CAACk1K,KAEJ,IAAMvvD,GAAc,SAAC7lH,GAAW,IAAD,GAC7B,OAAImgL,QAAJ,IAAIA,GAAJ,UAAIA,EAAoBngL,aAAxB,aAAI,EAA2BE,WAC7B/U,EAASmyL,kBAA4B6C,EAAmBngL,MAAME,UAC1Di4K,GAAuBA,OAAsBlnM,IAEnD2vM,GAAiB5gL,GACb+1K,GACFsK,GAAmC,GAErCS,GAAgB,CAAC9gL,KAGbw/K,GAAc,SAACx/K,GACnBqgL,GAAmC,GACnClI,EAAsB,CACpBoH,WAAW,EACXv/K,QACAI,iBAAkBJ,EAAMkC,YACxBg2K,WAAYl4K,EAAMkC,YACfjD,QAAO,SAACwC,GAAD,OAASA,EAAIC,YAAY/V,OAAS,KACzChH,KAAI,SAAC8c,GACJ,MAAO,CACL3H,SAAUkwH,EAAElwH,SACV2H,EAAIC,YAAY/c,KAAI,SAAC/U,GAAD,MAAU,CAACA,EAAKkyB,SAAUlyB,EAAKmyB,cACnD,CAAEllB,MAAK,OAAE24L,QAAF,IAAEA,IAAa,SAExBsI,kBAAmBr8K,EAAIq8K,kBACvB5C,mBAAoBz5K,EAAIy5K,mBACxBE,mBAAoB35K,EAAI25K,mBACxBN,sBAAuBr5K,EAAIq5K,sBAC3BE,gBAAiBv5K,EAAIu5K,gBACrB0B,gBAAiBj7K,EAAIi7K,gBACrB3B,uBAAwBt5K,EAAIs5K,8BAMhC+F,GAAkB,SAAC3/L,GACvB,IAAIu1J,EAAS,GACbv1J,EAAOwD,KAAI,SAACqb,GAAD,OAAY02I,EAAM,sBAAOA,GAAP,YAAkBlsB,aAAexqH,QAC1D02I,EAAO/qJ,OAAS,GAClBhH,EAAIs/K,YAAYvtB,EAAQ,CACtBixB,mBAAoBlE,EAAkB,CAAC,IAAK,QAAKxyL,EACjD22L,eAAgBnE,EAAkB,CAAC,EAAG,SAAMxyL,EAC5C42L,QAASljL,EAAIi4L,cAAclmC,OAAQzlK,EAAW,CAAC,IAAK,OAAS0T,EAAImjL,aAIjEyD,GAAiB,WACjBpqL,EAAO8d,QAAO,SAACe,GAAD,OAAWA,EAAMkC,YAAYvW,OAAS,KAAGA,OAAS,GAClEg1L,GACEx/L,EAAO8d,QAAO,SAACe,GAAD,OACZrb,GACI6lI,aAAexqH,GAAOrU,OAAS,GAAKhH,EAAIy/K,YAAY2c,WAAWv2D,aAAexqH,SAqF1F,OA/EAmoF,qBAAU,YACHnH,IAAao0F,GAAcl1K,UAC9B/U,EAASmyL,kBAA4BlI,GAAcl1K,UACnD0gL,GAAiBvL,IAAwB9hM,EAAO6hM,GAAcl1K,UAC9DmgL,GAAmC,MAEpC,CAACr/F,KAEJmH,qBAAU,WAAO,IAAD,GACd,OAAIg4F,QAAJ,IAAIA,GAAJ,UAAIA,EAAoBngL,aAAxB,aAAI,EAA2BE,UAC7B/U,EAASmyL,kBAA4B6C,EAAmBngL,MAAME,YAE/D,CAACigL,IAEJ1gC,aAAqB,WACf2tB,GAA+BzoL,GAAOxD,EAAOwK,OAAS,GAAGm1L,OAC5D,CAAC3/L,EAAQisL,IAEZjlF,qBAAU,WACJ63F,IACFK,GAAmC,GACnClI,EAAsB,CACpBoH,WAAW,EACXv/K,MAAO,CAAE4C,WAAY83K,gBACrBt6K,iBAAkB,CAChB,CAAED,aAAcu6K,gBAChB,CAAEv6K,aAAcu6K,gBAChB,CAAEv6K,aAAcu6K,iBAElBxC,WAAY,QAGf,CAAC8H,IAGJ73F,qBAAU,WACJ43F,GAA+ChK,GAC7CmK,GACF/0L,EACEsqL,KAAsDyK,MAI3D,CAACA,IAEJ/3F,qBAAU,WACR,GAAI43F,GAA+ChK,GAC7CmK,IAAkCW,GAAuB,CAAC,IAAD,EACrDG,EAA0B3L,IAC9B9hM,EACA2sM,GAGAM,KAAmBN,IACI,OAAvBc,QAAuB,IAAvBA,GAAA,UAAAA,EAAyB9+K,mBAAzB,eAAsCvW,QAAS,IAE/C80L,GAAkBO,EAAwB9gL,SAC1C0gL,GAAiBI,GACjBF,GAAgB,CAACE,IACjBX,GAAmC,GAC/BJ,GACFM,GAAuB,OAK9B,CAACM,KAEJ14F,qBAAU,WACJm4F,IACFC,GAAuB,GACvBf,GAAYpK,OAEb,CAACA,KAEJ31B,aAAqB,WACnB8rB,OACC,CAACuK,EAAY90F,GAAWD,GAAU5/F,IAGnC,sCACI20L,GAAcgK,IACd,cAAC,WAAD,UACGY,GAAa/7L,KACZ,SAACqb,GAAD,OACI81K,IAAegK,GAAqBA,GAAmB9/K,EAAM+uF,eAC7D,8BACG/uF,EAAMkC,YAAYvd,KACjB,SAAC81L,EAAY5yL,GAAb,iBACyB,MAAvB4yL,EAAW34K,UACa,MAAxB24K,EAAW14K,WACT,gCACE,cAACopK,EAAA,EAAD,CAEEwB,aAAa,EACbn7L,KAAM04I,aACM,IAAVriI,EAAc,EAAIA,IAAUmY,EAAMkC,YAAYvW,OAAS,EAAI,EAAI,EAC/D9D,EACsB,IAAtB4yL,EAAW3wD,YAAe74I,EAAYwpM,EAAW3wD,OACjD2wD,EAAWtwD,4BACXswD,EAAWrwD,4BAEbv4I,SAAU,CAAC4oM,EAAW34K,SAAU24K,EAAW14K,WAC3CsjK,cAAe,CACbC,MAAO,kBAAMz/C,GAAY7lH,KAZ7B,SAeGwjK,GACC,cAACmC,EAAA,EAAD,UACE,mBAAGhgF,UAAU,cAAcH,MAAO,CAAE8D,SAAU,QAA9C,0BACGmxF,QADH,IACGA,OADH,EACGA,EAAYjH,sBADf,QACiCxzK,EAAMyC,gBAK5Cg4K,EAAWpkC,QACV,cAACuvB,EAAA,EAAD,CACElvB,OAAQN,YACNqkC,EAAW34K,SACX24K,EAAW14K,UACX04K,EAAWpkC,QAEb+uB,YAAa,CAAEvoL,MAvM3BssG,aA0MSsxF,EAAW/4K,YAAY/V,OAAS,GAC/B,cAACs1L,GAAA,EAAD,CACE7b,YAAa,CAAEvoL,MAAK,oBAAEmjB,EAAMw1K,iBAAR,QAAqBA,SAArB,QAAkC,QACtDz7K,UAAW0gL,EAAW/4K,YAAY/c,KAAI,SAAC/U,GAAD,MAAU,CAC9CA,EAAKkyB,SACLlyB,EAAKmyB,cAEPsjK,cAAe,CACbC,MAAO,WACLib,GAAuB,GACvB16D,GAAY7lH,KATlB,SAaGwjK,GACC,cAACmC,EAAA,EAAD,UACE,mBAAGhgF,UAAU,cAAcH,MAAO,CAAE8D,SAAU,QAA9C,SACGtpF,EAAMyC,kBAnDTg4K,EAAWt6K,kBALnBH,EAAME,cAuE1B,cAACghL,GAAD,CACEnyE,UAAW/tB,GACXuzF,iBAAkB,WAChB8L,GAAmC,GACnCO,GAAiB,KAEnBtM,kBAAmB8L,EACnBnoM,MAAOm9L,GAAc3yK,UACrBzC,MAAOo1K,GACPoK,YAAaA,SAMrBK,GAAUj0F,aAAe,CACvBwhF,6BAA6B,EAC7B2I,gCAAgC,EAChC50L,OAAQ,GACR20L,YAAY,EACZiK,6CAA6C,EAC7Cvc,aAAa,EACb0c,mCAA+BjvM,EAC/B6uM,iBAAiB,GAGJD,U,8NC1SAsB,I,QAvBO,SAAC,GAAiC,IAA/B70M,EAA8B,EAA9BA,SAAa0M,EAAiB,4BAC/CgyL,EAAY//C,mBAEVm2D,EAAkCpoM,EAAlCooM,cAAeC,EAAmBroM,EAAnBqoM,eAQvB,OAPAl5F,qBAAU,WAAO,IAAD,KACV,UAAA6iF,EAAUpwB,eAAV,eAAmB0mC,oBAAnB,UAAuCtW,EAAUpwB,eAAjD,aAAuC,EAAmB2mC,qBAC5DvW,EAAUpwB,QAAQ0mC,iBAAiBF,GACnCpW,EAAUpwB,QAAQ2mC,kBAAkBF,MAErC,CAACD,EAAeC,IAGjB,cAAClW,EAAA,EAAD,yBACEtkF,IAAK,SAACA,GACAA,IAAKmkF,EAAUpwB,QAAU/zD,KAE3B7tG,GAJN,aAMG1M,O,wCC4CDk1M,GAA2C,SAACxoM,GAAkB,IAAD,sBAC3D5M,EAAOG,cACPk1M,EAAa,CACjB,CACEj4G,UAAW,YACX85E,SAAU,SAACzxK,GAAD,OACY,MAApBA,EAASqlH,QACP,eAAC61E,EAAA,EAAD,WACE,qBACEpnF,UAAU,mDACVH,MAAO,CACLk8F,WAAY,QACZppM,MAAO,GACPwtG,OAAQ,GACR67F,QAAS,EACTC,aAAc,OACd77F,YAAa,SACb87F,YAAa,QACbC,YAAY,IAAD,OAAMjwM,EAAS6rH,aAV9B,SAaE,cAAC,KAAD,CACElsH,KAA2B,IAArBK,EAASqlH,QAAT,gBAAkCrlH,EAASqlH,SAAY,SAC7Dr6G,MAAK,WAAMhL,EAAS6rH,YACpB9gH,KAAM,OAGV,cAAC,KAAD,CAAkB7L,GAAE,6BAAwBc,EAASqlH,aApB3CrlH,EAASd,IAuBrB,eAACg8L,EAAA,EAAD,CAAyBpnF,UAAU,kDAAnC,UACE,cAAC,KAAD,CACEn0G,KAAMymJ,aAAyBpmJ,EAAS4nB,QAAS5nB,EAASmgH,SAC1Dp1G,KAAM,GACN4oG,MAAO,CACLu8F,OAAQ,2BAGXlwM,EAASqlH,QACR,cAAC,KAAD,CAAkBnmH,GAAE,6BAAwBc,EAASqlH,WAErDrlH,EAAS0rH,YAXD1rH,EAASd,KAezBk2G,SAAU,MACV1c,WAAY,eAEd,CACEf,UAAW,eACX85E,SAAU,SAACzxK,GAAD,OACR,eAACk7L,EAAA,EAAD,CAAyBpnF,UAAU,kDAAnC,UACE,qBACEH,MAAO,CACLC,QAAS,OACT4qE,WAAY,SACZC,eAAgB,SAChBh4K,MAAO,OACPwtG,OAAQ,OACRC,YAAa,UAPjB,SAUA,cAAC,KAAD,CAAMv0G,KAAMwwM,GAAcnwM,EAASqtH,SAAUtiH,KAAM,OAEnD,+BAAO/K,EAASmgC,iBAbNngC,EAASd,KAgBvBk2G,SAAU,MACV1c,WAAY,sBAEd,CACEf,UAAW,UACXyd,SAAU,MACV1c,WAAY,aACZ1nG,KAAM,WACNugL,aAAc,qBAQhB,IACEmxB,EAWEv7L,EAXFu7L,iBACA0N,EAUEjpM,EAVFipM,kBACAC,EASElpM,EATFkpM,wBACAjqM,EAQEe,EARFf,MAEAkqM,GAMEnpM,EAPFo9L,SAOEp9L,EANFmpM,iCACArtL,EAKE9b,EALF8b,KACAstL,EAIEppM,EAJFopM,kCACAC,EAGErpM,EAHFqpM,aACAC,EAEEtpM,EAFFspM,gBAEEtpM,EADFupM,gBAMJ,IAAMC,EAAe,CACnB,CACEh5G,UAAW,UACXe,WAAY,aACZ1nG,KAAM,WACNugL,aAAc,oBAEhB,CACE55E,UAAW,aACXe,WAAY,sBACZ1nG,KAAM,WACNugL,aAAc,oBAEhB,CACE55E,UAAW,YACX85E,SAAU,SAACzxK,GACT,OAA2B,MAApBA,EAASqlH,QACd,eAAC61E,EAAA,EAAD,WACE,qBACEpnF,UAAU,mDACVH,MAAO,CACLk8F,WAAY,QACZppM,MAAO,GACPwtG,OAAQ,GACR67F,QAAS,EACTC,aAAc,OACd77F,YAAa,SACb87F,YAAa,QACbC,YAAY,IAAD,OAAMjwM,EAAS6rH,aAV9B,SAaE,cAAC,KAAD,CACElsH,KAA2B,OAArBK,EAASqlH,QAAT,gBAAqCrlH,EAASqlH,SAAY,SAChEr6G,MAAK,WAAMhL,EAAS6rH,YACpB9gH,KAAM,OAGV,cAAC,KAAD,CAAkB7L,GAAE,6BAAwBc,EAASqlH,aApB3CrlH,EAASd,IAuBrB,eAACg8L,EAAA,EAAD,CAAyBpnF,UAAU,kDAAnC,UACE,cAAC,KAAD,CACEn0G,KAAMymJ,aAAyBpmJ,EAAS4nB,QAAS5nB,EAASmgH,SAC1Dp1G,KAAM,GACN4oG,MAAO,CACLu8F,OAAQ,2BAGXlwM,EAAS0rH,YARA1rH,EAASd,KAYzBw5F,WAAY,eAEd,CACEf,UAAW,eACX85E,SAAU,SAACzxK,GAAD,OACR,eAACk7L,EAAA,EAAD,CAAyBpnF,UAAU,kDAAnC,UACE,qBACEH,MAAO,CACLC,QAAS,OACT4qE,WAAY,SACZC,eAAgB,SAChBh4K,MAAO,OACPwtG,OAAQ,OACRC,YAAa,UAPjB,SAUA,cAAC,KAAD,CAAMv0G,KAAMwwM,GAAcnwM,EAASqtH,SAAUtiH,KAAM,OAEnD,+BAAO/K,EAASmgC,iBAbNngC,EAASd,KAgBvBk2G,SAAU,MACV1c,WAAY,sBAEd,CACEf,UAAW,QACXe,WAAY,eAEb,CACCf,UAAW,SACXe,WAAYz1E,EAAK2tL,kBAAkB,IAAI3tL,EAAK4tL,kBAAkB,IAC9D53G,OAAQ,SAACxxF,GAAD,OAvFV,SAA6BA,GAC3B,OAAc,OAAVA,QAA4BrI,IAAVqI,EAA4B,GAC3CuoB,WAAWvoB,GAAOytF,QAAQ,GAqFd47G,CAAoBrpM,KAGzC,CACEkwF,UAAW,eACXe,WAAY,mBACZO,OA/GJ,SAA8B83G,GAE5B,OAAyB,IAAlBA,EAAsB,YAAc,WA8GzCzzE,QAASr6G,EAAK+tL,kBAEhB,CACEr5G,UAAW,WACXe,WAAY,iBACZO,OAAQ,SAACxxF,GAAD,OAAgByuF,cAAiBzuF,MAI7C,EAAgDq7L,eAAxC5rF,EAAR,EAAQA,QAAS8rF,EAAjB,EAAiBA,MAAOr1B,EAAxB,EAAwBA,MAAOo1B,EAA/B,EAA+BA,aACzBzC,EAAa0C,IAEb1pL,EAAWipI,cAGX9sD,GADQ4gB,iBAAiBrS,SAASvxF,MACxB6kG,WAChB,EAAmCimB,mBAAmB,IAAtD,mBAAO9rG,EAAP,KAAiBu5I,EAAjB,KACMimC,EAAgB73D,mBACtB,EAA2B7b,mBAAiB,SAA5C,mBAAOxyH,GAAP,KAAammM,GAAb,KACA,GAAqC3zE,oBAAkB,GAAvD,qBAAO4zE,GAAP,MAAkBC,GAAlB,MACA,GAA4B7zE,mBAAe,IAAIzwG,MAA/C,qBAAOukL,GAAP,MAAeC,GAAf,MACA,GAAmC/zE,mBAAe,IAAIzwG,MAAtD,qBAAO09I,GAAP,MAAiB+mC,GAAjB,MACA,GAA4Eh0E,mBAAc,MAA1F,qBAAOi0E,GAAP,MAAuCC,GAAvC,MAEA,GAA2Cx0E,aAAY,SAACnsI,GAAD,MAAY,CACjE60K,WAAYr1H,0BAAsCx/C,GAClD4gN,cAAwB,OAAVpR,QAAU,IAAVA,OAAA,EAAAA,EAAYkQ,cACtBlgK,UAAsBx/C,EAAtB,OAA6BwvM,QAA7B,IAA6BA,OAA7B,EAA6BA,EAAYkQ,mBACzCpxM,EACJ7N,KAAM+gB,UAAsBxhB,OALtB60K,GAAR,GAAQA,WAAYp0K,GAApB,GAAoBA,KAAMmgN,GAA1B,GAA0BA,aAQ1Bp7F,qBAAU,YAEI,OAAVgqF,QAAU,IAAVA,OAAA,EAAAA,EAAYkQ,eACZkB,KACY,OAAZlB,QAAY,IAAZA,OAAA,EAAAA,EAAczqL,WAAd,OAAyBu6K,QAAzB,IAAyBA,OAAzB,EAAyBA,EAAYkQ,gBAGrCC,GAAkBA,EAAgBiB,IAClCnB,GAAkC,MAEnC,QAACjQ,QAAD,IAACA,OAAD,EAACA,EAAYkQ,eAEhB,IAAM19L,GAAMqjL,YAAa,CACvBC,QAAS,WACPub,QAGEC,GAAU,WACVX,EAAcloC,SAAS8oC,cAAcZ,EAAcloC,UAGzDzyD,qBAAU,WACR,OAAO,kBAAMs7F,QACZ,IAEH,IAAME,GAAqB,WAAO,IAAD,IAM7B,EAJAxB,IACI,OAAJrtL,QAAI,IAAJA,GAAA,UAAAA,EAAMuoG,2BAAN,mBAA2BtjG,iBAA3B,eAAsCkF,QACpC,SAACptB,EAAUgW,GAAX,OAA2C,OAAd,OAARhW,QAAQ,IAARA,OAAA,EAAAA,EAAUiwB,WAA2C,OAAf,OAARjwB,QAAQ,IAARA,OAAA,EAAAA,EAAUkwB,cAC7DpW,QAAS,GAEXhH,GAAIs/K,YACFj6C,EAAE2/C,aAAF,OACE70K,QADF,IACEA,GADF,UACEA,EAAMuoG,2BADR,aACE,EAA2BtjG,UACxBkF,QAAO,SAACptB,EAAUgW,GAAX,OAA2C,OAAd,OAARhW,QAAQ,IAARA,OAAA,EAAAA,EAAUiwB,WAA2C,OAAf,OAARjwB,QAAQ,IAARA,OAAA,EAAAA,EAAUkwB,cACpEpd,KAAI,SAAC9S,GAAD,OAAcm4I,EAAED,OAAOl4I,EAASiwB,SAAUjwB,EAASkwB,eAE5D,CACE4lK,mBAAoB,CAAC,IAAK,GAC1BC,eAAgB,CAAC,EAAG,IACpBpG,QAAS,GACTqG,QAAS,KAAOljL,GAAImjL,aAMtB0b,GAAiB,WAAO,IAAD,gBAC3BF,GAAkC,CAChCvpL,UAAS,OAAEjF,QAAF,IAAEA,GAAF,UAAEA,EAAMuoG,2BAAR,iBAAE,EAA2BtjG,iBAA7B,aAAE,EAAsCkF,QAC/C,SAACptB,EAAUgW,GAAX,OACyB,OAAvBq6L,QAAuB,IAAvBA,OAAA,EAAAA,EAAyB0B,sBAAuB/xM,EAASd,IAClC,OAAd,OAARc,QAAQ,IAARA,OAAA,EAAAA,EAAUiwB,WACc,OAAf,OAARjwB,QAAQ,IAARA,OAAA,EAAAA,EAAUkwB,cACTpd,IACGA,GAAIy/K,YAAYljB,SAASl3B,EAAED,OAAOl4I,EAASiwB,SAAUjwB,EAASkwB,gBAE9D,OAAHpd,SAAG,IAAHA,QAAA,EAAAA,GAAKmjL,WAAY,KAAU,OAAHnjL,SAAG,IAAHA,QAAA,EAAAA,GAAKmjL,WAAY,IAAMjgL,EAAQ,KAAO,GAAMA,EAAQ,KAAO,MAE1F+R,gBAAe,OAAE9E,QAAF,IAAEA,GAAF,UAAEA,EAAMuoG,2BAAR,iBAAE,EAA2BzjG,uBAA7B,aAAE,EAA4CqF,QAC3D,SAACptB,EAAUgW,GAAX,OACyB,OAAvBq6L,QAAuB,IAAvBA,OAAA,EAAAA,EAAyB0B,sBAAuB/xM,EAASd,IAClC,OAAd,OAARc,QAAQ,IAARA,OAAA,EAAAA,EAAUiwB,WACc,OAAf,OAARjwB,QAAQ,IAARA,OAAA,EAAAA,EAAUkwB,cACTpd,IACGA,GAAIy/K,YAAYljB,SAASl3B,EAAED,OAAOl4I,EAASiwB,SAAUjwB,EAASkwB,gBAE9D,OAAHpd,SAAG,IAAHA,QAAA,EAAAA,GAAKmjL,WAAY,KAAU,OAAHnjL,SAAG,IAAHA,QAAA,EAAAA,GAAKmjL,WAAY,IAAMjgL,EAAQ,KAAO,GAAMA,EAAQ,KAAO,MAE1FiS,UACM,OAAJhF,QAAI,IAAJA,GAAA,UAAAA,EAAMuoG,2BAAN,mBAA2BvjG,gBAA3B,eAAqCnO,QAAS,EAC1ChH,GACGy/K,YACA2c,WAFH,OAGIjsL,QAHJ,IAGIA,GAHJ,UAGIA,EAAMuoG,2BAHV,iBAGI,EAA2BvjG,gBAH/B,aAGI,EAAqCnV,KAAI,SAAC9S,GAAD,MAAc,CACrDA,EAASiwB,SACTjwB,EAASkwB,eALf,OAQEjN,QARF,IAQEA,OARF,EAQEA,EAAMuoG,oBAAoBvjG,SAC1B,QACF7oB,EACN4yM,cAAa,OAAE/uL,QAAF,IAAEA,OAAF,EAAEA,EAAM+uL,iBAwHzB,SAAS7B,GAAc9iF,GACrB,OAAIA,GAAW,OAASA,EAAU,KACvB,UACAA,GAAW,MAAQA,EAAU,KAC7B,eACAA,GAAW,MAAQA,EAAU,MAC7B,aACAA,GAAW,OAASA,EAAU,MAC9B,iBACAA,GAAW,OAASA,EAAU,MAC9B,YACAA,GAAW,OAASA,EAAU,MAC/B,gBACCA,GAAW,OAASA,EAAU,MAC9B,YAED,cArIZ/W,qBAAU,WACRi7F,GAAe,IAAIzkL,MACnBskL,IAAgB,GAChBljC,YAAW,kBAAMkjC,IAAgB,KAAO,OACvC,CAACrmM,KAEJurG,qBAAU,WACJ7kF,EAAS3X,OAAS,EACpBhH,GAAIs/K,YACF,CAAC,CAAC3gK,EAASA,EAAS3X,OAAS,GAAGmW,SAAUwB,EAASA,EAAS3X,OAAS,GAAGoW,YACxE,CACE4lK,mBAAoB,CAAC,IAAK,GAC1BC,eAAgB,CAAC,EAAG,IACpBpG,QAAS,GACTqG,QAAS,KAAOljL,GAAImjL,YAGrB6b,OACJ,CAACrgL,IAEJ6kF,qBAAU,WACHqvD,KACHmsC,KACAH,QAED,CAAChsC,KAEJrvD,qBAAU,YACR,OAAIrzF,QAAJ,IAAIA,OAAJ,EAAIA,EAAM8C,SACR4nJ,EAAM,CACJh/E,UAAW,EACC,OAAV2xG,QAAU,IAAVA,OAAA,EAAAA,EAAY3xG,WAAZ,OACI2xG,QADJ,IACIA,OADJ,EACIA,EAAY3xG,UAAU,GACtBqK,OAASswE,QAAQ,OAAOrwE,OAAO,qBACzB,OAAVqnG,QAAU,IAAVA,OAAA,EAAAA,EAAY3xG,WAAZ,OACI2xG,QADJ,IACIA,OADJ,EACIA,EAAY3xG,UAAU,GACtBqK,OAASuwE,MAAM,OAAOtwE,OAAO,qBAEnCg5G,wBAAwB,EACxBC,0BAA0B,EAC1BC,8BAA8B,EAC9BC,iBAAiB,MAGpB,QAACnvL,QAAD,IAACA,OAAD,EAACA,EAAM8C,OAAQqqL,IAElB95F,qBAAU,WAAO,IAAD,GAER,OAAJrzF,QAAI,IAAJA,OAAA,EAAAA,EAAM8C,SACNqqL,GACA9P,GACiC,KAAjC,UAAAA,EAAW3xG,iBAAX,eAAsB70E,cACkB1a,IAA9B,OAAVkhM,QAAU,IAAVA,OAAA,EAAAA,EAAY4R,2BAEZ54L,EACEgN,6BAAA,OACErD,QADF,IACEA,OADF,EACEA,EAAM8C,OACNu6K,EAAW4R,yBAA2B,EAAI,EAC1C5R,EAAW3xG,UAAU,GACrB2xG,EAAW3xG,UAAU,GACrBhqF,SAIL,QAACse,QAAD,IAACA,OAAD,EAACA,EAAM8C,OAAQqqL,EAAmBiB,GAAlC,OAA0C/Q,QAA1C,IAA0CA,OAA1C,EAA0CA,EAAY4R,2BAEzD57F,qBAAU,WACRs7F,MAGM,OAAJ3uL,QAAI,IAAJA,OAAA,EAAAA,EAAM8C,SACNsqL,GACAA,EAAwBhkC,MACxBgkC,EAAwB1oL,WACc,KAAtC0oL,EAAwB1oL,WACxB0oL,EAAwBzoL,SACY,KAApCyoL,EAAwBzoL,SACxByoL,EAAwB3oL,cAExB,OAAI2oL,QAAJ,IAAIA,OAAJ,EAAIA,EAAyBgC,eAC3BpB,EAAcloC,QAAUupC,aAAY,WAClCh5L,EACEgN,6BACErD,EAAK8C,OACLsqL,EAAwB3oL,WACxB2oL,EAAwB1oL,UACxB0oL,EAAwBzoL,QACxByoL,EAAwBxoL,WAAaljB,SAGxC0rM,EAAwBgC,cAG7B/4L,EACEgN,6BACErD,EAAK8C,OACLsqL,EAAwB3oL,WACxB2oL,EAAwB1oL,UACxB0oL,EAAwBzoL,QACxByoL,EAAwBxoL,WAAaljB,UAI1C,QACDse,QADC,IACDA,OADC,EACDA,EAAM8C,OADL,OAEDsqL,QAFC,IAEDA,OAFC,EAEDA,EAAyBhkC,KAFxB,OAGDgkC,QAHC,IAGDA,OAHC,EAGDA,EAAyBgC,YAHxB,OAIDhC,QAJC,IAIDA,OAJC,EAIDA,EAAyB3oL,WAJxB,OAKD2oL,QALC,IAKDA,OALC,EAKDA,EAAyB1oL,UALxB,OAMD0oL,QANC,IAMDA,OANC,EAMDA,EAAyBzoL,QANxB,OAODyoL,QAPC,IAODA,OAPC,EAODA,EAAyBxoL,YAG3ByuF,qBAAU,YACR,OAAI+5F,QAAJ,IAAIA,OAAJ,EAAIA,EAAyB0B,qBAAoBJ,OAChD,QAACtB,QAAD,IAACA,OAAD,EAACA,EAAyB0B,qBAwB7B,IAAMQ,GAAmB,CACvBnsM,MAAO7L,EAAK0E,cAAc,CAAEC,GAAI,4CAChCqlM,SAAS,OAAD,OAASthL,EAAK8C,OAAd,cAA0B9C,EAAKsF,UACvClT,SACGirL,EAAW3xG,UAAY2xG,EAAW3xG,UAAU,GAAK,IAClD,OACC2xG,EAAW3xG,UAAY2xG,EAAW3xG,UAAU,GAAK,IACpD6jH,SAAU,CACR,CACE/qM,MAAOgrM,mBAAO,OACZxvL,QADY,IACZA,GADY,UACZA,EAAMuoG,2BADM,aACZ,EAA2BC,aAAa34G,KAAI,SAAC9S,GAAD,mBAAC,eACxCA,GADuC,IAE1C0rH,UAAW1rH,EAAS0rH,WAAanxH,EAAK0E,cAAc,CAAEC,GAAI,iBAC1DwzM,cAAuDp7F,GACvDz/G,MAA0B,OAAnBmI,EAASnI,MAAiB,GAAKmI,EAASnI,MAC/C8pI,OAA4B,OAApB3hI,EAAS2hI,OAAkB,GAAK3xG,WAAWhwB,EAAS2hI,QAAQzsC,QAAQ,GAC5Ey9G,SAAoC,IAA1B3yM,EAAS4yM,aAAqB,YAAc,eAExD,UACA,OAEFzzM,KAAM,2BAER,CACEsI,MAAO,CACL,CACEopM,kBAAmB5tL,EAAK4tL,kBACxBD,kBAAmB3tL,EAAK2tL,oBAG5BzxM,KAAM,WAER,CACEsI,MAAO,CACL,CACErQ,eAAgB7F,GAAK6F,iBAGzB+H,KAAM,QAER,CACEsI,MAAO,CACL,CACEorM,qBAAoB,OAAE5vL,QAAF,IAAEA,GAAF,UAAEA,EAAMuoG,2BAAR,aAAE,EAA2Br0H,WAGrDgI,KAAM,2BAKZ,OACE,sCACiC,OAA9BqyM,SAA8B,IAA9BA,IAAA,UAAAA,GAAgCtpL,iBAAhC,eAA2CpO,QAAS,IAClDs2L,IAAiB,OAAIC,QAAJ,IAAIA,OAAJ,EAAIA,EAAyBhkC,UACvB,OAAvBgkC,QAAuB,IAAvBA,OAAA,EAAAA,EAAyBhkC,MAAzB,OACGgkC,QADH,IACGA,OADH,EACGA,EAAyB4B,uBAD5B,OAEG3R,QAFH,IAEGA,OAFH,EAEGA,EAAY2R,yBAChBT,GAA+BtpL,UAAUpV,KAAI,SAAC9S,EAAUgW,GAAX,iBACtB,IAArBhW,EAASqlH,QACP,cAAC,GAAD,CAMEmzE,aAAc,IACdsC,aAAa,EACbyU,cAAevvM,EAASqtH,QACxBmiF,eAAe,SACf7vM,KAAMw4I,EAAEK,QAAQ,CACd1kC,UAAW,kBACXhQ,KAAK,mEAAD,OACmBrO,EADnB,+GAGJ4nC,SAAU,CAAC,GAAI,IACfob,WAAY,CAAC,GAAI,MAEnBz4I,SAAU,CAACA,EAASiwB,SAAUjwB,EAASkwB,WACvCsjK,cAAe,CACbC,MAAO,cApBX,SAuBE,cAACgF,EAAA,EAAD,CACEuC,UACGvpK,EAAS3X,OAAS,GAAK2X,EAASA,EAAS3X,OAAS,GAAG5a,KAAOc,EAASd,KAC/C,OAAvBmxM,QAAuB,IAAvBA,OAAA,EAAAA,EAAyB0B,sBAAuB/xM,EAASd,GAH7D,SAME,gCACE,mBAAGy0G,MAAO,CAAE8D,SAAU,QAAtB,SACGze,KAAOh5F,EAASmgH,SAASlnB,OAAO,sBAEnC,uBACA,mBAAG0a,MAAO,CAAE8D,SAAU,QAAtB,SAAiCz3G,EAAS0rH,YAC1C,uBANF,OAQG1rH,QARH,IAQGA,GARH,UAQGA,EAAUmgC,oBARb,aAQG,EAAwB7qC,MAAM,KAAKwd,KAAI,SAACioF,GACvC,OACE,mBAAG4Y,MAAO,CAAE8D,SAAU,OAAQy4F,OAAQ,MAAO14F,WAAY,QAAzD,SAAoEzc,aAvC9E,UACU/kF,EADV,YAEKyb,EAAS3X,OAAS,GAAK2X,EAASA,EAAS3X,OAAS,GAAG5a,KAAOc,EAASd,KAC/C,OAAvBmxM,QAAuB,IAAvBA,OAAA,EAAAA,EAAyB0B,sBAAuB/xM,EAASd,KA4C3D,IADF,iBAACmxM,QAAD,IAACA,OAAD,EAACA,EAAyByC,iDAA1B,WAEE,cAACxZ,EAAA,EAAD,CAMEd,aAAc,IACdsC,aAAa,EACbn7L,KAAMw4I,EAAEK,QAAQ,CACd1kC,UAAW,kBACXhQ,KAAM8lF,yBACJ,qBACE91E,UAAU,mDACVH,MAAO,CACLk8F,WAAY,QACZppM,MAAO,GACPwtG,OAAQ,GACR67F,QAAS,EACTC,aAAc,OACdC,YAAa,QACbC,YAAY,IAAD,OAAMjwM,EAAS6rH,aAT9B,SAYE,cAAC,KAAD,CACElsH,KAAI,gBAAWK,EAASqlH,SACxBr6G,MAAK,WAAMhL,EAAS6rH,YACpB9gH,KAAM,QAIZsyH,SAAU,CAAC,GAAI,IACfob,WAAY,CAAC,GAAI,MAEnBz4I,SAAU,CAACA,EAASiwB,SAAUjwB,EAASkwB,WACvCsjK,cAAe,CACbC,MAAO,cAnCX,SAsCE,eAACgF,EAAA,EAAD,CACEuC,UACGvpK,EAAS3X,OAAS,GAAK2X,EAASA,EAAS3X,OAAS,GAAG5a,KAAOc,EAASd,KAC/C,OAAvBmxM,QAAuB,IAAvBA,OAAA,EAAAA,EAAyB0B,sBAAuB/xM,EAASd,GAH7D,UAME,mBAAGy0G,MAAO,CAAE8D,SAAU,QAAtB,SACGze,KAAOh5F,EAASmgH,SAASlnB,OAAO,sBAEnC,uBACA,mBAAG0a,MAAO,CAAE8D,SAAU,QAAtB,SAAiCz3G,EAAS0rH,YAC1C,uBACA,mBAAG/X,MAAO,CAAE8D,SAAU,QAAtB,gBACGz3G,QADH,IACGA,GADH,UACGA,EAAUmgC,oBADb,aACG,EAAwB7qC,MAAM,KAAKwd,KAAI,SAACioF,GACvC,OACE,mBAAG4Y,MAAO,CAAE8D,SAAU,OAAQy4F,OAAQ,MAAO14F,WAAY,QAAzD,SAAoEzc,aArD9E,UACU/kF,EADV,YAEKyb,EAAS3X,OAAS,GAAK2X,EAASA,EAAS3X,OAAS,GAAG5a,KAAOc,EAASd,KAC/C,OAAvBmxM,QAAuB,IAAvBA,OAAA,EAAAA,EAAyB0B,sBAAuB/xM,EAASd,SA2DtC,OAA9BsyM,SAA8B,IAA9BA,IAAA,UAAAA,GAAgCzpL,uBAAhC,eAAiDjO,QAAS,IACxDs2L,IAAiB,OAAIC,QAAJ,IAAIA,OAAJ,EAAIA,EAAyBhkC,UACvB,OAAvBgkC,QAAuB,IAAvBA,OAAA,EAAAA,EAAyBhkC,MAAzB,OACGgkC,QADH,IACGA,OADH,EACGA,EAAyB8B,8BACf,OAAV7R,QAAU,IAAVA,OAAA,EAAAA,EAAY4R,4BAAZ,OAAwC5R,QAAxC,IAAwCA,OAAxC,EAAwCA,EAAY6R,gCACxDX,GAA+BzpL,gBAAgBjV,KAAI,SAAC9S,EAAUgW,GAAX,OACjD,cAACsjL,EAAA,EAAD,CAMEd,aAAc,IACdsC,aAAa,EACbn7L,KAAMw4I,EAAEK,QAAQ,CACd1kC,UAAW,kBACXhQ,KAAM8lF,yBACJ,cAAC,KAAD,CACEjqL,KAAMymJ,aAAyBpmJ,EAAS4nB,QAAS5nB,EAASmgH,SAC1Dp1G,KAAM,MAGVsyH,SAAU,CAAC,GAAI,IACfob,WAAY,CAAC,GAAI,MAEnBz4I,SAAU,CAACA,EAASiwB,SAAUjwB,EAASkwB,WACvCsjK,cAAe,CACbC,MAAO,cArBX,SAwBE,eAACgF,EAAA,EAAD,CACEuC,UACGvpK,EAAS3X,OAAS,GAAK2X,EAASA,EAAS3X,OAAS,GAAG5a,KAAOc,EAASd,KAC/C,OAAvBmxM,QAAuB,IAAvBA,OAAA,EAAAA,EAAyB0B,sBAAuB/xM,EAASd,GAH7D,UAME,mBAAGy0G,MAAO,CAAE8D,SAAU,QAAtB,SACGze,KAAOh5F,EAASmgH,SAASlnB,OAAO,sBAEnC,uBACA,mBAAG0a,MAAO,CAAE8D,SAAU,QAAtB,mBACMl9G,EAAK0E,cAAc,CAAEC,GAAI,mBAD/B,aACuDgnJ,aACnDlmJ,EAAS4nB,QACT5nB,EAASmgH,QACT5lH,MAGJ,uBACA,mBAAGo5G,MAAO,CAAE8D,SAAU,QAAtB,SAAiCz3G,EAASmgC,mBA1C9C,UACUnqB,EADV,YAEKyb,EAAS3X,OAAS,GAAK2X,EAASA,EAAS3X,OAAS,GAAG5a,KAAOc,EAASd,KAC/C,OAAvBmxM,QAAuB,IAAvBA,OAAA,EAAAA,EAAyB0B,sBAAuB/xM,EAASd,SAwDlC,OAA9BsyM,SAA8B,IAA9BA,IAAA,UAAAA,GAAgCvpL,gBAAhC,eAA0CnO,QAAS,IACjDs2L,IAAiB,OAAIC,QAAJ,IAAIA,OAAJ,EAAIA,EAAyBhkC,QAC7C,cAAC+iC,GAAA,EAAD,CACE7b,YAAa,CAAEvoL,MAAOyqF,EAAS++F,OAAM,iBAAE6b,QAAF,IAAEA,OAAF,EAAEA,EAAyB0C,iBAA3B,QAAwC,GAC7E7qL,UAAWspL,GAA+BvpL,SAASnV,KAAI,SAAC83L,GAAD,MAAW,CAChEA,EAAM36K,SACN26K,EAAM16K,cAERsjK,cAAe,CACbC,MAAO,iBAIgB,OAA9B+d,SAA8B,IAA9BA,IAAA,UAAAA,GAAgCQ,qBAAhC,eAA+Cl4L,QAAS,IACS,KAAzC,OAAvBu2L,QAAuB,IAAvBA,OAAA,EAAAA,EAAyB2C,sCACxB5C,IAAiB,OAAIC,QAAJ,IAAIA,OAAJ,EAAIA,EAAyBhkC,QAC/CmlC,GAA+BQ,cAAcl/L,KAAI,SAAC9S,EAAUgW,GAAX,OAC/C,cAACsjL,EAAA,EAAD,CAMEd,aAAc,IACdsC,aAAa,EACbn7L,KAAMw4I,EAAEK,QAAQ,CACd1kC,UAAW,kBACXhQ,KAAM8lF,yBACJ,qBACE91E,UAAU,mDACVH,MAAO,CACLk8F,WAAY,QACZppM,MAAO,GACPwtG,OAAQ,GACR67F,QAAS,EACTC,aAAc,OACdC,YAAa,QACbC,YAAY,IAAD,OAAMjwM,EAAS6rH,aAT9B,SAYE,cAAC,KAAD,CACElsH,KAAI,gBAAWK,EAASqlH,SACxBr6G,MAAK,WAAMhL,EAAS6rH,YACpB9gH,KAAM,QAIZsyH,SAAU,CAAC,GAAI,IACfob,WAAY,CAAC,GAAI,MAEnBz4I,SAAU,CAACA,EAASiwB,SAAUjwB,EAASkwB,WACvCsjK,cAAe,CACbC,MAAO,cAnCX,SAsCE,eAACgF,EAAA,EAAD,CACEuC,UACGvpK,EAAS3X,OAAS,GAAK2X,EAASA,EAAS3X,OAAS,GAAG5a,KAAOc,EAASd,KAC/C,OAAvBmxM,QAAuB,IAAvBA,OAAA,EAAAA,EAAyB0B,sBAAuB/xM,EAASd,GAH7D,UAME,mBAAGy0G,MAAO,CAAE8D,SAAU,QAAtB,SACGze,KAAOh5F,EAASmgH,SAASlnB,OAAO,sBAEnC,uBACA,mBAAG0a,MAAO,CAAE8D,SAAU,QAAtB,SACGl9G,EAAK0E,cAAc,CAClBC,GAAG,sBAAD,OAAwBc,EAASqlH,aAGvC,uBACA,mBAAG1R,MAAO,CAAE8D,SAAU,QAAtB,SAAiCz3G,EAASmgC,mBAtD9C,UACUnqB,EADV,YAEKyb,EAAS3X,OAAS,GAAK2X,EAASA,EAAS3X,OAAS,GAAG5a,KAAOc,EAASd,KAC/C,OAAvBmxM,QAAuB,IAAvBA,OAAA,EAAAA,EAAyB0B,sBAAuB/xM,EAASd,QAuDjE,cAAC,KAAD,CACE40G,UAAU,sBACV+vF,iBAAkB,kCAClB5lE,OAAQmyE,EACRhqM,MAAOA,EACPm+L,SAAQ,cAASthL,EAAK8C,OAAd,cAA0B9C,EAAKsF,UACvC9hB,MAAOsE,GACP+4L,eAAgB,WACVpB,GAAkBA,KAR1B,SAWE,qCACE,cAACX,GAAA,EAAD,UACE,cAACplB,GAAA,EAAD,CAAK9T,GAAG,KAAR,SACG5lJ,IAAI,OAAIA,QAAJ,IAAIA,OAAJ,EAAIA,EAAM8C,SAAU9C,EAAKztB,iBAA7B,OAA+CytB,QAA/C,IAA+CA,OAA/C,EAA+CA,EAAM5sB,YACpD,cAAC,KAAD,CACE6gH,QAASA,EACT/3G,KAAK,eACLm8K,aAAY,OAAEr4J,QAAF,IAAEA,OAAF,EAAEA,EAAM8C,OACpB82J,OAAQ,gBAAGrnE,EAAH,EAAGA,MAAOimE,EAAV,EAAUA,WAAV,OACN,cAACw3B,GAAA,EAAD,CACEz9F,MAAOA,EACPC,WAAYgmE,EACZv8K,GAAI,eACJg7F,UAAQ,EACR2d,YAAat9G,EAAK0E,cAAc,CAAEC,GAAI,qBACtC9M,WAAY,CACViE,WAAU,OAAE4sB,QAAF,IAAEA,OAAF,EAAEA,EAAM5sB,WAClBb,eAAc,OAAEytB,QAAF,IAAEA,OAAF,EAAEA,EAAMztB,gBAExB0pJ,aAAc,CACZ7oJ,WAAU,OAAE4sB,QAAF,IAAEA,OAAF,EAAEA,EAAM5sB,WAClBb,eAAc,OAAEytB,QAAF,IAAEA,OAAF,EAAEA,EAAMztB,gBAExBqgH,kBAAiB,OAAE5yF,QAAF,IAAEA,OAAF,EAAEA,EAAM8C,YAK/B,OAIN,eAACg8K,GAAA,EAAD,WACE,cAACplB,GAAA,EAAD,CAAK9T,GAAI,EAAT,SACE,cAAC,KAAD,CACE3xD,QAASA,EACT/3G,KAAK,YACLm8K,aAAc,CACZtiF,OAASswE,QAAQ,OAAOrwE,OAAO,oBAC/BD,OAASuwE,MAAM,OAAOtwE,OAAO,qBAE/BS,MAAO,CAAEQ,UAAU,GACnB2iF,OAAQ,gBAAGrnE,EAAH,EAAGA,MAAOimE,EAAV,EAAUA,WAAV,OACN,cAAC9T,GAAA,EAAD,CACEnyD,MAAOA,EACPC,WAAYgmE,EACZ5T,QAAS7uE,OAASuwE,MAAM,OAAOtwE,OAAO,oBACtCiB,UAAQ,EACR6tE,SAAO,EACPE,YAAU,SAKlB,cAAC0U,GAAA,EAAD,CAAK9T,GAAI,EAAG/0D,UAAU,QAAtB,SACE,cAACuwF,GAAA,EAAO3mE,OAAR,CACE5pB,UAAU,OACV9oG,MAAM,UAEN2yH,QAASolE,GAAa,WACpBuO,GAAU,IAAIxkL,SALlB,SAQE,cAAC,KAAD,CAAkB5tB,GAAG,sBAGzB,cAACy9K,GAAA,EAAD,CAAK9T,GAAI,EAAG/0D,UAAW,gCAAvB,SACE,cAAC,KAAD,CACEoD,QAASA,EACT/3G,KAAM,yBACNm8K,cAAc,EACduB,OAAQ,gBAAGrnE,EAAH,EAAGA,MAAH,OACN,cAACmoE,GAAA,EAAD,CACEnoE,MAAOA,EACP4nB,eAAgB7iI,EAAK0E,cAAc,CAAEC,GAAI,iCACzCm0G,MAAO,cAAC,KAAD,CAAQroG,MAAOyqF,EAAS1qF,KAAM,YAK7C,cAAC4xK,GAAA,EAAD,CAAK9T,GAAI,EAAG/0D,UAAW,gCAAvB,SACE,cAAC,KAAD,CACEoD,QAASA,EACT/3G,KAAM,2BACNm8K,cAAc,EACduB,OAAQ,gBAAGrnE,EAAH,EAAGA,MAAH,OACN,cAACmoE,GAAA,EAAD,CACEnoE,MAAOA,EACP4nB,eAAgB7iI,EAAK0E,cAAc,CAAEC,GAAI,mCACzCm0G,MAAO,cAAC,KAAD,CAAM1zG,KAAM,UAAWqL,MAAOyqF,EAAS1qF,KAAM,aAKjD,OAAVu1L,QAAU,IAAVA,OAAA,EAAAA,EAAY4R,2BACX,cAACv1B,GAAA,EAAD,CAAK9T,GAAI,EAAG/0D,UAAW,gCAAvB,SACE,cAAC,KAAD,CACEoD,QAASA,EACT/3G,KAAM,+BACNm8K,cAAc,EACduB,OAAQ,gBAAGrnE,EAAH,EAAGA,MAAH,OACN,cAACmoE,GAAA,EAAD,CACEnoE,MAAOA,EACP4nB,eAAgB7iI,EAAK0E,cAAc,CACjCC,GAAI,uCAENm0G,MAAO,cAAC,KAAD,CAAM1zG,KAAM,UAAWqL,MAAOyqF,EAAS1qF,KAAM,YA8B7D46J,IACC,cAACgX,GAAA,EAAD,CAAK7oE,UAAW,OAAQ+0D,GAAI,GAA5B,SACE,qBAAK/0D,UAAW,qCAAhB,SACE,cAAC4pE,GAAA,EAAD,CAAS1yK,MAAM,iBAInB26J,IACA,eAACgX,GAAA,EAAD,CAAK9T,GAAI,GAAT,UACE,oBAAI/0D,UAAW,2BACf,cAAC+xF,GAAA,EAAD,CAAO/xF,UAAU,oBAAjB,mBACMv5G,EAAK0E,cAAc,CAAEC,GAAI,mBAD/B,OAGA,cAAC2mM,GAAA,EAAD,CAAO/xF,UAAU,0BAAjB,gBACG7wF,QADH,IACGA,GADH,UACGA,EAAMuoG,2BADT,aACG,EAA2B8B,iBAE9B,oBAAIxZ,UAAW,+BAGjB6xD,KAAkB,OAAJ1iJ,QAAI,IAAJA,GAAA,UAAAA,EAAMuoG,2BAAN,mBAA2BtjG,iBAA3B,eAAsCpO,QAAS,GAC7D,eAAC6iK,GAAA,EAAD,CAAK9T,GAAI,GAAT,UACE,cAAChqB,GAAA,EAAD,CACEC,QAAS,CACP,cAAC9hB,GAAA,EAAD,CACE99H,GAAI,WACJS,KAAe,UAAToL,GAAmB,WAAa,WACtCoyH,YAAa,WACX+zE,GAAoB,UAATnmM,GAAmB,QAAU,UAE1CqyH,eAAgB7iI,EAAK0E,cAAc,CACjCC,GAAa,UAAT6L,GAAmB,qBAAuB,yBAGlD,cAACmoM,GAAA,EAAD,CACE91E,eAAgB,oBAChB+1E,YAAa,mCACbh2E,YAAa,aACbo1E,iBAAkBA,GAClBa,oBAAoB,EACpBC,WAAY,mCAIjBlC,IACC,cAACjnC,GAAA,EAAD,CACEhrK,GAAI,sDACJmrK,mBAAmB,EACnBG,SAAUA,GACVkB,aAAc,CACZ+B,kBAA4B,UAAT1iK,GAAmB,EAAI,EAC1C2iK,UAAW,aAEbx1E,QACW,UAATntF,GACE4lM,EACGvjL,QAAO,SAAAitE,GAAM,OAAuB,IAAnBA,EAAOijC,SAA0C,cAArBjjC,EAAO3B,cACpD5lF,KAAI,SAAAunF,GAAM,OAAIA,KACfu1G,EAEN7kC,WAAY,kBAAMC,EAAe,KACjChuK,KAAI,OAAEimB,QAAF,IAAEA,GAAF,UAAEA,EAAMuoG,2BAAR,aAAE,EAA2BC,aAAa34G,KAAI,SAAC9S,GAAD,mBAAC,eAC9CA,GAD6C,IAEhD0rH,UAAW1rH,EAAS0rH,WAAanxH,EAAK0E,cAAc,CAAEC,GAAI,iBAC1DrH,MAA0B,OAAnBmI,EAASnI,MAAiB,GAAKmI,EAASnI,MAC/C8pI,OAAS7lC,MAAM97F,EAAS2hI,SAA+B,OAApB3hI,EAAS2hI,OAAiB,GAAK3hI,EAAS2hI,YAE7ElwG,SAAUA,EACVu5I,eAAgBA,mBAWpC2kC,GAAyC51F,aAAe,CACtD2oF,iBAAkB,kBAAM,MACxB0N,mBAAmB,EACnBC,wBAAyB,CAAEhkC,MAAM,GACjCjmK,MAAO,GACP6c,KAAM,IAGO0sL,U,mDCpgCTz3G,GAAyB,CAC7B,CACEP,UAAW,aACXe,WAAY,cACZ1nG,KAAM,WACNugL,aAAc,oBAEhB,CACE55E,UAAW,gBACXe,WAAY,sBACZm5E,UAAW,SACXP,eAAgBsY,yBACd,sBACEj2E,MAAO,CACLC,QAAS,OACT4qE,WAAY,SACZC,eAAgB,SAChBtqE,UAAW,OALf,SAQE,cAAC,KAAD,CAAMx0G,KAAM,uBAAwBoL,KAAM,QAG9C0mK,SAAU,SAACtN,GAAD,OACR,iCACE,cAAC,KAAD,CAAMxkK,KAAM,WAAYoL,KAAM,GAAI4oG,MAAO,CAAEO,YAAa,MACxD,cAAC,KAAD,CACEv0G,KAA6B,MAAvBwkK,EAAOmvC,YAAsB,YAAc,aACjDvoM,KAAM,GACN4oG,MAAO,CAAEO,YAAa,MAExB,cAAC,KAAD,CACEv0G,KAAMhF,eAAUsE,cAAc,CAAEC,GAAG,cAAD,OAAgBilK,EAAOr4C,QAAvB,WAClC/gH,KAAM,OATCo5J,EAAOovC,YActB,CACE57G,UAAW,wBACXe,WAAY,cAEd,CACEf,UAAW,aACXe,WAAY,eAEd,CACEf,UAAW,0BACXe,WAAY,gBAEd,CACEf,UAAW,WACXe,WAAY,cAEd,CACEf,UAAW,SACXe,WAAY,eACZ+4E,SAAU,SAACtN,GACT,IAAMrtD,EAAS08F,aAAgBrvC,EAAOsvC,aACtC,GAAe,OAAX38F,EACF,OAAO,6BAGT,IAAQ9rG,EAAsB8rG,EAAtB9rG,MAAOrL,EAAem3G,EAAfn3G,KAAMC,EAASk3G,EAATl3G,KAErB,OACE,eAAC8zM,GAAA,EAAD,CAAOh1B,MAAI,EAAC1zK,MAAK,gBAAWA,GAAS2oG,MAAO,CAAEC,QAAS,eAAgB6D,SAAU,QAAjF,UACE,cAAC,KAAD,CAAM93G,KAAMA,EAAMm0G,UAAW,QAAS/oG,KAAM,GAAIC,MAAOA,IACtDpL,OAKT,CACE+3F,UAAW,WACXe,WAAY,iBACZ1nG,KAAM,WACNugL,aAAc,qBAYZoiC,GAAoD,SAAC,GAMpD,IALLjR,EAKI,EALJA,iBACA0N,EAII,EAJJA,kBACAhqM,EAGI,EAHJA,MACAm+L,EAEI,EAFJA,SACAthL,EACI,EADJA,KAGA,EAAyC6/K,aAAyC,CAChF8Q,cAAe,CACbjlH,UAAW,CACTqK,OAASswE,QAAQ,OAAOrwE,OAAO,oBAC/BD,OAASuwE,MAAM,OAAOtwE,OAAO,wBAJ3Bie,EAAR,EAAQA,QAAS8rF,EAAjB,EAAiBA,MAAOD,EAAxB,EAAwBA,aAQlBxoM,EAAkBG,cAGhBi0F,EAAcq0G,IAAdr0G,UACR,cAA6BA,EAA7B,GAAOhnE,EAAP,KAAkBC,EAAlB,KAGA,EAAiEisL,aAC/DlsL,EACAC,EAFsF,OAGtF3E,QAHsF,IAGtFA,OAHsF,EAGtFA,EAAM8C,QACN,kBAAMqqL,KAJA0D,EAAR,EAAQA,cAAeC,EAAvB,EAAuBA,wBAAyBC,EAAhD,EAAgDA,aAOxCxpC,EAAaypC,aAAY,CAACtlH,IAA1B67E,SAEA/qJ,EAAqBw9G,aAAY,SAACnsI,GAAW,IAAD,IAC5CojN,EAAqB5hM,4BAAwCxhB,GAInE,MAAO,CAAE2uB,iBAHa,oBACpBlpB,mBAAsCzF,EAAOojN,UADzB,aACpB,EAAkEz0L,wBAD9C,QACkE,OAHlFA,iBAQF00L,EAAmBrvF,mBAAQ,WAC/B,OAAOgvF,EAAchhM,KAAI,SAACshM,GACxB,OAAO,2BACFA,GADL,IAEEC,WAAY/6G,aAAqB86G,EAAGC,YAChCr7G,KAAOo7G,EAAGC,YAAYp7G,OAAO,oBAC7B,GACJq7G,SAAUh7G,aAAqB86G,EAAGE,UAC9Bt7G,KAAOo7G,EAAGE,UAAUr7G,OAAO,oBAC3B,GACJl4F,OACqB,IAAnBqzM,EAAGX,YACCl5M,EAAK0E,cAAc,CAAEC,GAAI,kBACN,IAAnBk1M,EAAGX,YACHl5M,EAAK0E,cAAc,CAAEC,GAAI,eACN,IAAnBk1M,EAAGX,YACHl5M,EAAK0E,cAAc,CAAEC,GAAI,oBACzB,GACNq1M,wBAAyBH,EAAGjsL,eACxB5tB,EAAK0E,cAAc,CAAEC,GAAG,wBAAD,OAA0Bk1M,EAAGjsL,kBACpD,UAGP,CAAC2rL,EAAev5M,IAEbg4M,EAAmB,CACvBnsM,MAAO7L,EAAK0E,cAAc,CAAEC,GAAI,6BAChCqlM,SAAUhqM,EAAK0E,cAAc,CAAEC,GAAI,+BAAzB,OAA2DugB,QAA3D,IAA2DA,IAAoB,IACzFpK,QAASsS,EAAY,MAAQC,EAC7B4qL,SAAU,CACR,CACE/qM,MAAO0sM,EACPh1M,KAAM,mBAWZ,OANAm3G,qBAAU,WACJ85F,IAAsB2D,GACxBC,MAED,CAAC5D,IAGF,mCACE,cAAC,KAAD,CACEt8F,UAAU,sBACV+vF,iBAAkB,kCAClB5lE,OAAQmyE,EACRhqM,MAAOA,EACPm+L,SAAUA,EACV99L,MAAO,QACPq9L,eAAgB,WACVpB,GAAkBA,KAR1B,SAWE,qCACE,eAACX,GAAA,EAAD,WACE,cAACplB,GAAA,EAAD,CAAK9T,GAAG,KAAR,SACE,cAAC,KAAD,CACE3xD,QAASA,EACT/3G,KAAK,YACLu6F,MAAO,CAAEQ,UAAU,GACnB2iF,OAAQ,gBAAGrnE,EAAH,EAAGA,MAAOimE,EAAV,EAAUA,WAAV,OACN,cAAC9T,GAAA,EAAD,CACEnyD,MAAOA,EACPC,WAAYgmE,EACZvhF,UAAQ,EACR2tE,QAAS7uE,OAASuwE,MAAM,OAAOtwE,OAAO,oBACtC8uE,SAAO,SAKf,cAAC4U,GAAA,EAAD,CAAK9T,GAAG,IAAI/0D,UAAU,QAAtB,SACE,cAACuwF,GAAA,EAAO3mE,OAAR,CACE5pB,UAAU,OACV9oG,MAAM,UAEN2yH,QAASolE,GAAa,WACpBiR,OALJ,SAQE,cAAC,KAAD,CAAkB90M,GAAG,yBAI1B60M,EACC,cAAChS,GAAA,EAAD,UACE,cAACplB,GAAA,EAAD,CAAK9T,GAAG,KAAK/0D,UAAU,eAAvB,SACE,cAAC4pE,GAAA,EAAD,CAAS1yK,MAAM,UAAUD,KAAK,WAIlC,qCACE,cAAC8zI,GAAA,EAAD,CACEC,QAAS,CACP,cAACo0D,GAAA,EAAD,CACE91E,eAAgB,oBAChB+1E,YAAa,+BACbh2E,YAAa,aACbo1E,iBAAkBA,EAClBa,oBAAoB,EACpBC,WAAY,iCAIlB,cAACnpC,GAAA,EAAD,CACEhrK,GAAE,0BACFg5F,QAASA,GACTl7F,KAAM82M,EAAchhM,KAAI,SAACqxJ,GAAD,mBAAC,eACpBA,GADmB,IAEtBkwC,WAAYr7G,KAAO,IAAIlsE,KAAKq3I,EAAOkwC,aAAap7G,OAAO,oBACvDl4F,OACyB,IAAvBojK,EAAOsvC,YACHl5M,EAAK0E,cAAc,CAAEC,GAAI,kBACF,IAAvBilK,EAAOsvC,YACPl5M,EAAK0E,cAAc,CAAEC,GAAI,eACF,IAAvBilK,EAAOsvC,YACPl5M,EAAK0E,cAAc,CAAEC,GAAI,oBACzB,GACNq1M,wBAAyBpwC,EAAOh8I,eAC5B5tB,EAAK0E,cAAc,CAAEC,GAAG,wBAAD,OAA0BilK,EAAOh8I,kBACxD,QAENkiJ,mBAAmB,EACnBG,SAAUA,eAU1BmpC,GAAuC55F,aAAe,CACpD2oF,iBAAkB,kBAAM,MACxB0N,mBAAmB,EAEnBhqM,MAAO,GACP6c,KAAM,IAGO0wL,U,0CC9QTa,GAA+B,SAACrtM,GACpC,IAAQu7L,EAA8Cv7L,EAA9Cu7L,iBAAkB0N,EAA4BjpM,EAA5BipM,kBAAmBntL,EAAS9b,EAAT8b,KAG7C,EAAgD6/K,eAAxC5rF,EAAR,EAAQA,QAAS8rF,EAAjB,EAAiBA,MAAOD,EAAxB,EAAwBA,aAAcp1B,EAAtC,EAAsCA,MAChCpzK,EAAOG,cACP4e,EAAWipI,cAEX+9C,EAAa0C,IACnB,EAA0CzlE,oBAAS,GAAnD,mBAAOk3E,EAAP,KAAsBC,EAAtB,KAEA,EAAiDz3E,aAAY,SAACnsI,GAAD,MAAY,CACvEo+H,eAAgB5+E,iBAA6Bx/C,GAC7C69H,qBAAsBr+E,2BAAuCx/C,OAFvD69H,EAAR,EAAQA,qBAAsBO,EAA9B,EAA8BA,eAMxBylF,EAAY,CAChB,CACEz1M,GAAI,EACJuI,MAAO,EACP4rG,MAAM,KAAD,OAAO94G,EAAK0E,cAAc,CAAEC,GAAI,iBACrCu0G,WAAW,KAAD,OAAOl5G,EAAK0E,cAAc,CAAEC,GAAI,kBAE5C,CACEA,GAAI,EACJuI,MAAO,EACP4rG,MAAM,KAAD,OAAO94G,EAAK0E,cAAc,CAAEC,GAAI,mBACrCu0G,WAAW,KAAD,OAAOl5G,EAAK0E,cAAc,CAAEC,GAAI,oBAE5C,CACEA,GAAI,GACJuI,MAAO,GACP4rG,MAAM,MAAD,OAAQ94G,EAAK0E,cAAc,CAAEC,GAAI,mBACtCu0G,WAAW,MAAD,OAAQl5G,EAAK0E,cAAc,CAAEC,GAAI,oBAE7C,CACEA,GAAI,GACJuI,MAAO,GACP4rG,MAAM,MAAD,OAAQ94G,EAAK0E,cAAc,CAAEC,GAAI,mBACtCu0G,WAAW,MAAD,OAAQl5G,EAAK0E,cAAc,CAAEC,GAAI,qBA0B/C,OAXAo3G,qBAAU,WACRo+F,GAAiB,GACM,KAAnBxlF,QAA4C9vH,IAAnB8vH,GAAmD,OAAnBA,IAC3DwlF,GAAiB,GACjB/mC,EAAM,2BACD2yB,GADA,IAEHp3K,WAAYgmG,QAGf,CAACA,IAGFjsG,GACE,cAAC,WAAD,UACE,cAAC,KAAD,CACE6wF,UAAU,sBACV+vF,iBAAkB,kCAClB5lE,OAAQmyE,EACRhqM,MAAO7L,EAAK0E,cAAc,CAAEC,GAAI,oCAChCqlM,SACE,mCACE,sBAAK5wF,MAAO,CAAEk+D,UAAW,UAAzB,UACE,sCAAO5uJ,QAAP,IAAOA,OAAP,EAAOA,EAAMsF,WACb,uBACA,sCAAOtF,QAAP,IAAOA,OAAP,EAAOA,EAAMkd,oBAInB15B,MAAO,QACPq9L,eAAgB,WACVpB,GAAkBA,IACtBppL,EAASgN,sBAjBb,SAoBE,eAAC,WAAD,WACE,eAACy7K,GAAA,EAAD,WACE,cAACplB,GAAA,EAAD,CAAK9T,GAAG,KAAR,SACE,cAAC,KAAD,CACE3xD,QAASA,EACT/3G,KAAK,aACLm8K,aAAc,EACduB,OAAQ,gBAAGrnE,EAAH,EAAGA,MAAOimE,EAAV,EAAUA,WAAV,OACN,cAAClmE,GAAA,EAAD,CACEC,MAAOA,EACPC,WAAYgmE,EACZv8K,GAAI,mBACJm0G,MAAO94G,EAAK0E,cAAc,CAAEC,GAAI,uBAChCy2G,QAASg/F,SAKjB,cAACh4B,GAAA,EAAD,CAAK9T,GAAG,KAAR,SACE,cAAC+rC,GAAA,EAAD,CACE19F,QAASA,EACTh4G,GAAI,oBACJC,KAAM,YACNy2G,WAAS,EACTqlE,kBAAkB,EAClB/gF,UAAQ,SAIby0B,EACC,cAACozE,GAAA,EAAD,UACE,cAACplB,GAAA,EAAD,CAAK9T,GAAG,KAAK/0D,UAAU,eAAvB,SACE,cAAC4pE,GAAA,EAAD,CAAS1yK,MAAM,UAAUD,KAAK,WAIlC,cAAC,KAAD,CAAUkzH,OAAQw2E,EAAlB,SACE,cAAC1S,GAAA,EAAD,UACE,cAACplB,GAAA,EAAD,CAAK9T,GAAG,KAAR,SACE,cAAC,KAAD,CACE3xD,QAASA,EACT/3G,KAAK,aACL09K,OAAQ,gBAAGrnE,EAAH,EAAGA,MAAOimE,EAAV,EAAUA,WAAV,OACN,cAACliE,GAAA,EAAD,CACE/D,MAAOA,EACPC,WAAYgmE,EACZv8K,GAAI,kBACJm0G,MAAO94G,EAAK0E,cAAc,CACxBC,GAAI,gBAENw6G,UAAQ,EACR7C,iBACE,qCACE,cAACg+F,GAAA,EAAD,CAAqB72E,UAAW,MAAOn8B,OAAQ,sBAA/C,SACGtnG,EAAK0E,cAAc,CAAEC,GAAI,2BAE5B,cAAC,KAAD,CACE6L,KAAM,GACNpL,KAAK,YACLT,GAAI,sBACJy0G,MAAO,CAAEm1D,OAAQ,WACjBnrC,QAAS,kBACPl8B,UAAUqzG,UAAUC,UAApB,OAA8BzU,QAA9B,IAA8BA,OAA9B,EAA8BA,EAAYp3K,6BAYhE,cAAC64K,GAAA,EAAD,CAAKjuF,UAAW,oBAAhB,SACE,eAAC6oE,GAAA,EAAD,CAAK9T,GAAG,KAAR,UACE,cAACw7B,GAAA,EAAO3mE,OAAR,CACE5pB,UAAU,mBACV9oG,MAAM,UAEN2yH,QAASolE,GAAa,SAAC90K,GA5HrC3U,EACEgN,yBAAA,OACErD,QADF,IACEA,OADF,EACEA,EAAM8C,OADR,OAEE9C,QAFF,IAEEA,OAFF,EAEEA,EAAMsF,SAFR,OAGE+3K,QAHF,IAGEA,OAHF,EAGEA,EAAY0U,UACa,MAAf,OAAV1U,QAAU,IAAVA,OAAA,EAAAA,EAAY2U,iBAmHJ,SAME,cAAC,KAAD,CAAkB/1M,GAAG,kBAEvB,cAACmlM,GAAA,EAAO3mE,OAAR,CACE5pB,UAAU,cACV9oG,MAAM,QACN2yH,QAAS,WACPgwC,EAAM,CAAEsnC,WAAY,IACpB37L,EAASgN,sBALb,SAQE,cAAC,KAAD,CAAkBpnB,GAAG,gCAWvCs1M,GAA6Bz6F,aAAe,CAC1C2oF,iBAAkB,kBAAM,MACxB0N,mBAAmB,EACnBntL,KAAM,IAGOuxL,U,gGChOFtgL,GAAU,QAiBVghL,GAAgB,SAACtzM,GAC5B,IAAMR,EAAe,IAAIjE,KAQzB,OAPAg1B,KAAsB1wB,6BAA6BC,KAAON,GAC1DA,EAAa5D,iBAAiB,CAC5B2B,KAAK,GAAD,OAAKyC,EAAQ3P,WACjB+M,OAAQ,kBACRjO,OAAQ6Q,EAAQupH,QAAU,OAAS,SACnCzsH,WAAY,mBAEP0C,EAAa9C,KAAb,UAAqB41B,GAArB,kBAA8CtyB,IAG1CuzM,GAAkB,SAACvzM,GAC9B,IAAMR,EAAe,IAAIjE,KAQzB,OAPAg1B,KAAsB1wB,6BAA6BC,KAAON,GAC1DA,EAAa5D,iBAAiB,CAC5B2B,KAAK,GAAD,OAAKyC,EAAQ3P,WACjB+M,OAAQ,kBACRjO,OAAQ,SACR2N,WAAY,mBAEP0C,EAAa9C,KAAb,UAAqB41B,GAArB,oBAAgDtyB,I,UCRnDwzM,GAAwB,SAACjuM,GAC7B,IAAQu7L,EAAsEv7L,EAAtEu7L,iBAAkB0N,EAAoDjpM,EAApDipM,kBAAmBhqM,EAAiCe,EAAjCf,MAAO6c,EAA0B9b,EAA1B8b,KAAMoyL,EAAoBluM,EAApBkuM,gBAC1D,EAAkCvS,eAA1B5rF,EAAR,EAAQA,QAAS6rF,EAAjB,EAAiBA,aACXxoM,EAAOG,cACP4e,EAAWipI,cAEjB,EAAsDhlB,oBAAkB,GAAxE,mBAAO+3E,EAAP,KAA4BC,EAA5B,KACA,EAAgDh4E,mBAAiB,GAAjE,mBAAOi4E,EAAP,KAAyBC,EAAzB,KAEQ9vC,EAAe1oC,aAAY,SAACnsI,GAAD,MAAY,CAC7C60K,WAAYr1H,4BAAwCx/C,OAD9C60K,WAGRrvD,qBAAU,WACHqvD,GAAY4vC,GAAuB,KACvC,CAAC5vC,IAGJ,MAAgCpoC,mBAAkB83E,GAAlD,mBAAOK,EAAP,KAAiBC,EAAjB,KACAr/F,qBAAU,WACRq/F,EAAYN,KACX,CAACA,IACJ,MAAsC93E,mBAAS,CAC7CtrI,UAAW,GACX2jN,SAAU,KAFZ,mBAAoBC,GAApB,WAMMC,EAAkB,yCAAG,WAAO7nL,GAAP,oBAAAjwB,EAAA,6DACzBu3M,GAAuB,GACjBQ,EAAsBL,EAA2C,GAAhCzyL,EAAKS,OAAO8xL,GAC7CQ,EAHmB,qCAIvBjwL,OAAQ9C,EAAK8C,QACVgwL,GACA9nL,GANoB,IAOvB2nL,SAAWF,EAEe,GAAtBznL,EAAOgoL,YACPhoL,EAAOsyJ,SACPtyJ,EAAO2nL,SAHPG,EAAmBH,SAIvB3jN,UAAWg8B,EAAOh8B,UAClBikN,UAAWjoL,EAAOioL,YAbK,SAeFhB,GAAcc,GAfZ,QAgBzB,QADM73M,EAfmB,cAgBzB,IAAIA,OAAJ,EAAIA,EAAUqB,UAAS8Z,EAASgN,+BAAyC0vL,EAAcjwL,SAhB9D,2CAAH,sDAoBlBowL,EAAoB,yCAAG,6BAAAn4M,EAAA,sDACrBo4M,EADqB,aAEzBrwL,OAAQ9C,EAAK8C,QACV9C,EAAKS,OAAO8xL,IAEjB70M,iCAAqC,CACnC5P,OAAO,WAAD,8BAAE,6BAAAiN,EAAA,6DACNu3M,GAAuB,GADjB,SAEiBJ,GAAgBiB,GAFjC,QAGN,QADMj4M,EAFA,cAGN,IAAIA,OAAJ,EAAIA,EAAUqB,UACZ8Z,EAASgN,+BAAyC8vL,EAAgBrwL,SAJ9D,2CAAF,kDAAC,GAMPtc,WAAYlP,EAAK0E,cAAc,CAAEC,GAAI,oBACrCwK,WAAY0sM,EAAgBnkN,YAbH,2CAAH,qDAiB1B,OACE,cAAC,KAAD,CACE6hH,UAAU,sBACV+vF,iBAAkB,kCAClB5lE,OAAQmyE,EACRhqM,MAAOA,EACPK,MAAM,QACNq9L,eAAgB,WACVpB,GAAkBA,KAP1B,SAUGz/K,EAAKS,OACJ,qCACE,cAACqoK,GAAA,EAAD,CACEC,OAAS0pB,EAAgC,iBAArB,mBACpB12B,QAAQ,EACRiN,cAAe,cAGhBqpB,GACC,qBAAKxhG,UAAU,qCAAf,SACE,cAAC4pE,GAAA,EAAD,CAAS1yK,MAAM,eAKjBsqM,GACA,sCACII,GACA,cAAC72D,GAAA,EAAD,CACEC,QAAS,CACP,cAAC9hB,GAAA,EAAD,CACE99H,GAAI,sBACJS,KAAM,SACNgK,YAAY,EACZwzH,YAAa,WACXw4E,GAAY,IAEdv4E,eAAgB7iI,EAAK0E,cAAc,CAAEC,GAAI,qBAE3C+jB,EAAKS,OAAO5J,OAAS,GACnB,cAACksL,GAAA,EAAD,CACE5oE,eAAgB,cAChBzzH,YAAY,EACZwzH,YAAa,WACXg5E,UAQXlzL,EAAKS,OAAO5J,OAAS,IAAM47L,GAC1B,cAACW,GAAA,EAAD,CACEC,OAAO,EACP5yL,OAAQT,EAAKS,OAAO5Q,KAAI,SAAC2Q,GAAD,mBAAC,eACpBA,GADmB,IAEtBw3K,aAAY,OAAEx3K,QAAF,IAAEA,OAAF,EAAEA,EAAOmyL,cAEvBW,UAAU,EACVC,cAAe,SAACC,GACdhB,EAAoBgB,IAEtBC,YAAY,EACZC,YAAY,EACZC,WAAW,EACX9iG,UAAW,sBACX+iG,gBAAiB,sBACjBC,aAAc,QAIjB7zL,EAAKS,OAAO5J,OAAS,IAAM47L,GAC1B,eAACqB,GAAA,EAAD,WACE,uBACA,eAAChV,GAAA,EAAD,WACE,cAACplB,GAAA,EAAD,CAAK9T,GAAI,KAAT,SACE,cAAC,KAAD,CACE3xD,QAASA,EACT/3G,KAAK,YACL09K,OAAQ,gBAAGrnE,EAAH,EAAGA,MAAOimE,EAAV,EAAUA,WAAV,OACN,cAACliE,GAAA,EAAD,CACE/D,MAAOA,EACPC,WAAYgmE,EACZv8K,GAAI,iBACJg7F,UAAU,EACV2b,kBACG6/F,EAAqD,GAA1CzyL,EAAKS,OAAO8xL,GAAkBvjN,UAE5CohH,MAAO,cAAC,KAAD,CAAkBn0G,GAAG,4BAKpC,cAACy9K,GAAA,EAAD,CAAK9T,GAAI,KAAT,SACE,cAAC,KAAD,CACE3xD,QAASA,EACT/3G,KAAK,YACL09K,OAAQ,gBAAGrnE,EAAH,EAAGA,MAAH,OACN,cAAC,KAAD,CACEA,MAAOA,EACPK,mBACG6/F,GAAsD,GAA3CzyL,EAAKS,OAAO8xL,GAAkBU,UAE5C7iG,MAAO94G,EAAK0E,cAAc,CAAEC,GAAI,kCAM1C,cAAC6iM,GAAA,EAAD,UACE,cAACplB,GAAA,EAAD,CAAK9T,GAAG,KAAR,SACE,eAAC+8B,GAAA,EAAD,CAAW9xF,UAAU,cAArB,UACE,cAACuwF,GAAA,EAAO3mE,OAAR,CACE5pB,UAAU,OACV9oG,MAAM,UAEN2yH,QAASolE,GAAa,SAAC90K,GACrB6nL,EAAmB7nL,MALvB,SAQE,cAAC,KAAD,CAAkB/uB,GAAG,kBAEvB,cAACmlM,GAAA,EAAO3mE,OAAR,CACE1yH,MAAM,QACN2yH,QAAS,WACH+kE,GAAkBA,KAH1B,SAME,cAAC,KAAD,CAAkBxjM,GAAG,8BASV,GAAtB+jB,EAAKS,OAAO5J,SAAgBw7L,IAAwBI,GACnD,qBAAK5hG,UAAU,wBAAf,SACE,sBAAKA,UAAU,oBAAf,UACE,oBAAIA,UAAU,OAAd,SACE,cAAC,KAAD,CAAkB50G,GAAG,qBAEvB,mBAAG40G,UAAU,OAAb,SACE,cAAC,KAAD,CAAkB50G,GAAG,iCAEvB,cAACmlM,GAAA,EAAO3mE,OAAR,CACE1yH,MAAM,UACN8oG,UAAU,oBACV6pB,QAAS,WACPg4E,GAAY,IAJhB,SAOE,cAAC,KAAD,CAAkBz2M,GAAG,4CAO5Bw2M,GACC,cAACsB,GAAA,EAAD,CACEC,UAAW,YACXC,UAAU,EACVC,OAAQ,EAAI,EACZC,wBAAyB,SAACnpL,KAC1BopL,wBAAyB,aACzBC,YAAa,CAAEvxL,OAAQ9C,EAAK8C,QAC5Bq8K,OAAQ,CACN,CACEpxM,KAAM,OACNmO,KAAM,YACNk0G,MAAO94G,EAAK0E,cAAc,CAAEC,GAAI,qBAChCg7F,UAAU,EACV7yF,aAAc,IAEhB,CACElI,KAAM,YACN02G,mBAAmB,EACnBxC,MAAO94G,EAAK0E,cAAc,CAAEC,GAAI,wBAChClO,KAAM,aAGVumN,cAAe,SAAC9vM,GAAD,OAAWouM,EAAepuM,IACzC+vM,oBAAqB,SAACvpL,GACpB6nL,EAAmB7nL,IAErB2qK,gBAAiB,WACXyc,EACF3S,IAEAiT,GAAY,IAGhB8B,UAAW,aAKnB,uBACC/B,IAAaL,GACZ,cAACtT,GAAA,EAAD,UACE,cAACplB,GAAA,EAAD,CAAK9T,GAAG,KAAR,SACE,cAAC+8B,GAAA,EAAD,CAAW9xF,UAAU,cAArB,SACE,cAACuwF,GAAA,EAAO3mE,OAAR,CACE1yH,MAAM,QACN2yH,QAAS,WACPg4E,GAAY,IAHhB,SAME,cAAC,KAAD,CAAkBz2M,GAAG,oCAQjC,gCAKRk2M,GAAsBr7F,aAAe,CACnC2oF,iBAAkB,kBAAM,MACxB0N,mBAAmB,EACnBhqM,MAAO,GACP6c,KAAM,GACNy0L,YAAY,EACZrC,iBAAiB,GAGJD,UClUA,SAASuC,GAAT,GAAmD,IAAD,IAA9B10L,EAA8B,EAA9BA,KAAMlT,EAAwB,EAAxBA,QAASoyH,EAAe,EAAfA,YAC1C5nI,EAAOG,cACPk9M,EAAUC,cACVpiH,EAAU6hB,UACV1wE,EAAQ,UAAG72B,EAAQ,UAAX,aAAG,EAAY62B,SACvBkxK,EAAS,UAAG/nM,EAAQ,UAAX,aAAG,EAAY+nM,UAEtBr7G,EAAYwgC,aAAY,SAACnsI,GAC/B,MAAO,CACL2rG,QAASnqF,aAAyBxhB,OAF9B2rG,QAMR,OACE,cAACslG,GAAA,EAAD,UACG9+K,EAAKE,cACHiK,QAAO,SAACu0G,GAAD,OAAkB,OAANA,QAAM,IAANA,OAAA,EAAAA,EAAQo2E,gBAA0C,IAAzBp2E,EAAOo2E,iBACnDjlM,KAAI,SAAC6uH,EAAQ35G,GACZ,OACE,eAAC,WAAD,WACGA,EAAI,IAAM,GAAW,IAANA,GAAW,oBAAI8rF,UAAW,2BAC1C,eAAC6oE,GAAA,EAAD,CAAK7oE,UAAW9rF,EAAI,IAAM,EAAI,cAAgB,GAA9C,UACE,eAAC69K,GAAA,EAAD,CAAO/xF,UAAU,oBAAjB,UACE,cAAC,KAAD,CACEn0G,KAAM,aACNqL,MAAOyqF,EACP1qF,KAAM,GACN4oG,MAAO,CAAEO,YAAa,YAExB,qBAAKh1G,GAAIyiI,EAAOq2E,kBAAoBhwL,EAApC,SAAwC25G,EAAOq2E,oBACjB,gBAA7Br2E,EAAOq2E,mBACN,cAACnD,GAAA,EAAD,CAAqB72E,UAAW,MAAOn8B,OAAQ8/B,EAAOq2E,kBAAoBhwL,EAA1E,SACGztB,EAAK0E,cAAc,CAAEC,GAAI,wCAItB,OAAP6Q,QAAO,IAAPA,OAAA,EAAAA,EAAS+J,QAAS,GACjB,cAACgrK,GAAA,EAAD,CACEnlL,KAAM,aACNm0G,UAAW,OACX50G,GAAI,qBACJk+H,eAAgB7iI,EAAK0E,cAAc,CACjCC,GAAI,8BAEN8L,MAAOyqF,EACP0nC,YAAa,WACXy6E,EAAQtqM,KACN,CAAE2qM,SAAU,2BACZ,CACElyL,OAAM,OAAE9C,QAAF,IAAEA,OAAF,EAAEA,EAAM8C,OACd6gB,WACAkxK,oBAQZ,cAACjS,GAAA,EAAD,CAAO/xF,UAAU,0BAAjB,mBACgC,KAAxB,OAAN6tB,QAAM,IAANA,OAAA,EAAAA,EAAQu2E,mBACJz7G,EAAQ5jG,sCAAR,OAA8C8oI,QAA9C,IAA8CA,OAA9C,EAA8CA,EAAQw2E,aAAajjH,QAAQ,GAC3EuH,EAAQxjG,sCAAR,OAA8C0oI,QAA9C,IAA8CA,OAA9C,EAA8CA,EAAQw2E,aAAajjH,QAAQ,GAHjF,mBAIIitC,QAJJ,IAIIA,OAJJ,EAIIA,EAAa9qI,iBA5CN2wB,Q,qECZrBkwE,GAAU,CACd,CACEP,UAAW,aACXe,WAAY,cACZ1nG,KAAM,WACNugL,aAAc,oBAEhB,CACE55E,UAAW,cACX3mG,KAAM,SACNugL,aAAc,MAEhB,CACE55E,UAAW,eACXe,WAAY,wBAEd,CACEf,UAAW,eACXe,WAAY,mBACZ1nG,KAAM,WAER,CACE2mG,UAAW,cACXe,WAAY,cACZipC,OAAQ,QACR3wI,KAAM,SACNugL,aAAc,OAOH,SAAS6mC,GAAT,GAA6C,IAAD,oBAAjBn1L,EAAiB,EAAjBA,KAAMlT,EAAW,EAAXA,QACxCxV,EAAOG,cACPk9M,EAAUC,cAEVpiH,GADQ4gB,iBAAiBrS,SAASvxF,MACxB6kG,WAChB,EAAsDimB,oBAAS,GAA/D,mBAAO86E,EAAP,KAA4BC,EAA5B,KACA,EAAkC/6E,oBAAS,GAA3C,mBAAOg7E,EAAP,KAAkBC,EAAlB,KACA,EAAsDj7E,oBAAkB,GAAxE,mBAAOk7E,EAAP,KAA4BC,EAA5B,KACA,EAAgDn7E,oBAAkB,GAAlE,mBAAOo7E,EAAP,KAAyBC,EAAzB,KACMt9B,EAAe,CACnBtiF,OAASswE,QAAQ,OAAOrwE,OAAO,oBAC/BD,OAASuwE,MAAM,OAAOtwE,OAAO,qBAE/B,EAAkCskC,mBAAgB+9C,GAAlD,mBAAO3sF,EAAP,KAAkBD,EAAlB,KACA,EAAgC6uC,mBAAQ,UAASxtH,EAAQ,UAAjB,aAAS,EAAY62B,UAA7D,mBAAOA,EAAP,KAAiBiyK,EAAjB,KACA,EAAkCt7E,mBAAQ,UAASxtH,EAAQ,UAAjB,aAAS,EAAY+nM,WAA/D,mBAAOA,EAAP,KAAkBgB,GAAlB,KACA,GAAuDhW,eAAtCiW,GAAjB,GAAQ7hG,QAA+B8hG,GAAvC,GAAgChW,MAChC,GAA2BF,aAAQ,CAAE8Q,cAAe,CAAEjlH,UAAW2sF,KAAzDpkE,GAAR,GAAQA,QAAS8rF,GAAjB,GAAiBA,MACjB,GAA6BiW,aAC3BZ,EADuD,OAEvDp1L,QAFuD,IAEvDA,OAFuD,EAEvDA,EAAM8C,OACN6gB,EACAkxK,EACAnpH,EAAU,GACVA,EAAU,IANJ3xF,GAAR,GAAQA,KAAM2oK,GAAd,GAAcA,WASRuzC,GAAmBF,GAAY,YAC/BG,GAAsBnW,GAAM,aAC5BvmG,GAAUwgC,YAAY3qH,cACtB6Q,GAAgBF,EAAKE,cAAciK,QACvC,SAACu0G,GAAD,OAAkB,OAANA,QAAM,IAANA,OAAA,EAAAA,EAAQo2E,gBAA0C,IAAzBp2E,EAAOo2E,iBAuB9C,OApBAnqC,aAAqB,WAAO,IAAD,IACzBkrC,GAAY,UAAC/oM,EAAQ,UAAT,aAAC,EAAY+nM,WACzBe,EAAW,UAAC9oM,EAAQ,UAAT,aAAC,EAAY62B,YACvB,CAAC72B,IAEJumG,qBAAU,WACuB,IAAD,EAAN,MAApB4iG,KACFN,GAAoB,GACpBC,EAAYK,IACZJ,GAAY,UAAC/oM,EAAQqd,QAAO,SAACquK,GAAD,OAAOA,EAAE70J,WAAasyK,MAAkB,UAAxD,aAAC,EAA2DpB,cAEzE,CAACoB,KAEJ5iG,qBAAU,WACJ6iG,KACFT,GAAuB,GACvBhqH,EAAayqH,OAEd,CAACA,KAGF,cAACpX,GAAA,EAAD,UACIsW,EAkCA,eAACtW,GAAA,EAAD,WACE,cAACplB,GAAA,EAAD,CAAK9T,GAAG,KAAR,SACE,eAACqyB,EAAA,EAAD,WACE,eAACke,GAAA,EAAD,CACE1wB,IAAI,MACJhb,UAAW,KACXzvC,OAAQ06E,EACRz6E,OAAQ,SAACv5B,GAEJg0G,IACqC,oBAArC,OAAOh0G,QAAP,IAAOA,OAAP,EAAOA,EAAO00G,qBAAsC10G,EAAM00G,uBAE3DT,GAAqBD,IAT3B,UAYE,cAACW,GAAA,EAAD,CAAgB5wB,IAAI,MAApB,SACE,cAACgrB,GAAA,EAAD,CACEh1B,MAAI,EACJ/qE,MAAO,CAAEyB,SAAU,SACnBtB,UAAU,kBACV9oG,MAAO,UAJT,mBAMG+E,EAAQqd,QAAO,SAACquK,GAAD,OAAOA,EAAE70J,WAAaA,KAAU,UANlD,aAMG,EAAmD2yK,qBAGxD,cAACC,GAAA,EAAD,CAAc9wB,IAAI,MAAM/0E,MAAO,CAAEltG,MAAO,SAAxC,SACE,8BACE,cAAC,KAAD,CACEywG,QAAS6hG,GACT55M,KAAK,WACLm8K,aAAc10I,EACd8yD,MAAO,CAAEQ,UAAU,GACnB2iF,OAAQ,gBAAGrnE,EAAH,EAAGA,MAAOimE,EAAV,EAAUA,WAAV,OACN,cAAClmE,GAAA,EAAD,CACEC,MAAOA,EACPC,WAAYgmE,EACZvhF,UAAU,EACVmZ,MAAO94G,EAAK0E,cAAc,CAAEC,GAAI,mBAChCy2G,QAAS5lG,EAAQ+C,KAAI,SAAC2oL,GAAD,MAAQ,CAC3Bv8L,GAAIu8L,EAAE70J,SACNn/B,MAAOg0L,EAAE70J,SACTysE,MAAOooF,EAAE8d,iCAQvB,eAACH,GAAA,EAAD,CACE1wB,IAAI,MACJhb,UAAW,KACXzvC,OAAQw6E,EACRv6E,OAAQ,SAACv5B,GAEJ8zG,IACqC,oBAArC,OAAO9zG,QAAP,IAAOA,OAAP,EAAOA,EAAO00G,qBAAsC10G,EAAM00G,uBAE3DX,GAAwBD,IAT9B,UAYE,cAACa,GAAA,EAAD,CAAgB5wB,IAAI,MAApB,SACE,cAACgrB,GAAA,EAAD,CAAOh1B,MAAI,EAAC5qE,UAAU,QAAQ9oG,MAAO,UAArC,mBACM2jF,EAAU,GADhB,cACwBA,EAAU,QAGpC,cAAC6qH,GAAA,EAAD,CAAc9wB,IAAI,MAAM/0E,MAAO,CAAEltG,MAAO,SAAxC,SACE,8BACE,cAAC,KAAD,CACEywG,QAASA,GACT/3G,KAAK,YACLm8K,aAAcA,EACd5hF,MAAO,CAAEQ,UAAU,GACnB2iF,OAAQ,gBAAGrnE,EAAH,EAAGA,MAAOimE,EAAV,EAAUA,WAAV,OACN,cAAC9T,GAAA,EAAD,CACEnyD,MAAOA,EACPC,WAAYgmE,EACZvhF,UAAU,EAEV6tE,SAAO,cAOlBswC,GACC,cAACvzB,GAAA,EAAD,CACEnlL,KAAM44M,EAAY,WAAa,OAC/BzkG,UAAW,OACX50G,GAAI,kBACJk+H,eAAgB7iI,EAAK0E,cAAc,CACjCC,GAAIq5M,EAAY,kBAAoB,oBAEtCvtM,MAAOyqF,EACP0nC,YAAa,WACXq7E,GAAcD,MAIpB,cAACzzB,GAAA,EAAD,CACEnlL,KAAM,IACNm0G,UAAW,OACX50G,GAAI,4BACJk+H,eAAgB7iI,EAAK0E,cAAc,CACjCC,GAAI,oCAEN8L,MAAOyqF,EACP0nC,YAAa,WACXm7E,GAAwBD,GACxBG,GAAa,WAKrB,cAAC77B,GAAA,EAAD,CAAK9T,GAAI,KAAM/0D,UAAW,SAC1B,cAAC6oE,GAAA,EAAD,CAAK9T,GAAI,IAAK/0D,UAAW,OAAzB,SACE,cAACkpB,GAAA,EAAD,CACE99H,GAAI,qBACJS,KAAM,aACNqL,MAAM,OACN3V,YAAa,CAAC,SACd8nI,YAAa,WACXy6E,EAAQtqM,KACN,CAAE2qM,SAAU,kCACZ,CACElyL,OAAM,OAAE9C,QAAF,IAAEA,OAAF,EAAEA,EAAM8C,OACd6gB,WACAkxK,YACAnpH,eAINyuC,eAAgB7iI,EAAK0E,cAAc,CAAEC,GAAI,kCAG7C,cAACy9K,GAAA,EAAD,CAAK9T,GAAG,KAAR,SACG0vC,EACC,qBAAKzkG,UAAW,OAAhB,SACE,cAACo2D,GAAA,EAAD,CACEhrK,GAAI,mCACJg5F,QAASA,GAAQplF,KAAI,SAACrZ,GAAD,YACH,gBAAhBA,EAAEk+F,UAAF,2BAESl+F,GAFT,IAGMo+F,WAAW,GAAD,OAAKt9F,EAAK0E,cAAc,CAChCC,GAAI,sBADI,uBAEHikB,GAAc,GAAGs2L,2BAFd,aAEH,EAAsCjjH,QAAQ,QAAS,QAFpD,OAIZ/8F,KAENuD,KAAMA,GAAK8V,KAAI,SAACg+B,GAAD,mBAAC,eACXA,GADU,IAEb07E,YAAa/vB,GAAQgwB,8CAA8C37E,EAAEj5C,YAEvE8tK,WAAYA,OAIhB,cAAC+zC,GAAA,EAAD,CACE18M,KAAMA,GAAK8V,KAAI,SAACg+B,GAAD,cAAQ,CACrBt9B,KAAM,IAAIsZ,KAAKgkB,EAAE0uE,YACjB/3G,MAAOqpC,EAAE6oK,YACT3uM,MACE8lC,EAAE6oK,aAAF,UAAgB5pM,EAAQqd,QAAO,SAACquK,GAAD,OAAOA,EAAE70J,WAAaA,KAAU,UAA/D,aAAgB,EAAmDgzK,aACnE9oK,EAAE6oK,aAAF,UAAgB5pM,EAAQqd,QAAO,SAACquK,GAAD,OAAOA,EAAE70J,WAAaA,KAAU,UAA/D,aAAgB,EAAmDizK,YAC/D,UACA,cAERC,aAAcv/M,EAAK0E,cAAc,CAAEC,GAAI,sBACvCyiI,OAAM,UAAEx+G,GAAc,GAAGs2L,2BAAnB,aAAE,EAAsCjjH,QAAQ,QAAS,QAC/DmvE,WAAYA,GACZo0C,aAAc,EACdH,WAAU,UAAE7pM,EAAQqd,QAAO,SAACquK,GAAD,OAAOA,EAAE70J,WAAaA,KAAU,UAAjD,aAAE,EAAmDgzK,WAC/DC,WAAU,UAAE9pM,EAAQqd,QAAO,SAACquK,GAAD,OAAOA,EAAE70J,WAAaA,KAAU,UAAjD,aAAE,EAAmDizK,WAC/D14F,IAAG,oBACDpxG,EAAQqd,QAAO,SAACquK,GAAD,OAAOA,EAAE70J,WAAaA,KAAU,UAD9C,aACD,EAAmDozK,gBADlD,QAED72L,GAAc,GAAG62L,SAEnB94F,IAAG,oBACDnxG,EAAQqd,QAAO,SAACquK,GAAD,OAAOA,EAAE70J,WAAaA,KAAU,UAD9C,aACD,EAAmDqzK,gBADlD,QAED92L,GAAc,GAAG82L,gBAtN3Bh3L,EAAKE,cACFiK,QAAO,SAACu0G,GAAD,OAAkB,OAANA,QAAM,IAANA,OAAA,EAAAA,EAAQo2E,gBAA0C,IAAzBp2E,EAAOo2E,iBACnDjlM,KAAI,SAAC6uH,EAAQ35G,GAAT,aACH,eAAC,WAAD,WACGA,EAAI,IAAM,GAAW,IAANA,GAAW,oBAAI8rF,UAAW,2BAC1C,eAAC6oE,GAAA,EAAD,CAAK7oE,UAAW9rF,EAAI,IAAM,EAAI,cAAgB,GAA9C,UACE,eAAC69K,GAAA,EAAD,CAAO/xF,UAAU,oBAAjB,UACE,cAAC,KAAD,CAAa9oG,MAAOyqF,EAAS1qF,KAAM,GAAI4oG,MAAO,CAAEO,YAAa,YAC5DytB,EAAOq2E,mBACA,OAAPjoM,QAAO,IAAPA,OAAA,EAAAA,EAAS+J,QAAS,GACjB,cAACgrK,GAAA,EAAD,CACEnlL,KAAM,aACNm0G,UAAW,OACX50G,GAAI,4BACJk+H,eAAgB7iI,EAAK0E,cAAc,CACjCC,GAAI,oCAEN8L,MAAOyqF,EACP0nC,YAAa,WACXm7E,GAAwBD,GACxBG,GAAa,SAMrB,cAAC3S,GAAA,EAAD,CAAO/xF,UAAU,0BAAjB,mBACE6tB,EAAOw2E,YADT,sBAEIx2E,EAAO83E,2BAFX,aAEI,EAA4BjjH,QAAQ,QAAS,gBAzBtCxuE,Q,ICvGfkyL,G,kDCiHGC,GA/FyC,SAAC,GAMlD,IALLl8E,EAKI,EALJA,OACAzzH,EAII,EAJJA,MAII,IAHJ8wK,oBAGI,MAHW,EAGX,EAFJv1J,EAEI,EAFJA,OACAsD,EACI,EADJA,oBAGA,EAAyCy5K,eAAjC5rF,EAAR,EAAQA,QAAS6rF,EAAjB,EAAiBA,aAAcp1B,EAA/B,EAA+BA,MACzBpzK,EAAOG,cACL0/M,EAAiBC,aAA2B7yD,KAAiB,CACnEn+H,oBAAqB,WACnB/P,EAASgN,kCAC0B,oBAAxB+C,GACTA,OAJE+wL,aAQF9gM,EAAWipI,cAejB,OACE,cAAC,KAAD,CACEzuC,UAAU,sBACV+vF,iBAAkB,kCAClB5lE,OAAQA,EACR73H,MAAO7L,EAAK0E,cAAc,CAAEC,GAAI,oBAChCqlM,SAAU,GACV99L,MAAO,QACPq9L,eAAgB,WACdt5L,KARJ,SAWE,eAAC,WAAD,WACE,cAACu3L,GAAA,EAAD,UACE,cAACplB,GAAA,EAAD,CAAK9T,GAAG,KAAR,SACE,cAAC,KAAD,CACE3xD,QAASA,EACT/3G,KAAK,YACLu6F,MAAO,CAAEQ,UAAU,GACnB2iF,OAAQ,gBAAGrnE,EAAH,EAAGA,MAAOimE,EAAV,EAAUA,WAAV,OACN,cAACj6C,GAAA,EAAD,CACEhsB,MAAOA,EACPC,WAAYgmE,EACZv8K,GAAI,iBACJm0G,MAAO94G,EAAK0E,cAAc,CAAEC,GAAI,oBAChC22G,kBAAmBtW,cAAmB,OAAC+7E,QAAD,IAACA,IAAgB,GACvDphF,UAAQ,EACR8nC,WAAS,EACTH,eAAa,EACbnpB,gBAAiB,cAM3B,cAACqpF,GAAA,EAAD,CAAKjuF,UAAW,oBAAhB,SACE,eAAC6oE,GAAA,EAAD,CAAK9T,GAAG,KAAR,UACE,cAACw7B,GAAA,EAAO3mE,OAAR,CACE5pB,UAAU,mBACV9oG,MAAM,UAEN2yH,QAASolE,GAvDJ,SAAC90K,GAChBttB,2BAA+B,CAC7BpB,QAAShF,EAAK0E,cAAc,CAAEC,GAAI,mCAClCnO,OAAQ,WACN,IAAMupN,EAAe96G,cAAoBvxE,EAAOq2E,WAChD81G,EAAa,CAAEr0L,SAAQw0L,aAAcD,IACrC9vM,KAEFlE,UAAW,WACTkE,UA0CI,SAME,cAAC,KAAD,CAAkBtL,GAAG,kBAEvB,cAACmlM,GAAA,EAAO3mE,OAAR,CACE5pB,UAAU,cACV9oG,MAAM,QACN2yH,QAAS,WACPgwC,IACAnjK,KALJ,SAQE,cAAC,KAAD,CAAkBtL,GAAG,gC,SDxGvBg7M,O,eAAAA,I,oBAAAA,Q,KAcZ,IA8CeM,GA9C8B,SAAC,GAOvC,IAAD,IANJzvM,YAMI,MANG,GAMH,MALJ0vM,kBAKI,MALSP,GAAY7V,OAKrB,MAJJ/oB,oBAII,MAJW,EAIX,MAHJ3xK,kBAGI,SAFJoc,EAEI,EAFJA,OACAsD,EACI,EADJA,oBAMA,IAHsB4zG,aAAY,SAACv7H,GAAD,OAChC4Q,+BAA2C5Q,EAAO,CAAC,aAEjC,OAAO,6BAG3B,MAA0Dg5M,eAA3Cz8E,EAAf,EAAQx2H,MAAwBwhK,EAAhC,EAAuB0xC,QAAyBnwM,EAAhD,EAAsCowM,SAKtC,OACE,eAAC,WAAD,WACGH,IAAeP,GAAYpvM,KAC1B,cAAC,KAAD,CAAMnL,KAAK,QAAQoL,KAAMA,EAAM4yH,QAPjB,SAACh5B,GACnBskE,KAMyDt1D,MAAO,CAAEm1D,OAAQ,aAEtE,cAAC9rC,GAAA,EAAD,CACEhyH,MAAM,QACNmyH,YAAa,WACX8rC,KAEFtpK,KAAM,qBACNy9H,eAAe,qBACfzzH,WAAYA,IAGhB,cAAC,GAAD,CACEs0H,OAAQA,EACRzzH,MAAOA,EACP8wK,aAAcA,EACdv1J,OAAQA,EACRsD,oBAAqBA,Q,UEfd,SAASwxL,GAAT,GAWX,IAAD,8GAVDnY,GAUC,EAVDA,iBACA0N,GASC,EATDA,kBACAC,GAQC,EARDA,wBAQC,KAPDC,wCAOC,WANDC,GAMC,EANDA,kCAMC,KALDnqM,cAKC,OALO,GAKP,GAJDoqM,GAIC,EAJDA,aACAC,GAGC,EAHDA,gBACAC,GAEC,EAFDA,gBACA3qL,GACC,EADDA,OAEMxrB,GAAOG,cACP4e,GAAWipI,cAEX9sD,IADQ4gB,iBAAiBrS,SAASvxF,MACxB6kG,WACVwjG,GAA2B1hE,mBAEjC,IADoBA,mBAC0C7b,oBAAS,IAAvE,qBAAOw9E,GAAP,MAAgCC,GAAhC,MACA,GACEz9E,oBAAS,GADX,qBAAO09E,GAAP,MAA2CC,GAA3C,MAEA,GAA+D39E,oBAAS,GAAxE,qBAAO49E,GAAP,MAAkCC,GAAlC,MACA,GAAgF79E,oBAAS,GAAzF,qBAAO89E,GAAP,MAAyCC,GAAzC,MACA,GAAgF/9E,oBAAS,GAAzF,qBAAOg+E,GAAP,MAAyCC,GAAzC,MACA,GAA+Dj+E,oBAAS,GAAxE,qBAAOk+E,GAAP,MAAoCC,GAApC,MACA,GAAkEn+E,oBAAS,GAA3E,qBAAOo+E,GAAP,MAAkCC,GAAlC,MACA,GAAqEr+E,oBAAS,GAA9E,qBAAOs+E,GAAP,MAAqCC,GAArC,MACA,GAAwDv+E,oBAAS,GAAjE,qBAAOoqE,GAAP,MAA8BC,GAA9B,MACA,GAA4CrqE,oBAAS,GAArD,qBAAOw+E,GAAP,MAAuBC,GAAvB,MACA,GAAgDz+E,mBAAc,CAAE6kE,OAAQ,KAAxE,qBAAO6Z,GAAP,MAAyBC,GAAzB,MAEA,GAQIj/E,aAAY,SAACnsI,GAAW,IAAD,EACnBmyB,EAAOqtB,UAAsBx/C,EAAOi1B,IAC1C,MAAO,CACL9C,KAAM8C,GAAM,2BAEH9C,GAFG,IAGNk5L,cAAe5hN,GAAK0E,cAAc,CAAEC,GAAG,sBAAD,wBAAwB+jB,QAAxB,IAAwBA,OAAxB,EAAwBA,EAAMoiG,eAA9B,QAAyC,YAEjFjmH,EACJumK,WAAYr1H,4BAAwCx/C,GACpDwgI,uBAAwBhhF,yBAAqCx/C,GAC7D49H,kBAAmBp+E,wBAAoCx/C,GACvD4Q,MAAO5Q,EACPqxI,YAAa7vH,iBAA6BxhB,GAC1CsrN,gBAAiB9pM,yBAAqCxhB,OArBxDmyB,GADF,GACEA,KACA0iJ,GAFF,GAEEA,WACAr0C,GAHF,GAGEA,uBACA5C,GAJF,GAIEA,kBACAhtH,GALF,GAKEA,MACAygI,GANF,GAMEA,YACAi6E,GAPF,GAOEA,gBAmBIC,IAEUD,GAAgB9lN,SAAS,SACvB8lN,GAAgB9lN,SAAS,UAHrC+lN,GAIeD,GAAgB9lN,SAAS,SAJxC+lN,GAKSD,GAAgB9lN,SAAS,SALlC+lN,GAMYD,GAAgB9lN,SAAS,SANrC+lN,GAOkBD,GAAgB9lN,SAAS,SAP3C+lN,GAQWD,GAAgB9lN,SAAS,SARpC+lN,GASOD,GAAgB9lN,SAAS,SAThC+lN,GAUYD,GAAgB9lN,SAAS,SAVrC+lN,GAWaD,GAAgB9lN,SAAS,SAXtC+lN,GAYKD,GAAgB9lN,SAAS,SAZ9B+lN,GAaKD,GAAgB9lN,SAAS,SAb9B+lN,GAc0BD,GAAgB9lN,SAAS,SAdnD+lN,GAecD,GAAgB9lN,SAAS,SAfvC+lN,GAgBMD,GAAgB9lN,SAAS,SAhB/B+lN,GAiBYD,GAAgB9lN,SAAS,SAjBrC+lN,GAkBWD,GAAgB9lN,SAAS,SAlBpC+lN,GAmBUD,GAAgB9lN,SAAS,SAGnCugC,GAAa,CACjB,CACEzwB,MAAO,uBACPk2M,cAAez6F,aAAgB5+F,GAAK6+F,YAAaE,KAAQgB,QAAQZ,WAAlD,iBACXn/F,SADW,IACXA,QADW,EACXA,GAAMs5L,eADK,QACM,GACjB,KACJ56E,QAAY,OAAJ1+G,SAAI,IAAJA,QAAA,EAAAA,GAAMs5L,SAAU,IAAM,GAC9B58M,KAAM,UACN61G,MAAO,UACPgnG,aAAa,EACbC,aAAa,EACbC,QAASL,IAEX,CACEj2M,MAAO,qBACPk2M,cAAez6F,aAAgB5+F,GAAK6+F,YAAaE,KAAQyB,YAAYrB,WAAtD,iBACXn/F,SADW,IACXA,QADW,EACXA,GAAM05L,mBADK,QACU,GACrB,KACJh7E,OAAQ,OACRhiI,KAAM,YACNi9M,SAAU,GACVpnG,MAAO,cACPqnG,eAAe,EACfH,QAASL,IAEX,CACEj2M,MAAO,oBACPk2M,cAAez6F,aAAgB5+F,GAAK6+F,YAAaE,KAAQwB,WAAWpB,WAChE7nH,GAAK0E,cAAc,CAAEC,IAAQ,OAAJ+jB,SAAI,IAAJA,QAAA,EAAAA,GAAM65L,YAAa,aAAe,cAC3D,KACJn7E,OAAQ,GACRhiI,KAAM,YACN61G,MAAO,aACPunG,mBAAoB,OACpBP,aAAa,EACbQ,cAAc,EACdN,QAASL,IAEX,CACEj2M,MAAO,YACPk2M,cAAez6F,aAAgB5+F,GAAK6+F,YAAaE,KAAQe,cAAcX,WAAxD,iBACXn/F,SADW,IACXA,QADW,EACXA,GAAMg6L,qBADK,QACY,GACvB,KACJt7E,QAAY,OAAJ1+G,SAAI,IAAJA,QAAA,EAAAA,GAAMg6L,eAAgB,OAAS,GACvCt9M,KAAM,eACN61G,MAAO,gBACPgnG,aAAa,EACbK,eAAe,EACfH,QAASL,IAEX,CACEj2M,MAAO,YACPk2M,cAAez6F,aAAgB5+F,GAAK6+F,YAAaE,KAAQmB,UAAUf,WAC/D7nH,GAAK0E,cAAc,CAAEC,IAAQ,OAAJ+jB,SAAI,IAAJA,QAAA,EAAAA,GAAMi6L,WAAY,aAAe,cAC1D,KACJv7E,OAAQ,GACRhiI,KAAM,WACN61G,MAAO,YACPgnG,aAAa,EACbK,eAAe,EACfG,cAAc,EACdN,QAASL,IAEX,CACEj2M,MAAO,aACPk2M,cAAez6F,aAAgB5+F,GAAK6+F,YAAaE,KAAQkB,iBAAiBd,WACtE7nH,GAAK0E,cAAc,CACjBC,IAAQ,OAAJ+jB,SAAI,IAAJA,QAAA,EAAAA,GAAMk6L,kBAAmB,aAAe,cAE9C,KACJx7E,OAAQ,GACRnsB,MAAO,mBACPgnG,aAAa,EACbQ,cAAc,EACdN,QAASL,IAEX,CACEj2M,MAAO,aACPk2M,cAAez6F,aAAgB5+F,GAAK6+F,YAAaE,KAAQ8B,aAAa1B,WAClE7nH,GAAK0E,cAAc,CACjBC,IAAQ,OAAJ+jB,SAAI,IAAJA,QAAA,EAAAA,GAAMm6L,cAAe,yBAA2B,6BAEtD,KACJz7E,OAAQ,GACRnsB,MAAO,eACPgnG,aAAa,EACbQ,cAAc,EACdN,QAASL,IAEX,CACEj2M,MAAO,aACPk2M,cAAez6F,aAAgB5+F,GAAK6+F,YAAaE,KAAQ6B,yBAAyBzB,WAC9E7nH,GAAK0E,cAAc,CACjBC,IAAQ,OAAJ+jB,SAAI,IAAJA,QAAA,EAAAA,GAAMo6L,0BAA2B,aAAe,cAEtD,KACJ17E,OAAQ,GACRnsB,MAAO,2BACPgnG,aAAa,EACbQ,cAAc,EACdN,QAASL,IAEX,CACEj2M,MAAO,aACPk2M,cAAez6F,aAAgB5+F,GAAK6+F,YAAaE,KAAQgC,WAAW5B,WAArD,iBACXn/F,SADW,IACXA,QADW,EACXA,GAAMq6L,kBADK,QACS,GACpB,KACJ37E,OAAQ,GACRhiI,KAAM,YACN61G,MAAO,aACPgnG,aAAa,EACbK,eAAe,EACfU,aAAa,EACbb,QAASL,IAEX,CACEj2M,MAAO,oBACPk2M,cAAez6F,aAAgB5+F,GAAK6+F,YAAaE,KAAQ+B,KAAK3B,WAA/C,iBACXn/F,SADW,IACXA,QADW,EACXA,GAAMu6L,YADK,QACG,GACd,KACJ77E,OAAQ,GACRnsB,MAAO,OACPgnG,aAAa,EACbK,eAAe,EACfH,SAAQ,OAACz5L,SAAD,IAACA,QAAD,EAACA,GAAMu6L,QAASnB,IAE1B,CACEj2M,MAAO,mBACPk2M,cAAez6F,aAAgB5+F,GAAK6+F,YAAaE,KAAQ0B,IAAItB,WAA9C,iBACXn/F,SADW,IACXA,QADW,EACXA,GAAMw6L,WADK,QACE,GACb,KACJ97E,OAAQ,GACRnsB,MAAO,MACPgnG,aAAa,EACbK,eAAe,EACfG,cAAc,EACdN,SAAQ,OAACz5L,SAAD,IAACA,QAAD,EAACA,GAAMw6L,OAAQpB,IAEzB,CACEj2M,MAAO,mBACPk2M,cAAez6F,aAAgB5+F,GAAK6+F,YAAaE,KAAQ2B,IAAIvB,WAA9C,iBACXn/F,SADW,IACXA,QADW,EACXA,GAAMy6L,WADK,QACE,GACb,KACJ/7E,OAAQ,GACRnsB,MAAO,MACPgnG,aAAa,EACbK,eAAe,EACfG,cAAc,EACdN,SAAQ,OAACz5L,SAAD,IAACA,QAAD,EAACA,GAAMy6L,OAAQrB,IAEzB,CACEj2M,MAAO,YACPk2M,cAAez6F,aAAgB5+F,GAAK6+F,YAAaE,KAAQiB,WAAWb,WAArD,iBACXn/F,SADW,IACXA,QADW,EACXA,GAAM06L,kBADK,QACS,GACpB,KACJh8E,OAAQ,GACRhiI,KAAM,kBACN61G,MAAO,aACPgnG,aAAa,EACbK,eAAe,EACfH,QAASL,IAEX,CACEj2M,MAAO,mBACPk2M,cAAez6F,aAAgB5+F,GAAK6+F,YAAaE,KAAQuB,MAAMnB,WAAhD,iBACXn/F,SADW,IACXA,QADW,EACXA,GAAMklB,aADK,QACI,GACf,KACJw5F,OAAQ,GACRnsB,MAAO,QACPwnG,cAAc,EACdR,aAAa,EACbK,eAAe,EACfH,SAAQ,OAACz5L,SAAD,IAACA,QAAD,EAACA,GAAMklB,SAAUk0K,IAG3B,CACEj2M,MAAO,YACPk2M,cAAez6F,aAAgB5+F,GAAK6+F,YAAaE,KAAQmC,SAAS/B,WAAnD,iBACXn/F,SADW,IACXA,QADW,EACXA,GAAM4sB,gBADK,QACO,GAClB,KACJ8xF,OAAQ,GACRnsB,MAAO,WACPwnG,cAAc,EACdR,aAAa,EACbK,eAAe,EACfH,SAAQ,OAACz5L,SAAD,IAACA,QAAD,EAACA,GAAM4sB,YAAawsK,IAE9B,CACEj2M,MAAO,aACPk2M,cAAez6F,aAAgB5+F,GAAK6+F,YAAaE,KAAQkC,UAAU9B,WAApD,iBACXn/F,SADW,IACXA,QADW,EACXA,GAAM26L,iBADK,QACQ,GACnB,KACJj8E,OAAQ,GACRnsB,MAAO,YACPwnG,cAAc,EACdR,aAAa,EACbK,eAAe,EACfH,SAAQ,OAACz5L,SAAD,IAACA,QAAD,EAACA,GAAM26L,aAAcvB,IAE/B,CACEj2M,MAAO,aACPk2M,cAAez6F,aAAgB5+F,GAAK6+F,YAAaE,KAAQc,WAAWV,WAArD,iBACXn/F,SADW,IACXA,QADW,EACXA,GAAM46L,kBADK,QACS,GACpB,KACJl8E,OAAQ,GACRnsB,MAAO,aACPwnG,cAAc,EACdP,aAAa,EACbC,QAASL,KAIPyB,GACiB,KAAjB,OAAJ76L,SAAI,IAAJA,QAAA,EAAAA,GAAM86L,YACFlnL,GAAWzJ,QAAO,SAAC4wL,GAAD,QAAe,OAACA,QAAD,IAACA,OAAD,EAACA,EAAWtB,UAAoC,IAA1BsB,EAAUxB,eAC5C,KAAjB,OAAJv5L,SAAI,IAAJA,QAAA,EAAAA,GAAM86L,YACNlnL,GAAWzJ,QAAO,SAAC4wL,GAAD,QAAe,OAACA,QAAD,IAACA,OAAD,EAACA,EAAWtB,UAAsC,IAA5BsB,EAAUnB,iBAC5C,KAAjB,OAAJ55L,SAAI,IAAJA,QAAA,EAAAA,GAAM86L,YACNlnL,GAAWzJ,QAAO,SAAC4wL,GAAD,QAAe,OAACA,QAAD,IAACA,OAAD,EAACA,EAAWtB,UAAoC,IAA1BsB,EAAUvB,eACjE,GAOA7K,GAAU,WACVkJ,GAAyB/xC,SAAS8oC,cAAciJ,GAAyB/xC,UAE/E,GAAoExrC,oBAAS,GAA7E,qBAAO0gF,GAAP,MAAmCC,GAAnC,MAEA5nG,qBAAU,WACR,OAAO,kBAAMs7F,QACZ,IAEHt7F,qBAAU,WACRs7F,KACIxB,KAAiB,OAAIntL,SAAJ,IAAIA,QAAJ,EAAIA,GAAM8C,UAAgC,IAAtB2oG,KACvCp1G,GAASgN,+BAAA,OAAyCrD,SAAzC,IAAyCA,QAAzC,EAAyCA,GAAM8C,SACxD+0L,GAAyB/xC,QAAUupC,aAAY,WAC7Ch5L,GAASgN,+BAAA,OAAyCrD,SAAzC,IAAyCA,QAAzC,EAAyCA,GAAM8C,WACvDrhB,SAEJ,CAAC0rM,GAAD,OAAoBntL,SAApB,IAAoBA,QAApB,EAAoBA,GAAM8C,OAAQ2oG,KAErC,IAAMyvF,GAAc,SAACluL,EAAUC,GAC7BuxE,UAAUqzG,UAAUC,UAApB,UAAiC9kL,EAASilE,QAAQ,GAAlD,YAAwDhlE,EAAUglE,QAAQ,KAE1Ev0F,sBAA0B,CACxBnB,QAASjF,GAAK0E,cAAc,CAAEC,GAAI,wCAuEtC,OACE,qCACE,eAAC,KAAD,CACE40G,UAAU,sBACV+vF,iBAAkB,kCAClB5lE,OAAQmyE,GACRhqM,MAAOA,GACPK,MAAM,QACNq9L,eAAgBpB,GANlB,WAQI/8B,KAAc,iBAAC1iJ,SAAD,IAACA,IAAD,UAACA,GAAMS,cAAP,aAAC,EAAc5J,cAAf,QAAyB,GAAK,GAC5C,cAACu8L,GAAA,EAAD,CACEpiG,OAAQ,MACR6iG,aAAc,KACdR,OAAO,EACP5yL,OAAM,iBACJT,SADI,IACJA,IADI,UACJA,GAAMS,cADF,aACJ,EAAc5Q,KAAI,SAAC2Q,GAAD,mBAAC,eACdA,GADa,IAEhBw3K,aAAY,OAAEx3K,QAAF,IAAEA,OAAF,EAAEA,EAAOmyL,qBAHnB,QAIG,GAETW,SAAU,CACRrpL,MAAO,IACPkxL,sBAAsB,EACtBC,mBAAmB,GAErB3H,YAAY,EACZC,YAAY,EACZ7iG,UAAW,sBACXwqG,aAAc,wBAIC,OAAd,OAAJr7L,SAAI,IAAJA,QAAA,EAAAA,GAAMgN,WAAuC,OAAf,OAAJhN,SAAI,IAAJA,QAAA,EAAAA,GAAMiN,YAC/B,qCACE,eAAC6xK,GAAA,EAAD,WACE,cAACplB,GAAA,EAAD,CAAK9T,GAAG,IAAI/0D,UAAU,iCAAtB,SACE,sBAAKA,UAAW,SAAhB,UACE,eAAC+xF,GAAA,EAAD,CAAO/xF,UAAU,oBAAjB,UACGv5G,GAAK0E,cAAc,CAAEC,GAAI,aAD5B,OAGA,cAAC2mM,GAAA,EAAD,CAAO/xF,UAAU,+BAAjB,SAAiD7wF,GAAK8C,cAG1D,cAAC42J,GAAA,EAAD,CAAK9T,GAAG,IAAR,SACE,cAAChqB,GAAA,EAAD,CACE/qC,UAAW,OACXgrC,QAAS,CACP,cAAC9hB,GAAA,EAAD,CACE99H,GAAI,gCACJS,KAAMs+M,GAA6B,eAAiB,cACpD9gF,YAAa,WAEP+gF,IADJD,KAIF7gF,eAAgB7iI,GAAK0E,cAAc,CACjCC,GAAI++M,GACA,wBACA,4BAGR,cAACjhF,GAAA,EAAD,CACE99H,GAAI,iBACJS,KAAM,WACNqL,MAAM,YACN3V,YAAa,CAACkpN,KAAgB/wB,UAC9BrwD,YAAa,WACXi+E,IAA0B,IAE5Bh+E,eAAgB7iI,GAAK0E,cAAc,CAAEC,GAAI,mCACzCo+H,QAAS2gF,KAEX,cAACjhF,GAAA,EAAD,CACE99H,GAAI,0BACJS,KAAM,uBACNgK,YAAY,EACZwzH,YAAa,WACXq+E,IAAoC,IAEtCp+E,eAAgB7iI,GAAK0E,cAAc,CACjCC,GAAI,sCAENo+H,QAAS2gF,KAEX,cAACjhF,GAAA,EAAD,CACE99H,GAAI,sBACJS,KAAM,SACNw9H,YAAa,WACX69E,IAA2B,GAC3BY,IAA6B,IAE/Bx+E,eAAgB7iI,GAAK0E,cAAc,CAAEC,GAAI,mBACzCo+H,QAAS2gF,KAEX,cAACjhF,GAAA,EAAD,CACE99H,GAAI,mBACJS,KAAM,QACNgK,YAAY,EACZwzH,YAAa,WACX69E,IAA2B,GAC3BY,IAA6B,IAE/Bx+E,eAAgB7iI,GAAK0E,cAAc,CAAEC,GAAI,qBACzCo+H,QAAS2gF,KAEX,cAACjhF,GAAA,EAAD,CACE99H,GAAI,8BACJS,KAAM,OACNgK,YAAY,EACZwzH,YAAa,WACXm+E,IAAoC,IAEtCl+E,eAAgB7iI,GAAK0E,cAAc,CAAEC,GAAI,0BAE3C,cAAC89H,GAAA,EAAD,CACE99H,GAAI,4BACJS,KAAM,YACNgK,YAAY,EACZwzH,YAAa,WACX+9E,IAAsC,IAExC99E,eAAgB7iI,GAAK0E,cAAc,CACjCC,GAAI,kDAShB,oBAAI40G,UAAW,4BACV,OAAJ7wF,SAAI,IAAJA,QAAA,EAAAA,GAAM4sB,WACL,qCACE,eAACg2J,GAAA,EAAD,CAAO/xF,UAAU,oBAAjB,UACE,cAAC,KAAD,CAAM9oG,MAAOyqF,GAAS1qF,KAAM,GAAI4oG,MAAO,CAAEO,YAAa,YACrD35G,GAAK0E,cAAc,CAAEC,GAAI,oBAE5B,eAACg8L,EAAA,EAAD,CAAOpnF,UAAW,qBAAlB,UACE,cAAC,KAAD,CAEEqrE,KAAS,OAAJl8J,SAAI,IAAJA,QAAA,EAAAA,GAAM6iK,aAAN,OAAoB7iK,SAApB,IAAoBA,QAApB,EAAoBA,GAAM6iK,iBAAc1mL,EAC7C4L,MAAM,gBACN8oG,UAAW,OACXtzG,QAAO,UAAEyiB,GAAK4F,kBAAP,QAAqB,GAC5By2J,UAAQ,EACR3hD,QAAS,kBAAMq+E,IAAkB,MAEnC,gCACE,cAACnW,GAAA,EAAD,CAAO/xF,UAAU,0BAAjB,SACI0qG,mBAAQv7L,GAAK4F,YAAgC,MAAlB5F,GAAK4F,cAE/B,OAAJ5F,SAAI,IAAJA,QAAA,EAAAA,GAAMw7L,oBAAN,UACIlkN,GAAK0E,cAAc,CAAEC,GAAI,gBAD7B,oBACkD+jB,SADlD,IACkDA,QADlD,EACkDA,GAAMw7L,sBAE3D,+BACG,iBAACx7L,SAAD,IAACA,QAAD,EAACA,GAAMy7L,wBAAP,QAA2B,GAAK,GAC/B,qCACE,cAAC7J,GAAA,EAAD,CAAqBhzG,OAAQ,6BAA7B,SACGtnG,GAAK0E,cAAc,CAAEC,GAAI,gCAE5B,cAAC,KAAD,CACEA,GAAI,6BACJS,KAAM,QACNqL,MAAOyqF,GACP1qF,KAAM,GACN4oG,MAAO,CAAE0lC,WAAY,SAAUyvB,OAAQ,WACvCnrC,QAAS,kBAAMm+E,IAA6B,cAMtD,oBAAIhoG,UAAW,8BAGnB,eAAC+xF,GAAA,EAAD,CAAO/xF,UAAU,oBAAjB,UACE,cAAC,KAAD,CAAQ9oG,MAAOyqF,GAAS1qF,KAAM,GAAI4oG,MAAO,CAAEO,YAAa,YACvD35G,GAAK0E,cAAc,CAAEC,GAAI,0BAG5B,cAAC2mM,GAAA,EAAD,CAAO/xF,UAAU,0BAAjB,SACI0qG,mBAAQv7L,GAAKkd,cAAoC,MAApBld,GAAKkd,eAEtC,oBAAI2zE,UAAW,2BAEf,eAACiuF,GAAA,EAAD,WACqB,OAAd,OAAJ9+K,SAAI,IAAJA,QAAA,EAAAA,GAAMgN,WAAuC,OAAf,OAAJhN,SAAI,IAAJA,QAAA,EAAAA,GAAMiN,YAC/B,eAACysJ,GAAA,EAAD,WACE,cAACk4B,GAAA,EAAD,CAAqBhzG,OAAQ,MAA7B,SACGtnG,GAAK0E,cAAc,CAAEC,GAAI,gCAE5B,sBACEA,GAAG,MACHy+H,QAAS,WACPwgF,GAAW,OAACl7L,SAAD,IAACA,QAAD,EAACA,GAAMgN,SAAP,OAAiBhN,SAAjB,IAAiBA,QAAjB,EAAiBA,GAAMiN,YAHtC,UAME,eAAC21K,GAAA,EAAD,CAAO/xF,UAAU,oBAAjB,UACE,cAAC,KAAD,CACEn0G,KAAM,SACNqL,MAAOyqF,GACP1qF,KAAM,GACN4oG,MAAO,CAAEO,YAAa,YAEvB35G,GAAK0E,cAAc,CAAEC,GAAI,sBAE5B,cAAC2mM,GAAA,EAAD,CAAO/xF,UAAU,0BAAjB,gBAA4C7wF,SAA5C,IAA4CA,QAA5C,EAA4CA,GAAMgN,SAASilE,QAAQ,WAItD,OAAd,OAAJjyE,SAAI,IAAJA,QAAA,EAAAA,GAAMgN,WAAuC,OAAf,OAAJhN,SAAI,IAAJA,QAAA,EAAAA,GAAMiN,YAC/B,eAACysJ,GAAA,EAAD,CAAK7oE,UAAW,cAAhB,UACE,cAAC+gG,GAAA,EAAD,CAAqBhzG,OAAQ,MAA7B,SACGtnG,GAAK0E,cAAc,CAAEC,GAAI,gCAE5B,sBACEA,GAAG,MACHy+H,QAAS,WACPwgF,GAAW,OAACl7L,SAAD,IAACA,QAAD,EAACA,GAAMgN,SAAP,OAAiBhN,SAAjB,IAAiBA,QAAjB,EAAiBA,GAAMiN,YAHtC,UAME,eAAC21K,GAAA,EAAD,CAAO/xF,UAAU,oBAAjB,UACE,cAAC,KAAD,CACEn0G,KAAM,SACNqL,MAAOyqF,GACP1qF,KAAM,GACN4oG,MAAO,CAAEO,YAAa,YAEvB35G,GAAK0E,cAAc,CAAEC,GAAI,uBAE5B,cAAC2mM,GAAA,EAAD,CAAO/xF,UAAU,0BAAjB,gBAA4C7wF,SAA5C,IAA4CA,QAA5C,EAA4CA,GAAMiN,UAAUglE,QAAQ,WAI1E,oBAAI4e,UAAW,8BAGjB,eAACiuF,GAAA,EAAD,WACE,eAACplB,GAAA,EAAD,WACE,eAACkpB,GAAA,EAAD,CAAO/xF,UAAU,yBAAjB,UACE,cAAC,KAAD,CAAU9oG,MAAOyqF,GAAS1qF,KAAM,GAAI4oG,MAAO,CAAEO,YAAa,YACzD35G,GAAK0E,cAAc,CAAEC,GAAI,qBAEL,IAAtBwvH,KAA6C,IAAfi3C,GAC7B,cAACo8B,GAAA,EAAD,UACE,cAACplB,GAAA,EAAD,CAAK9T,GAAG,IAAI/0D,UAAW,sCAAvB,SACE,cAAC4pE,GAAA,EAAD,CAAS1yK,MAAM,UAAUD,KAAK,WAIlC,qCACE,cAAC2oM,GAAA,EAAD,CACEh1B,MAAI,EACJ5qE,UAAU,QACVH,MAAO0xC,aAAkBv4B,aAAgB,iBAAC7pG,SAAD,IAACA,QAAD,EAACA,GAAM6F,mBAAP,SAAuB,IAHlE,SAKG7F,GAAK8pG,gBAEPz6G,+BAA2C5Q,GAAO,CACjD68M,KAAgB/wB,aAEW,OAA1BvqK,GAAK4qG,uBAAuDzuH,IAA1B6jB,GAAK4qG,mBACtC,qCACE,cAACgnF,GAAA,EAAD,CAAqBhzG,OAAQ,8BAA7B,SACGtnG,GAAK0E,cAAc,CAAEC,GAAI,0BAE5B,cAAC,KAAD,CACEA,GAAI,8BACJS,KAAM,YACNqL,MAAOyqF,GACP1qF,KAAM,GACN4oG,MAAO,CAAE0lC,WAAY,SAAUyvB,OAAQ,WACvCnrC,QAAS,kBAAM+9E,IAAwB,SAI9CppM,+BAA2C5Q,GAAO,CACjD68M,KAAgB/wB,iBAEUpuL,IAA1B6jB,GAAK4qG,kBACqB,OAA1B5qG,GAAK4qG,kBACH,qCACE,cAACgnF,GAAA,EAAD,CAAqBhzG,OAAQ,iCAA7B,SACGtnG,GAAK0E,cAAc,CAAEC,GAAI,wBAE5B,cAAC,KAAD,CACEA,GAAI,iCACJS,KAAM,UACNqL,MAAOyqF,GACP1qF,KAAM,GACN4oG,MAAO,CAAE0lC,WAAY,SAAUyvB,OAAQ,WACvCnrC,QAAS,kBAAMrkH,GAASgN,uBAAA,OAAiCrD,SAAjC,IAAiCA,QAAjC,EAAiCA,GAAM8C,qBAO7E,eAAC42J,GAAA,EAAD,CAAK7oE,UAAW,cAAhB,UACE,eAAC+xF,GAAA,EAAD,CAAO/xF,UAAU,oBAAjB,UACE,cAAC,KAAD,CACEn0G,KAAM,SACNqL,MAAOyqF,GACP1qF,KAAM,GACN4oG,MAAO,CAAEO,YAAa,YAEvB35G,GAAK0E,cAAc,CAAEC,GAAI,4BAEXE,GAAhB6jB,GAAKoiG,QACJiM,GACE,cAACywE,GAAA,EAAD,UACE,cAACplB,GAAA,EAAD,CAAK9T,GAAG,IAAI/0D,UAAW,sCAAvB,SACE,cAAC4pE,GAAA,EAAD,CAAS1yK,MAAM,UAAUD,KAAK,WAIlC,eAACmwL,EAAA,EAAD,CAAOh8L,GAAI,iBAAkB40G,UAAW,4BAAxC,WACO,OAAJ7wF,SAAI,IAAJA,IAAA,UAAAA,GAAMk5L,qBAAN,eAAqBriM,SAAU,IAC9B,cAAC+6L,GAAA,EAAD,CAAqBhzG,OAAQ,iBAA7B,SACE,cAAC,KAAD,CAAkB3iG,GAAE,8CAAwB+jB,SAAxB,IAAwBA,QAAxB,EAAwBA,GAAMoiG,eAA9B,QAAyC,OAGjE,cAACquF,GAAA,EAAD,CACEh1B,MAAI,EACJ5qE,UAAU,cACVH,MAAO,CACL3oG,MAAO,KAAOiY,GAAK2oG,gBAAkB,UACrCzW,gBAAiB,IAAMlyF,GAAK4oG,WAC5BjY,QAAS,eACT6D,SAAU,QAPd,SAUGx0F,GAAKyoG,WAAazoG,GAAKoiG,QAAvB,WAES,OAAJpiG,SAAI,IAAJA,QAAA,EAAAA,GAAMk5L,cAAcriM,SAAU,IACtB,OAAJmJ,SAAI,IAAJA,IAAA,UAAAA,GAAMk5L,qBAAN,eAAqBj7G,UAAU,EAAG,KAAM,MACxB,MAAhBj+E,GAAKoiG,QAAL,OACApiG,SADA,IACAA,QADA,EACAA,GAAMk5L,cACN,IAEN,KAEY,IAAjBl5L,GAAKoiG,SACJ,cAACy/D,GAAA,EAAD,CACE5lL,GAAI,cACJ8L,MAAOyqF,GACP91F,KAAM,aACNy9H,eAAgB7iI,GAAK0E,cAAc,CAAEC,GAAI,sBACzCi+H,YAAa,WACX7jH,GAASgN,4BAAsCrD,GAAK8C,eAM5D,WAGR,oBAAI+tF,UAAW,2BACf,eAACiuF,GAAA,EAAD,WACE,eAACplB,GAAA,EAAD,WACE,eAACkpB,GAAA,EAAD,CAAO/xF,UAAU,oBAAjB,UACE,cAAC,KAAD,CAAO9oG,MAAOyqF,GAAS1qF,KAAM,GAAI4oG,MAAO,CAAEO,YAAa,YACtD35G,GAAK0E,cAAc,CAAEC,GAAI,qBAE5B,cAAC2mM,GAAA,EAAD,CAAO/xF,UAAU,0BAAjB,SACG7wF,GAAKk9F,QAAUnnB,KAAO/1E,GAAKk9F,SAASlnB,OAAO,oBAAsB,WAGtE,eAAC0jF,GAAA,EAAD,CAAK7oE,UAAW,cAAhB,UACE,eAAC+xF,GAAA,EAAD,CAAO/xF,UAAU,oBAAjB,UACE,cAAC,KAAD,CAAO9oG,MAAOyqF,GAAS1qF,KAAM,GAAI4oG,MAAO,CAAEO,YAAa,YACtD35G,GAAK0E,cAAc,CAAEC,GAAI,mCAE5B,cAAC2mM,GAAA,EAAD,CAAO/xF,UAAU,0BAAjB,SACG7wF,GAAK4iI,sBACF7sD,KAAO/1E,GAAK4iI,uBAAuB5sD,OAAO,oBAC1C,cAIV,oBAAI6a,UAAW,2BACf,eAACiuF,GAAA,EAAD,WACE,eAACplB,GAAA,EAAD,WACE,eAACkpB,GAAA,EAAD,CAAO/xF,UAAU,oBAAjB,UACE,cAAC,KAAD,CACEn0G,KAAM,WACNqL,MAAOyqF,GACP1qF,KAAM,GACN4oG,MAAO,CAAEO,YAAa,YAEvB35G,GAAK0E,cAAc,CAAEC,GAAI,sBAE5B,eAAC2mM,GAAA,EAAD,CAAO/xF,UAAU,0BAAjB,UACG7wF,GAAKypG,gBAAkB,MAAO,IAC/B,cAACiyF,GAAA,EAAD,CACElE,WAAYP,KAAYpvM,KACxBwwK,aAAcr4J,GAAK8iC,SACnBhgC,OAAM,iBAAE9C,SAAF,IAAEA,QAAF,EAAEA,GAAM8C,cAAR,SAAmB,UAI/B,eAAC42J,GAAA,EAAD,CAAK7oE,UAAW,cAAhB,UACE,eAAC+xF,GAAA,EAAD,CAAO/xF,UAAU,oBAAjB,UACE,cAAC,KAAD,CACEn0G,KAAM,WACNqL,MAAOyqF,GACP1qF,KAAM,GACN4oG,MAAO,CAAEO,YAAa,YAEvB35G,GAAK0E,cAAc,CAAEC,GAAI,uBAE5B,eAAC2mM,GAAA,EAAD,CAAO/xF,UAAU,0BAAjB,UACG7wF,GAAK2pG,iBAAmB,MAAO,IAChC,cAAC,GAAD,CACE6tF,WAAYP,KAAYpvM,KACxBwwK,aAAY,OAAEr4J,SAAF,IAAEA,QAAF,EAAEA,GAAMqhF,UACpBv+E,OAAM,iBAAE9C,SAAF,IAAEA,QAAF,EAAEA,GAAM8C,cAAR,SAAmB,aAKjC,oBAAI+tF,UAAW,2BACf,eAACiuF,GAAA,EAAD,WACE,eAACplB,GAAA,EAAD,WACE,eAACkpB,GAAA,EAAD,CAAO/xF,UAAU,oBAAjB,UACE,cAAC,KAAD,CAAM9oG,MAAOyqF,GAAS1qF,KAAM,GAAI4oG,MAAO,CAAEO,YAAa,YACrD35G,GAAK0E,cAAc,CAAEC,GAAI,yBAE5B,cAAC2mM,GAAA,EAAD,CAAO/xF,UAAU,0BAAjB,SACI0qG,mBAAQv7L,GAAKotF,aAAkC,MAAnBptF,GAAKotF,iBAGvC,eAACssE,GAAA,EAAD,CAAK7oE,UAAW,cAAhB,UACE,eAAC+xF,GAAA,EAAD,CAAO/xF,UAAU,oBAAjB,UACE,cAAC,KAAD,CAAM9oG,MAAOyqF,GAAS1qF,KAAM,GAAI4oG,MAAO,CAAEO,YAAa,YACrD35G,GAAK0E,cAAc,CAAEC,GAAI,sBAAyB,QAErD,cAAC2mM,GAAA,EAAD,CAAO/xF,UAAU,0BAAjB,SACI0qG,mBAAQv7L,GAAK27L,cAAoC,MAApB37L,GAAK27L,qBAI1C,oBAAI9qG,UAAW,2BACf,eAACiuF,GAAA,EAAD,WACE,eAACplB,GAAA,EAAD,WACE,eAACkpB,GAAA,EAAD,CAAO/xF,UAAU,oBAAjB,UACE,cAAC,KAAD,CACEn0G,KAAM,cACNqL,MAAOyqF,GACP1qF,KAAM,GACN4oG,MAAO,CAAEO,YAAa,YAEvB35G,GAAK0E,cAAc,CAAEC,GAAI,mBAE5B,cAAC2mM,GAAA,EAAD,CAAO/xF,UAAU,0BAAjB,SAA4C7wF,GAAKupG,aAAe,WAEjEsxF,GAAoBhrM,KAAI,SAACkrM,EAAWh2L,GAAZ,OACvB,eAAC,WAAD,WACGA,EAAI,IAAM,GAAK,oBAAI8rF,UAAW,2BAC/B,eAAC6oE,GAAA,EAAD,CAAK7oE,UAAW9rF,EAAI,IAAM,EAAI,cAAgB,GAA9C,UACE,eAAC69K,GAAA,EAAD,CAAO/xF,UAAU,oBAAjB,UACE,cAAC,KAAD,CAAU9oG,MAAOyqF,GAAS1qF,KAAM,GAAI4oG,MAAO,CAAEO,YAAa,YACzD35G,GAAK0E,cAAc,CAAEC,GAAI8+M,EAAU53M,WAEtC,cAACy/L,GAAA,EAAD,CAAO/xF,UAAU,0BAAjB,SACGkqG,EAAU1B,cACT,KAC4B,MAA3B0B,EAAU1B,cAAwB0B,EAAUr8E,OAAe,WAVrD35G,SAgBnB,oBAAI8rF,UAAW,4BACd,iBAAC7wF,SAAD,IAACA,IAAD,UAACA,GAAMI,qBAAP,iBAAC,EACE+J,QAAO,SAACr8B,GAAD,cAAYA,QAAZ,IAAYA,OAAZ,EAAYA,EAAQo3B,yBAD9B,iBAAC,EAEEiF,QAAO,SAACr8B,GAAD,OACPuhB,+BAA2C5Q,GAAO,CAChD68M,KAAgB,eAAD,OAAgBxtN,EAAOo3B,6BAJ3C,aAAC,EAMGrO,cANJ,QAMc,GAAK,GAClB,qCACE,eAAC+rL,GAAA,EAAD,CAAO/xF,UAAU,oBAAjB,UACE,cAAC,KAAD,CACEn0G,KAAM,YACNqL,MAAOyqF,GACP1qF,KAAM,GACN4oG,MAAO,CAAEO,YAAa,YAEvB35G,GAAK0E,cAAc,CAAEC,GAAI,qBAE5B,cAAC2/I,GAAA,EAAD,CACE7+I,SAAU,OACV8+I,QAAO,iBACL77H,SADK,IACLA,IADK,UACLA,GAAMI,qBADD,iBACL,EACI+J,QAAO,SAACr8B,GAAD,cAAYA,QAAZ,IAAYA,OAAZ,EAAYA,EAAQo3B,yBAF1B,aACL,EAEIrV,KAAI,SAAC/hB,EAAQi3B,GAAT,OACJ,cAACg1G,GAAA,EAAD,CACElpB,UAAW,QACX50G,GAAI,gBAAkB8oB,EACtBroB,KAAM+lJ,aAAkB30J,EAAOo3B,gBAC/B9yB,YAAa,CAACkpN,KAAgB,eAAD,OAAgBxtN,EAAOo3B,kBACpDg1G,YAAa,kBA5jBpB,SAACl6G,EAAMlyB,GAClBA,EAAO8tN,wBACTl+M,2BAA+B,CAC7BpB,QAAShF,GAAK0E,cACZ,CAAEC,GAAI,iCACN,CACE+jB,KAAMA,EAAKsF,SACXx3B,OAAQwJ,GAAK0E,cAAc,CACzBC,GAAI,wBAA0BnO,EAAOo3B,mBAI3Cp3B,OAV6B,WAW3BuoB,GAASgN,sBAAgCrD,EAAK8C,OAAQh1B,EAAOo3B,oBAI7Dp3B,EAAO+tN,kBACTr4D,aAAqC,CACnC1gI,OAAQ9C,EAAK8C,OACboC,eAAgBp3B,EAAOo3B,iBACtBphB,MAAK,SAAC5I,GACHA,EAASqB,UACX08M,GAAoB,CAClB91M,MAAO7L,GAAK0E,cAAc,CACxBC,GAAI,wBAA0BnO,EAAOo3B,iBAEvC1hB,MAAO,QACP27L,OAAQjkM,EAASnB,KAAK8V,KAAI,SAAC9L,GACzB,IAAM+3M,EAAQvtN,KAAcwV,GAC5B,MAAO,CACLhW,KAAM+tN,EAAMC,UACZ7/M,KAAM,SAAW4/M,EAAME,wBACvB53M,aAAc03M,EAAMx3M,WACpB2yF,SAAU6kH,EAAMG,WAChB7rG,MAAO0rG,EAAMI,cACbtnG,YAAaknG,EAAMK,kBACnB1mG,gBAAiBqmG,EAAMtF,oBACvBv4F,IAAuB,MAAlB69F,EAAM9E,SAAmB8E,EAAM9E,cAAW76M,EAC/C+hH,IAAuB,MAAlB49F,EAAM/E,SAAmB+E,EAAM/E,cAAW56M,MAGnDrO,OAAQ,SAACk9B,GAAD,OACN3U,GACEgN,sBACErD,EAAK8C,OACLh1B,EAAOo3B,eACPhqB,EAASnB,KACN8V,KAAI,SAAC9L,GACJ,IAAM+3M,EAAQvtN,KAAcwV,GAC5B,OACE+3M,EAAME,wBACN,IACAhxL,EAAO,SAAW8wL,EAAME,4BAG3BluK,KAAK,UAIhB62J,IAAuB,OAGtBtuL,GAASgN,sBAAgCrD,EAAK8C,OAAQh1B,EAAOo3B,iBA6f7Bk3L,CAASp8L,GAAMlyB,IAClCqsI,eAAgB7iI,GAAK0E,cAAc,CACjCC,GAAI,wBAA0BnO,EAAOo3B,6BAXxC,QAcG,KAGZ,oBAAI2rF,UAAW,8BAGnB,cAAC,KAAD,CACEA,UAAW,uCACX92G,KAAM,EACJ,iBAACimB,SAAD,IAACA,IAAD,UAACA,GAAME,qBAAP,iBAAC,EAAqBiK,QACpB,SAACu0G,GAAD,OAAkB,OAANA,QAAM,IAANA,OAAA,EAAAA,EAAQo2E,gBAA0C,IAAzBp2E,EAAOo2E,wBAD9C,aAAC,EAEEj+L,cAFH,QAEa,GAAK,EACd,CACE1T,MAAO7L,GAAK0E,cAAc,CAAEC,GAAI,6BAChCsB,QACE,cAAC43M,GAAD,CACEn1L,KAAMA,GACNlT,QAAO,UAAEkT,GAAKlT,eAAP,aAAE,EAAcqd,QAAO,SAACquK,GAAD,OAA2B,IAApBA,EAAEsc,yBAI7C34M,GACJ,iBAAC6jB,SAAD,IAACA,IAAD,UAACA,GAAME,qBAAP,iBAAC,EAAqBiK,QACpB,SAACu0G,GAAD,OAAkB,OAANA,QAAM,IAANA,OAAA,EAAAA,EAAQo2E,gBAA0C,IAAzBp2E,EAAOo2E,wBAD9C,aAAC,EAEEj+L,cAFH,QAEa,GAAK,EACd,CACE1T,MAAO7L,GAAK0E,cAAc,CAAEC,GAAI,0BAChCsB,QACE,cAACm3M,GAAD,CACE10L,KAAMA,GACNlT,QAAO,UAAEkT,GAAKlT,eAAP,aAAE,EAAcqd,QAAO,SAACquK,GAAD,OAA4B,KAApB,OAADA,QAAC,IAADA,OAAA,EAAAA,EAAGsc,kBACxC51E,YAAaA,WAInB/iI,GACJ,iBAAC6jB,SAAD,IAACA,IAAD,UAACA,GAAME,qBAAP,iBAAC,EAAqBiK,QACpB,SAACu0G,GAAD,OAAkB,OAANA,QAAM,IAANA,OAAA,EAAAA,EAAQo2E,gBAA0C,KAAzBp2E,EAAOo2E,wBAD9C,aAAC,EAEEj+L,cAFH,QAEa,GAAK,EACd,CACE1T,MAAO7L,GAAK0E,cAAc,CAAEC,GAAI,0BAChCsB,QACE,cAACuhM,GAAA,EAAD,iBACG9+K,SADH,IACGA,IADH,UACGA,GAAME,qBADT,kBACG,EACGiK,QACA,SAACu0G,GAAD,OAAkB,OAANA,QAAM,IAANA,OAAA,EAAAA,EAAQo2E,gBAA0C,KAAzBp2E,EAAOo2E,wBAHlD,cACG,GAIGjlM,KAAI,SAAC6uH,EAAQ35G,GAAT,OACJ,eAAC,WAAD,WACGA,EAAI,IAAM,GAAW,IAANA,GACd,oBAAI8rF,UAAW,2BAEjB,eAAC6oE,GAAA,EAAD,CAAK7oE,UAAW9rF,EAAI,IAAM,EAAI,cAAgB,GAA9C,UACE,eAAC69K,GAAA,EAAD,CAAO/xF,UAAU,oBAAjB,UACE,cAAC,KAAD,CACEn0G,KAAM,aACNqL,MAAOyqF,GACP1qF,KAAM,GACN4oG,MAAO,CAAEO,YAAa,YAEvBytB,EAAOq2E,qBAEV,cAACnS,GAAA,EAAD,CAAO/xF,UAAU,0BAAjB,mBAA+C6tB,EAAOw2E,YAAtD,YAAqEx2E,EAAO83E,4BAdjEzxL,cAqBzB5oB,GACJguB,QAAO,SAACpvB,GAAD,OAAOA,aAKvB+9M,IACC,cAAC,KAAD,CACEuD,qBAAqB,EACrBC,gBAAiB,CAAEC,QAAS,CAAExoG,OAAQ,MACtCyoG,WAAU,OAAEx8L,SAAF,IAAEA,QAAF,EAAEA,GAAM4F,WAClB62L,aACE,qCACE,wCAASnlN,GAAK0E,cAAc,CAAEC,GAAI,gBAAlC,+BACE+jB,SADF,IACEA,QADF,EACEA,GAAMw7L,yBADR,UAC6B,SAE7B,wCAASlkN,GAAK0E,cAAc,CAAEC,GAAI,oBAAlC,+BACE+jB,SADF,IACEA,QADF,EACEA,GAAM08L,uBADR,UAC2B,SAE3B,wCAASplN,GAAK0E,cAAc,CAAEC,GAAI,wBAAlC,+BACE+jB,SADF,IACEA,QADF,EACEA,GAAM28L,2BADR,UAC+B,SAE/B,wCAASrlN,GAAK0E,cAAc,CAAEC,GAAI,sBAAlC,+BACE+jB,SADF,IACEA,QADF,EACEA,GAAM48L,yBADR,UAC6B,SAE7B,wCAAStlN,GAAK0E,cAAc,CAAEC,GAAI,4BAAlC,cACM,OAAJ+jB,SAAI,IAAJA,QAAA,EAAAA,GAAM68L,yBACF9mH,KAAO/1E,GAAK68L,yBAAyB7mH,OAAO,cAC5C,SAEN,wCAAS1+F,GAAK0E,cAAc,CAAEC,GAAI,qBAAlC,aAA4D3E,GAAK0E,cAAc,CAC7EC,IAAQ,OAAJ+jB,SAAI,IAAJA,QAAA,EAAAA,GAAM88L,kBAAmB,aAAe,iBAE9C,wCAASxlN,GAAK0E,cAAc,CAC1BC,GAAI,6BADN,aAEO3E,GAAK0E,cAAc,CACxBC,IAAQ,OAAJ+jB,SAAI,IAAJA,QAAA,EAAAA,GAAM+8L,0BAA2B,aAAe,oBAI1DC,QAAO,kBAAEh9L,SAAF,IAAEA,QAAF,EAAEA,GAAM6iK,mBAAR,UAAuB,GAC9Bo6B,eAAgB,kBAAMlE,IAAkB,MAG5C,cAACxO,GAAA,EAAD,aACEnnM,YAAa9L,GAAK0E,cAAc,CAAEC,GAAI,mBACtCujM,kBAAmBkF,GACnBnD,qBAAsB,kBAAMoD,IAAuB,KAC/CqU,KAEN,cAAC,GAAD,CACEvZ,iBAAkB,WAChBkZ,IAA6B,IAE/BxL,kBAAmBuL,GACnBv1M,MAAK,OAAE6c,SAAF,IAAEA,QAAF,EAAEA,GAAMsF,SACbtF,KAAMA,GACNoyL,gBAAiB0F,KAEnB,cAAC,GAAD,CACErY,iBAAkB,WAChBwY,IAAsC,IAExC5K,gCAAiCA,GACjCC,kCAAmCA,GACnCH,kBAAmB6K,GACnB5K,wBAAyBA,GACzBjqM,MAAO7L,GAAK0E,cAAc,CAAEC,GAAI,oCAChCsxM,aAAcA,GACdE,gBAAiBA,GACjBD,gBAAiBA,GACjBlM,SAAQ,kBAAEthL,SAAF,IAAEA,QAAF,EAAEA,GAAMsF,gBAAR,UAAoB,GAC5BtF,KAAMA,KAER,cAAC,GAAD,CACEy/K,iBAAkB,WAChB8Y,IAAoC,IAEtCpL,kBAAmBmL,GACnBn1M,MAAO7L,GAAK0E,cAAc,CAAEC,GAAI,kCAChCqlM,SAAQ,kBAAEthL,SAAF,IAAEA,QAAF,EAAEA,GAAMsF,gBAAR,UAAoB,GAC5BtF,KAAMA,KAER,cAAC,GAAD,CACEy/K,iBAAkB,WAChB4Y,IAAoC,IAEtClL,kBAAmBiL,GACnBp4L,KAAMA,KAER,cAACk9L,GAAA,EAAD,CACEzd,iBAAkB,WAChBgZ,IAAwB,IAE1BtL,kBAAmBqL,GACnBx4L,KAAMA,KAER,cAACm9L,GAAA,EAAD,CACE3d,kBAAmB0Y,GACnBkF,iCAAkC,WAChCjF,IAA0B,IAE5Br1L,OAAM,OAAE9C,SAAF,IAAEA,QAAF,EAAEA,GAAM8C,OACdwC,SAAQ,OAAEtF,SAAF,IAAEA,QAAF,EAAEA,GAAMsF,WAElB,cAAC+3L,GAAA,EAAD,CACE/xK,YACWnvC,IAAT6jB,IAA+B,OAATA,GAClB,CAAE4sB,SAAQ,OAAE5sB,SAAF,IAAEA,QAAF,EAAEA,GAAM4sB,SAAUhnB,WAAU,OAAE5F,SAAF,IAAEA,QAAF,EAAEA,GAAM4F,iBAC9CzpB,EAENqjM,kBAAmBoZ,GACnB0E,oCAAqC,WACnCzE,IAA6B,SCrkCvC,IAAM0E,GAAW,SAACr5M,GAGhB,IAAM2L,EAAMqjL,YAAa,CACvBC,QAAS,WACPqqB,QAQFnqB,GAJeoqB,cACD7I,cAoBZ1wM,EAjBFmvL,qBACAC,EAgBEpvL,EAhBFovL,uBAFF,EAkBIpvL,EAfFw5M,iBAHF,WAkBIx5M,EAdFy5M,sBAJF,WAkBIz5M,EAbFqI,aALF,MAKU,GALV,EAMEqxM,EAYE15M,EAZF05M,gBANF,EAkBI15M,EAXFk0L,kCAPF,WAkBIl0L,EAVF25M,qCARF,WAkBI35M,EATFk7K,sBATF,SAUEsP,EAQExqL,EARFwqL,YACA0e,EAOElpM,EAPFkpM,wBAXF,GAkBIlpM,EANFyqL,gBAMEzqL,EALF45M,mDAbF,SAcEC,EAIE75M,EAJF65M,6BACAxQ,EAGErpM,EAHFqpM,aACAC,EAEEtpM,EAFFspM,gBACAC,EACEvpM,EADFupM,gBAKF,EAA0EzzE,aACxE,SAACnsI,GAAD,YAAY,CACV4Q,MAAO5Q,EACPS,KAAM+gB,cAA0BxhB,GAChCmwN,mBAA+B,OAAZzQ,QAAY,IAAZA,OAAA,EAAAA,EAAczqL,SAAd,UACfuqB,UAAsBx/C,EAAtB,OAA6B0/M,QAA7B,IAA6BA,OAA7B,EAA6BA,EAAczqL,eAD5B,QAEf,KACJorG,8BAA+B7gF,gCAA4Cx/C,OAPvE4Q,EAAR,EAAQA,MAAOnQ,EAAf,EAAeA,KAAM0vN,EAArB,EAAqBA,kBAAmB9vF,EAAxC,EAAwCA,8BAWlC+vF,EAAwB9nE,mBACxB9/H,EAAWipI,cACjB,EAA4EhlB,oBAAS,GAArF,mBAAO4jF,EAAP,KAAuCC,EAAvC,KACA,EAA0C7jF,qBAA1C,oBAAO8jF,GAAP,MAAsBC,GAAtB,MACA,GAAyE/jF,oBAAkB,GAA3F,qBAAOgkF,GAAP,MAAoChR,GAApC,MAEAj6F,qBAAU,WACJigF,GACFA,EAAuB,2BAClBD,GADiB,IAEpB9mL,MAA+B,OAAZ,OAAZghM,QAAY,IAAZA,OAAA,EAAAA,EAAczqL,aAGxB,CAACyqL,IAEJ,IAAMgR,GAAgB,SAACtpE,GAEnB,IAAIghD,EADFqoB,KAGAroB,EADEhhD,aAAkBC,IAAE6/C,OACjB9/C,EAEAC,IAAED,OAAOA,GAEhBplI,EAAIs/K,YAAY,CAAC8G,GAAK,CACpBpD,mBAAoB,CAAC,IAAK,GAC1BC,eAAgB,CAAC,EAAG,IACpBpG,QAAS,GACTqG,QAAS,KAAOljL,EAAImjL,cAKpB2b,GAAU,WACVsP,EAAsBn4C,SAAS8oC,cAAcqP,EAAsBn4C,UAGzEzyD,qBAAU,WACR,OAAO,kBAAMs7F,QACZ,IAEHhkC,aAAqB,WACnB,GAAIp+J,EAAMsK,OAAS,EAAG,CACpB,GAAIuhL,GAA8BvoL,EAChC,GAAoB,GAAhBtD,EAAMsK,OAAa,CACrB,IAAO2nM,EAAP,YAAoBjyM,EAApB,MACA,GAA2B,OAAd,OAATiyM,QAAS,IAATA,OAAA,EAAAA,EAAWxxL,WAA4C,OAAf,OAATwxL,QAAS,IAATA,OAAA,EAAAA,EAAWvxL,WAAmB,CAC/D,IAAIgpK,EAAK/gD,IAAED,OAAF,OAASupE,QAAT,IAASA,OAAT,EAASA,EAAWxxL,SAApB,OAA8BwxL,QAA9B,IAA8BA,OAA9B,EAA8BA,EAAWvxL,WAClDpd,EAAIs/K,YAAY8G,EAAG7G,SAAS,KAAM,SAE/B,CACL,IAAIxtB,EAAS1sB,IAAE2/C,aAAatoL,EAAMsD,KAAI,SAAC2nL,GAAD,MAAS,CAACA,EAAIxqK,SAAUwqK,EAAIvqK,eAClEpd,EAAI+kL,UAAUhzB,GAGlB+sC,MACI+O,GAAaC,KACftnM,EAASgN,kCACT46L,EAAsBn4C,QAAUupC,aAAY,WAC1Ch5L,EAASgN,oCACR5hB,UAGN,EACA8K,GAAS,IAAIsD,KAAI,SAACmQ,GAAD,cAAUA,QAAV,IAAUA,OAAV,EAAUA,EAAM8C,UAClCs1K,EACAslB,EACAC,IAIFtqG,qBAAU,WACR,IAAK6a,EACH,GAAI4vF,GAA8CD,GAChD,GAAIE,EAA8B,CAChC,IAAMU,EAAyBpxK,UAAsB5uC,EAAOs/M,GAE5D,GACEK,KAAkBL,GACkB,OAAd,OAAtBU,QAAsB,IAAtBA,OAAA,EAAAA,EAAwBzxL,WACa,OAAf,OAAtByxL,QAAsB,IAAtBA,OAAA,EAAAA,EAAwBxxL,WACxB,CACAoxL,GAAiBI,EAAuB37L,QAEpC0qL,GAAiBA,EAAgBiR,GACrC,IAAIxoB,EAAK/gD,IAAED,OAAOwpE,EAAuBzxL,SAAUyxL,EAAuBxxL,WAC1Epd,EAAIs/K,YAAY8G,EAAG7G,SAAS,KAAM,IAEpC+uB,GAAkC,SAGhCC,KACFC,QAAiBliN,GACbqxM,GAAiBA,EAAgB,IACrC2Q,GAAkC,MAKvC,CAACJ,EAA8B7vF,IAEpB9a,iBAAiBrS,SAASvxF,MAAxC,IAIIylL,GAA4BC,WAC5Bx4L,QAAgCP,EAChCijL,GAAkBvvK,GAAOA,EAAImjL,UAAY,KAC3CiC,GAA4BhE,EAC5Bv0L,GAAO,cAAC,KAAD,CAAMA,KAAM,WAAYoL,KAAM,MAGvC,OAAsCwyH,mBAAgB,IAAtD,qBAAOokF,GAAP,MAAoBC,GAApB,MACMnB,GAAe,WACnBmB,GACEpyM,EAAM4d,QACJ,SAACnK,GAAD,OACEA,GACkB,OAAd,OAAJA,QAAI,IAAJA,OAAA,EAAAA,EAAMgN,WACa,OAAf,OAAJhN,QAAI,IAAJA,OAAA,EAAAA,EAAMiN,cACLpd,GAAMA,EAAIy/K,YAAYljB,SAASl3B,IAAED,OAAOj1H,EAAKgN,SAAUhN,EAAKiN,kBAqBrE,OAhBAomF,qBAAU,WAC2B,OAAd,OAAjB2qG,QAAiB,IAAjBA,OAAA,EAAAA,EAAmBhxL,WAAoD,OAAf,OAAjBgxL,QAAiB,IAAjBA,OAAA,EAAAA,EAAmB/wL,YAC5DsxL,GAAc,CAACP,EAAkBhxL,SAAUgxL,EAAkB/wL,cAC9D,QAAC+wL,QAAD,IAACA,OAAD,EAACA,EAAmBhxL,SAApB,OAA8BgxL,QAA9B,IAA8BA,OAA9B,EAA8BA,EAAmB/wL,YAEpD09I,aAAqB,WACnB6yC,OACC,CACDE,EADC,OAEDnxM,QAFC,IAEDA,OAFC,EAEDA,EAAOsD,KAAI,SAACmQ,GAAD,MAAW,CACpBgN,SAAQ,OAAEhN,QAAF,IAAEA,OAAF,EAAEA,EAAMgN,SAChBC,UAAS,OAAEjN,QAAF,IAAEA,OAAF,EAAEA,EAAMiN,UACjBgtF,aAAY,OAAEj6F,QAAF,IAAEA,OAAF,EAAEA,EAAMi6F,mBAKtB,sCACIyjG,GAAaC,IACb,cAAC1oB,GAAD,2BAAgCv4L,GAAO,CAAEA,cAASP,GAAlD,aACGuiN,GAAY7uM,KAAI,SAACmQ,GAAU,IAAD,IACzB,OACmB,MAAjBA,EAAKgN,UACa,MAAlBhN,EAAKiN,YACHywL,IAAcC,GAAoBA,GAAkB39L,EAAKi6F,eACzD,8BACE,cAACo8E,EAAA,EAAD,CAEEd,aACEqoB,GACAA,EAAgB/mM,OAAS,GACzB+mM,EAAgBvqN,SAAS2sB,EAAK8C,QAC1B,IACA,IAEN+0K,aAAa,EACbn7L,KAAMw4I,IAAEK,QAAQ,CACd1kC,UAAW,kBACXhQ,KAAM8lF,yBACJ,cAAC,KAAD,CACEjqL,KAAI,UAAK8lJ,aAAYxiI,EAAK6oG,UAAtB,QACF,iBAAC+0F,QAAD,IAACA,OAAD,EAACA,EAAiB/mM,cAAlB,QAA4B,GAAK,KAChC,OAAC+mM,QAAD,IAACA,IAAmB,IAAIvqN,SAAS2sB,EAAK8C,QACnC,YACA,IAEN4tF,MAAO,CAAE3oG,MAAO,4BAChBD,KAAM,MAGVsyH,SAAU,CAAC,GAAI,IACfob,WAAY,CAAC,GAAI,IACjBC,YAAa,CAAC,GAAI,MAEpB14I,SAAU,CAACijB,EAAKgN,SAAUhN,EAAKiN,WAC/BsjK,cAAe,CACbC,MAAO,SAAC14F,GAMF01G,GAAiBA,EAAgBxtL,GACjC69L,GACFM,GAAkC,GAEpCI,GAAczmH,EAAEw+F,UAxCtB,SA4CG5H,GACC,eAAC8G,EAAA,EAAD,CACEuC,UAAyC,IAA1B,OAAJzpM,QAAI,IAAJA,OAAA,EAAAA,EAAMO,sBACjB47K,UAAW,MACXgrB,OAAQ,CAAC,GAAI,IACb5kF,UAAW,iBAJb,UAME,mBAAGA,UAAU,cAAcH,MAAO,CAAE8D,SAAU,QAA9C,SACGx0F,EAAKsF,WAPV,OASGh3B,QATH,IASGA,GATH,UASGA,EAAMQ,yBATT,aASG,EAAyBuD,MAAM,KAAKwd,KAAI,SAAC+uM,GAAD,OACvC,qCACQ,KAALA,GACC,qCACE,uBACA,+BACIrD,mBAAQv7L,EAAKkd,cAAoC,MAApBld,EAAKkd,kBAIpC,KAAL0hL,GACC,qCACE,uBACA,+BACG5+L,EAAKk9F,QACFnnB,KAAO/1E,EAAKk9F,SAASlnB,OAAO,oBAC5B,WAIJ,KAAL4oH,GACC,qCACE,uBACA,+BACG5+L,EAAK4iI,sBACF7sD,KAAO/1E,EAAK4iI,uBAAuB5sD,OAAO,oBAC1C,WAIJ,KAAL4oH,GACC,qCACE,uBACA,+BAAO5+L,EAAKypG,gBAAkB,WAG5B,KAALm1F,GACC,qCACE,uBACA,+BAAO5+L,EAAKupG,aAAe,iBAMlCvpG,EAAKg4K,cACJ,qCACE,uBADF,IACS,uBACP,cAACC,EAAA,EAAD,CACElnF,IAAK/wF,EAAKg4K,aACVhnF,OAAO,KACPxtG,MAAM,KACNktG,MAAO,CACLC,QAAS,QACTylC,WAAY,OACZnlC,YAAa,mBA9GnBjxF,EAAK8C,eA4HD,OAAvBsqL,QAAuB,IAAvBA,OAAA,EAAAA,EAAyBhkC,MACxB78J,EACG4d,QAAO,SAACnK,GAAD,OAAUA,IAAI,OAAIA,QAAJ,IAAIA,OAAJ,EAAIA,EAAM8C,WAC/BjT,KAAI,SAACmQ,GAAD,OACH,cAAC43L,GAAD,CACEnY,iBAAkB,aAClB6N,kCAAmC,aAEnCF,wBAAyBA,EACzBD,kBAAmB+Q,EACnB/6M,MAAK,OAAE6c,QAAF,IAAEA,OAAF,EAAEA,EAAMsF,SACbxC,OAAM,OAAE9C,QAAF,IAAEA,OAAF,EAAEA,EAAM8C,OACdyqL,aAAcA,EACdE,gBAAiBA,EACjBD,gBAAiBA,GAVnB,OAGOxtL,QAHP,IAGOA,OAHP,EAGOA,EAAM8C,YAUH,OAAZyqL,QAAY,IAAZA,OAAA,EAAAA,EAAczqL,QAChB,cAAC80L,GAAD,CACEnY,iBAAkB,WAChB0e,GAAkC,GAE9B3Q,GAAiBA,OAAgBrxM,IAEvCkxM,iCAAiC,EACjCC,kCAAmCA,GACnCF,wBAAyBA,EACzBD,kBAAmB+Q,EACnB/6M,MAAK,OAAEoqM,QAAF,IAAEA,OAAF,EAAEA,EAAcjoL,SACrBxC,OAAM,OAAEyqL,QAAF,IAAEA,OAAF,EAAEA,EAAczqL,OACtByqL,aAAcA,EACdE,gBAAiBA,EACjBD,gBAAiBA,IAEjB,SAKV+P,GAASzmG,aAAe,CACtBshF,4BAA4B,EAC5BylB,+BAA+B,EAC/BtxM,MAAO,GACPmxM,WAAW,EACXt+B,gBAAgB,EAChBuP,iBAAiB,EACjBmvB,4CAA4C,EAC5CpvB,aAAa,EACbqvB,kCAA8B5hN,EAC9BwhN,gBAAgB,GAGHJ,U,+BC3YTsB,GAAe,SAAC36M,GACpB,MAA6DA,EAArDnH,gBAAR,MAAmB,aAAnB,EAAiC8tL,EAA4B3mL,EAA5B2mL,wBAE3BC,EAAUC,cACVzzL,EAAOG,cA+Cb,OA9CA47G,qBAAU,WACR,IAAM06E,EAAYjD,EAAQkD,gBAAkBlD,EAAQj7K,IAChDivM,EAAY,CACd/hN,SAAUA,EACVgiN,yBAA0BznN,EAAK0E,cAAc,CAC3CC,GAAI,uCAEN+iN,kBAAmB1nN,EAAK0E,cAAc,CAAEC,GAAI,gCAC5CgjN,eAAgB3nN,EAAK0E,cAAc,CAAEC,GAAI,6BACzCijN,kBAAmB5nN,EAAK0E,cAAc,CAAEC,GAAI,gCAC5CkjN,kBAAmB7nN,EAAK0E,cAAc,CAAEC,GAAI,gCAC5CmjN,gBAAiB9nN,EAAK0E,cAAc,CAAEC,GAAI,8BAE1CojN,sBAAuB,GACvBC,oBAAqBC,IAAeC,qBAClC,mCACE,cAAC,KAAD,CAAY13M,KAAM,QAGtB23M,kBAAmBF,IAAeC,qBAChC,mCACE,cAAC,KAAD,CAAG13M,KAAM,QAGb43M,sBAAuBpoN,EAAK0E,cAAc,CAAEC,GAAI,oCAChD0jN,uBAAwBroN,EAAK0E,cAAc,CAAEC,GAAI,qCACjD2jN,kBAAkB,EAClBC,kBAAmBvoN,EAAK0E,cAAc,CAAEC,GAAI,gCAC5C6jN,iBAAiB,EACjBC,iBAAkB,CAEhBpjN,KAAMrF,EAAK0E,cAAc,CAAEC,GAAI,oCAC/B+jN,OAAQ1oN,EAAK0E,cAAc,CAAEC,GAAI,sCACjCgkN,UAAW3oN,EAAK0E,cAAc,CAAEC,GAAI,yCACpCikN,cAAe5oN,EAAK0E,cAAc,CAAEC,GAAI,+CAGtCg4G,EAAUihC,IAAEjhC,QAAQksG,gBAAgBrB,GAI1C,OAFA/wB,EAAUG,WAAWj6E,GAEd,WACL85E,EAAUM,cAAcp6E,MA1CnB,YA4CF42E,IAEA,MAGTg0B,GAAa/nG,aAAe,CAC1B/5G,SAAU,aACV4iL,YAAY,EACZkL,wBAAyB,IAGZg0B,U,kFCrDTrsH,GADQ4gB,iBAAiBrS,SAASvxF,MAClBqlK,iBAAiB,aAAaz+E,OAa9CgqH,GAA0B,SAACl8M,GAAoC,IAAD,EAC1DqvL,EAAmFrvL,EAAnFqvL,cAAe8sB,EAAoEn8M,EAApEm8M,iBAAvB,EAA2Fn8M,EAAlDnH,gBAAzC,MAAoD,UAApD,EAA+D8tL,EAA4B3mL,EAA5B2mL,wBACzDC,EAAUC,cACVzzL,EAAOG,cACPoY,EAAM0+K,cACNl4K,EAAWipI,cAGjB,EAA8ChlB,mBAAgB,IAA9D,mBAAOgmF,EAAP,KAAqBC,EAArB,KACMC,EAAwBhd,IAAMrtD,OAAOmqE,GAC3C,EAAwDhmF,oBAAS,GAAjE,mBAAOoqE,EAAP,KAA8BC,EAA9B,KACM8b,EAA2Bjd,IAAMrtD,OAAOuuD,GAC9C,EAAgDpqE,mBAAc,CAAE6kE,OAAQ,KAAxE,mBAAO6Z,EAAP,KAAyBC,EAAzB,KACMyH,EAAsBld,IAAMrtD,OAAO6iE,GACzC,EAA8C1+E,wBAAcn+H,GAA5D,mBAAOwkN,EAAP,KAAwBC,EAAxB,KACMC,EAAqBrd,IAAMrtD,OAAOwqE,GAClCG,IAAiB/tN,SAAQ,UAAC0U,KAAIs5M,6BAAL,QAA8B,KAE7D,EAAgC/mF,aAAY,SAACnsI,GAAD,YAAY,CACtD4Q,MAAO5Q,EACP0mM,aAAcl7J,IAA8BxrC,EAA9B,OAAqC8yN,QAArC,IAAqCA,GAArC,UAAqCA,EAAiB5rM,gBAAtD,aAAqC,EAA2B4lG,sBAFxEl8G,EAAR,EAAQA,MAAO81L,EAAf,EAAeA,aAKflhF,qBAAU,WACR,UAAIkhF,QAAJ,IAAIA,OAAJ,EAAIA,EAAch+K,WAGhB,OAFAs4K,EAAkBh/K,GAAK,EAAM0kL,GAC7Bl+K,EAASm+K,IAAkCD,EAAah+K,aACjD,WACLF,EAASm+K,IAAkCD,EAAah+K,gBAG3D,QAACg+K,QAAD,IAACA,OAAD,EAACA,EAAch+K,aAElB88F,qBAAU,WACRwtG,EAAmB/6C,QAAU66C,OACLxkN,IAApBwkN,GACFrrM,MAED,CAACqrM,IAEJttG,qBAAU,WACRotG,EAAyB36C,QAAU4+B,IAClC,CAACA,IAEJrxF,qBAAU,WACRqtG,EAAoB56C,QAAUkzC,IAC7B,CAACA,IAEJ3lG,qBAAU,WACRmtG,EAAsB16C,QAAUw6C,IAC/B,CAACA,IAEJ,IAAMhrM,EAAe,WAAO,IAAD,4DACnBs7K,EAAQiwB,EAAmB/6C,QAAQ8qB,MACnCjO,EAAQiO,EAAMf,GAAGmxB,OAASpwB,EAAMf,GAAGmxB,OAAO9hH,OAAO,GAAGngG,cAAgB,IACpEkiN,EAAyB,KAATt+B,EAAeiO,EAAMD,iBAAcx0L,EACzDqkN,EAAsB16C,QAAQ9pJ,SAAQ,SAACs9E,GACrC,IACMs3F,EAAMswB,QAAQxuG,QAAQn8F,YAAc+iF,EAAE4nH,QAAQxuG,QAAQn8F,YACxD+iF,EAAEu2F,GAAG0Z,QAAQ,IAEf,cAGJ5E,GAAuB,GACvBsU,EAAoB,CAClB91M,OAAO,UAAA09M,EAAmB/6C,eAAnB,eAA4B/wJ,YAC/B,UAAA8rM,EAAmB/6C,eAAnB,eAA4B/wJ,SAASwB,YAArC,UACEsqM,EAAmB/6C,eADrB,aACE,EAA4B/wJ,SAASykB,aAEvCliC,EAAK0E,cAAc,CAAEC,GAAI,0BAC7BkjM,OAAQ,CACN,CACEpxM,KAAM,OACNqiH,MAAO94G,EAAK0E,cAAc,CAAEC,GAAI,mBAChCg7F,UAAU,EACV7yF,cAAc,UAAAy8M,EAAmB/6C,eAAnB,eAA4B/wJ,UAA5B,UACV8rM,EAAmB/6C,eADT,aACV,EAA4B/wJ,SAASykB,kBACrCr9B,EACJD,KAAM,eACN42G,2BAA4B,SAACtuG,GAAW,IAAD,EACrCosL,EAAMswB,QAAQxuG,QAAd,2BACKk+E,EAAMswB,QAAQxuG,SADnB,IAEEl5E,aAAch1B,IAEhBo8M,EAAmB,CACjBhwB,MAAOA,EACP77K,SAAS,2BAAD,QAAC,EAAM8rM,EAAmB/6C,eAA1B,aAAO,EAA4B/wJ,UAAnC,IAA6CykB,aAAch1B,MAErE,IACEosL,EAAMuwB,UAAU38M,GAChBosL,EAAMV,YACN,MAAOtgM,MAEXwxN,iBAtBF,SAsBmBp2L,EAAQ9mB,GACvB,OAAkB,OAAX8mB,QAA8B7uB,IAAX6uB,OAAuB7uB,EAC/C,cAAC,KAAD,CAAkBF,GAAI,2BAI5B,CACElO,KAAM,OACNqiH,MAAO94G,EAAK0E,cAAc,CAAEC,GAAI,8BAChCg7F,UAAU,EACV7yF,cAAc,UAAAy8M,EAAmB/6C,eAAnB,eAA4B/wJ,UAA5B,UACV8rM,EAAmB/6C,eADT,aACV,EAA4B/wJ,SAASssM,gBACrC,GACJnlN,KAAM,kBACN42G,2BAA4B,SAACtuG,GAAW,IAAD,EACrCosL,EAAMswB,QAAQxuG,QAAd,2BACKk+E,EAAMswB,QAAQxuG,SADnB,IAEE4uG,eAAgB98M,IAElBo8M,EAAmB,CACjBhwB,MAAOA,EACP77K,SAAS,2BAAD,QAAC,EAAM8rM,EAAmB/6C,eAA1B,aAAO,EAA4B/wJ,UAAnC,IAA6CssM,gBAAiB78M,QAI5E,CACEzW,KAAM,yBACNkpG,UAAU,EACV7yF,aAAcu+K,GAAgB,IAC9BzmL,KAAM,QACNklN,iBALF,SAKmBp2L,EAAQ9mB,GACvB,OAAkB,OAAX8mB,QAA8B7uB,IAAX6uB,OAAuB7uB,EAC/C,cAAC,KAAD,CAAkBF,GAAI,0BAG1Bw6G,UAAU,EACV3D,2BAA4B,SAACtuG,GAAW,IAAD,EACrCosL,EAAMswB,QAAQxuG,QAAd,2BACKk+E,EAAMswB,QAAQxuG,SADnB,IAEEiwE,MAAOn+K,IAETo8M,EAAmB,CACjBhwB,MAAOA,EACP77K,SAAS,2BAAD,QAAC,EAAM8rM,EAAmB/6C,eAA1B,aAAO,EAA4B/wJ,UAAnC,IAA6C4tK,MAAOn+K,QAIlEm+K,GAAkB,KAATA,EACL,CACE50L,KAAM,SACN4wI,gBAAgB,EAChBvuB,MAAO94G,EAAK0E,cAAc,CAAEC,GAAI,qBAChCg7F,UAAU,EACVgnB,IAAK,EACLugB,KAAM,EACNI,eAAe,EACfH,kBAAkB,EAClBhpB,gBAAiB,IACjByI,IAAK,IACLhiH,KAAM,SACNkI,cACE,UAAAy8M,EAAmB/6C,eAAnB,eAA4B/wJ,YAA5B,UAAwC8rM,EAAmB/6C,eAA3D,aAAwC,EAA4B/wJ,SAASwsJ,QAA7E,UACIs/C,EAAmB/6C,eADvB,aACI,EAA4B/wJ,SAASwsJ,OACrC0/C,EACNnuG,2BAA4B,SAACtuG,GAC3B,GAAIA,EAAO,CAAC,IAAD,EACTosL,EAAMswB,QAAQxuG,QAAd,2BACKk+E,EAAMswB,QAAQxuG,SADnB,IAEE6uD,OAAQ/8J,IAEVo8M,EAAmB,CACjBhwB,MAAOA,EACP77K,SAAS,2BAAD,QAAC,EAAM8rM,EAAmB/6C,eAA1B,aAAO,EAA4B/wJ,UAAnC,IAA6CwsJ,OAAQ/8J,MAE/D,IACEosL,EAAM2wB,UAAU/8M,GAChB,cAIR,GACJ,CACEzW,KAAM,cACNqiH,MAAO94G,EAAK0E,cAAc,CAAEC,GAAI,oBAChCg7F,UAAU,EACV/6F,KAAM,QACNkI,cACE,UAAAy8M,EAAmB/6C,eAAnB,eAA4B/wJ,YAA5B,UAAwC8rM,EAAmB/6C,eAA3D,aAAwC,EAA4B/wJ,SAAShN,OAA7E,UACI84M,EAAmB/6C,eADvB,aACI,EAA4B/wJ,SAAShN,WACrC5L,EACN22G,2BAA4B,SAACtuG,GAAW,IAAD,EACrCosL,EAAMswB,QAAQxuG,QAAd,2BACKk+E,EAAMswB,QAAQxuG,SADnB,IAEE3qG,MAAOvD,EAAM4xF,SAEfwqH,EAAmB,CACjBhwB,MAAOA,EACP77K,SAAS,2BAAD,QAAC,EAAM8rM,EAAmB/6C,eAA1B,aAAO,EAA4B/wJ,UAAnC,IAA6ChN,MAAOvD,EAAM4xF,WAGpE,IACEw6F,EAAM4Y,SAAS,CACbzhM,MAAOvD,EAAM4xF,SAEf,aAGN,CACEroG,KAAM,OACNqiH,MAAO94G,EAAK0E,cAAc,CAAEC,GAAI,0BAChCg7F,UAAU,EACV/6F,KAAM,cACNkI,cAAc,UAAAy8M,EAAmB/6C,eAAnB,eAA4B/wJ,UAA5B,UACV8rM,EAAmB/6C,eADT,aACV,EAA4B/wJ,SAASq4F,YACrC,GACJ0F,2BAA4B,SAACtuG,GAAW,IAAD,EACrCosL,EAAMswB,QAAQxuG,QAAd,2BACKk+E,EAAMswB,QAAQxuG,SADnB,IAEEtF,YAAa5oG,IAEfo8M,EAAmB,CACjBhwB,MAAOA,EACP77K,SAAS,2BAAD,QAAC,EAAM8rM,EAAmB/6C,eAA1B,aAAO,EAA4B/wJ,UAAnC,IAA6Cq4F,YAAa5oG,QAIxE,CACEzW,KAAM,aACNmO,KAAM,aACNw2G,QAAS,CACP0jE,QAAS,KACT1pD,aAAa,EACbkqD,qBAAqB,EACrBJ,iBAAiB,EACjBC,oBAAoB,GAEtBryK,cAAc,UAAAy8M,EAAmB/6C,eAAnB,eAA4B/wJ,UACtC,CACE3hB,WAAYytN,EAAmB/6C,QAAQ/wJ,SAAS3hB,WAChDb,eAAgBsuN,EAAmB/6C,QAAQ/wJ,SAASxiB,eACpDE,WAAYouN,EAAmB/6C,QAAQ/wJ,SAAStiB,WAChDE,cAAekuN,EAAmB/6C,QAAQ/wJ,SAASpiB,oBAErDwJ,EACJ22G,2BAA4B,SAAC9nF,GAAY,IAAD,EACtC4lK,EAAMswB,QAAQxuG,QAAd,2BACKk+E,EAAMswB,QAAQxuG,SADnB,IAEEvjH,WAAY67B,GACTA,GAEL41L,EAAmB,CACjBhwB,MAAOA,EACP77K,SAAS,2BAAD,QAAC,EAAM8rM,EAAmB/6C,eAA1B,aAAO,EAA4B/wJ,UAAnC,IAA6C5lB,WAAY67B,GAAWA,OAIlF81L,EACI,CACE/yN,KAAM,eACNmO,KAAM,mBACNk0G,MAAM,GAAD,OAAK94G,EAAK0E,cAAc,CAAEC,GAAI,mBAA9B,KACLmI,cAC6D,KAA3D,UAAAy8M,EAAmB/6C,eAAnB,mBAA4B/wJ,gBAA5B,eAAsC0lG,kBAClC,KAC2D,KAA3D,UAAAomG,EAAmB/6C,eAAnB,mBAA4B/wJ,gBAA5B,eAAsC0lG,kBACtC,SACAt+G,EACNqlN,aAAc,CACZ,CACEpxG,MAAO94G,EAAK0E,cAAc,CAAEC,GAAI,2BAChCuI,MAAO,KAET,CACE4rG,MAAO94G,EAAK0E,cAAc,CAAEC,GAAI,0BAChCuI,MAAO,MAGXsuG,2BAA4B,SAACtuG,GAAW,IAAD,EACrCo8M,EAAmB,CACjBhwB,MAAOA,EACP77K,SAAS,2BAAD,QAAC,EACJ8rM,EAAmB/6C,eADhB,aACH,EAA4B/wJ,UADzB,IAEN0lG,iBAA2B,KAATj2G,aAK1BrI,GACuD,KAA3D,UAAA0kN,EAAmB/6C,eAAnB,mBAA4B/wJ,gBAA5B,eAAsC0lG,mBAAgCqmG,EAClE,CACE/yN,KAAM,mBACNmO,KAAM,mBACNkI,aAAY,UAAEy8M,EAAmB/6C,eAArB,iBAAE,EAA4B/wJ,gBAA9B,aAAE,EAAsC4lG,iBACpDvK,MAAO94G,EAAK0E,cAAc,CAAEC,GAAI,2BAChC24G,YAAat9G,EAAK0E,cAAc,CAAEC,GAAI,6BACtC+4G,aAAa,EACbysG,iBAAiB,EACjBxqH,UAAU,EACVyqH,qBAAoB,UAAEb,EAAmB/6C,eAArB,iBAAE,EAA4B/wJ,gBAA9B,aAAE,EAAsCi6K,kBAC5Dl8E,2BAA4B,SAACtuG,GAAW,IAAD,EACrCo8M,EAAmB,CACjBhwB,MAAOA,EACP77K,SAAS,2BAAD,QAAC,EACJ8rM,EAAmB/6C,eADhB,aACH,EAA4B/wJ,UADzB,IAEN4lG,iBAAkBn2G,aAK1BrI,GACuD,KAA3D,UAAA0kN,EAAmB/6C,eAAnB,mBAA4B/wJ,gBAA5B,eAAsC0lG,mBAAgCqmG,EAClE,CACE/yN,KAAM,SACNmO,KAAM,uBACNkI,aAAY,UAAEy8M,EAAmB/6C,eAArB,iBAAE,EAA4B/wJ,gBAA9B,aAAE,EAAsC4sM,qBACpDvxG,MAAO94G,EAAK0E,cAAc,CAAEC,GAAI,0DAElCE,GAENrO,OAAQ,SAACk9B,GAAY,IAAD,IACdwkK,EAAWC,IAAIC,SAASe,aAAaG,EAAMjB,YAAYH,UAC3D3/K,EAAIs3L,YAAYvW,GAEhB,IAAM77K,EAAQ,qCACT8rM,EAAmB/6C,eADV,aACT,EAA4B/wJ,UADnB,IAEZi6K,kBAAmBQ,EAASkB,UAE9B,EACEkxB,aAA2B7sM,GADrB8sM,EAAR,EAAQA,YAAa50L,EAArB,EAAqBA,UAAW60L,EAAhC,EAAgCA,WAAY90L,EAA5C,EAA4CA,SAAU+0L,EAAtD,EAAsDA,UAAWC,EAAjE,EAAiEA,UAAWC,EAA5E,EAA4EA,YAG5E5rM,EACEm+K,IAAA,6DACKqsB,EAAmB/6C,eADxB,aACK,EAA4B/wJ,UAC5BiW,GACAA,EAAO77B,YAHZ,IAIEsrH,iBAC6B,KAA3BzvF,EAAOyvF,kBAEwB,KAA3BzvF,EAAOyvF,uBAEPt+G,EACNw+G,iBAA6C,KAA3B3vF,EAAOyvF,iBAA0BzvF,EAAO2vF,sBAAmBx+G,EAC7EwlN,qBAC6B,KAA3B32L,EAAOyvF,iBAA0BzvF,EAAO22L,0BAAuBxlN,EACjE8lN,cACAJ,cACA70L,WACA+0L,YACA90L,YACA60L,aACAE,YACA/nG,cAAc,EACd1jG,WAAYqvL,mBAGhBgb,OAAmBzkN,MAGvBwoM,GAAuB,GAEvB15B,YAAW,WACT,IACE2lB,EAAMf,GAAGE,OAAO,IAChB,aACD,KACH9kB,YAAW,WACT,IACE2lB,EAAMuwB,UACJvwB,EAAMswB,QAAQxuG,QAAQl5E,aAClBo3J,EAAMswB,QAAQxuG,QAAQl5E,aACtB9hC,eAAUsE,cAAc,CAAEC,GAAI,mBAEpC20L,EAAMV,YACN,aACD,MAsQL,OAnQA78E,qBAAU,WACR,IAAM06E,EAAYjD,EAAQkD,gBAAkBlD,EAAQj7K,IACpD,IAIEk+K,EAAU4E,GAAG,aAAa,SAAU76F,GAAI,IAAD,IAErC,GADA8oH,OAAmBzkN,IAEL,UAAX27F,EAAE6qF,OAAgC,aAAX7qF,EAAE6qF,OAAmC,WAAX7qF,EAAE6qF,QACZ,OAAxC,UAAA7qF,EAAE84F,MAAMswB,eAAR,mBAAiBxuG,eAAjB,eAA0Bn8F,YAC1B,CACA,IAAIq6K,EAAQ94F,EAAE84F,MACdA,EAAMf,GAAGC,kBACTc,EAAMf,GAAGE,OAAO,CAAEE,WAAW,IAC7BW,EAAM+B,GAAG,SAAS,SAAC76F,GACjB6sG,GAAuB,GACvBsU,EAAoB,CAAE9Z,OAAQ,KAC9ByhB,EAAmB,CACjBhwB,MAAOA,EACP77K,SAAU67K,EAAMswB,QAAQxuG,aAG5Bk+E,EAAM+B,GAAG,WAAW,SAAC76F,GAAO,IAAD,UACrB03F,EAAWC,IAAIC,SAASe,aAAa34F,EAAE84F,MAAMjB,YAAYH,UAE7DoB,EAAMswB,QAAQxuG,QAAd,2BACKk+E,EAAMl+E,SADX,IAEEngH,oBAAgB4J,EAChB1J,gBAAY0J,EACZxJ,mBAAewJ,EACf6yL,kBAAmBQ,EAASkB,QAC5BnvB,OACiD,MAA/C,UAAAs/C,EAAmB/6C,eAAnB,mBAA4B/wJ,gBAA5B,eAAsC4tK,OAClC7qF,EAAE8G,OAAO+xF,iBACTx0L,IAERykN,EAAmB,CACjBhwB,MAAOA,EACP77K,SAAS,2BAAD,QAAC,EACJ8rM,EAAmB/6C,eADhB,aACH,EAA4B/wJ,UADzB,IAENi6K,kBAAmBQ,EAASkB,QAC5BnvB,OACiD,MAA/C,UAAAs/C,EAAmB/6C,eAAnB,mBAA4B/wJ,gBAA5B,eAAsC4tK,OAClC7qF,EAAE8G,OAAO+xF,iBACTx0L,SAIZy0L,EAAM+B,GAAG,cAAc,SAAC76F,GAAO,IAAD,UAC5B84F,EAAMf,GAAGC,kBACTc,EAAMf,GAAGE,OAAO,CAAEE,WAAW,IAC7B,IAAIT,EAAWC,IAAIC,SAASe,aAAa34F,EAAE84F,MAAMjB,YAAYH,UAE7DoB,EAAMswB,QAAQxuG,QAAd,2BACKk+E,EAAMswB,QAAQxuG,SADnB,IAEEs8E,kBAAmBQ,EAASkB,QAC5BnvB,OACiD,MAA/C,UAAAs/C,EAAmB/6C,eAAnB,mBAA4B/wJ,gBAA5B,eAAsC4tK,OAClC7qF,EAAE8G,OAAO+xF,iBACTx0L,IAERykN,EAAmB,CACjBhwB,MAAOA,EACP77K,SAAS,2BAAD,QAAC,EACJ8rM,EAAmB/6C,eADhB,aACH,EAA4B/wJ,UADzB,IAENi6K,kBAAmBQ,EAASkB,QAC5BnvB,OACiD,MAA/C,UAAAs/C,EAAmB/6C,eAAnB,mBAA4B/wJ,gBAA5B,eAAsC4tK,OAClC7qF,EAAE8G,OAAO+xF,iBACTx0L,SAIZy0L,EAAM+B,GAAG,YAAY,WACnB/B,EAAMf,GAAGqyB,YAGX,IAAIv/B,EAAQ7qF,EAAE6qF,MAAMzjF,OAAO,GAAGngG,cAC1BywL,EAAWC,IAAIC,SAASe,aAAa34F,EAAE84F,MAAMjB,YAAYH,UAC7DmV,GAAuB,GACvBsU,EAAoB,CAAE9Z,OAAQ,KACzBvO,EAAMswB,UAAStwB,EAAMswB,QAAU,IACpCtwB,EAAMswB,QAAQxuG,QAAd,2BACKk+E,EAAMl+E,SADX,IAEEn8F,WAAYqvL,eACZpsK,kBAAcr9B,EACdklN,gBAAiB,GACjB1+B,MAAOA,EACPphB,OAAiB,KAATohB,EAAe7qF,EAAE84F,MAAMD,iBAAcx0L,EAC7C6yL,kBAAmBQ,EAASkB,QAC5Bt9L,gBAAY+I,EACZ5J,oBAAgB4J,EAChB1J,gBAAY0J,EACZxJ,mBAAewJ,EACfixG,YAAa,GACbppG,aAAa,IAEfu8M,GAAsB,SAAC4B,GAAD,4BAAoBA,GAApB,CAAgCvxB,OAGtDgwB,EAAmB,CACjBhwB,MAAOA,EACP77K,SAAU67K,EAAMswB,QAAQxuG,cAQ9B,IAAI0vG,EAAqBltE,IAAEmtE,SAASC,OAAOzoB,OAAO,CAChDC,WAAY,SAAUjqL,EAAK0yM,GACzB5nN,KAAKkV,IAAMA,EACXlV,KAAK4nN,SAAWA,EAChBrtE,IAAEmtE,SAASC,OAAOE,UAAU1oB,WAAWxqL,KAAK3U,OAE9C8nN,SAAU,WACR9nN,KAAK4nN,SAAShZ,aAIdmZ,EAAgBxtE,IAAEmtE,SAASC,OAAOzoB,OAAO,CAC3CnnF,QAAS,CACPiwG,YAAa,CACXthE,QAASkyC,EACLj8L,EAAK0E,cAAc,CAAEC,GAAI,8CACzB3E,EAAK0E,cAAc,CAAEC,GAAI,8CAC7B4kG,KAAM0+G,IAAeC,qBACnB,mCAAGjsB,EAAgB,cAAC,KAAD,CAAQzrL,KAAM,KAAS,cAAC,KAAD,CAAKA,KAAM,UAI3D26M,SAAU,WAINpsM,EAHGk9K,EAGMiB,MAFAA,OAIX6rB,GAAkB9sB,GAClBoR,GAAuB,GACvB6b,EAAsB16C,QAAQ9pJ,SAAQ,SAACs9E,GACrC,IACEA,EAAEu2F,GAAG+yB,mBACLtpH,EAAEu2F,GAAG0Z,QAAQ,IACbjwG,EAAEupH,aACF,iBAKJC,EAA0B5tE,IAAEmtE,SAASC,OAAOzoB,OAAO,CACrDnnF,QAAS,CACPiwG,YAAa,CACXthE,QAAS/pJ,EAAK0E,cAAc,CAAEC,GAAI,0CAClC4kG,KAAM0+G,IAAeC,qBAAqB,yCAAI,cAAC,KAAD,CAAQ13M,KAAM,WAGhE26M,SAAU,WACR10B,EAAU8B,GAAGoa,WAAW,SAAU,CAAE3Z,YAAa,CAAEvoL,MAAOyqF,SAI1DuwH,EAA6B7tE,IAAEmtE,SAASC,OAAOzoB,OAAO,CACxDnnF,QAAS,CACPiwG,YAAa,CACXthE,QAAS/pJ,EAAK0E,cAAc,CAAEC,GAAI,6CAClC4kG,KAAM0+G,IAAeC,qBAAqB,yCAAI,cAAC,KAAD,CAAQ13M,KAAM,WAGhE26M,SAAU,WACR10B,EAAU8B,GAAGoa,WAAW,YAAa,CAAE3Z,YAAa,CAAEvoL,MAAOyqF,SAI7DwwH,EAA2B9tE,IAAEmtE,SAASC,OAAOzoB,OAAO,CACtDnnF,QAAS,CACPiwG,YAAa,CACXthE,QAAS/pJ,EAAK0E,cAAc,CAAEC,GAAI,2CAClC4kG,KAAM0+G,IAAeC,qBAAqB,yCAAI,cAAC,KAAD,CAAS13M,KAAM,WAGjE26M,SAAU,WACR10B,EAAU8B,GAAGoa,WAAW,UAAW,CACjC3Z,YAAa,CAAEvoL,MAAOyqF,IACtBw9F,gCAAgC,OAKlCizB,EAAiBb,EAAmBvoB,OAAO,CAC7CnnF,QAAS,CACPiwG,YAAa,CAEXthE,QAAS/pJ,EAAK0E,cAAc,CAAEC,GAAI,yBAClC4kG,KAAM0+G,IAAeC,qBACnB,mCACE,cAAC,KAAD,CAAG13M,KAAM,UAKjB26M,SAAU,WACR10B,EAAU8B,GAAGqzB,YAAY,SACzBd,EAAmBI,UAAUC,SAASnzM,KAAK3U,SAI3CwoN,EAAmBjuE,IAAEmtE,SAASC,OAAOzoB,OAAO,CAC9CnnF,QAAS,CACPiwG,YAAa,CAEXthE,QAAS/pJ,EAAK0E,cAAc,CAAEC,GAAI,0CAClC4kG,KAAM0+G,IAAeC,qBACnB,mCACE,cAAC,KAAD,CAAM13M,KAAM,GAAIpL,KAAK,kBAK3B0mN,WAAY,IAAIluE,IAAEmtE,SAAS,CACzBryM,QAAS,CACPX,iCAA6C5Q,EAAO,CAClD4kN,KAAoBniC,qBAElBwhC,EACA,KACJrzM,iCAA6C5Q,EAAO,CAAC4kN,KAAoBjuM,cACrE0tM,EACA,KACJzzM,iCAA6C5Q,EAAO,CAAC4kN,KAAoBjuM,cACrE2tM,EACA,KACJ1zM,iCAA6C5Q,EAAO,CAAC4kN,KAAoBjuM,cACrE4tM,EACA,KACJC,GACA94L,QAAO,SAACr8B,GAAD,OAAsB,MAAVA,QAGzBy7M,QAAS,SAAUzxG,GACjBo9C,IAAEmtE,SAASC,OAAOE,UAAUjZ,QAAQj6L,KAAK3U,SAI7Cu6I,IAAEmtE,SAASiB,iBAAmBpuE,IAAEmtE,SAASx0B,QAAQgM,OAAO,CACtDnnF,QAAS,CACP1iG,QAAS,CAACmzM,MAId,IAAII,EAAmB,IAAIruE,IAAEmtE,SAASiB,iBAAiB,CAAEvmN,SAAUA,IAGnE,OAFAwmN,EAAiBn1B,MAAML,GAEhB,WACLw1B,EAAiBrB,UAEnB,aAjQK,YAkQFr3B,IAEL,mCACE,cAAC0f,GAAA,EAAD,aACEnnM,YAAa9L,EAAK0E,cAAc,CAAEC,GAAI,gBACtCujM,kBAAmBkF,EACnBnD,qBAAsB,WACpBoD,GAAuB,GACvB,IACEkc,EAAmB/6C,QAAQ8qB,MAAMf,GAAG0Z,QAAQ,IAC5C,UACFiX,EAAsB16C,QAAQ9pJ,SAAQ,SAACs9E,EAAGv0E,GACxC,IACEu0E,EAAEu2F,GAAG+yB,mBACLtpH,EAAEu2F,GAAG0Z,QAAQ,IACbjwG,EAAEupH,aACF,eAGNW,oBAAqB,WACnB3zM,EAAIs3L,YAAY0Z,EAAmB/6C,QAAQ8qB,OAC3CgwB,OAAmBzkN,IAErBquM,SAAS,GACLwO,OAMZoH,GAAwBtpG,aAAe,CACrC/5G,SAAU,UACVw2L,eAAe,EACfkwB,gBAAiB,kBAAM,MACvB54B,wBAAyB,IAGZu1B,U,qBC3qBTsD,GAAqB,SAACx/M,GAC1B,MAA0DA,EAAlDnH,gBAAR,MAAmB,UAAnB,EAA8B8tL,EAA4B3mL,EAA5B2mL,wBACxBC,EAAUC,cACV10K,EAAWipI,cACXhoJ,EAAOG,cAEPoY,EAAM0+K,cACRo1B,EAAgB,EACpB9zM,EAAI8iL,GAAG,mBAAmB,SAAU76F,GAClC,IAAM57F,EAAO47F,EAAE57F,KACX0nN,EAAW,EACH,mBAAR1nN,IAA2B0nN,EAAW,GAC9B,YAAR1nN,IAAoB0nN,EAAW,GACvB,eAAR1nN,IAAuB0nN,EAAW,GAC1B,gCAAR1nN,IAAwC0nN,EAAW,GAC3C,aAAR1nN,IAAqB0nN,EAAW,GACxB,kBAAR1nN,IAA0B0nN,EAAW,GAC7B,eAAR1nN,IAAuB0nN,EAAW,GAC1B,aAAR1nN,IAAqB0nN,EAAW,GACxB,uBAAR1nN,IAA+B0nN,EAAW,IAClC,yBAAR1nN,IAAiC0nN,EAAW,IACpC,uBAAR1nN,IAA+B0nN,EAAW,IAClC,uBAAR1nN,IAA+B0nN,EAAW,IAClC,mBAAR1nN,IAA2B0nN,EAAW,IAC9B,sBAAR1nN,IAA8B0nN,EAAW,IACjC,iBAAR1nN,IAAyB0nN,EAAW,IAC5B,kBAAR1nN,IAA0B0nN,EAAW,IAC7B,YAAR1nN,IAAoB0nN,EAAW,IACvB,kBAAR1nN,IAA0B0nN,EAAW,IAC7B,iBAAR1nN,IAAyB0nN,EAAW,IACxCD,EAAgBC,KAIlB,IAAMC,EAAY,yCAAG,+BAAA9oN,EAAA,sDACf+oN,EAAej0M,EAAIk0M,YAAYC,OAC/BvpN,EAAS,CACX3I,aAAcgyN,EAAa3qB,IAC3BpnM,cAAe+xN,EAAa1qB,IAC5BnnM,SAAU4d,EAAImjL,UACd7E,UAAWw1B,GAEbttM,EAAS2gB,KAAkDv8B,IARxC,2CAAH,qDAsClB,OA1BAkwK,aAAqB,WACnB,IAAMojB,EAAYjD,EAAQkD,gBAAkBlD,EAAQj7K,IAIhDo0M,EAAgB/uE,IAAEmtE,SAASC,OAAOzoB,OAAO,CAC3CnnF,QAAS,CACPiwG,YAAa,CAEXthE,QANG/pJ,EAAK0E,cAAc,CAAEC,GAAI,yCAO5B4kG,KAAM0+G,IAAeC,qBACnB,mCACE,cAAC,KAAD,CAAM13M,KAAM,UAKpB26M,SAAUoB,IAGZ,IAAI3uE,IAAEmtE,SAASx0B,QAAQ,CACrB9wL,SAAUA,EACViT,QAAS,CAACi0M,KACT71B,MAAML,KACR,CAAClD,IAEG,MAGT64B,GAAmB5sG,aAAe,CAChC/5G,SAAU,UACVmnN,YAAY,EACZhoN,KAAM,qBACN2uL,wBAAyB,IAEZ64B,U,oBCvETS,GAA0B,SAACjgN,GAAoC,IAAD,UAC1Dm7K,EAAmFn7K,EAAnFm7K,cAAe+kC,EAAoElgN,EAApEkgN,iBAAvB,EAA2FlgN,EAAlDnH,gBAAzC,MAAoD,UAApD,EAA+D8tL,EAA4B3mL,EAA5B2mL,wBACzDC,EAAUC,cACVzzL,EAAOG,cACb,EAA2BuiI,aAAY,SAACnsI,GAAD,MAAY,CACjD4Q,MAAO5Q,EACP2rG,QAASnqF,aAAyBxhB,OAF5B4Q,EAAR,EAAQA,MAAO+6F,EAAf,EAAeA,QAIT3pF,EAAM0+K,cACNl4K,EAAWipI,cAGjB,EAAoChlB,mBAAgB,IAApD,mBAAO+pF,EAAP,KAAmBC,EAAnB,KACMC,EAAgB/gB,IAAMrtD,OAAOkuE,GACnC,EAAwD/pF,oBAAS,GAAjE,mBAAOoqE,EAAP,KAA8BC,EAA9B,KACM8b,EAA2Bjd,IAAMrtD,OAAOuuD,GAC9C,EAAgDpqE,mBAAc,CAAE6kE,OAAQ,KAAxE,mBAAO6Z,EAAP,KAAyBC,EAAzB,KACMyH,EAAsBld,IAAMrtD,OAAO6iE,GACzC,EAA8C1+E,wBAAcn+H,GAA5D,mBAAOqoN,EAAP,KAAwBC,EAAxB,KACMC,EAAqBlhB,IAAMrtD,OAAOquE,GAExCnxG,qBAAU,WACRqxG,EAAmB5+C,QAAU0+C,OACLroN,IAApBqoN,GACF75K,MAED,CAAC65K,IAEJnxG,qBAAU,WAAO,IAAD,EACwC,GAAtD,OAAImxG,QAAJ,IAAIA,GAAJ,UAAIA,EAAiB3kL,gBAArB,aAAI,EAA2B4/I,yBAC7BilC,EAAmB5+C,QAAQ3wB,OAAOwvE,MAAM1jH,UAAxC,6GACiBujH,QADjB,IACiBA,GADjB,UACiBA,EAAiB3kL,gBADlC,aACiB,EAA2B4/I,sBAD5C,8DAGD,QAAC+kC,QAAD,IAACA,GAAD,UAACA,EAAiB3kL,gBAAlB,aAAC,EAA2B4/I,wBAE/BpsE,qBAAU,WAAO,IAAD,IACd,IAAmB,OAAfmxG,QAAe,IAAfA,GAAA,UAAAA,EAAiB3kL,gBAAjB,eAA2B7S,YAA3B,OAAuCw3L,QAAvC,IAAuCA,GAAvC,UAAuCA,EAAiB3kL,gBAAxD,aAAuC,EAA2B5S,WAAW,CAAC,IAAD,IAC3EgoH,EAASC,IAAED,OAAF,OACXuvE,QADW,IACXA,GADW,UACXA,EAAiB3kL,gBADN,aACX,EAA2B7S,SADhB,OAEXw3L,QAFW,IAEXA,GAFW,UAEXA,EAAiB3kL,gBAFN,aAEX,EAA2B5S,WAE7By3L,EAAmB5+C,QAAQ3wB,OAAOyvE,UAAU3vE,GAC5C+gD,EAAkB/gD,MAEnB,QAACuvE,QAAD,IAACA,GAAD,UAACA,EAAiB3kL,gBAAlB,aAAC,EAA2B7S,SAA5B,OAAsCw3L,QAAtC,IAAsCA,GAAtC,UAAsCA,EAAiB3kL,gBAAvD,aAAsC,EAA2B5S,YAEpEomF,qBAAU,WACR43D,YAAW,WACT,IAAK,IAAD,IACFy5C,EAAmB5+C,QAAQ3wB,OAAOgsE,WACjB,OAAfqD,QAAe,IAAfA,GAAA,UAAAA,EAAiB3kL,gBAAjB,eAA2B3C,cAA3B,OACIsnL,QADJ,IACIA,GADJ,UACIA,EAAiB3kL,gBADrB,aACI,EAA2B3C,aAC3BxlC,eAAUsE,cAAc,CAAEC,GAAI,mBAEpCyoN,EAAmB5+C,QAAQ3wB,OAAO+6C,YAClC,aACD,OACF,QAACs0B,QAAD,IAACA,GAAD,UAACA,EAAiB3kL,gBAAlB,aAAC,EAA2B3C,eAE/Bm2E,qBAAU,WACRotG,EAAyB36C,QAAU4+B,IAClC,CAACA,IAEJrxF,qBAAU,WACRqtG,EAAoB56C,QAAUkzC,IAC7B,CAACA,IAEJ3lG,qBAAU,WACRkxG,EAAcz+C,QAAUu+C,IACvB,CAACA,IAEJ,IAAMruB,EAAoB,SAAC/gD,GACzB,IAAMy3C,EAAU96F,KAAKssB,IAAI,GAAIruG,EAAImjL,WACjC/nB,YAAW,WACT,IAAIgrB,EAEFA,EADEhhD,aAAkBC,IAAE6/C,OACjB9/C,EAEAC,IAAED,OAAOA,GAEhBplI,EAAIs/K,YAAY,CAAC8G,GAAK,CACpBpD,mBAAoB,CAAC,IAAK,GAC1BC,eAAgB,CAAC,EAAG,IACpBpG,UACAqG,QAAS,GAAKljL,EAAImjL,cAEnB,MAGL3/E,qBAAU,WACR,IAAMu2F,EAAoB,CACxBC,SAAU,CACRC,YAAaxyM,EAAK0E,cAAc,CAAEC,GAAI,0BAG1C4T,EAAIggL,GAAGka,QAAQ,oBAAqBH,EAAmBtyM,EAAKkhG,UAC3D,CAAClhG,EAAKkhG,SAET,IACM7tD,EAAe,WACnB,IAAMwqG,EAASuvE,EAAmB5+C,QAAQ3wB,OAE1CovE,EAAcz+C,QAAQ9pJ,SAAQ,SAACs9E,GAC7BA,EAAEu2F,GAAG0Z,QAAQ,OAGf5E,GAAuB,GAEvB15B,YAAW,WACT,IACE91B,EAAO06C,GAAGE,OAAO,IACjB,aACD,KACH9kB,YAAW,WACT,IACE91B,EAAOgsE,UACLhsE,EAAOziC,QAAQx1E,aACXi4G,EAAOziC,QAAQx1E,aACfxlC,eAAUsE,cAAc,CAAEC,GAAI,mBAEpCk5I,EAAO+6C,YACP,aACD,MA8OL,OA3OAvlB,aAAqB,WACnB,IAAMojB,EAAYjD,EAAQkD,gBAAkBlD,EAAQj7K,IACpD,IACE,IAAIuyM,EAAqBltE,IAAEmtE,SAASC,OAAOzoB,OAAO,CAChDC,WAAY,SAAUjqL,EAAK0yM,GACzB5nN,KAAKkV,IAAMA,EACXlV,KAAK4nN,SAAWA,EAChBrtE,IAAEmtE,SAASC,OAAOE,UAAU1oB,WAAWxqL,KAAK3U,OAE9C8nN,SAAU,WACR9nN,KAAK4nN,SAAShZ,aAIdsb,EAA0B3vE,IAAEmtE,SAASC,OAAOzoB,OAAO,CACrDnnF,QAAS,CACPiwG,YAAa,CAEXthE,QAAS/pJ,EAAK0E,cAAc,CAAEC,GAAI,4CAClC4kG,KAAM0+G,IAAeC,qBACnB,mCACE,cAAC,KAAD,CAAM13M,KAAM,UAKpB26M,SAAU,WACR10B,EAAU8B,GAAGoa,WAAW,SAAU,CAChCC,iBAAiB,EACjBC,gBAAgB,EAChBC,YAAa,CACX1tM,KAAMw4I,IAAEK,QAAQ,CACd1kC,UAAW,kBACXhQ,KAAK,oDAAD,OAEF,gBAFE,0BA5DmB,UA4DnB,2EASJu5B,SAAU,CAAC,GAAI,IACfob,WAAY,CAAC,GAAI,IACjBC,YAAa,CAAC,GAAI,SAOxBs4C,EAAU4E,GAAG,aAAa,SAAU76F,GAElC,GAAe,UAAXA,EAAE6qF,OAAoD,MAA/B7qF,EAAEq9C,OAAOziC,QAAQ/2E,WAAoB,CAC9DgpK,GAAuB,GACvBsU,EAAoB,CAAE9Z,OAAQ,KAC9B,IAAIhqD,EAASr9C,EAAEq9C,OACfA,EAAOziC,QAAP,2BACKyiC,EAAOziC,SADZ,IAEE/2E,WAAYiqK,eACZ1oK,kBAAc/gC,EACd2oN,gBAAiB,GACjB93L,SAAUmoH,EAAOohD,YAAY4C,IAC7BlsK,UAAWkoH,EAAOohD,YAAY6C,IAC9B73B,OAAQ,GACRnuK,WAAY,KACZb,eAAgB,KAChBE,WAAY,KACZE,cAAe,KACf8sL,sBAAuB,UACvB3oD,gBAAiB,EACjB1pB,YAAa,GACbppG,aAAa,IAGfmxI,EAAOw9C,GAAG,SAAS,WAOjBgS,GAAuB,GACvBsU,EAAoB,CAAE9Z,OAAQ,KAC9BslB,EAAmB,CACjBtvE,OAAQA,EACRt1G,SAAUs1G,EAAOziC,aAMrByiC,EAAOw9C,GAAG,aAAa,SAAC76F,GACtB6sG,GAAuB,GACvBsU,EAAoB,CAAE9Z,OAAQ,QAGhChqD,EAAOw9C,GAAG,WAAW,SAAC76F,GACpBq9C,EAAOziC,QAAP,2BACKgyG,EAAmB5+C,QAAQjmI,UADhC,IAEE7S,SAAU8qE,EAAE8G,OAAO23F,YAAY4C,IAC/BlsK,UAAW6qE,EAAE8G,OAAO23F,YAAY6C,SAapCjkD,EAAOw9C,GAAG,cAAc,SAAC76F,GACvBq9C,EAAOziC,QAAP,2BACKgyG,EAAmB5+C,QAAQjmI,UADhC,IAEE7S,SAAU8qE,EAAE8G,OAAO23F,YAAY4C,IAC/BlsK,UAAW6qE,EAAE8G,OAAO23F,YAAY6C,MAElCqrB,EAAmB,CACjBtvE,OAAQA,EACRt1G,SAAS,2BACJ6kL,EAAmB5+C,QAAQjmI,UADxB,IAEN7S,SAAU8qE,EAAE8G,OAAO23F,YAAY4C,IAC/BlsK,UAAW6qE,EAAE8G,OAAO23F,YAAY6C,QAGpCpD,EAAkB7gD,EAAOohD,gBAG3B+tB,GAAc,SAACS,GAAD,4BAAqBA,GAArB,CAAkC5vE,OAChDA,EAAO06C,GAAGE,OAAO,IACjBiG,EAAkB7gD,EAAOohD,aACzBkuB,EAAmB,CACjBtvE,OAAQA,EACRt1G,SAAUs1G,EAAOziC,iBAOvBsyG,EAAgB9vE,IAAEmtE,SAASC,OAAOzoB,OAAO,CAC3CnnF,QAAS,CACPiwG,YAAa,CACXthE,QAASg+B,EACL/nL,EAAK0E,cAAc,CAAEC,GAAI,8CACzB3E,EAAK0E,cAAc,CAAEC,GAAI,8CAC7B4kG,KAAM0+G,IAAeC,qBACnB,mCAAGngC,EAAgB,cAAC,KAAD,CAAQv3K,KAAM,KAAS,cAAC,KAAD,CAAKA,KAAM,UAI3D26M,SAAU,WAINpsM,EAHGgpK,EAGM9qK,OAFAA,QAIX6vM,GAAkB/kC,GAClBslB,GAAuB,GACvB4f,EAAcz+C,QAAQ9pJ,SAAQ,SAACs9E,GAC7B,IACEA,EAAEu2F,GAAG0Z,QAAQ,IACbjwG,EAAEupH,aACF,iBAKJoC,EAAiB7C,EAAmBvoB,OAAO,CAC7CnnF,QAAS,CACPiwG,YAAa,CAEXthE,QAAS/pJ,EAAK0E,cAAc,CAAEC,GAAI,yBAClC4kG,KAAM0+G,IAAeC,qBACnB,mCACE,cAAC,KAAD,CAAG13M,KAAM,UAKjB26M,SAAU,WACR10B,EAAU8B,GAAGqzB,YAAY,UACzBd,EAAmBI,UAAUC,SAASnzM,KAAK3U,SAI3CuqN,EAAmBhwE,IAAEmtE,SAASC,OAAOzoB,OAAO,CAC9CnnF,QAAS,CACPiwG,YAAa,CAEXthE,QAAS/pJ,EAAK0E,cAAc,CAAEC,GAAI,0CAClC4kG,KAAM0+G,IAAeC,qBACnB,mCACE,cAAC,KAAD,CAAQ13M,KAAM,SAKpBs7M,WAAY,IAAIluE,IAAEmtE,SAAS,CACzBryM,QAAS,CACPX,iCAA6C5Q,EAAO,CAClD0mN,KAAoBhxC,qBAElB6wC,EACA,KACJ31M,iCAA6C5Q,EAAO,CAAC0mN,KAAoB16K,cACrEo6K,EACA,KAEJI,GACA96L,QAAO,SAACr8B,GAAD,OAAsB,MAAVA,QAGzBy7M,QAAS,SAAUzxG,GACjBo9C,IAAEmtE,SAASC,OAAOE,UAAUjZ,QAAQj6L,KAAK3U,SAI7Cu6I,IAAEmtE,SAAS+C,iBAAmBlwE,IAAEmtE,SAASx0B,QAAQgM,OAAO,CACtDnnF,QAAS,CACP1iG,QAAS,CAACk1M,MAId,IAAIG,EAAmB,IAAInwE,IAAEmtE,SAAS+C,iBAAiB,CAAEroN,SAAUA,IAGnE,OAFAsoN,EAAiBj3B,MAAML,GAEhB,WACLs3B,EAAiBnD,UAEnB,aACD,CAACr3B,IAEF,mCACE,cAACy6B,GAAA,EAAD,CACEliN,YAAa9L,EAAK0E,cAAc,CAAEC,GAAI,gBACtCujM,kBAAmBkF,EACnBjF,iBAAkB,WAChBkF,GAAuB,GACvB+f,EAAmB5+C,QAAQ3wB,OAAO06C,GAAG0Z,QAAQ,IAC7Cgb,EAAcz+C,QAAQ9pJ,SAAQ,SAACs9E,EAAGv0E,GAChC,IACEu0E,EAAEu2F,GAAG0Z,QAAQ,IACbjwG,EAAEupH,aACF,eAGNrY,SAAO,EACPrnM,MACEuhN,EAAmB5+C,SACnB4+C,EAAmB5+C,QAAQjmI,UAC3BojB,OAAO2lJ,UAAU8b,EAAmB5+C,QAAQjmI,SAASlE,YACjD+oL,EAAmB5+C,QAAQjmI,SAAS3C,aACpC5lC,EAAK0E,cAAc,CAAEC,GAAI,0BAE/BuoN,gBAAe,UAAEE,EAAmB5+C,eAArB,aAAE,EAA4BjmI,SAC7C4kL,mBAAoB,SAAC5kL,GAAD,OAClB4kL,EAAmB,CAAEtvE,OAAQuvE,EAAmB5+C,QAAQ3wB,OAAQt1G,cAElE0mI,QAAS,WACP12J,EAAIs3L,YAAYud,EAAmB5+C,QAAQ3wB,QAC3CsvE,OAAmBtoN,IAErBrO,OAAQ,SAACk9B,GACPnb,EAAIs3L,YAAYud,EAAmB5+C,QAAQ3wB,QAC3C9+H,EACE9B,KAAA,uCACKyW,GACAA,EAAO77B,YAFZ,IAGEoyK,OAAQ/nE,EAAQ4vG,uCAAuCp+K,EAAOu2I,QAC9DtnD,cAAc,EACdsrG,eAAgB,EAChBC,yBAA0B,EAC1BC,eAAgB,KAChBC,uBAAwB,EACxBC,eAAgB,EAChBhqL,WAAYiqK,mBAGhB6e,OAAmBtoN,SAO7BgoN,GAAwBrtG,aAAe,CACrC/5G,SAAU,UACVsiL,eAAe,EACfumC,gBAAiB,kBAAM,MACvB/6B,wBAAyB,IAGZs5B,UC1aT0B,GAAuB,SAAC3hN,GAOxBA,EALF88L,WAKE98L,EAJF4hN,cAFF,IAGEziB,EAGEn/L,EAHFm/L,sBAHF,EAMIn/L,EAFFnH,gBAJF,MAIa,UAJb,EAKE8tL,EACE3mL,EADF2mL,wBAEIC,EAAUC,cACVzzL,EAAOG,cAEKuiI,aAAY,SAACnsI,GAAD,MAAY,CACxC4Q,MAAO5Q,MADD4Q,MA8FR,OA1FA40G,qBAAU,WACR,IAAM06E,EAAYjD,EAAQkD,gBAAkBlD,EAAQj7K,IACpD,IACE,IAAIuyM,EAAqBltE,IAAEmtE,SAASC,OAAOzoB,OAAO,CAChDC,WAAY,SAAUjqL,EAAK0yM,GACzB5nN,KAAKkV,IAAMA,EACXlV,KAAK4nN,SAAWA,EAChBrtE,IAAEmtE,SAASC,OAAOE,UAAU1oB,WAAWxqL,KAAK3U,OAE9C8nN,SAAU,WACR9nN,KAAK4nN,SAAShZ,aAIdwc,EAAuB3D,EAAmBvoB,OAAO,CACnDnnF,QAAS,CACPiwG,YAAa,CACXthE,QAAS/pJ,EAAK0E,cAAc,CAAEC,GAAI,sCAClC4kG,KAAM0+G,IAAeC,qBACnB,mCACE,cAAC,KAAD,CAAM13M,KAAM,UAKpB26M,SAAU,WACRpf,EAAsB,CACpBoH,WAAW,EACXv/K,MAAO,CAAE4C,WAAY83K,gBACrBt6K,iBAAkB,CAChB,CAAED,aAAcu6K,gBAChB,CAAEv6K,aAAcu6K,gBAChB,CAAEv6K,aAAcu6K,iBAElBxC,WAAY,KAEdgf,EAAmBI,UAAUC,SAASnzM,KAAK3U,SAI3CqrN,EAAc5D,EAAmBvoB,OAAO,CAC1CnnF,QAAS,CACPiwG,YAAa,CACXthE,QAAS/pJ,EAAK0E,cAAc,CAAEC,GAAI,yBAClC4kG,KAAM0+G,IAAeC,qBACnB,mCACE,cAAC,KAAD,CAAG13M,KAAM,UAKjB26M,SAAU,WACRL,EAAmBI,UAAUC,SAASnzM,KAAK3U,SAI3CsrN,EAAgB/wE,IAAEmtE,SAASC,OAAOzoB,OAAO,CAC3CnnF,QAAS,CACPiwG,YAAa,CACXthE,QAAS/pJ,EAAK0E,cAAc,CAAEC,GAAI,oCAClC4kG,KAAM0+G,IAAeC,qBACnB,mCACE,cAAC,KAAD,CAAM13M,KAAM,GAAIpL,KAAK,cAK3B0mN,WAAY,IAAIluE,IAAEmtE,SAAS,CACzBryM,QAAS,CAAC+1M,EAAsBC,GAAa77L,QAAO,SAACr8B,GAAD,OAAsB,MAAVA,QAGpEy7M,QAAS,SAAUzxG,GACjBo9C,IAAEmtE,SAASC,OAAOE,UAAUjZ,QAAQj6L,KAAK3U,SAI7Cu6I,IAAEmtE,SAAS6D,cAAgBhxE,IAAEmtE,SAASx0B,QAAQgM,OAAO,CACnDnnF,QAAS,CACP1iG,QAAS,CAACi2M,MAId,IAAIE,EAAgB,IAAIjxE,IAAEmtE,SAAS6D,cAAc,CAAEnpN,SAAUA,IAG7D,OAFAopN,EAAc/3B,MAAML,GAEb,WACLo4B,EAAcjE,UAEhB,aAxFK,YAyFFr3B,IACA,MAGTg7B,GAAqB/uG,aAAe,CAClC/5G,SAAU,UACVikM,YAAY,EACZ8kB,cAAe,kBAAM,MACrBj7B,wBAAyB,IAGZg7B,UCnHTO,GAAsB,SAACliN,GAC3B,IACEw5M,EAKEx5M,EALFw5M,UACA2I,EAIEniN,EAJFmiN,aAFF,GAMIniN,EAHFspM,gBAGEtpM,EAFFnH,iBAJF,MAIa,UAJb,EAKE8tL,EACE3mL,EADF2mL,wBAEIC,EAAUC,cACVzzL,EAAOG,cACP4e,EAAWipI,cAECtlB,aAAY,SAACnsI,GAAD,MAAY,CACxC4Q,MAAO5Q,MADD4Q,MAyFR,OArFA40G,qBAAU,WACR,IAAM06E,EAAYjD,EAAQkD,gBAAkBlD,EAAQj7K,IACpD,IACE,IAAIuyM,EAAqBltE,IAAEmtE,SAASC,OAAOzoB,OAAO,CAChDC,WAAY,SAAUjqL,EAAK0yM,GACzB5nN,KAAKkV,IAAMA,EACXlV,KAAK4nN,SAAWA,EAChBrtE,IAAEmtE,SAASC,OAAOE,UAAU1oB,WAAWxqL,KAAK3U,OAE9C8nN,SAAU,WACR9nN,KAAK4nN,SAAShZ,aAId+c,EAAsBpxE,IAAEmtE,SAASC,OAAOzoB,OAAO,CACjDnnF,QAAS,CACPiwG,YAAa,CACXthE,QAASq8D,EACLpmN,EAAK0E,cAAc,CAAEC,GAAI,sCACzB3E,EAAK0E,cAAc,CAAEC,GAAI,sCAC7B4kG,KAAM0+G,IAAeC,qBACnB,mCAAG9B,EAAY,cAAC,KAAD,CAAQ51M,KAAM,KAAS,cAAC,KAAD,CAAKA,KAAM,UAIvD26M,SAAU,WAINpsM,EAHGqnM,EAGMr6L,sBAFAA,uBAIXgjM,GAAc3I,MAId6I,EAAanE,EAAmBvoB,OAAO,CACzCnnF,QAAS,CACPiwG,YAAa,CACXthE,QAAS/pJ,EAAK0E,cAAc,CAAEC,GAAI,yBAClC4kG,KAAM0+G,IAAeC,qBACnB,mCACE,cAAC,KAAD,CAAG13M,KAAM,UAKjB26M,SAAU,WACRL,EAAmBI,UAAUC,SAASnzM,KAAK3U,SAI3C6rN,EAAetxE,IAAEmtE,SAASC,OAAOzoB,OAAO,CAC1CnnF,QAAS,CACPiwG,YAAa,CACXthE,QAAS/pJ,EAAK0E,cAAc,CAAEC,GAAI,kCAClC4kG,KAAM0+G,IAAeC,qBACnB,mCACE,cAAC,KAAD,CAAM13M,KAAM,GAAIpL,KAAK,kBAK3B0mN,WAAY,IAAIluE,IAAEmtE,SAAS,CACzBryM,QAAS,CAACs2M,EAAqBC,GAAYp8L,QAAO,SAACr8B,GAAD,OAAsB,MAAVA,QAGlEy7M,QAAS,SAAUzxG,GACjBo9C,IAAEmtE,SAASC,OAAOE,UAAUjZ,QAAQj6L,KAAK3U,SAI7Cu6I,IAAEmtE,SAASoE,aAAevxE,IAAEmtE,SAASx0B,QAAQgM,OAAO,CAClDnnF,QAAS,CACP1iG,QAAS,CAACw2M,MAId,IAAIE,EAAe,IAAIxxE,IAAEmtE,SAASoE,aAAa,CAAE1pN,SAAUA,IAG3D,OAFA2pN,EAAat4B,MAAML,GAEZ,WACL24B,EAAaxE,UAEf,aAnFK,YAoFFr3B,IACA,MAGTu7B,GAAoBtvG,aAAe,CACjC/5G,SAAU,UACV2gN,WAAW,EACX2I,aAAc,kBAAM,MACpBx7B,wBAAyB,IAGZu7B,UC3ETO,GAAY,SAACziN,GACjB,IACE0iN,EAmBE1iN,EAnBF0iN,qBACAn4N,EAkBEyV,EAlBFzV,WACAo4N,EAiBE3iN,EAjBF2iN,mBACAC,EAgBE5iN,EAhBF4iN,wBACAC,EAeE7iN,EAfF6iN,wBACAC,EAcE9iN,EAdF8iN,qBACAC,EAaE/iN,EAbF+iN,oBACAvnC,EAYEx7K,EAZFw7K,oBACAwnC,EAWEhjN,EAXFgjN,2BACAhoC,EAUEh7K,EAVFg7K,oBACAioC,EASEjjN,EATFijN,uBACAC,EAQEljN,EARFkjN,2BACAC,EAOEnjN,EAPFmjN,oBACAC,EAMEpjN,EANFojN,uBACAC,EAKErjN,EALFqjN,wBACAxmB,EAIE78L,EAJF68L,iBACAymB,EAGEtjN,EAHFsjN,uBACAC,EAEEvjN,EAFFujN,gBACAvmB,EACEh9L,EADFg9L,wBAEMxwF,EAAgDjiH,EAAhDiiH,MAAOG,EAAyCpiH,EAAzCoiH,UAAWkrE,EAA8BttL,EAA9BstL,OAAQ2rC,EAAsBj5N,EAAtBi5N,KAAM1nB,EAAgBvxM,EAAhBuxM,YAElC2U,EAAUC,cACVv+L,EAAWipI,cAEjB,EAAsBhlB,qBAAtB,mBAAOzqH,EAAP,KAAY83M,EAAZ,KACMrwN,EAAOG,cACb,EAAsD6iI,mBAAc,IAApE,mBAAO+4D,EAAP,KAA4BC,GAA5B,KACA,GAAwDh5D,wBAEtDn+H,GAFF,qBAAO0uL,GAAP,MAAgC+8B,GAAhC,MAGA,GAAoEttF,wBAElEn+H,GAFF,qBAAO0rN,GAAP,MAAsCC,GAAtC,MAGA,GAA0CxtF,oBAAS,GAAnD,qBAAO+kD,GAAP,MAAsB+kC,GAAtB,MACA,GAA0C9pF,oBAAS,GAAnD,qBAAOi5D,GAAP,MAAsB8sB,GAAtB,MACA,GAAoC/lF,oBAAS,GAA7C,qBAAO0mE,GAAP,MAAmB8kB,GAAnB,MACA,GAAkCxrF,oBAA2C,IAAlC2sF,EAAoBvJ,WAA/D,qBAAOA,GAAP,MAAkB2I,GAAlB,MAEA,GAAuDrsF,aAAY,SAACnsI,GAAD,MAAY,CAC7E4Q,MAAO5Q,EACPqe,UAAWyoK,IAAmC9mL,GAC9C6e,UAAW2sB,IAAmCxrC,GAC9C0e,MAAO8gC,eAA2Bx/C,GAClCwe,OAAQk0L,IAA6B1yM,OAL/B4Q,GAAR,GAAQA,MAAOyN,GAAf,GAAeA,UAAWQ,GAA1B,GAA0BA,UAAWH,GAArC,GAAqCA,MAAOF,GAA5C,GAA4CA,OAQtC07M,GAAqChsC,GACzC1sK,2BAAuC5Q,KAAU,CAAC,QAAS,OACvDupN,GAAcN,GAAQr4M,yBAAqC5Q,KAAU,GAC3E,GAAsC67H,mBAA2BytF,IAAjE,qBAAOE,GAAP,MAAoBC,GAApB,MACA70G,qBAAU,WACRu0G,GAAqB,QAEZz7B,GACP9M,GACAkU,GACAyN,GACA0c,GACApmN,EAAKkhG,WAEN,CAAC6mF,GAAekU,GAAeyN,GAAY0c,GAAWpmN,EAAKkhG,SAE9D6a,qBAAU,WAERy0G,GAA2B,QAAQ37B,GAAI70L,EAAKkhG,WAC3C,CAAClhG,EAAKkhG,SAGT,OAA8C8hC,wBAAcn+H,GAA5D,qBAAOqoN,GAAP,MAAwBC,GAAxB,MACA,GACEnqF,wBAAcn+H,GADhB,qBAAOgsN,GAAP,MAAsCC,GAAtC,MAGM1D,GAAqBvuE,iBAAYquE,IAEvCnxG,qBAAU,WACRqxG,GAAmB5+C,QAAU0+C,GAC7B4D,GAAiC,CAC/BvoL,UACoB,OAAlB6kL,SAAkB,IAAlBA,QAAA,EAAAA,GAAoB5+C,UACoB,OAAtB,OAAlB4+C,SAAkB,IAAlBA,QAAA,EAAAA,GAAoB5+C,QAAQ94I,WACa,OAAvB,OAAlB03L,SAAkB,IAAlBA,QAAA,EAAAA,GAAoB5+C,QAAQ74I,WAF5B,OAGIy3L,SAHJ,IAGIA,QAHJ,EAGIA,GAAoB5+C,QACpB,CACE94I,UACoB,OAAlB03L,SAAkB,IAAlBA,QAAA,EAAAA,GAAoB5+C,UAAmD,OAAtB,OAAlB4+C,SAAkB,IAAlBA,QAAA,EAAAA,GAAoB5+C,QAAQ94I,UAA3D,OACI03L,SADJ,IACIA,QADJ,EACIA,GAAoB5+C,QAAQ94I,SAC5B+6L,GAAiB,GACvB96L,WACoB,OAAlBy3L,SAAkB,IAAlBA,QAAA,EAAAA,GAAoB5+C,UAAoD,OAAvB,OAAlB4+C,SAAkB,IAAlBA,QAAA,EAAAA,GAAoB5+C,QAAQ74I,WAA3D,OACIy3L,SADJ,IACIA,QADJ,EACIA,GAAoB5+C,QAAQ74I,UAC5B86L,GAAiB,GACvBxmD,QACoB,OAAlBmjD,SAAkB,IAAlBA,QAAA,EAAAA,GAAoB5+C,WAApB,OAA+B4+C,SAA/B,IAA+BA,QAA/B,EAA+BA,GAAoB5+C,QAAQvE,QAA3D,OACImjD,SADJ,IACIA,QADJ,EACIA,GAAoB5+C,QAAQvE,OAC5B,GACNke,uBACoB,OAAlBilC,SAAkB,IAAlBA,QAAA,EAAAA,GAAoB5+C,WAApB,OAA+B4+C,SAA/B,IAA+BA,QAA/B,EAA+BA,GAAoB5+C,QAAQ2Z,uBAA3D,OACIilC,SADJ,IACIA,QADJ,EACIA,GAAoB5+C,QAAQ2Z,sBAC5B,WAEdsW,kBAAmB,SAAC/qK,GACdy5L,IACFA,GAAmB,2BAAD,OACbC,SADa,IACbA,QADa,EACbA,GAAoB5+C,SADP,IAEhB74I,UAAWjC,EAAOouK,IAClBpsK,SAAUhC,EAAOmuK,QAGvBrD,gBAAc4uB,KAAsBA,GAAmB5+C,SACvDqZ,mBAAmB,EACnBI,oBAAoB,EACpBoP,iBAAiB,EACjBD,aAAa,MAEd,CAAC81B,KAGJ,OAA8ClqF,wBAAcn+H,GAA5D,qBAAOwkN,GAAP,MAAwBC,GAAxB,MACA,GACEtmF,wBAAcn+H,GADhB,qBAAOksN,GAAP,MAAsCC,GAAtC,MAEMzH,GAAqB1qE,iBAAOwqE,IAElCttG,qBAAU,WACRwtG,GAAmB/6C,QAAU66C,GAC7B2H,GAAiC,CAC/BvzM,UAA4B,OAAlB8rM,SAAkB,IAAlBA,QAAA,EAAAA,GAAoB/6C,SAApB,OAA8B+6C,SAA9B,IAA8BA,QAA9B,EAA8BA,GAAoB/6C,QAAU,GACtE2oB,eAAgB,SAACzjK,GACX41L,IACFA,GAAmB,2BAAD,OACbC,SADa,IACbA,QADa,EACbA,GAAoB/6C,SACpB96I,KAGTwjK,aAAcqyB,IAAsBA,GAAmB/6C,QAEvD6oB,iBAAiB,EACjBD,aAAa,MAEd,CAACiyB,KAGJ,OAAwCrmF,wBAAcn+H,GAAtD,qBAAO8oM,GAAP,MAAqBC,GAArB,MACMC,GAAkBhvD,iBAAO8uD,IAE/B5xF,qBAAU,WACR8xF,GAAgBr/B,QAAUm/B,KACzB,CAACA,KAGJ,OAAwC3qE,wBAAcn+H,GAAtD,qBAAOoxM,GAAP,MAAqBC,GAArB,MACMC,GAAkBt3D,iBAAOo3D,IAmD/B,OAjDAl6F,qBAAU,WAAO,IAAD,EAIZk6F,KAAY,OACZA,SADY,IACZA,QADY,EACZA,GAAczqL,UADd,OAEA2qL,SAFA,IAEAA,QAFA,EAEAA,GAAiB3nC,WACF,OAAf2nC,SAAe,IAAfA,IAAA,UAAAA,GAAiB3nC,eAAjB,eAA0BhjJ,UAA1B,OAAoCyqL,SAApC,IAAoCA,QAApC,EAAoCA,GAAczqL,SAGlD6xL,EAAQphH,UAGNg6G,KAAY,OAAIA,SAAJ,IAAIA,QAAJ,EAAIA,GAAczqL,SAChCzM,EAASgN,gBAAA,OAA0BkqL,SAA1B,IAA0BA,QAA1B,EAA0BA,GAAczqL,SAEnD2qL,GAAgB3nC,QAAUynC,KACzB,CAACA,KAGJl6F,qBAAU,WACRgzG,IAA+C,IAAlCY,EAAoBvJ,aAChC,CAACuJ,EAAoBvJ,YAKxB/yC,aAAqB,WAEhBu2B,EAAwBxN,gCACxBwN,EAAwB5hB,gCAErBvD,GAAQmsC,GAAensC,KAE5B,CAACA,GAAU,KAEd1oE,qBAAU,WACG,MAAPxjG,GACFo7J,YAAW,WACTp7J,EAAI04M,gBAAe,KAClB,OAEJ,CAAC14M,EAAKmwL,IAET3sF,qBAAU,WAEJxjG,GAAKA,EAAIggL,GAAGka,QAAQzyM,EAAKkhG,UAC5B,CAAC3oF,EAAKvY,IAGP,8BACE,eAACkxN,EAAA,EAAD,CACEzsC,OAAQksC,GACRQ,cAAc,EACdf,KAAMM,GACNn3G,UAAWA,EACXH,MAAK,eAAOA,GACZg4G,YAAa,SAACC,GACZhB,EAAOgB,IAPX,UAUE,cAAC,EAAD,2BACM/B,GADN,IAEE/7B,wBAAyBg9B,MAI1BxoC,IAAiB6nC,EAA2BxwB,oBAC3C,cAAC,GAAD,yBACErD,oBAAqBA,EACrBC,uBAAwBA,IACpB4zB,GAHN,IAIE7nC,cAAeA,GACfG,oCAAoC,EACpCtzK,UAAWA,GACX6qL,yBAA0B0tB,GAC1B3tB,sBAAuB0tB,GACvBxtB,yBAA0B0tB,MAI7BxlC,EAAoBG,eAAiB,cAAC,GAAD,eAAkBH,KAC1B,OAA7BipC,SAA6B,IAA7BA,QAAA,EAAAA,GAA+BryB,eAC9B,cAAC,EAAD,eAAqBqyB,KAEtBhB,EAAuBrxB,cAAgB,cAAC,EAAD,eAAqBqxB,KAG3D5zB,IAAiB6zB,EAA2B5zB,qBAC5C,cAAC,EAAD,yBACEH,oBAAqBA,EACrBC,uBAAwBA,IACpB8zB,GAHN,IAIE7zB,cAAeA,GACfI,oCAAoC,EACpCjnL,UAAWA,GACXgnL,gCAAgC,EAChCK,yBAA0B6sB,GAC1B9sB,sBAAuB6sB,GACvB3sB,yBAA0B6sB,MAG7BwG,EAAoB9zB,eAAiB,cAAC,EAAD,eAAkB8zB,KAC1B,OAA7BgB,SAA6B,IAA7BA,QAAA,EAAAA,GAA+B75B,eAC9B,cAAC,EAAD,eAAqB65B,KAEtBf,EAAuB94B,cAAgB,cAAC,EAAD,eAAqB84B,KAG3DtmB,IAAcumB,EAAwBvc,kBACtC,cAAC,GAAD,yBACE3X,oBAAqBA,EACrBC,uBAAwBA,IACpBi0B,GAHN,IAIEvmB,WAAYA,GACZC,gCAAgC,EAChC50L,OAAQA,GACRg3L,sBAAuB6B,GACvBmG,mBAAoBpG,MAIvBlE,EAAiBC,YAAc,cAAC,GAAD,eAAeD,KAClC,OAAZkE,SAAY,IAAZA,QAAA,EAAAA,GAAcwF,YACb,cAAC,GAAD,aAAcpH,sBAAuB6B,IAAqBD,MAI1DyY,IAAa8J,EAAuB7J,iBACpC,cAAC,GAAD,yBACEtqB,oBAAqBA,EACrBC,uBAAwBA,IACpBk0B,GAHN,IAIE9J,UAAWA,GACXkL,gCAAgC,EAChCr8M,MAAOA,GACPihM,gBAAiBA,GACjBD,aAAcA,GACdE,gBAAiBA,MAIpBga,EAAgB/J,WACf,cAAC,GAAD,2BACM+J,GADN,IAEEja,gBAAiBA,GACjBD,aAAcA,GACdE,gBAAiBA,MAKrB,cAAC,GAAD,aAAkBpa,oBAAqBA,GAAyB6N,IAG/D2lB,EAAmB3C,YAClB,cAAC,GAAD,2BACM2C,GADN,IAEEh8B,wBAAyBA,MAI5Bx7K,+BAA2C5Q,GAAO,CAAC,QAAS,WAC3DqoN,EAAwB5C,YACtB,cAAC,GAAD,2BACM4C,GADN,IAEEznC,cAAeA,GACf+kC,iBAAkB,SAAC5/M,GAAD,OAAW4/M,GAAiB5/M,IAC9CqmL,wBAAyBA,MAI9Bx7K,+BAA2C5Q,GAAO,CAAC,QAAS,WAC3DsoN,EAAwB7C,YACtB,cAAC,GAAD,2BACM6C,GADN,IAEExzB,cAAeA,GACf8sB,iBAAkB,SAAC77M,GAAD,OAAW67M,GAAiB77M,IAC9CqmL,wBAAyBA,MAI9Bx7K,+BAA2C5Q,GAAO,CAAC,WAClDwoN,EAAoB/C,YAClB,cAAC,GAAD,2BACM+C,GADN,IAEEvJ,UAAWA,GACXlQ,gBAAiBA,GACjB6Y,aAAc,SAAC7hN,GAAD,OAAW6hN,GAAa7hN,IACtCqmL,wBAAyBA,MAI9Bx7K,+BAA2C5Q,GAAO,CAAC,WAClDuoN,EAAqB9C,YACnB,cAAC,GAAD,2BACM8C,GADN,IAEEhmB,WAAYA,GACZqC,sBAAuB6B,GACvB4gB,cAAe,SAACthN,GAAD,OAAWshN,GAActhN,IACxCqmL,wBAAyBA,MAG9BnL,EAAoBC,YACnB,cAAC,GAAD,2BACMD,GADN,IAEEmL,wBAAyBA,YAQrC87B,GAAU7vG,aAAe,CACvBroH,WAAY,CACVstL,OAAQ,CAAC,QAAS,OAClB2rC,KAAM,GACNh3G,MAAO,GACPG,UAAW,GACXmvF,YAAa,MAGf6mB,mBAAoBnD,GAAmB5sG,aACvCgwG,wBAAyB3C,GAAwBrtG,aACjDiwG,wBAAyB3G,GAAwBtpG,aACjDkwG,qBAAsBnB,GAAqB/uG,aAC3CmwG,oBAAqBb,GAAoBtvG,aACzC4oE,oBAAqBm/B,GAAa/nG,aAClC8vG,qBAAsBp8B,EAAc1zE,aACpCowG,2BAA4B1wB,GAAa1/E,aACzCooE,oBAAqBsX,GAAa1/E,aAClCqwG,uBAAwBtxB,EAAgB/+E,aACxCswG,2BAA4Bn0B,EAAan8E,aACzCuwG,oBAAqBp0B,EAAan8E,aAClCwwG,uBAAwBh5B,EAAgBx3E,aACxCywG,wBAAyBxc,GAAUj0F,aACnCiqF,iBAAkBgK,GAAUj0F,aAC5B+xG,oBAAqBve,GAAaxzF,aAClC0wG,uBAAwBjK,GAASzmG,aACjC2wG,gBAAiBlK,GAASzmG,aAC1BoqF,wBAAyB/I,GAAiBrhF,cAE7B6vG,e,0WCiBTv6M,EAAkBle,YAAgB,CACtCs5G,KArdW,WAAyB,IAAxB35G,EAAuB,uDAAf,GAAIC,EAAW,uCACnC,OAAQA,EAAOC,MAEb,KAAKC,IACH,MAA4BF,EAAOM,QAA3B2d,EAAR,EAAQA,SAAUshB,EAAlB,EAAkBA,MAEZrf,EAAW,GAQjB,OAPAqf,EAAMrR,SAAQ,SAAC6tI,GAAsB,IAAD,IAClC77I,EAAS67I,GAAT,yBACE3tI,WAAU,oBAAEruB,EAAMg8J,UAAR,aAAE,EAAyB3tI,kBAA3B,UACPnQ,EAAS89I,IAFd,IAGE7lJ,aAAa,OAGVgK,EAET,KAAKhgB,IACH,MAA4BF,EAAOM,QAA3B2d,EAAR,EAAQA,SAAUshB,EAAlB,EAAkBA,MACZrf,EAAQ,eAAQngB,GAQtB,OAPAw/B,EAAMrR,SAAQ,SAAC6tI,GAAsB,IAAD,EAClC77I,EAAS67I,GAAT,yBACE3tI,WAAU,UAAElO,EAAS67I,GAAkB3tI,kBAA7B,UACPnQ,EAAS89I,IAFd,IAGE7lJ,aAAa,OAGVgK,EAGT,KAAKhgB,IACH,MAAkCF,EAAOM,QAAjC0tC,EAAR,EAAQA,MAAO3G,EAAf,EAAeA,eACTnnB,EAAW69F,IAAKh+G,EAAOiuC,GAO7B,OANA9tB,EAASmnB,EAAesB,UAAxB,qCACEwjF,cAAc,GACXpsH,EAAMiuC,IACN3G,GAHL,IAIEnxB,aAAa,IAERgK,EAGT,KAAKhgB,IACH,MAAkCF,EAAOM,QAAjC0tC,EAAR,EAAQA,MAAO3G,EAAf,EAAeA,eACf,OAAO,2BACF02E,IAAKh+G,EAAO,CAACiuC,KADlB,kBAEG3G,EAAesB,SAFlB,qCAGIwjF,cAAc,GACXpO,IAAKh+G,EAAMiuC,GAAQ,CAAC,uBACpB+vE,IAAK12E,EAAgB,CAAC,uBAL7B,IAMInxB,aAAa,MAMnB,KAAKhW,IACH,IAAMmnC,EAAiBrnC,EAAOM,QACxB4f,EAAQ,eAAQngB,GAOtB,OANAmgB,EAASmnB,EAAesB,UAAxB,yBACEwjF,cAAc,EACd/9F,YAAY,GACTiZ,GAHL,IAIEnxB,aAAa,IAERgK,EAET,KAAKhgB,IACH,IAAMmnC,EAAiBrnC,EAAOM,QAC9B,OAAO,2BACFP,GADL,kBAEGsnC,EAAeuB,YAFlB,qCAGIujF,cAAc,GACXpsH,EAAMsnC,EAAeuB,cAJ5B,IAKIC,kBAAmB9oC,EAAMsnC,EAAeuB,cACrCvB,GANP,IAOInxB,aAAa,MAMnB,KAAKhW,IACH,IAAQ8tC,EAAUhuC,EAAOM,QAAjB0tC,MACR,OAAIjuC,EAAMiuC,GACD+vE,IAAKh+G,EAAOiuC,GAEdjuC,EAET,KAAKG,IACH,IAAQ2oC,EAAsB7oC,EAAOM,QAA7BuoC,kBACR,OAAO,2BACF9oC,GADL,kBAEG8oC,EAAkBF,SAFrB,qCAGIwjF,cAAc,GACXpO,IAAKh+G,EAAM8oC,EAAkBF,UAAW,CAAC,uBACzCE,GALP,IAMI3yB,aAAa,MAMnB,KAAKhW,IACH,IAAQ6oC,EAAU/oC,EAAOM,QAAjByoC,MACR,OAAOg1E,IAAKh+G,EAAOgpC,GAGrB,KAAK7oC,IACH,IAAMg9B,EAASl9B,EAAOM,QAChB4f,EAAQ,2BACTngB,GADS,kBAEXm9B,EAAOyL,SAFI,2BAGP5oC,EAAMm9B,EAAOyL,WAHN,IAIVqyL,OAAQ99L,EAAO89L,WAGnB,OAAO96M,EAIT,KAAKhgB,IACH,IAAM67J,EAAmB/7J,EAAOM,QAC1B4f,EAAQ,2BACTngB,GADS,kBAEXg8J,EAFW,2BAGPh8J,EAAMg8J,IAHC,IAIV3tI,YAAY,MAGhB,OAAOlO,EAGT,KAAKhgB,IACH,IAAM67J,EAAmB/7J,EAAOM,QAChC,OAAO,2BACFP,GADL,kBAEGg8J,EAFH,2BAGOh8J,EAAMg8J,IAHb,IAII3tI,YAAY,MAKlB,KAAKluB,IACH,IAAM+7J,EAAoBj8J,EAAOM,QAC3B4f,EAAQ,eAAQngB,GAiBtB,OAhBgC,GAA5Bk8J,EAAkBlzI,OACpBmF,IAAQnuB,GAAO,SAACsnC,EAAqB00H,GACnC77I,EAAS67I,GAAT,2BACK10H,GADL,IAEEjZ,YAAY,OAIhB6tI,EAAkB/tI,SAAQ,SAAC6tI,GACzB77I,EAAS67I,GAAT,2BACKh8J,EAAMg8J,IADX,IAEE3tI,YAAY,OAKXlO,EAGT,KAAKhgB,IACH,IAAM+7J,EAAoBj8J,EAAOM,QAC3B4f,EAAQ,eAAQngB,GAiBtB,OAhBgC,GAA5Bk8J,EAAkBlzI,OACpBmF,IAAQnuB,GAAO,SAACsnC,EAAqB00H,GACnC77I,EAAS67I,GAAT,2BACK10H,GADL,IAEEjZ,YAAY,OAIhB6tI,EAAkB/tI,SAAQ,SAAC6tI,GACzB77I,EAAS67I,GAAT,2BACKh8J,EAAMg8J,IADX,IAEE3tI,YAAY,OAKXlO,EAGT,KAAKhgB,IAAwC,IAAD,EACpCmpC,EAAqBrpC,EAAOM,QAC5B4f,EAAQ,eAAQngB,GAQtB,OAPkB,OAAlBspC,QAAkB,IAAlBA,GAAA,UAAAA,EAAoBN,aAApB,SAA2B7a,SAAQ,SAACya,GAClCzoB,EAASyoB,GAAT,2BACK5oC,EAAM4oC,IADX,IAEEnP,WAAY6P,EAAmB7P,WAC/BE,aAAc2P,EAAmB3P,kBAG9BxZ,EAGT,KAAKhgB,IAA0C,IAAD,EACtCmpC,EAAqBrpC,EAAOM,QAC5B4f,EAAQ,eAAQngB,GAQtB,OAPkB,OAAlBspC,QAAkB,IAAlBA,GAAA,UAAAA,EAAoBN,aAApB,SAA2B7a,SAAQ,SAACya,GAClCzoB,EAASyoB,GAAT,2BACK5oC,EAAM4oC,IADX,IAEEnP,WAAY,KACZE,aAAc,UAGXxZ,EAIT,QACE,OAAOngB,IA+PXw/B,MA1PY,WAAyB,IAAxBx/B,EAAuB,uDAAf,GAAIC,EAAW,uCACpC,OAAQA,EAAOC,MAEb,KAAKC,IACH,IAAQq/B,EAAUv/B,EAAOM,QAAjBi/B,MACR,OAAOs6E,IAAMt6E,GAEf,KAAKr/B,IACH,IAAQq/B,EAAUv/B,EAAOM,QAAjBi/B,MACR,OAAO+yB,IAAK,GAAD,mBAAKvyD,GAAL,YAAew/B,KAG5B,KAAKr/B,IACH,IAAMmnC,EAAiBrnC,EAAOM,QAC9B,OAAOgyD,IAAK,GAAD,mBAAKvyD,GAAL,CAAYsnC,EAAe00H,oBAExC,KAAK77J,IACH,MAAkCF,EAAOM,QAAjC0tC,EAAR,EAAQA,MAAO3G,EAAf,EAAeA,eACf,OAAOtnC,EAAMgiB,KAAI,SAAC4mB,GAAD,OAAeA,IAAaqF,EAAQ3G,EAAesB,SAAWA,KAGjF,KAAKzoC,IACH,MAAkCF,EAAOM,QAAjC0tC,EAAR,EAAQA,MAAO3G,EAAf,EAAeA,eACf,OAAI2G,IAAU3G,EAAesB,SACpB5oC,EAAMs8B,QAAO,SAAC4+L,GAAD,OAAmBA,IAAkBjtL,KAEpDjuC,EAGT,KAAKG,IACH,IAAQ6oC,EAAU/oC,EAAOM,QAAjByoC,MACR,OAAOhpC,EAAMs8B,QAAO,SAAC4+L,GAAD,OAAmBlyL,EAAMu8D,QAAQ21H,GAAiB,KAIxE,KAAK/6N,IACH,IAAMmnC,EAAiBrnC,EAAOM,QAC9B,MAAM,GAAN,mBAAWP,GAAX,CAAkBsnC,EAAesB,WAInC,KAAKzoC,IACH,IAAQ8tC,EAAUhuC,EAAOM,QAAjB0tC,MACR,OAAOjuC,EAAMs8B,QAAO,SAAC4+L,GAAD,OAAmBA,IAAkBjtL,KAG3D,QACE,OAAOjuC,IA4MX60K,WAvLiB,WAA4B,IAA3B70K,EAA0B,wDAAXC,EAAW,uCAC5C,OAAQA,EAAOC,MACb,KAAKC,IACH,OAAO,EAET,KAAKA,IACL,KAAKA,IACH,OAAO,EAET,QACE,OAAOH,IA8KX47G,eAvMqB,WAA4B,IAA3B57G,EAA0B,wDAAXC,EAAW,uCAChD,OAAQA,EAAOC,MACb,KAAKC,IACH,OAAO,EAET,KAAKA,IACL,KAAKA,IACH,OAAO,EAET,QACE,OAAOH,IA8LXo+G,SA1Ke,WAA4B,IAA3Bp+G,EAA0B,wDAAXC,EAAW,uCAC1C,OAAQA,EAAOC,MACb,KAAKkgB,IACH,OAAO,EAET,KAAKjgB,IACH,OAAO,EAET,KAAKA,IACL,KAAKA,IACH,OAAO,EAET,QACE,OAAOH,IA8JXq+G,UAzJgB,WAA4B,IAA3Br+G,EAA0B,wDAAXC,EAAW,uCAC3C,OAAQA,EAAOC,MACb,KAAKkgB,IACH,OAAO,EAET,KAAKjgB,IACL,KAAKA,IACL,KAAKA,IACL,KAAKA,IACH,OAAO,EAET,KAAKA,IACL,KAAKA,IACL,KAAKA,IACL,KAAKA,IACL,KAAKA,IACH,OAAO,EAET,QACE,OAAOH,IAuIXs+G,WAlIiB,WAA4B,IAA3Bt+G,EAA0B,wDAAXC,EAAW,uCAC5C,OAAQA,EAAOC,MACb,KAAKkgB,IACH,OAAO,EAET,KAAKjgB,IACH,OAAO,EAET,KAAKA,IACL,KAAKA,IACH,OAAO,EAET,QACE,OAAOH,IAsHXm7N,iCAxBuC,WAA4B,IAA3Bn7N,EAA0B,wDAAXC,EAAW,uCAClE,OAAQA,EAAOC,MACb,KAAKC,IACH,OAAO,EAGT,KAAKA,IACL,KAAKA,IACH,OAAO,EAET,QACE,OAAOH,IAcX80K,cAlGoB,WAA2B,IAA1B90K,EAAyB,uDAAjB,KAAMC,EAAW,uCAC9C,OAAQA,EAAOC,MACb,KAAKC,IACH,IAAQ4B,EAAU9B,EAAOM,QAAjBwB,MACR,OAAOA,EAET,KAAK5B,IACL,KAAKA,IACH,OAAO,KAET,QACE,OAAOH,IAwFX87G,kBAnHwB,WAA2B,IAA1B97G,EAAyB,uDAAjB,KAAMC,EAAW,uCAClD,OAAQA,EAAOC,MACb,KAAKC,IACH,IAAQ4B,EAAU9B,EAAOM,QAAjBwB,MACR,OAAOA,EAET,KAAK5B,IACL,KAAKA,IACH,OAAO,KAET,QACE,OAAOH,IAyGXw+G,YApFkB,WAA2B,IAA1Bx+G,EAAyB,uDAAjB,KAAMC,EAAW,uCAC5C,OAAQA,EAAOC,MACb,KAAKkgB,IACH,OAAO,KAET,KAAKjgB,IACH,IAAQ4B,EAAU9B,EAAOM,QAAjBwB,MACR,OAAOA,EAET,KAAK5B,IACL,KAAKA,IACH,OAAO,KAET,QACE,OAAOH,IAuEXy+G,aAlEmB,WAA2B,IAA1Bz+G,EAAyB,uDAAjB,KAAMC,EAAW,uCAC7C,OAAQA,EAAOC,MACb,KAAKkgB,IACH,OAAO,KAET,KAAKjgB,IACH,IAAQ4B,EAAU9B,EAAOM,QAAjBwB,MACR,OAAOA,EAET,KAAK5B,IACL,KAAKA,IACH,OAAO,KAET,QACE,OAAOH,IAqDX0+G,cAhDoB,WAA2B,IAA1B1+G,EAAyB,uDAAjB,KAAMC,EAAW,uCAC9C,OAAQA,EAAOC,MACb,KAAKkgB,IACH,OAAO,KAET,KAAKjgB,IACH,IAAQ4B,EAAU9B,EAAOM,QAAjBwB,MACR,OAAOA,EAET,KAAK5B,IACL,KAAKA,IACH,OAAO,KAET,QACE,OAAOH,IAmCXizC,qBAGa10B,MAGR,IAAM9b,EAAc,SAACzC,GAAD,OAAWA,EAAMme,OAAOI,iBAGtC68M,EAAoB,SAACp7N,EAAO4oC,GAAR,OAC/BnmC,EAAYzC,GAAO25G,KAAK/wE,IACbyyL,EAAyB,SAACr7N,GAAD,OACpCyC,EAAYzC,GACTw/B,MAAMxd,KAAI,SAAC4mB,GAAD,OAAcwyL,EAAkBp7N,EAAO4oC,MACjDtM,QAAO,SAAC77B,GAAD,OAAc,OAAJA,QAAI,IAAJA,OAAA,EAAAA,EAAM66N,YAAa,MAC5BC,EAAiC,SAACv7N,EAAOy+H,GAAR,OAC5CA,EAAKz8G,KAAI,SAAC4mB,GAAD,OAAcwyL,EAAkBp7N,EAAO4oC,OAerC4yL,EAA4B,SAACx7N,GACxC,IAAMy7N,EAA0BJ,EAAuBr7N,GAAOs8B,QAC5D,SAACgL,GAAD,OAAoBA,EAAejZ,cAGrC,OAAuC,IAAnCotM,EAAwBzyM,OAAqByyM,EAAwB,GAE7D,MAKDC,EAAgC,SAAC17N,GAAD,OAAWyC,EAAYzC,GAAO47G,gBAE9D+/G,EAA0B,SAAC37N,GAAD,OAAWyC,EAAYzC,GAAOq+G,Y,imBCoX/Dn/F,EAAQ7e,YAAgB,CAC5Bs5G,KA73BW,WAAyB,IAAxB35G,EAAuB,uDAAf,GAAIC,EAAW,uCACnC,OAAQA,EAAOC,MAEb,KAAKC,IACH,MAA4BF,EAAOM,QAA3B2d,EAAR,EAAQA,SAAUshB,EAAlB,EAAkBA,MACZrf,EAAQ,eAAQngB,GAoBtB,OAnBAw/B,EAAMrR,SAAQ,SAACyjC,GACbzxC,EAASyxC,GAAT,yBACEvjC,YAAY,EACZ4gC,SAAU,CACR0qD,KAAM,GACNn6E,MAAO,IAET2vB,UAAW,CACTwqD,KAAM,GACNn6E,MAAO,IAETkwB,UAAW,CACTiqD,KAAM,GACNn6E,MAAO,KAENthB,EAAS0zC,IAdd,IAeEz7C,aAAa,OAGVgK,EAGT,KAAKhgB,IACH,MAA4BF,EAAOM,QAA3B2d,EAAR,EAAQA,SAAUshB,EAAlB,EAAkBA,MACZrf,EAAQ,eAAQngB,GAqBtB,OApBAw/B,EAAMrR,SAAQ,SAAC8G,GACb9U,EAAS8U,GAAT,qCACE5G,YAAY,EACZ4gC,SAAU,CACR0qD,KAAM,GACNn6E,MAAO,IAET2vB,UAAW,CACTwqD,KAAM,GACNn6E,MAAO,IAETkwB,UAAW,CACTiqD,KAAM,GACNn6E,MAAO,KAENx/B,EAAMi1B,IACN/W,EAAS+W,IAfd,IAgBE9e,aAAa,OAGVgK,EAGT,KAAKhgB,KACH,MAAoCF,EAAOM,QAAnC2d,EAAR,EAAQA,SAAUshB,EAAlB,EAAkBA,MAAOoyB,EAAzB,EAAyBA,OACnBzxC,EAAQ,eAAQngB,GAQtB,OAPAmgB,EAASyxC,GAAT,2BACKzxC,EAASyxC,IADd,IAEE3C,SAAU,CACR0qD,KAAMz7F,EACNshB,MAAOA,KAGJrf,EAGT,KAAKhgB,IACH,MAAoCF,EAAOM,QAAnC2d,EAAR,EAAQA,SAAUshB,EAAlB,EAAkBA,MAAOoyB,EAAzB,EAAyBA,OACnBzxC,EAAQ,eAAQngB,GAQtB,OAPAmgB,EAASyxC,GAAT,2BACKzxC,EAASyxC,IADd,IAEEzC,UAAW,CACTwqD,KAAMz7F,EACNshB,MAAOA,KAGJrf,EAGT,KAAKhgB,IACH,IAAMyxD,EAAS3xD,EAAOM,QAChB4f,EAAQ,eAAQngB,GAKtB,OAJAmgB,EAASyxC,GAAQzC,UAAY,CAC3BwqD,KAAM,GACNn6E,MAAO,IAEFrf,EAGT,KAAKhgB,IACH,IAAMuf,EAAOzf,EAAOM,QACpB,OAAO,2BACFP,GADL,kBAEG0f,EAAKqwC,mBAFR,uCAGOiuD,IAAKh+G,EAAM0f,EAAKqwC,oBAAqB,CAAC,cACtCiuD,IAAKt+F,EAAM,CAAC,cAJnB,IAKIvJ,aAAa,MAKnB,KAAKhW,IACH,MAAwBF,EAAOM,QAAvB0tC,EAAR,EAAQA,MAAOvuB,EAAf,EAAeA,KACTS,EAAW69F,IAAKh+G,EAAOiuC,GAM7B,OALA9tB,EAAST,EAAKqwC,oBAAd,uCACK/vD,EAAMiuC,IACNvuB,GAFL,IAGEvJ,aAAa,IAERgK,EAGT,KAAKhgB,IACH,MAAoCF,EAAOM,QAAnC2d,EAAR,EAAQA,SAAUshB,EAAlB,EAAkBA,MAAOoyB,EAAzB,EAAyBA,OACnBzxC,EAAQ,eAAQngB,GAKtB,OAJAmgB,EAASyxC,GAAQlC,UAAY,CAC3BiqD,KAAK,eAAMz7F,GACXshB,MAAOA,GAEFrf,EAGT,KAAKhgB,IACH,IAAMyxD,EAAS3xD,EAAOM,QAChB4f,EAAQ,eAAQngB,GAKtB,OAJAmgB,EAASyxC,GAAQlC,UAAY,CAC3BiqD,KAAM,GACNn6E,MAAO,IAEFrf,EAIT,KAAKhgB,IACL,KAAKA,IACH,IAAMuf,EAAOzf,EAAOM,QACd4f,EAAQ,eAAQngB,GAStB,OARAmgB,EAAST,EAAKqwC,oBAAd,yBACE1hC,YAAY,GACT3O,GAFL,IAGEiP,iBAAkB,GAClB1K,aAAc,GACd+N,gBAAiB,GACjB7b,aAAa,IAERgK,EAET,KAAKhgB,IACL,KAAKA,IACH,IAAMuf,EAAOzf,EAAOM,QACpB,OAAO,2BACFP,GADL,kBAEG0f,EAAKqwC,mBAFR,uCAGO/vD,EAAM0f,EAAKqwC,qBAHlB,IAII+B,QAAS9xD,EAAM0f,EAAKqwC,qBACjBrwC,GALP,IAMIvJ,aAAa,MAMnB,KAAKhW,IACH,IAAQ8tC,EAAUhuC,EAAOM,QAAjB0tC,MACR,OAAIjuC,EAAMiuC,GACD+vE,IAAKh+G,EAAOiuC,GAEdjuC,EAET,KAAKG,IACH,IAAM2xD,EAAU7xD,EAAOM,QACvB,OAAO,2BACFP,GADL,kBAEG8xD,EAAQ/B,mBAFX,uCAGOiuD,IAAKh+G,EAAM8xD,EAAQ/B,oBAAqB,CAAC,aACzC+B,GAJP,IAKI37C,aAAa,MAMnB,KAAKhW,IACH,IAAQyxD,EAAW3xD,EAAOM,QAAlBqxD,OACR,OAAOosD,IAAKh+G,EAAO4xD,GAIrB,KAAKzxD,KACH,IAAMyxD,EAAS3xD,EAAOM,QAChB4f,EAAQ,2BACTngB,GADS,kBAEX4xD,EAFW,2BAGP5xD,EAAM4xD,IAHC,IAIVvjC,YAAY,MAGhB,OAAOlO,EAGT,KAAKhgB,IACH,IAAMyxD,EAAS3xD,EAAOM,QACtB,OAAO,2BACFP,GADL,kBAEG4xD,EAFH,2BAGO5xD,EAAM4xD,IAHb,IAIIvjC,YAAY,MAKlB,KAAKluB,IACH,IAAMqjD,EAAUvjD,EAAOM,QACjB4f,EAAQ,eAAQngB,GAiBtB,OAhBsB,GAAlBwjD,EAAQx6B,OACVmF,IAAQnuB,GAAO,SAAC0f,EAAWkyC,GACzBzxC,EAASyxC,GAAT,2BACKlyC,GADL,IAEE2O,YAAY,OAIhBm1B,EAAQr1B,SAAQ,SAACyjC,GACfzxC,EAASyxC,GAAT,2BACK5xD,EAAM4xD,IADX,IAEEvjC,YAAY,OAKXlO,EAGT,KAAKhgB,IACH,IAAMqjD,EAAUvjD,EAAOM,QACjB4f,EAAQ,eAAQngB,GAiBtB,OAhBsB,GAAlBwjD,EAAQx6B,OACVmF,IAAQnuB,GAAO,SAAC0f,EAAWkyC,GACzBzxC,EAASyxC,GAAT,2BACKlyC,GADL,IAEE2O,YAAY,OAIhBm1B,EAAQr1B,SAAQ,SAACyjC,GACfzxC,EAASyxC,GAAT,2BACK5xD,EAAM4xD,IADX,IAEEvjC,YAAY,OAKXlO,EAGT,KAAKhgB,IACH,IAAMqjD,EAAUvjD,EAAOM,QACjB4f,EAAQ,eAAQngB,GAuBtB,OAtBsB,GAAlBwjD,EAAQx6B,OACVmF,IAAQnuB,GAAO,SAAC0f,EAAWkyC,GACzBzxC,EAASyxC,GAAT,2BACKlyC,GADL,IAEEyvC,UAAW,CACTwqD,KAAM,GACNn6E,MAAO,SAKbgkB,EAAQr1B,SAAQ,SAACyjC,GACfzxC,EAASyxC,GAAT,2BACK5xD,EAAM4xD,IADX,IAEEzC,UAAW,CACTwqD,KAAM,GACNn6E,MAAO,SAMRrf,EAIT,QACE,OAAOngB,IAgmBXw/B,MA3lBY,WAAyB,IAAxBx/B,EAAuB,uDAAf,GAAIC,EAAW,uCACpC,OAAQA,EAAOC,MAEb,KAAKC,IACH,IAAQq/B,EAAUv/B,EAAOM,QAAjBi/B,MACR,OAAOs6E,IAAMt6E,GAGf,KAAKr/B,IACH,IAAQq/B,EAAUv/B,EAAOM,QAAjBi/B,MACR,OAAO+yB,IAAK,GAAD,mBAAKvyD,GAAL,YAAew/B,KAG5B,KAAKr/B,IACH,MAAwBF,EAAOM,QAAvB0tC,EAAR,EAAQA,MAAOvuB,EAAf,EAAeA,KACf,OAAO1f,EAAMgiB,KAAI,SAAC4vC,GAAD,OAAaA,IAAW3jB,EAAQvuB,EAAKqwC,mBAAqB6B,KAG7E,KAAKzxD,IACH,IAAQyxD,EAAW3xD,EAAOM,QAAlBqxD,OACR,OAAO5xD,EAAMs8B,QAAO,SAACs/L,GAAD,OAAiBA,IAAgBhqK,KAIvD,KAAKzxD,IACL,KAAKA,IACH,IAAMuf,EAAOzf,EAAOM,QACpB,MAAM,GAAN,mBAAWP,GAAX,CAAkB0f,EAAKqwC,qBAIzB,KAAK5vD,IACH,IAAQ8tC,EAAUhuC,EAAOM,QAAjB0tC,MACR,OAAOjuC,EAAMs8B,QAAO,SAACs/L,GAAD,OAAiBA,IAAgB3tL,KAIvD,QACE,OAAOjuC,IAsjBX60K,WAjiBiB,WAA4B,IAA3B70K,EAA0B,wDAAXC,EAAW,uCAC5C,OAAQA,EAAOC,MACb,KAAKC,KACL,KAAKA,IACL,KAAKA,IACH,OAAO,EAET,KAAKA,KACL,KAAKA,IACL,KAAKA,IACL,KAAKA,KACL,KAAKA,IACL,KAAKA,IACH,OAAO,EAET,QACE,OAAOH,IAkhBX47G,eAjjBqB,WAA4B,IAA3B57G,EAA0B,wDAAXC,EAAW,uCAChD,OAAQA,EAAOC,MACb,KAAKC,IACH,OAAO,EAET,KAAKA,IACL,KAAKA,IACH,OAAO,EAET,QACE,OAAOH,IAwiBXo+G,SA9gBe,WAA4B,IAA3Bp+G,EAA0B,wDAAXC,EAAW,uCAC1C,OAAQA,EAAOC,MACb,KAAKC,IACL,KAAKA,IACH,OAAO,EAET,KAAKA,IACL,KAAKA,IACH,OAAO,EAET,QACE,OAAOH,IAogBXq+G,UA/fgB,WAA4B,IAA3Br+G,EAA0B,wDAAXC,EAAW,uCAC3C,OAAQA,EAAOC,MACb,KAAKC,IACL,KAAKA,IACH,OAAO,EAET,KAAKA,IACL,KAAKA,IACH,OAAO,EAET,QACE,OAAOH,IAqfXs+G,WAhfiB,WAA4B,IAA3Bt+G,EAA0B,wDAAXC,EAAW,uCAC5C,OAAQA,EAAOC,MACb,KAAKC,IACH,OAAO,EAET,KAAKA,IACL,KAAKA,IACH,OAAO,EAET,QACE,OAAOH,IAueX80K,cAldoB,WAA2B,IAA1B90K,EAAyB,uDAAjB,KAAMC,EAAW,uCAC9C,OAAQA,EAAOC,MACb,KAAKC,IACH,IAAQ4B,EAAU9B,EAAOM,QAAjBwB,MACR,OAAOA,EAET,KAAK5B,IACL,KAAKA,IACH,OAAO,KAET,QACE,OAAOH,IAwcX87G,kBAnewB,WAA2B,IAA1B97G,EAAyB,uDAAjB,KAAMC,EAAW,uCAClD,OAAQA,EAAOC,MACb,KAAKC,IACH,IAAQ4B,EAAU9B,EAAOM,QAAjBwB,MACR,OAAOA,EAET,KAAK5B,IACL,KAAKA,IACH,OAAO,KAET,QACE,OAAOH,IAydXw+G,YApckB,WAA2B,IAA1Bx+G,EAAyB,uDAAjB,KAAMC,EAAW,uCAC5C,OAAQA,EAAOC,MACb,KAAKC,IACH,IAAQ4B,EAAU9B,EAAOM,QAAjBwB,MACR,OAAOA,EAET,KAAK5B,IACL,KAAKA,IACL,KAAKA,IACH,OAAO,KAET,QACE,OAAOH,IAybXy+G,aApbmB,WAA2B,IAA1Bz+G,EAAyB,uDAAjB,KAAMC,EAAW,uCAC7C,OAAQA,EAAOC,MACb,KAAKC,IACH,IAAQ4B,EAAU9B,EAAOM,QAAjBwB,MACR,OAAOA,EAET,KAAK5B,IACL,KAAKA,IACL,KAAKA,IACH,OAAO,KAET,QACE,OAAOH,IAyaX0+G,cApaoB,WAA2B,IAA1B1+G,EAAyB,uDAAjB,KAAMC,EAAW,uCAC9C,OAAQA,EAAOC,MACb,KAAKC,IACH,IAAQ4B,EAAU9B,EAAOM,QAAjBwB,MACR,OAAOA,EAET,KAAK5B,IACL,KAAKA,IACH,OAAO,KAET,QACE,OAAOH,IA0ZX06I,cA3EoB,WAAgC,IAA/B16I,EAA8B,uDAAf,GAAIC,EAAW,uCACnD,OAAQA,EAAOC,MAEb,KAAKC,KACH,MAA6CF,EAAOM,QAA/B2O,GAArB,EAAQ2qI,YAAR,EAAqB3qI,UAAU4qI,EAA/B,EAA+BA,UACzB35H,EAAQ,YAAOngB,GAErB,OADAmgB,EAAS1D,OAAOvN,EAAU,EAAG4qI,GACtB35H,EAGT,KAAKhgB,KACH,MAA6CF,EAAOM,QAA5C05I,EAAR,EAAQA,iBAAkBC,EAA1B,EAA0BA,eACpBzb,EAAI,YAAOz+H,GACjB,EAAkBy+H,EAAKhiH,OAAOw9H,EAAkB,GAAhD,mBAAO4hF,EAAP,KAEA,OADAp9F,EAAKhiH,OAAOy9H,EAAgB,EAAG2hF,GACxBp9F,EAGT,KAAKt+H,KACH,IAAM25I,EAAY75I,EAAOM,QACnB4f,EAAWngB,EAAMs8B,QAAO,SAACq8K,GAAD,OAAaA,IAAY7+D,KACvD,OAAO35H,EAGT,KAAKhgB,KACH,MAAoCF,EAAOM,QAAnCu5I,EAAR,EAAQA,UAAWS,EAAnB,EAAmBA,aACbp6H,EAAQ,YAAOngB,GACjB87N,EAAkB37M,EAAS6I,OAK/B,OAJA7I,EAAS6B,KAAI,SAAC5T,EAAI8oB,GACZ9oB,IAAO0rI,IAAWgiF,EAAkB5kM,EAAI,MAE9C/W,EAAS1D,OAAOq/M,EAAiB,EAAGvhF,GAC7Bp6H,EAGT,KAAKhgB,KACH,MAAsCF,EAAOM,QAArCm6I,EAAR,EAAQA,cAAR,EAAuBC,WACvB,cAAOD,QAAP,IAAOA,IAAiB16I,EAI1B,QACE,OAAOA,IAkCX+7N,aAtZmB,WAA+D,IAA9D/7N,EAA6D,uDAAf,GAAIC,EAAW,uCACjF,OAAQA,EAAOC,MACb,KAAKC,KACH,MAA6CF,EAAOM,QAA5Cs5I,EAAR,EAAQA,YAAuBC,GAA/B,EAAqB5qI,SAArB,EAA+B4qI,WACzB35H,EAAQ,eAAQngB,GAUtB,OATAmgB,EAAS25H,GAAa,CACpBA,UAAWA,EACXzrI,KAAMxE,cAAUsE,cAAc,CAAEC,GAAI,kBACpC+gD,UAAW,GACXy0D,KAAsB,IAAhBi2B,EAAoB,GAAK,CAAC,CAAEgB,MAAO,aAAcxsI,KAAM,KAC7DnO,KAAM25I,EAAc,EACpBmiF,iBAAiB,EACjBjhN,aAAa,GAERoF,EAET,KAAKhgB,KACH,MAAmCF,EAAOM,QAAlCu5I,EAAR,EAAQA,UAAWM,EAAnB,EAAmBA,YACbj6H,EAAQ,eAAQngB,GAKtB,OAJAmgB,EAAS25H,GAAT,2BACK35H,EAAS25H,IADd,IAEEzrI,KAAM+rI,IAEDj6H,EAET,KAAKhgB,KACH,IAAM25I,EAAY75I,EAAOM,QACnB4f,EAAQ,eAAQngB,GACtB,OAAOg+G,IAAK79F,EAAU25H,GAExB,KAAK35I,KACH,MAAgDF,EAAOM,QAA/Cu5I,EAAR,EAAQA,UAAWS,EAAnB,EAAmBA,aAAcC,EAAjC,EAAiCA,WAC3Br6H,EAAQ,eAAQngB,GAChBi8N,EAAa,2BACd97M,EAAS25H,IADK,IAEjB3qF,UAAWhvC,EAAS25H,GAAW3qF,UAAUntC,KAAI,SAACy5H,GAAD,mBAAC,eACzCA,GADwC,IAE3CN,WAAY48D,qBAGhB,OAAO,2BACF53L,GADL,kBAEGo6H,EAFH,uCAEuB0hF,GAAkBzhF,GAFzC,IAEqDV,UAAWS,MAGlE,KAAKp6I,IACH,MAAmCF,EAAOM,QAAlCu5I,EAAR,EAAQA,UAAWe,EAAnB,EAAmBA,MAAOxsI,EAA1B,EAA0BA,KACpB8R,EAAQ,eAAQngB,GAWtB,OAVAmgB,EAAS25H,GAAT,2BACK35H,EAAS25H,IADd,IAEEl2B,KAAK,GAAD,mBACCzjG,EAAS25H,GAAWl2B,MADrB,CAEF,CACEi3B,QACAxsI,YAIC8R,EAET,KAAKhgB,KACH,MAAmCF,EAAOM,QAAlCu5I,EAAR,EAAQA,UAAWe,EAAnB,EAAmBA,MAAOxsI,EAA1B,EAA0BA,KACpB8R,EAAQ,eAAQngB,GAOtB,OANAmgB,EAAS25H,GAAT,2BACK35H,EAAS25H,IADd,IAEEl2B,KAAK,YACAzjG,EAAS25H,GAAWl2B,KAAK5hG,KAAI,SAAC8mF,GAAD,OAAUA,EAAI+xC,QAAUA,EAAd,2BAA2B/xC,GAA3B,IAAgCz6F,SAASy6F,QAGhF3oF,EAET,KAAKhgB,IACH,MAAwDF,EAAOM,QAAvDu5I,EAAR,EAAQA,UAAWG,EAAnB,EAAmBA,iBAAkBC,EAArC,EAAqCA,eAC/BgiF,EAAO,YAAOl8N,EAAM85I,GAAWl2B,MACrC,EAAkBs4G,EAAQz/M,OAAOw9H,EAAkB,GAAnD,mBAAO4hF,EAAP,KAEA,OADAK,EAAQz/M,OAAOy9H,EAAgB,EAAG2hF,GAC3B,2BACF77N,GADL,kBAEG85I,EAFH,2BAGO95I,EAAM85I,IAHb,IAIIl2B,KAAMs4G,MAIZ,KAAK/7N,IACH,MAA6BF,EAAOM,QAA5Bu5I,EAAR,EAAQA,UAAWe,EAAnB,EAAmBA,MACb16H,EAAQ,eAAQngB,GAMtB,OAJAmgB,EAAS25H,GAAT,2BACK35H,EAAS25H,IADd,IAEEl2B,KAAK,YAAKzjG,EAAS25H,GAAWl2B,KAAKtnF,QAAO,SAACwsE,GAAD,QAAWA,EAAI+xC,QAAUA,SAE9D16H,EAET,KAAKhgB,IACH,MAA0DF,EAAOM,QAAzDu5I,EAAR,EAAQA,UAAW5qI,EAAnB,EAAmBA,SAAUgsI,EAA7B,EAA6BA,aAAcC,EAA3C,EAA2CA,WACrCh7H,GAAQ,eAAQngB,GAChBm8N,GAAY,YACbn8N,EAAM85I,GAAW3qF,UAAUntC,KAAI,SAACy5H,GAAD,mBAAC,eAAmBA,GAApB,IAA8B1gI,aAAa,QAE3EwgI,GAAc,CAChBJ,WAAYA,EACZ9sI,KAAM,GACNnO,KAAMg7I,EACNkzE,YAAY,EACZgO,WAAW,EACXrhN,aAAa,GAEXshN,GAAe,CACjBlhF,WAAYA,EACZ9sI,KAAM,GACNnO,KAAMg7I,EACNkzE,YAAY,EACZgO,WAAW,EACXrhN,aAAa,EACbq3C,QAAS,CAAC,CAAEkqF,SAAU,gBAAiB9pF,OAAQ,MAWjD,OATqB,IAAjB0oF,GAAsC,GAAhBA,GAAqC,GAAhBA,EAC7CihF,GAAa1/M,OAAOvN,EAAU,EAAGmtN,IAEjCF,GAAa1/M,OAAOvN,EAAU,EAAGqsI,IAEnCp7H,GAAS25H,GAAT,2BACK35H,GAAS25H,IADd,IAEE3qF,UAAWgtK,KAENh8M,GAET,KAAKhgB,IACH,OAAwDF,EAAOM,QAAvDu5I,GAAR,GAAQA,UAAWG,GAAnB,GAAmBA,iBAAkBC,GAArC,GAAqCA,eAC/BiiF,GAAY,YAAOn8N,EAAM85I,IAAW3qF,WAC1C,GAAkBgtK,GAAa1/M,OAAOw9H,GAAkB,GAAxD,qBAAO4hF,GAAP,MAEA,OADAM,GAAa1/M,OAAOy9H,GAAgB,EAAG2hF,IAChC,2BACF77N,GADL,kBAEG85I,GAFH,2BAGO95I,EAAM85I,KAHb,IAII3qF,UAAWgtK,OAIjB,KAAKh8N,IACH,OAAoDF,EAAOM,QAAnDu5I,GAAR,GAAQA,UAAWqB,GAAnB,GAAmBA,WAAYmB,GAA/B,GAA+BA,SAAU9pF,GAAzC,GAAyCA,OACzC,OAAO,2BACFxyD,GADL,kBAEG85I,GAFH,2BAGO95I,EAAM85I,KAHb,IAII3qF,UAAWnvD,EAAM85I,IAAW3qF,UAAUntC,KAAI,SAACy5H,EAAUvkH,GAAX,aACxCA,IAAMikH,GAAN,2BACSM,GADT,IACmBrpF,QAAQ,GAAD,6BAAOqpF,EAASrpF,eAAhB,QAA2B,IAA3B,CAAgC,CAAEkqF,YAAU9pF,eAClEipF,SAKZ,KAAKt7I,IAA0B,IAAD,GAC5B,GAAoEF,EAAOM,QAAnEu5I,GAAR,GAAQA,UAAWqB,GAAnB,GAAmBA,WAAYlB,GAA/B,GAA+BA,iBAAkBC,GAAjD,GAAiDA,eAC3CiiF,GAAY,YAAOn8N,EAAM85I,IAAW3qF,WACpCmtK,GAAU,WAAGH,GAAahhF,IAAY/oF,eAA5B,UAAuC,GACvD,GAAkBkqK,GAAW7/M,OAAOw9H,GAAkB,GAAtD,qBAAO4hF,GAAP,MAGA,OAFAS,GAAW7/M,OAAOy9H,GAAgB,EAAG2hF,IACrCM,GAAahhF,IAAY/oF,QAAUkqK,GAC5B,2BACFt8N,GADL,kBAEG85I,GAFH,2BAGO95I,EAAM85I,KAHb,IAII3qF,UAAWgtK,OAIjB,KAAKh8N,IACH,OAAoDF,EAAOM,QAAnDu5I,GAAR,GAAQA,UAAWqB,GAAnB,GAAmBA,WAAYjsI,GAA/B,GAA+BA,SAAUsjD,GAAzC,GAAyCA,OACzC,OAAO,2BACFxyD,GADL,kBAEG85I,GAFH,2BAGO95I,EAAM85I,KAHb,IAII3qF,UAAWnvD,EAAM85I,IAAW3qF,UAAUntC,KAAI,SAACy5H,EAAUvkH,GAAX,aACxCA,IAAMikH,GAAN,2BAESM,GAFT,IAGMrpF,SAAS,UAACqpF,EAASrpF,eAAV,QAAqB,IAAIpwC,KAAI,SAAC9U,EAAGgqB,GAAJ,OACpCA,IAAMhoB,GAAN,2BAAsBhC,GAAtB,IAAyBslD,YAAWtlD,OAGxCuuI,SAKZ,KAAKt7I,IACH,OAA4CF,EAAOM,QAA3Cu5I,GAAR,GAAQA,UAAWqB,GAAnB,GAAmBA,WAAYjsI,GAA/B,GAA+BA,SAC/B,OAAO,2BACFlP,GADL,kBAEG85I,GAFH,2BAGO95I,EAAM85I,KAHb,IAII3qF,UAAWnvD,EAAM85I,IAAW3qF,UAAUntC,KAAI,SAACy5H,EAAUvkH,GAAX,aACxCA,IAAMikH,GAAN,2BACSM,GADT,IACmBrpF,SAAS,UAACqpF,EAASrpF,eAAV,QAAqB,IAAI91B,QAAO,SAACkmF,EAAGtrF,GAAJ,OAAUA,GAAKhoB,QACvEusI,SAKZ,KAAKt7I,IACH,OAAkCF,EAAOM,QAAjCu5I,GAAR,GAAQA,UAAWqB,GAAnB,GAAmBA,WACbghF,GAAe,YAAIn8N,EAAM85I,IAAW3qF,WAAW7yB,QACnD,SAACm/G,GAAD,OAAcA,EAASN,aAAeA,MAExC,OAAO,2BACFn7I,GADL,kBAEG85I,GAFH,2BAGO95I,EAAM85I,KAHb,IAII3qF,UAAWgtK,OAIjB,KAAKh8N,IAA6B,IAAD,GAC/B,GAA+CF,EAAOM,QAA9Cu5I,GAAR,GAAQA,UAAWqB,GAAnB,GAAmBA,WAAYI,GAA/B,GAA+BA,YACzBp7H,GAAQ,eAAQngB,GAChBm8N,GAAY,WAAGh8M,GAAS25H,WAAZ,cAAG,GAAqB3qF,UACtCotK,GAAmBJ,GAAanzM,OAAS,EACvCwzM,GAAcL,GAAa7/L,QAAO,SAACm/G,EAAUvkH,GACjD,OAAIukH,EAASN,aAAeA,KAC1BohF,GAAmBrlM,EAAI,GAChB,MAGR,GAKH,OAJAilM,GAAa1/M,OAAO8/M,GAAkB,EAAtC,2BACKC,IACAjhF,KAEE,2BACFp7H,IADL,kBAEG25H,GAFH,2BAGO35H,GAAS25H,KAHhB,IAII3qF,UAAWgtK,OAIjB,KAAKh8N,KACH,OAAsCF,EAAOM,QAAtBo6I,IAAvB,GAAQD,cAAR,GAAuBC,YAevB,OAdAxsH,IAAQwsH,IAAY,SAAChkI,EAAOzU,GAAS,IAAD,IAClCy4I,GAAWz4I,GAAX,2BACKy4I,GAAWz4I,IADhB,IAEEitD,UAAW,GACXy0D,KACoC,IAAlC+2B,GAAWz4I,GAAKu6N,cACZ,GADJ,UAEI9hF,GAAWz4I,GAAKw6N,mBAFpB,iBAEI,EAA6Bl4N,MAAM,YAFvC,aAEI,EAAyCwd,KAAI,SAAC8mF,GAC5C,aAAsBA,QAAtB,IAAsBA,OAAtB,EAAsBA,EAAKtkG,MAAM,KAAjC,mBACA,MAAO,CAAEq2I,MADT,KACgBxsI,KADhB,SAGRnO,KAAMy6I,GAAWz4I,GAAKu6N,mBAG1B,OAAO9hF,SAAP,IAAOA,MAAc36I,EAEvB,KAAKG,KACH,IAAQ25I,GAAc75I,EAAOM,QAArBu5I,UACF35H,GAAQ,eAAQngB,GAKtB,OAJAmgB,GAAS25H,IAAT,2BACK35H,GAAS25H,KADd,IAEE/+H,aAAcoF,GAAS25H,IAAW/+H,cAE7BoF,GAGT,KAAKhgB,IACH,OAAgCF,EAAOM,QAA/Bu5I,GAAR,GAAQA,UAAW2B,GAAnB,GAAmBA,SACbjB,GAAU,eAAQx6I,GAClBu7I,GAAW,2BACZE,IADY,IAEfv7I,KAAMu7I,GAASkhF,iBAGjB,OADAniF,GAAWV,IAAW3qF,UAAtB,sBAAsCqrF,GAAWV,IAAW3qF,WAA5D,CAAuEosF,KAChEf,GAGT,KAAKr6I,IACH,OAAgDF,EAAOM,QAA/Cu5I,GAAR,GAAQA,UAAWqB,GAAnB,GAAmBA,WAAYyhF,GAA/B,GAA+BA,aACzBT,GAAY,YAAOn8N,EAAM85I,IAAW3qF,WAE1C,OADAgtK,GAAahhF,IAAY9sI,KAAOuuN,GACzB,2BACF58N,GADL,kBAEG85I,GAFH,2BAGO95I,EAAM85I,KAHb,IAII3qF,UAAWgtK,OAKjB,KAAKh8N,IACH,OAA0CF,EAAOM,QAAzCu5I,GAAR,GAAQA,UAAWqB,GAAnB,GAAmBA,WAAYh4B,GAA/B,GAA+BA,OAC/B,OAAO,2BACFnjH,GADL,kBAEG85I,GAFH,2BAGO95I,EAAM85I,KAHb,IAII3qF,UAAU,YACLnvD,EAAM85I,IAAW3qF,UAAUntC,KAAI,SAACy5H,EAAUvkH,GAAX,OAChCA,IAAMikH,GAAN,2BAAwBM,GAAxB,IAAkCt4B,OAAQA,KAAWs4B,UAO/D,KAAKt7I,IACH,OAAkCF,EAAOM,QAAjCu5I,GAAR,GAAQA,UAAWqB,GAAnB,GAAmBA,WACnB,OAAO,2BACFn7I,GADL,kBAEG85I,GAFH,2BAGO95I,EAAM85I,KAHb,IAII3qF,UAAU,YACLnvD,EAAM85I,IAAW3qF,UAAUntC,KAAI,SAACy5H,EAAUvkH,GAAX,OAChCukH,EAASN,aAAeA,GAAxB,2BACSM,GADT,IACmB1gI,aAAc0gI,EAAS1gI,cACtC0gI,UAOd,QACE,OAAOz7I,IAkFX68N,eA9BqB,WAAgC,IAA/B78N,EAA8B,uDAAjB,KAAMC,EAAW,uCACpD,OAAQA,EAAOC,MACb,KAAKC,IACH,IAAMg8I,EAAal8I,EAAOM,QAC1B,OAAO47I,EAET,KAAKh8I,IACH,OAAO,KAET,QACE,OAAOH,MAuBEkf,MAGR,IAAMzc,EAAc,SAACzC,GAAD,OAAWA,EAAMkf,OAG/B49M,EAAU,SAAC98N,EAAO4xD,GAAY,IAAD,EAClClyC,EAAI,UAAGjd,EAAYzC,UAAf,aAAG,EAAoB25G,KAAK/nD,GACtC,GAAIlyC,EAAM,CACR,IAAMiL,EAAWjL,EAAKna,WAClB2mB,IAA8BlsB,EAAO0f,EAAKna,iBAC1C+I,EACEge,EAAe5M,EAAKhb,eACtBe,kBAAsCzF,EAAO0f,EAAKhb,qBAClD4J,EACE+U,EAAW3D,EAAK9a,WAClBm6G,cAA8B/+G,EAAO0f,EAAK9a,iBAC1C0J,EACE6iB,EAAczR,EAAK5a,cACrBk6G,iBAAoCh/G,EAAO0f,EAAK5a,oBAChDwJ,EACJ,OAAO,2BACFoR,GADL,IAEEkM,aAAY,OAAEjB,QAAF,IAAEA,OAAF,EAAEA,EAAUiB,aACxB+C,iBAAgB,OAAErC,QAAF,IAAEA,OAAF,EAAEA,EAAcqC,iBAChC1K,aAAY,OAAEZ,QAAF,IAAEA,OAAF,EAAEA,EAAUY,aACxB+N,gBAAe,OAAEb,QAAF,IAAEA,OAAF,EAAEA,EAAaa,oBAKvB+qM,EAAkB,SAAC/8N,EAAO4xD,GAAR,uBAAmBkrK,EAAQ98N,EAAO4xD,UAAlC,aAAmB,EAAwB3C,UAG7D+tK,EAAsB,SAACh9N,EAAO4xD,GAAR,yBACjCmrK,EAAgB/8N,EAAO4xD,UADU,iBACjC,EAAgCpyB,aADC,aACjC,EAAuCxd,KAAI,SAACi7M,GAAD,OAHf,SAACj9N,EAAO4xD,EAAQkoF,GAAhB,uBAC5BijF,EAAgB/8N,EAAO4xD,UADK,aAC5B,EAAgC+nD,KAAKmgC,GAEmBojF,CAAel9N,EAAO4xD,EAAQqrK,OAE3EE,EAAmB,SAACn9N,EAAO4xD,GAAR,uBAAmBkrK,EAAQ98N,EAAO4xD,UAAlC,aAAmB,EAAwBzC,WAG9DiuK,EAAuB,SAACp9N,EAAO4xD,GAAR,yBAClCurK,EAAiBn9N,EAAO4xD,UADU,iBAClC,EAAiCpyB,aADC,aAClC,EAAwCxd,KAAI,SAACy5H,GAAD,OAHf,SAACz7I,EAAO4xD,EAAQupF,GAAhB,OAC7BgiF,EAAiBn9N,EAAO4xD,GAAQ+nD,KAAKwhC,GAGnCkiF,CAAgBr9N,EAAO4xD,EAAQ6pF,OAWtB6hF,EAAe,SAACt9N,GAAD,uBAC1ByC,EAAYzC,GACTw/B,aAFuB,aAC1B,EACUxd,KAAI,SAAC5T,GAAD,OAAQ0uN,EAAQ98N,EAAOoO,MAClCkuB,QAAO,SAAC5c,GAAD,OAAUA,EAAK69M,uBAAyB,MAEvCC,EAAuB,SAACx9N,EAAOy+H,GAAR,OAAiBA,EAAKz8G,KAAI,SAAC5T,GAAD,OAAQ0uN,EAAQ98N,EAAOoO,OAIxEqvN,EAA2B,SAACz9N,EAAOsB,GAC9C,OAAOg8N,EAAat9N,GAAOs8B,QACzB,SAAC5c,GAAD,OACEpe,KACEA,EAAWiE,YAAcjE,EAAWiE,aAAema,EAAKna,eACxDjE,EAAWoD,gBAAkBpD,EAAWoD,iBAAmBgb,EAAKhb,mBAChEpD,EAAWsD,YAActD,EAAWsD,aAAe8a,EAAK9a,eACxDtD,EAAWwD,eAAiBxD,EAAWwD,gBAAkB4a,EAAK5a,mBAWzD44N,EAAkB,SAAC19N,GAC9B,IAAM29N,EAAgBL,EAAat9N,GAAOs8B,QAAO,SAAC5c,GAAD,cAAUA,QAAV,IAAUA,OAAV,EAAUA,EAAM2O,cAEjE,OAA6B,IAAzBsvM,EAAc30M,OAAqB20M,EAAc,GAEzC,MAuBDC,EAAc,SAAC59N,GAAD,OADI,SAACA,GAAD,OAAWyC,EAAYzC,GAAO06I,cAE3DmjF,CAAgB79N,GAAOgiB,KAAI,SAACi7M,GAAD,OAVH,SAACj9N,EAAOoO,GAAR,2BAAC,eACtB3L,EAAYzC,GAAO+7N,aAAa3tN,IADX,IAExB+gD,UAAS,UAAE1sD,EAAYzC,GAAO+7N,aAAa3tN,UAAlC,iBAAE,EAAqC+gD,iBAAvC,aAAE,EAAgDntC,KAAI,SAACy5H,GAAD,yBAAC,eAC3DA,GAD0D,IAE7DqiF,kBAAkB,EAClB59N,KAAI,iBAAEu7I,QAAF,IAAEA,OAAF,EAAEA,EAAUkhF,sBAAZ,eAA8BlhF,QAA9B,IAA8BA,OAA9B,EAA8BA,EAAUv7I,YAKN69N,CAAW/9N,EAAOi9N,OAY/CzrK,EAAe,SAACxxD,EAAO4xD,GAAR,6BAC1BnvD,EAAYzC,UADc,iBAC1B,EAAoB25G,KAAK/nD,UADC,iBAC1B,EAAkClC,iBADR,iBAC1B,EAA6ClwB,aADnB,aAC1B,EAAoDxd,KAClD,SAAC3U,GAAD,2BAAc5K,EAAYzC,UAA1B,iBAAc,EAAoB25G,KAAK/nD,UAAvC,iBAAc,EAAkClC,iBAAhD,aAAc,EAA6CiqD,KAAKtsG,OAUvD2wN,EAA6B,SAACh+N,GAAW,IAAD,IAC7C68N,EAAiBp6N,EAAYzC,GAAO68N,eACpCoB,EAAiB,UAAGP,EAAgB19N,UAAnB,iBAAG,EAAwB0vD,iBAA3B,aAAG,EAAmCiqD,KAAKkjH,GAClE,OAAOoB,EAAkB/nN,OAAO8L,KAAI,SAAC3U,GAAD,OAAc4wN,EAAkB9uK,UAAU9hD,OAInE6wN,EAAiB,SAACl+N,GAAD,OAAWyC,EAAYzC,GAAO60K,YAC/CspD,EAAsB,SAACn+N,GAAD,OAAWyC,EAAYzC,GAAO47G,iB,gCC7iCjE,0QAMax4E,EAAU,UAeVwb,EAAwB,SAAC9tC,EAAwBswB,GAC5D,IAAM9wB,EAAe,IAAIjE,IAQzB,OAPAg1B,IAAsB1wB,6BAA6BC,IAAON,GAC1DA,EAAa5D,iBAAiB,CAC5BwB,OAAQ,iBACRjO,OAAQ,MACR2N,WAAY,eAEd0C,EAAa3D,iBAAiBy0B,GACvB9wB,EAAa9C,KAAb,UAAqB41B,EAArB,QAAoCtyB,IAGhCstN,EAA8B,SAACttN,EAAcswB,GACxD,IAAM9wB,EAAe,IAAIjE,IAIzB,OAHAg1B,IAAsB1wB,6BAA6BC,IAAON,GAE1DA,EAAa3D,iBAAiBy0B,GACvB9wB,EAAa9C,KAAb,UAAqB41B,EAArB,yBAAqDtyB,IAGjDutN,EAAyB,SACpCvtN,EACAswB,GAEA,IAAM9wB,EAAe,IAAIjE,IAQzB,OAPAg1B,IAAsB1wB,6BAA6BC,IAAON,GAC1DA,EAAa5D,iBAAiB,CAC5BwB,OAAQ,uBACRjO,OAAQ,MACR2N,WAAY,iBAEd0C,EAAa3D,iBAAiBy0B,GACvB9wB,EAAa9C,KAAb,UAAqB41B,EAArB,cAA0CtyB,IAGtCguC,EAAoB,SAAChuC,EAAcswB,EAA8Byd,GAC5E,IAAMvuC,EAAe,IAAIjE,IASzB,OARAg1B,IAAsB1wB,6BAA6BC,IAAON,GAC1DA,EAAa5D,iBAAiB,CAC5BwB,OAAQ2wC,IAAqB,IAAXA,EAAkB,gBAAkB,iBACtD5+C,OAAQ6Q,EAAQiuC,SAAW,OAAS,SACpC1wC,KAAMyC,EAAQinB,WACdnqB,WAAYixC,IAAqB,IAAXA,EAAkB,iBAAmB,iBAE7DvuC,EAAa3D,iBAAiBy0B,GACvB9wB,EAAa9C,KAAb,UAAqB41B,EAArB,SAAqCtyB,IAGjCsuC,EAAsB,SACjCtuC,EACAswB,EACAyd,GAEA,IAAMvuC,EAAe,IAAIjE,IASzB,OARAg1B,IAAsB1wB,6BAA6BC,IAAON,GAC1DA,EAAa5D,iBAAiB,CAC5B2B,KAAK,GAAD,OAAKyC,EAAQinB,YACjB7pB,OAAQ2wC,IAAqB,IAAXA,EAAkB,gBAAkB,iBACtD5+C,OAAQ,SACR2N,WAAYixC,IAAqB,IAAXA,EAAkB,iBAAmB,iBAE7DvuC,EAAa3D,iBAAiBy0B,GACvB9wB,EAAa9C,KAAb,UAAqB41B,EAArB,WAAuCtyB,IAGnCwtN,EAAsB,SAACl9L,GAClC,IAAM9wB,EAAe,IAAIjE,IAQzB,OAPAg1B,IAAsB1wB,6BAA6BC,IAAON,GAC1DA,EAAa5D,iBAAiB,CAC5BwB,OAAQ,iBACRjO,OAAQ,MACR2N,WAAY,eAEd0C,EAAa3D,iBAAiBy0B,GACvB9wB,EAAanD,IAAb,UAAoBi2B,EAApB,cAGI8c,EAAgC,SAACpvC,EAAcswB,GAC1D,IAAM9wB,EAAe,IAAIjE,IASzB,OARAg1B,IAAsB1wB,6BAA6BC,IAAON,GAC1DA,EAAa5D,iBAAiB,CAC5BwB,OAAQ,cACRjO,OAAQ,OACRoO,KAAMyC,EAAQinB,WACdnqB,WAAY,mBAEd0C,EAAa3D,iBAAiBy0B,GACvB9wB,EAAa9C,KAAb,UAAqB41B,EAArB,gCAA4DtyB,K,ycCzGxDytN,EAA0B,eAACh6M,EAAD,uDAAW,GAAX,MAAmB,CACxDrkB,KAAMC,IACNI,QAASgkB,IAGEi6M,EAA6B,SAACtgN,EAAUshB,GAAX,MAAsB,CAC9Dt/B,KAAMC,IACNI,QAAS,CACP2d,WACAshB,WAISi/L,EAAyB,eAAC18N,EAAD,uDAAS,CAAE+U,aAAc,QAASsL,YAAa,KAA/C,MAA0D,CAC9FliB,KAAMC,IACNI,QAAS,CACPwB,WA0BS28N,EAAuB,SAACxlK,GAAD,MAA0C,CAC5Eh5D,KAAMC,IACNI,QAAS24D,IAGEylK,EAA0B,SAACvwN,EAAY6/B,EAAeirB,GAA5B,MAA2C,CAChFh5D,KAAMC,IACNI,QAAS,CAAE6N,KAAI6/B,QAAOirB,eAGX0lK,EAAsB,SAAC3wL,EAAOlsC,GAAR,MAAmB,CACpD7B,KAAMC,IACNI,QAAS,CACP0tC,QACAlsC,WAIS88N,EAAwB,SAAC3lK,GAAD,MAA0C,CAC7Eh5D,KAAMC,IACNI,QAAS24D,IAGE4lK,EAA2B,SAAC5lK,GAAD,MAAgB,CACtDh5D,KAAMC,IACNI,QAAS24D,IAGE6lK,EAAuB,SAACC,EAAcj9N,GAAf,MAA0B,CAC5D7B,KAAMC,IACNI,QAAS,CACPy+N,eACAj9N,WAISk9N,EAAyB,SAACnuN,GAAD,MAG/B,CACL5Q,KAAMC,IACNI,QAAQ,eACHuQ,KAIMouN,EAA4B,SAAC9wN,GAAD,MAAS,CAChDlO,KAAMC,IACNI,QAAS,CACP6N,QAIS+wN,EAAwB,SAAC/wN,EAAIrM,GAAL,MAAgB,CACnD7B,KAAMC,IACNI,QAAS,CACP6N,KACArM,Y,8BC3CWwC,IA3DK,CAClB66N,UAAW,QACXC,cAAe,QACfC,cAAe,QACfC,cAAe,QACfC,cAAe,QACfC,cAAe,QACfC,cAAe,QACfC,cAAe,QACfC,cAAe,QACfC,eAAgB,QAChBC,eAAgB,QAChBC,eAAgB,QAChBC,eAAgB,QAChBC,eAAgB,QAChBC,eAAgB,QAChBC,eAAgB,QAChBC,eAAgB,QAChBC,eAAgB,QAChBC,eAAgB,QAChBC,eAAgB,QAChBC,eAAgB,QAChBC,eAAgB,QAChBC,eAAgB,QAChBC,eAAgB,QAChBC,eAAgB,QAChBC,eAAgB,QAChBC,eAAgB,QAChBC,eAAgB,QAChBC,eAAgB,QAChBC,eAAgB,QAChBC,eAAgB,QAChBC,eAAgB,QAChBC,eAAgB,QAChBC,eAAgB,QAChBC,eAAgB,QAChBC,eAAgB,QAChBC,eAAgB,QAChBC,eAAgB,QAChBC,eAAgB,QAChBC,eAAgB,QAChBC,eAAgB,QAChBC,gBAAiB,QACjBC,iBAAkB,QAClBC,iBAAkB,QAClBC,iBAAkB,QAClBC,iBAAkB,QAClBC,iBAAkB,QAClBC,iBAAkB,QAClBC,iBAAkB,QAClBC,iBAAkB,QAClBC,iBAAkB,QAClBC,iBAAkB,QAClBC,iBAAkB,QAClBC,iBAAkB,QAClBC,iBAAkB,QAClBhmC,SAAU,U,gCCxDZ,mYAEa/U,EAA2B,SACtC9wJ,EACAC,EACApyB,EACAE,EACAE,GALsC,MAMlC,CACJ5E,KAAMC,IACNI,QAAS,CAAEs2B,YAAWC,UAASpyB,iBAAgBE,aAAYE,mBAEhD69N,EAA8B,SACzCC,EACArgM,EACAsgM,EACArgM,GAJyC,MAKrC,CACJtiC,KAAMC,IACNI,QAAS,CACPgiC,cACAqgM,iBACApgM,kBACAqgM,wBAGS/6C,EAA0B,eAAC/lL,EAAD,uDAAS,CAAE+U,aAAc,QAASsL,YAAa,KAA/C,MAA0D,CAC/FliB,KAAMC,IACNI,QAAS,CACPwB,WAIS+gO,EAAyB,SAACrgM,GAAD,MAAiB,CACrDviC,KAAMC,IACNI,QAASkiC,IAEEsgM,EAA4B,SAACrgM,EAAmBD,GAApB,MAAoC,CAC3EviC,KAAMC,IACNI,QAAS,CAAEmiC,oBAAmBD,gBAEnBugM,EAAwB,SAACtgM,EAAmBC,EAAe5gC,GAAnC,MAA8C,CACjF7B,KAAMC,IACNI,QAAS,CAAEmiC,oBAAmBC,gBAAe5gC,WAGlCkhO,EAA0B,SAACvgM,GAAD,MAAwB,CAC7DxiC,KAAMC,IACNI,QAAS,CACPmiC,uBAGSwgM,EAA6B,SAACxgM,GAAD,MAAwB,CAChExiC,KAAMC,IACNI,QAAS,CACPmiC,uBAGSulJ,EAAyB,SAACvlJ,EAAmB3gC,GAApB,MAA+B,CACnE7B,KAAMC,IACNI,QAAS,CACPmiC,oBACA3gC,WAUSohO,EAAoC,SAACP,EAAgBrgM,GAAjB,MAAkC,CACjFriC,KAAMC,IACNI,QAAS,CACPqiO,iBACArgM,iBAGS6gM,EAAgC,SAACrhO,GAAD,MAAY,CACvD7B,KAAMC,IACNI,QAAS,CACPwB,Y,+BClFJ,wIAAO,IAAMshO,EAAgC,gCAChCC,EAAkC,kCAClCC,EAA+B,+BAE/BC,EAAwB,yB,8cCDxBC,EAA4B,eAACl/M,EAAD,uDAAW,GAAX,MAAmB,CAC1DrkB,KAAMC,IACNI,QAASgkB,IAGEm/M,EAA+B,SAACxlN,EAAUshB,GAAX,MAAsB,CAChEt/B,KAAMC,IACNI,QAAS,CACP2d,WACAshB,WAISmkM,EAA2B,eAAC5hO,EAAD,uDAAS,CAAE+U,aAAc,QAASsL,YAAa,KAA/C,MAA0D,CAChGliB,KAAMC,IACNI,QAAS,CACPwB,WA0BS6hO,EAAyB,SAAChlN,GAAD,MAA8C,CAClF1e,KAAMC,IACNI,QAASqe,IAGEilN,EAA4B,SAACz1N,EAAY6/B,EAAervB,GAA5B,MAA6C,CACpF1e,KAAMC,IACNI,QAAS,CAAE6N,KAAI6/B,QAAOrvB,iBAGXklN,EAAwB,SAAC71L,EAAOlsC,GAAR,MAAmB,CACtD7B,KAAMC,IACNI,QAAS,CACP0tC,QACAlsC,WAISgiO,EAA0B,SAACnlN,GAAD,MAA8C,CACnF1e,KAAMC,IACNI,QAASqe,IAGEolN,EAA6B,SAACplN,GAAD,MAAkB,CAC1D1e,KAAMC,IACNI,QAASqe,IAGEqlN,EAAyB,SAACC,EAAgBniO,GAAjB,MAA4B,CAChE7B,KAAMC,IACNI,QAAS,CACP2jO,iBACAniO,WAISoiO,EAA2B,SAACrzN,GAAD,MAGjC,CACL5Q,KAAMC,IACNI,QAAQ,eACHuQ,KAIMszN,EAA8B,SAACh2N,GAAD,MAAS,CAClDlO,KAAMC,IACNI,QAAS,CACP6N,QAISi2N,EAA0B,SAACj2N,EAAIrM,GAAL,MAAgB,CACrD7B,KAAMC,IACNI,QAAS,CACP6N,KACArM,Y,6PChGSqhC,EAAU,SAEV5E,EAAoB,uCAAG,WAAO1tB,EAAcswB,GAArB,eAAAl0B,EAAA,6DAC5BoD,EAAe,IAAIjE,IACzBg1B,IAAsB1wB,6BAA6BC,IAAON,GAC1DA,EAAa5D,iBAAiB,CAC5BwB,OAAQ,eACRjO,OAAQ,MACR2N,WAAY,iBAGd0C,EAAa3D,iBAAiBy0B,GATI,kBAU3B9wB,EAAa9C,KAAb,UAAqB41B,EAArB,QAAoCtyB,IAVT,2CAAH,wDAapB+uB,EAAqB,SAAC/uB,EAAcswB,GAC/C,IAAM9wB,EAAe,IAAIjE,IASzB,OARAg1B,IAAsB1wB,6BAA6BC,IAAON,GAC1DA,EAAa5D,iBAAiB,CAC5B2B,KAAK,GAAD,OAAKyC,EAAQgvB,WACjB5xB,OAAQ,eACRjO,OAAQ,SACR2N,WAAY,mBAEd0C,EAAa3D,iBAAiBy0B,GACvB9wB,EAAa9C,KAAb,UAAqB41B,EAArB,WAAuCtyB,IAGnCkvB,EAAsB,SAAClvB,EAAcswB,GAChD,IAAM9wB,EAAe,IAAIjE,IASzB,OARAg1B,IAAsB1wB,6BAA6BC,IAAON,GAC1DA,EAAa5D,iBAAiB,CAC5B2B,KAAM,GACNH,OAAQ,gBACRjO,OAAQ,SACR2N,WAAY,iBAEd0C,EAAa3D,iBAAiBy0B,GACvB9wB,EAAa9C,KAAb,UAAqB41B,EAArB,mBAA+CtyB,IAG3C2tB,EAAmB,SAAC3tB,EAAcswB,EAA8B66J,GAC3E,IAAM3rL,EAAe,IAAIjE,IASzB,OARAg1B,IAAsB1wB,6BAA6BC,IAAON,GAC1DA,EAAa5D,iBAAiB,CAC5B2B,KAAK,GAAD,OAAKyC,EAAQusB,MAAMyC,WACvB5xB,OAAQ,eACRjO,OAAQg8L,EAAQ,SAAW,OAC3BruL,WAAY,mBAEd0C,EAAa3D,iBAAiBy0B,GACvB9wB,EAAa9C,KAAb,UAAqB41B,EAArB,SAAqCtyB,IAGjCwzN,EAAyB,uCAAG,WAAOxzN,EAAcswB,GAArB,eAAAl0B,EAAA,6DACjCoD,EAAe,IAAIjE,IACzBg1B,IAAsB1wB,6BAA6BC,IAAON,GAE1DA,EAAa3D,iBAAiBy0B,GAJS,kBAMhC9wB,EAAa9C,KAAb,UAAqB41B,EAArB,uBAAmDtyB,IANnB,2CAAH,yD,6BC5DtC,qaAEayzN,EAAwB,SAAC7hM,GAAD,MAAwB,CAC3DxiC,KAAMC,IACNI,QAAS,CAAEmiC,uBAEA8hM,EAA2B,SAACtmN,EAAUshB,GAAX,MAAsB,CAC5Dt/B,KAAMC,IACNI,QAAS,CACP2d,WACAshB,WAGSilM,EAAuB,eAAC1iO,EAAD,uDAAS,CAAE+U,aAAc,QAASsL,YAAa,KAA/C,MAA0D,CAC5FliB,KAAMC,IACNI,QAAS,CACPwB,WAIS2iO,EAAqB,SAACxhM,GAAD,MAAc,CAC9ChjC,KAAMC,IACNI,QAAS2iC,IAEEyhM,EAAwB,SAAC12L,EAAO/K,GAAR,MAAqB,CACxDhjC,KAAMC,IACNI,QAAS,CAAE0tC,QAAO/K,aAEP0hM,EAAoB,SAAC32L,EAAOlsC,GAAR,MAAmB,CAClD7B,KAAMC,IACNI,QAAS,CACP0tC,QACAlsC,WAIS8iO,EAAsB,SAAC3hM,GAAD,MAAc,CAC/ChjC,KAAMC,IACNI,QAAS2iC,IAEE4hM,EAAyB,SAAC5hM,GAAD,MAAc,CAClDhjC,KAAMC,IACNI,QAAS2iC,IAEE6hM,EAAqB,SAAC7gM,EAAYniC,GAAb,MAAwB,CACxD7B,KAAMC,IACNI,QAAS,CACP2jC,aACAniC,WAISijO,EAAuB,SAACzhM,GAAD,MAAqB,CACvDrjC,KAAMC,IACNI,QAAS,CACPgjC,oBAGS0hM,EAA0B,SAAC1hM,GAAD,MAAqB,CAC1DrjC,KAAMC,IACNI,QAAS,CACPgjC,oBAGS2hM,EAAsB,SAAC3hM,EAAgBxhC,GAAjB,MAA4B,CAC7D7B,KAAMC,IACNI,QAAS,CACPgjC,iBACAxhC,Y,ycCjESojO,EAAyB,eAAC5gN,EAAD,uDAAW,GAAX,MAAmB,CACvDrkB,KAAMC,IACNI,QAASgkB,IAGE6gN,EAA4B,SAAClnN,EAAUshB,GAAX,MAAsB,CAC7Dt/B,KAAMC,IACNI,QAAS,CACP2d,WACAshB,WAIS6lM,EAAwB,eAACtjO,EAAD,uDAAS,CAAE+U,aAAc,QAASsL,YAAa,KAA/C,MAA0D,CAC7FliB,KAAMC,IACNI,QAAS,CACPwB,WA0BSujO,EAAsB,SAACpxL,GAAD,MAAwC,CACzEh0C,KAAMC,IACNI,QAAS2zC,IAGEqxL,EAAyB,SAACn3N,EAAY6/B,EAAeiG,GAA5B,MAA0C,CAC9Eh0C,KAAMC,IACNI,QAAS,CAAE6N,KAAI6/B,QAAOiG,cAGXsxL,EAAqB,SAACv3L,EAAOlsC,GAAR,MAAmB,CACnD7B,KAAMC,IACNI,QAAS,CACP0tC,QACAlsC,WAIS0jO,EAAuB,SAACvxL,GAAD,MAAwC,CAC1Eh0C,KAAMC,IACNI,QAAS2zC,IAGEwxL,EAA0B,SAACxxL,GAAD,MAAe,CACpDh0C,KAAMC,IACNI,QAAS2zC,IAGEyxL,EAAsB,SAACC,EAAa7jO,GAAd,MAAyB,CAC1D7B,KAAMC,IACNI,QAAS,CACPqlO,cACA7jO,WAIS8jO,EAAwB,SAAC/0N,GAAD,MAA4D,CAC/F5Q,KAAMC,IACNI,QAAQ,eACHuQ,KAIMg1N,EAA2B,SAAC13N,GAAD,MAAS,CAC/ClO,KAAMC,IACNI,QAAS,CACP6N,QAIS23N,EAAuB,SAAC33N,EAAIrM,GAAL,MAAgB,CAClD7B,KAAMC,IACNI,QAAS,CACP6N,KACArM,Y,qHChFEmzM,EAAe,SAAC7+L,GACpB,IAAMzF,EAAQu7H,aAAY,SAACnsI,GAAD,OAAWA,KACrC,EAQIqW,EAPFjI,UADF,MACO,GADP,EAEEyK,EAMExC,EANFwC,WACAwzH,EAKEh2H,EALFg2H,YACA25F,EAIE3vN,EAJF2vN,aACA15F,EAGEj2H,EAHFi2H,eACA/nI,EAEE8R,EAFF9R,YANF,EAQI8R,EADFm2H,eAPF,SASA,EAAsCC,oBAAS,GAA/C,mBAAOC,EAAP,KAAoBC,EAApB,KAGA,OAASpoI,IAAeid,+BAA2C5Q,EAAOrM,KACxEioI,EAyBE,KAxBF,eAAC,IAAOI,OAAR,CACEx+H,GAAE,sBAAiBA,GACnB40G,UAAS,mBAAcnqG,EAAa,WAAa,IACjDqB,MAAM,SACN0uG,SAAU/vG,EACVg0H,QAAS,kBAAMR,KALjB,UAOE,cAAC,IAAD,CAAOpyH,KAAM,KACZqyH,GACC,cAAC,IAAD,CACEY,UAAU,OACVC,OAAQT,EACR37B,OAAM,sBAAiB3iG,GACvBg/H,OAjBO,kBAAMT,GAAgBD,IAkB7BW,QAAQ,cACRrqB,UAAU,iBANZ,SAQE,cAAC,IAAD,CACE50G,GAAE,OAAE43N,QAAF,IAAEA,IAAgB,iBACpB7oM,OAAQ,CAAExkB,WAAY9O,cAAUsE,cAAc,CAAEC,GAAIk+H,aAQhE4oE,EAAajsF,aAAe,CAC1BpwG,YAAY,GAGCq8L,O,4ICxBTwH,EAAkB,SAACrmM,GAEvB,IACE4vN,EA0BE5vN,EA1BF4vN,QACA3wN,EAyBEe,EAzBFf,MACAm+L,EAwBEp9L,EAxBFo9L,SACAl+L,EAuBEc,EAvBFd,YACA2wN,EAsBE7vN,EAtBF6vN,SACAC,EAqBE9vN,EArBF8vN,YACAC,EAoBE/vN,EApBF+vN,aACAzlM,EAmBEtqB,EAnBFsqB,SACAu5I,EAkBE7jK,EAlBF6jK,eACAoC,EAiBEjmK,EAjBFimK,UACA+pD,EAgBEhwN,EAhBFgwN,cACAC,EAeEjwN,EAfFiwN,gBACA30B,EAcEt7L,EAdFs7L,kBACA+B,EAaEr9L,EAbFq9L,qBACApC,EAYEj7L,EAZFi7L,OACAE,EAWEn7L,EAXFm7L,gBACAC,EAUEp7L,EAVFo7L,gBACAxxM,EASEoW,EATFpW,OACA0V,EAQEU,EARFV,MACAywG,EAOE/vG,EAPF+vG,QACA6rF,EAME57L,EANF47L,aACAs0B,EAKElwN,EALFkwN,OACA7tD,EAIEriK,EAJFqiK,QAvBF,EA2BIriK,EAHFsmM,eAxBF,SAyBEgZ,EAEEt/M,EAFFs/M,oBACAp5J,EACElmD,EADFkmD,QAGF,EAA0Ey1I,cAAzDw0B,EAAjB,EAAQpgH,QAAqCqgH,EAA7C,EAA+Bx0B,aAAiCC,EAAhE,EAAgEA,MAChE,EAAsCzlE,qBAAtC,mBAAOi6F,EAAP,KAAoBC,EAApB,KAEMn3B,EAAalnD,mBAEnB9iC,qBAAU,WACRgqF,EAAWv3B,QAAUi6B,MACpB,CAACA,MAEJ1sF,qBAAU,WACRmhH,IAAiBvgH,GAAW6rF,MAC3B,IAEH,IAAML,EAAmB,SAACg1B,GACxBlzB,IACe,MAAXh7B,GAAoBkuD,GAAQluD,KAG5BmuD,EAAO,SAAC1pM,GACZy0K,GAAiB,GACjB3xM,EAAOk9B,IAGT,OACE,eAAC,IAAD,CACE6lF,UAAU,2BACV+vF,iBAAkB4J,EAAU,kCAAoC,8BAChExvE,OAAQwkE,EACRr8L,MAAOA,EACPm+L,SAAUA,EACV99L,MAAOA,GAAS,QAChBq9L,eAAgB,kBAAMpB,GAAiB,IAPzC,UASGs0B,GAAYE,GAAgB9pD,GAC3B,qCACE,cAAC,IAAD,CACEluK,GAAI63N,EACJ7+H,QAASg/H,EACTjjH,OAAQgjH,EACRj6N,KAAMowK,EACN37I,SAAUA,EACVu5I,eAAgB,SAACrmE,GACXqmE,GAAgBA,EAAermE,IAErCoT,SAAU,SAACpT,GACLwyH,GAAeA,EAAcxyH,IAEnComE,WAAY,SAACpmE,GACPyyH,GAAiBA,EAAgBzyH,MAGzC,uBACA,uBACA,0BAGJ,eAAC,IAAD,CAAKmP,UAAW,gCAAhB,UACGsuF,GACCA,EACGh1K,QAAO,SAAC9lB,GAAD,OAAWA,KAClBwL,KAAI,SAACxL,EAAO0gB,GACX,IAAI4vM,EAAez/B,WACf0/B,EAAoB,CACtB7kO,IAAKg1B,EAAE5U,YAQT,MANmB,eAAf9L,EAAMtW,OACR4mO,EAAej7C,IACfk7C,EAAiB,GAASvwN,EAAMuhK,GAAKvhK,EAAMuhK,GAAK,KAChDgvD,EAAiB,UAA+B,eAAfvwN,EAAMtW,KAAwB,YAAc,IAI7E,eAAC4mO,EAAD,2BAAkBC,GAAlB,cACGvwN,EAAMi9L,UACL,oBAAIzwF,UAAiB,IAAN9rF,EAAU,cAAgB,mBAAzC,SACG1gB,EAAMi9L,WAGX,cAAC,IAAD,CACErtF,QAASsgH,EAAcF,EAAepgH,EACtC5vG,MAAK,2BAAOA,GAAP,IAAcnI,KAAMmI,EAAMnI,MAAQ,SAAW6oB,EAAG9oB,GAAI8oB,EAAE5U,aAC3DikN,OAAQA,WAKpB,cAAC,IAAD,CAAKvjH,UAAW,oBAAhB,SACE,eAAC,IAAD,CAAK+0D,GAAG,aAAR,UACGy5B,GACC,cAAC,IAAO5kE,OAAR,CACE5pB,UAAU,mBACV9oG,MAAM,UAEN2yH,QACE65F,EACID,GAAkB,SAACtpM,GACbo/B,EAAS6gH,YAAW,kBAAMypD,EAAKr3B,EAAWv3B,WAAU17G,GACnDsqK,EAAK1pM,MAEZ80K,GACAA,GAAa,SAAC90K,GACRo/B,EAAS6gH,YAAW,kBAAMypD,EAAKr3B,EAAWv3B,WAAU17G,GACnDsqK,EAAK1pM,MAbpB,SAiBG5nB,GAAe,cAAC,IAAD,CAAkBnH,GAAG,kBAGxCqjM,GACC,cAAC,IAAO7kE,OAAR,CACE5pB,UAAU,mBACV9oG,MAAM,QACN2yH,QAAS,WACP+kE,GAAiB,GACb+jB,GAAqBA,KAL7B,SAQE,cAAC,IAAD,CAAkBvnN,GAAG,gCAUrCsuM,EAAgBzzF,aAAe,CAC7BqoF,OAAQ,GACR40B,UAAU,EACVC,YAAa,IACb30B,iBAAiB,EACjBC,iBAAiB,EACjB20B,aAAc,GACd9pD,UAAW,IAGEogC,O,mMC7MTsqB,EAAOjtN,OAAQ,YAA2BH,IAAIqtN,iBAAhC,aAA4DC,QA0KjEC,IA3JgB,SAAC9wN,GAAW,IAAD,EAEtCquG,EAWEruG,EAXFquG,MACA0iH,EAUE/wN,EAVF+wN,kBACA/2E,EASEh6I,EATFg6I,iBAHF,EAYIh6I,EARF66L,0BAJF,WAYI76L,EAPFgxN,iCALF,WAYIhxN,EANF+6L,gBANF,WAYI/6L,EALFixN,mBAPF,SAQE16K,EAIEv2C,EAJFu2C,WACAqB,EAGE53C,EAHF43C,SATF,EAYI53C,EAFFkxN,2BAVF,MAUwB,EAVxB,IAYIlxN,EADFmxN,wBAXF,SAcMh/M,EAAWipI,cACXhoJ,EAAOG,cAEb,EAA0C6iI,wBAAcn+H,GAAxD,mBAAOw6H,EAAP,KAAsB2+F,EAAtB,KACA,EAAkDh7F,oBAAkB,GAApE,mBAAOklE,EAAP,KAA0B+1B,EAA1B,KACA,EAA8Cj7F,mBAAc,IAA5D,mBAAOkqF,EAAP,KAAwBC,EAAxB,KACA,EAAwCnqF,mBAAS86F,GAAjD,mBAAOI,GAAP,KAAqBC,GAArB,KAEA,GAA4Ez7F,aAC1E,SAACnsI,GAAD,MAA8B,CAC5Bqe,UAAW+oN,EACPtgD,IAAoD9mL,EAAOonO,GAC3DtgD,IAAmC9mL,GACvC60K,WACEiS,IAA0C9mL,IAC1C8mL,IAAiD9mL,GACnDo+G,SAAU0oE,IAAmC9mL,GAC7C6nO,kBAAmB/gD,IAA6C9mL,EAAO8oI,GACvEroI,KAAM+gB,cAA0BxhB,GAChC4Q,MAAO5Q,MAXHqe,GAAR,GAAQA,UAAWw2J,GAAnB,GAAmBA,WAAYz2D,GAA/B,GAA+BA,SAAUypH,GAAzC,GAAyCA,kBAAmBpnO,GAA5D,GAA4DA,KAAMmQ,GAAlE,GAAkEA,MAelE,GAAoC67H,mBAASzwG,KAAKD,OAAlD,qBAAO+rM,GAAP,MAAmBC,GAAnB,MA+BA,OA1BA50D,YAAU,+CAAD,OACwC1yK,GAAK28L,iBAD7C,sBAKT53E,qBAAU,WACHqvD,IATLkzD,GAAc/rM,KAAKD,SAYlB,CAAC84I,GAAD,OAAax+J,QAAb,IAAaA,GAAb,UAAaA,EAAOwuG,eAApB,aAAa,EAAgB77F,SAEhCw8F,qBAAU,WAAO,IAAD,GACV,UAAAd,EAAM/tG,aAAN,eAAaoyH,iBAAkBs+F,IACjCK,GAAqB,GACrB9Q,EAAmBlyG,EAAM/tG,UAE1B,CAAC+tG,EAAM/tG,MAAO0wN,IAEjB7hH,qBAAU,YACHpH,IAAY0qB,IAAb,OAA8B++F,SAA9B,IAA8BA,QAA9B,EAA8BA,GAAmB/5L,cACnD85L,GAAgB,GAChBH,OAAiBn5N,GACjBo2G,EAAMkB,SAASiiH,GAAkB/5L,eAElC,CAACswE,KAGF,sCACI/nG,EAAMwuG,SAAW,cAAC,IAAD,CAAeurC,cAAY,EAACC,iBAAgB,OAAEA,QAAF,IAAEA,IAAoB,KACnE,IAAjBs3E,IACC,wBAAC,IAAD,2BACMtxN,GADN,IAEEnU,IAAK4lO,GACL17F,UAAWyoC,GACXtyD,MAAO6uF,EAAW/6L,EAAMksG,OAAS,cAAC,IAAD,CAAkBn0G,GAAG,8BAAiC,KACvFy2G,QACExuG,EAAMwuG,UACLyiH,EACGjpN,GAAUie,QACR,SAAC0V,GAAD,OACIA,EAAS4a,aAAe5a,EAASic,UAClCjc,EAAS4a,aAAeA,GAAc5a,EAASic,WAAaA,KAEjE5vC,IACF2D,KAAI,SAACgwB,GACL,OAAO,2BACFA,GADL,IAEEnjC,KAAM24N,EAAgB,UAAMx1L,EAASrjB,uBAAqBrgB,EAC1DF,GAAI4jC,EAASlE,WACbn3B,MAAOq7B,EAASlE,WAChBy0E,MAAOvwE,EAAS3C,aAChBszE,WAAY3wE,EAAS3C,kBAI3B02E,iBACEmrF,GACA1vL,+BAA2C5Q,GAAO,CAChDo3N,IAAqBxhD,2BAErB,eAAC,IAAD,CACE3jE,MAAO,CAAEm1D,OAAQ,WACjBh1D,UAAW,MACX6pB,QAAS,kBAAM+6F,GAAgB,IAHjC,UAKE,cAAC,IAAD,CAAqB16F,UAAW,MAAOn8B,OAAQ,UAA/C,SACGtnG,EAAK0E,cAAc,CAAEC,GAAI,gCAE5B,qBAAK80G,IAAK8jH,EAAM54N,GAAI,UAAW2lG,IAAI,OAAOoP,OAAQ,YAIxDyE,gBAAiBvxG,EAAMuxG,mBAGT,IAAjB+/G,IAAsBz2B,GACrB,cAAC,IAAD,2BAAkC76L,GAAlC,IAAyCuxN,gBAAiB,kBAAMA,GAAgB,OAElF,cAAC,IAAD,CACEtyN,MAAO7L,EAAK0E,cAAc,CAAEC,GAAI,0BAChCujM,kBAAmBA,EACnBC,iBAAkB,kBAAM81B,GAAqB,IAC7C/Q,gBAAiBA,EACjBj+C,QAAS,WACPk+C,OAAmBtoN,GACnBs5N,GAAgB,GAChBljH,EAAMkB,cAASt3G,IAEjBrO,OAAQ,SAACk9B,GACPsqM,EAAiB9Q,EAAgB7oL,YACjCtlB,EACE9B,IAAA,mDACKiwM,GADL,IAEE5tF,eAAe,2BACV4tF,EAAgB5tF,gBADP,IAEZD,cAAe6tF,EAAgB7oL,cAE9B3Q,GACAA,EAAO77B,YAPZ,IAQEo2N,eAAgB,EAChBC,yBAA0B,EAC1BC,eAAgB,KAChBC,uBAAwB,EACxBC,eAAgB,c,2QCyJxBn5M,EAAate,YAAgB,CACjCs5G,KA1TW,WAAyB,IAAxB35G,EAAuB,uDAAf,GAAIC,EAAW,uCACnC,OAAQA,EAAOC,MAEb,KAAKC,IACL,KAAKA,IACH,MAA4BF,EAAOM,QAA3B2d,EAAR,EAAQA,SAAUshB,EAAlB,EAAkBA,MACZrf,EAAQ,eAAQngB,GAStB,OARAw/B,EAAMrR,SAAQ,SAAC0kC,GACb1yC,EAAS0yC,GAAT,qCACExkC,YAAY,GACTruB,EAAM6yD,IACN30C,EAAS20C,IAHd,IAIE18C,aAAa,OAGVgK,EAGT,KAAKhgB,IACH,MAAgCF,EAAOM,QAA/B6N,EAAR,EAAQA,GAAI6/B,EAAZ,EAAYA,MAAOykB,EAAnB,EAAmBA,SACbvyC,EAAW69F,IAAKh+G,EAAOiuC,GAM7B,OALA9tB,EAAS/R,GAAT,2BACKskD,GADL,IAEEv8C,aAAa,EACbkY,YAAY,IAEPlO,EAGT,KAAKhgB,IACH,IAAMuyD,EAAWzyD,EAAOM,QAClB6N,EAAKskD,EAASG,WACd1yC,EAAQ,2BACTngB,GADS,kBAEXoO,EAFW,uCAGP4vG,IAAKh+G,EAAMoO,GAAK,CAAC,iBACjB4vG,IAAKtrD,EAAU,CAAC,iBAJT,IAKVv8C,aAAa,MAGjB,OAAOgK,EAIT,KAAKhgB,IACH,IAAMuyD,EAAWzyD,EAAOM,QAClB4f,EAAQ,eAAQngB,GAMtB,OALAmgB,EAASuyC,EAASiB,QAAlB,yBACEtlC,YAAY,GACTqkC,GAFL,IAGEv8C,aAAa,IAERgK,EAGT,KAAKhgB,IACH,IAAMuyD,EAAWzyD,EAAOM,QAClB6N,EAAKskD,EAASG,WACd1yC,EAAQ,2BACTngB,GADS,kBAEXoO,EAFW,2BAGPpO,EAAMoO,IAHC,IAIV2oL,YAAa/2L,EAAMoO,GACnB+H,aAAa,GACVu8C,KAGP,OAAOvyC,EAIT,KAAKhgB,IACH,IAAQ8tC,EAAUhuC,EAAOM,QAAjB0tC,MACR,OAAIjuC,EAAMiuC,GACD+vE,IAAKh+G,EAAOiuC,GAEdjuC,EAGT,KAAKG,IACH,IAAQ42L,EAAgB92L,EAAOM,QAAvBw2L,YACR,OAAO,2BACF/2L,GADL,kBAEG+2L,EAAYlkI,WAFf,uCAGOmrD,IAAKh+G,EAAM+2L,EAAYlkI,YAAa,CAAC,iBACrCkkI,GAJP,IAKI5gL,aAAa,MAMnB,KAAKhW,IACH,IAAQiO,EAAOnO,EAAOM,QAAd6N,GACR,OAAO4vG,IAAKh+G,EAAOoO,GAIrB,QACE,OAAOpO,IAwNXw/B,MAnNY,WAAyB,IAAxBx/B,EAAuB,uDAAf,GAAIC,EAAW,uCACpC,OAAQA,EAAOC,MAEb,KAAKC,IACH,IAAQq/B,EAAUv/B,EAAOM,QAAjBi/B,MACR,OAAOs6E,IAAMt6E,GAGf,KAAKr/B,IACH,IAAQq/B,EAAUv/B,EAAOM,QAAjBi/B,MACR,OAAO+yB,IAAK,GAAD,mBAAKvyD,GAAL,YAAew/B,KAG5B,KAAKr/B,IACH,MAAsBF,EAAOM,QAArB6N,EAAR,EAAQA,GAAI6/B,EAAZ,EAAYA,MACZ,OAAOjuC,EAAMgiB,KAAI,SAAC6wC,GAAD,OAAiBA,IAAe5kB,EAAQ7/B,EAAKykD,KAGhE,KAAK1yD,IACH,IAAQiO,EAAOnO,EAAOM,QAAd6N,GACR,OAAOpO,EAAMs8B,QAAO,SAAC2rM,GAAD,OAAqBA,IAAoB75N,KAI/D,KAAKjO,IACH,IAAMuyD,EAAWzyD,EAAOM,QACxB,MAAM,GAAN,mBAAWP,GAAX,CAAkB0yD,EAASiB,SAI7B,KAAKxzD,IACH,IAAQ8tC,EAAUhuC,EAAOM,QAAjB0tC,MACR,OAAOjuC,EAAMs8B,QAAO,SAAC2rM,GAAD,OAAqBA,IAAoBh6L,KAI/D,QACE,OAAOjuC,IA+KXm+G,sBA1J4B,WAA4B,IAA3Bn+G,EAA0B,wDAAXC,EAAW,uCACvD,OAAQA,EAAOC,MACb,KAAKC,IACH,OAAO,EAET,KAAKA,IACL,KAAKA,IACH,OAAO,EAET,QACE,OAAOH,IAiJX47G,eA1KqB,WAA4B,IAA3B57G,EAA0B,wDAAXC,EAAW,uCAChD,OAAQA,EAAOC,MACb,KAAKC,IACH,OAAO,EAET,KAAKA,IACL,KAAKA,IACH,OAAO,EAET,QACE,OAAOH,IAiKXo+G,SA7Ie,WAA4B,IAA3Bp+G,EAA0B,wDAAXC,EAAW,uCAC1C,OAAQA,EAAOC,MACb,KAAKC,IACH,OAAO,EAET,KAAKA,IACL,KAAKA,IACH,OAAO,EAET,QACE,OAAOH,IAoIXq+G,UA/HgB,WAA4B,IAA3Br+G,EAA0B,wDAAXC,EAAW,uCAC3C,OAAQA,EAAOC,MACb,KAAKC,IACH,OAAO,EAET,KAAKA,IACL,KAAKA,IACH,OAAO,EAET,QACE,OAAOH,IAsHXs+G,WAjHiB,WAA4B,IAA3Bt+G,EAA0B,wDAAXC,EAAW,uCAC5C,OAAQA,EAAOC,MACb,KAAKC,IACH,OAAO,EAET,KAAKA,IACL,KAAKA,IACH,OAAO,EAET,QACE,OAAOH,IAwGXu+G,yBAnF+B,WAA2B,IAA1Bv+G,EAAyB,uDAAjB,KAAMC,EAAW,uCACzD,OAAQA,EAAOC,MACb,KAAKC,IACH,IAAQ4B,EAAU9B,EAAOM,QAAjBwB,MACR,OAAOA,EAET,KAAK5B,IACL,KAAKA,IACH,OAAO,KAET,QACE,OAAOH,IAyEX87G,kBApGwB,WAA2B,IAA1B97G,EAAyB,uDAAjB,KAAMC,EAAW,uCAClD,OAAQA,EAAOC,MACb,KAAKC,IACH,IAAQ4B,EAAU9B,EAAOM,QAAjBwB,MACR,OAAOA,EAET,KAAK5B,IACL,KAAKA,IACH,OAAO,KAET,QACE,OAAOH,IA0FXw+G,YArEkB,WAA2B,IAA1Bx+G,EAAyB,uDAAjB,KAAMC,EAAW,uCAC5C,OAAQA,EAAOC,MACb,KAAKC,IACH,IAAQ4B,EAAU9B,EAAOM,QAAjBwB,MACR,OAAOA,EAET,KAAK5B,IACL,KAAKA,IACH,OAAO,KAET,QACE,OAAOH,IA2DXy+G,aAtDmB,WAA2B,IAA1Bz+G,EAAyB,uDAAjB,KAAMC,EAAW,uCAC7C,OAAQA,EAAOC,MACb,KAAKC,IACH,IAAQ4B,EAAU9B,EAAOM,QAAjBwB,MACR,OAAOA,EAET,KAAK5B,IACL,KAAKA,IACH,OAAO,KAET,QACE,OAAOH,IA4CX0+G,cAvCoB,WAA2B,IAA1B1+G,EAAyB,uDAAjB,KAAMC,EAAW,uCAC9C,OAAQA,EAAOC,MACb,KAAKC,IACH,IAAQ4B,EAAU9B,EAAOM,QAAjBwB,MACR,OAAOA,EAET,KAAK5B,IACL,KAAKA,IACH,OAAO,KAET,QACE,OAAOH,IA6BX+9H,kBAxBwB,WAA4B,IAA3B/9H,EAA0B,wDAAXC,EAAW,uCACnD,OAAQA,EAAOC,MACb,KAAKC,IACH,OAAO,EAET,QACE,OAAOH,MAqBE2e,MAGR,IAAMlc,EAAc,SAACzC,GAAD,OAAWA,EAAM2e,YAW/BupN,EAAoB,SAACloO,GAAD,uBAC/ByC,EAAYzC,GAAOw/B,aADY,aAC/B,EAA0Bxd,KAAI,SAAC5T,GAAD,OATL,SAACpO,EAAOoO,GACjC,IAAMskD,EAAWjwD,EAAYzC,GAAO25G,KAAKvrG,GAEzC,OAAO,eACFskD,GAKiCy1K,CAAYnoO,EAAOoO,OAE9Cg6N,EAAgC,SAACpoO,EAAOsB,GAEnD,OAAIA,EAAWoD,eACNwjO,EAAkBloO,GAAOs8B,QAC9B,SAACo2B,GAAD,OAAcA,EAAShuD,iBAAmBpD,EAAWoD,kBAI7CwjO,EAAkBloO,IAKnBqoO,EAA2B,SAACroO,GAAD,OAAWyC,EAAYzC,GAAO47G,gBACzD0sH,EAA4B,SAACtoO,GAAD,OAAWyC,EAAYzC,GAAO+9H,oB,+PCzW1D36F,EAAU,gBAMVvV,EAA2B,uCAAG,WAAO/c,EAAcswB,GAArB,eAAAl0B,EAAA,6DACnCoD,EAAe,IAAIjE,IACzBg1B,IAAsB1wB,6BAA6BC,IAAON,GAC1DA,EAAa5D,iBAAiB,CAC5BwB,OAAQ,6BACRjO,OAAQ,MACR2N,WAAY,iBAGd0C,EAAa3D,iBAAiBy0B,GATW,kBAUlC9wB,EAAa9C,KAAb,UAAqB41B,EAArB,QAAoCtyB,IAVF,2CAAH,wDAa3By3N,EAAqB,uCAAG,WACnCz3N,EACAswB,GAFmC,eAAAl0B,EAAA,6DAI7BoD,EAAe,IAAIjE,IACzBg1B,IAAsB1wB,6BAA6BC,IAAON,GAC1DA,EAAa5D,iBAAiB,CAC5BwB,OAAQ,mCACRjO,OAAQ,MACR2N,WAAY,eAGd0C,EAAa3D,iBAAiBy0B,GAZK,kBAa5B9wB,EAAa9C,KAAb,UAAqB41B,EAArB,0BAAsDtyB,IAb1B,2CAAH,wDAgBrB03N,EAAkB,uCAAG,WAChC13N,EACAswB,GAFgC,eAAAl0B,EAAA,6DAI1BoD,EAAe,IAAIjE,IACzBg1B,IAAsB1wB,6BAA6BC,IAAON,GAC1DA,EAAa5D,iBAAiB,CAC5BwB,OAAQ,gCACRjO,OAAQ,MACR2N,WAAY,eAGd0C,EAAa3D,iBAAiBy0B,GAZE,kBAazB9wB,EAAa9C,KAAb,UAAqB41B,EAArB,uBAAmDtyB,IAb1B,2CAAH,wDAgBlBoe,EAA4B,SAACpe,EAAcswB,GACtD,IAAM9wB,EAAe,IAAIjE,IASzB,OARAg1B,IAAsB1wB,6BAA6BC,IAAON,GAC1DA,EAAa5D,iBAAiB,CAC5B2B,KAAK,GAAD,OAAKyC,EAAQ6d,kBACjBzgB,OAAQ,6BACRjO,OAAQ,SACR2N,WAAY,mBAEd0C,EAAa3D,iBAAiBy0B,GACvB9wB,EAAa9C,KAAb,UAAqB41B,EAArB,WAAuCtyB,IAgBnC23N,EAAqB,SAAC33N,EAAcswB,GAC/C,IAAM9wB,EAAe,IAAIjE,IASzB,OARAg1B,IAAsB1wB,6BAA6BC,IAAON,GAC1DA,EAAa5D,iBAAiB,CAC5B2B,KAAK,GAAD,OAAKyC,EAAQ6d,kBACjBzgB,OAAQ,6BACRjO,OAAQ,MACR2N,WAAY,mBAEd0C,EAAa3D,iBAAiBy0B,GACvB9wB,EAAa9C,KAAb,UAAqB41B,EAArB,gBAA4CtyB,K,mUC7EtC,GACb,CACE1C,GAAI,cACJkH,MAAO,uBACPzG,KAAM,cAAC,IAAD,CAAMoL,KAAM,GAAIpL,KAAK,iBAC3BtK,YAAa,CACXmkO,IAAoBC,aACpBC,IAAwBC,oBACxBC,IAAoBC,aACpBC,IAAuBC,mBACvBC,IAAwBC,iBACxBC,IAAiBC,WAEnB7tN,SAAU,eACV7R,SAAU,CACR,CACEyE,GAAI,YACJkH,MAAO,sBACPzG,KAAM,cAAC,IAAD,CAAMoL,KAAM,GAAIpL,KAAK,aAC3B2M,SAAU,WACVjX,YAAa,CAACmkO,IAAoBC,cAClC3iO,aAAc,CAAC,EAAG,IAClByV,QAAS6tN,IAAcC,aACvBC,SAAUC,KAEZ,CACEr7N,GAAI,QACJkH,MAAO,eACPzG,KAAM,cAAC,IAAD,CAAMoL,KAAM,GAAIpL,KAAK,6BAC3BtK,YAAa,CAAC6kO,IAAiBC,WAC/BrjO,aAAc,CAAC,EAAG,GAAI,IACtBwV,SAAU,2BACVC,QAASiuN,IAAWC,UACpBH,SAAUC,KAEZ,CACEr7N,GAAI,eACJkH,MAAO,6BACPzG,KAAM,cAAC,IAAD,CAAMoL,KAAM,GAAIpL,KAAK,iBAC3BtK,YAAa,CAACqkO,IAAwBC,qBACtC7iO,aAAc,CAAC,EAAG,GAAI,GAAI,IAC1BwV,SAAU,eACVC,QAASmuN,IAAkBC,iBAC3BL,SAAUC,KAEZ,CACEr7N,GAAI,WACJkH,MAAO,qBACPzG,KAAM,cAAC,IAAD,CAAMoL,KAAM,GAAIpL,KAAK,aAC3BtK,YAAa,CAACukO,IAAoBC,cAClC/iO,aAAc,CAAC,EAAG,EAAG,GAAI,GAAI,IAC7BwV,SAAU,WACVC,QAASquN,IAAcf,aACvBS,SAAUC,KAEZ,CACEr7N,GAAI,cACJkH,MAAO,2BACPzG,KAAM,cAAC,IAAD,CAAMoL,KAAM,GAAIpL,KAAK,gBAC3BtK,YAAa,CAACykO,IAAuBC,oBACrCjjO,aAAc,CAAC,EAAG,EAAG,EAAG,GAAI,GAAI,IAChCwV,SAAU,cACVC,QAASsuN,IAAiBC,gBAC1BR,SAAUC,MAEZ,CACEr7N,GAAI,gBACJkH,MAAO,gCACPzG,KAAM,cAAC,IAAD,CAAMoL,KAAM,GAAIpL,KAAK,yBAC3BtK,YAAa,CAAC2kO,IAAwBC,kBACtCnjO,aAAc,CAAC,EAAG,GAAI,IACtBwV,SAAU,uBACVC,QAASwuN,IAAkBd,iBAC3BK,SAAUC,S,0FC3EH,GACb,CACEr7N,GAAI,cACJkH,MAAO,sBACPzG,KAAM,cAAC,IAAD,CAAMoL,KAAM,GAAIpL,KAAK,iBAC3BtK,YAAa,GACbiX,SAAU,eACV7R,SAAU,CACR,CACEyE,GAAI,UACJkH,MAAO,kBACPzG,KAAM,cAAC,IAAD,CAAMoL,KAAM,GAAIpL,KAAK,qBAC3BtK,YAAa,CAAC2lO,IAAkBC,YAChC3uN,SAAU,mBACVC,QAAS2uN,IAAYD,WACrBX,SAAUC,KAEZ,CACEr7N,GAAI,OACJkH,MAAO,WACPzG,KAAM,cAAC,IAAD,CAAMoL,KAAM,GAAIpL,KAAK,uBAC3BtK,YAAa,CAAC8lO,IAAeC,SAC7B9uN,SAAU,qBACVC,QAAS8uN,IAASD,QAClBd,SAAUC,MAEZ,CACEr7N,GAAI,UACJkH,MAAO,kBACPzG,KAAM,cAAC,IAAD,CAAMoL,KAAM,GAAIpL,KAAK,iCAC3BtK,YAAa,CAACimO,IAAkBC,YAChCjvN,SAAU,+BACVC,QAASivN,IAAYD,WACrBjB,SAAUC,MAEZ,CACEr7N,GAAI,SACJkH,MAAO,gBACPzG,KAAM,cAAC,IAAD,CAAMoL,KAAM,GAAIpL,KAAK,uBAC3BtK,YAAa,CAAComO,IAAiBC,cAC/BpvN,SAAU,qBACVC,QAASovN,IAAWC,UACpBtB,SAAUC,KAEZ,CACEr7N,GAAI,WACJkH,MAAO,oBACPzG,KAAM,cAAC,IAAD,CAAMoL,KAAM,GAAIpL,KAAK,uBAC3BtK,YAAa,CAACwmO,IAAmBC,aACjCxvN,SAAU,qBACVC,QAASwvN,IAAaD,YACtBxB,SAAUC,S,2BC3DH,GACb,CACEr7N,GAAI,YACJkH,MAAO,uBACPzG,KAAM,cAAC,IAAD,CAAUoL,KAAM,KACtB1V,YAAa,CAACA,IAAYm0B,UAC1Bld,SAAU,wBACV7R,SAAU,CACR,CACEyE,GAAI,kBACJkH,MAAO,kBACPzG,KAAM,cAAC,IAAD,CAAMoL,KAAM,GAAIpL,KAAK,UAC3BtK,YAAa,CAACA,IAAYm0B,UAC1Bld,SAAU,QACVC,QAASgrK,IAAMykD,UACf1B,SAAUC,MAEZ,CACEr7N,GAAI,oBACJkH,MAAO,oBACPzG,KAAM,cAAC,IAAD,CAAMoL,KAAM,GAAIpL,KAAK,eAC3BtK,YAAa,CAACA,IAAYm0B,UAC1Bld,SAAU,aACVC,QAASgrK,IAAM0kD,YACf3B,SAAUC,S,kBCzBH,GACb,CACEr7N,GAAI,SACJkH,MAAO,gBACPzG,KAAM,cAAC,IAAD,CAAMoL,KAAM,GAAIpL,KAAK,WAC3BtK,YAAa,CAACA,IAAY6mO,WAC1B5vN,SAAU,SACVC,QAASgrK,IAAM2kD,UACf5B,SAAUC,M,mBCRC,GACb,CACEr7N,GAAI,UACJkH,MAAO,kBACPzG,KAAM,cAAC,IAAD,CAAMoL,KAAM,GAAIpL,KAAK,yBAC3BtK,YAAa,CAACA,IAAY8mO,aAC1B7vN,SAAU,uBACVC,QAASgrK,IAAM4kD,YACf7B,SAAUC,M,mBCRC,GACb,CACEr7N,GAAI,SACJkH,MAAO,gBACPzG,KAAM,cAAC,IAAD,CAAMoL,KAAM,GAAIpL,KAAK,wBAC3BtK,YAAa,CAACA,IAAY+mO,YAC1B9vN,SAAU,sBACVC,QAASgrK,IAAM8kD,WACf/B,SAAUC,M,kBCRC,GACb,CACEr7N,GAAI,QACJkH,MAAO,cACPzG,KAAM,cAAC,IAAD,CAAMoL,KAAM,GAAIpL,KAAK,sBAC3BtK,YAAa,CAACA,IAAYinO,WAC1BhwN,SAAU,oBACVC,QAASgrK,IAAM+kD,UACfhC,SAAUC,O,kBCRC,GACb,CACEr7N,GAAI,YACJkH,MAAO,sBACPzG,KAAM,cAAC,IAAD,CAAMoL,KAAM,GAAIpL,KAAK,cAC3BtK,YAAa,CAACA,IAAYknO,eAC1BjwN,SAAU,YACVC,QAASgrK,IAAMilD,aACflC,SAAUC,MCTC,GACb,CACEr7N,GAAI,WACJkH,MAAO,qBACP/Q,YAAa,CAAC,SACdiX,SAAU,WACVC,Q,QAASgrK,EAAMklD,YACfnC,SAAUC,M,UCNC,GACb,CACEr7N,GAAI,UACJkH,MAAO,kBACPkG,SAAU,SACVjX,YAAa,C,QAACA,EAAYqnO,aAC1BnwN,QAASgrK,IAAMolD,WACfrC,SAAUC,MCLC,IACb,CACEr7N,GAAI,WACJkH,MAAO,mBACPzG,KAAM,QACNtK,YAAa,GACbiX,SAAU,QACV7R,SAAS,GAAD,mBAAMq/B,GAAN,YAAgB1qB,GAAhB,YAA4BH,GAA5B,YAAuC0M,GAAvC,YAAoDrL,GAApD,YAAkEC,M,oBCT/D,IACb,CACErR,GAAI,gBACJkH,MAAO,8BACPzG,KAAM,cAAC,IAAD,CAAMoL,KAAM,GAAIpL,KAAK,SAC3BtK,YAAa,CACXA,KAAYunO,sBACZvnO,KAAYwnO,yBACZxnO,KAAYynO,4BAEdxwN,SAAU,OACV7R,SAAU,CACR,CACEyE,GAAI,0BACJkH,MAAO,sBACPzG,KAAM,cAAC,IAAD,CAAMoL,KAAM,GAAIpL,KAAK,sBAC3BtK,YAAa,CAACA,KAAYunO,uBAC1BtwN,SAAU,oBACVC,QAASgrK,KAAMwlD,uBACfzC,SAAUC,KAEZ,CACEr7N,GAAI,4BACJkH,MAAO,wBACPzG,KAAM,cAAC,IAAD,CAAMoL,KAAM,GAAIpL,KAAK,YAC3BtK,YAAa,CAACA,KAAY2nO,yBAC1B1wN,SAAU,UACVC,QAASgrK,KAAMslD,yBACfvC,SAAUC,KAEZ,CACEr7N,GAAI,wBACJkH,MAAO,2BACPzG,KAAM,cAAC,IAAD,CAAMoL,KAAM,GAAIpL,KAAK,eAC3BtK,YAAa,CAACA,KAAYynO,4BAC1BxwN,SAAU,aACVC,QAASgrK,KAAM0lD,4BACf3C,SAAUC,S,oBCtCH,IACb,CACEr7N,GAAI,QACJkH,MAAO,cACP/Q,YAAa,CAACA,KAAY6nO,UAAW7nO,KAAY8nO,mBACjD7wN,SAAU,cACV7R,SAAU,CACR,CACEyE,GAAI,iBACJkH,MAAO,gBACP/Q,YAAa,CAACA,KAAY6nO,WAC1B5wN,SAAU,UACVC,QAASgrK,KAAM2lD,UACf5C,SAAUC,KAEZ,CACEr7N,GAAI,oBACJkH,MAAO,mBACP/Q,YAAa,CAACA,KAAY8nO,mBAC1B7wN,SAAU,UACVC,QAASgrK,KAAM6lD,mBACf9C,SAAUC,QCjBJ,IACZ,CACE8C,OAAQ,yBACR/wN,SAAU,UACV7R,SAAS,GAAD,mBACH6iO,GADG,YAEHptN,GAFG,YAGHX,GAHG,YAIHguN,IAJG,YAKHvtN,IALG,YAMHwtN,GANG,YAOHC,OAXT,mBAcKH,GAdL,YAeKptN,GAfL,YAgBKX,GAhBL,YAiBKguN,IAjBL,YAkBKvtN,IAlBL,YAmBKwtN,GAnBL,YAoBKC,K,oBCxBU,IACb,CACEv+N,GAAI,YACJkH,MAAO,qBACP/Q,YAAa,CACXA,KAAYopJ,oBACZppJ,KAAYgpJ,oBACZhpJ,KAAYkpJ,mBACZlpJ,KAAYqoJ,gBAEdpxI,SAAU,WACV7R,SAAU,CACR,CACEyE,GAAI,sBACJkH,MAAO,kBACP/Q,YAAa,CAACA,KAAYopJ,qBAC1BnyI,SAAU,kBACVC,QAASgrK,KAAMmmD,aACfpD,SAAUC,MAEZ,CACEr7N,GAAI,yBACJkH,MAAO,kBACP/Q,YAAa,CAACA,KAAYgpJ,qBAC1B/xI,SAAU,kBACVC,QAASgrK,KAAMomD,gBACfrD,SAAUC,MAEZ,CACEr7N,GAAI,wBACJkH,MAAO,iBACP/Q,YAAa,CAACA,KAAYkpJ,oBAC1BjyI,SAAU,iBACVC,QAASgrK,KAAMqmD,eACftD,SAAUC,MAEZ,CACEr7N,GAAI,iCACJkH,MAAO,2BACP/Q,YAAa,CAACA,KAAYqpJ,uBAC1BpyI,SAAU,iBACVC,QAASgrK,KAAMsmD,kBACfvD,SAAUC,MAEZ,CACEr7N,GAAI,4BACJkH,MAAO,yBACP/Q,YAAa,CAACA,KAAYooJ,mBAAoBpoJ,KAAYqoJ,gBAC1DpxI,SAAU,aACVC,QAASgrK,KAAMumD,mBACfxD,SAAUC,Q,oBClDH,IACb,CACEr7N,GAAI,SACJkH,MAAO,uBACP/Q,YAAa,CACXA,KAAY0/J,iBACZ1/J,KAAY4/J,iBACZ5/J,KAAY6/J,gBACZ7/J,KAAYo/J,aAEdnoJ,SAAU,QACV7R,SAAU,CACR,CACEyE,GAAI,mBACJkH,MAAO,kBACP/Q,YAAa,CAACA,KAAY0/J,kBAC1BzoJ,SAAU,eACVC,QAASgrK,KAAMwmD,UACfzD,SAAUC,KAEZ,CACEr7N,GAAI,sBACJkH,MAAO,kBACP/Q,YAAa,CAACA,KAAY4/J,kBAC1B3oJ,SAAU,eACVC,QAASgrK,KAAMymD,aACf1D,SAAUC,KAEZ,CACEr7N,GAAI,qBACJkH,MAAO,iBACP/Q,YAAa,CAACA,KAAY6/J,iBAC1B5oJ,SAAU,cACVC,QAASgrK,KAAM0mD,YACf3D,SAAUC,KAEZ,CACEr7N,GAAI,yBACJkH,MAAO,sBACP/Q,YAAa,CAACA,KAAYo/J,aAC1BnoJ,SAAU,aACVC,QAASgrK,KAAM2mD,gBACf5D,SAAUC,KAEZ,CACEr7N,GAAI,+BACJkH,MAAO,iCACP/Q,YAAa,CAACA,KAAYw9B,wBAC1BvmB,SAAU,cACVC,QAASgrK,KAAM1kJ,uBACfynM,SAAUC,Q,oBClDH,IACb,CACEr7N,GAAI,gBACJkH,MAAO,8BACPkG,SAAU,MACVjX,YAAa,CAACA,KAAY8oO,mBAC1B1jO,SAAU,CACR,CACEyE,GAAI,uBACJkH,MAAO,kBACPkG,SAAU,UACVjX,YAAa,CAACA,KAAY8oO,mBAC1B5xN,QAASgrK,KAAM6mD,iBACf9D,SAAUC,Q,gECXH,IACb,CACEr7N,GAAI,cACJkH,MAAO,mBACPzG,KAAM,cAAC,IAAD,CAAMoL,KAAM,GAAIpL,KAAK,SAC3B2M,SAAU,OACVjX,YAAa,GACboF,SAAU,CACR,CACEyE,GAAI,qBACJkH,MAAO,sBACPzG,KAAM,cAAC,IAAD,CAAMoL,KAAM,GAAIpL,KAAK,WAC3B2M,SAAU,SACVjX,YAAa,CAACA,KAAYs3L,UAAWt3L,KAAYy9H,cACjDr4H,SAAU,CACR,CACEyE,GAAI,sBACJkH,MAAO,wBACPzG,KAAM,cAAC,KAAD,CAAUoL,KAAM,KACtBuB,SAAU,WACVjX,YAAa,CAACA,KAAYs3L,WAC1BpgL,QAASgrK,KAAMoV,UACf2tC,SAAUC,KAEZ,CACEr7N,GAAI,mCACJkH,MAAO,oCACPzG,KAAM,cAAC,IAAD,CAAMA,KAAM,cAAeoL,KAAM,KACvCuB,SAAU,cACVjX,YAAa,CAACA,KAAYw3L,gBAC1BtgL,QAASgrK,KAAMsV,eACfytC,SAAUC,MAEZ,CACEr7N,GAAI,0BACJkH,MAAO,2BACPkG,SAAU,cACV3M,KAAM,cAAC,KAAD,CAAaoL,KAAM,KACzB1V,YAAa,CAACA,KAAYy9H,cAC1BvmH,QAASgrK,KAAMzkD,aACfwnG,SAAUC,OAIhB,CACEr7N,GAAI,qBACJkH,MAAO,sBACPzG,KAAM,cAAC,KAAD,CAAYoL,KAAM,KACxB1V,YAAa,CAACA,KAAYu3L,mBAAoBv3L,KAAYu9H,cAC1DtmH,SAAU,aACV7R,SAAU,CACR,CACEyE,GAAI,4BACJkH,MAAO,iCACPzG,KAAM,cAAC,KAAD,CAAMoL,KAAM,KAClBuB,SAAU,UACVjX,YAAa,CAACA,KAAYu3L,oBAC1BrgL,QAASgrK,KAAMqV,mBACf0tC,SAAUC,KAEZ,CACEr7N,GAAI,sBACJkH,MAAO,2BACPzG,KAAM,cAAC,KAAD,CAAMoL,KAAM,KAClBuB,SAAU,UACVjX,YAAa,CAACA,KAAYu9H,cAC1BrmH,QAASgrK,KAAM3kD,aACf0nG,SAAUC,U,yCCnEP,IACb,CACEr7N,GAAI,qBACJkH,MAAO,6BACPzG,KAAM,cAAC,IAAD,CAAMoL,KAAM,GAAIpL,KAAK,iBAC3B2M,SAAU,eACVjX,YAAa,CACXA,KAAY89H,kBACZ99H,KAAYq8H,kBACZr8H,KAAYs8H,gBACZt8H,KAAYu8H,kBACZv8H,KAAYw8H,iBACZx8H,KAAYy9H,aACZz9H,KAAYq9H,cACZr9H,KAAYs9H,iBACZt9H,KAAYu9H,aACZv9H,KAAYw9H,kBAEdp4H,SAAU,CACR,CACEyE,GAAI,sCACJkH,MAAO,uCACPzG,KAAM,cAAC,IAAD,CAAMoL,KAAM,GAAIpL,KAAK,qBAC3B2M,SAAU,mBACVjX,YAAa,CAACA,KAAY89H,mBAC1B5mH,QAASgrK,KAAMpkD,kBACfmnG,SAAUC,KAEZ,CACEr7N,GAAI,oBACJkH,MAAO,uCACPzG,KAAM,cAAC,IAAD,CAAMoL,KAAM,GAAIpL,KAAK,UAC3B2M,SAAU,QACVjX,YAAa,CAACA,KAAY09H,YAC1BxmH,QAASgrK,KAAME,kBACf6iD,SAAUC,MAEZ,CACEr7N,GAAI,6BACJkH,MAAO,8BACPzG,KAAM,cAAC,KAAD,CAAQoL,KAAM,KACpBuB,SAAU,SACVjX,YAAa,CACXA,KAAYq8H,kBACZr8H,KAAYs8H,gBACZt8H,KAAYu8H,kBACZv8H,KAAYw8H,kBAEdp3H,SAAU,CACR,CACEyE,GAAI,+BACJkH,MAAO,+BACPzG,KAAM,cAAC,IAAD,CAAMoL,KAAM,GAAIpL,KAAK,eAC3B2M,SAAU,aACVjX,YAAa,CAACA,KAAYq8H,mBAC1BnlH,QAASgrK,KAAM7lD,kBACf4oG,SAAUC,MAEZ,CACEr7N,GAAI,8BACJkH,MAAO,kCACPzG,KAAM,cAAC,IAAD,CAAMoL,KAAM,GAAIpL,KAAK,gBAC3B2M,SAAU,cACVjX,YAAa,CAACA,KAAYs8H,iBAC1BplH,QAASgrK,KAAM5lD,gBACf2oG,SAAUC,MAEZ,CACEr7N,GAAI,+BACJkH,MAAO,gCACPkG,SAAU,OACV3M,KAAM,cAAC,KAAD,CAAMoL,KAAM,KAClB1V,YAAa,CAACA,KAAYu8H,mBAC1BrlH,QAASgrK,KAAM3lD,kBACf0oG,SAAUC,MAEZ,CACEr7N,GAAI,8BACJkH,MAAO,+BACPzG,KAAM,cAAC,IAAD,CAAMoL,KAAM,GAAIpL,KAAK,sBAC3B2M,SAAU,oBACVjX,YAAa,CAACA,KAAYw8H,kBAC1BtlH,QAASgrK,KAAM1lD,iBACfyoG,SAAUC,MAEZ,CACEr7N,GAAI,2BACJkH,MAAO,oCACPzG,KAAM,cAAC,IAAD,CAAMoL,KAAM,GAAIpL,KAAK,aAC3B2M,SAAU,WACVjX,YAAa,CAACA,KAAYyb,kBAC1BvE,QAASgrK,KAAMC,oBACf8iD,SAAUC,OAIhB,CACEr7N,GAAI,4BACJkH,MAAO,6BACPzG,KAAM,cAAC,KAAD,CAAQoL,KAAM,KACpBuB,SAAU,SACVjX,YAAa,CACXA,KAAYq9H,cACZr9H,KAAYs9H,iBACZt9H,KAAYu9H,aACZv9H,KAAYw9H,kBAEdp4H,SAAU,CACR,CACEyE,GAAI,kCACJkH,MAAO,mCACPzG,KAAM,cAAC,KAAD,CAAMoL,KAAM,KAClBuB,SAAU,OACVjX,YAAa,CAACA,KAAYq9H,eAC1BnmH,QAASgrK,KAAM7kD,cACf4nG,SAAUC,KAEZ,CACEr7N,GAAI,qCACJkH,MAAO,gCACPkG,SAAU,OACV3M,KAAM,cAAC,KAAD,CAAMoL,KAAM,KAClB1V,YAAa,CAACA,KAAYs9H,kBAC1BpmH,QAASgrK,KAAM5kD,iBACf2nG,SAAUC,KAEZ,CACEr7N,GAAI,iCACJkH,MAAO,4BACPkG,SAAU,OACV3M,KAAM,cAAC,KAAD,CAAMoL,KAAM,KAClB1V,YAAa,CAACA,KAAYu9H,cAC1BrmH,QAASgrK,KAAM3kD,aACf0nG,SAAUC,KAEZ,CACEr7N,GAAI,qCACJkH,MAAO,gCACPkG,SAAU,OACV3M,KAAM,cAAC,KAAD,CAAMoL,KAAM,KAClB1V,YAAa,CAACA,KAAYw9H,kBAC1BtmH,QAASgrK,KAAM1kD,iBACfynG,SAAUC,OAIhB,CACEr7N,GAAI,iCACJkH,MAAO,2BACPkG,SAAU,cACV3M,KAAM,cAAC,KAAD,CAAaoL,KAAM,KACzB1V,YAAa,CAACA,KAAYy9H,cAC1BvmH,QAASgrK,KAAMzkD,aACfwnG,SAAUC,QCxJJ,IACZ,CACE8C,OAAQ,oBACR/wN,SAAU,SACVg8K,UAAW,iBACX7tL,SAAS,GAAD,mBAAM6U,IAAN,YAAiBJ,IAAjB,YAA+BmvN,IAA/B,YAA+CC,IAA/C,YAAsEC,OALlF,mBAOKjvN,IAPL,YAQKJ,IARL,YASKovN,IATL,YAUKD,IAVL,YAWKE,K,oBCbU,IACb,CACEr/N,GAAI,iBACJkH,MAAO,cACPzG,KAAM,cAAC,IAAD,CAAMoL,KAAM,GAAIpL,KAAK,aAC3B2M,SAAU,WACVjX,YAAa,CAACA,KAAYk4L,eAC1BhhL,QAASgrK,KAAMinD,eACflE,SAAUC,MAEZ,CACEr7N,GAAI,uBACJkH,MAAO,wBACPkG,SAAU,cACVjX,YAAa,CAACA,KAAY23L,oBAC1BzgL,QAASgrK,KAAMknD,qBACfnE,SAAUC,MAEZ,CACEr7N,GAAI,gBACJkH,MAAO,iBACPkG,SAAU,OACVjX,YAAa,CAACA,KAAY63L,YAAa73L,KAAY83L,YACnD1yL,SAAU,CACR,CACEyE,GAAI,uBACJkH,MAAO,wBACPkG,SAAU,OACVjX,YAAa,CAACA,KAAY63L,aAC1B3gL,QAASgrK,KAAMmnD,qBACfpE,SAAUC,KAEZ,CACEr7N,GAAI,sBACJkH,MAAO,uBACPkG,SAAU,OACVjX,YAAa,CAACA,KAAY83L,YAC1B1yL,SAAU,CACR,CACEyE,GAAI,sBACJkH,MAAO,gBACPkG,SAAU,OACVjX,YAAa,CAACA,KAAY83L,YAC1B5gL,QAASgrK,KAAMonD,oBACfrE,SAAUC,KAEZ,CACEr7N,GAAI,gCACJkH,MAAO,oBACPkG,SAAU,OACVjX,YAAa,CAACA,KAAY83L,YAC1B5gL,QAASgrK,KAAMqnD,8BACftE,SAAUC,SAMpB,CACEr7N,GAAI,gBACJkH,MAAO,iBACPzG,KAAM,cAAC,IAAD,CAAMoL,KAAM,GAAIpL,KAAK,QAC3B2M,SAAU,MACVjX,YAAa,CAACA,KAAYi4L,aAC1B/gL,QAASgrK,KAAMsnD,cACfvE,SAAUC,OCpEA,IACZ,CACE8C,OAAQ,sBACR/wN,SAAU,SACV7R,SAAS,YAAKqkO,MAJlB,mBAMKA,K,WCLU,IACb,CACE5/N,GAAI,MACJkH,MAAO,cACPzG,KAAM,cAAC,KAAD,CAAKoL,KAAM,KACjB1V,YAAa,CAAC,SACdiX,SAAU,MACVC,QAAS,QACT+tN,SAAUC,M,UCPC,IACb,CACEr7N,GAAI,YACJkH,MAAO,sBACPkG,SAAU,OACV68K,MAAO,UACPb,UAAW,oBACXjzL,YAAa,C,QAACA,EAAY0pO,WAC1BxyN,QAASgrK,KAAMwnD,UACfzE,SAAUC,M,8BCRC,IACb,CACEr7N,GAAI,YACJkH,MAAO,sBACPzG,KAAM,cAAC,KAAD,CAAQoL,KAAM,KACpBuB,SAAU,SACVjX,YAAa,CAACA,KAAY4hL,cAAe5hL,KAAY6hL,gBACrDz8K,SAAU,CACR,CACEyE,GAAI,sBACJkH,MAAO,oBACPkG,SAAU,UACVjX,YAAa,CAACA,KAAY4hL,eAE1B1qK,QAASgrK,KAAMl1I,cACfi4L,SAAUC,KAEZ,CACEr7N,GAAI,wBACJkH,MAAO,4BACPkG,SAAU,cACVjX,YAAa,CAACA,KAAY6hL,gBAE1B3qK,QAASgrK,KAAMvpI,gBACfssL,SAAUC,Q,oBCvBH,IACb,CACEr7N,GAAI,YACJkH,MAAO,sBACPzG,KAAM,cAAC,IAAD,CAAMoL,KAAM,GAAIpL,KAAK,cAC3B2M,SAAU,YACVjX,YAAa,CAACA,KAAY+uL,cAAe/uL,KAAYgvL,sBACrD5pL,SAAU,CACR,CACEyE,GAAI,sBACJkH,MAAO,oBACPzG,KAAM,cAAC,KAAD,CAAMoL,KAAM,KAClBuB,SAAU,UACVjX,YAAa,CAACA,KAAY+uL,eAE1B73K,QAASgrK,KAAMz5D,cACfw8G,SAAUC,KAEZ,CACEr7N,GAAI,8BACJkH,MAAO,8BACPzG,KAAM,cAAC,KAAD,CAAMoL,KAAM,KAClBuB,SAAU,OACVjX,YAAa,CAACA,KAAYgvL,sBAE1B93K,QAASgrK,KAAMynD,sBACf1E,SAAUC,QC5BH,IACb,CACEr7N,GAAI,mBACJkH,MAAO,2BACPzG,KAAM,cAAC,KAAD,CAAQoL,KAAM,KACpBuB,SAAU,SACVjX,YAAa,GACboF,SAAS,GAAD,mBAAMkV,IAAN,YAAoBR,O,oBCNjB,IACb,CACEjQ,GAAI,UACJkH,MAAO,kBACPzG,KAAM,cAAC,IAAD,CAAMoL,KAAM,GAAIpL,KAAK,uBAC3B2M,SAAU,qBACVjX,YAAa,CACXA,KAAY41J,+BACZ51J,KAAY61J,0BACZ71J,KAAY81J,2BACZ91J,KAAY40J,cACZ50J,KAAY60J,iBACZ70J,KAAYo1J,+BACZp1J,KAAYq1J,gCACZr1J,KAAYu1J,iBACZv1J,KAAY4pO,gCACZ5pO,KAAYs1J,qBACZt1J,KAAY+1J,sBACZ/1J,KAAYg2J,cACZh2J,KAAYi2J,oBACZj2J,KAAYk2J,YACZl2J,KAAY80J,kBACZ90J,KAAY+0J,aACZ/0J,KAAYu9H,aACZv9H,KAAYo2J,qBACZp2J,KAAYq2J,cACZr2J,KAAYw1J,kBAEdt+I,QAASgrK,KAAM2nD,WACf5E,SAAUC,O,8BC5BC,IACb,CACEr7N,GAAI,gBACJkH,MAAO,cACPzG,KAAM,cAAC,IAAD,CAAMoL,KAAM,GAAIpL,KAAK,aAC3BtK,YAAa,CAACA,KAAY8pO,kBAAmB5gB,KAAgB2R,WAC7D5jN,SAAU,WACVC,QAASgrK,KAAM6nD,kBACf9E,SAAUC,KACV9/N,SAAU,CACR,CACEyE,GAAI,uBACJkH,MAAO,kBACPzG,KAAM,cAAC,IAAD,CAAMoL,KAAM,GAAIpL,KAAK,aAC3BtK,YAAa,CAACA,KAAY8pO,mBAC1B7yN,SAAU,WACVC,QAASgrK,KAAM6nD,kBACf9E,SAAUC,MAEZ,CACEr7N,GAAI,uBACJkH,MAAO,kBACPzG,KAAM,cAAC,IAAD,CAAMoL,KAAM,GAAIpL,KAAK,aAC3BtK,YAAa,CAACkpN,KAAgB2R,WAC9B5jN,SAAU,WACVC,QAASgrK,KAAM24C,UACfoK,SAAUC,QC1BJ,IACZ,CACE8C,OAAQ,kBACR/wN,SAAU,OACV7R,SAAS,GAAD,mBAAMskO,IAAN,YAAoB7hC,IAApB,YAA6B15K,IAA7B,YAAyC67M,IAAzC,YAA2DC,OAJvE,mBAMKP,IANL,YAOK7hC,IAPL,YAQK15K,IARL,YASK67M,IATL,YAUKC,K,+DCLU,IACb,CACEpgO,GAAI,oBACJkH,MAAO,gCACPzG,KAAM,cAAC,IAAD,CAAMoL,KAAM,GAAIpL,KAAK,eAC3BtK,YAAa,CAAC2kO,IAAwBC,kBACtCnjO,aAAc,CAAC,EAAG,GAAI,IACtBwV,SAAU,aACVC,QAASwuN,IAAkBd,iBAC3BK,SAAUC,MAEZ,CACEr7N,GAAI,sBACJkH,MAAO,8BACPzG,KAAM,cAAC,IAAD,CAAMoL,KAAM,GAAIpL,KAAK,YAC3BtK,YAAa,CAACkqO,KAA6BC,cAC3ClzN,SAAU,UACVC,QAASkzN,KAAuBD,aAChClF,SAAUC,KAEZ,CACEr7N,GAAI,YACJkH,MAAO,sBACPzG,KAAM,cAAC,IAAD,CAAMoL,KAAM,GAAIpL,KAAK,aAC3B2M,SAAU,WACVjX,YAAa,CAACqqO,KAAgCC,cAC9CpzN,QAASqzN,KAA0BD,aACnCrF,SAAUC,KAEZ,CACEr7N,GAAI,aACJkH,MAAO,wBACPzG,KAAM,cAAC,IAAD,CAAMoL,KAAM,GAAIpL,KAAK,SAC3B2M,SAAU,OACVjX,YAAa,CAACwqO,KAAqBC,eACnCvzN,QAASwzN,KAAeC,eACxB1F,SAAUC,OC5CA,IACZ,CACE8C,OAAQ,kBACR/wN,SAAU,OACV7R,SAAS,GAAD,mBAAMwlO,IAAN,YAAoBZ,OAJhC,mBAMKY,IANL,YAOKZ,K,oBCNU,IACb,CACEngO,GAAI,OACJkH,MAAO,YACPkG,SAAU,OACVjX,YAAa,CAACA,KAAY4a,MAC1BxV,SAAU,CACR,CACEyE,GAAI,cACJkH,MAAO,eACPkG,SAAU,SACVjX,YAAa,CAACA,KAAY6qO,iBAC1B3zN,QAASgrK,KAAM4oD,QACf7F,SAAUC,KAEZ,CACEr7N,GAAI,aACJkH,MAAO,kBACPkG,SAAU,cACVjX,YAAa,CAACA,KAAY+qO,YAC1B7zN,QAASgrK,KAAM8oD,OACf/F,SAAUC,KAEZ,CACEr7N,GAAI,YACJkH,MAAO,aACPkG,SAAU,SACVjX,YAAa,CAACA,KAAYirO,WAC1B/zN,QAASgrK,KAAMgpD,MACfjG,SAAUC,KAEZ,CACEr7N,GAAI,aACJkH,MAAO,cACPkG,SAAU,QACVjX,YAAa,CAACA,KAAYmrO,YAC1Bj0N,QAASgrK,KAAMh0J,OACf+2M,SAAUC,KAEZ,CACEr7N,GAAI,wBACJkH,MAAO,+BACPkG,SAAU,WACVjX,YAAa,CAACA,KAAYorO,qBAC1Bl0N,QAASgrK,KAAMmpD,sBACfpG,SAAUC,Q,UC7CH,IACb,CACEr7N,GAAI,aACJkH,MAAO,wBACPkG,SAAU,aACV68K,MAAO,UACPb,UAAW,oBACXjzL,YAAa,C,QAACA,EAAYsrO,YAC1Bp0N,QAASgrK,KAAMhoD,KACf+qG,SAAUC,OCVA,IACZ,CACE8C,OAAQ,eACR/wN,SAAU,YACV7R,SAAS,GAAD,mBAAMwV,IAAN,YAAe2wN,OAJ3B,mBAMK3wN,IANL,YAOK2wN,K,UCLU,I,MAAA,CACb,CACE1hO,GAAI,kBACJkH,MAAO,2BACPzG,KAAM,cAAC,IAAD,CAAMoL,KAAM,GAAIpL,KAAK,cAC3B2M,SAAU,YACVjX,YAAa,GACbkX,QAASs0N,KAAsBC,YAC/BxG,SAAUC,KAEZ,CACEr7N,GAAI,kBACJkH,MAAO,2BACPzG,KAAM,cAAC,IAAD,CAAMoL,KAAM,GAAIpL,KAAK,eAC3B2M,SAAU,aACVjX,YAAa,GACbkX,QAASs0N,KAAsBE,gBAC/BzG,SAAUC,QCpBA,IACZ,CACE8C,OAAQ,kBACR/wN,SAAU,OACV7R,SAAS,YAAKumO,MAJlB,mBAMKA,K,oBCHU,IACb,CACE9hO,GAAI,UACJkH,MAAO,kBACPzG,KAAM,cAAC,IAAD,CAAMoL,KAAM,GAAIpL,KAAK,YAC3BtK,YAAa,CAACA,KAAY2kB,SAC1B1N,SAAU,UACVC,QAASgrK,KAAMv9J,QACfsgN,SAAUC,M,oBCRC,IACb,CACEr7N,GAAI,WACJkH,MAAO,oBACPzG,KAAM,cAAC,IAAD,CAAMoL,KAAM,GAAIpL,KAAK,SAC3BtK,YAAa,CACXA,KAAY4rO,aACZ5rO,KAAY6rO,eACZ7rO,KAAYu2D,aACZv2D,KAAY8rO,gBAEd70N,SAAU,OACVC,QAASgrK,KAAM6pD,cACf9G,SAAUC,MCfA,IACZ,CACE8C,OAAQ,kBACR/wN,SAAU,SACV7R,SAAS,GAAD,mBAAMuf,IAAN,YAAkBgxC,OAJ9B,mBAMKhxC,IANL,YAOKgxC,KCDCt+C,GAAc,sBAAO20N,IAAP,YAAmBC,IAAnB,YAA4BC,IAA5B,YAA2CzC,IAA3C,YAAyD0C,KAChEC,GAAiB,YAAOC,IACxBC,GAAwB,YAAOC,IAC/BC,GAAmB,YAAOC,IAEhC,SAASC,GAAWr1N,GACzB,IAAIipG,EAAU,GAoBd,OAlBAjpG,EAAeuS,SAAQ,SAACi5F,GACtB,GAAyB,MAArBA,EAAM,QAAqB,CAC7B,IAAM8pH,EAAS,2BACV9pH,GADU,IAEb/qG,cAAc,EACd80N,KAAM/pH,EAAM,QAEZrW,OAAQqW,EAAM,GACdv4G,KAAMu4G,EAAM,WAEdvC,EAAQroG,KAAK00N,GAEf,GAA0B,MAAtB9pH,EAAM,UAA4C,MAApBA,EAAM,OAAoB,CAC1D,IAAIgqH,EAAkBH,GAAW7pH,EAAM,UACvCvC,EAAO,sBAAOA,GAAP,YAAmBusH,QAIvBvsH,EAGMjpG,Q,iCCtCf,sGAAO,IAAMy1N,EAAiC,iCACjCC,EAAmC,mCACnCC,EAAgC,iC,6BCF7C,sGAAO,IAAMC,EAA2B,2BAC3BC,EAA6B,6BAC7BC,EAA0B,2B,6BCFvC,sGAAO,IAAMC,EAA2B,2BAC3BC,EAA6B,6BAC7BC,EAA0B,2B,6BCFvC,sGAAO,IAAMC,EAA8B,8BAC9BC,EAAgC,gCAChCC,EAA6B,8B,6BCF1C,sGAAO,IAAMC,EAA8B,8BAC9BC,EAAgC,gCAChCC,EAA6B,8B,6BCF1C,sGAAO,IAAMC,EAAgC,gCAChCC,EAAkC,kCAClCC,EAA+B,gC,uLCc5CC,IAAWxhO,IAAI,CACbyhO,IACAC,IACAC,IACAC,IACAC,IACAC,IACAC,IACAC,IACAC,MAGF,IAAMC,EAAuB,CAC3BC,OAAQ,OACRC,aAAc,GACdC,aAAc,EACdC,gBAAgB,EAChB5tB,SAAU,CACRrpL,MAAO,IACPkxL,sBAAsB,EACtBC,mBAAmB,EACnB+lB,kBAAkB,GAEpBC,MAAM,EACN3tB,YAAY,EACZC,WAAY,CACV2tB,WAAW,IA+BTjuB,EAAe,SAAClvM,GACpB,IACEmvM,EAaEnvM,EAbFmvM,MACA5yL,EAYEvc,EAZFuc,OACAowF,EAWE3sG,EAXF2sG,UACAwqG,EAUEn3M,EAVFm3M,aACA/H,EASEpvM,EATFovM,SACA8tB,EAQEl9N,EARFk9N,KACApwH,EAOE9sG,EAPF8sG,OACAyiG,EAMEvvM,EANFuvM,WACAC,EAKExvM,EALFwvM,WACAH,EAIErvM,EAJFqvM,cACAI,EAGEzvM,EAHFyvM,UACAC,EAEE1vM,EAFF0vM,gBACAC,EACE3vM,EADF2vM,aAGF,EAA0Cv5E,mBAAS,GAAnD,mBAAOgnG,EAAP,KAAsBC,EAAtB,KACA,EAA4CjnG,oBAAS,GAArD,mBAAOw+E,EAAP,KAAuBC,EAAvB,KAGA,EAAwCz+E,mBAAS,MAAjD,mBAAOknG,EAAP,KACMC,EAAsB,CAC1B5wH,UAAW,iBACXmwH,aAAc,GACdU,cAAe,EACfC,UAAU,EACVC,uBAAuB,EACvBC,qBAAqB,EACrBC,SARF,MAWMC,EAAc,2BACfjB,GADe,IAElBxtB,SAAsB,MAAZA,EAAmBA,EAAWwtB,EAAqBxtB,SAC7D8tB,KAAc,MAARA,EAAeA,EAAON,EAAqBM,KACjD3tB,WAA0B,MAAdA,EAAqBA,EAAaqtB,EAAqBrtB,WACnEC,WAA0B,MAAdA,EAAqBA,EAAaotB,EAAqBptB,WACnEsuB,OAAQruB,EAAY,CAAEsuB,OAAQT,QAAiBrlO,IAGjD,OACE,qCACGskB,EAAO5J,OAAS,EACf,qCACE,cAAC,IAAD,yBACEqrN,IAAK7uB,EAAQ,MAAQ,OACjB0uB,GAFN,IAGErxH,MAAO,CAAEM,OAAQA,EAAQ60D,OAAQ,WACjCo7D,aAAc,EACdpwH,UAAWA,EACX0iG,cAAe,SAAC0uB,GACV1uB,GACFA,EACE0uB,EAAOE,YAAc,GAAKF,EAAOE,YAAc,GAAK1hN,EAAO5J,OAAS,IAT5E,SAaG4J,EAAO5Q,KAAI,SAAC2Q,EAAOzN,GAClB,OACE,cAAC,IAAD,CAAiC29F,MAAO,CAAEwB,gBAAiB,SAA3D,SACE,qBACEnB,IAAKvwF,EAAMw3K,aACXnnF,UAAWwqG,EACX73M,MAAM,OACNk3H,QAAS,WACP6mG,EAAiBxuN,GACjBgmM,GAAkB,OAPNv4L,EAAM0nG,eAc7ByrF,GAAalzL,EAAO5J,QAAU,GAC7B,cAAC,IAAD,2BACM4qN,GADN,IAEE5wH,UAAS,yBAAoB+iG,GAC7BljG,MAAO,CAAEM,OAAQ6iG,GAHnB,SAKGpzL,EAAO5Q,KAAI,SAAC2Q,EAAOzN,GAClB,OACE,cAAC,IAAD,UACE,qBAAKg+F,IAAKvwF,EAAMw3K,aAAcnnF,UAAU,cAAcrtG,MAAM,UAD5Cgd,EAAM0nG,QAAU,kBAS5C,qBAAKrX,UAAU,gCAAf,SACE,qBACEE,IAAKtwF,EAAO,GAAGu3K,aACfx0L,MAAM,OACNqtG,UAAWA,EACXH,MAAO,CAAEM,OAAQA,EAAQ60D,OAAQ,WACjCnrC,QAAS,WACP6mG,EAAiB,GACjBxoB,GAAkB,QAKzBD,GACC,cAAC,IAAD,CACEuD,qBAAqB,EACrBC,gBAAiB,CAAEC,QAAS,CAAExoG,OAAQ,MACtCyoG,WAAY/7L,EAAO6gN,GAAetyO,UAClCytN,aAAch8L,EAAO6gN,GAAec,iBACpCplB,QAASv8L,EAAO6gN,GAAetpC,aAC/BqqC,QAAS5hN,GAAQ6gN,EAAgB,GAAK7gN,EAAO5J,QAAQmhL,aACrDsqC,QAAS7hN,GAAQ6gN,EAAgB7gN,EAAO5J,OAAS,GAAK4J,EAAO5J,QAAQmhL,aACrEilB,eAAgB,kBAAMlE,GAAkB,IACxCwpB,kBAAmB,kBACjBhB,GAAkBD,EAAgB7gN,EAAO5J,OAAS,GAAK4J,EAAO5J,SAEhE2rN,kBAAmB,kBAAMjB,GAAkBD,EAAgB,GAAK7gN,EAAO5J,eAOjFu8L,EAAat8F,aAAe,CAC1Bu8F,OAAO,EACP5yL,OAAQ,GACRowF,UAAW,GACXwqG,aAAc,cACdzH,gBAAiB,GACjBN,SAAU,KACV8tB,KAAM,KACN3tB,WAAY,KACZC,WAAY,KACZ+uB,WAAY,GACZzxH,OAAQ,MACR6iG,aAAc,MACdF,WAAW,EACXJ,cAAe,SAACmvB,GAAD,OAAmB,OAGrBtvB,O,gCCtNf,sdAManiL,EAAU,SAyBVwjB,EAAuB,SAAC91C,EAAuBswB,GAC1D,IAAM9wB,EAAe,IAAIjE,IASzB,OARAg1B,IAAsB1wB,6BAA6BC,IAAON,GAC1DA,EAAa5D,iBAAiB,CAC5BwB,OAAQ,eACRjO,OAAQ,MACR2N,WAAY,eAGd0C,EAAa3D,iBAAiBy0B,GACvB9wB,EAAa9C,KAAb,UAAqB41B,EAArB,QAAoCtyB,IAGhCg2C,EAA+B,SAC1Ch2C,EACAswB,GAEA,IAAM9wB,EAAe,IAAIjE,IASzB,OARAg1B,IAAsB1wB,6BAA6BC,IAAON,GAC1DA,EAAa5D,iBAAiB,CAC5BwB,OAAQ,eACRjO,OAAQ,MACR2N,WAAY,eAGd0C,EAAa3D,iBAAiBy0B,GACvB9wB,EAAa9C,KAAb,UAAqB41B,EAArB,0BAAsDtyB,IAGlDgkO,EAA4B,SAAChkO,EAAuBswB,GAC/D,IAAM9wB,EAAe,IAAIjE,IASzB,OARAg1B,IAAsB1wB,6BAA6BC,IAAON,GAC1DA,EAAa5D,iBAAiB,CAC5BwB,OAAQ,wBACRjO,OAAQ,MACR2N,WAAY,eAGd0C,EAAa3D,iBAAiBy0B,GACvB9wB,EAAa9C,KAAb,UAAqB41B,EAArB,8BAA0DtyB,IAGtDikO,EAAgC,SAC3CjkO,EACAswB,GAEA,IAAM9wB,EAAe,IAAIjE,IASzB,OARAg1B,IAAsB1wB,6BAA6BC,IAAON,GAC1DA,EAAa5D,iBAAiB,CAC5BwB,OAAQ,4BACRjO,OAAQ,MACR2N,WAAY,eAGd0C,EAAa3D,iBAAiBy0B,GACvB9wB,EAAa9C,KAAb,UAAqB41B,EAArB,kCAA8DtyB,IAG1DkkO,EAAgC,SAC3ClkO,EACAswB,GAEA,IAAM9wB,EAAe,IAAIjE,IASzB,OARAg1B,IAAsB1wB,6BAA6BC,IAAON,GAC1DA,EAAa5D,iBAAiB,CAC5BwB,OAAQ,4BACRjO,OAAQ,MACR2N,WAAY,eAGd0C,EAAa3D,iBAAiBy0B,GACvB9wB,EAAa9C,KAAb,UAAqB41B,EAArB,kCAA8DtyB,IAG1DmkO,EAA4B,SAACnkO,EAAuBswB,GAC/D,IAAM9wB,EAAe,IAAIjE,IASzB,OARAg1B,IAAsB1wB,6BAA6BC,IAAON,GAC1DA,EAAa5D,iBAAiB,CAC5BwB,OAAQ,wBACRjO,OAAQ,MACR2N,WAAY,iBAGd0C,EAAa3D,iBAAiBy0B,GACvB9wB,EAAa9C,KAAb,UAAqB41B,EAArB,8BAA0DtyB,IAGtDokO,EAAgC,SAC3CpkO,EACAswB,GAEA,IAAM9wB,EAAe,IAAIjE,IASzB,OARAg1B,IAAsB1wB,6BAA6BC,IAAON,GAC1DA,EAAa5D,iBAAiB,CAC5BwB,OAAQ,4BACRjO,OAAQ,MACR2N,WAAY,iBAGd0C,EAAa3D,iBAAiBy0B,GACvB9wB,EAAa9C,KAAb,UAAqB41B,EAArB,kCAA8DtyB,IAG1DqkO,EAA8B,SACzCrkO,EACAswB,GAEA,IAAM9wB,EAAe,IAAIjE,IASzB,OARAg1B,IAAsB1wB,6BAA6BC,IAAON,GAC1DA,EAAa5D,iBAAiB,CAC5BwB,OAAQ,0BACRjO,OAAQ,MACR2N,WAAY,eAGd0C,EAAa3D,iBAAiBy0B,GACvB9wB,EAAa9C,KAAb,UAAqB41B,EAArB,gCAA4DtyB,IAGxDk2C,EAAmB,SAACl2C,EAA2BswB,GAC1D,IAAM9wB,EAAe,IAAIjE,IASzB,OARAg1B,IAAsB1wB,6BAA6BC,IAAON,GAC1DA,EAAa5D,iBAAiB,CAC5BwB,OAAQ,eACRjO,OAAQ,SACRoO,KAAMyC,EAAQm2C,UACdr5C,WAAY,iBAEd0C,EAAa3D,iBAAiBy0B,GACvB9wB,EAAa9C,KAAb,UAAqB41B,EAArB,WAAuCtyB,IAGnCw2C,EAA+B,SAC1Cx2C,EACAswB,GAEA,IAAM9wB,EAAe,IAAIjE,IASzB,OARAg1B,IAAsB1wB,6BAA6BC,IAAON,GAC1DA,EAAa5D,iBAAiB,CAC5BwB,OAAQ,eACRjO,OAAQ,SACRoO,KAAMyC,EAAQm2C,UACdr5C,WAAY,iBAEd0C,EAAa3D,iBAAiBy0B,GACvB9wB,EAAa9C,KAAb,UAAqB41B,EAArB,uBAAmDtyB,IAG/C22C,EAAqB,SAAC32C,EAA6BswB,GAC9D,IAAM9wB,EAAe,IAAIjE,IASzB,OARAg1B,IAAsB1wB,6BAA6BC,IAAON,GAC1DA,EAAa5D,iBAAiB,CAC5B2B,KAAK,GAAD,OAAKyC,EAAQm2C,WACjB/4C,OAAQ,eACRjO,OAAQ,SACR2N,WAAY,iBAEd0C,EAAa3D,iBAAiBy0B,GACvB9wB,EAAa9C,KAAb,UAAqB41B,EAArB,WAAuCtyB,IAGnC82C,EAAoB,SAAC92C,EAA6BswB,GAC7D,IAAM9wB,EAAe,IAAIjE,IASzB,OARAg1B,IAAsB1wB,6BAA6BC,IAAON,GAC1DA,EAAa5D,iBAAiB,CAC5B2B,KAAK,GAAD,OAAKyC,EAAQm2C,WACjB/4C,OAAQ,eACRjO,OAAQ,QACR2N,WAAY,iBAEd0C,EAAa3D,iBAAiBy0B,GACvB9wB,EAAa9C,KAAb,UAAqB41B,EAArB,eAA2CtyB,IAGvCskO,EAAgC,SAC3CtkO,EACAswB,GAEA,IAAM9wB,EAAe,IAAIjE,IASzB,OARAg1B,IAAsB1wB,6BAA6BC,IAAON,GAC1DA,EAAa5D,iBAAiB,CAC5B2B,KAAK,GAAD,OAAKyC,EAAQ83B,UACjB16B,OAAQ,aACRjO,OAAQ,SACR2N,WAAY,iBAEd0C,EAAa3D,iBAAiBy0B,GACvB9wB,EAAa9C,KAAb,UAAqB41B,EAArB,kCAA8DtyB,K,mPCmDjEukO,EAAuBh1O,YAAgB,CAC3Ci1O,WArQiB,WAAyB,IAAxBt1O,EAAuB,uDAAf,GAAIC,EAAW,uCACzC,OAAQA,EAAOC,MACb,KAAKkgB,IACH,MAAO,GAIT,KAAKjgB,IACH,MAA4BF,EAAOM,QAA3B2d,EAAR,EAAQA,SAAUshB,EAAlB,EAAkBA,MACZrf,EAAQ,eAAQngB,GAStB,OARAw/B,EAAMrR,SAAQ,SAACgf,GACbhtB,EAASgtB,GAAT,qCACE9e,YAAY,GACTruB,EAAMmtC,IACNjvB,EAASivB,IAHd,IAIEh3B,aAAa,OAGVgK,EAIT,KAAKhgB,IACH,IAAQgtC,EAAiBltC,EAAOM,QAAxB4sC,aACR,OAAO6wE,IAAKh+G,EAAOmtC,GAGrB,KAAKhtC,IACH,IAAMsiC,EAAaxiC,EAAOM,QAC1B,OAAO,2BACFP,GADL,kBAEGyiC,EAAW0K,aAFd,2BAGOntC,EAAMyiC,EAAW0K,eACjB1K,KAMT,QACE,OAAOziC,IA8NXu1O,WAzNiB,WAAyB,IAAxBv1O,EAAuB,uDAAf,GAAIC,EAAW,uCACzC,OAAQA,EAAOC,MAEb,KAAKC,IACH,MAA4BF,EAAOM,QAA3B2d,EAAR,EAAQA,SAAUshB,EAAlB,EAAkBA,MACZrf,EAAQ,eAAQngB,GAStB,OARAw/B,EAAMrR,SAAQ,SAACgf,GACbhtB,EAASgtB,GAAT,qCACE9e,YAAY,GACTruB,EAAMmtC,IACNjvB,EAASivB,IAHd,IAIEh3B,aAAa,OAGVgK,EAIT,KAAKhgB,IACH,IAAQgtC,EAAiBltC,EAAOM,QAAxB4sC,aACR,OAAO6wE,IAAKh+G,EAAOmtC,GAGrB,KAAKhtC,IACH,IAAMsiC,EAAaxiC,EAAOM,QAC1B,OAAO,2BACFP,GADL,kBAEGyiC,EAAW0K,aAFd,2BAGOntC,EAAMyiC,EAAW0K,eACjB1K,KAMT,QACE,OAAOziC,IAsLXw1O,gBAjLsB,WAAyB,IAAxBx1O,EAAuB,uDAAf,GAAIC,EAAW,uCAC9C,OAAQA,EAAOC,MACb,KAAKkgB,IACH,MAAO,GAGT,KAAKjgB,IACH,IAAQq/B,EAAUv/B,EAAOM,QAAjBi/B,MACR,OAAOs6E,IAAMt6E,GAGf,KAAKr/B,IACH,IAAQgtC,EAAiBltC,EAAOM,QAAxB4sC,aACR,OAAOntC,EAAMs8B,QAAO,SAACm5M,GAAD,OAAuBA,IAAsBtoM,KAInE,QACE,OAAOntC,IAgKX01O,gBA3JsB,WAAyB,IAAxB11O,EAAuB,uDAAf,GAAIC,EAAW,uCAC9C,OAAQA,EAAOC,MACb,KAAKkgB,IACH,MAAO,GAGT,KAAKjgB,IACH,IAAQq/B,EAAUv/B,EAAOM,QAAjBi/B,MACR,OAAOs6E,IAAMt6E,GAGf,KAAKr/B,IACH,IAAQgtC,EAAiBltC,EAAOM,QAAxB4sC,aACR,OAAOntC,EAAMs8B,QAAO,SAACm5M,GAAD,OAAuBA,IAAsBtoM,KAInE,QACE,OAAOntC,IA0IX21O,sBApI4B,WAA4B,IAA3B31O,EAA0B,wDAAXC,EAAW,uCACvD,OAAQA,EAAOC,MACb,KAAKkgB,IACH,OAAO,EAET,KAAKjgB,IACH,OAAO,EAET,KAAKA,IACL,KAAKA,IACL,KAAKA,IACL,KAAKA,IACH,OAAO,EAET,QACE,OAAOH,IAuHXq+G,UAlHgB,WAA4B,IAA3Br+G,EAA0B,wDAAXC,EAAW,uCAC3C,OAAQA,EAAOC,MACb,KAAKkgB,IACH,OAAO,EAET,KAAKjgB,IACH,OAAO,EAET,KAAKA,IACL,KAAKA,IACH,OAAO,EAET,QACE,OAAOH,IAsGXs+G,WAjGiB,WAA4B,IAA3Bt+G,EAA0B,wDAAXC,EAAW,uCAC5C,OAAQA,EAAOC,MACb,KAAKkgB,IACH,OAAO,EAET,KAAKjgB,IACL,KAAKA,IACL,KAAKA,IACH,OAAO,EAET,KAAKA,IACL,KAAKA,IACL,KAAKA,IACL,KAAKA,IACL,KAAKA,IACL,KAAKA,IACH,OAAO,EAET,QACE,OAAOH,IA+EX41O,yBA1E+B,WAA2B,IAA1B51O,EAAyB,uDAAjB,KAAMC,EAAW,uCACzD,OAAQA,EAAOC,MACb,KAAKkgB,IACH,OAAO,KAET,KAAKjgB,IACH,IAAQ4B,EAAU9B,EAAOM,QAAjBwB,MACR,OAAOA,EAET,KAAK5B,IACL,KAAKA,IACL,KAAKA,IACL,KAAKA,IACH,OAAO,KAET,QACE,OAAOH,IA4DXy+G,aAvDmB,WAA2B,IAA1Bz+G,EAAyB,uDAAjB,KAAMC,EAAW,uCAC7C,OAAQA,EAAOC,MACb,KAAKkgB,IACH,OAAO,KAET,KAAKjgB,IACH,IAAQ4B,EAAU9B,EAAOM,QAAjBwB,MACR,OAAOA,EAET,KAAK5B,IACL,KAAKA,IACH,OAAO,KAET,QACE,OAAOH,IA0CX0+G,cArCoB,WAA2B,IAA1B1+G,EAAyB,uDAAjB,KAAMC,EAAW,uCAC9C,OAAQA,EAAOC,MACb,KAAKkgB,IACH,OAAO,KAET,KAAKjgB,IACL,KAAKA,IACL,KAAKA,IACH,IAAQ4B,EAAU9B,EAAOM,QAAjBwB,MACR,OAAOA,EAET,KAAK5B,IACL,KAAKA,IACL,KAAKA,IACL,KAAKA,IACL,KAAKA,IACL,KAAKA,IACH,OAAO,KAET,QACE,OAAOH,MAoBEq1O,MAGR,IAAM5yO,EAAc,SAACzC,GAAD,OAAWA,EAAMoe,UAAUi3N,sBAGzCQ,EAAyB,SAAC71O,EAAOmtC,EAAcC,GAC1D,MAAuB,eAAnBA,EACK3qC,EAAYzC,GAAOs1O,WAAWnoM,GACT,eAAnBC,EACF3qC,EAAYzC,GAAOu1O,WAAWpoM,QADhC,GAOI2oM,EAAoD,SAC/D91O,EACAsB,GAEA,OAPmD,SAACtB,GAAD,uBACnDyC,EAAYzC,GAAOw1O,uBADgC,aACnD,EAAoCxzN,KAAI,SAAC5T,GAAD,OAAQynO,EAAuB71O,EAAOoO,EAAI,iBAM3E2nO,CAAsC/1O,GAC1Cs8B,QAAO,SAACmG,GACP,OAAQ,OAACA,QAAD,IAACA,OAAD,EAACA,EAAYl9B,cAAe,OAACjE,QAAD,IAACA,OAAD,EAACA,EAAYiE,aACnC,OAAVk9B,QAAU,IAAVA,OAAA,EAAAA,EAAYl9B,eAAZ,OAA2BjE,QAA3B,IAA2BA,OAA3B,EAA2BA,EAAYiE,cACrCk9B,KAEPnG,QAAO,SAACmG,GACP,OAAQ,OAACA,QAAD,IAACA,OAAD,EAACA,EAAY/9B,kBAAmB,OAACpD,QAAD,IAACA,OAAD,EAACA,EAAYoD,iBACvC,OAAV+9B,QAAU,IAAVA,OAAA,EAAAA,EAAY/9B,mBAAZ,OAA+BpD,QAA/B,IAA+BA,OAA/B,EAA+BA,EAAYoD,kBACzC+9B,KAEPnG,QAAO,SAACmG,GACP,OAAQ,OAACA,QAAD,IAACA,OAAD,EAACA,EAAY79B,cAAe,OAACtD,QAAD,IAACA,OAAD,EAACA,EAAYsD,aACnC,OAAV69B,QAAU,IAAVA,OAAA,EAAAA,EAAY79B,eAAZ,OAA2BtD,QAA3B,IAA2BA,OAA3B,EAA2BA,EAAYsD,cACrC69B,KAEPnG,QAAO,SAACmG,GACP,OAAQ,OAACA,QAAD,IAACA,OAAD,EAACA,EAAY39B,iBAAkB,OAACxD,QAAD,IAACA,OAAD,EAACA,EAAYwD,gBACtC,OAAV29B,QAAU,IAAVA,OAAA,EAAAA,EAAY39B,kBAAZ,OAA8BxD,QAA9B,IAA8BA,OAA9B,EAA8BA,EAAYwD,iBACxC29B,MAOCuzM,EAAoD,SAC/Dh2O,EACAsB,GAEA,OAPmD,SAACtB,GAAD,uBACnDyC,EAAYzC,GAAO01O,uBADgC,aACnD,EAAoC1zN,KAAI,SAAC5T,GAAD,OAAQynO,EAAuB71O,EAAOoO,EAAI,iBAM3E6nO,CAAsCj2O,GAC1Cs8B,QAAO,SAACmG,GACP,OAAQ,OAACA,QAAD,IAACA,OAAD,EAACA,EAAYl9B,cAAe,OAACjE,QAAD,IAACA,OAAD,EAACA,EAAYiE,aACnC,OAAVk9B,QAAU,IAAVA,OAAA,EAAAA,EAAYl9B,eAAZ,OAA2BjE,QAA3B,IAA2BA,OAA3B,EAA2BA,EAAYiE,cACrCk9B,KAEPnG,QAAO,SAACmG,GACP,OAAQ,OAACA,QAAD,IAACA,OAAD,EAACA,EAAY/9B,kBAAmB,OAACpD,QAAD,IAACA,OAAD,EAACA,EAAYoD,iBACvC,OAAV+9B,QAAU,IAAVA,OAAA,EAAAA,EAAY/9B,mBAAZ,OAA+BpD,QAA/B,IAA+BA,OAA/B,EAA+BA,EAAYoD,kBACzC+9B,KAEPnG,QAAO,SAACmG,GACP,OAAQ,OAACA,QAAD,IAACA,OAAD,EAACA,EAAY79B,cAAe,OAACtD,QAAD,IAACA,OAAD,EAACA,EAAYsD,aACnC,OAAV69B,QAAU,IAAVA,OAAA,EAAAA,EAAY79B,eAAZ,OAA2BtD,QAA3B,IAA2BA,OAA3B,EAA2BA,EAAYsD,cACrC69B,KAEPnG,QAAO,SAACmG,GACP,OAAQ,OAACA,QAAD,IAACA,OAAD,EAACA,EAAY39B,iBAAkB,OAACxD,QAAD,IAACA,OAAD,EAACA,EAAYwD,gBACtC,OAAV29B,QAAU,IAAVA,OAAA,EAAAA,EAAY39B,kBAAZ,OAA8BxD,QAA9B,IAA8BA,OAA9B,EAA8BA,EAAYwD,iBACxC29B,MAKCyzM,EAAiC,SAACl2O,GAAD,OAAWyC,EAAYzC,GAAO21O,wB,+BCtW5E,0QAMavyM,EAAU,UAEVqY,EAAwB,SAAC3qC,EAAcswB,GAClD,IAAM9wB,EAAe,IAAIjE,IAQzB,OAPAg1B,IAAsB1wB,6BAA6BC,IAAON,GAC1DA,EAAa5D,iBAAiB,CAC5BwB,OAAQ,iBACRjO,OAAQ,MACR2N,WAAY,iBAEd0C,EAAa3D,iBAAiBy0B,GACvB9wB,EAAa9C,KAAb,UAAqB41B,EAArB,QAAoCtyB,IAGhC4qC,EAAoB,SAAC5qC,EAAcswB,GAC9C,IAAM9wB,EAAe,IAAIjE,IASzB,OARAg1B,IAAsB1wB,6BAA6BC,IAAON,GAC1DA,EAAa5D,iBAAiB,CAC5BwB,OAAQ,iBACRjO,OAAQ6Q,EAAQglC,SAAW,OAAS,SACpCznC,KAAMyC,EAAQ23M,iBACd76M,WAAY,iBAEd0C,EAAa3D,iBAAiBy0B,GACvB9wB,EAAa9C,KAAb,UAAqB41B,EAArB,SAAqCtyB,IAGjCgrC,EAAsB,SAAChrC,EAAcswB,GAChD,IAAM9wB,EAAe,IAAIjE,IASzB,OARAg1B,IAAsB1wB,6BAA6BC,IAAON,GAC1DA,EAAa5D,iBAAiB,CAC5B2B,KAAK,GAAD,OAAKyC,EAAQ23M,kBACjBv6M,OAAQ,iBACRjO,OAAQ,SACR2N,WAAY,iBAEd0C,EAAa3D,iBAAiBy0B,GACvB9wB,EAAa9C,KAAb,UAAqB41B,EAArB,WAAuCtyB,IAGnCkrC,EAA8B,SAAClrC,EAAcswB,GACxD,IAAM9wB,EAAe,IAAIjE,IASzB,OARAg1B,IAAsB1wB,6BAA6BC,IAAON,GAC1DA,EAAa5D,iBAAiB,CAC5B2B,KAAK,GAAD,OAAKyC,EAAQ23M,kBACjBv6M,OAAQ,iBACRjO,OAAQ,SACR2N,WAAY,iBAEd0C,EAAa3D,iBAAiBy0B,GACvB9wB,EAAa9C,KAAb,UAAqB41B,EAArB,yBAAqD,CAAE0S,SAAUhlC,EAAQglC,YAGrEmG,EAAiC,SAACnrC,EAAcswB,GAC3D,IAAM9wB,EAAe,IAAIjE,IASzB,OARAg1B,IAAsB1wB,6BAA6BC,IAAON,GAC1DA,EAAa5D,iBAAiB,CAC5B2B,KAAK,GAAD,OAAKyC,EAAQ23M,kBACjBv6M,OAAQ,iBACRjO,OAAQ,SACR2N,WAAY,iBAEd0C,EAAa3D,iBAAiBy0B,GACvB9wB,EAAa9C,KAAb,UAAqB41B,EAArB,4BAAwD,CAAE0S,SAAUhlC,EAAQglC,YAGxEqgM,EAA8B,SAACrlO,EAAcswB,GACxD,IAAM9wB,EAAe,IAAIjE,IASzB,OARAg1B,IAAsB1wB,6BAA6BC,IAAON,GAC1DA,EAAa5D,iBAAiB,CAC5B2B,KAAK,GAAD,OAAKyC,EAAQ23M,kBACjBv6M,OAAQ,iBACRjO,OAAQ,SACR2N,WAAY,iBAEd0C,EAAa3D,iBAAiBy0B,GACvB9wB,EAAanD,IAAb,UAAoBi2B,EAApB,oCAGIgzM,EAAmC,SAACtlO,EAAcswB,GAC7D,IAAM9wB,EAAe,IAAIjE,IASzB,OARAg1B,IAAsB1wB,6BAA6BC,IAAON,GAC1DA,EAAa5D,iBAAiB,CAC5B2B,KAAK,GAAD,OAAKyC,EAAQ23M,kBACjBv6M,OAAQ,iBACRjO,OAAQ,SACR2N,WAAY,iBAEd0C,EAAa3D,iBAAiBy0B,GACvB9wB,EAAa9C,KAAb,UAAqB41B,EAArB,qCAAiEtyB,K,2MChDpEgzM,EAAmB,SAACztM,GACxB,IAAMzF,EAAQu7H,aAAY,SAACnsI,GAAD,OAAWA,KAC/BqpC,EAAgB7nB,UAAsB5Q,GAG1CxC,EAyBEiI,EAzBFjI,GACAC,EAwBEgI,EAxBFhI,KACA87K,EAuBE9zK,EAvBF8zK,iBACAiwB,EAsBE/jM,EAtBF+jM,gBAJF,EA0BI/jM,EArBFggO,qBALF,MAKkB,GALlB,EAME9zH,EAoBElsG,EApBFksG,MACAuC,EAmBEzuG,EAnBFyuG,UAPF,EA0BIzuG,EAlBF8C,kBARF,WA0BI9C,EAjBF8wG,mBATF,WA0BI9wG,EAhBFkkM,oBAVF,WA0BIlkM,EAfFoiL,iBAXF,SAYErvF,EAcE/yF,EAdF+yF,SACAgd,EAaE/vG,EAbF+vG,QAbF,EA0BI/vG,EAZFigO,qBAdF,MAckB,EAdlB,EAeEC,EAWElgO,EAXFkgO,cACAC,EAUEngO,EAVFmgO,WAhBF,EA0BIngO,EATFogO,qBAjBF,MAiBkB,KAjBlB,IA0BIpgO,EARFqgO,sCAlBF,WAkBmCpoO,EAlBnC,IA0BI+H,EAPFsgO,2BAnBF,WAmBwBroO,EAnBxB,IA0BI+H,EANFugO,0BApBF,WAoBuBtoO,EApBvB,IA0BI+H,EALF9Q,mBArBF,MAqBeic,wBAAoC5Q,GArBnD,KA0BIyF,EAJF3R,uBAtBF,OAsBmB8c,4BAAwC5Q,GAtB3D,MA0BIyF,EAHFwgO,wBAvBF,OAuBoB,GAvBpB,MA0BIxgO,EAFF67L,cAxBF,YAwBU5jM,EAxBV,MA0BI+H,EADFwmK,cAzBF,YAyBUvuK,EAzBV,GA2BM7E,GAAOG,cACP4e,GAAWipI,cACjB,GAAmDhlB,mBAAS2tE,GAA5D,qBAAOllC,GAAP,MAAyB4hE,GAAzB,MAEA,GAA2DrqG,oBAAS,GAApE,qBAAOsqG,GAAP,MAAgCC,GAAhC,MACA,GAAuCvqG,mBAAc,MAArD,qBAAOwqG,GAAP,MAAmBC,GAAnB,MAEMC,GAAuB,SAACv2M,GAC5BpY,GAASwD,IAA6B4U,IACtCo2M,IAAwB,IAGpBI,GAA0BjrG,YAAYkrG,KAEtCC,GAA4B,SAAC1sN,GACjC,OAAIA,EACK,2BACFA,GADL,IAEExc,GAAIwc,EAAQgW,UACZjqB,MAAyB,IAAlB2/N,EAAsB1rN,EAAQo6E,MAAQp6E,EAAQgW,UACrD2hF,MACE33F,EAAQkW,cAAgBlW,EAAQo6E,MAAhC,UACOp6E,EAAQkW,YADf,aAC+BlW,EAAQo6E,MADvC,KAEIp6E,EAAQkW,YACdggJ,KAAMq2D,GACN5+C,eACE,qCACE,cAAC,IAAD,CACErrD,UAAW,MACXn8B,OAAM,gCAA2BnmF,EAAQgW,UAAnC,YAAgDxyB,GAFxD,SAIG3E,GAAK0E,cAAc,CAClBC,GAC4B,IAA1Bwc,EAAQ0rN,cACJ,2BAC0B,IAA1B1rN,EAAQ0rN,cACR,+BACA,2BAGV,cAAC,IAAD,CACEznO,KAC4B,IAA1B+b,EAAQ0rN,cACJ,eAC0B,IAA1B1rN,EAAQ0rN,cACR,WACA,oBAENr8N,KAAM,GACN7L,GAAE,gCAA2Bwc,EAAQgW,UAAnC,YAAgDxyB,UAKrD,IAGHyc,GAAWshH,YAAYkrG,KACvBE,GAAqB1sN,GAAS7I,KAAI,SAACrZ,GAAD,OAAOA,EAAEq8F,SAiBjD,GAAiE,WAC/D,MAAyDwyI,YAAuBjyO,IAAxEumB,EAAR,EAAQA,iBACR,MAAO,CACL2rN,4BAFF,EAA0BC,2BAIxBC,uBAAwB7rN,EAAiB9J,KAAI,SAACrZ,GAAD,mBAAC,eAAYA,GAAb,IAAgB2tO,cAAe,QALf,GAAzDqB,GAAR,GAAQA,uBAsBR,IAtBA,GAAgCF,4BAsByC,WACvE,MAAiCG,YAAelzO,IAAxCmmB,EAAR,EAAQA,SAAUgqJ,EAAlB,EAAkBA,WAClB,MAAO,CAELgjE,2BAA4BhtN,EAAS7I,KAAI,SAACrZ,GAAD,mBAAC,eAAYA,GAAb,IAAgB2tO,cAAe,OACxEwB,gCAAiCjjE,GALoC,IAAjEgjE,GAAR,GAAQA,2BAsCFE,IAtCN,GAAoCD,gCAWP,SAC3BE,EACAlsN,EACAmsN,GAEA,IAAMC,EAA4BF,EAAah2N,KAAI,SAACrZ,GAAD,OAAOA,EAAEq8F,SAEtDmzI,EAA4B,YAAOH,GAEnCI,EAAyB,SAACxtN,GAC1BstN,EAAW1yO,SAASolB,EAAQo6E,SAChCkzI,EAAW17N,KAAKoO,EAAQo6E,OACxBmzI,EAAiB37N,KAAKoO,KAYxB,MARI,CAAC,IAAK,KAAM,MAAM26E,QAAlB,OAA0Bl8D,QAA1B,IAA0BA,OAA1B,EAA0BA,EAAerkC,gBAAkB,IAC7C,OAAhB8mB,QAAgB,IAAhBA,KAAkBqC,QAAQiqN,IAGxB,CAAC,IAAK,IAAK,KAAM,MAAM7yI,QAAvB,OAA+Bl8D,QAA/B,IAA+BA,OAA/B,EAA+BA,EAAerkC,iBAC5B,OAApBizO,QAAoB,IAApBA,KAAsB9pN,QAAQiqN,IAGhC,OAAOD,QAAP,IAAOA,OAAP,EAAOA,EAAkBn2N,IAAIs1N,IAGIe,CACjCxtN,GACA8sN,GACAE,KAGIS,GACc,IAAlBhC,QACwBhoO,IAApB8rM,GAAqD,OAApBA,GAAgD,KAApBA,EAC3DA,EACG51M,MAAM,KACN83B,QAAO,SAAC3zB,GAAD,OAAQ4uO,GAAmB/xO,SAASmD,MAC3C2zB,QACC,SAACi8M,GAAD,OAGmE,IAFjER,GACG/qC,OAAOqpC,GACP/5M,QAAO,SAAC1R,GAAD,OAAaA,EAAQxc,KAAOmqO,KAAgBvvN,UAEzDhH,KAAI,SAACw2N,GAAD,mBAAC,eACkB,IAAlBlC,EAAsB,GAAKkC,GAD5B,IAEHpqO,GAAsB,IAAlBkoO,EAAsBkC,EAAeA,EAAa53M,UACtDjqB,MAAyB,IAAlB2/N,EAAsBkC,EAAeA,EAAa53M,UACzD2hF,MACoB,IAAlB+zH,EACIkC,EACAA,EAAa13M,cAAgB03M,EAAaxzI,MAA1C,UACGwzI,EAAa13M,YADhB,aACgC03M,EAAaxzI,MAD7C,KAEAwzI,EAAa13M,iBAGzB,GAEN,GAAoC2rG,mBAASzwG,KAAKD,OAAlD,qBAAO+rM,GAAP,MAAmBC,GAAnB,MACA,GAA8Ct7F,wBACvBn+H,IAArB4mK,IACuB,OAArBA,IACqB,KAArBA,IACC/7J,EAKC,KAJA4+N,GACG/qC,OAAOqpC,GACPrpC,OAAOsrC,IACPh8M,QAAO,SAAC1R,GAAD,MAAa,UAAGA,EAAQgW,aAAgBs0I,MAAkB,IAR1E,qBAAOujE,GAAP,MAAwBC,GAAxB,MAaAlzH,qBAAU,WACRsxH,GAAuB18B,GACvB2tB,GAAc/rM,KAAKD,SAClB,CAACq+K,IAEJ50F,qBAAU,YACJ0vD,IAAoBqlC,IAAc/xL,GAASwD,IAAqC,SACnF,CAACkpJ,KAEJ1vD,qBAAU,WAES,OAAfyxH,SACe3oO,IAAf2oO,KACe,IAAf99N,IACc,IAAds/K,IAEAq+C,GAAuB,GAAD,OAAIG,GAAWr2M,YACjCi8I,IAAOA,GAAM,2BAAMq1B,GAAQA,KAAU,IAAzB,kBAA+B7jM,EAA/B,UAAyC4oO,GAAWr2M,iBAErE,CAACq2M,KAEJzxH,qBAAU,WAEsB,OAA5B4xH,SAC4B9oO,IAA5B8oO,KACe,IAAfj+N,IACc,IAAds/K,GAC6C,kBAAtC2+C,GAAwBx2M,WAChB,OAAfq2M,SACe3oO,IAAf2oO,KAEAH,GAAuB,GAAD,OAAIM,GAAwBx2M,YAC9Ci8I,IACFA,GAAM,2BAAMq1B,GAAQA,KAAU,IAAzB,kBAA+B7jM,EAA/B,UAAyC+oO,GAAwBx2M,iBAEzE,QAACw2M,SAAD,IAACA,QAAD,EAACA,GAAyBx2M,YAO7B,OACE,qCACE,cAAC,IAAD,CACEwlF,QAASA,EACT+jE,iBAAkBA,EAClB97K,KAAMA,EACNm8K,aAAc4vB,EACdxxG,MAAO,CAAEQ,SAAUA,GACnB2iF,OAAQ,gBAAGrnE,EAAH,EAAGA,MAAOimE,EAAV,EAAUA,WAAV,OACN,cAAC,IAAD,CACEjmE,MAAOA,EACPC,WAAYgmE,EACZv8K,GAAIA,EACJg7F,SAAUA,EACV+d,YAAaA,EACbhuG,WAAYA,EACZ2rG,UAAWA,EAEXiB,iBACE5sG,OAAa7K,EACX,qCACE,cAAC,IAAD,CAAqB4+H,UAAW,MAAOn8B,OAAQ,4BAA8B3iG,EAA7E,SACG3E,GAAK0E,cAAc,CAAEC,GAAI,2BAE5B,cAAC,IAAD,CACEA,GAAI,4BAA8BA,EAClCy0G,MAAO,CAAEm1D,OAAQ,WACjBh1D,UAAW,MACX6pB,QAAS,gBAEgBv+H,IAArB4mK,IACqB,OAArBA,IAC4B,KAA5BA,GAAiB3sE,SAEjByuI,IAAwB,GACpBL,GAAqBA,IACzB+B,QACuBpqO,IAArB4mK,IACuB,OAArBA,IACqB,KAArBA,IACC/7J,EAKC,KAJA4+N,GACG/qC,OAAOqpC,GACPrpC,OAAOsrC,IACPh8M,QAAO,SAAC1R,GAAD,MAAa,UAAGA,EAAQgW,aAAgBs0I,MAAkB,MApBhF,SA0BE,cAAC,IAAD,CAAMrmK,KAAM,eAKpB+4G,gBACEzuG,OAAa7K,EACX,qCACE,cAAC,IAAD,CAAqB4+H,UAAW,MAAOn8B,OAAQ,2BAA6B3iG,EAA5E,SACG3E,GAAK0E,cAAc,CAAEC,GAAI,0BAE5B,cAAC,IAAD,CACEA,GAAI,2BAA6BA,EACjCy0G,MAAO,CAAEm1D,OAAQ,WACjBh1D,UAAW,MACX6pB,QAAS,WACH+pG,GAAoBA,IACxBI,IAAwB,GACxB0B,GAAmB,OAPvB,SAUE,cAAC,IAAD,CAAM7pO,KAAM,cAKpBwqL,SAAU,SAACxlF,GAAD,OACRrrF,GACEwD,IAAkC,CAChC8U,YAAa+yE,EAAMA,EAAM7qF,OAAS,GAAGrS,MACrCquF,MAAO6O,EAAMA,EAAM7qF,OAAS,GAAGrS,MAC/BiqB,UAAWm3K,kBAIjB9wF,SAAU,SAACpT,GACT,IAAI8kI,EAAS,GACbx/N,EACI06F,EAAM7xF,KAAI,SAACgjF,GAAD,OAAY2zI,EAASA,EAAS3zI,EAAM52F,GAAK,OAClDuqO,EAAM,UAAMA,GAAN,YAAyBrqO,IAAVulG,GAAiC,OAAVA,EAAiBA,EAAMzlG,GAAK,GAAlE,KACX0oO,GAAuB6B,EAAOl1I,MAAM,GAAI,KAE1Cm1I,eAAgB1jE,GAChBh1K,KAAM,SACN2kH,QAASkzH,GAAe/qC,OAAOqpC,GAAerpC,OAAOsrC,IACrD/1H,MACEA,GACA94G,GAAK0E,cAAc,CACjBC,GAAI,sBAGR24G,YAAat9G,GAAK0E,cAAc,CAAEC,GAAI,yBACtCqqL,UAAWt/K,GAAcs/K,GArFpBqvC,OAyFX,cAAC,IAAD,CACE+Q,gBAAmC,IAAlBvC,EACjBwC,oBAAuC,IAAlBxC,EACrByC,YAA+B,IAAlBzC,EACbE,WAAYA,EACZD,cAAeA,EACfkC,gBAAiBt/N,OAAa7K,EAAYmqO,GAC1C9mC,kBAAmBolC,GACnBL,+BAAgC,WAC9BM,IAAwB,GACpBN,GAAgCA,KAEtCD,cA3HqB,SAAC9/N,GACtB8/N,GAAeA,EAAc9/N,GACjCugO,GAAiBvgO,IA0HbkgO,gBAAiBA,GACjBp+C,WACIt/K,GAAcs/K,GAA+B,IAAlB69C,GAA2C,IAAlBA,GAAuB79C,EAE/ElzL,WAAYA,GACZb,eAAgBA,GAChBs0O,oBAAkB,EAClBC,mBAAoB9/N,GAAgC,IAAlBm9N,QAM1CxyB,EAAiB76F,aAAe,CAC9BnE,WAAW,GAGEg/F,O,uYCvBT9kM,EAAS3e,YAAgB,CAC7Bs5G,KAtZW,WAAyB,IAAxB35G,EAAuB,uDAAf,GAAIC,EAAW,uCACnC,OAAQA,EAAOC,MAEb,KAAKC,IACH,MAA4BF,EAAOM,QAA3B2d,EAAR,EAAQA,SAAUshB,EAAlB,EAAkBA,MACZrf,EAAW,GASjB,OARAqf,EAAMrR,SAAQ,SAAC4rB,GACb55B,EAAS45B,GAAT,qCACE1rB,YAAY,GACTruB,EAAM+5C,IACN77B,EAAS67B,IAHd,IAIE5jC,aAAa,OAGVgK,EAGT,KAAKhgB,IACH,MAA4BF,EAAOM,QAA3B2d,EAAR,EAAQA,SAAUshB,EAAlB,EAAkBA,MACZrf,EAAQ,eAAQngB,GAStB,OARAw/B,EAAMrR,SAAQ,SAAC4rB,GACb55B,EAAS45B,GAAT,qCACE1rB,YAAY,GACTruB,EAAM+5C,IACN77B,EAAS67B,IAHd,IAIE5jC,aAAa,OAGVgK,EAGT,KAAKhgB,IACH,MAAyBF,EAAOM,QAAxB0tC,EAAR,EAAQA,MAAO8K,EAAf,EAAeA,MACT54B,EAAW69F,IAAKh+G,EAAOiuC,GAM7B,OALA9tB,EAAS44B,EAAMgB,SAAf,uCACK/5C,EAAMiuC,IACN8K,GAFL,IAGE5iC,aAAa,IAERgK,EAGT,KAAKhgB,IACH,IAAM44C,EAAQ94C,EAAOM,QACrB,OAAO,2BACFP,GADL,kBAEG+4C,EAAMgB,QAFT,uCAGOikE,IAAKh+G,EAAM+4C,EAAMgB,SAAU,CAAC,cAC5BikE,IAAKjlE,EAAO,CAAC,cAJpB,IAKI5iC,aAAa,MAMnB,KAAKhW,IACH,IAAM44C,EAAQ94C,EAAOM,QACf4f,EAAQ,eAAQngB,GAMtB,OALAmgB,EAAS44B,EAAMgB,SAAf,yBACE1rB,YAAY,GACT0qB,GAFL,IAGE5iC,aAAa,IAERgK,EAET,KAAKhgB,IACH,IAAM44C,EAAQ94C,EAAOM,QACrB,OAAO,2BACFP,GADL,kBAEG+4C,EAAMgB,QAFT,uCAGO/5C,EAAM+4C,EAAMgB,UAHnB,IAIII,SAAUn6C,EAAM+4C,EAAMgB,UACnBhB,GALP,IAMI5iC,aAAa,MAMnB,KAAKhW,IACH,IAAQ8tC,EAAUhuC,EAAOM,QAAjB0tC,MACR,OAAIjuC,EAAMiuC,GACD+vE,IAAKh+G,EAAOiuC,GAEdjuC,EAET,KAAKG,IACH,IAAQg6C,EAAal6C,EAAOM,QAApB45C,SACR,OAAO,2BACFn6C,GADL,kBAEGm6C,EAASJ,QAFZ,uCAGOikE,IAAKh+G,EAAMm6C,EAASJ,SAAU,CAAC,cAC/BI,GAJP,IAKIhkC,aAAa,MAMnB,KAAKhW,IACH,IAAQ45C,EAAY95C,EAAOM,QAAnBw5C,QACR,OAAOikE,IAAKh+G,EAAO+5C,GAIrB,KAAK55C,IACH,IAAM45C,EAAU95C,EAAOM,QACjB4f,EAAQ,2BACTngB,GADS,kBAEX+5C,EAFW,2BAGP/5C,EAAM+5C,IAHC,IAIV1rB,YAAY,MAGhB,OAAOlO,EAGT,KAAKhgB,IACH,IAAM45C,EAAU95C,EAAOM,QACvB,OAAO,2BACFP,GADL,kBAEG+5C,EAFH,2BAGO/5C,EAAM+5C,IAHb,IAII1rB,YAAY,MAKlB,KAAKluB,IACH,IAAM+4O,EAAWj5O,EAAOM,QAClB4f,EAAQ,eAAQngB,GAiBtB,OAhBuB,GAAnBk5O,EAASlwN,OACXmF,IAAQnuB,GAAO,SAAC+4C,EAAYgB,GAC1B55B,EAAS45B,GAAT,2BACKhB,GADL,IAEE1qB,YAAY,OAIhB6qN,EAAS/qN,SAAQ,SAAC4rB,GAChB55B,EAAS45B,GAAT,2BACK/5C,EAAM+5C,IADX,IAEE1rB,YAAY,OAKXlO,EAGT,KAAKhgB,IACH,IAAM+4O,EAAWj5O,EAAOM,QAClB4f,EAAQ,eAAQngB,GAiBtB,OAhBuB,GAAnBk5O,EAASlwN,OACXmF,IAAQnuB,GAAO,SAAC+4C,EAAYgB,GAC1B55B,EAAS45B,GAAT,2BACKhB,GADL,IAEE1qB,YAAY,OAIhB6qN,EAAS/qN,SAAQ,SAAC4rB,GAChB55B,EAAS45B,GAAT,2BACK/5C,EAAM+5C,IADX,IAEE1rB,YAAY,OAKXlO,EAIT,QACE,OAAOngB,IAyOXw/B,MApOY,WAAyB,IAAxBx/B,EAAuB,uDAAf,GAAIC,EAAW,uCACpC,OAAQA,EAAOC,MAEb,KAAKC,IACH,IAAQq/B,EAAUv/B,EAAOM,QAAjBi/B,MACR,OAAOs6E,IAAMt6E,GAGf,KAAKr/B,IACH,IAAQq/B,EAAUv/B,EAAOM,QAAjBi/B,MACR,OAAO+yB,IAAK,GAAD,mBAAKvyD,GAAL,YAAew/B,KAG5B,KAAKr/B,IACH,MAAyBF,EAAOM,QAAxB0tC,EAAR,EAAQA,MAAO8K,EAAf,EAAeA,MACf,OAAO/4C,EAAMgiB,KAAI,SAAC+3B,GAAD,OAAcA,IAAY9L,EAAQ8K,EAAMgB,QAAUA,KAGrE,KAAK55C,IACH,IAAQ45C,EAAY95C,EAAOM,QAAnBw5C,QACR,OAAO/5C,EAAMs8B,QAAO,SAAC68M,GAAD,OAAkBA,IAAiBp/L,KAIzD,KAAK55C,IACH,IAAM44C,EAAQ94C,EAAOM,QACrB,MAAM,GAAN,mBAAWP,GAAX,CAAkB+4C,EAAMgB,UAI1B,KAAK55C,IACH,IAAQ8tC,EAAUhuC,EAAOM,QAAjB0tC,MACR,OAAOjuC,EAAMs8B,QAAO,SAAC68M,GAAD,OAAkBA,IAAiBlrM,KAIzD,QACE,OAAOjuC,IAgMXm+G,sBA3K4B,WAA4B,IAA3Bn+G,EAA0B,wDAAXC,EAAW,uCACvD,OAAQA,EAAOC,MACb,KAAKC,IACH,OAAO,EAET,KAAKA,IACL,KAAKA,IACH,OAAO,EAET,QACE,OAAOH,IAkKX47G,eA3LqB,WAA4B,IAA3B57G,EAA0B,wDAAXC,EAAW,uCAChD,OAAQA,EAAOC,MACb,KAAKC,IACH,OAAO,EAET,KAAKA,IACL,KAAKA,IACH,OAAO,EAET,QACE,OAAOH,IAkLXo+G,SA9Je,WAA4B,IAA3Bp+G,EAA0B,wDAAXC,EAAW,uCAC1C,OAAQA,EAAOC,MACb,KAAKC,IACH,OAAO,EAET,KAAKA,IACL,KAAKA,IACH,OAAO,EAET,QACE,OAAOH,IAqJXq+G,UAhJgB,WAA4B,IAA3Br+G,EAA0B,wDAAXC,EAAW,uCAC3C,OAAQA,EAAOC,MACb,KAAKC,IACH,OAAO,EAET,KAAKA,IACL,KAAKA,IACH,OAAO,EAET,QACE,OAAOH,IAuIXs+G,WAlIiB,WAA4B,IAA3Bt+G,EAA0B,wDAAXC,EAAW,uCAC5C,OAAQA,EAAOC,MACb,KAAKC,IACH,OAAO,EAET,KAAKA,IACL,KAAKA,IACH,OAAO,EAET,QACE,OAAOH,IAyHXu+G,yBApG+B,WAA2B,IAA1Bv+G,EAAyB,uDAAjB,KAAMC,EAAW,uCACzD,OAAQA,EAAOC,MACb,KAAKC,IACH,IAAQ4B,EAAU9B,EAAOM,QAAjBwB,MACR,OAAOA,EAET,KAAK5B,IACL,KAAKA,IACH,OAAO,KAET,QACE,OAAOH,IA0FX87G,kBArHwB,WAA2B,IAA1B97G,EAAyB,uDAAjB,KAAMC,EAAW,uCAClD,OAAQA,EAAOC,MACb,KAAKC,IACH,IAAQ4B,EAAU9B,EAAOM,QAAjBwB,MACR,OAAOA,EAET,KAAK5B,IACL,KAAKA,IACH,OAAO,KAET,QACE,OAAOH,IA2GXw+G,YAtFkB,WAA2B,IAA1Bx+G,EAAyB,uDAAjB,KAAMC,EAAW,uCAC5C,OAAQA,EAAOC,MACb,KAAKC,IACH,IAAQ4B,EAAU9B,EAAOM,QAAjBwB,MACR,OAAOA,EAET,KAAK5B,IACL,KAAKA,IACH,OAAO,KAET,QACE,OAAOH,IA4EXy+G,aAvEmB,WAA2B,IAA1Bz+G,EAAyB,uDAAjB,KAAMC,EAAW,uCAC7C,OAAQA,EAAOC,MACb,KAAKC,IACH,IAAQ4B,EAAU9B,EAAOM,QAAjBwB,MACR,OAAOA,EAET,KAAK5B,IACL,KAAKA,IACH,OAAO,KAET,QACE,OAAOH,IA6DX0+G,cAxDoB,WAA2B,IAA1B1+G,EAAyB,uDAAjB,KAAMC,EAAW,uCAC9C,OAAQA,EAAOC,MACb,KAAKC,IACH,IAAQ4B,EAAU9B,EAAOM,QAAjBwB,MACR,OAAOA,EAET,KAAK5B,IACL,KAAKA,IACH,OAAO,KAET,QACE,OAAOH,IA8CXo5O,gBAzCsB,WAA2B,IAA1Bp5O,IAAyB,yDAAXC,EAAW,uCAChD,OAAQA,EAAOC,MACb,KAAKC,IACH,OAAOF,EAAOM,QAEhB,KAAKJ,IACH,OAAO,EAET,QACE,OAAOH,IAiCXq5O,sBA5B4B,WAA2B,IAA1Br5O,IAAyB,yDAAXC,EAAW,uCACtD,OAAQA,EAAOC,MACb,KAAKC,IACH,OAAOF,EAAOM,QAEhB,KAAKJ,IACH,OAAO,EAET,QACE,OAAOH,MAsBEgf,MAGR,IAAMvc,EAAc,SAACzC,GAAD,OAAWA,EAAMgf,QAG/Bs6N,EAAW,SAACt5O,EAAO+5C,GAAR,OAAoBt3C,EAAYzC,GAAO25G,KAAK5/D,IACvDw/L,EAAgB,SAACv5O,GAAD,OAC3ByC,EAAYzC,GACTw/B,MAAMxd,KAAI,SAAC5T,GAAD,OAAQkrO,EAASt5O,EAAOoO,MAClCkuB,QAAO,SAACyc,GAAD,OAAWA,EAAMygM,YAAc,MAE9BC,EAA2B,SAACz5O,EAAOsB,GAAR,OACtCi4O,EAAcv5O,GAAOs8B,QACnB,SAACyc,GAAD,OACEz3C,KACEA,EAAWiE,YAAcjE,EAAWiE,aAAewzC,EAAMxzC,eACzDjE,EAAWoD,gBAAkBpD,EAAWoD,iBAAmBq0C,EAAMr0C,mBACjEpD,EAAWsD,YAActD,EAAWsD,aAAem0C,EAAMn0C,eACzDtD,EAAWwD,eAAiBxD,EAAWwD,gBAAkBi0C,EAAMj0C,mBAW1D40O,EAAmB,SAAC15O,GAC/B,IAAM25O,EAAiBJ,EAAcv5O,GAAOs8B,QAAO,SAACyc,GAAD,OAAWA,EAAM1qB,cAEpE,OAA8B,IAA1BsrN,EAAe3wN,OAAqB2wN,EAAe,GAE3C,MAGDC,EAAoB,SAAC55O,GAAD,OAAWyC,EAAYzC,GAAOo5O,iBAClDS,EAA0B,SAAC75O,GAAD,OAAWyC,EAAYzC,GAAOq5O,uBAGxDS,EAA8B,SAAC95O,GAAD,OAAWyC,EAAYzC,GAAOm+G,uBAC5D47H,EAAuB,SAAC/5O,GAAD,OAAWyC,EAAYzC,GAAO47G,iB,8BC1dlE,mHAEao+H,EAAgC,SAACz8M,GAAD,MAAc,CACzDr9B,KAAMC,IACNI,QAASg9B,IAEE08M,EAAmC,SAAC/7N,EAAUshB,GAAX,MAAsB,CACpEt/B,KAAMC,IACNI,QAAS,CACP2d,WACAshB,WAGS06M,EAA+B,eAC1Cn4O,EAD0C,uDAClC,CAAE+U,aAAc,QAASsL,YAAa,KADJ,MAEtC,CACJliB,KAAMC,IACNI,QAAS,CACPwB,Y,yKC8FWo4O,IAjGW,SAAC9jO,GACzB,MASIA,EARF+jO,yBADF,WASI/jO,EAPFgkO,4BAFF,SAIEjpF,GAKE/6I,EANF8wG,YAME9wG,EALF+6I,kBAJF,EASI/6I,EAJFixN,mBALF,SAMEx5L,EAGEz3B,EAHFy3B,WACA42E,EAEEruG,EAFFquG,MAGIj7G,GAVN,YASI4M,EATJ,kHAUazM,eACL4V,EAAc2sH,aAAY,SAACnsI,GAAD,MAAY,CAC5Cwf,UAAW8nN,EACPgT,IAA8Ct6O,EAAO8tC,GACrDwsM,IAAmCt6O,OAHjCwf,UAKR,EAA4CitH,oBAAkB,GAA9D,mBAAO8tG,EAAP,KAAwBC,EAAxB,KACA,EAAgD/tG,wBAAcn+H,GAA9D,mBAAOmsO,EAAP,KAAyBC,EAAzB,KAEMC,EAAcP,EAAqB,QAAU,SACnD,OACE,qCACE,cAAC,IAAD,CAAejpF,cAAY,EAACC,iBAAkBA,IAC9C,cAAC,IAAD,2BACM/6I,GADN,IAEEwuG,QACErlG,EAAUwC,KAAI,SAACyqC,GAAD,MAAe,CAC3B91C,MAAO81C,EAASG,WAChB21D,MAAO91D,EAASI,kBACX,GAETz+C,GAAM,mBAAqBusO,EAC3Bp4H,MAAO94G,EAAK0E,cAAc,CAAEC,GAAI,uBAChC24G,YAAat9G,EAAK0E,cAAc,CAAEC,GAAI,6BACtCw5G,gBACEwyH,EACE,qCACG11H,EAAM/tG,OACL,eAAC,IAAD,CACEvI,GAAI,eACJy0G,MAAO,CAAEm1D,OAAQ,WACjBh1D,UAAW,MACX6pB,QAAS,WACP6tG,EAAoB,CAAE9tL,WAAY83D,EAAM/tG,QACxC6jO,GAAiB,IANrB,UASE,cAAC,IAAD,CACEttG,UAAU,MACVn8B,OAAQ,eACRs8B,QAAQ,cAHV,SAKE,cAAC,IAAD,CACEj/H,GAAI,eACJ+uB,OAAQ,CAAExkB,WAAYlP,EAAK0E,cAAc,CAAEC,GAAI,4BAGnD,cAAC,IAAD,CAAO6L,KAAM,QAGjB,eAAC,IAAD,CACE7L,GAAI,cACJy0G,MAAO,CAAEm1D,OAAQ,WACjBh1D,UAAW,MACX6pB,QAAS,WACP6tG,OAAoBpsO,GACpBksO,GAAiB,IANrB,UASE,cAAC,IAAD,CAAqBttG,UAAU,MAAMn8B,OAAQ,cAAes8B,QAAQ,cAApE,SACE,cAAC,IAAD,CACEj/H,GAAI,cACJ+uB,OAAQ,CAAExkB,WAAYlP,EAAK0E,cAAc,CAAEC,GAAI,4BAGnD,cAAC,IAAD,CAAM6L,KAAM,WAIhB,gCAIN,cAAC,IAAD,CACEwyC,SAAUguL,EACVJ,qBAAsBA,EACtB1oC,kBAAmB4oC,EACnBK,gCAAiC,WAC/BF,OAAoBpsO,GAtECksO,GAAiB,W,uTCgW1C17N,EAAOze,YAAgB,CAC3Bs5G,KA1XW,WAAyB,IAAxB35G,EAAuB,uDAAf,GAAIC,EAAW,uCACnC,OAAQA,EAAOC,MAEb,KAAKC,IACH,MAA4BF,EAAOM,QAA3B2d,EAAR,EAAQA,SAAUshB,EAAlB,EAAkBA,MACZrf,EAAW,GASjB,OARAqf,EAAMrR,SAAQ,SAACgpB,GACbh3B,EAASg3B,GAAT,qCACE9oB,YAAY,GACTruB,EAAMm3C,IACNj5B,EAASi5B,IAHd,IAIEhhC,aAAa,OAGVgK,EAGT,KAAKhgB,IACH,MAA4BF,EAAOM,QAA3B2d,EAAR,EAAQA,SAAUshB,EAAlB,EAAkBA,MACZrf,EAAQ,eAAQngB,GAStB,OARAw/B,EAAMrR,SAAQ,SAACgpB,GACbh3B,EAASg3B,GAAT,qCACE9oB,YAAY,GACTruB,EAAMm3C,IACNj5B,EAASi5B,IAHd,IAIEhhC,aAAa,OAGVgK,EAGT,KAAKhgB,IACH,MAAuBF,EAAOM,QAAtB0tC,EAAR,EAAQA,MAAOsI,EAAf,EAAeA,IACTp2B,EAAW69F,IAAKh+G,EAAOiuC,GAM7B,OALA9tB,EAASo2B,EAAIqoD,WAAb,uCACK5+F,EAAMiuC,IACNsI,GAFL,IAGEpgC,aAAa,IAERgK,EAGT,KAAKhgB,IACH,IAAMo2C,EAAMt2C,EAAOM,QACnB,OAAO,2BACFP,GADL,kBAEGu2C,EAAIY,MAFP,uCAGO6mE,IAAKh+G,EAAMu2C,EAAIqoD,WAAY,CAAC,YAC5Bof,IAAKznE,EAAK,CAAC,YAJlB,IAKIpgC,aAAa,MAMnB,KAAKhW,IACH,IAAMo2C,EAAMt2C,EAAOM,QACb4f,EAAQ,eAAQngB,GAMtB,OALAmgB,EAASo2B,EAAIY,OAAb,yBACE9oB,YAAY,GACTkoB,GAFL,IAGEpgC,aAAa,IAERgK,EAET,KAAKhgB,IACH,IAAMo2C,EAAMt2C,EAAOM,QACnB,OAAO,2BACFP,GADL,kBAEGu2C,EAAIY,MAFP,uCAGOn3C,EAAMu2C,EAAIY,QAHjB,IAIII,OAAQv3C,EAAMu2C,EAAIY,QACfZ,GALP,IAMIpgC,aAAa,MAMnB,KAAKhW,IACH,IAAQ8tC,EAAUhuC,EAAOM,QAAjB0tC,MACR,OAAIjuC,EAAMiuC,GACD+vE,IAAKh+G,EAAOiuC,GAEdjuC,EAET,KAAKG,IACH,IAAQo3C,EAAWt3C,EAAOM,QAAlBg3C,OACR,OAAO,2BACFv3C,GADL,kBAEGu3C,EAAOJ,MAFV,uCAGO6mE,IAAKh+G,EAAMu3C,EAAOJ,OAAQ,CAAC,YAC3BI,GAJP,IAKIphC,aAAa,MAMnB,KAAKhW,IACH,IAAQg3C,EAAUl3C,EAAOM,QAAjB42C,MACR,OAAO6mE,IAAKh+G,EAAOm3C,GAIrB,KAAKh3C,IACH,IAAMg3C,EAAQl3C,EAAOM,QACf4f,EAAQ,2BACTngB,GADS,kBAEXm3C,EAFW,2BAGPn3C,EAAMm3C,IAHC,IAIV9oB,YAAY,MAGhB,OAAOlO,EAGT,KAAKhgB,IACH,IAAMg3C,EAAQl3C,EAAOM,QACrB,OAAO,2BACFP,GADL,kBAEGm3C,EAFH,2BAGOn3C,EAAMm3C,IAHb,IAII9oB,YAAY,MAKlB,KAAKluB,IACH,IAAMwyK,EAAS1yK,EAAOM,QAChB4f,EAAQ,eAAQngB,GAiBtB,OAhBqB,GAAjB2yK,EAAO3pJ,OACTmF,IAAQnuB,GAAO,SAACu2C,EAAUY,GACxBh3B,EAASg3B,GAAT,2BACKZ,GADL,IAEEloB,YAAY,OAIhBskJ,EAAOxkJ,SAAQ,SAACgpB,GACdh3B,EAASg3B,GAAT,2BACKn3C,EAAMm3C,IADX,IAEE9oB,YAAY,OAKXlO,EAGT,KAAKhgB,IACH,IAAMwyK,EAAS1yK,EAAOM,QAChB4f,EAAQ,eAAQngB,GAiBtB,OAhBqB,GAAjB2yK,EAAO3pJ,OACTmF,IAAQnuB,GAAO,SAACu2C,EAAUY,GACxBh3B,EAASg3B,GAAT,2BACKZ,GADL,IAEEloB,YAAY,OAIhBskJ,EAAOxkJ,SAAQ,SAACgpB,GACdh3B,EAASg3B,GAAT,2BACKn3C,EAAMm3C,IADX,IAEE9oB,YAAY,OAKXlO,EAIT,QACE,OAAOngB,IA6MXw/B,MAxMY,WAAyB,IAAxBx/B,EAAuB,uDAAf,GAAIC,EAAW,uCACpC,OAAQA,EAAOC,MAEb,KAAKC,IACH,IAAQq/B,EAAUv/B,EAAOM,QAAjBi/B,MACR,OAAOs6E,IAAMt6E,GAGf,KAAKr/B,IACH,IAAQq/B,EAAUv/B,EAAOM,QAAjBi/B,MACR,OAAO+yB,IAAK,GAAD,mBAAKvyD,GAAL,YAAew/B,KAG5B,KAAKr/B,IACH,MAAuBF,EAAOM,QAAtB0tC,EAAR,EAAQA,MAAOsI,EAAf,EAAeA,IACf,OAAOv2C,EAAMgiB,KAAI,SAACm1B,GAAD,OAAYA,IAAUlJ,EAAQsI,EAAIqoD,UAAYznD,KAGjE,KAAKh3C,IACH,IAAQg3C,EAAUl3C,EAAOM,QAAjB42C,MACR,OAAOn3C,EAAMs8B,QAAO,SAACu+M,GAAD,OAAgBA,IAAe1jM,KAIrD,KAAKh3C,IACH,IAAMo2C,EAAMt2C,EAAOM,QACnB,MAAM,GAAN,mBAAWP,GAAX,CAAkBu2C,EAAIY,QAIxB,KAAKh3C,IACH,IAAQ8tC,EAAUhuC,EAAOM,QAAjB0tC,MACR,OAAOjuC,EAAMs8B,QAAO,SAACu+M,GAAD,OAAgBA,IAAe5sM,KAIrD,QACE,OAAOjuC,IAoKXm+G,sBA/I4B,WAA4B,IAA3Bn+G,EAA0B,wDAAXC,EAAW,uCACvD,OAAQA,EAAOC,MACb,KAAKC,IACH,OAAO,EAET,KAAKA,IACL,KAAKA,IACH,OAAO,EAET,QACE,OAAOH,IAsIX47G,eA/JqB,WAA4B,IAA3B57G,EAA0B,wDAAXC,EAAW,uCAChD,OAAQA,EAAOC,MACb,KAAKC,IACH,OAAO,EAET,KAAKA,IACL,KAAKA,IACH,OAAO,EAET,QACE,OAAOH,IAsJXo+G,SAlIe,WAA4B,IAA3Bp+G,EAA0B,wDAAXC,EAAW,uCAC1C,OAAQA,EAAOC,MACb,KAAKC,IACH,OAAO,EAET,KAAKA,IACL,KAAKA,IACH,OAAO,EAET,QACE,OAAOH,IAyHXq+G,UApHgB,WAA4B,IAA3Br+G,EAA0B,wDAAXC,EAAW,uCAC3C,OAAQA,EAAOC,MACb,KAAKC,IACH,OAAO,EAET,KAAKA,IACL,KAAKA,IACH,OAAO,EAET,QACE,OAAOH,IA2GXs+G,WAtGiB,WAA4B,IAA3Bt+G,EAA0B,wDAAXC,EAAW,uCAC5C,OAAQA,EAAOC,MACb,KAAKC,IACH,OAAO,EAET,KAAKA,IACL,KAAKA,IACH,OAAO,EAET,QACE,OAAOH,IA6FXu+G,yBAxE+B,WAA2B,IAA1Bv+G,EAAyB,uDAAjB,KAAMC,EAAW,uCACzD,OAAQA,EAAOC,MACb,KAAKC,IACH,IAAQ4B,EAAU9B,EAAOM,QAAjBwB,MACR,OAAOA,EAET,KAAK5B,IACL,KAAKA,IACH,OAAO,KAET,QACE,OAAOH,IA8DX87G,kBAzFwB,WAA2B,IAA1B97G,EAAyB,uDAAjB,KAAMC,EAAW,uCAClD,OAAQA,EAAOC,MACb,KAAKC,IACH,IAAQ4B,EAAU9B,EAAOM,QAAjBwB,MACR,OAAOA,EAET,KAAK5B,IACL,KAAKA,IACH,OAAO,KAET,QACE,OAAOH,IA+EXw+G,YA1DkB,WAA2B,IAA1Bx+G,EAAyB,uDAAjB,KAAMC,EAAW,uCAC5C,OAAQA,EAAOC,MACb,KAAKC,IACH,IAAQ4B,EAAU9B,EAAOM,QAAjBwB,MACR,OAAOA,EAET,KAAK5B,IACL,KAAKA,IACH,OAAO,KAET,QACE,OAAOH,IAgDXy+G,aA3CmB,WAA2B,IAA1Bz+G,EAAyB,uDAAjB,KAAMC,EAAW,uCAC7C,OAAQA,EAAOC,MACb,KAAKC,IACH,IAAQ4B,EAAU9B,EAAOM,QAAjBwB,MACR,OAAOA,EAET,KAAK5B,IACL,KAAKA,IACH,OAAO,KAET,QACE,OAAOH,IAiCX0+G,cA5BoB,WAA2B,IAA1B1+G,EAAyB,uDAAjB,KAAMC,EAAW,uCAC9C,OAAQA,EAAOC,MACb,KAAKC,IACH,IAAQ4B,EAAU9B,EAAOM,QAAjBwB,MACR,OAAOA,EAET,KAAK5B,IACL,KAAKA,IACH,OAAO,KAET,QACE,OAAOH,MAoBE8e,MAGR,IAAMrc,EAAc,SAACzC,GAAD,OAAWA,EAAM8e,MAG/Bg8N,EAAS,SAAC96O,EAAOm3C,GAAR,OAAkB10C,EAAYzC,GAAO25G,KAAKxiE,IACnD4jM,EAAc,SAAC/6O,GAAD,OACzByC,EAAYzC,GACTw/B,MAAMxd,KAAI,SAAC5T,GAAD,OAAQ0sO,EAAO96O,EAAOoO,MAChCkuB,QAAO,SAACia,GAAD,OAASA,EAAIykM,cAAgB,MAqC5BC,EAAiB,SAACj7O,GAC7B,IAAMk7O,EAAeH,EAAY/6O,GAAOs8B,QAAO,SAACia,GAAD,OAASA,EAAIloB,cAE5D,OAA4B,IAAxB6sN,EAAalyN,OAAqBkyN,EAAa,GAEvC,MAIDC,EAA4B,SAACn7O,GAAD,OAAWyC,EAAYzC,GAAOm+G,uBAC1Di9H,EAAqB,SAACp7O,GAAD,OAAWyC,EAAYzC,GAAO47G,iB,6RChC1D38F,EAAU5e,YAAgB,CAC9Bs5G,KAjaW,WAAyB,IAAxB35G,EAAuB,uDAAf,GAAIC,EAAW,uCACnC,OAAQA,EAAOC,MAEb,KAAKC,IACL,KAAKA,IACH,MAA4BF,EAAOM,QAA3B2d,EAAR,EAAQA,SAAUshB,EAAlB,EAAkBA,MACZrf,EAAQ,eAAQngB,GAQtB,OAPAw/B,EAAMrR,SAAQ,SAAC2nB,GACb31B,EAAS21B,GAAT,yBACEznB,YAAY,GACTnQ,EAAS43B,IAFd,IAGE3/B,aAAa,OAGVgK,EAGT,KAAKhgB,IACH,IAAM0yB,EAAS5yB,EAAOM,QAChB4f,EAAQ,eAAQngB,GAOtB,OANAmgB,EAAS0S,EAAOzI,UAAhB,qCACEiE,YAAY,GACTruB,EAAM6yB,EAAOzI,WACbyI,GAHL,IAIE1c,aAAa,IAERgK,EAGT,KAAKhgB,IACH,MAA0BF,EAAOM,QAAzB0tC,EAAR,EAAQA,MAAOpb,EAAf,EAAeA,OACT1S,EAAW69F,IAAKh+G,EAAOiuC,GAM7B,OALA9tB,EAAS0S,EAAOijB,UAAhB,uCACK91C,EAAMiuC,IACNpb,GAFL,IAGE1c,aAAa,IAERgK,EAGT,KAAKhgB,IACH,IAAM0yB,EAAS5yB,EAAOM,QACtB,OAAO,2BACFP,GADL,kBAEG6yB,EAAOijB,SAFV,uCAGOkoE,IAAKh+G,EAAM6yB,EAAOijB,UAAW,CAAC,eAC9BkoE,IAAKnrF,EAAQ,CAAC,eAJrB,IAKI1c,aAAa,MAMnB,KAAKhW,IACH,IAAM0yB,EAAS5yB,EAAOM,QAChB4f,EAAQ,eAAQngB,GAMtB,OALAmgB,EAAS0S,EAAOijB,UAAhB,yBACEznB,YAAY,GACTwE,GAFL,IAGE1c,aAAa,IAERgK,EAET,KAAKhgB,IACH,IAAM0yB,EAAS5yB,EAAOM,QACtB,OAAO,2BACFP,GADL,kBAEG6yB,EAAOijB,SAFV,uCAGO91C,EAAM6yB,EAAOijB,WAHpB,IAII8F,UAAW57C,EAAM6yB,EAAOijB,WACrBjjB,GALP,IAMI1c,aAAa,MAMnB,KAAKhW,IACH,IAAQ8tC,EAAUhuC,EAAOM,QAAjB0tC,MACR,OAAIjuC,EAAMiuC,GACD+vE,IAAKh+G,EAAOiuC,GAEdjuC,EAET,KAAKG,IACH,IAAMy7C,EAAY37C,EAAOM,QACzB,OAAO,2BACFP,GADL,kBAEG47C,EAAU9F,SAFb,uCAGOkoE,IAAKh+G,EAAM47C,EAAU9F,UAAW,CAAC,eACjC8F,GAJP,IAKIzlC,aAAa,MAMnB,KAAKhW,IACH,IAAQ21C,EAAa71C,EAAOM,QAApBu1C,SACR,OAAOkoE,IAAKh+G,EAAO81C,GAIrB,KAAK31C,IACH,IAAM21C,EAAW71C,EAAOM,QAClB4f,EAAQ,2BACTngB,GADS,kBAEX81C,EAFW,2BAGP91C,EAAM81C,IAHC,IAIVznB,YAAY,MAGhB,OAAOlO,EAGT,KAAKhgB,IACH,IAAM21C,EAAW71C,EAAOM,QACxB,OAAO,2BACFP,GADL,kBAEG81C,EAFH,2BAGO91C,EAAM81C,IAHb,IAIIznB,YAAY,MAKlB,KAAKluB,IACH,IAAMk7O,EAAYp7O,EAAOM,QACnB4f,EAAQ,eAAQngB,GAiBtB,OAhBwB,GAApBq7O,EAAUryN,OACZmF,IAAQnuB,GAAO,SAAC6yB,EAAaijB,GAC3B31B,EAAS21B,GAAT,2BACKjjB,GADL,IAEExE,YAAY,OAIhBgtN,EAAUltN,SAAQ,SAAC2nB,GACjB31B,EAAS21B,GAAT,2BACK91C,EAAM81C,IADX,IAEEznB,YAAY,OAKXlO,EAGT,KAAKhgB,IACH,IAAMk7O,EAAYp7O,EAAOM,QACnB4f,EAAQ,eAAQngB,GAiBtB,OAhBwB,GAApBq7O,EAAUryN,OACZmF,IAAQnuB,GAAO,SAAC6yB,EAAaijB,GAC3B31B,EAAS21B,GAAT,2BACKjjB,GADL,IAEExE,YAAY,OAIhBgtN,EAAUltN,SAAQ,SAAC2nB,GACjB31B,EAAS21B,GAAT,2BACK91C,EAAM81C,IADX,IAEEznB,YAAY,OAKXlO,EAGT,KAAKhgB,IAA2C,IAAD,EACvC21C,EAAQ,UAAG71C,EAAOM,eAAV,aAAG,EAAgBu1C,SACjC,OAAO,2BACF91C,GADL,kBAEG81C,EAFH,2BAGO91C,EAAM81C,IAHb,IAIIwlM,iBAAkB,MAKxB,KAAKn7O,IAA8C,IAAD,EAC1C21C,EAAQ,UAAG71C,EAAOM,eAAV,aAAG,EAAgBu1C,SACjC,OAAO,2BACF91C,GADL,kBAEG81C,EAFH,2BAGO91C,EAAM81C,IAHb,IAIIwlM,iBAAkB,MAMxB,QACE,OAAOt7O,IAgOXw/B,MA3NY,WAAyB,IAAxBx/B,EAAuB,uDAAf,GAAIC,EAAW,uCACpC,OAAQA,EAAOC,MAEb,KAAKC,IACH,IAAQq/B,EAAUv/B,EAAOM,QAAjBi/B,MACR,OAAOs6E,IAAMt6E,GAGf,KAAKr/B,IACH,IAAQq/B,EAAUv/B,EAAOM,QAAjBi/B,MACR,OAAO+yB,IAAK,GAAD,mBAAKvyD,GAAL,YAAew/B,KAG5B,KAAKr/B,IACH,IAAM0yB,EAAS5yB,EAAOM,QACtB,OAAOgyD,IAAK,GAAD,mBAAKvyD,GAAL,CAAY6yB,EAAOzI,YAGhC,KAAKjqB,IACH,MAA0BF,EAAOM,QAAzB0tC,EAAR,EAAQA,MAAOpb,EAAf,EAAeA,OACf,OAAO7yB,EAAMgiB,KAAI,SAAC8zB,GAAD,OAAeA,IAAa7H,EAAQpb,EAAOijB,SAAWA,KAGzE,KAAK31C,IACH,IAAQ21C,EAAa71C,EAAOM,QAApBu1C,SACR,OAAO91C,EAAMs8B,QAAO,SAACi/M,GAAD,OAAmBA,IAAkBzlM,KAI3D,KAAK31C,IACH,IAAM0yB,EAAS5yB,EAAOM,QACtB,MAAM,GAAN,mBAAWP,GAAX,CAAkB6yB,EAAOijB,WAI3B,KAAK31C,IACH,IAAQ8tC,EAAUhuC,EAAOM,QAAjB0tC,MACR,OAAOjuC,EAAMs8B,QAAO,SAACi/M,GAAD,OAAmBA,IAAkBttM,KAI3D,QACE,OAAOjuC,IAkLX60K,WA7JiB,WAA4B,IAA3B70K,EAA0B,wDAAXC,EAAW,uCAC5C,OAAQA,EAAOC,MACb,KAAKC,IACH,OAAO,EAET,KAAKA,IACL,KAAKA,IACH,OAAO,EAET,QACE,OAAOH,IAoJX47G,eA7KqB,WAA4B,IAA3B57G,EAA0B,wDAAXC,EAAW,uCAChD,OAAQA,EAAOC,MACb,KAAKC,IACH,OAAO,EAET,KAAKA,IACL,KAAKA,IACH,OAAO,EAET,QACE,OAAOH,IAoKXo+G,SAhJe,WAA4B,IAA3Bp+G,EAA0B,wDAAXC,EAAW,uCAC1C,OAAQA,EAAOC,MACb,KAAKC,IACH,OAAO,EAET,KAAKA,IACL,KAAKA,IACH,OAAO,EAET,QACE,OAAOH,IAuIXq+G,UAlIgB,WAA4B,IAA3Br+G,EAA0B,wDAAXC,EAAW,uCAC3C,OAAQA,EAAOC,MACb,KAAKC,IACH,OAAO,EAET,KAAKA,IACL,KAAKA,IACH,OAAO,EAET,QACE,OAAOH,IAyHXs+G,WApHiB,WAA4B,IAA3Bt+G,EAA0B,wDAAXC,EAAW,uCAC5C,OAAQA,EAAOC,MACb,KAAKC,IACH,OAAO,EAET,KAAKA,IACL,KAAKA,IACH,OAAO,EAET,QACE,OAAOH,IA2GX80K,cAtFoB,WAA2B,IAA1B90K,EAAyB,uDAAjB,KAAMC,EAAW,uCAC9C,OAAQA,EAAOC,MACb,KAAKC,IACH,IAAQ4B,EAAU9B,EAAOM,QAAjBwB,MACR,OAAOA,EAET,KAAK5B,IACL,KAAKA,IACH,OAAO,KAET,QACE,OAAOH,IA4EX87G,kBAvGwB,WAA2B,IAA1B97G,EAAyB,uDAAjB,KAAMC,EAAW,uCAClD,OAAQA,EAAOC,MACb,KAAKC,IACH,IAAQ4B,EAAU9B,EAAOM,QAAjBwB,MACR,OAAOA,EAET,KAAK5B,IACL,KAAKA,IACH,OAAO,KAET,QACE,OAAOH,IA6FXw+G,YAxEkB,WAA2B,IAA1Bx+G,EAAyB,uDAAjB,KAAMC,EAAW,uCAC5C,OAAQA,EAAOC,MACb,KAAKC,IACH,IAAQ4B,EAAU9B,EAAOM,QAAjBwB,MACR,OAAOA,EAET,KAAK5B,IACL,KAAKA,IACH,OAAO,KAET,QACE,OAAOH,IA8DXy+G,aAzDmB,WAA2B,IAA1Bz+G,EAAyB,uDAAjB,KAAMC,EAAW,uCAC7C,OAAQA,EAAOC,MACb,KAAKC,IACH,IAAQ4B,EAAU9B,EAAOM,QAAjBwB,MACR,OAAOA,EAET,KAAK5B,IACL,KAAKA,IACH,OAAO,KAET,QACE,OAAOH,IA+CX0+G,cA1CoB,WAA2B,IAA1B1+G,EAAyB,uDAAjB,KAAMC,EAAW,uCAC9C,OAAQA,EAAOC,MACb,KAAKC,IACH,IAAQ4B,EAAU9B,EAAOM,QAAjBwB,MACR,OAAOA,EAET,KAAK5B,IACL,KAAKA,IACH,OAAO,KAET,QACE,OAAOH,IAgCXyd,WACA2R,UA5BgB,WAA2B,IAA1BpvB,IAAyB,yDAAXC,EAAW,uCAC1C,OAAQA,EAAOC,MACb,KAAKC,IACH,OAAOF,EAAOM,QAEhB,KAAKJ,IACH,OAAO,EAET,QACE,OAAOH,MAsBEif,MAGR,IAAMxc,EAAc,SAACzC,GAAD,OAAWA,EAAMif,SAG/Bs7G,EAAY,SAACv6H,EAAO81C,GAAR,OAAqBrzC,EAAYzC,GAAO25G,KAAK7jE,IACzD0lM,EAAiB,SAACx7O,GAAD,OAC5ByC,EAAYzC,GACTw/B,MAAMxd,KAAI,SAAC5T,GAAD,OAAQmsH,EAAUv6H,EAAOoO,MACnCkuB,QAAO,SAACzJ,GAAD,OAAYA,EAAO4oN,aAAe,MAEjCC,EAA6B,SAAC17O,EAAOsB,GAAR,OACxCk6O,EAAex7O,GAAOs8B,QACpB,SAACzJ,GAAD,OACEvxB,KACEA,EAAWiE,YAAcjE,EAAWiE,aAAestB,EAAOttB,eAC1DjE,EAAWoD,gBAAkBpD,EAAWoD,iBAAmBmuB,EAAOnuB,mBAClEpD,EAAWsD,YAActD,EAAWsD,aAAeiuB,EAAOjuB,eAC1DtD,EAAWwD,eAAiBxD,EAAWwD,gBAAkB+tB,EAAO/tB,mBAU3D62O,EAAoB,SAAC37O,GAChC,IAAM47O,EAAkBJ,EAAex7O,GAAOs8B,QAAO,SAACzJ,GACpD,OAAOA,EAAOxE,cAGhB,OAA+B,IAA3ButN,EAAgB5yN,OAAqB4yN,EAAgB,GAE7C,MAGD3zG,EAAc,SAACjoI,GAAD,OAAWyC,EAAYzC,GAAOovB,Y,6BCpd1C7qB,IAdK,CAClBunO,sBAAuB,QACvB+P,qBAAsB,QACtBC,wBAAyB,QAEzB5P,wBAAyB,QACzB6P,uBAAwB,QACxBC,0BAA2B,QAE3BhQ,2BAA4B,QAC5BiQ,0BAA2B,QAC3BC,6BAA8B,U,6BCWjB33O,IAtBK,CAClB6qO,gBAAiB,QACjB1uL,cAAe,QACfE,eAAgB,QAChBu7L,iBAAkB,QAClBC,iBAAkB,QAClBj9N,KAAM,QACNqwN,UAAW,QACXE,WAAY,QACZJ,WAAY,QACZK,oBAAqB,QACrB0M,uBAAwB,QACxBC,sBAAuB,QACvBC,iBAAkB,QAClBC,aAAc,QACdC,cAAe,QACfC,gBAAiB,QACjBC,mBAAoB,QACpBC,kBAAmB,QACnBC,qBAAsB,U,mCCVTp2D,IATD,CACZknD,qBAAsB,yBACtBC,qBAAsB,0BACtBC,oBAAqB,yBACrBC,8BAA+B,kCAC/BJ,eAAgB,mBAChBK,cAAe,oB,gCCNjB,qJAMa+O,EAA4B,SAAC5+N,EAAUshB,GAAX,MAAsB,CAC7Dt/B,KAAMC,IACNI,QAAS,CACP2d,WACAshB,WAGSu9M,EAAwB,eAACh7O,EAAD,uDAAS,CAAE+U,aAAc,QAASsL,YAAa,KAA/C,MAA0D,CAC7FliB,KAAMC,IACNI,QAAS,CACPwB,WAQSi7O,EAAgC,SAAC79N,EAAMyjC,EAAW1f,GAAlB,MAA+B,CAC1EhjC,KAAMC,IACNI,QAAS,CAAE4e,OAAMyjC,YAAW1f,aAEjB+5M,EAA4B,SAAClyG,EAAShpI,GAAV,MAAqB,CAC5D7B,KAAMC,IACNI,QAAS,CACPwqI,UACAhpI,Y,gCChCJ,2PAGam7O,EAA4B,SAACphO,EAAWJ,GAAZ,MAA6B,CACpExb,KAAMgc,IACN3b,QAAS,CACPub,UAAWA,EACXJ,YAAaA,KAIJyhO,EAAyB,iBAAO,CAC3Cj9O,KAAMgc,IACN3b,QAAS,KAGE68O,EAAwB,iBAAO,CAC1Cl9O,KAAMgc,IACN3b,QAAS,KAIE88O,EAA0B,SAACjvO,GAAD,MAAS,CAC9ClO,KAAMgc,IACN3b,QAAS,CAAE6N,QAIAkvO,EAA4B,iBAAO,CAC9Cp9O,KAAMgc,IACN3b,QAAS,KAIEg9O,EAAyB,iBAAO,CAC3Cr9O,KAAMgc,IACN3b,QAAS,KAIEi9O,EAAoB,SAACC,GAAD,MAAU,CACzCv9O,KAAMgc,IACN3b,QAASk9O,K,6BC1CX,+TAEalZ,EAAwB,SAAC12L,EAASC,GAAV,MAA0B,CAC7D5tC,KAAMC,IACNI,QAAS,CAAEstC,UAASC,gBAET02L,EAA2B,SAACtmN,EAAUshB,GAAX,MAAsB,CAC5Dt/B,KAAMC,IACNI,QAAS,CACP2d,WACAshB,WAGSilM,EAAuB,eAAC1iO,EAAD,uDAAS,CAAE+U,aAAc,QAASsL,YAAa,KAA/C,MAA0D,CAC5FliB,KAAMC,IACNI,QAAS,CACPwB,WAIS2iO,EAAqB,SAACxhM,GAAD,MAAc,CAC9ChjC,KAAMC,IACNI,QAAS2iC,IAEEyhM,EAAwB,SAAC12L,EAAO/K,GAAR,MAAqB,CACxDhjC,KAAMC,IACNI,QAAS,CAAE0tC,QAAO/K,aAEP0hM,EAAoB,SAAC32L,EAAOlsC,GAAR,MAAmB,CAClD7B,KAAMC,IACNI,QAAS,CACP0tC,QACAlsC,WAISijO,EAAuB,SAACj3L,GAAD,MAAmB,CACrD7tC,KAAMC,IACNI,QAAS,CACPwtC,kBAGSk3L,EAA0B,SAACl3L,GAAD,MAAmB,CACxD7tC,KAAMC,IACNI,QAAS,CACPwtC,kBAGSm3L,EAAsB,SAACn3L,EAAchsC,GAAf,MAA0B,CAC3D7B,KAAMC,IACNI,QAAS,CACPwtC,eACAhsC,Y,qHCnCE+6M,EAAa,SAACzmM,GAClB,IAAMzF,EAAQu7H,aAAY,SAACnsI,GAAD,OAAWA,KACrC,EAA0FqW,EAAlFjI,UAAR,MAAa,GAAb,EAAiByK,EAAyExC,EAAzEwC,WAAYwzH,EAA6Dh2H,EAA7Dg2H,YAAaC,EAAgDj2H,EAAhDi2H,eAAgB/nI,EAAgC8R,EAAhC9R,YAA1D,EAA0F8R,EAAnBm2H,eAAvE,SACA,EAAsCC,oBAAS,GAA/C,mBAAOC,EAAP,KAAoBC,EAApB,KAGA,OAASpoI,IAAeid,+BAA2C5Q,EAAOrM,KACxEioI,EAwBE,KAvBF,eAAC,IAAOI,OAAR,CACEx+H,GAAE,oBAAeA,GACjB40G,UAAS,WACT9oG,MAAM,UACN0uG,SAAU/vG,EACVg0H,QAAS,kBAAMR,KALjB,UAOE,cAAC,IAAD,CAAOpyH,KAAM,KACZqyH,GACC,cAAC,IAAD,CACEY,UAAU,MACVC,OAAQT,EACR37B,OAAM,oBAAe3iG,GACrBg/H,OAjBO,kBAAMT,GAAgBD,IAkB7BW,QAAQ,cALV,SAOE,cAAC,IAAD,CACEj/H,GAAI,eACJ+uB,OAAQ,CAAExkB,WAAY9O,cAAUsE,cAAc,CAAEC,GAAIk+H,aAQhEwwE,EAAW7zF,aAAe,CACxBpwG,YAAY,GAGCikM,O,4JC9BTsF,EAAqB,SAAC/rM,GAC1B,IAAMzF,EAAQu7H,aAAY,SAACnsI,GAAD,OAAWA,KAEnC6Y,EAaExC,EAbFwC,WACAwzH,EAYEh2H,EAZFg2H,YACAC,EAWEj2H,EAXFi2H,eACA/nI,EAUE8R,EAVF9R,YACA89M,EASEhsM,EATFgsM,YACAj0M,EAQEiI,EARFjI,GACA8L,EAOE7D,EAPF6D,MACAunM,EAMEprM,EANForM,iBACAc,EAKElsM,EALFksM,WACAD,EAIEjsM,EAJFisM,mBACAl2E,EAGE/1H,EAHF+1H,UACAsxG,EAEErnO,EAFFqnO,UACAC,EACEtnO,EADFsnO,YAEF,EAAsClxG,oBAAS,GAA/C,mBAAOC,EAAP,KAAoBC,EAApB,KAIMlsI,GAFQ8kH,iBAAiBrS,SAASvxF,MAE3BwqH,YAAY3qH,YACnB/X,EAAOG,cACb,EAA0C6iI,oBAAS,GAAnD,mBAAOmxG,EAAP,KAAsBC,EAAtB,KAGMC,EAAU9pH,mBAAQ,kBAAM,IAAI+pH,mBAAiB17B,KAAc,IACjE,EAAoD51E,oBAAS,GAA7D,mBAAOuxG,EAAP,KAA2BC,EAA3B,KAEAz4H,qBAAU,WACR,IAAI04H,GAAW,EAOf,OANI57B,GACFw7B,EAAQzuO,iBAAiB,WAAW,SAAC46F,GAC9Bi0I,GACLD,EAAsBh0I,EAAEk0I,iBAGrB,WACLD,GAAW,KAEZ,IAEH14H,qBAAU,WACJw4H,GACFI,MAED,CAACJ,IAEJx4H,qBAAU,YACc,IAAlBo4H,IAA0C,IAAhBD,IAC5BljO,OAAO09J,KAAP,yBAA8BkqC,GAAe,UAC7Cw7B,GAAiB,MAElB,CAACD,EAAeD,IAEnB,IAAMS,EAAiB,WAAO,IAAD,EAKrBC,EAAa,CACjBhwO,KAAM,oBACNsI,MAAO,CACL,CACErB,MAAK,OAAEmsM,QAAF,IAAEA,OAAF,EAAEA,EAAkBnsM,MACzBm+L,SAAQ,OAAEgO,QAAF,IAAEA,OAAF,EAAEA,EAAkBhO,SAC5BlvL,QAAO,OAAEk9L,QAAF,IAAEA,OAAF,EAAEA,EAAkBl9L,QAC3B+5N,iBA/CQ93H,UAgDR+3H,MACE90O,EAAK0E,cAAc,CAAEC,GAAI,2BACzB3N,EAAK8C,SACL,MACAkG,EAAK0E,cAAc,CAAEC,GAAI,2BACzB85F,MAASC,OAAO,oBAClBq2I,YAAa,sEAOD,OAAhB/8B,QAAgB,IAAhBA,OAAA,EAAAA,EAAkBC,YACF,OAAhBD,QAAgB,IAAhBA,OAAA,EAAAA,EAAkBC,SAASnlM,WAAU,SAACkiO,GAAD,MAAmB,qBAAXA,EAAGpwO,SAA+B,IAE/D,OAAhBozM,QAAgB,IAAhBA,KAAkBC,SAASllM,KAAK6hO,IAGlC,IAAMK,EAAQ,OAAGj9B,QAAH,IAAGA,GAAH,UAAGA,EAAkBC,gBAArB,aAAG,EAA4B1/L,KAAI,SAACy8N,GAAD,MACpC,qBAAXA,EAAGpwO,KAAH,2BACSowO,GADT,IACa9nO,MAAO,CAAC,2BAAK8nO,EAAG9nO,MAAM,IAAO0nO,EAAW1nO,MAAM,OACvD8nO,KAENX,EAAQa,YAAY,CAClBC,aAAcF,EACdn8B,WAAYA,KAIhB,OAAOm7B,GACHn5O,IAAeid,+BAA2C5Q,EAAOrM,GAiCjE,KAhCF,mCACE,eAAC,IAAOqoI,OAAR,CACEx+H,GAAIA,GAAU,qBACd40G,UAAS,mBAAcnqG,EAAa,WAAa,IACjDqB,MAAOA,GAAgB,QACvB0uG,SAAU/vG,EACVg0H,QAAS,WACPgxG,GAAiB,GACjBxxG,KAPJ,UAUGqxG,GAAatxG,EACZ,mCACE,cAAC,IAAD,CAASU,GAAG,OAAOC,UAAU,SAAS9yH,KAAM,KAAM+yH,KAAK,SAASC,cAAY,WAG9EywG,GAAa,cAAC,IAAD,CAAMzjO,KAAM,GAAIpL,KAAK,uBAEpC,cAAC,IAAD,CACEq+H,UAAU,MACVC,OAAQT,EACR37B,OAAQ3iG,GAAU,qBAClBg/H,OAxGO,kBAAMT,GAAgBD,IAoG/B,SAME,cAAC,IAAD,CAAkBt+H,GAAIk+H,YAWhC81E,EAAmBn5F,aAAe,CAChCpwG,YAAY,EACZypM,oBAAoB,EACpBq7B,aAAa,EACbvxG,WAAW,EACXsxG,WAAW,GAGEt7B,O,kFCtKTe,EAAc,WAA+B,IAA9B07B,EAA6B,uDAAP,GACzC,EAAgCpyG,oBAAc,IAAIzwG,MAAOC,WAAzD,mBAAOy9I,EAAP,KAAiBolE,EAAjB,KAEMC,EAAgBC,uBAAY,WAChCF,GAAY,IAAI9iN,MAAOC,aACtB,IAMH,OAJAupF,qBAAU,WACRu5H,MACCF,GAEI,CAAEnlE,WAAUqlE,mB,wJCDb/8H,EAA0CC,IAA1CD,OAAQE,EAAkCD,IAAlCC,YAAaC,EAAqBF,IAArBE,iBAEvBC,EAAe,SAACC,EAAW7rG,GAC/B,IAAI8rG,GAAmB,EACvB,IACEA,EACEA,GACCD,EAAUn2G,KAAKq2G,OACdC,IAAEC,OAAOJ,EAAUn2G,KAAKq2G,MAAMpd,eAAe3/F,SAASg9G,IAAEC,OAAOjsG,EAAM2uF,gBACzE,MAAOud,IACT,IACEJ,EACEA,GACCD,EAAUn2G,KAAKy2G,YACdH,IAAEC,OAAOJ,EAAUn2G,KAAKy2G,WAAWxd,eAAe3/F,SAASg9G,IAAEC,OAAOjsG,EAAM2uF,gBAC9E,MAAOud,IAET,OAAOJ,GAGHM,EAAa,SAACvsG,GAClB,OACE,cAAC2rG,EAAD,2BAAY3rG,GAAZ,aACE,sBAAKwsG,MAAO,CAAEC,QAAS,OAAQC,cAAe,OAA9C,UACsB,MAAnB1sG,EAAMnK,KAAK2C,MAAgB,qBAAKm0G,UAAU,OAAf,SAAuB3sG,EAAMnK,KAAK2C,OAC7DwH,EAAMnK,KAAK+2G,SACV,qBACEC,IAAK7sG,EAAMnK,KAAK+2G,QAChBJ,MAAO,CACLC,QAAS,eACTntG,MAAO,MACPwtG,OAAQ,MACRC,YAAa,SACbC,UAAW,aAIhBhtG,EAAMnK,KAAKq2G,aAKde,EAAkB,SAACjtG,GACvB,OACE,cAAC6rG,EAAD,2BAAiB7rG,GAAjB,aACE,sBAAKwsG,MAAO,CAAEC,QAAS,OAAQC,cAAe,OAA9C,UACsB,MAAnB1sG,EAAMnK,KAAK2C,MAAgB,qBAAKm0G,UAAU,OAAf,SAAuB3sG,EAAMnK,KAAK2C,OAC7DwH,EAAMnK,KAAK+2G,SACV,qBACEC,IAAK7sG,EAAMnK,KAAK+2G,QAChBJ,MAAO,CACLC,QAAS,eACTntG,MAAO,MACPwtG,OAAQ,MACRC,YAAa,SACbC,UAAW,aAIhBhtG,EAAMnK,KAAKq2G,aAMdgB,EAAQ,IAAIC,IAAkB,CAClCC,cAAe,GACfC,YAAY,IAGRC,EAAW,SAACttG,GAChB,IAAMutG,EAAOvtG,EAAM1M,SACbk6G,EAAc,SAAC,GAAD,IAAG3hH,EAAH,EAAGA,IAAKgjB,EAAR,EAAQA,MAAO4+F,EAAf,EAAeA,OAAQjB,EAAvB,EAAuBA,MAAvB,OAClB,cAAC,IAAD,CAAcU,MAAOA,EAAOQ,YAAa,EAAaD,OAAQA,EAAQ/a,SAAU7jF,EAAhF,SACG,cAAG8+F,QAAH,IAAYC,EAAZ,EAAYA,cAAZ,OACC,qBAAKC,IAAKD,EAAyBpB,MAAOA,EAA1C,SACGe,EAAK1+F,IADsBhjB,KAFeA,IASnD,OAAO0hH,EAAK56F,OAAS,EACnB,cAAC,IAAD,CAAWm7F,cAAY,EAAvB,SACG,cAAGhB,OAAH,OACC,cAAC,IAAD,CACEiB,eAAgB,CACdzuG,MAAO,OACP0uG,gBAAiB,UACjBC,SAAU,QAEZzB,MAAO,CACLltG,MAAO,QAETA,MAAO,EACPwtG,OAAQ,IACRoB,SAAUX,EAAK56F,QAAU,EACzB66F,YAAaA,EACbW,UAAW,SAACN,GACV,IAAMf,EAASI,EAAMiB,UAAUN,GAC/B,OAAOf,EAAkB,GAATA,QAMxB,cAAChB,EAAD,eAAsB9rG,KAoIXouG,IAhIO,SAACpuG,GAAW,IAAD,IAG7BG,EAaEH,EAbFG,MADF,EAcIH,EAZF4oO,KAAQl9O,EAFV,EAEUA,MAAOm9O,EAFjB,EAEiBA,QAASC,EAF1B,EAE0BA,QAF1B,GAcI9oO,EAXFuuG,eAWEvuG,EAVFwuG,gBAJF,MAIY,GAJZ,KAcIxuG,EATF5M,KASE4M,EARFyuG,kBANF,SAOE1b,EAOE/yF,EAPF+yF,SACA2b,EAME1uG,EANF0uG,kBARF,EAcI1uG,EALF4uG,kCATF,MAS+B,SAACtuG,GAAD,OAAW,MAT1C,IAcIN,EAJFwC,kBAVF,SAWEqsG,EAGE7uG,EAHF6uG,WAEGI,GACDjvG,EAFF+uG,cAZF,YAcI/uG,EAdJ,uKAeckvG,iBAAiBrS,SAASvxF,MAGxC6jG,qBAAU,WACRC,EAAcV,KACb,CAACA,IAEJ,IAAMU,EAAgB,SAAC9uG,GACrBH,EAAMovG,SAASjvG,GAEXsuG,GACFA,EAA2BtuG,IAI/B,OACE,eAAC,IAAD,WACG2uG,EAAW/C,OACV,eAAC,IAAD,CAAOS,UAAU,aAAa6C,IAAKP,EAAWl3G,GAA9C,UACGk3G,EAAW/C,MACXnZ,GAAY,sBAAM4Z,UAAU,WAAhB,sBAGjB,eAAC,IAAD,WACE,cAAC,IAAD,CAAiB8C,UAAU,UAA3B,SAAsCzvG,EAAM0vG,mBAC5C,cAAC,IAAD,uCACMvvG,GACA8uG,GAFN,IAKEU,OAAQ,CACNC,WAAY,SAACD,GAAD,mBAAC,eAAiBA,GAAlB,IAA0BE,OAAQ,QAC9CE,QAAS,SAACD,EAAUnmH,GAClB,OAAO,2BACFmmH,GADL,IAGEE,WAAWrmH,EAAMsmH,UAAY,kBAC7BC,OAAQvmH,EAAMsmH,UAAN,oBApCNE,UAoCM,eAEJ,kCAGRC,YAAa,SAACN,EAAUnmH,GACtB,OAAO,2BACFmmH,GADL,IAEEO,WAAY,IACZC,SAAU,OACVC,WAAY,KACZ1sG,MAAO,UACP2sG,WAAY,kEAGhBC,SAAU,SAACX,EAAUnmH,GACnB,OAAO,2BACFmmH,GADL,IAGEO,WAAY,IACZC,SAAU,OACVC,WAAY,KACZ1sG,MAAO,UACP2sG,WAAY,mEAIlBz4G,GAAIk3G,EAAWl3G,GACf6zG,WAAY,CAAED,OAAQY,EAAYV,YAAaoB,EAAiBK,YAChEoD,YAAW,UACTzB,EAAWyB,mBADF,QACiBl9G,cAAUsE,cAAc,CAAEC,GAAI,wBAE1D40G,UAAWjhH,GAASm9O,EAAU,kCAAoC,wBAClEt5H,SAAU,SAAC/R,GACT4R,EAAc5R,EAAQA,EAAMl9F,MAAQ,MAChC2uG,EAAW2B,UAAU3B,EAAW2B,SAASpT,IAE/CqT,OAAQ,WACN1wG,EAAM0wG,OAAuB,KAAhB1wG,EAAMG,MAAe,KAAOH,EAAMG,QAEjDkuG,QAASA,EACTzC,aAAcA,EACd+E,YAAa7B,EAAW6B,YACxBtuG,WAAYA,EACZlC,MACEkuG,EAAQvoF,QAAO,SAAC8qF,GACd,IAAMG,EAAgB,QAAQtiB,KAAKzuF,EAAMG,OAASzR,SAASsR,EAAMG,OAASH,EAAMG,MAIhF,OAHoB,QAAQsuF,KAAKmiB,EAAOzwG,OACpCzR,SAASkiH,EAAOzwG,OAChBywG,EAAOzwG,SACY4wG,KACtB,IAAM,KAEXrC,WAAYA,EACZslE,cACE,UAAAllE,EAAWklE,oBAAX,QAA2B3lE,EAAQvoF,QAAO,SAAC8iN,GAAD,OAASA,EAAIzoO,OAASwoO,KAASn2N,OAAS,GAC9E67F,EAAQvoF,QAAO,SAAC8iN,GAAD,OAASA,EAAIzoO,OAASwoO,KAAS,GAC9C,KAEN33H,iBAAkB,kBAAM39G,cAAUsE,cAAc,CAAEC,GAAI,sBACtDq5G,cAAe,IACfC,iBAAkB5C,OAAYx2G,EAAY4kG,SAASyU,cAAc,WAEnE,cAAC,IAAD,CAAiB7B,UAAU,SAA3B,SAAqCzvG,EAAMuxG,qBAE5C7lH,GAASm9O,GACR,qBAAKl8H,UAAU,mBAAmBH,MAAO,CAAEC,QAAS,SAApD,SACG/gH,S,8BCnPX,aAGMsY,EAAc,CAClBglO,IAAK,CACHC,QAAS,WACTC,aAAcxlO,QAAQ,YAA2BH,IAAIqtN,iBAAhC,iBAAgEC,QACrFsY,QAASzlO,QAAQ,YAA2BH,IAAIqtN,iBAAhC,aAA4DC,SAE9E5sN,OAAQ,CACNF,OAAO,EACPqlO,KAAM,WACNC,iBAAkB,SAClBx/O,KAAM,WACNmb,aAAc,OACdP,KAAM,CACJI,UAAU,EACVH,aAAa,EACbK,UAAU,GAEZa,OAAQ,CAEN/b,KAAM,SACNmkH,gBAAiB,SAEnBs7H,OAAQ,CACNz/O,KAAM,UAER0/O,WAAyC,SAA7BhmO,IAAIimO,qBAChBC,WAAW,IAIAzlO,O,waCgWAi2B,G,OApBajwC,YAAgB,CAC1Cs5G,KAhWW,WAAyB,IAAxB35G,EAAuB,uDAAf,GAAIC,EAAW,uCACnC,OAAQA,EAAOC,MACb,KAAKkgB,IACH,MAAO,GAGT,KAAKjgB,IACH,MAA4BF,EAAOM,QAA3B2d,EAAR,EAAQA,SAAUshB,EAAlB,EAAkBA,MACZrf,EAAQ,eAAQngB,GAStB,OARAw/B,EAAMrR,SAAQ,SAAC0f,GACb1tB,EAAS0tB,GAAT,qCACExf,YAAY,GACTruB,EAAM6tC,IACN3vB,EAAS2vB,IAHd,IAIE13B,aAAa,OAGVgK,EAET,KAAKhgB,IACH,IAAQwvC,EAAsB1vC,EAAOM,QAA7BovC,kBACFxvB,EAAQ,eAAQngB,GAQtB,OANAmgB,EAASwvB,EAAkB9B,SAA3B,qCACExf,YAAY,GACTruB,EAAM2vC,EAAkB9B,UACxB8B,GAHL,IAIEx5B,aAAa,IAERgK,EAET,KAAKhgB,IACH,IAAQ0tC,EAAY5tC,EAAOM,QAAnBstC,QACR,OAAOmwE,IAAKh+G,EAAO6tC,GAErB,KAAK1tC,IACH,IAAQ0tC,EAAY5tC,EAAOM,QAAnBstC,QACF1tB,EAAQ,eAAQngB,GAOtB,OANAmgB,EAAS0tB,GAAT,yBACExf,YAAY,GACTruB,EAAM6tC,IAFX,IAGE0B,gBAAiB,EACjBp5B,aAAa,IAERgK,EAET,KAAKhgB,IACH,MAA4BF,EAAOM,QAA3BstC,EAAR,EAAQA,QAAS5Y,EAAjB,EAAiBA,OACX9U,EAAQ,eAAQngB,GAOtB,OANAmgB,EAAS0tB,GAAT,yBACExf,YAAY,GACTruB,EAAM6tC,IAFX,IAGE5Y,SACA9e,aAAa,IAERgK,EAIT,QACE,OAAOngB,IAqSXw/B,MAhSY,WAAyB,IAAxBx/B,EAAuB,uDAAf,GAAIC,EAAW,uCACpC,OAAQA,EAAOC,MACb,KAAKkgB,IACH,MAAO,GAGT,KAAKjgB,IACH,IAAQq/B,EAAUv/B,EAAOM,QAAjBi/B,MACR,OAAOs6E,IAAMt6E,GAEf,KAAKr/B,IACH,IAAQwvC,EAAsB1vC,EAAOM,QAA7BovC,kBACR,OAAO4iB,IAAK,GAAD,mBAAKvyD,GAAL,CAAY2vC,EAAkB9B,WAE3C,KAAK1tC,IACH,IAAQ0tC,EAAY5tC,EAAOM,QAAnBstC,QACR,OAAO7tC,EAAMs8B,QAAO,SAACluB,GAAD,OAAQA,IAAOy/B,KAGrC,QACE,OAAO7tC,IA6QX+lC,WAxQiB,WAAyB,IAAxB/lC,EAAuB,uDAAf,GAAIC,EAAW,uCACzC,OAAQA,EAAOC,MACb,KAAKkgB,IACH,MAAO,GAGT,KAAKjgB,IACH,IAAQ4lC,EAAe9lC,EAAOM,QAAtBwlC,WACF5lB,EAAQ,eAAQ4lB,GACtB,OAAO5lB,EAIT,QACE,OAAOngB,IA2PXuvC,gBAtPsB,WAAyB,IAAxBvvC,EAAuB,uDAAf,GAAIC,EAAW,uCAC9C,OAAQA,EAAOC,MACb,KAAKkgB,IACH,MAAO,GAGT,KAAKjgB,IACH,IAAQovC,EAAoBtvC,EAAOM,QAA3BgvC,gBACFpvB,EAAQ,eAAQovB,GACtB,OAAOpvB,EAIT,QACE,OAAOngB,IAyOXwvC,iBApOuB,WAAyB,IAAxBxvC,EAAuB,uDAAf,GAAIC,EAAW,uCAC/C,OAAQA,EAAOC,MACb,KAAKkgB,IACH,MAAO,GAGT,KAAKjgB,IACH,IAAQqvC,EAAqBvvC,EAAOM,QAA5BivC,iBACFrvB,EAAQ,eAAQqvB,GACtB,OAAOrvB,EAIT,QACE,OAAOngB,IAuNXqe,cACAq+H,qBAlN2B,WAA4B,IAA3B18I,EAA0B,wDAAXC,EAAW,uCACtD,OAAQA,EAAOC,MACb,KAAKkgB,IACH,OAAO,EAET,KAAKjgB,IACH,OAAO,EAET,KAAKA,IACL,KAAKA,IACH,OAAO,EAET,QACE,OAAOH,IAsMX+/O,oBAjM0B,WAA4B,IAA3B//O,EAA0B,wDAAXC,EAAW,uCACrD,OAAQA,EAAOC,MACb,KAAKkgB,IACH,OAAO,EAET,KAAKjgB,IACH,OAAO,EAET,KAAKA,IACL,KAAKA,IACH,OAAO,EAET,QACE,OAAOH,IAqLX48I,qBAhL2B,WAA4B,IAA3B58I,EAA0B,wDAAXC,EAAW,uCACtD,OAAQA,EAAOC,MACb,KAAKkgB,IACH,OAAO,EAET,KAAKjgB,IACH,OAAO,EAET,KAAKA,IACL,KAAKA,IACH,OAAO,EAET,QACE,OAAOH,IAoKX68I,sBA/J4B,WAA4B,IAA3B78I,EAA0B,wDAAXC,EAAW,uCACvD,OAAQA,EAAOC,MACb,KAAKkgB,IACH,OAAO,EAET,KAAKjgB,IACH,OAAO,EAET,KAAKA,IACL,KAAKA,IACH,OAAO,EAET,QACE,OAAOH,IAmJXggP,yBA9I+B,WAA4B,IAA3BhgP,EAA0B,wDAAXC,EAAW,uCAC1D,OAAQA,EAAOC,MACb,KAAKkgB,IACH,OAAO,EAET,KAAKjgB,IACH,OAAO,EAET,KAAKA,IACL,KAAKA,IACH,OAAO,EAET,QACE,OAAOH,IAkIXigP,wBA7H8B,WAA4B,IAA3BjgP,EAA0B,wDAAXC,EAAW,uCACzD,OAAQA,EAAOC,MACb,KAAKkgB,IACH,OAAO,EAET,KAAKjgB,IACH,OAAO,EAET,KAAKA,IACL,KAAKA,IACH,OAAO,EAET,QACE,OAAOH,IAiHXq9I,wBA5G8B,WAA2B,IAA1Br9I,EAAyB,uDAAjB,KAAMC,EAAW,uCACxD,OAAQA,EAAOC,MACb,KAAKkgB,IACH,OAAO,KAET,KAAKjgB,IACH,IAAQ4B,EAAU9B,EAAOM,QAAjBwB,MACR,OAAOA,EAET,KAAK5B,IACL,KAAKA,IACH,OAAO,KAET,QACE,OAAOH,IA+FXkgP,uBA1F6B,WAA2B,IAA1BlgP,EAAyB,uDAAjB,KAAMC,EAAW,uCACvD,OAAQA,EAAOC,MACb,KAAKkgB,IACH,OAAO,KAET,KAAKjgB,IACH,IAAQ4B,EAAU9B,EAAOM,QAAjBwB,MACR,OAAOA,EAET,KAAK5B,IACL,KAAKA,IACH,OAAO,KAET,QACE,OAAOH,IA6EXu9I,wBAxE8B,WAA2B,IAA1Bv9I,EAAyB,uDAAjB,KAAMC,EAAW,uCACxD,OAAQA,EAAOC,MACb,KAAKkgB,IACH,OAAO,KAET,KAAKjgB,IACH,IAAQ4B,EAAU9B,EAAOM,QAAjBwB,MACR,OAAOA,EAET,KAAK5B,IACL,KAAKA,IACH,OAAO,KAET,QACE,OAAOH,IA2DXw9I,yBAtD+B,WAA2B,IAA1Bx9I,EAAyB,uDAAjB,KAAMC,EAAW,uCACzD,OAAQA,EAAOC,MACb,KAAKkgB,IACH,OAAO,KAET,KAAKjgB,IACH,IAAQ4B,EAAU9B,EAAOM,QAAjBwB,MACR,OAAOA,EAET,KAAK5B,IACL,KAAKA,IACH,OAAO,KAET,QACE,OAAOH,IAyCXmgP,2BApCiC,WAA2B,IAA1BngP,EAAyB,uDAAjB,KAAMC,EAAW,uCAC3D,OAAQA,EAAOC,MACb,KAAKkgB,IACH,OAAO,KAET,KAAKjgB,IACH,IAAQ4B,EAAU9B,EAAOM,QAAjBwB,MACR,OAAOA,EAET,KAAK5B,IACL,KAAKA,IACH,OAAO,KAET,QACE,OAAOH,OA4BAyC,EAAc,SAACzC,GAAD,OAAWA,EAAMoe,UAAUkyB,qBAGzC8vM,EAAwB,SAACpgP,EAAO6tC,GAC3C,IAAMpkC,EAAOI,cACP8lC,EAAoBltC,EAAYzC,GAAO25G,KAAK9rE,GAClD,GAAI8B,EAAmB,CAAC,IAAD,cACf0wM,EACJC,IACEtgP,EACA2vC,EAAkB9B,SAEhB0yM,EAA+B,sBAChC/0M,IACiBxrC,GACjBs8B,QAAO,SAACpV,GAAD,MACN,CACEyoB,EAAkBlE,iBAClBkE,EAAkB7D,eAClB6D,EAAkB1D,uBAClBzmC,SAAS0hB,EAASwB,gBARW,EAUlB,OAAjBinB,QAAiB,IAAjBA,OAAA,EAAAA,EAAmB6wM,kBACf,CACE93N,WAAY,wBACZosK,MAAO,IACPnpJ,aAAcliC,EAAK0E,cAAc,CAAEC,GAAI,oCACvC+yL,kBAAiB,OAAExxJ,QAAF,IAAEA,OAAF,EAAEA,EAAmB6wM,uBAExClyO,IACJguB,QAAO,SAACpV,GAAD,OAAcA,KACjB03F,EAAc,UAClB2hI,EAA6BjkN,QAC3B,SAACpV,GAAD,OAAcA,EAASwB,cAAT,OAAwBinB,QAAxB,IAAwBA,OAAxB,EAAwBA,EAAmBlE,qBACzD,UAHgB,aAGVn9B,EACJuwG,EAAY,UAChB0hI,EAA6BjkN,QAAO,SAACpV,GAAD,MAClC,QAACyoB,QAAD,IAACA,OAAD,EAACA,EAAmB7D,eAAgB,yBAAyBtmC,SAAS0hB,EAASwB,eAC/E,UAHc,aAGRpa,EACJwwG,EAAmB,UACvByhI,EAA6BjkN,QAC3B,SAACpV,GAAD,OAAcA,EAASwB,cAAT,OAAwBinB,QAAxB,IAAwBA,OAAxB,EAAwBA,EAAmB1D,0BACzD,UAHqB,aAGf39B,EAENmyO,EAAuB,GACvBC,EAA2B,GAC/B,OAAQ/wM,EAAkBJ,iBACxB,KAAK,EACHkxM,EAAuBh3O,EAAK0E,cAAc,CACxCC,GAAI,yBAENsyO,EAA2Bj3O,EAAK0E,cAAc,CAC5CC,GAAI,6BAEN,MACF,KAAK,EACHqyO,EAAuBh3O,EAAK0E,cAAc,CACxCC,GAAI,wBAENsyO,EAA2Bj3O,EAAK0E,cAAc,CAC5CC,GAAI,4BAEN,MACF,KAAK,EACHqyO,EAAuBh3O,EAAK0E,cAAc,CACxCC,GAAI,uBAENsyO,EAA2Bj3O,EAAK0E,cAAc,CAC5CC,GAAI,2BAEN,MACF,KAAK,EACHqyO,EAAuBh3O,EAAK0E,cAAc,CACxCC,GAAI,4BAENsyO,EAA2Bj3O,EAAK0E,cAAc,CAC5CC,GAAI,gCAEN,MACF,KAAK,EACHqyO,EAAuBh3O,EAAK0E,cAAc,CACxCC,GAAI,yBAENsyO,EAA2Bj3O,EAAK0E,cAAc,CAC5CC,GAAI,6BAEN,MACF,KAAK,EACHqyO,EAAuBh3O,EAAK0E,cAAc,CACxCC,GAAI,uBAENsyO,EAA2Bj3O,EAAK0E,cAAc,CAC5CC,GAAI,2BAEN,MACF,KAAK,EACHqyO,EAAuBh3O,EAAK0E,cAAc,CACxCC,GAAI,kBAENsyO,EAA2Bj3O,EAAK0E,cAAc,CAC5CC,GAAI,sBAEN,MACF,KAAK,EACHqyO,EAAuBh3O,EAAK0E,cAAc,CACxCC,GAAI,kBAENsyO,EAA2Bj3O,EAAK0E,cAAc,CAC5CC,GAAI,sBAEN,MACF,KAAK,EACHqyO,EAAuBh3O,EAAK0E,cAAc,CACxCC,GAAI,kBAENsyO,EAA2Bj3O,EAAK0E,cAAc,CAC5CC,GAAI,sBAEN,MACF,KAAK,GACHqyO,EAAuBh3O,EAAK0E,cAAc,CACxCC,GAAI,kBAENsyO,EAA2Bj3O,EAAK0E,cAAc,CAC5CC,GAAI,sBAEN,MACF,KAAK,GACHqyO,EAAuBh3O,EAAK0E,cAAc,CACxCC,GAAI,kBAENsyO,EAA2Bj3O,EAAK0E,cAAc,CAC5CC,GAAI,sBAEN,MACF,KAAK,GACHqyO,EAAuBh3O,EAAK0E,cAAc,CACxCC,GAAI,yBAENsyO,EAA2Bj3O,EAAK0E,cAAc,CAC5CC,GAAI,6BAEN,MACF,QACEqyO,EAAuB,GACvBC,EAA2B,GAG/B,OAAO,2BACF/wM,GADL,IAEEgxM,SAAWhxM,EAAkBixM,SAAWjxM,EAAkB+jF,OAAS,GAAM,IACzEmtH,cACE98I,KAAKH,MAAOj0D,EAAkBixM,SAAWjxM,EAAkB+jF,OAAS,GAAM,KAAO,IACnFotH,QAASnxM,EAAkB+jF,MAAQ/jF,EAAkBixM,QACrDG,mBACE77O,SAASyqC,EAAkBqxM,oBAAsB,GACjD,MACA97O,SAASyqC,EAAkBsxM,sBAAwB,GACnD,MACA/7O,SAASyqC,EAAkBuxM,sBAAwB,GACrDT,uBACAC,2BACAzhI,mBAAkB,iBAAEL,QAAF,IAAEA,OAAF,EAAEA,EAAgBjzE,oBAAlB,QAAkC,GACpDG,eAAc,iBAAE+yE,QAAF,IAAEA,OAAF,EAAEA,EAAcn2F,kBAAhB,QAA8B,KAC5Cw2F,iBAAgB,iBAAEL,QAAF,IAAEA,OAAF,EAAEA,EAAclzE,oBAAhB,QAAgC,GAChDwzE,wBAAuB,iBAAEL,QAAF,IAAEA,OAAF,EAAEA,EAAqBnzE,oBAAvB,QAAuC,GAC9DttB,UAAWgiO,EACXxhO,UAAW0hO,M,2BClXF/tM,EAXSnyC,YAAgB,CACtCs5G,KAtKW,WAAyB,IAAxB35G,EAAuB,uDAAf,GAAIC,EAAW,uCACnC,OAAQA,EAAOC,MACb,KAAKkgB,IACH,MAAO,GAGT,KAAKjgB,IACH,MAA4BF,EAAOM,QAA3B2d,EAAR,EAAQA,SAAUshB,EAAlB,EAAkBA,MACZrf,EAAQ,eAAQngB,GAStB,OARAw/B,EAAMrR,SAAQ,SAAC0f,GACb1tB,EAAS0tB,GAAT,qCACExf,YAAY,GACTruB,EAAM6tC,IACN3vB,EAAS2vB,IAHd,IAIE13B,aAAa,OAGVgK,EAIT,QACE,OAAOngB,IAiJXw/B,MA5IY,WAAyB,IAAxBx/B,EAAuB,uDAAf,GAAIC,EAAW,uCACpC,OAAQA,EAAOC,MACb,KAAKkgB,IACH,MAAO,GAGT,KAAKjgB,IACH,IAAQq/B,EAAUv/B,EAAOM,QAAjBi/B,MACR,OAAOs6E,IAAMt6E,GAIf,QACE,OAAOx/B,IAgIXmhP,QA3Hc,WAAyB,IAAxBnhP,EAAuB,uDAAf,GAAIC,EAAW,uCACtC,OAAQA,EAAOC,MACb,KAAKkgB,IACH,MAAO,GAGT,KAAKjgB,IACH,MAA4BF,EAAOM,QAA3B2d,EAAR,EAAQA,SAAUshB,EAAlB,EAAkBA,MACZrf,EAAW,GASjB,OARAqf,EAAMrR,SAAQ,SAAC0f,GACb1tB,EAAS0tB,GAAT,qCACExf,YAAY,GACTruB,EAAM6tC,IACN3vB,EAAS2vB,IAHd,IAIE13B,aAAa,OAGVgK,EAIT,QACE,OAAOngB,IAsGXohP,SAjGe,WAAyB,IAAxBphP,EAAuB,uDAAf,GAAIC,EAAW,uCACvC,OAAQA,EAAOC,MACb,KAAKkgB,IACH,MAAO,GAGT,KAAKjgB,IACH,IAAQq/B,EAAUv/B,EAAOM,QAAjBi/B,MACR,OAAOs6E,IAAMt6E,GAIf,QACE,OAAOx/B,IAqFXqhP,iBA/EuB,WAA4B,IAA3BrhP,EAA0B,wDAAXC,EAAW,uCAClD,OAAQA,EAAOC,MACb,KAAKkgB,IACH,OAAO,EAET,KAAKjgB,IACH,OAAO,EAET,KAAKA,IACL,KAAKA,IACH,OAAO,EAET,QACE,OAAOH,IAmEXshP,oBA9D0B,WAA4B,IAA3BthP,EAA0B,wDAAXC,EAAW,uCACrD,OAAQA,EAAOC,MACb,KAAKkgB,IACH,OAAO,EAET,KAAKjgB,IACH,OAAO,EAET,KAAKA,IACL,KAAKA,IACH,OAAO,EAET,QACE,OAAOH,IAkDXuhP,oBA7C0B,WAA2B,IAA1BvhP,EAAyB,uDAAjB,KAAMC,EAAW,uCACpD,OAAQA,EAAOC,MACb,KAAKkgB,IACH,OAAO,KAET,KAAKjgB,IACH,IAAQ4B,EAAU9B,EAAOM,QAAjBwB,MACR,OAAOA,EAET,KAAK5B,IACL,KAAKA,IACH,OAAO,KAET,QACE,OAAOH,IAgCXwhP,uBA3B6B,WAA2B,IAA1BxhP,EAAyB,uDAAjB,KAAMC,EAAW,uCACvD,OAAQA,EAAOC,MACb,KAAKkgB,IACH,OAAO,KAET,KAAKjgB,IACH,IAAQ4B,EAAU9B,EAAOM,QAAjBwB,MACR,OAAOA,EAET,KAAK5B,IACL,KAAKA,IACH,OAAO,KAET,QACE,OAAOH,M,kBC8CEyhP,EAZSphP,YAAgB,CACtCs5G,KAjMW,WAAyB,IAAxB35G,EAAuB,uDAAf,GAAIC,EAAW,uCACnC,OAAQA,EAAOC,MACb,KAAKkgB,IACH,MAAO,GAGT,KAAKjgB,IACH,MAA4BF,EAAOM,QAA3B2d,EAAR,EAAQA,SAAUshB,EAAlB,EAAkBA,MACZrf,EAAQ,eAAQngB,GAStB,OARAw/B,EAAMrR,SAAQ,SAAC0f,GACb1tB,EAAS0tB,GAAT,qCACExf,YAAY,GACTruB,EAAM6tC,IACN3vB,EAAS2vB,IAHd,IAIE13B,aAAa,OAGVgK,EAIT,QACE,OAAOngB,IA4KXw/B,MAvKY,WAAyB,IAAxBx/B,EAAuB,uDAAf,GAAIC,EAAW,uCACpC,OAAQA,EAAOC,MACb,KAAKkgB,IACH,MAAO,GAGT,KAAKjgB,IACH,IAAQq/B,EAAUv/B,EAAOM,QAAjBi/B,MACR,OAAOs6E,gBAAMt6E,GAIf,QACE,OAAOx/B,IA2JX+lC,WAtJiB,WAAyB,IAAxB/lC,EAAuB,uDAAf,GAAIC,EAAW,uCACzC,OAAQA,EAAOC,MACb,KAAKkgB,IACH,MAAO,GAGT,KAAKjgB,IACH,IAAQ4lC,EAAe9lC,EAAOM,QAAtBwlC,WACF5lB,EAAQ,eAAQ4lB,GACtB,OAAO5lB,EAIT,QACE,OAAOngB,IAyIX68J,UApIgB,WAAyB,IAAxB78J,EAAuB,uDAAf,GAAIC,EAAW,uCACxC,OAAQA,EAAOC,MACb,KAAKkgB,IACH,MAAO,GAGT,KAAKjgB,IACH,MAAsCF,EAAOM,QAArCwmC,EAAR,EAAQA,cAAeC,EAAvB,EAAuBA,WACjB7mB,EAAQ,eAAQngB,GAStB,OARAgnC,EAAW7Y,SAAQ,SAAC8G,GAClB9U,EAAS8U,GAAT,qCACE5G,YAAY,GACTruB,EAAMi1B,IACN8R,EAAc9R,IAHnB,IAIE9e,aAAa,OAGVgK,EAIT,QACE,OAAOngB,IA+GXgnC,WA1GiB,WAAyB,IAAxBhnC,EAAuB,uDAAf,GAAIC,EAAW,uCACzC,OAAQA,EAAOC,MACb,KAAKkgB,IACH,MAAO,GAGT,KAAKjgB,IACH,IAAQ6mC,EAAe/mC,EAAOM,QAAtBymC,WACR,OAAO8yE,gBAAM9yE,GAIf,QACE,OAAOhnC,IA8FX0hP,cAzFoB,WAAyB,IAAxB1hP,EAAuB,uDAAf,GAAIC,EAAW,uCAC5C,OAAQA,EAAOC,MACb,KAAKkgB,IACH,MAAO,GAGT,KAAKjgB,IACH,MAA8CF,EAAOM,QAA7CsxC,EAAR,EAAQA,kBAAmBC,EAA3B,EAA2BA,eACrB3xB,EAAQ,eAAQngB,GAStB,OARA8xC,EAAe3jB,SAAQ,SAAC2f,GACtB3tB,EAAS2tB,GAAT,qCACEzf,YAAY,GACTruB,EAAM8tC,IACN+D,EAAkB/D,IAHvB,IAIE33B,aAAa,OAGVgK,EAIT,QACE,OAAOngB,IAoEX8xC,eA/DqB,WAAyB,IAAxB9xC,EAAuB,uDAAf,GAAIC,EAAW,uCAC7C,OAAQA,EAAOC,MACb,KAAKkgB,IACH,MAAO,GAGT,KAAKjgB,IACH,IAAQ2xC,EAAmB7xC,EAAOM,QAA1BuxC,eACR,OAAOgoE,gBAAMhoE,GAIf,QACE,OAAO9xC,IAmDX+8J,iBA7CuB,WAA4B,IAA3B/8J,EAA0B,wDAAXC,EAAW,uCAClD,OAAQA,EAAOC,MACb,KAAKkgB,IACH,OAAO,EAET,KAAKjgB,IACH,OAAO,EAET,KAAKA,IACL,KAAKA,IACH,OAAO,EAET,QACE,OAAOH,IAiCXg9J,oBA5B0B,WAA2B,IAA1Bh9J,EAAyB,uDAAjB,KAAMC,EAAW,uCACpD,OAAQA,EAAOC,MACb,KAAKkgB,IACH,OAAO,KAET,KAAKjgB,IACH,IAAQ4B,EAAU9B,EAAOM,QAAjBwB,MACR,OAAOA,EAET,KAAK5B,IACL,KAAKA,IACH,OAAO,KAET,QACE,OAAOH,M,uECycPoe,EAAiB/d,YAAgB,CACrCiwC,sBACAkC,kBACAivM,kBACAE,sBACAtM,yBACA17H,KA5nBW,WAAyB,IAAxB35G,EAAuB,uDAAf,GAAIC,EAAW,uCACnC,OAAQA,EAAOC,MACb,KAAKkgB,IACH,MAAO,GAGT,KAAKjgB,IACL,KAAKA,IACH,MAA4BF,EAAOM,QAA3B2d,EAAR,EAAQA,SAAUshB,EAAlB,EAAkBA,MACZrf,EAAQ,eAAQngB,GAStB,OARAw/B,EAAMrR,SAAQ,SAAC0c,GACb1qB,EAAS0qB,GAAT,qCACExc,YAAY,GACTruB,EAAM6qC,IACN3sB,EAAS2sB,IAHd,IAIE10B,aAAa,OAGVgK,EAGT,KAAKhgB,IACH,MAAkCF,EAAOM,QAAjCsqC,EAAR,EAAQA,WAAYxsB,EAApB,EAAoBA,UACd8B,EAAQ,2BACTngB,GADS,kBAEX6qC,EAFW,2BAGP7qC,EAAM6qC,IAHC,IAIVxsB,gBAGJ,OAAO8B,EAGT,KAAKhgB,IACH,MAA4BF,EAAOM,QAA3B0tC,EAAR,EAAQA,MAAO1E,EAAf,EAAeA,SACTppB,EAAW69F,IAAKh+G,EAAOiuC,GAM7B,OALA9tB,EAASopB,EAASsB,YAAlB,uCACK7qC,EAAMiuC,IACN1E,GAFL,IAGEpzB,aAAa,IAERgK,EAGT,KAAKhgB,IACH,IAAMopC,EAAWtpC,EAAOM,QACxB,OAAO,2BACFP,GADL,kBAEGupC,EAASsB,WAFZ,uCAGOmzE,IAAKh+G,EAAMupC,EAASsB,YAAa,CAAC,iBAClCmzE,IAAKz0E,EAAU,CAAC,iBAJvB,IAKIpzB,aAAa,MAMnB,KAAKhW,IACH,IAAMopC,EAAWtpC,EAAOM,QAClB4f,EAAQ,eAAQngB,GAMtB,OALAmgB,EAASopB,EAASsB,YAAlB,yBACExc,YAAY,GACTkb,GAFL,IAGEpzB,aAAa,IAERgK,EAET,KAAKhgB,IACH,IAAMopC,EAAWtpC,EAAOM,QACxB,OAAO,2BACFP,GADL,kBAEGupC,EAASsB,WAFZ,uCAGO7qC,EAAMupC,EAASsB,aAHtB,IAIIG,YAAahrC,EAAMupC,EAASsB,aACzBtB,GALP,IAMIpzB,aAAa,MAMnB,KAAKhW,IACH,IAAQ8tC,EAAUhuC,EAAOM,QAAjB0tC,MACR,OAAIjuC,EAAMiuC,GACD+vE,IAAKh+G,EAAOiuC,GAEdjuC,EAET,KAAKG,IACH,IAAQ6qC,EAAgB/qC,EAAOM,QAAvByqC,YACR,OAAO,2BACFhrC,GADL,kBAEGgrC,EAAYH,WAFf,uCAGOmzE,IAAKh+G,EAAMgrC,EAAYH,YAAa,CAAC,iBACrCG,GAJP,IAKI70B,aAAa,MAMnB,KAAKhW,IACH,IAAQ0qC,EAAe5qC,EAAOM,QAAtBsqC,WACR,OAAOmzE,IAAKh+G,EAAO6qC,GAIrB,KAAK1qC,IACH,IAAM0qC,EAAa5qC,EAAOM,QACpB4f,EAAQ,2BACTngB,GADS,kBAEX6qC,EAFW,2BAGP7qC,EAAM6qC,IAHC,IAIVxc,YAAY,MAGhB,OAAOlO,EAGT,KAAKhgB,IACH,IAAM0qC,EAAa5qC,EAAOM,QAC1B,OAAO,2BACFP,GADL,kBAEG6qC,EAFH,2BAGO7qC,EAAM6qC,IAHb,IAIIxc,YAAY,MAKlB,KAAKluB,IACH,IAAMurC,EAAczrC,EAAOM,QACrB4f,EAAQ,eAAQngB,GAiBtB,OAhB0B,GAAtB0rC,EAAY1iB,OACdmF,IAAQnuB,GAAO,SAACupC,EAAesB,GAC7B1qB,EAAS0qB,GAAT,2BACKtB,GADL,IAEElb,YAAY,OAIhBqd,EAAYvd,SAAQ,SAAC0c,GACnB1qB,EAAS0qB,GAAT,2BACK7qC,EAAM6qC,IADX,IAEExc,YAAY,OAKXlO,EAGT,KAAKhgB,IACH,IAAMurC,EAAczrC,EAAOM,QACrB4f,EAAQ,eAAQngB,GAiBtB,OAhB0B,GAAtB0rC,EAAY1iB,OACdmF,IAAQnuB,GAAO,SAACupC,EAAesB,GAC7B1qB,EAAS0qB,GAAT,2BACKtB,GADL,IAEElb,YAAY,OAIhBqd,EAAYvd,SAAQ,SAAC0c,GACnB1qB,EAAS0qB,GAAT,2BACK7qC,EAAM6qC,IADX,IAEExc,YAAY,OAKXlO,EAIT,KAAKhgB,IACH,MAOIF,EAAOM,QANTsqC,EADF,EACEA,WACAS,EAFF,EAEEA,cACAC,EAHF,EAGEA,gBACA7mC,EAJF,EAIEA,eACAE,EALF,EAKEA,WACAE,EANF,EAMEA,cAGF,OAAO,2BACF9E,GADL,kBAEGsrC,EAFH,yBAGIjd,YAAY,GACTruB,EAAM6qC,IAJb,IAKIA,WAAYS,EACZD,aAAcE,EACd7mC,iBACAE,aACAE,gBACAqR,aAAa,MAMnB,KAAKhW,IACH,MAMIF,EAAOM,QALTmrC,EADF,EACEA,YACAD,EAFF,EAEEA,iBACAwzE,EAHF,EAGEA,mBACArzE,EAJF,EAIEA,iBACAC,EALF,EAKEA,uBAEI1rB,EAAQ,eAAQngB,GAatB,OAZA0rC,EAAY1pB,KACV,SAAC6oB,GAAD,OACG1qB,EAAS0qB,GAAT,yBACCxc,YAAY,GACTruB,EAAM6qC,IAFV,IAGCY,mBACAwzE,qBACArzE,mBACAC,yBACA11B,aAAa,OAGZgK,EAET,KAAKhgB,IACH,MAMIF,EAAOM,QALTmrC,EADF,EACEA,YACAI,EAFF,EAEEA,eACAozE,EAHF,EAGEA,iBACAnzE,EAJF,EAIEA,yBACAC,EALF,EAKEA,oBAEI7rB,GAAQ,eAAQngB,GAatB,OAZA0rC,EAAY1pB,KACV,SAAC6oB,GAAD,OACG1qB,GAAS0qB,GAAT,yBACCxc,YAAY,GACTruB,EAAM6qC,IAFV,IAGCiB,iBACAozE,mBACAnzE,2BACAC,sBACA71B,aAAa,OAGZgK,GAET,KAAKhgB,IACH,OAAwEF,EAAOM,QAAvEmrC,GAAR,GAAQA,YAAaO,GAArB,GAAqBA,sBAAuBkzE,GAA5C,GAA4CA,wBACtCh/F,GAAQ,eAAQngB,GAWtB,OAVA0rC,GAAY1pB,KACV,SAAC6oB,GAAD,OACG1qB,GAAS0qB,GAAT,yBACCxc,YAAY,GACTruB,EAAM6qC,IAFV,IAGCoB,yBACAkzE,2BACAhpG,aAAa,OAGZgK,GAIT,QACE,OAAOngB,IAoXXw/B,MA/WY,WAAyB,IAAxBx/B,EAAuB,uDAAf,GAAIC,EAAW,uCACpC,OAAQA,EAAOC,MACb,KAAKkgB,IACH,MAAO,GAGT,KAAKjgB,IACH,IAAQq/B,EAAUv/B,EAAOM,QAAjBi/B,MACR,OAAOs6E,IAAMt6E,GAGf,KAAKr/B,IACH,IAAQq/B,EAAUv/B,EAAOM,QAAjBi/B,MACR,OAAO+yB,IAAK,GAAD,mBAAKvyD,GAAL,YAAew/B,KAG5B,KAAKr/B,IACH,MAA4BF,EAAOM,QAA3B0tC,EAAR,EAAQA,MAAO1E,EAAf,EAAeA,SACf,OAAOvpC,EAAMgiB,KAAI,SAAC6oB,GAAD,OAAiBA,IAAeoD,EAAQ1E,EAASsB,WAAaA,KAGjF,KAAK1qC,IACH,IAAQ0qC,EAAe5qC,EAAOM,QAAtBsqC,WACR,OAAO7qC,EAAMs8B,QAAO,SAACslN,GAAD,OAAqBA,IAAoB/2M,KAI/D,KAAK1qC,IACH,IAAMopC,EAAWtpC,EAAOM,QACxB,MAAM,GAAN,mBAAWP,GAAX,CAAkBupC,EAASsB,aAI7B,KAAK1qC,IACH,IAAQ8tC,EAAUhuC,EAAOM,QAAjB0tC,MACR,OAAOjuC,EAAMs8B,QAAO,SAACslN,GAAD,OAAqBA,IAAoB3zM,KAI/D,KAAK9tC,IACH,IAAQmrC,EAAkBrrC,EAAOM,QAAzB+qC,cACR,MAAM,GAAN,mBAAWtrC,GAAX,CAAkBsrC,IAIpB,QACE,OAAOtrC,IAkUXm+G,sBA1S4B,WAA4B,IAA3Bn+G,EAA0B,wDAAXC,EAAW,uCACvD,OAAQA,EAAOC,MACb,KAAKkgB,IACH,OAAO,EAET,KAAKjgB,IACH,OAAO,EAET,KAAKA,IACL,KAAKA,IACH,OAAO,EAET,QACE,OAAOH,IA8RX47G,eA7TqB,WAA4B,IAA3B57G,EAA0B,wDAAXC,EAAW,uCAChD,OAAQA,EAAOC,MACb,KAAKkgB,IACH,OAAO,EAET,KAAKjgB,IACH,OAAO,EAET,KAAKA,IACL,KAAKA,IACH,OAAO,EAET,QACE,OAAOH,IAiTX6hP,wBA1R8B,WAA4B,IAA3B7hP,EAA0B,wDAAXC,EAAW,uCACzD,OAAQA,EAAOC,MACb,KAAKkgB,IACH,OAAO,EAET,KAAKjgB,IACH,OAAO,EAET,KAAKA,IACL,KAAKA,IACH,OAAO,EAET,QACE,OAAOH,IA8QXo+G,SAzQe,WAA4B,IAA3Bp+G,EAA0B,wDAAXC,EAAW,uCAC1C,OAAQA,EAAOC,MACb,KAAKkgB,IACH,OAAO,EAET,KAAKjgB,IACH,OAAO,EAET,KAAKA,IACL,KAAKA,IACH,OAAO,EAET,QACE,OAAOH,IA6PXq+G,UAxPgB,WAA4B,IAA3Br+G,EAA0B,wDAAXC,EAAW,uCAC3C,OAAQA,EAAOC,MACb,KAAKkgB,IACH,OAAO,EAET,KAAKjgB,IACH,OAAO,EAET,KAAKA,IACL,KAAKA,IACH,OAAO,EAET,QACE,OAAOH,IA4OXs+G,WAvOiB,WAA4B,IAA3Bt+G,EAA0B,wDAAXC,EAAW,uCAC5C,OAAQA,EAAOC,MACb,KAAKkgB,IACH,OAAO,EAET,KAAKjgB,IACH,OAAO,EAET,KAAKA,IACL,KAAKA,IACH,OAAO,EAET,QACE,OAAOH,IA2NXi+J,UAtNgB,WAA4B,IAA3Bj+J,EAA0B,wDAAXC,EAAW,uCAC3C,OAAQA,EAAOC,MACb,KAAKkgB,IACH,OAAO,EAET,KAAKjgB,IACH,OAAO,EAET,KAAKA,IACL,KAAKA,IACH,OAAO,EAET,QACE,OAAOH,IA0MX8hP,oBArM0B,WAA4B,IAA3B9hP,EAA0B,wDAAXC,EAAW,uCACrD,OAAQA,EAAOC,MACb,KAAKkgB,IACH,OAAO,EAET,KAAKjgB,IACL,KAAKA,IACL,KAAKA,IACH,OAAO,EAET,KAAKA,IACL,KAAKA,IACL,KAAKA,IACL,KAAKA,IACL,KAAKA,IACL,KAAKA,IACH,OAAO,EAET,QACE,OAAOH,IAmLXu+G,yBA3J+B,WAA2B,IAA1Bv+G,EAAyB,uDAAjB,KAAMC,EAAW,uCACzD,OAAQA,EAAOC,MACb,KAAKkgB,IACH,OAAO,KAET,KAAKjgB,IACH,IAAQ4B,EAAU9B,EAAOM,QAAjBwB,MACR,OAAOA,EAET,KAAK5B,IACL,KAAKA,IACH,OAAO,KAET,QACE,OAAOH,IA8IX87G,kBA/KwB,WAA2B,IAA1B97G,EAAyB,uDAAjB,KAAMC,EAAW,uCAClD,OAAQA,EAAOC,MACb,KAAKkgB,IACH,OAAO,KAET,KAAKjgB,IACH,IAAQ4B,EAAU9B,EAAOM,QAAjBwB,MACR,OAAOA,EAET,KAAK5B,IACL,KAAKA,IACH,OAAO,KAET,QACE,OAAOH,IAkKX+hP,2BA1IiC,WAA2B,IAA1B/hP,EAAyB,uDAAjB,KAAMC,EAAW,uCAC3D,OAAQA,EAAOC,MACb,KAAKkgB,IACH,OAAO,KAET,KAAKjgB,IACH,IAAQ4B,EAAU9B,EAAOM,QAAjBwB,MACR,OAAOA,EAET,KAAK5B,IACL,KAAKA,IACH,OAAO,KAET,QACE,OAAOH,IA6HXw+G,YAxHkB,WAA2B,IAA1Bx+G,EAAyB,uDAAjB,KAAMC,EAAW,uCAC5C,OAAQA,EAAOC,MACb,KAAKkgB,IACH,OAAO,KAET,KAAKjgB,IACH,IAAQ4B,EAAU9B,EAAOM,QAAjBwB,MACR,OAAOA,EAET,KAAK5B,IACL,KAAKA,IACH,OAAO,KAET,QACE,OAAOH,IA2GXy+G,aAtGmB,WAA2B,IAA1Bz+G,EAAyB,uDAAjB,KAAMC,EAAW,uCAC7C,OAAQA,EAAOC,MACb,KAAKkgB,IACH,OAAO,KAET,KAAKjgB,IACH,IAAQ4B,EAAU9B,EAAOM,QAAjBwB,MACR,OAAOA,EAET,KAAK5B,IACL,KAAKA,IACH,OAAO,KAET,QACE,OAAOH,IAyFX0+G,cApFoB,WAA2B,IAA1B1+G,EAAyB,uDAAjB,KAAMC,EAAW,uCAC9C,OAAQA,EAAOC,MACb,KAAKkgB,IACH,OAAO,KAET,KAAKjgB,IACH,IAAQ4B,EAAU9B,EAAOM,QAAjBwB,MACR,OAAOA,EAET,KAAK5B,IACL,KAAKA,IACH,OAAO,KAET,QACE,OAAOH,IAuEXk+J,aAlEmB,WAA4B,IAA3Bl+J,EAA0B,wDAAXC,EAAW,uCAC9C,OAAQA,EAAOC,MACb,KAAKkgB,IACH,OAAO,EAET,KAAKjgB,IACH,IAAQ4B,EAAU9B,EAAOM,QAAjBwB,MACR,OAAOA,EAET,KAAK5B,IACL,KAAKA,IACH,OAAO,EAET,QACE,OAAOH,IAqDXgiP,uBAhD6B,WAA4B,IAA3BhiP,EAA0B,wDAAXC,EAAW,uCACxD,OAAQA,EAAOC,MACb,KAAKkgB,IACH,OAAO,EAET,KAAKjgB,IACL,KAAKA,IACL,KAAKA,IACH,IAAQ4B,EAAU9B,EAAOM,QAAjBwB,MACR,OAAOA,EAET,KAAK5B,IACL,KAAKA,IACL,KAAKA,IACL,KAAKA,IACL,KAAKA,IACL,KAAKA,IACH,OAAO,EAET,QACE,OAAOH,MA+BPiiP,EAAyB,CAC7B//O,IAAK,YACLC,QAASC,IACTC,gBAAiBC,IACjBC,UAAW,CACT,sBACA,kBACA,kBACA,oBACA,uBACA,wBACA,iBACA,0BACA,WACA,YACA,aACA,YACA,sBACA,2BACA,oBACA,6BACA,cACA,eACA,gBACA,eACA,0BAEFgqH,UAAW,CAAC,OAAQ,UAMT9pH,GAHED,gBAAey/O,EAAwB7jO,GAG3B,SAACpe,GAAD,OAAWA,EAAMoe,YAG/B8jO,EAAc,SAACliP,EAAO6qC,GACjC,IAAMphC,EAAOI,cACP0/B,EAAW9mC,EAAYzC,GAAO25G,KAAK9uE,GACzC,GAAItB,EAAU,CACZ,IAAMjd,EAAeid,EAAS7kC,eAC1Be,kBAAsCzF,EAAOupC,EAAS7kC,qBACtD4J,EACE+U,EAAWkmB,EAAS3kC,WACtBm6G,cAA8B/+G,EAAOupC,EAAS3kC,iBAC9C0J,EACE6iB,EAAcoY,EAASzkC,cACzBk6G,iBAAoCh/G,EAAOupC,EAASzkC,oBACpDwJ,EACJ,OAAO,2BACFi7B,GADL,IAEE44M,wBAAgC,OAAR54M,QAAQ,IAARA,OAAA,EAAAA,EAAU44M,wBAC9B3gO,aACcxhB,GACXuH,sCAFH,OAEyCgiC,QAFzC,IAEyCA,OAFzC,EAEyCA,EAAU44M,wBACnD,EACJv2M,kBAA0B,OAARrC,QAAQ,IAARA,OAAA,EAAAA,EAAUqC,kBAAmB,IAAM,EACrDC,wBAAgC,OAARtC,QAAQ,IAARA,OAAA,EAAAA,EAAUsC,wBAAyB,IAAM,EACjEqzE,kBAA0B,OAAR31E,QAAQ,IAARA,OAAA,EAAAA,EAAU64M,0BACxB34O,EAAK0E,cAAc,CAAEC,GAAI,oCADX,OAEdm7B,QAFc,IAEdA,OAFc,EAEdA,EAAU21E,iBACdnzE,0BAAkC,OAARxC,QAAQ,IAARA,OAAA,EAAAA,EAAUwC,0BAA2B,IAAM,EACrEC,qBAA6B,OAARzC,QAAQ,IAARA,OAAA,EAAAA,EAAUyC,qBAAsB,IAAM,EAC3Drd,kBAA8B,OAAZrC,QAAY,IAAZA,OAAA,EAAAA,EAAcqC,mBAAoB,GACpD1K,cAAsB,OAARZ,QAAQ,IAARA,OAAA,EAAAA,EAAUY,eAAgB,GACxC+N,iBAA4B,OAAXb,QAAW,IAAXA,OAAA,EAAAA,EAAaa,kBAAmB,GACjDmR,SAAUoG,EAASpG,UAAY,GAC/Bi8E,mBAAoB31G,EAAK0E,cAAc,CACrCC,GAAIm7B,EAAS81E,cAAgB,aAAe,cAE9C/9G,WAAY,CACVoD,eAAgB6kC,EAAS7kC,qBAAkB4J,EAC3C1J,WAAY2kC,EAAS3kC,iBAAc0J,EACnCxJ,cAAeykC,EAASzkC,oBAAiBwJ,OAMpC+zO,EAAmB,SAACriP,GAAD,OAC9ByC,EAAYzC,GACTw/B,MAAMxd,KAAI,SAAC5T,GAAD,OAAQ8zO,EAAYliP,EAAOoO,MACrCkuB,QAAO,SAACiN,GAAD,OAAcA,EAAS+4M,eAAiB,MACvCC,EAA+B,SAACviP,EAAOsB,GAClD,OAAO+gP,EAAiBriP,GAAOs8B,QAC7B,SAACiN,GAAD,OACEjoC,KACEA,EAAWiE,YAAcjE,EAAWiE,aAAegkC,EAAShkC,eAC5DjE,EAAWoD,gBAAkBpD,EAAWoD,iBAAmB6kC,EAAS7kC,mBACpEpD,EAAWsD,YAActD,EAAWsD,aAAe2kC,EAAS3kC,eAC5DtD,EAAWwD,eAAiBxD,EAAWwD,gBAAkBykC,EAASzkC,kBAClExD,EAAWulD,SAAWvlD,EAAWulD,UAAYtd,EAASsd,aAWjD27L,EAAsB,SAACxiP,GAClC,IAAMyiP,EAAoBJ,EAAiBriP,GAAOs8B,QAAO,SAACiN,GAAD,OAAcA,EAASlb,cAEhF,OAAiC,IAA7Bo0N,EAAkBz5N,OAAqBy5N,EAAkB,GAEjD,MAIDC,EAAiC,SAAC1iP,GAAD,OAAWyC,EAAYzC,GAAOm+G,uBAC/DwkI,EAA0B,SAAC3iP,GAAD,OAAWyC,EAAYzC,GAAO47G,gBACxDgnI,EAAmC,SAAC5iP,GAAD,OAC9CyC,EAAYzC,GAAO6hP,yBAwBRzB,EAAwB,SAACpgP,EAAO6tC,GAAR,OACnCg1M,EAAmD7iP,EAAO6tC,K,oRCpbtD9vB,EAAiB1d,YAAgB,CACrCs5G,KAxXW,WAAyB,IAAxB35G,EAAuB,uDAAf,GAAIC,EAAW,uCACnC,OAAQA,EAAOC,MAEb,KAAKC,IACH,MAA4BF,EAAOM,QAA3B2d,EAAR,EAAQA,SAAUshB,EAAlB,EAAkBA,MACZrf,EAAQ,eAAQngB,GAQtB,OAPAw/B,EAAMrR,SAAQ,SAAC0C,GACb1Q,EAAS0Q,GAAT,yBACExC,YAAY,GACTnQ,EAAS2S,IAFd,IAGE1a,aAAa,OAGVgK,EAGT,KAAKhgB,IACH,IAAM6vB,EAAe/vB,EAAOM,QACtB4f,EAAQ,eAAQngB,GAOtB,OANAmgB,EAAS6P,EAAaa,gBAAtB,qCACExC,YAAY,GACTruB,EAAMgwB,EAAaa,iBACnBb,GAHL,IAIE7Z,aAAa,IAERgK,EAGT,KAAKhgB,IACH,MAAgCF,EAAOM,QAA/B0tC,EAAR,EAAQA,MAAOje,EAAf,EAAeA,aACT7P,EAAW69F,IAAKh+G,EAAOiuC,GAM7B,OALA9tB,EAAS6P,EAAaa,gBAAtB,uCACK7wB,EAAMiuC,IACNje,GAFL,IAGE7Z,aAAa,IAERgK,EAGT,KAAKhgB,IACH,IAAM6vB,EAAe/vB,EAAOM,QAC5B,OAAO,2BACFP,GADL,kBAEGgwB,EAAaa,eAFhB,uCAGO7wB,EAAMgwB,EAAaa,iBACnBb,GAJP,IAKI7Z,aAAa,MAMnB,KAAKhW,IACH,IAAM6vB,EAAe/vB,EAAOM,QAM5B,OALAP,EAAMgwB,EAAaa,gBAAnB,yBACExC,YAAY,GACT2B,GAFL,IAGE7Z,aAAa,IAERnW,EAET,KAAKG,IACH,IAAM6vB,EAAe/vB,EAAOM,QAC5B,OAAO,2BACFP,GADL,kBAEGgwB,EAAaa,eAFhB,uCAGO7wB,EAAMgwB,EAAaa,iBACnBb,GAJP,IAKI7Z,aAAa,MAMnB,KAAKhW,IACH,IAAQ8tC,EAAUhuC,EAAOM,QAAjB0tC,MACR,OAAIjuC,EAAMiuC,GACD+vE,IAAKh+G,EAAOiuC,GAEdjuC,EAET,KAAKG,IACH,IAAQ8wB,EAAoBhxB,EAAOM,QAA3B0wB,gBACR,OAAO,2BACFjxB,GADL,kBAEGixB,EAAgBJ,eAFnB,uCAGO7wB,EAAMixB,EAAgBJ,iBACtBI,GAJP,IAKI9a,aAAa,MAMnB,KAAKhW,IACH,IAAM0wB,EAAiB5wB,EAAOM,QAC9B,OAAOy9G,IAAKh+G,EAAO6wB,EAAeA,gBAIpC,KAAK1wB,IACH,IAAM0wB,EAAiB5wB,EAAOM,QAC9B,OAAO,2BACFP,GADL,kBAEG6wB,EAFH,2BAGO7wB,EAAM6wB,IAHb,IAIIxC,YAAY,MAKlB,KAAKluB,IACH,IAAM0wB,EAAiB5wB,EAAOM,QAC9B,OAAO,2BACFP,GADL,kBAEG6wB,EAFH,2BAGO7wB,EAAM6wB,IAHb,IAIIxC,YAAY,MAKlB,KAAKluB,IACH,IAAMslK,EAAkBxlK,EAAOM,QACzB4f,EAAQ,eAAQngB,GAiBtB,OAhB8B,GAA1BylK,EAAgBz8I,OAClBmF,IAAQnuB,GAAO,SAACgwB,EAAmBa,GACjC1Q,EAAS0Q,GAAT,2BACKb,GADL,IAEE3B,YAAY,OAIhBo3I,EAAgBt3I,SAAQ,SAAC0C,GACvB1Q,EAAS0Q,GAAT,2BACK7wB,EAAM6wB,IADX,IAEExC,YAAY,OAKXlO,EAGT,KAAKhgB,IACH,IAAMslK,EAAkBxlK,EAAOM,QACzB4f,EAAQ,eAAQngB,GAiBtB,OAhB8B,GAA1BylK,EAAgBz8I,OAClBmF,IAAQnuB,GAAO,SAACgwB,EAAmBa,GACjC1Q,EAAS0Q,GAAT,2BACKb,GADL,IAEE3B,YAAY,OAIhBo3I,EAAgBt3I,SAAQ,SAAC0C,GACvB1Q,EAAS0Q,GAAT,2BACK7wB,EAAM6wB,IADX,IAEExC,YAAY,OAKXlO,EAIT,QACE,OAAOngB,IAiNXw/B,MA5MY,WAAyB,IAAxBx/B,EAAuB,uDAAf,GAAIC,EAAW,uCACpC,OAAQA,EAAOC,MAEb,KAAKC,IACH,IAAQq/B,EAAUv/B,EAAOM,QAAjBi/B,MACR,OAAOs6E,IAAMt6E,GAGf,KAAKr/B,IACH,IAAM6vB,EAAe/vB,EAAOM,QAC5B,OAAOgyD,IAAK,GAAD,mBAAKvyD,GAAL,CAAYgwB,EAAaa,kBAGtC,KAAK1wB,IACH,MAAgCF,EAAOM,QAA/B0tC,EAAR,EAAQA,MAAOje,EAAf,EAAeA,aACf,OAAOhwB,EAAMgiB,KAAI,SAAC6O,GAAD,OACfA,IAAmBod,EAAQje,EAAaa,eAAiBA,KAI7D,KAAK1wB,IACH,IAAM0wB,EAAiB5wB,EAAOM,QAC9B,OAAOP,EAAMs8B,QACX,SAACwmN,GAAD,OAAyBA,IAAwBjyN,EAAeA,kBAKpE,KAAK1wB,IACH,IAAM6vB,EAAe/vB,EAAOM,QAC5B,MAAM,GAAN,mBAAWP,GAAX,CAAkBgwB,EAAaa,iBAIjC,KAAK1wB,IACH,IAAQ8tC,EAAUhuC,EAAOM,QAAjB0tC,MACR,OAAOjuC,EAAMs8B,QAAO,SAACwmN,GAAD,OAAyBA,IAAwB70M,KAIvE,QACE,OAAOjuC,IAoKX60K,WA/IiB,WAA4B,IAA3B70K,EAA0B,wDAAXC,EAAW,uCAC5C,OAAQA,EAAOC,MACb,KAAKC,IACH,OAAO,EAET,KAAKA,IACL,KAAKA,IACH,OAAO,EAET,QACE,OAAOH,IAsIX47G,eA/JqB,WAA4B,IAA3B57G,EAA0B,wDAAXC,EAAW,uCAChD,OAAQA,EAAOC,MACb,KAAKC,IACH,OAAO,EAET,KAAKA,IACL,KAAKA,IACH,OAAO,EAET,QACE,OAAOH,IAsJXo+G,SAlIe,WAA4B,IAA3Bp+G,EAA0B,wDAAXC,EAAW,uCAC1C,OAAQA,EAAOC,MACb,KAAKC,IACH,OAAO,EAET,KAAKA,IACL,KAAKA,IACH,OAAO,EAET,QACE,OAAOH,IAyHXq+G,UApHgB,WAA4B,IAA3Br+G,EAA0B,wDAAXC,EAAW,uCAC3C,OAAQA,EAAOC,MACb,KAAKC,IACH,OAAO,EAET,KAAKA,IACL,KAAKA,IACH,OAAO,EAET,QACE,OAAOH,IA2GXs+G,WAtGiB,WAA4B,IAA3Bt+G,EAA0B,wDAAXC,EAAW,uCAC5C,OAAQA,EAAOC,MACb,KAAKC,IACH,OAAO,EAET,KAAKA,IACL,KAAKA,IACH,OAAO,EAET,QACE,OAAOH,IA6FX80K,cAxEoB,WAA2B,IAA1B90K,EAAyB,uDAAjB,KAAMC,EAAW,uCAC9C,OAAQA,EAAOC,MACb,KAAKC,IACH,IAAQ4B,EAAU9B,EAAOM,QAAjBwB,MACR,OAAOA,EAET,KAAK5B,IACL,KAAKA,IACH,OAAO,KAET,QACE,OAAOH,IA8DX87G,kBAzFwB,WAA2B,IAA1B97G,EAAyB,uDAAjB,KAAMC,EAAW,uCAClD,OAAQA,EAAOC,MACb,KAAKC,IACH,IAAQ4B,EAAU9B,EAAOM,QAAjBwB,MACR,OAAOA,EAET,KAAK5B,IACL,KAAKA,IACH,OAAO,KAET,QACE,OAAOH,IA+EXw+G,YA1DkB,WAA2B,IAA1Bx+G,EAAyB,uDAAjB,KAAMC,EAAW,uCAC5C,OAAQA,EAAOC,MACb,KAAKC,IACH,IAAQ4B,EAAU9B,EAAOM,QAAjBwB,MACR,OAAOA,EAET,KAAK5B,IACL,KAAKA,IACH,OAAO,KAET,QACE,OAAOH,IAgDXy+G,aA3CmB,WAA2B,IAA1Bz+G,EAAyB,uDAAjB,KAAMC,EAAW,uCAC7C,OAAQA,EAAOC,MACb,KAAKC,IACH,IAAQ4B,EAAU9B,EAAOM,QAAjBwB,MACR,OAAOA,EAET,KAAK5B,IACL,KAAKA,IACH,OAAO,KAET,QACE,OAAOH,IAiCX0+G,cA5BoB,WAA2B,IAA1B1+G,EAAyB,uDAAjB,KAAMC,EAAW,uCAC9C,OAAQA,EAAOC,MACb,KAAKC,IACH,IAAQ4B,EAAU9B,EAAOM,QAAjBwB,MACR,OAAOA,EAET,KAAK5B,IACL,KAAKA,IACH,OAAO,KAET,QACE,OAAOH,MAoBE+d,MAER,IAAMtb,EAAc,SAACzC,GAAD,OAAWA,EAAM+d,gBAE/BglO,EAAkB,SAAC/iP,EAAO6wB,GACrC,OAAOpuB,EAAYzC,GAAO25G,KAAK9oF,IAEpBmyN,EAAuB,SAAChjP,GAAD,OAClCyC,EAAYzC,GAAOw/B,MAAMxd,KAAI,SAAC5T,GAAD,OAAQ3L,EAAYzC,GAAO25G,KAAKvrG,OAElD60O,EAA0B,SAACjjP,GACtC,IAAMkjP,EAAyBF,EAAqBhjP,GAAOs8B,QACzD,SAACtM,GAAD,OAAkBA,EAAa3B,cAGjC,OAAsC,IAAlC60N,EAAuBl6N,OAAqBk6N,EAAuB,GAE3D,MAIDC,EAA+B,SAACnjP,GAAD,OAAWyC,EAAYzC,GAAO47G,iB,ifCwJpEv8F,EAAahf,YAAgB,CACjCs5G,KApjBW,WAAyB,IAAxB35G,EAAuB,uDAAf,GAAIC,EAAW,uCACnC,OAAQA,EAAOC,MAEb,KAAKC,IACL,KAAKA,IACH,MAA4BF,EAAOM,QAA3B2d,EAAR,EAAQA,SAAUshB,EAAlB,EAAkBA,MACZrf,EAAW,GASjB,OARAqf,EAAMrR,SAAQ,SAACK,GACbrO,EAASqO,GAAT,qCACEH,YAAY,GACTruB,EAAMwuB,IACNtQ,EAASsQ,IAHd,IAIErY,aAAa,OAGVgK,EAGT,KAAKhgB,IACH,MAA6BF,EAAOM,QAA5B0tC,EAAR,EAAQA,MAAOga,EAAf,EAAeA,UACT9nC,EAAW69F,IAAKh+G,EAAOiuC,GAM7B,OALA9tB,EAAS8nC,EAAUz5B,aAAnB,uCACKxuB,EAAMiuC,IACNga,GAFL,IAGE9xC,aAAa,IAERgK,EAGT,KAAKhgB,IACH,IAAM8nD,EAAYhoD,EAAOM,QACzB,OAAO,2BACFP,GADL,kBAEGioD,EAAUz5B,YAFb,uCAGOwvF,IAAKh+G,EAAMioD,EAAUz5B,aAAc,CAAC,kBACpCwvF,IAAK/1D,EAAW,CAAC,kBAJxB,IAKI9xC,aAAa,MAKnB,KAAKhW,IACH,IAAQ8nD,EAAchoD,EAAOM,QAArB0nD,UACF9nC,EAAWngB,EAMjB,OALAmgB,EAAS8nC,EAAUz5B,aAAnB,yBACEH,YAAY,GACT45B,GAFL,IAGE9xC,aAAa,IAERgK,EAGT,KAAKhgB,IACH,IAAM8nD,EAAYhoD,EAAOM,QACzB,OAAO,2BACFP,GADL,kBAEGioD,EAAUz5B,YAFb,2BAGOxuB,EAAMioD,EAAUz5B,cAHvB,IAII27B,gBAAsC,GAArBlC,EAAUxwC,QAAe,EAAI,EAC9C2rO,sBAAuBn7L,EAAUm7L,0BAKvC,KAAKjjP,IACH,IAAM8nD,EAAYhoD,EAAOM,QACzB,OAAO,2BACFP,GADL,kBAEGioD,EAAUz5B,YAFb,2BAGOxuB,EAAMioD,EAAUz5B,cAHvB,IAII27B,gBAAqC,GAApBlC,EAAUtwC,OAAc,EAAI,EAC7C0rO,qBAAsBp7L,EAAUo7L,yBAMtC,KAAKljP,IACH,MAAkCF,EAAOM,QAAjC0nD,EAAR,EAAQA,UAAW55B,EAAnB,EAAmBA,WACblO,EAAQ,eAAQngB,GAMtB,OALAmgB,EAAS8nC,EAAUz5B,aAAnB,yBACEH,WAAYA,GACT45B,GAFL,IAGE9xC,aAAa,IAERgK,EAGT,KAAKhgB,IACH,IAAM8nD,EAAYhoD,EAAOM,QACzB,OAAO,2BACFP,GADL,kBAEGioD,EAAUz5B,YAFb,uCAGOxuB,EAAMioD,EAAUz5B,cAHvB,IAIIq7B,aAAc7pD,EAAMioD,EAAUz5B,cAC3By5B,GALP,IAMI9xC,aAAa,MAMnB,KAAKhW,IACH,IAAQ8tC,EAAUhuC,EAAOM,QAAjB0tC,MACR,OAAIjuC,EAAMiuC,GACD+vE,IAAKh+G,EAAOiuC,GAEdjuC,EAGT,KAAKG,IACH,IAAQ0pD,EAAiB5pD,EAAOM,QAAxBspD,aACR,OAAO,2BACF7pD,GADL,kBAEG6pD,EAAar7B,YAFhB,uCAGOwvF,IAAKh+G,EAAM6pD,EAAar7B,aAAc,CAAC,kBACvCq7B,GAJP,IAKI1zC,aAAa,MAMnB,KAAKhW,IACH,IAAQquB,EAAgBvuB,EAAOM,QAAvBiuB,YACR,OAAOwvF,IAAKh+G,EAAOwuB,GAIrB,KAAKruB,IACH,IAAM8nD,EAAYhoD,EAAOM,QACnB4f,EAAQ,2BACTngB,GADS,kBAEXioD,EAAUz5B,YAFC,2BAGPxuB,EAAMioD,EAAUz5B,cAHT,IAIV07B,aAAa,MAGjB,OAAO/pC,EAGT,KAAKhgB,IACH,IAAM8nD,EAAYhoD,EAAOM,QACnB4f,EAAQ,2BACTngB,GADS,kBAEXioD,EAAUz5B,YAFC,2BAGPxuB,EAAMioD,EAAUz5B,cAHT,IAIV47B,UAAWnC,EAAUq7L,YAGzB,OAAOnjO,EAGT,KAAKhgB,IACH,IAAM8nD,EAAYhoD,EAAOM,QACnB4f,EAAQ,2BACTngB,GADS,kBAEXioD,EAAUz5B,YAFC,2BAGPxuB,EAAMioD,EAAUz5B,cAHT,IAIVA,YAAay5B,EAAUgC,cACvBC,YAAajC,EAAUiC,YACvBC,gBAAiBlC,EAAUkC,gBAC3BC,UAAWnC,EAAUmC,UACrB/7B,YAAY,MAGhB,OAAOlO,EAGT,KAAKhgB,IACH,MAAoCF,EAAOM,QAAnC0nD,EAAR,EAAQA,UAAW37B,EAAnB,EAAmBA,aACbnM,EAAQ,2BACTngB,GADS,kBAEXioD,EAAUz5B,YAFC,2BAGPxuB,EAAMioD,EAAUz5B,cAChBlC,IAED27B,EAAUv5B,gBAAV,eAEGu5B,EAAUv5B,gBAFb,2BAGO1uB,EAAMioD,EAAUv5B,kBAChBpC,IAGP,IAEN,OAAOnM,EAIT,KAAKhgB,IACH,IAAMquB,EAAcvuB,EAAOM,QACrB4f,EAAQ,2BACTngB,GADS,kBAEXwuB,EAFW,2BAGPxuB,EAAMwuB,IAHC,IAIVH,YAAY,MAGhB,OAAOlO,EAGT,KAAKhgB,IACH,IAAMquB,EAAcvuB,EAAOM,QAC3B,OAAO,2BACFP,GADL,kBAEGwuB,EAFH,2BAGOxuB,EAAMwuB,IAHb,IAIIH,YAAY,MAKlB,KAAKluB,IACH,IAAMm4H,EAAer4H,EAAOM,QACtB4f,EAAQ,eAAQngB,GAiBtB,OAhB2B,GAAvBs4H,EAAatvG,OACfmF,IAAQnuB,GAAO,SAACioD,EAAgBqwE,GAC9Bn4G,EAASm4G,GAAT,2BACKrwE,GADL,IAEE55B,YAAY,OAIhBiqG,EAAanqG,SAAQ,SAACK,GACpBrO,EAASqO,GAAT,2BACKxuB,EAAMwuB,IADX,IAEEH,YAAY,OAKXlO,EAGT,KAAKhgB,IACH,IAAMm4H,EAAer4H,EAAOM,QACtB4f,EAAQ,eAAQngB,GAgBtB,OAf2B,GAAvBs4H,EAAatvG,OACfmF,IAAQnuB,GAAO,SAACioD,EAAgBz5B,GAC9BrO,EAASqO,GAAT,2BACKy5B,GADL,IAEE55B,YAAY,OAIhBiqG,EAAanqG,SAAQ,SAACK,GACpBrO,EAASqO,GAAT,2BACKxuB,EAAMwuB,IADX,IAEEH,YAAY,OAIXlO,EAIT,QACE,OAAOngB,IAmTXw/B,MA9SY,WAAyB,IAAxBx/B,EAAuB,uDAAf,GAAIC,EAAW,uCACpC,OAAQA,EAAOC,MAEb,KAAKC,IACL,KAAKA,IACH,IAAQq/B,EAAUv/B,EAAOM,QAAjBi/B,MACR,OAAO+yB,IAAK,GAAD,mBAAKvyD,GAAL,YAAew/B,KAG5B,KAAKr/B,IACH,MAA6BF,EAAOM,QAA5B0tC,EAAR,EAAQA,MAAOga,EAAf,EAAeA,UACf,OAAOjoD,EAAMgiB,KAAI,SAACwM,GAAD,OACfA,IAAgByf,EAAQga,EAAUz5B,YAAcA,KAIpD,KAAKruB,IACH,IAAQ8nD,EAAchoD,EAAOM,QAArB0nD,UACR,MAAM,GAAN,mBAAWjoD,GAAX,CAAkBioD,EAAUz5B,cAG9B,KAAKruB,IACH,IAAQquB,EAAgBvuB,EAAOM,QAAvBiuB,YACR,MAAM,GAAN,mBACKxuB,EAAMs8B,QAAO,SAACinN,GAAD,OAAsBA,IAAqBnuL,OAAO5mC,OADpE,CAEE4mC,OAAO5mC,KAIX,KAAKruB,IACH,IAAQquB,EAAgBvuB,EAAOM,QAAvBiuB,YACR,OAAOxuB,EAAMs8B,QAAO,SAACinN,GAAD,OAAsBA,IAAqB/0N,KAIjE,KAAKruB,IACH,IAAQ8nD,EAAchoD,EAAOM,QAArB0nD,UACR,MAAM,GAAN,mBAAWjoD,GAAX,CAAkBioD,EAAUz5B,cAI9B,KAAKruB,IACH,IAAQ8tC,EAAUhuC,EAAOM,QAAjB0tC,MACR,OAAOjuC,EAAMs8B,QAAO,SAACinN,GAAD,OAAsBA,IAAqBt1M,KAIjE,QACE,OAAOjuC,IA+PXm+G,sBA1O4B,WAA4B,IAA3Bn+G,EAA0B,wDAAXC,EAAW,uCACvD,OAAQA,EAAOC,MACb,KAAKC,IACH,OAAO,EAET,KAAKA,IACL,KAAKA,IACH,OAAO,EAET,QACE,OAAOH,IAiOX47G,eA1PqB,WAA4B,IAA3B57G,EAA0B,wDAAXC,EAAW,uCAChD,OAAQA,EAAOC,MACb,KAAKC,IACH,OAAO,EAET,KAAKA,IACL,KAAKA,IACH,OAAO,EAET,QACE,OAAOH,IAiPXo+G,SA7Ne,WAA4B,IAA3Bp+G,EAA0B,wDAAXC,EAAW,uCAC1C,OAAQA,EAAOC,MACb,KAAKC,IACH,OAAO,EAET,KAAKA,IACL,KAAKA,IACH,OAAO,EAET,QACE,OAAOH,IAoNXi+J,UA/MgB,WAA4B,IAA3Bj+J,EAA0B,wDAAXC,EAAW,uCAC3C,OAAQA,EAAOC,MACb,KAAKC,IACH,OAAO,EAET,KAAKA,IACL,KAAKA,IACH,OAAO,EAET,QACE,OAAOH,IAsMXq+G,UAjMgB,WAA4B,IAA3Br+G,EAA0B,wDAAXC,EAAW,uCAC3C,OAAQA,EAAOC,MACb,KAAKC,IACH,OAAO,EAET,KAAKA,IACL,KAAKA,IACH,OAAO,EAET,QACE,OAAOH,IAwLXwjP,aAnLmB,WAA4B,IAA3BxjP,EAA0B,wDAAXC,EAAW,uCAC9C,OAAQA,EAAOC,MACb,KAAKC,IACH,OAAO,EAET,KAAKA,IACL,KAAKA,IACH,OAAO,EAET,QACE,OAAOH,IA0KXyjP,mBArKyB,WAA4B,IAA3BzjP,EAA0B,wDAAXC,EAAW,uCACpD,OAAQA,EAAOC,MACb,KAAKC,IACH,OAAO,EAET,KAAKA,IACL,KAAKA,IACH,OAAO,EAET,QACE,OAAOH,IA4JX0jP,iBAvJuB,WAA4B,IAA3B1jP,EAA0B,wDAAXC,EAAW,uCAClD,OAAQA,EAAOC,MACb,KAAKC,IACH,OAAO,EAET,KAAKA,IACL,KAAKA,IACH,OAAO,EAET,QACE,OAAOH,IA8IX2jP,6BA1HmC,WAA4B,IAA3B3jP,EAA0B,wDAAXC,EAAW,uCAC9D,OAAQA,EAAOC,MACb,KAAKC,IACH,OAAO,EAET,KAAKA,IACL,KAAKA,IACH,OAAO,EAET,QACE,OAAOH,IAiHXs+G,WA1IiB,WAA4B,IAA3Bt+G,EAA0B,wDAAXC,EAAW,uCAC5C,OAAQA,EAAOC,MACb,KAAKC,IACH,OAAO,EAET,KAAKA,IACL,KAAKA,IACH,OAAO,EAET,QACE,OAAOH,IAiIXu+G,yBA7F+B,WAA2B,IAA1Bv+G,EAAyB,uDAAjB,KAAMC,EAAW,uCACzD,OAAQA,EAAOC,MACb,KAAKC,IACH,IAAQ4B,EAAU9B,EAAOM,QAAjBwB,MACR,OAAOA,EAET,KAAK5B,IACL,KAAKA,IACH,OAAO,KAET,QACE,OAAOH,IAmFX87G,kBA9GwB,WAA2B,IAA1B97G,EAAyB,uDAAjB,KAAMC,EAAW,uCAClD,OAAQA,EAAOC,MACb,KAAKC,IACH,IAAQ4B,EAAU9B,EAAOM,QAAjBwB,MACR,OAAOA,EAET,KAAK5B,IACL,KAAKA,IACH,OAAO,KAET,QACE,OAAOH,IAoGXw+G,YA/EkB,WAA2B,IAA1Bx+G,EAAyB,uDAAjB,KAAMC,EAAW,uCAC5C,OAAQA,EAAOC,MACb,KAAKC,IACH,IAAQ4B,EAAU9B,EAAOM,QAAjBwB,MACR,OAAOA,EAET,KAAK5B,IACL,KAAKA,IACH,OAAO,KAET,QACE,OAAOH,IAqEXk+J,aAhEmB,WAA2B,IAA1Bl+J,EAAyB,uDAAjB,KAAMC,EAAW,uCAC7C,OAAQA,EAAOC,MACb,KAAKC,IACH,IAAQ4B,EAAU9B,EAAOM,QAAjBwB,MACR,OAAOA,EAET,KAAK5B,IACL,KAAKA,IACH,OAAO,KAET,QACE,OAAOH,IAsDXy+G,aAjDmB,WAA2B,IAA1Bz+G,EAAyB,uDAAjB,KAAMC,EAAW,uCAC7C,OAAQA,EAAOC,MACb,KAAKC,IACH,IAAQ4B,EAAU9B,EAAOM,QAAjBwB,MACR,OAAOA,EAET,KAAK5B,IACL,KAAKA,IACH,OAAO,KAET,QACE,OAAOH,IAuCX0+G,cAlCoB,WAA2B,IAA1B1+G,EAAyB,uDAAjB,KAAMC,EAAW,uCAC9C,OAAQA,EAAOC,MACb,KAAKC,IACH,IAAQ4B,EAAU9B,EAAOM,QAAjBwB,MACR,OAAOA,EAET,KAAK5B,IACL,KAAKA,IACH,OAAO,KAET,QACE,OAAOH,MA0BEqf,MAGR,IAAM5c,EAAc,SAACzC,GAAD,OAAWA,EAAMqf,YAG/BukO,EAAe,SAAC5jP,EAAOwuB,GAClC,OAAO/rB,EAAYzC,GAAO25G,KAAKnrF,IAGpBq1N,EAA4B,SAAC7jP,EAAOy+H,GAAR,OACvCA,EAAKz8G,KAAI,SAACwM,GAAD,OAAiBo1N,EAAa5jP,EAAOwuB,OAEnCs1N,EAAoB,SAAC9jP,GAAD,OAC/ByC,EAAYzC,GACTw/B,MAAMxd,KAAI,SAAC5T,GAAD,OAAQw1O,EAAa5jP,EAAOoO,MACtCkuB,QAAO,SAAC2rB,GAAD,OAAwB,OAATA,QAAS,IAATA,OAAA,EAAAA,EAAWkC,iBAAkB,MAU3C45L,EAAuB,SAAC/jP,GACnC,IAAMgkP,EAAqBF,EAAkB9jP,GAAOs8B,QAAO,SAAC2rB,GAAD,cAAeA,QAAf,IAAeA,OAAf,EAAeA,EAAW55B,cAErF,OAAkC,IAA9B21N,EAAmBh7N,OAAqBg7N,EAAmB,GAEnD,MAIDC,EAAkC,SAACjkP,GAAD,OAAWyC,EAAYzC,GAAOm+G,uBAChE+lI,EAA2B,SAAClkP,GAAD,OAAWyC,EAAYzC,GAAO47G,gBACzDuoI,EAAoB,SAACnkP,GAAD,OAAWyC,EAAYzC,GAAOo+G,UAClDgmI,EAAqB,SAACpkP,GAAD,OAAWyC,EAAYzC,GAAOi+J,WAEnDomF,EAAwB,SAACrkP,GAAD,OAAWyC,EAAYzC,GAAOwjP,cACtDc,EAA4B,SAACtkP,GAAD,OAAWyC,EAAYzC,GAAO0jP,kBAC1Da,EAA8B,SAACvkP,GAAD,OAAWyC,EAAYzC,GAAOyjP,qB,oYC1OnE1kO,EAAW1e,YAAgB,CAC/Bs5G,KAxYW,WAAyB,IAAxB35G,EAAuB,uDAAf,GAAIC,EAAW,uCACnC,OAAQA,EAAOC,MAEb,KAAKC,IACH,MAA4BF,EAAOM,QAA3B2d,EAAR,EAAQA,SAAUshB,EAAlB,EAAkBA,MACZrf,EAAW,GASjB,OARAqf,EAAMrR,SAAQ,SAACoqB,GACbp4B,EAASo4B,GAAT,qCACElqB,YAAY,GACTruB,EAAMu4C,IACNr6B,EAASq6B,IAHd,IAIEpiC,aAAa,OAGVgK,EAGT,KAAKhgB,IACH,MAA4BF,EAAOM,QAA3B2d,EAAR,EAAQA,SAAUshB,EAAlB,EAAkBA,MACZrf,EAAQ,eAAQngB,GAStB,OARAw/B,EAAMrR,SAAQ,SAACoqB,GACbp4B,EAASo4B,GAAT,qCACElqB,YAAY,GACTruB,EAAMu4C,IACNr6B,EAASq6B,IAHd,IAIEpiC,aAAa,OAGVgK,EAGT,KAAKhgB,IACH,MAA2BF,EAAOM,QAA1B0tC,EAAR,EAAQA,MAAOyJ,EAAf,EAAeA,QACTv3B,EAAW69F,IAAKh+G,EAAOiuC,GAM7B,OALA9tB,EAASu3B,EAAQa,WAAjB,uCACKv4C,EAAMiuC,IACNyJ,GAFL,IAGEvhC,aAAa,IAERgK,EAGT,KAAKhgB,IACH,IAAMu3C,EAAUz3C,EAAOM,QACvB,OAAO,2BACFP,GADL,kBAEG03C,EAAQa,UAFX,uCAGOylE,IAAKh+G,EAAM03C,EAAQa,WAAY,CAAC,gBAChCylE,IAAKtmE,EAAS,CAAC,gBAJtB,IAKIvhC,aAAa,MAMnB,KAAKhW,IACH,IAAMu3C,EAAUz3C,EAAOM,QACjB4f,EAAQ,eAAQngB,GAMtB,OALAmgB,EAASu3B,EAAQa,WAAjB,yBACElqB,YAAY,GACTqpB,GAFL,IAGEvhC,aAAa,IAERgK,EAET,KAAKhgB,IACH,IAAMu3C,EAAUz3C,EAAOM,QACvB,OAAO,2BACFP,GADL,kBAEG03C,EAAQa,UAFX,uCAGOv4C,EAAM03C,EAAQa,YAHrB,IAIII,WAAY34C,EAAM03C,EAAQa,YACvBb,GALP,IAMIvhC,aAAa,MAMnB,KAAKhW,IACH,IAAQ8tC,EAAUhuC,EAAOM,QAAjB0tC,MACR,OAAIjuC,EAAMiuC,GACD+vE,IAAKh+G,EAAOiuC,GAEdjuC,EAET,KAAKG,IACH,IAAQw4C,EAAe14C,EAAOM,QAAtBo4C,WACR,OAAO,2BACF34C,GADL,kBAEG24C,EAAWJ,UAFd,uCAGOylE,IAAKh+G,EAAM24C,EAAWJ,WAAY,CAAC,gBACnCI,GAJP,IAKIxiC,aAAa,MAMnB,KAAKhW,IACH,IAAQo4C,EAAct4C,EAAOM,QAArBg4C,UACR,OAAOylE,IAAKh+G,EAAOu4C,GAIrB,KAAKp4C,IACH,IAAMo4C,EAAYt4C,EAAOM,QACnB4f,EAAQ,2BACTngB,GADS,kBAEXu4C,EAFW,2BAGPv4C,EAAMu4C,IAHC,IAIVlqB,YAAY,MAGhB,OAAOlO,EAGT,KAAKhgB,IACH,IAAMo4C,EAAYt4C,EAAOM,QACzB,OAAO,2BACFP,GADL,kBAEGu4C,EAFH,2BAGOv4C,EAAMu4C,IAHb,IAIIlqB,YAAY,MAKlB,KAAKluB,IACH,IAAMqkP,EAAavkP,EAAOM,QACpB4f,EAAQ,eAAQngB,GAiBtB,OAhByB,GAArBwkP,EAAWx7N,OACbmF,IAAQnuB,GAAO,SAAC03C,EAAca,GAC5Bp4B,EAASo4B,GAAT,2BACKb,GADL,IAEErpB,YAAY,OAIhBm2N,EAAWr2N,SAAQ,SAACoqB,GAClBp4B,EAASo4B,GAAT,2BACKv4C,EAAMu4C,IADX,IAEElqB,YAAY,OAKXlO,EAGT,KAAKhgB,IACH,IAAMqkP,EAAavkP,EAAOM,QACpB4f,EAAQ,eAAQngB,GAiBtB,OAhByB,GAArBwkP,EAAWx7N,OACbmF,IAAQnuB,GAAO,SAAC03C,EAAca,GAC5Bp4B,EAASo4B,GAAT,2BACKb,GADL,IAEErpB,YAAY,OAIhBm2N,EAAWr2N,SAAQ,SAACoqB,GAClBp4B,EAASo4B,GAAT,2BACKv4C,EAAMu4C,IADX,IAEElqB,YAAY,OAKXlO,EAIT,QACE,OAAOngB,IA2NXw/B,MAtNY,WAAyB,IAAxBx/B,EAAuB,uDAAf,GAAIC,EAAW,uCACpC,OAAQA,EAAOC,MAEb,KAAKC,IACH,IAAQq/B,EAAUv/B,EAAOM,QAAjBi/B,MACR,OAAOs6E,IAAMt6E,GAGf,KAAKr/B,IACH,IAAQq/B,EAAUv/B,EAAOM,QAAjBi/B,MACR,OAAO+yB,IAAK,GAAD,mBAAKvyD,GAAL,YAAew/B,KAG5B,KAAKr/B,IACH,MAA2BF,EAAOM,QAA1B0tC,EAAR,EAAQA,MAAOyJ,EAAf,EAAeA,QACf,OAAO13C,EAAMgiB,KAAI,SAACu2B,GAAD,OAAgBA,IAActK,EAAQyJ,EAAQa,UAAYA,KAG7E,KAAKp4C,IACH,IAAQo4C,EAAct4C,EAAOM,QAArBg4C,UACR,OAAOv4C,EAAMs8B,QAAO,SAACmoN,GAAD,OAAoBA,IAAmBlsM,KAI7D,KAAKp4C,IACH,IAAMu3C,EAAUz3C,EAAOM,QACvB,MAAM,GAAN,mBAAWP,GAAX,CAAkB03C,EAAQa,YAI5B,KAAKp4C,IACH,IAAQ8tC,EAAUhuC,EAAOM,QAAjB0tC,MACR,OAAOjuC,EAAMs8B,QAAO,SAACmoN,GAAD,OAAoBA,IAAmBx2M,KAI7D,QACE,OAAOjuC,IAkLXm+G,sBA7J4B,WAA4B,IAA3Bn+G,EAA0B,wDAAXC,EAAW,uCACvD,OAAQA,EAAOC,MACb,KAAKC,IACH,OAAO,EAET,KAAKA,IACL,KAAKA,IACH,OAAO,EAET,QACE,OAAOH,IAoJX47G,eA7KqB,WAA4B,IAA3B57G,EAA0B,wDAAXC,EAAW,uCAChD,OAAQA,EAAOC,MACb,KAAKC,IACH,OAAO,EAET,KAAKA,IACL,KAAKA,IACH,OAAO,EAET,QACE,OAAOH,IAoKXo+G,SAhJe,WAA4B,IAA3Bp+G,EAA0B,wDAAXC,EAAW,uCAC1C,OAAQA,EAAOC,MACb,KAAKC,IACH,OAAO,EAET,KAAKA,IACL,KAAKA,IACH,OAAO,EAET,QACE,OAAOH,IAuIXq+G,UAlIgB,WAA4B,IAA3Br+G,EAA0B,wDAAXC,EAAW,uCAC3C,OAAQA,EAAOC,MACb,KAAKC,IACH,OAAO,EAET,KAAKA,IACL,KAAKA,IACH,OAAO,EAET,QACE,OAAOH,IAyHXs+G,WApHiB,WAA4B,IAA3Bt+G,EAA0B,wDAAXC,EAAW,uCAC5C,OAAQA,EAAOC,MACb,KAAKC,IACH,OAAO,EAET,KAAKA,IACL,KAAKA,IACH,OAAO,EAET,QACE,OAAOH,IA2GXu+G,yBAtF+B,WAA2B,IAA1Bv+G,EAAyB,uDAAjB,KAAMC,EAAW,uCACzD,OAAQA,EAAOC,MACb,KAAKC,IACH,IAAQ4B,EAAU9B,EAAOM,QAAjBwB,MACR,OAAOA,EAET,KAAK5B,IACL,KAAKA,IACH,OAAO,KAET,QACE,OAAOH,IA4EX87G,kBAvGwB,WAA2B,IAA1B97G,EAAyB,uDAAjB,KAAMC,EAAW,uCAClD,OAAQA,EAAOC,MACb,KAAKC,IACH,IAAQ4B,EAAU9B,EAAOM,QAAjBwB,MACR,OAAOA,EAET,KAAK5B,IACL,KAAKA,IACH,OAAO,KAET,QACE,OAAOH,IA6FXw+G,YAxEkB,WAA2B,IAA1Bx+G,EAAyB,uDAAjB,KAAMC,EAAW,uCAC5C,OAAQA,EAAOC,MACb,KAAKC,IACH,IAAQ4B,EAAU9B,EAAOM,QAAjBwB,MACR,OAAOA,EAET,KAAK5B,IACL,KAAKA,IACH,OAAO,KAET,QACE,OAAOH,IA8DXy+G,aAzDmB,WAA2B,IAA1Bz+G,EAAyB,uDAAjB,KAAMC,EAAW,uCAC7C,OAAQA,EAAOC,MACb,KAAKC,IACH,IAAQ4B,EAAU9B,EAAOM,QAAjBwB,MACR,OAAOA,EAET,KAAK5B,IACL,KAAKA,IACH,OAAO,KAET,QACE,OAAOH,IA+CX0+G,cA1CoB,WAA2B,IAA1B1+G,EAAyB,uDAAjB,KAAMC,EAAW,uCAC9C,OAAQA,EAAOC,MACb,KAAKC,IACH,IAAQ4B,EAAU9B,EAAOM,QAAjBwB,MACR,OAAOA,EAET,KAAK5B,IACL,KAAKA,IACH,OAAO,KAET,QACE,OAAOH,IAgCXovB,UA3BgB,WAA2B,IAA1BpvB,IAAyB,yDAAXC,EAAW,uCAC1C,OAAQA,EAAOC,MACb,KAAKC,IACH,OAAOF,EAAOM,QAEhB,KAAKJ,IACH,OAAO,EAET,QACE,OAAOH,MAqBE+e,MAGR,IAAMtc,EAAc,SAACzC,GAAD,OAAWA,EAAM+e,UAG/B2lO,EAAa,SAAC1kP,EAAOu4C,GAAR,OAAsB91C,EAAYzC,GAAO25G,KAAKphE,IAC3DosM,EAAkB,SAAC3kP,GAAD,OAC7ByC,EAAYzC,GACTw/B,MAAMxd,KAAI,SAAC5T,GAAD,OAAQs2O,EAAW1kP,EAAOoO,MACpCkuB,QAAO,SAACob,GAAD,OAAaA,EAAQktM,cAAgB,MAGpCC,EAA8B,SAAC7kP,EAAOsB,GAAR,OACzCqjP,EAAgB3kP,GAAOs8B,QACrB,SAACob,GAAD,OACEp2C,KACEA,EAAWiE,YAAcjE,EAAWiE,aAAemyC,EAAQnyC,eAC3DjE,EAAWoD,gBAAkBpD,EAAWoD,iBAAmBgzC,EAAQhzC,mBACnEpD,EAAWsD,YAActD,EAAWsD,aAAe8yC,EAAQ9yC,YAAculG,YAAkBzyD,EAAQ9yC,gBACnGtD,EAAWwD,eAAiBxD,EAAWwD,gBAAkB4yC,EAAQ5yC,eAAiBqlG,YAAkBzyD,EAAQ5yC,oBAEvGggP,EAAiB,SAAC9kP,GAAD,OAAWyC,EAAYzC,GAAOovB,WAU/C21N,EAAqB,SAAC/kP,GACjC,IAAMglP,EAAmBL,EAAgB3kP,GAAOs8B,QAAO,SAACob,GAAD,OAAaA,EAAQrpB,cAE5E,OAAgC,IAA5B22N,EAAiBh8N,OAAqBg8N,EAAiB,GAE/C,MAIDC,EAAgC,SAACjlP,GAAD,OAAWyC,EAAYzC,GAAOm+G,uBAC9D+mI,EAAyB,SAACllP,GAAD,OAAWyC,EAAYzC,GAAO47G,iB,iCClcrD6qE,IATD,CACZwmD,UAAW,cACXkY,UAAW,cACXjY,aAAc,iBACdC,YAAa,gBACbC,gBAAiB,oBACjBrrM,uBAAwB,kC,sTCqapB9jB,EAAU5d,YAAgB,CAC9Bs5G,KAnaW,WAAyB,IAAxB35G,EAAuB,uDAAf,GAAIC,EAAW,uCACnC,OAAQA,EAAOC,MAEb,KAAKC,IACH,MAA4BF,EAAOM,QAA3B2d,EAAR,EAAQA,SAAUshB,EAAlB,EAAkBA,MACZrf,EAAW,GAQjB,OAPAqf,EAAMrR,SAAQ,SAAC1D,GACbtK,EAASsK,GAAT,yBACE4D,YAAY,GACTnQ,EAASuM,IAFd,IAGEtU,aAAa,OAGVgK,EAGT,KAAKhgB,IACH,MAA4BF,EAAOM,QAA3B2d,EAAR,EAAQA,SAAUshB,EAAlB,EAAkBA,MACZrf,EAAQ,eAAQngB,GAQtB,OAPAw/B,EAAMrR,SAAQ,SAAC1D,GACbtK,EAASsK,GAAT,yBACE4D,YAAY,GACTnQ,EAASuM,IAFd,IAGEtU,aAAa,OAGVgK,EAGT,KAAKhgB,IACH,IAAMgqB,EAASlqB,EAAOM,QAChB4f,EAAQ,eAAQngB,GAOtB,OANAmgB,EAASgK,EAAOC,UAAhB,qCACEiE,YAAY,GACTruB,EAAMmqB,EAAOC,WACbD,GAHL,IAIEhU,aAAa,IAERgK,EAGT,KAAKhgB,IACH,MAA0BF,EAAOM,QAAzB0tC,EAAR,EAAQA,MAAO9jB,EAAf,EAAeA,OACThK,EAAW69F,IAAKh+G,EAAOiuC,GAM7B,OALA9tB,EAASgK,EAAOC,UAAhB,uCACKpqB,EAAMiuC,IACN9jB,GAFL,IAGEhU,aAAa,IAERgK,EAGT,KAAKhgB,IACH,IAAMgqB,EAASlqB,EAAOM,QACtB,OAAO,2BACFP,GADL,kBAEGmqB,EAAOC,SAFV,uCAGO4zF,IAAKh+G,EAAMmqB,EAAOC,UAAW,CAAC,eAC9B4zF,IAAK7zF,EAAQ,CAAC,eAJrB,IAKIhU,aAAa,MAMnB,KAAKhW,IACH,IAAMgqB,EAASlqB,EAAOM,QAChB4f,EAAQ,eAAQngB,GAMtB,OALAmgB,EAASgK,EAAOC,UAAhB,yBACEiE,YAAY,GACTlE,GAFL,IAGEhU,aAAa,IAERgK,EAET,KAAKhgB,IACH,IAAMgqB,EAASlqB,EAAOM,QACtB,OAAO,2BACFP,GADL,kBAEGmqB,EAAOC,SAFV,uCAGOpqB,EAAMmqB,EAAOC,WAHpB,IAIII,UAAWxqB,EAAMmqB,EAAOC,WACrBD,GALP,IAMIhU,aAAa,MAMnB,KAAKhW,IACH,IAAQ8tC,EAAUhuC,EAAOM,QAAjB0tC,MACR,OAAIjuC,EAAMiuC,GACD+vE,IAAKh+G,EAAOiuC,GAEdjuC,EAET,KAAKG,IACH,IAAMqqB,EAAYvqB,EAAOM,QACzB,OAAO,2BACFP,GADL,kBAEGwqB,EAAUJ,SAFb,uCAGO4zF,IAAKh+G,EAAMwqB,EAAUJ,UAAW,CAAC,eACjCI,GAJP,IAKIrU,aAAa,MAMnB,KAAKhW,IACH,IAAQsqB,EAAaxqB,EAAOM,QAApBkqB,SACR,OAAOuzF,IAAKh+G,EAAOyqB,GAIrB,KAAKtqB,IACH,IAAMsqB,EAAWxqB,EAAOM,QAClB4f,EAAQ,2BACTngB,GADS,kBAEXyqB,EAFW,2BAGPzqB,EAAMyqB,IAHC,IAIV4D,YAAY,MAGhB,OAAOlO,EAGT,KAAKhgB,IACH,IAAMsqB,EAAWxqB,EAAOM,QACxB,OAAO,2BACFP,GADL,kBAEGyqB,EAFH,2BAGOzqB,EAAMyqB,IAHb,IAII4D,YAAY,MAKlB,KAAKluB,IACH,IAAM6iK,EAAY/iK,EAAOM,QACnB4f,EAAQ,eAAQngB,GAiBtB,OAhBwB,GAApBgjK,EAAUh6I,OACZmF,IAAQnuB,GAAO,SAACmqB,EAAaM,GAC3BtK,EAASsK,GAAT,2BACKN,GADL,IAEEkE,YAAY,OAIhB20I,EAAU70I,SAAQ,SAAC1D,GACjBtK,EAASsK,GAAT,2BACKzqB,EAAMyqB,IADX,IAEE4D,YAAY,OAKXlO,EAGT,KAAKhgB,IACH,IAAM6iK,EAAY/iK,EAAOM,QACnB4f,EAAQ,eAAQngB,GAiBtB,OAhBwB,GAApBgjK,EAAUh6I,OACZmF,IAAQnuB,GAAO,SAACmqB,EAAaM,GAC3BtK,EAASsK,GAAT,2BACKN,GADL,IAEEkE,YAAY,OAIhB20I,EAAU70I,SAAQ,SAAC1D,GACjBtK,EAASsK,GAAT,2BACKzqB,EAAMyqB,IADX,IAEE4D,YAAY,OAKXlO,EAIT,QACE,OAAOngB,IA4OXw/B,MAvOY,WAAyB,IAAxBx/B,EAAuB,uDAAf,GAAIC,EAAW,uCACpC,OAAQA,EAAOC,MAEb,KAAKC,IACH,IAAQq/B,EAAUv/B,EAAOM,QAAjBi/B,MACR,OAAOs6E,IAAMt6E,GAGf,KAAKr/B,IACH,IAAQq/B,EAAUv/B,EAAOM,QAAjBi/B,MACR,OAAO+yB,IAAK,GAAD,mBAAKvyD,GAAL,YAAew/B,KAG5B,KAAKr/B,IACH,IAAMgqB,EAASlqB,EAAOM,QACtB,OAAOgyD,IAAK,GAAD,mBAAKvyD,GAAL,CAAYmqB,EAAOC,YAGhC,KAAKjqB,IACH,MAA0BF,EAAOM,QAAzB0tC,EAAR,EAAQA,MAAO9jB,EAAf,EAAeA,OACf,OAAOnqB,EAAMgiB,KAAI,SAACoI,GAAD,OAAeA,IAAa6jB,EAAQ9jB,EAAOC,SAAWA,KAGzE,KAAKjqB,IACH,IAAQsqB,EAAaxqB,EAAOM,QAApBkqB,SACR,OAAOzqB,EAAMs8B,QAAO,SAAC8oN,GAAD,OAAmBA,IAAkB36N,KAI3D,KAAKtqB,IACH,IAAMgqB,EAASlqB,EAAOM,QACtB,MAAM,GAAN,mBAAWP,GAAX,CAAkBmqB,EAAOC,WAI3B,KAAKjqB,IACH,IAAQ8tC,EAAUhuC,EAAOM,QAAjB0tC,MACR,OAAOjuC,EAAMs8B,QAAO,SAAC8oN,GAAD,OAAmBA,IAAkBn3M,KAI3D,QACE,OAAOjuC,IA8LX60K,WA1JiB,WAA4B,IAA3B70K,EAA0B,wDAAXC,EAAW,uCAC5C,OAAQA,EAAOC,MACb,KAAKC,IACH,OAAO,EAET,KAAKA,IACL,KAAKA,IACH,OAAO,EAET,QACE,OAAOH,IAiJXm+G,sBA1K4B,WAA4B,IAA3Bn+G,EAA0B,wDAAXC,EAAW,uCACvD,OAAQA,EAAOC,MACb,KAAKC,IACH,OAAO,EAET,KAAKA,IACL,KAAKA,IACH,OAAO,EAET,QACE,OAAOH,IAiKX47G,eA1LqB,WAA4B,IAA3B57G,EAA0B,wDAAXC,EAAW,uCAChD,OAAQA,EAAOC,MACb,KAAKC,IACH,OAAO,EAET,KAAKA,IACL,KAAKA,IACH,OAAO,EAET,QACE,OAAOH,IAiLXo+G,SA9Ie,WAA4B,IAA3Bp+G,EAA0B,wDAAXC,EAAW,uCAC1C,OAAQA,EAAOC,MACb,KAAKC,IACH,OAAO,EAET,KAAKA,IACL,KAAKA,IACH,OAAO,EAET,QACE,OAAOH,IAqIXq+G,UAhIgB,WAA4B,IAA3Br+G,EAA0B,wDAAXC,EAAW,uCAC3C,OAAQA,EAAOC,MACb,KAAKC,IACH,OAAO,EAET,KAAKA,IACL,KAAKA,IACH,OAAO,EAET,QACE,OAAOH,IAuHXs+G,WAlHiB,WAA4B,IAA3Bt+G,EAA0B,wDAAXC,EAAW,uCAC5C,OAAQA,EAAOC,MACb,KAAKC,IACH,OAAO,EAET,KAAKA,IACL,KAAKA,IACH,OAAO,EAET,QACE,OAAOH,IAyGX80K,cApFoB,WAA2B,IAA1B90K,EAAyB,uDAAjB,KAAMC,EAAW,uCAC9C,OAAQA,EAAOC,MACb,KAAKC,IACH,IAAQ4B,EAAU9B,EAAOM,QAAjBwB,MACR,OAAOA,EAET,KAAK5B,IACL,KAAKA,IACH,OAAO,KAET,QACE,OAAOH,IA0EX87G,kBArGwB,WAA2B,IAA1B97G,EAAyB,uDAAjB,KAAMC,EAAW,uCAClD,OAAQA,EAAOC,MACb,KAAKC,IACH,IAAQ4B,EAAU9B,EAAOM,QAAjBwB,MACR,OAAOA,EAET,KAAK5B,IACL,KAAKA,IACH,OAAO,KAET,QACE,OAAOH,IA2FXw+G,YAtEkB,WAA2B,IAA1Bx+G,EAAyB,uDAAjB,KAAMC,EAAW,uCAC5C,OAAQA,EAAOC,MACb,KAAKC,IACH,IAAQ4B,EAAU9B,EAAOM,QAAjBwB,MACR,OAAOA,EAET,KAAK5B,IACL,KAAKA,IACH,OAAO,KAET,QACE,OAAOH,IA4DXy+G,aAvDmB,WAA2B,IAA1Bz+G,EAAyB,uDAAjB,KAAMC,EAAW,uCAC7C,OAAQA,EAAOC,MACb,KAAKC,IACH,IAAQ4B,EAAU9B,EAAOM,QAAjBwB,MACR,OAAOA,EAET,KAAK5B,IACL,KAAKA,IACH,OAAO,KAET,QACE,OAAOH,IA6CX0+G,cAxCoB,WAA2B,IAA1B1+G,EAAyB,uDAAjB,KAAMC,EAAW,uCAC9C,OAAQA,EAAOC,MACb,KAAKC,IACH,IAAQ4B,EAAU9B,EAAOM,QAAjBwB,MACR,OAAOA,EAET,KAAK5B,IACL,KAAKA,IACH,OAAO,KAET,QACE,OAAOH,IA8BXqlP,MAzBY,WAA4B,IAA3BrlP,EAA0B,wDAAXC,EAAW,uCACvC,OAAQA,EAAOC,MACb,KAAKC,IACH,OAAOF,EAAOM,QAEhB,QACE,OAAOP,MAsBEie,MAGR,IAAMxb,EAAc,SAACzC,GAAD,OAAWA,EAAMie,SAG/BqnO,EAAY,SAACtlP,EAAOyqB,GAAR,OAAqBhoB,EAAYzC,GAAO25G,KAAKlvF,IACzD86N,EAAiB,SAACvlP,GAAD,OAC5ByC,EAAYzC,GACTw/B,MAAMxd,KAAI,SAAC5T,GAAD,OAAQk3O,EAAUtlP,EAAOoO,MACnCkuB,QAAO,SAACkpN,GAAD,OAAYA,EAAOC,aAAe,MACjCC,EAA6B,SAAC1lP,EAAOsB,GAAR,OACxCikP,EAAevlP,GAAOs8B,QACpB,SAACnS,GAAD,OACE7oB,KACEA,EAAWiE,YAAcjE,EAAWiE,aAAe4kB,EAAO5kB,eAC1DjE,EAAWoD,gBAAkBpD,EAAWoD,iBAAmBylB,EAAOzlB,mBAClEpD,EAAWsD,YAActD,EAAWsD,aAAeulB,EAAOvlB,eAC1DtD,EAAWwD,eAAiBxD,EAAWwD,gBAAkBqlB,EAAOrlB,mBAU3D6gP,EAAoB,SAAC3lP,GAChC,IAAM4lP,EAAkBL,EAAevlP,GAAOs8B,QAAO,SAACnS,GACpD,OAAOA,EAAOkE,cAGhB,OAA+B,IAA3Bu3N,EAAgB58N,OAAqB48N,EAAgB,GAE7C,MAODC,EAA+B,SAAC7lP,GAAD,OAAWyC,EAAYzC,GAAOm+G,uBAC7D2nI,EAAwB,SAAC9lP,GAAD,OAAWyC,EAAYzC,GAAO47G,iB,8BCvenE,4SAMax4E,EAAU,YA4CV7a,EAA0B,SAACzX,EAA0BswB,GAChE,IAAM9wB,EAAe,IAAIjE,IASzB,OARAg1B,IAAsB1wB,6BAA6BC,IAAON,GAC1DA,EAAa5D,iBAAiB,CAC5BwB,OAAQ,qBACRjO,OAAQ,MACR2N,WAAY,iBAGd0C,EAAa3D,iBAAiBy0B,GACvB9wB,EAAa9C,KAAb,UAAqB41B,EAArB,QAAoCtyB,IAmBhCi1O,EAAgB,SAACj1O,EAA0BswB,GACtD,IAAM9wB,EAAe,IAAIjE,IASzB,OARAg1B,IAAsB1wB,6BAA6BC,IAAON,GAC1DA,EAAa5D,iBAAiB,CAC5BwB,OAAQ,qBACRjO,OAAQ,MACR2N,WAAY,iBAGd0C,EAAa3D,iBAAiBy0B,GACvB9wB,EAAa9C,KAAb,UAAqB41B,EAArB,eAA2CtyB,IAGvC2X,EAAsB,SAAC3X,EAA8BswB,GAChE,IAAM9wB,EAAe,IAAIjE,IASzB,OARAg1B,IAAsB1wB,6BAA6BC,IAAON,GAC1DA,EAAa5D,iBAAiB,CAC5BwB,OAAQ,qBACRjO,OAAQ6Q,EAAQ4X,WAAa,OAAS,SACtCra,KAAMyC,EAAQ66B,aACd/9B,WAAY,mBAEd0C,EAAa3D,iBAAiBy0B,GACvB9wB,EAAa9C,KAAb,UAAqB41B,EAArB,SAAqCtyB,IAGjCgY,EAAwB,SACnChY,EACAswB,GAEA,IAAM9wB,EAAe,IAAIjE,IASzB,OARAg1B,IAAsB1wB,6BAA6BC,IAAON,GAC1DA,EAAa5D,iBAAiB,CAC5B2B,KAAK,GAAD,OAAKyC,EAAQ66B,cACjBz9B,OAAQ,qBACRjO,OAAQ,SACR2N,WAAY,mBAEd0C,EAAa3D,iBAAiBy0B,GACvB9wB,EAAa9C,KAAb,UAAqB41B,EAArB,WAAuCtyB,IAGnCk1O,EAAmB,SAACl1O,EAA0BswB,GACzD,IAAM9wB,EAAe,IAAIjE,IASzB,OARAg1B,IAAsB1wB,6BAA6BC,IAAON,GAC1DA,EAAa5D,iBAAiB,CAC5BwB,OAAQ,8BACRjO,OAAQ,MACR2N,WAAY,iBAGd0C,EAAa3D,iBAAiBy0B,GACvB9wB,EAAa9C,KAAb,UAAqB41B,EAArB,kBAA8CtyB,IAG1Cm1O,EAAsB,SAACn1O,EAA0BswB,GAC5D,IAAM9wB,EAAe,IAAIjE,IASzB,OARAg1B,IAAsB1wB,6BAA6BC,IAAON,GAC1DA,EAAa5D,iBAAiB,CAC5BwB,OAAQ,8BACRjO,OAAQ,MACR2N,WAAY,iBAGd0C,EAAa3D,iBAAiBy0B,GACvB9wB,EAAa9C,KAAb,UAAqB41B,EAArB,qBAAiDtyB,IAG7Co1O,EAAiB,SAACp1O,EAA0BswB,GACvD,IAAM9wB,EAAe,IAAIjE,IASzB,OARAg1B,IAAsB1wB,6BAA6BC,IAAON,GAC1DA,EAAa5D,iBAAiB,CAC5BwB,OAAQ,8BACRjO,OAAQ,MACR2N,WAAY,iBAGd0C,EAAa3D,iBAAiBy0B,GACvB9wB,EAAa9C,KAAb,UAAqB41B,EAArB,kBAA8CtyB,IAG1Cq1O,EAAwB,SAACr1O,EAA0BswB,GAC9D,IAAM9wB,EAAe,IAAIjE,IASzB,OARAg1B,IAAsB1wB,6BAA6BC,IAAON,GAC1DA,EAAa5D,iBAAiB,CAC5BwB,OAAQ,8BACRjO,OAAQ,MACR2N,WAAY,iBAGd0C,EAAa3D,iBAAiBy0B,GACvB9wB,EAAa9C,KAAb,UAAqB41B,EAArB,uBAAmDtyB,K,6BCnK7CvM,IAPK,CAClBm0B,SAAU,QACVK,YAAa,QACbE,aAAc,QACdmtN,eAAgB,U,wSCgXZ9mO,EAAwBjf,YAAgB,CAC5Cs5G,KA5WW,WAAyB,IAAxB35G,EAAuB,uDAAf,GAAIC,EAAW,uCACnC,OAAQA,EAAOC,MAEb,KAAKC,IACL,KAAKA,IACH,MAA4BF,EAAOM,QAA3B2d,EAAR,EAAQA,SAAUshB,EAAlB,EAAkBA,MACZrf,EAAW,GASjB,OARAqf,EAAMrR,SAAQ,SAAC+8B,GACb/qC,EAAS+qC,GAAT,qCACE78B,YAAY,GACTruB,EAAMkrD,IACNhtC,EAASgtC,IAHd,IAIE/0C,aAAa,OAGVgK,EAGT,KAAKhgB,IACH,MAAwCF,EAAOM,QAAvC0tC,EAAR,EAAQA,MAAOsc,EAAf,EAAeA,qBACTpqC,EAAW69F,IAAKh+G,EAAOiuC,GAM7B,OALA9tB,EAASoqC,EAAqBW,YAA9B,uCACKlrD,EAAMiuC,IACNsc,GAFL,IAGEp0C,aAAa,IAERgK,EAGT,KAAKhgB,IACH,IAAMoqD,EAAuBtqD,EAAOM,QACpC,OAAO,2BACFP,GADL,kBAEGuqD,EAAqBW,WAFxB,uCAGO8yD,IAAKh+G,EAAMuqD,EAAqBW,YAAa,CAAC,6BAC9C8yD,IAAKzzD,EAAsB,CAAC,6BAJnC,IAKIp0C,aAAa,MAMnB,KAAKhW,IACH,IAAMoqD,EAAuBtqD,EAAOM,QAC9B4f,EAAQ,eAAQngB,GAMtB,OALAmgB,EAASoqC,EAAqBW,YAA9B,yBACE78B,YAAY,GACTk8B,GAFL,IAGEp0C,aAAa,IAERgK,EAGT,KAAKhgB,IACH,IAAMoqD,EAAuBtqD,EAAOM,QACpC,OAAO,2BACFP,GADL,kBAEGuqD,EAAqBW,WAFxB,uCAGOlrD,EAAMuqD,EAAqBW,aAHlC,IAIII,wBAAyBtrD,EAAMuqD,EAAqBW,aACjDX,GALP,IAMIp0C,aAAa,MAMnB,KAAKhW,IACH,IAAQ8tC,EAAUhuC,EAAOM,QAAjB0tC,MACR,OAAIjuC,EAAMiuC,GACD+vE,IAAKh+G,EAAOiuC,GAEdjuC,EAGT,KAAKG,IACH,IAAQmrD,EAA4BrrD,EAAOM,QAAnC+qD,wBACR,OAAO,2BACFtrD,GADL,kBAEGsrD,EAAwBJ,WAF3B,uCAGO8yD,IAAKh+G,EAAMsrD,EAAwBJ,YAAa,CAAC,6BACjDI,GAJP,IAKIn1C,aAAa,MAMnB,KAAKhW,IACH,IAAQ+qD,EAAejrD,EAAOM,QAAtB2qD,WACR,OAAO8yD,IAAKh+G,EAAOkrD,GAIrB,KAAK/qD,IACH,IAAM+qD,EAAajrD,EAAOM,QACpB4f,EAAQ,2BACTngB,GADS,kBAEXkrD,EAFW,2BAGPlrD,EAAMkrD,IAHC,IAIV78B,YAAY,MAGhB,OAAOlO,EAGT,KAAKhgB,IACH,IAAM+qD,EAAajrD,EAAOM,QAC1B,OAAO,2BACFP,GADL,kBAEGkrD,EAFH,2BAGOlrD,EAAMkrD,IAHb,IAII78B,YAAY,MAKlB,KAAKluB,IACH,IAAMwuK,EAAc1uK,EAAOM,QACrB4f,EAAQ,eAAQngB,GAiBtB,OAhB0B,GAAtB2uK,EAAY3lJ,OACdmF,IAAQnuB,GAAO,SAACuqD,EAA2BokH,GACzCxuJ,EAASwuJ,GAAT,2BACKpkH,GADL,IAEEl8B,YAAY,OAIhBsgJ,EAAYxgJ,SAAQ,SAAC+8B,GACnB/qC,EAAS+qC,GAAT,2BACKlrD,EAAMkrD,IADX,IAEE78B,YAAY,OAKXlO,EAGT,KAAKhgB,IACH,IAAMwuK,EAAc1uK,EAAOM,QACrB4f,EAAQ,eAAQngB,GAgBtB,OAf0B,GAAtB2uK,EAAY3lJ,OACdmF,IAAQnuB,GAAO,SAACuqD,EAA2BW,GACzC/qC,EAAS+qC,GAAT,2BACKX,GADL,IAEEl8B,YAAY,OAIhBsgJ,EAAYxgJ,SAAQ,SAAC+8B,GACnB/qC,EAAS+qC,GAAT,2BACKlrD,EAAMkrD,IADX,IAEE78B,YAAY,OAIXlO,EAIT,QACE,OAAOngB,IA2MXw/B,MAtMY,WAAyB,IAAxBx/B,EAAuB,uDAAf,GAAIC,EAAW,uCACpC,OAAQA,EAAOC,MAEb,KAAKC,IACL,KAAKA,IACH,IAAQq/B,EAAUv/B,EAAOM,QAAjBi/B,MACR,OAAO+yB,IAAK,GAAD,mBAAKvyD,GAAL,YAAew/B,KAG5B,KAAKr/B,IACH,MAAwCF,EAAOM,QAAvC0tC,EAAR,EAAQA,MAAOsc,EAAf,EAAeA,qBACf,OAAOvqD,EAAMgiB,KAAI,SAACkpC,GAAD,OACfA,IAAejd,EAAQsc,EAAqBW,WAAaA,KAI7D,KAAK/qD,IACH,IAAQ+qD,EAAejrD,EAAOM,QAAtB2qD,WACR,OAAOlrD,EAAMs8B,QAAO,SAAC+pN,GAAD,OAAqBA,IAAoBn7L,KAI/D,KAAK/qD,IACH,IAAMoqD,EAAuBtqD,EAAOM,QACpC,MAAM,GAAN,mBAAWP,GAAX,CAAkBuqD,EAAqBW,aAIzC,KAAK/qD,IACH,IAAQ8tC,EAAUhuC,EAAOM,QAAjB0tC,MACR,OAAOjuC,EAAMs8B,QAAO,SAAC+pN,GAAD,OAAqBA,IAAoBp4M,KAI/D,QACE,OAAOjuC,IAoKXm+G,sBA/I4B,WAA4B,IAA3Bn+G,EAA0B,wDAAXC,EAAW,uCACvD,OAAQA,EAAOC,MACb,KAAKC,IACH,OAAO,EAET,KAAKA,IACL,KAAKA,IACH,OAAO,EAET,QACE,OAAOH,IAsIX47G,eA/JqB,WAA4B,IAA3B57G,EAA0B,wDAAXC,EAAW,uCAChD,OAAQA,EAAOC,MACb,KAAKC,IACH,OAAO,EAET,KAAKA,IACL,KAAKA,IACH,OAAO,EAET,QACE,OAAOH,IAsJXo+G,SAlIe,WAA4B,IAA3Bp+G,EAA0B,wDAAXC,EAAW,uCAC1C,OAAQA,EAAOC,MACb,KAAKC,IACH,OAAO,EAET,KAAKA,IACL,KAAKA,IACH,OAAO,EAET,QACE,OAAOH,IAyHXq+G,UApHgB,WAA4B,IAA3Br+G,EAA0B,wDAAXC,EAAW,uCAC3C,OAAQA,EAAOC,MACb,KAAKC,IACH,OAAO,EAET,KAAKA,IACL,KAAKA,IACH,OAAO,EAET,QACE,OAAOH,IA2GXs+G,WAtGiB,WAA4B,IAA3Bt+G,EAA0B,wDAAXC,EAAW,uCAC5C,OAAQA,EAAOC,MACb,KAAKC,IACH,OAAO,EAET,KAAKA,IACL,KAAKA,IACH,OAAO,EAET,QACE,OAAOH,IA6FXu+G,yBAxE+B,WAA2B,IAA1Bv+G,EAAyB,uDAAjB,KAAMC,EAAW,uCACzD,OAAQA,EAAOC,MACb,KAAKC,IACH,IAAQ4B,EAAU9B,EAAOM,QAAjBwB,MACR,OAAOA,EAET,KAAK5B,IACL,KAAKA,IACH,OAAO,KAET,QACE,OAAOH,IA8DX87G,kBAzFwB,WAA2B,IAA1B97G,EAAyB,uDAAjB,KAAMC,EAAW,uCAClD,OAAQA,EAAOC,MACb,KAAKC,IACH,IAAQ4B,EAAU9B,EAAOM,QAAjBwB,MACR,OAAOA,EAET,KAAK5B,IACL,KAAKA,IACH,OAAO,KAET,QACE,OAAOH,IA+EXw+G,YA1DkB,WAA2B,IAA1Bx+G,EAAyB,uDAAjB,KAAMC,EAAW,uCAC5C,OAAQA,EAAOC,MACb,KAAKC,IACH,IAAQ4B,EAAU9B,EAAOM,QAAjBwB,MACR,OAAOA,EAET,KAAK5B,IACL,KAAKA,IACH,OAAO,KAET,QACE,OAAOH,IAgDXy+G,aA3CmB,WAA2B,IAA1Bz+G,EAAyB,uDAAjB,KAAMC,EAAW,uCAC7C,OAAQA,EAAOC,MACb,KAAKC,IACH,IAAQ4B,EAAU9B,EAAOM,QAAjBwB,MACR,OAAOA,EAET,KAAK5B,IACL,KAAKA,IACH,OAAO,KAET,QACE,OAAOH,IAiCX0+G,cA5BoB,WAA2B,IAA1B1+G,EAAyB,uDAAjB,KAAMC,EAAW,uCAC9C,OAAQA,EAAOC,MACb,KAAKC,IACH,IAAQ4B,EAAU9B,EAAOM,QAAjBwB,MACR,OAAOA,EAET,KAAK5B,IACL,KAAKA,IACH,OAAO,KAET,QACE,OAAOH,MAoBEsf,MAGR,IAAM7c,EAAc,SAACzC,GAAD,OAAWA,EAAMsf,uBAG/BgnO,EAA0B,SAACtmP,EAAOkrD,GAC7C,OAAOzoD,EAAYzC,GAAO25G,KAAKzuD,IAGpBq7L,EAA+B,SAACvmP,GAAD,OAC1CyC,EAAYzC,GACTw/B,MAAMxd,KAAI,SAAC5T,GAAD,OAAQk4O,EAAwBtmP,EAAOoO,MACjDkuB,QAAO,SAACiuB,GAAD,OAA8C,OAApBA,QAAoB,IAApBA,OAAA,EAAAA,EAAsBt6C,QAAS,MAYxDu2O,EAAkC,SAACxmP,GAC9C,IAAMymP,EAAgCF,EAA6BvmP,GAAOs8B,QACxE,SAACiuB,GAAD,cAA0BA,QAA1B,IAA0BA,OAA1B,EAA0BA,EAAsBl8B,cAGlD,OAA6C,IAAzCo4N,EAA8Bz9N,OAAqBy9N,EAA8B,GAEzE,MAIDC,EAA6C,SAAC1mP,GAAD,OACxDyC,EAAYzC,GAAOm+G,uBACRwoI,EAAsC,SAAC3mP,GAAD,OAAWyC,EAAYzC,GAAO47G,iB,qSCrD3Er8F,EAAoBlf,YAAgB,CACxCs5G,KA5WW,WAAyB,IAAxB35G,EAAuB,uDAAf,GAAIC,EAAW,uCACnC,OAAQA,EAAOC,MAEb,KAAKC,IACL,KAAKA,IACH,MAA4BF,EAAOM,QAA3B2d,EAAR,EAAQA,SAAUshB,EAAlB,EAAkBA,MACZrf,EAAW,GASjB,OARAqf,EAAMrR,SAAQ,SAACg+B,GACbhsC,EAASgsC,GAAT,qCACE99B,YAAY,GACTruB,EAAMmsD,IACNjuC,EAASiuC,IAHd,IAIEh2C,aAAa,OAGVgK,EAGT,KAAKhgB,IACH,MAAoCF,EAAOM,QAAnC0tC,EAAR,EAAQA,MAAOud,EAAf,EAAeA,iBACTrrC,EAAW69F,IAAKh+G,EAAOiuC,GAM7B,OALA9tB,EAASqrC,EAAiBW,YAA1B,uCACKnsD,EAAMiuC,IACNud,GAFL,IAGEr1C,aAAa,IAERgK,EAGT,KAAKhgB,IACH,IAAMqrD,EAAmBvrD,EAAOM,QAChC,OAAO,2BACFP,GADL,kBAEGwrD,EAAiBW,WAFpB,uCAGO6xD,IAAKh+G,EAAMwrD,EAAiBW,YAAa,CAAC,yBAC1C6xD,IAAKxyD,EAAkB,CAAC,yBAJ/B,IAKIr1C,aAAa,MAMnB,KAAKhW,IACH,IAAMqrD,EAAmBvrD,EAAOM,QAC1B4f,EAAQ,eAAQngB,GAMtB,OALAmgB,EAASqrC,EAAiBW,YAA1B,yBACE99B,YAAY,GACTm9B,GAFL,IAGEr1C,aAAa,IAERgK,EAGT,KAAKhgB,IACH,IAAMqrD,EAAmBvrD,EAAOM,QAChC,OAAO,2BACFP,GADL,kBAEGwrD,EAAiBW,WAFpB,uCAGOnsD,EAAMwrD,EAAiBW,aAH9B,IAIIhoC,YAAankB,EAAMwrD,EAAiBW,aACjCX,GALP,IAMIr1C,aAAa,MAMnB,KAAKhW,IACH,IAAQ8tC,EAAUhuC,EAAOM,QAAjB0tC,MACR,OAAIjuC,EAAMiuC,GACD+vE,IAAKh+G,EAAOiuC,GAEdjuC,EAGT,KAAKG,IACH,IAAQosD,EAAwBtsD,EAAOM,QAA/BgsD,oBACR,OAAO,2BACFvsD,GADL,kBAEGusD,EAAoBJ,WAFvB,uCAGO6xD,IAAKh+G,EAAMusD,EAAoBJ,YAAa,CAAC,yBAC7CI,GAJP,IAKIp2C,aAAa,MAMnB,KAAKhW,IACH,IAAQgsD,EAAelsD,EAAOM,QAAtB4rD,WACR,OAAO6xD,IAAKh+G,EAAOmsD,GAIrB,KAAKhsD,IACH,IAAMgsD,EAAalsD,EAAOM,QACpB4f,EAAQ,2BACTngB,GADS,kBAEXmsD,EAFW,2BAGPnsD,EAAMmsD,IAHC,IAIV99B,YAAY,MAGhB,OAAOlO,EAGT,KAAKhgB,IACH,IAAMgsD,EAAalsD,EAAOM,QAC1B,OAAO,2BACFP,GADL,kBAEGmsD,EAFH,2BAGOnsD,EAAMmsD,IAHb,IAII99B,YAAY,MAKlB,KAAKluB,IACH,IAAM2nK,EAAc7nK,EAAOM,QACrB4f,EAAQ,eAAQngB,GAiBtB,OAhB0B,GAAtB8nK,EAAY9+I,OACdmF,IAAQnuB,GAAO,SAACwrD,EAAuBW,GACrChsC,EAASgsC,GAAT,2BACKX,GADL,IAEEn9B,YAAY,OAIhBy5I,EAAY35I,SAAQ,SAACg+B,GACnBhsC,EAASgsC,GAAT,2BACKnsD,EAAMmsD,IADX,IAEE99B,YAAY,OAKXlO,EAGT,KAAKhgB,IACH,IAAM2nK,EAAc7nK,EAAOM,QACrB4f,EAAQ,eAAQngB,GAgBtB,OAf0B,GAAtB8nK,EAAY9+I,OACdmF,IAAQnuB,GAAO,SAACwrD,EAAuBW,GACrChsC,EAASgsC,GAAT,2BACKX,GADL,IAEEn9B,YAAY,OAIhBy5I,EAAY35I,SAAQ,SAACg+B,GACnBhsC,EAASgsC,GAAT,2BACKnsD,EAAMmsD,IADX,IAEE99B,YAAY,OAIXlO,EAIT,QACE,OAAOngB,IA2MXw/B,MAtMY,WAAyB,IAAxBx/B,EAAuB,uDAAf,GAAIC,EAAW,uCACpC,OAAQA,EAAOC,MAEb,KAAKC,IACL,KAAKA,IACH,IAAQq/B,EAAUv/B,EAAOM,QAAjBi/B,MACR,OAAO+yB,IAAK,GAAD,mBAAKvyD,GAAL,YAAew/B,KAG5B,KAAKr/B,IACH,MAAoCF,EAAOM,QAAnC0tC,EAAR,EAAQA,MAAOud,EAAf,EAAeA,iBACf,OAAOxrD,EAAMgiB,KAAI,SAACmqC,GAAD,OACfA,IAAele,EAAQud,EAAiBW,WAAaA,KAIzD,KAAKhsD,IACH,IAAQgsD,EAAelsD,EAAOM,QAAtB4rD,WACR,OAAOnsD,EAAMs8B,QAAO,SAACsqN,GAAD,OAAqBA,IAAoBz6L,KAI/D,KAAKhsD,IACH,IAAMqrD,EAAmBvrD,EAAOM,QAChC,MAAM,GAAN,mBAAWP,GAAX,CAAkBwrD,EAAiBW,aAIrC,KAAKhsD,IACH,IAAQ8tC,EAAUhuC,EAAOM,QAAjB0tC,MACR,OAAOjuC,EAAMs8B,QAAO,SAACsqN,GAAD,OAAqBA,IAAoB34M,KAI/D,QACE,OAAOjuC,IAoKXm+G,sBA/I4B,WAA4B,IAA3Bn+G,EAA0B,wDAAXC,EAAW,uCACvD,OAAQA,EAAOC,MACb,KAAKC,IACH,OAAO,EAET,KAAKA,IACL,KAAKA,IACH,OAAO,EAET,QACE,OAAOH,IAsIX47G,eA/JqB,WAA4B,IAA3B57G,EAA0B,wDAAXC,EAAW,uCAChD,OAAQA,EAAOC,MACb,KAAKC,IACH,OAAO,EAET,KAAKA,IACL,KAAKA,IACH,OAAO,EAET,QACE,OAAOH,IAsJXo+G,SAlIe,WAA4B,IAA3Bp+G,EAA0B,wDAAXC,EAAW,uCAC1C,OAAQA,EAAOC,MACb,KAAKC,IACH,OAAO,EAET,KAAKA,IACL,KAAKA,IACH,OAAO,EAET,QACE,OAAOH,IAyHXq+G,UApHgB,WAA4B,IAA3Br+G,EAA0B,wDAAXC,EAAW,uCAC3C,OAAQA,EAAOC,MACb,KAAKC,IACH,OAAO,EAET,KAAKA,IACL,KAAKA,IACH,OAAO,EAET,QACE,OAAOH,IA2GXs+G,WAtGiB,WAA4B,IAA3Bt+G,EAA0B,wDAAXC,EAAW,uCAC5C,OAAQA,EAAOC,MACb,KAAKC,IACH,OAAO,EAET,KAAKA,IACL,KAAKA,IACH,OAAO,EAET,QACE,OAAOH,IA6FXu+G,yBAxE+B,WAA2B,IAA1Bv+G,EAAyB,uDAAjB,KAAMC,EAAW,uCACzD,OAAQA,EAAOC,MACb,KAAKC,IACH,IAAQ4B,EAAU9B,EAAOM,QAAjBwB,MACR,OAAOA,EAET,KAAK5B,IACL,KAAKA,IACH,OAAO,KAET,QACE,OAAOH,IA8DX87G,kBAzFwB,WAA2B,IAA1B97G,EAAyB,uDAAjB,KAAMC,EAAW,uCAClD,OAAQA,EAAOC,MACb,KAAKC,IACH,IAAQ4B,EAAU9B,EAAOM,QAAjBwB,MACR,OAAOA,EAET,KAAK5B,IACL,KAAKA,IACH,OAAO,KAET,QACE,OAAOH,IA+EXw+G,YA1DkB,WAA2B,IAA1Bx+G,EAAyB,uDAAjB,KAAMC,EAAW,uCAC5C,OAAQA,EAAOC,MACb,KAAKC,IACH,IAAQ4B,EAAU9B,EAAOM,QAAjBwB,MACR,OAAOA,EAET,KAAK5B,IACL,KAAKA,IACH,OAAO,KAET,QACE,OAAOH,IAgDXy+G,aA3CmB,WAA2B,IAA1Bz+G,EAAyB,uDAAjB,KAAMC,EAAW,uCAC7C,OAAQA,EAAOC,MACb,KAAKC,IACH,IAAQ4B,EAAU9B,EAAOM,QAAjBwB,MACR,OAAOA,EAET,KAAK5B,IACL,KAAKA,IACH,OAAO,KAET,QACE,OAAOH,IAiCX0+G,cA5BoB,WAA2B,IAA1B1+G,EAAyB,uDAAjB,KAAMC,EAAW,uCAC9C,OAAQA,EAAOC,MACb,KAAKC,IACH,IAAQ4B,EAAU9B,EAAOM,QAAjBwB,MACR,OAAOA,EAET,KAAK5B,IACL,KAAKA,IACH,OAAO,KAET,QACE,OAAOH,MAoBEuf,MAGR,IAAM9c,EAAc,SAACzC,GAAD,OAAWA,EAAMuf,mBAG/BsnO,EAAsB,SAAC7mP,EAAOmsD,GACzC,OAAO1pD,EAAYzC,GAAO25G,KAAKxtD,IAGpB26L,EAA2B,SAAC9mP,GAAD,OACtCyC,EAAYzC,GACTw/B,MAAMxd,KAAI,SAAC5T,GAAD,OAAQy4O,EAAoB7mP,EAAOoO,MAC7CkuB,QAAO,SAACkvB,GAAD,OAAsC,OAAhBA,QAAgB,IAAhBA,OAAA,EAAAA,EAAkBv7C,QAAS,MAYhD82O,EAA8B,SAAC/mP,GAC1C,IAAMgnP,EAA4BF,EAAyB9mP,GAAOs8B,QAChE,SAACkvB,GAAD,cAAsBA,QAAtB,IAAsBA,OAAtB,EAAsBA,EAAkBn9B,cAG1C,OAAyC,IAArC24N,EAA0Bh+N,OAAqBg+N,EAA0B,GAEjE,MAIDC,EAAyC,SAACjnP,GAAD,OACpDyC,EAAYzC,GAAOm+G,uBACR+oI,EAAkC,SAAClnP,GAAD,OAAWyC,EAAYzC,GAAO47G,iB,0QC1T9DurI,EAhGS,SAAC9wO,GACvB,MAWIA,EAVF+wO,uBADF,WAWI/wO,EATFgkO,4BAFF,SAIE9pF,GAOEl6I,EARF8wG,YAQE9wG,EAPFk6I,gBAJF,EAWIl6I,EANFixN,mBALF,SAMEx5L,EAKEz3B,EALFy3B,WACA8e,EAIEv2C,EAJFu2C,WACAy6L,EAGEhxO,EAHFgxO,aACA3iI,EAEEruG,EAFFquG,MAGIj7G,GAZN,YAWI4M,EAXJ,0IAYazM,eACL6V,EAAY0sH,aAAY,SAACnsI,GAAD,MAAY,CAC1Cyf,QAAS6nN,EACLl+F,IAAoDppI,EAAO8tC,EAAY8e,GACvEw8E,IAA+BppI,OAH7Byf,QAKR,EAA4CgtH,oBAAkB,GAA9D,mBAAO8tG,EAAP,KAAwBC,EAAxB,KACA,EAA4C/tG,wBAAcn+H,GAA1D,mBAAOg5O,EAAP,KAAuBC,EAAvB,KAGA,OACE,qCACE,cAACr5F,EAAA,EAAD,CAAeoC,YAAU,EAACC,eAAgBA,IAC1C,cAAC9rC,EAAA,EAAD,2BACMpuG,GADN,IAEEwuG,QACEplG,EACG6c,QAAO,SAACqxB,GAAD,YAA4Br/C,GAAhB+4O,GAA6B15L,EAAO05L,eAAiBA,KACxErlO,KAAI,SAAC2rC,GAAD,MAAa,CAChBh3C,MAAOg3C,EAAOM,SACds0D,MAAO50D,EAAOO,gBACT,GAEXq0D,MAAO94G,EAAK0E,cAAc,CAAEC,GAAI,mBAChC24G,YAAat9G,EAAK0E,cAAc,CAAEC,GAAI,yBACtCw5G,gBACEw/H,EACE,qCACG1iI,EAAM/tG,OACL,eAAC06L,EAAA,EAAD,CACEjjM,GAAI,aACJy0G,MAAO,CAAEm1D,OAAQ,WACjBh1D,UAAW,MACX6pB,QAAS,WACP06G,EAAkB,CAAEt5L,SAAUy2D,EAAM/tG,QACpC6jO,GAAiB,IANrB,UASE,cAACz2B,EAAA,EAAD,CAAqB72E,UAAU,MAAMn8B,OAAQ,aAAcs8B,QAAQ,cAAnE,SACE,cAAC,IAAD,CACEj/H,GAAI,eACJ+uB,OAAQ,CAAExkB,WAAYlP,EAAK0E,cAAc,CAAEC,GAAI,wBAGnD,cAAC,IAAD,CAAO6L,KAAM,QAGjB,eAACo3L,EAAA,EAAD,CACEjjM,GAAI,YACJy0G,MAAO,CAAEm1D,OAAQ,WACjBh1D,UAAW,MACX6pB,QAAS,WACP06G,OAAkBj5O,GAClBksO,GAAiB,IANrB,UASE,cAACz2B,EAAA,EAAD,CAAqB72E,UAAU,MAAMn8B,OAAQ,YAAas8B,QAAQ,cAAlE,SACE,cAAC,IAAD,CACEj/H,GAAI,cACJ+uB,OAAQ,CAAExkB,WAAYlP,EAAK0E,cAAc,CAAEC,GAAI,wBAGnD,cAAC,IAAD,CAAM6L,KAAM,WAIhB,gCAIN,cAACutO,EAAA,EAAD,CACE75L,OAAQ25L,EACRjN,qBAAsBA,EACtB1oC,kBAAmB4oC,EACnBkN,2BAA4B,WAC1BF,OAAkBj5O,GAnEGksO,GAAiB,U,mCCC1C/iB,EAA0B,SAACphN,GAE/B,IACEf,EAaEe,EAbFf,MACAm+L,EAYEp9L,EAZFo9L,SACAkjB,EAWEtgN,EAXFsgN,gBACAC,EAUEvgN,EAVFugN,mBACArhN,EASEc,EATFd,YACAo8L,EAQEt7L,EARFs7L,kBACAC,EAOEv7L,EAPFu7L,iBACAJ,EAMEn7L,EANFm7L,gBACAC,EAKEp7L,EALFo7L,gBACAxxM,EAIEoW,EAJFpW,OACA0V,EAGEU,EAHFV,MACA+iK,EAEEriK,EAFFqiK,QAZF,EAcIriK,EADFsmM,eAbF,SAgBA,EAAyC3K,cAAjC5rF,EAAR,EAAQA,QAAS6rF,EAAjB,EAAiBA,aAAcC,EAA/B,EAA+BA,MAC/B,EAAsCzlE,mBAAe,IAAIzwG,MAAzD,mBAAOm2K,EAAP,KAAoBC,EAApB,KAEM5C,EAAa0C,IAEnB,EAAoD/lE,aAAY,SAACnsI,GAAD,MAAY,CAC1E4Q,MAAO5Q,EACP0nP,cAAelmO,2BAAuCxhB,GACtD2rG,QAASnqF,aAAyBxhB,GAClCysD,SAAU6tL,IAA8Bt6O,EAA9B,OAAqCwvM,QAArC,IAAqCA,OAArC,EAAqCA,EAAYm4C,iBAJrD/2O,EAAR,EAAQA,MAAO82O,EAAf,EAAeA,cAAe/7I,EAA9B,EAA8BA,QAASl/C,EAAvC,EAAuCA,SAMjCm7L,EAAkB1oN,WAAWwoN,EAAc,IAC3CG,EAAmB3oN,WAAWwoN,EAAc,IAE5CI,EAA+B,UAC/Br+O,GAAOG,cACb,GAAgC6iI,mBAAiBm7G,GAAjD,qBAAOzoN,GAAP,MAAiB4oN,GAAjB,MACA,GAAkCt7G,mBAAiBo7G,GAAnD,qBAAOzoN,GAAP,MAAkB4oN,GAAlB,MAEAxiI,qBAAU,WACJmsF,IACEglB,GACFoxB,GAAYpxB,EAAgBx3L,UAC5B6oN,GAAarxB,EAAgBv3L,aAE7B2oN,GAAYH,GACZI,GAAaH,OAGhB,CAACl2C,EAAmBglB,IAEvBnxG,qBAAU,WAEiB,MAAvBgqF,EAAWrwK,UACa,MAAxBqwK,EAAWpwK,WACU,MAArBowK,EAAW97B,QACmB,MAA9B87B,EAAWvmE,iBAEXg/G,OACD,CACDz4C,EAAWngK,aACXmgK,EAAWrwK,SACXqwK,EAAWpwK,UACXowK,EAAW97B,OACX87B,EAAWvmE,kBAGb,IAAMg/G,GAAwB,WACxBrxB,GACFA,EAAmB,mDACdD,GACAnnB,GACAA,EAAWluM,YAHE,IAIhBswL,sBACE4d,GAAcA,EAAWvmE,gBACrBi/G,IAAkDt3O,EAAO4+L,EAAWvmE,iBACpE6+G,MAINK,GAA2B,SAACvhB,GAChCh1B,IACe,MAAXl5B,GAAoBkuD,GAAQluD,EAAQ82B,IAG1C,OACE,cAAC,IAAD,CACExsF,UAAU,2BACV+vF,iBAAkB4J,EAAU,kCAAoC,8BAChExvE,OAAQwkE,EACRr8L,MAAOA,EACPm+L,SAAUA,EACV99L,MAAOA,GAAS,QAChBq9L,eAAgB,kBAAMm1C,IAAyB,IAPjD,SASE,eAACl3C,EAAA,EAAD,CAAKjuF,UAAW,gCAAhB,UACE,cAAC6oE,EAAA,EAAD,CAAK9T,GAAG,KAAR,SACE,cAAC,IAAD,CACE3xD,QAASA,EACT+jE,kBAAgB,EAChB97K,KAAM,eACNm8K,aACEmsC,GAAmBA,EAAgBtnL,aAC/BsnL,EAAgBtnL,kBAChB/gC,EAENs6F,MAAO,CAAEQ,UAAU,GACnB2iF,OAAQ,gBAAGrnE,EAAH,EAAGA,MAAOimE,EAAV,EAAUA,WAAV,OACN,cAACliE,EAAA,EAAD,CACEr6G,GAAI,oBACJs2G,MAAOA,EACPC,WAAYgmE,EACZvhF,UAAU,EACVmZ,MAAO94G,GAAK0E,cAAc,CAAEC,GAAI,0BAKxC,cAACy9K,EAAA,EAAD,CAAK9T,GAAG,KAAR,SACE,cAAC,IAAD,CACE3xD,QAASA,EACT+jE,kBAAgB,EAChB97K,KAAM,kBACNm8K,aACEmsC,GAAmBA,EAAgBM,gBAC/BN,EAAgBM,qBAChB3oN,EAENy9K,OAAQ,gBAAGrnE,EAAH,EAAGA,MAAOimE,EAAV,EAAUA,WAAV,OACN,cAACliE,EAAA,EAAD,CACEr6G,GAAI,uBACJs2G,MAAOA,EACPC,WAAYgmE,EACZpoE,MAAO94G,GAAK0E,cAAc,CAAEC,GAAI,qCAKxC,cAACy9K,EAAA,EAAD,CAAK9T,GAAG,KAAR,SACE,cAAC,IAAD,CACE3xD,QAASA,EACT+jE,kBAAgB,EAChB97K,KAAM,kBACNm8K,aACEmsC,GAAmBA,EAAgB1tF,gBAC/B0tF,EAAgB1tF,qBAChB36H,EAENs6F,MAAO,CAAEQ,UAAU,GACnB2iF,OAAQ,gBAAGrnE,EAAH,EAAGA,MAAOimE,EAAV,EAAUA,WAAV,OACN,cAACy9D,EAAA,EAAD,CACE1jI,MAAOA,EACPC,WAAYgmE,EACZv8K,GAAI,uBACJ62G,2BAA4B,SAACtuG,GAAD,OAAWy7L,EAAe,IAAIp2K,OAC1DotE,UAAU,SAKlB,cAACyiF,EAAA,EAAD,CAAK9T,GAAG,KAAR,SACE,cAAC,IAAD,CACE3xD,QAASA,EACT+jE,kBAAgB,EAChB97K,KAAM,WACNm8K,aACEmsC,GAA+C,MAA5BA,EAAgBx3L,SAC/Bw3L,EAAgBx3L,cAChB7wB,EAENs6F,MAAO,CAAEQ,UAAU,GACnB2iF,OAAQ,gBAAGrnE,EAAH,EAAGA,MAAOimE,EAAV,EAAUA,WAAV,OACN,cAACj6C,EAAA,EAAD,CACEhsB,MAAOA,EACPC,WAAYgmE,EACZvhF,UAAU,EACVh7F,GAAI,gBACJ22G,kBAAmB5lF,GACnBojF,MAAO94G,GAAK0E,cAAc,CAAEC,GAAI,uBAChC62G,2BAA4B,SAACtuG,GAAD,OAAWy7L,EAAe,IAAIp2K,OAC1D80G,gBAAgB,EAChBF,kBAAkB,EAClBG,eAAe,EACfC,kBAAmB,IACnBL,KAAM,EACNvgB,KAAM,GACNC,IAAK,UAKb,cAACw7D,EAAA,EAAD,CAAK9T,GAAG,KAAR,SACE,cAAC,IAAD,CACE3xD,QAASA,EACT+jE,kBAAgB,EAChB97K,KAAM,YACNm8K,aACEmsC,GAAgD,MAA7BA,EAAgBv3L,UAC/Bu3L,EAAgBv3L,eAChB9wB,EAENs6F,MAAO,CAAEQ,UAAU,GACnB2iF,OAAQ,gBAAGrnE,EAAH,EAAGA,MAAOimE,EAAV,EAAUA,WAAV,OACN,cAACj6C,EAAA,EAAD,CACEhsB,MAAOA,EACPC,WAAYgmE,EACZvhF,UAAU,EACVh7F,GAAI,iBACJ22G,kBAAmB3lF,GACnBmjF,MAAO94G,GAAK0E,cAAc,CAAEC,GAAI,wBAChC62G,2BAA4B,SAACtuG,GAAD,OAAWy7L,EAAe,IAAIp2K,OAC1D80G,gBAAgB,EAChBF,kBAAkB,EAClBG,eAAe,EACfC,kBAAmB,IACnBL,KAAM,EACNvgB,KAAM,IACNC,IAAK,WAKb,cAACw7D,EAAA,EAAD,CAAK9T,GAAG,KAAR,SACE,cAAC,IAAD,CACE3xD,QAASA,EACT+jE,kBAAgB,EAChB97K,KAAM,SACNm8K,aAAc7+E,EAAQwtG,uCACpBwd,GAAmBA,EAAgBjjD,OAASijD,EAAgBjjD,OAnMlD,IAqMZ9qE,MAAO,CAAEQ,UAAU,GACnB2iF,OAAQ,gBAAGrnE,EAAH,EAAGA,MAAOimE,EAAV,EAAUA,WAAV,OACN,cAACj6C,EAAA,EAAD,CACEhsB,MAAOA,EACPC,WAAYgmE,EACZvhF,UAAU,EACVh7F,GAAI,iBACJm0G,MAAO94G,GAAK0E,cAAc,CAAEC,GAAI,qBAChC0iI,gBAAgB,EAChBF,kBAAkB,EAClBG,eAAe,EACf9rB,2BAA4B,SAACtuG,GAAD,OAAWy7L,EAAe,IAAIp2K,OAC1D20G,KAAM,EACNE,OAAQ,YACRzgB,IAAKzkB,EAAQwtG,uCAAuC,IACpD9oF,IAAK1kB,EAAQwtG,uCAAuC,aAK1DwD,GACA,eAAC9wB,EAAA,EAAD,CAAK9T,GAAG,KAAR,UACE,cAACk7B,EAAA,EAAD,CACEryM,WAAY,CACVoiH,UAAW,GACXH,MAAO,CAAEM,OAAQ,QACjBgvF,YAAaA,GAEfmnB,uBAAwB,CACtBtnL,SAAS,2BACJ2kL,GADG,IAENx3L,SAAUA,GACVC,UAAWA,GACXs0I,OAAQ87B,GAAcA,EAAW97B,OAAS87B,EAAW97B,OAtO/C,GAuONke,sBACE4d,GAAcA,EAAWvmE,gBACrBi/G,IACEt3O,EACA4+L,EAAWvmE,iBAEb6+G,IAER5/C,kBAAmB,SAAC/qK,GAClB4qN,GAAY5qN,EAAOmuK,KACnB08C,GAAa7qN,EAAOouK,MAEtBtD,cAAc,EACdvW,oBAAoB,EACpBoP,iBAAiB,EACjBD,aAAa,GAEfhP,oBAAqB,CAAE3iL,SAAU,aAAc4iL,YAAY,KAE7D,0BAGJ,cAACjG,EAAA,EAAD,CAAK9T,GAAG,KAAR,SACE,cAAC,IAAD,CACE3xD,QAASA,EACT+jE,kBAAgB,EAChB97K,KAAM,cACNm8K,aACEmsC,GAAmBA,EAAgBp3G,YAC/Bo3G,EAAgBp3G,iBAChBjxG,EAENy9K,OAAQ,gBAAGrnE,EAAH,EAAGA,MAAOimE,EAAV,EAAUA,WAAV,OACN,cAACliE,EAAA,EAAD,CACEr6G,GAAI,mBACJs2G,MAAOA,EACPC,WAAYgmE,EACZpoE,MAAO94G,GAAK0E,cAAc,CAAEC,GAAI,iCAKxC,cAAC49K,EAAA,EAAD,CACE39K,KAAM,aACN+3G,QAASA,EACTvB,QAAS,CACP0jE,QAAS,KACT1pD,aAAa,EACbkqD,qBAAqB,EACrBM,qBAAqB,EACrBV,iBAAiB,EACjBC,oBAAoB,GAEtB4B,aACEmsC,EACI,CACEpxN,WAAYoxN,EAAgBpxN,WAC5Bb,eAAgBiyN,EAAgBjyN,eAChCE,WAAY+xN,EAAgB/xN,WAC5BE,cAAe6xN,EAAgB7xN,oBAEjCwJ,IAGyB,MAAtB,OAAVkhM,QAAU,IAAVA,OAAA,EAAAA,EAAYvmE,kBACX,cAAC4iD,EAAA,EAAD,CAAK9T,GAAG,KAAR,SACE,cAAC,IAAD,CACE3xD,QAASA,EACT+jE,kBAAgB,EAChB97K,KAAM,cACNu6F,MAAO,CAAEQ,UAAU,GACnBohF,aAAY,OAAEmsC,QAAF,IAAEA,OAAF,EAAEA,EAAiB/pK,WAC/Bm/H,OAAQ,gBAAGrnE,EAAH,EAAGA,MAAOimE,EAAV,EAAUA,WAAV,OACN,cAACwvD,EAAA,EAAD,CACEz1H,MAAOA,EACPC,WAAYgmE,EACZv8K,GAAI,mBACJg7F,UAAQ,EACRixI,sBAAoB,EACpBv1H,WAAS,EACTwiH,aAAW,EACXx5L,WAAU,OAAE6oL,QAAF,IAAEA,OAAF,EAAEA,EAAiB7oL,WAC7BsjH,iBAAgB,OAAEo+C,QAAF,IAAEA,OAAF,EAAEA,EAAYluM,kBAMP,MAAtB,OAAVkuM,QAAU,IAAVA,OAAA,EAAAA,EAAYvmE,kBACX,qCACE,cAAC4iD,EAAA,EAAD,CAAK9T,GAAG,KAAR,SACE,cAAC,IAAD,CACE3xD,QAASA,EACT+jE,kBAAgB,EAChB97K,KAAM,cACNu6F,MAAO,CAAEQ,UAAU,GACnBohF,aAAY,OAAEmsC,QAAF,IAAEA,OAAF,EAAEA,EAAiB/pK,WAC/Bm/H,OAAQ,gBAAGrnE,EAAH,EAAGA,MAAOimE,EAAV,EAAUA,WAAV,OACN,cAACwvD,EAAA,EAAD,CACEz1H,MAAOA,EACPC,WAAYgmE,EACZv8K,GAAI,mBACJg7F,UAAQ,EACRixI,sBAAoB,EACpBv1H,WAAS,EACTh3E,WAAU,OAAE6oL,QAAF,IAAEA,OAAF,EAAEA,EAAiB7oL,WAC7BsjH,iBAAgB,OAAEo+C,QAAF,IAAEA,OAAF,EAAEA,EAAYluM,kBAKtC,cAACuqL,EAAA,EAAD,CAAK9T,GAAG,KAAR,SACE,cAAC,IAAD,CACE3xD,QAASA,EACT+jE,kBAAgB,EAChB97K,KAAM,WACNu6F,MAAO,CAAEQ,UAAU,GACnBohF,aAAY,OAAEmsC,QAAF,IAAEA,OAAF,EAAEA,EAAiB1oK,SAC/B89H,OAAQ,gBAAGrnE,EAAH,EAAGA,MAAOimE,EAAV,EAAUA,WAAV,OACN,cAAC,EAAD,CACEjmE,MAAOA,EACPC,WAAYgmE,EACZv8K,GAAI,gBACJ02G,WAAS,EACTwiH,aAAW,EACXl+H,UAAQ,EACRixI,sBAAoB,EACpBvsM,WAAU,OAAE6oL,QAAF,IAAEA,OAAF,EAAEA,EAAiB7oL,WAC7B8e,WAAU,OAAE4iJ,QAAF,IAAEA,OAAF,EAAEA,EAAY64C,YACxBhB,aAAc,EACd92F,eAAc,OAAEi/C,QAAF,IAAEA,OAAF,EAAEA,EAAYluM,qBAOxC,cAAC2vM,EAAA,EAAD,CAAKjuF,UAAW,oBAAhB,SACE,eAAC6oE,EAAA,EAAD,CAAK9T,GAAG,aAAR,UACGy5B,GACC,cAAC+B,EAAA,EAAO3mE,OAAR,CACE5pB,UAAU,mBACV9oG,MAAM,UAEN2yH,QAASolE,GAAa,SAAC90K,GACrBgrN,IAAyB,GACzBloP,EAAO,2BACFk9B,GADC,IAEJyvB,WAC6B,KAA3BzvB,EAAO8rG,gBACH9rG,EAAOwqN,YACoB,KAA3BxqN,EAAO8rG,gBACP9rG,EAAOkrN,iBACP/5O,EACN2/C,SAC6B,KAA3B9wB,EAAO8rG,gBAAP,OACIx8E,QADJ,IACIA,OADJ,EACIA,EAAUwB,SACiB,KAA3B9wB,EAAO8rG,gBACP9rG,EAAO8wB,cACP3/C,EACNolK,OAAQ/nE,EAAQ4vG,uCAAuCp+K,EAAOu2I,cApBpE,SAwBGn+J,GAAe,cAAC,IAAD,CAAkBnH,GAAG,kBAGxCqjM,GACC,cAAC8B,EAAA,EAAO3mE,OAAR,CACE5pB,UAAU,mBACV9oG,MAAM,QACN2yH,QAAS,kBAAMs7G,IAAyB,IAH1C,SAKE,cAAC,IAAD,CAAkB/5O,GAAG,+BAUrCqpN,EAAwBxuG,aAAe,CACrCqoF,OAAQ,GACR40B,UAAU,EACVC,YAAa,IACb30B,iBAAiB,EACjBC,iBAAiB,EACjB20B,aAAc,GACd9pD,UAAW,IAGEm7C,O,8BCpeAhxC,IARD,CACZoV,UAAW,0BACX75D,aAAc,6BACd+5D,eAAe,+BACfD,mBAAoB,oCACpBh6D,aAAc,gC,8CCKD2kD,IAVD,CACZmmD,aAAc,iBACd0b,aAAc,iBACdzb,gBAAiB,oBACjBC,eAAgB,mBAChBE,mBAAoB,uBACpBD,kBAAmB,wB,6BCENtmD,IARD,CACZ4oD,QAAS,gBACTE,OAAQ,eACRE,MAAO,cACPh9M,OAAQ,eACRm9M,sBAAuB,gC,kCCLzB,mHAEa2Y,EAA+B,eAAChkO,EAAD,uDAAW,GAAX,MAAmB,CAC7DrkB,KAAMC,IACNI,QAASgkB,IAEEikO,EAAkC,SAACtqO,EAAUshB,GAAX,MAAsB,CACnEt/B,KAAMC,IACNI,QAAS,CACP2d,WACAshB,WAGSipN,EAA8B,eACzC1mP,EADyC,uDACjC,CAAE+U,aAAc,QAASsL,YAAa,KADL,MAErC,CACJliB,KAAMC,IACNI,QAAS,CACPwB,Y,6BClBJ,sNAMa2mP,EAAmB,SAACnmM,GAAD,MAAY,CAC1CriD,KAAMC,IACNI,QAAS,CAAEgiD,WAEAomM,EAAsB,SAACxoM,GAAD,MAAU,CAC3CjgD,KAAMC,IACNI,QAAS,CAAE4/C,SAEAyoM,EAAkB,eAAC7mP,EAAD,uDAAS,CAAE+U,aAAc,QAASsL,YAAa,KAA/C,MAA0D,CACvFliB,KAAMC,IACNI,QAAS,CACPwB,Y,+NCIE4iG,EADQ4gB,iBAAiBrS,SAASvxF,MAClBqlK,iBAAiB,aAAaz+E,OAE9CsgJ,EAAc,SAACxyO,GAAkB,IAAD,EAElCjI,EAOEiI,EAPFjI,GACAm0G,EAMElsG,EANFksG,MACAnZ,EAKE/yF,EALF+yF,SACAsb,EAIEruG,EAJFquG,MACAkE,EAGEvyG,EAHFuyG,SALF,EAQIvyG,EAFF0uG,yBANF,MAMsBpgB,EANtB,EAOEsgB,EACE5uG,EADF4uG,2BAGFO,qBAAU,WACW,MAAfd,EAAM/tG,YAAgCrI,GAAfo2G,EAAM/tG,OAA4C,GAAtB+tG,EAAM/tG,MAAMqS,QACjE07F,EAAMkB,SAASb,KAEhB,CAACL,EAAM/tG,QAEV,MAAoD81H,oBAAS,GAA7D,mBAAOq8G,EAAP,KAA2BC,EAA3B,KASAvjI,qBAAU,WACJT,GAAmBU,EAAcV,KACpC,CAACA,IAEJ,IAAMU,EAAgB,SAAC9uG,GACrB+tG,EAAMkB,SAASjvG,GACXsuG,GACFA,EAA2BtuG,IAGzBqvG,EAASgjI,IAAS,CACtB9hB,QAAS,CACPhtN,MAAO,CACLvE,MAAO,OACPypM,OAAQ,SACRj8F,OAAQ,OACR87F,aAAc,MACdF,WAAW,GAAD,iBAAKr6F,EAAM/tG,aAAX,QAAoBouG,IAEhCkkI,OAAQ,CAONjqC,QAAS,gBACThnC,OAAQ,UACR3zD,gBAAiB,WACjB6kI,eAAgB,cAChB3iI,OAAO,oBACP04F,aAAc,YAEhBkqC,QAAS,CACPj6O,SAAU,WACVg3G,OAAQ,SAEVkjI,MAAO,CACLl6O,SAAU,QACVm6O,IAAK,MACLC,MAAO,MACPC,OAAQ,MACRC,KAAM,UAIZ,OACE,eAAC10C,EAAA,EAAD,WACE,eAACC,EAAA,EAAD,CAAO/xF,UAAU,aAAa6C,IAAKz3G,EAAnC,UACGm0G,EACAnZ,GAAY,sBAAM4Z,UAAU,WAAhB,sBAEf,gCACE,qBAAKH,MAAOmD,EAAOijI,OAAQp8G,QA7Db,WAClBk8G,GAAuBD,IA4DnB,SACE,qBAAKjmI,MAAOmD,EAAO9rG,UAEpB4uO,EACC,sBAAKjmI,MAAOmD,EAAOmjI,QAAnB,UACE,qBAAKtmI,MAAOmD,EAAOojI,MAAOv8G,QA9DhB,WAClBk8G,GAAsB,MA8Dd,cAAC,IAAD,CACE36O,GAAIA,EAEJ8L,MAAOwqG,EAAM/tG,MACbhB,MAAO,IACP8zO,iBAAkB,SAACvvO,EAAO25F,GACxB4R,EAAcvrG,EAAMg2F,MAEtBw5I,cAAc,EACd9gI,SAAUA,EACV+gI,aAAc,CACZhlJ,EACA,UACA,UACA,UACA,UACA,UACA,UACA,UACA,UACA,UACA,UACA,UACA,UACA,UACA,YAvBGv2F,MA2BP,YAMZy6O,EAAY5/H,aAAe,CACzB7f,UAAU,EACVwf,UAAU,GAGGigI,Q,kCC9EAe,EA3DoB,SAACvzO,GAClC,MAKIA,EAJF0uG,yBADF,MACsB,IADtB,EAEEL,EAGEruG,EAHFquG,MAFF,EAKIruG,EAFF4uG,kCAHF,MAG+B,SAACtuG,GAAD,OAAW,MAH1C,EAIEiyG,EACEvyG,EADFuyG,SAEIn/G,EAAOG,cASb,EAAoC6iI,mBAASzwG,KAAKD,OAAlD,mBAAO+rM,EAAP,UAKAtiH,qBAAU,WACW,MAAfd,EAAM/tG,YAAgCrI,GAAfo2G,EAAM/tG,OAA4C,GAAtB+tG,EAAM/tG,MAAMqS,QACjE07F,EAAMkB,SAASb,KAEhB,CAACL,EAAM/tG,QAEV6uG,qBAAU,WACJT,GACFU,EAAcV,KAEf,CAACA,IAEJ,IAAMU,EAAgB,SAAC9uG,GACrB+tG,EAAMkB,SAASjvG,GACXsuG,GACFA,EAA2BtuG,IAG/B,OACE,wBAAC8tG,EAAA,EAAD,2BACMzG,eAAK3nG,EAAO,CAAC,uBADnB,IAEEhI,KAAK,QACLD,GAAI,QACJlM,IAAK4lO,EACLjvN,WAAY+vG,EACZrG,MAAO,cAAC,IAAD,CAAkBn0G,GAAG,oBAC5By2G,QAvCmB,CACrB,CAAEz2G,GAAI,IAAKuI,MAAO,IAAK4rG,MAAO,oBAAqB/mG,SAAU,UAC7D,CAAEpN,GAAI,IAAKuI,MAAO,IAAK4rG,MAAO,oBAAqB/mG,SAAU,UAC7D,CAAEpN,GAAI,IAAKuI,MAAO,IAAK4rG,MAAO,oBAAqB/mG,SAAU,WAC7D,CAAEpN,GAAI,IAAKuI,MAAO,IAAK4rG,MAAO,oBAAqB/mG,SAAU,eAmCnCwG,KAAI,SAAC6nO,GAC3B,OAAO,2BACFA,GADL,IAEEh7O,KAAM,cAAC,IAAD,CAAMA,KAAMg7O,EAAGruO,WACrB+mG,MAAO,cAAC,IAAD,CAAkBn0G,GAAE,0BAAqBy7O,EAAGlzO,SACnDgsG,WAAYl5G,EAAK0E,cAAc,CAAEC,GAAI,mBAAqBy7O,EAAGlzO,iB,2JCZjEk+L,EAAsB,SAACx+L,GAE3B,IAAQG,EAA2BH,EAA3BG,MAAO+vN,EAAoBlwN,EAApBkwN,OAAQngH,EAAY/vG,EAAZ+vG,QAEvB,MAAsB,WAAf5vG,EAAMtW,KACX,cAAC,IAAD,CACEkmH,QAASA,EACT+jE,kBAAgB,EAChB97K,KAAMmI,EAAMnI,KACZm8K,aAAch0K,EAAMD,aACpBqyF,MACEpyF,EAAM4yF,UAA8C,oBAA3B5yF,EAAM+8M,iBAC3B,CAAEnqH,SAAU5yF,EAAM4yF,SAAUsoC,SAAUl7H,EAAM+8M,kBAC5C,CAAEnqH,SAAU5yF,EAAM4yF,UAExB2iF,OAAQ,gBAAGrnE,EAAH,EAAGA,MAAOimE,EAAV,EAAUA,WAAV,OACN,cAAClmE,EAAA,EAAD,CACEC,MAAOA,EACPC,WAAYgmE,EACZvhF,SAAU5yF,EAAM4yF,SAChB+d,YAAa3wG,EAAM2wG,YACnBvC,gBAAgBpuG,EAAMouG,gBAAiBpuG,EAAMouG,eAC7Cx2G,GAAIoI,EAAMpI,GACV02G,WAAW,EACXD,QAASruG,EAAMquG,QAAUruG,EAAMquG,QAAU,GACzCtC,MAAO/rG,EAAM+rG,MACbwE,YAAavwG,EAAMuwG,YACnB9B,2BAA4BzuG,EAAMyuG,gCAIvB,gBAAfzuG,EAAMtW,KACR,cAAC,IAAD,CACEkmH,QAASA,EACT+jE,kBAAgB,EAChB97K,KAAMmI,EAAMnI,KACZm8K,aAAch0K,EAAMD,aACpBqyF,MACEpyF,EAAM4yF,UAA8C,oBAA3B5yF,EAAM+8M,iBAC3B,CAAEnqH,SAAU5yF,EAAM4yF,SAAUsoC,SAAUl7H,EAAM+8M,kBAC5C,CAAEnqH,SAAU5yF,EAAM4yF,UAExB2iF,OAAQ,gBAAGrnE,EAAH,EAAGA,MAAOimE,EAAV,EAAUA,WAAV,OACN,cAAC6N,EAAA,EAAD,CACE9zE,MAAOA,EACPC,WAAYgmE,EACZvhF,SAAU5yF,EAAM4yF,SAChB+d,YAAa3wG,EAAM2wG,YACnB/4G,GAAIoI,EAAMpI,GACV02G,WAAW,EACXD,QAASruG,EAAMquG,QAAUruG,EAAMquG,QAAU,GACzCtC,MAAO/rG,EAAM+rG,MACbwE,YAAavwG,EAAMuwG,iBAIT,QAAdvwG,EAAMtW,KACR,cAAC,IAAD,CACEkmH,QAASA,EACT+jE,kBAAgB,EAChB97K,KAAMmI,EAAMnI,KACZm8K,aAAch0K,EAAMD,aACpBqyF,MACEpyF,EAAM4yF,UAA8C,oBAA3B5yF,EAAM+8M,iBAC3B,CAAEnqH,SAAU5yF,EAAM4yF,SAAUsoC,SAAUl7H,EAAM+8M,kBAC5C,CAAEnqH,SAAU5yF,EAAM4yF,UAExB2iF,OAAQ,gBAAGrnE,EAAH,EAAGA,MAAOimE,EAAV,EAAUA,WAAV,OACN,cAAC9T,EAAA,EAAD,CACEnyD,MAAOA,EACPC,WAAYgmE,EACZvhF,SAAU5yF,EAAM4yF,SAChBmZ,MAAO/rG,EAAM+rG,MACbu0D,WAAYtgK,EAAMsgK,WAClBlxD,SAAUpvG,EAAMszO,UAAYtzO,EAAMyuG,iCAA8B32G,EAChEyoK,QAASvgK,EAAMugK,QACfC,QAASxgK,EAAMwgK,QACfE,SAAU1gK,EAAM0gK,SAChBC,WAAY3gK,EAAM2gK,gBAIP,SAAf3gK,EAAMtW,KACR,cAAC,IAAD,CACEkmH,QAASA,EACT+jE,kBAAgB,EAChB97K,KAAMmI,EAAMnI,KACZm8K,aAAch0K,EAAMD,aACpBqyF,MACEpyF,EAAM4yF,UAA8C,oBAA3B5yF,EAAM+8M,iBAC3B,CAAEnqH,SAAU5yF,EAAM4yF,SAAUsoC,SAAUl7H,EAAM+8M,kBAC5C,CAAEnqH,SAAU5yF,EAAM4yF,UAExB2iF,OAAQ,kBAAGrnE,EAAH,EAAGA,MAAOimE,EAAV,EAAUA,WAAV,OACN,cAACliE,EAAA,EAAD,CACE/D,MAAOA,EACPC,WAAYgmE,EACZvhF,UAA6B,IAAnB5yF,EAAM4yF,SAChBh7F,GAAIoI,EAAMpI,GACVm0G,MAAO/rG,EAAM+rG,MACbqF,gBAAiBpxG,EAAMoxG,gBACvB1nH,KAAI,UAAEsW,EAAMuzO,gBAAR,QAAoB,OACxBhjI,YAAavwG,EAAMuwG,YACnBhC,kBAAmBvuG,EAAMD,cAAgBC,EAAMuuG,kBAC/CE,2BAA4BzuG,EAAMyuG,gCAIvB,eAAfzuG,EAAMtW,KACR,cAAC,IAAD,CACEkmH,QAASA,EACT+jE,kBAAgB,EAChB97K,KAAMmI,EAAMnI,KACZm8K,aAAch0K,EAAMD,aACpBqyF,MACEpyF,EAAM4yF,UAA8C,oBAA3B5yF,EAAM+8M,iBAC3B,CAAEnqH,SAAU5yF,EAAM4yF,SAAUsoC,SAAUl7H,EAAM+8M,kBAC5C,CAAEnqH,SAAU5yF,EAAM4yF,UAExB2iF,OAAQ,gBAAGrnE,EAAH,EAAGA,MAAOimE,EAAV,EAAUA,WAAV,OACN,cAACq/D,EAAA,EAAD,CACEtlI,MAAOA,EACPC,WAAYgmE,EACZvhF,UAA6B,IAAnB5yF,EAAM4yF,SAChBh7F,GAAIoI,EAAMpI,GACVm0G,MAAO/rG,EAAM+rG,MACbriH,KAAM,aACN6kH,kBAAmBvuG,EAAMD,cAAgBC,EAAMuuG,kBAC/CE,2BAA4BzuG,EAAMyuG,gCAIvB,aAAfzuG,EAAMtW,KACR,cAAC,IAAD,CACEkmH,QAASA,EACT+jE,kBAAgB,EAChB97K,KAAMmI,EAAMnI,KACZm8K,aAAch0K,EAAMD,aACpBqyF,MACEpyF,EAAM4yF,UAA8C,oBAA3B5yF,EAAM+8M,iBAC3B,CAAEnqH,SAAU5yF,EAAM4yF,SAAUsoC,SAAUl7H,EAAM+8M,kBAC5C,CAAEnqH,SAAU5yF,EAAM4yF,UAExB2iF,OAAQ,gBAAGrnE,EAAH,EAAGA,MAAOimE,EAAV,EAAUA,WAAV,OACN,cAACs/D,EAAA,EAAD,CACEvlI,MAAOA,EACPC,WAAYgmE,EACZvhF,UAA6B,IAAnB5yF,EAAM4yF,SAChBh7F,GAAIoI,EAAMpI,GACVm0G,MAAO/rG,EAAM+rG,MACb2nI,QAAS1zO,EAAM0zO,QACfC,SAAU3zO,EAAM2zO,SAChBC,WAAY5zO,EAAM4zO,WAClBC,WAAY7zO,EAAM6zO,WAClBtlI,kBAAmBvuG,EAAMD,cAAgBC,EAAMuuG,kBAC/CqL,IAAK55G,EAAM45G,IACXC,IAAK75G,EAAM65G,IACX0gB,cAAev6H,EAAMu6H,cACrBC,kBAAmBx6H,EAAMw6H,kBACzB/rB,2BAA4BzuG,EAAMyuG,gCAIvB,WAAfzuG,EAAMtW,KACR,cAAC,IAAD,CACEkmH,QAASA,EACT+jE,kBAAgB,EAChB97K,KAAMmI,EAAMnI,KACZm8K,aAAch0K,EAAMD,aACpBqyF,MACEpyF,EAAM4yF,UAA8C,oBAA3B5yF,EAAM+8M,iBAC3B,CAAEnqH,SAAU5yF,EAAM4yF,SAAUsoC,SAAUl7H,EAAM+8M,kBAC5C,CAAEnqH,SAAU5yF,EAAM4yF,UAExB2iF,OAAQ,kBAAGrnE,EAAH,EAAGA,MAAOimE,EAAV,EAAUA,WAAV,OACN,cAACj6C,EAAA,EAAD,CACEhsB,MAAOA,EACPC,WAAYgmE,EACZvhF,UAA6B,IAAnB5yF,EAAM4yF,SAChBh7F,GAAIoI,EAAMpI,GACVm0G,MAAO/rG,EAAM+rG,MACbsuB,OAAQr6H,EAAMq6H,OACd9rB,kBAAmBvuG,EAAMuuG,mBAAqBvuG,EAAMD,aACpDu6H,eAAgBt6H,EAAMs6H,eACtBlpB,gBAAiBpxG,EAAMoxG,gBACvBgpB,iBAAkBp6H,EAAMo6H,iBACxBG,cAAev6H,EAAMu6H,cACrBC,kBAAmBx6H,EAAMw6H,kBACzBL,KAAI,UAAEn6H,EAAMm6H,YAAR,QAAgB,EACpBvgB,IAAK55G,EAAM45G,IACXC,IAAK75G,EAAM65G,IACXtJ,YAAavwG,EAAMuwG,YACnB9B,2BAA4BzuG,EAAMyuG,gCAIvB,SAAfzuG,EAAMtW,KACR,cAAC,IAAD,CACEkmH,QAASA,EACT+jE,kBAAgB,EAChB97K,KAAMmI,EAAMnI,KACZm8K,aAAch0K,EAAMD,aACpBqyF,MACEpyF,EAAM4yF,UAA8C,oBAA3B5yF,EAAM+8M,iBAC3B,CAAEnqH,SAAU5yF,EAAM4yF,SAAUsoC,SAAUl7H,EAAM+8M,kBAC5C,CAAEnqH,SAAU5yF,EAAM4yF,UAExB2iF,OAAQ,gBAAGrnE,EAAH,EAAGA,MAAOimE,EAAV,EAAUA,WAAV,OACN,cAAChF,EAAA,EAAD,CACEjhE,MAAOA,EACPC,WAAYgmE,EACZvhF,UAA6B,IAAnB5yF,EAAM4yF,SAChBmZ,MAAO/rG,EAAM+rG,MACbu0D,WAAYtgK,EAAMsgK,WAClB8O,QAASpvK,EAAMovK,QACfxiI,QAAS5sC,EAAM4sC,aAIJ,gBAAf5sC,EAAMtW,KACR,cAAC,IAAD,CACEkmH,QAASA,EACT+jE,kBAAgB,EAChB97K,KAAMmI,EAAMnI,KACZm8K,aAAch0K,EAAMD,aACpBqyF,MACEpyF,EAAM4yF,UAA8C,oBAA3B5yF,EAAM+8M,iBAC3B,CAAEnqH,SAAU5yF,EAAM4yF,SAAUsoC,SAAUl7H,EAAM+8M,kBAC5C,CAAEnqH,SAAU5yF,EAAM4yF,UAExB2iF,OAAQ,gBAAGrnE,EAAH,EAAGA,MAAH,OACN,cAAC,EAAD,CACEA,MAAOA,EACPtb,UAA6B,IAAnB5yF,EAAM4yF,SAChBh7F,GAAIoI,EAAMpI,GACVm0G,MAAO/rG,EAAM+rG,MACbqG,SAAUpyG,EAAMoyG,SAChB7D,kBAAmBvuG,EAAMuuG,mBAAqBvuG,EAAMD,aACpD0uG,2BAA4BzuG,EAAMyuG,gCAIvB,oBAAfzuG,EAAMtW,KACR,cAAC,IAAD,CACEkmH,QAASA,EACT+jE,kBAAgB,EAChB97K,KAAMmI,EAAMnI,KACZm8K,aAAch0K,EAAMD,aACpBqyF,MACEpyF,EAAM4yF,UAA8C,oBAA3B5yF,EAAM+8M,iBAC3B,CAAEnqH,SAAU5yF,EAAM4yF,SAAUsoC,SAAUl7H,EAAM+8M,kBAC5C,CAAEnqH,SAAU5yF,EAAM4yF,UAExB2iF,OAAQ,gBAAGrnE,EAAH,EAAGA,MAAOimE,EAAV,EAAUA,WAAV,OACN,cAAC2/D,EAAA,EAAD,CACE5lI,MAAOA,EACPC,WAAYgmE,EACZv8K,GAAIoI,EAAMpI,GACVg7F,SAAU5yF,EAAM4yF,SAChB2b,kBAAmBvuG,EAAMuuG,mBAAqBvuG,EAAMD,aACpD0uG,2BAA4BzuG,EAAMyuG,gCAIvB,wBAAfzuG,EAAMtW,KACR,cAAC,IAAD,CACEkmH,QAASA,EACT+jE,kBAAgB,EAChB97K,KAAMmI,EAAMnI,KACZm8K,aAAch0K,EAAMD,aACpBqyF,MACEpyF,EAAM4yF,UAA8C,oBAA3B5yF,EAAM+8M,iBAC3B,CAAEnqH,SAAU5yF,EAAM4yF,SAAUsoC,SAAUl7H,EAAM+8M,kBAC5C,CAAEnqH,SAAU5yF,EAAM4yF,UAExB2iF,OAAQ,gBAAGrnE,EAAH,EAAGA,MAAOimE,EAAV,EAAUA,WAAV,OACN,cAAC4/D,EAAA,EAAD,CACE7lI,MAAOA,EACPC,WAAYgmE,EACZv8K,GAAIoI,EAAMpI,GACVg7F,SAAU5yF,EAAM4yF,SAChB2b,kBAAmBvuG,EAAMuuG,mBAAqBvuG,EAAMD,aACpD0uG,2BAA4BzuG,EAAMyuG,gCAIvB,sBAAfzuG,EAAMtW,KACR,cAAC,IAAD,CACEkmH,QAASA,EACT+jE,kBAAgB,EAChB97K,KAAMmI,EAAMnI,KACZm8K,aAAch0K,EAAMD,aACpBqyF,MACEpyF,EAAM4yF,UAA8C,oBAA3B5yF,EAAM+8M,iBAC3B,CAAEnqH,SAAU5yF,EAAM4yF,SAAUsoC,SAAUl7H,EAAM+8M,kBAC5C,CAAEnqH,SAAU5yF,EAAM4yF,UAExB2iF,OAAQ,gBAAGrnE,EAAH,EAAGA,MAAOimE,EAAV,EAAUA,WAAV,OACN,cAAC6/D,EAAA,EAAD,CACE9lI,MAAOA,EACPC,WAAYgmE,EACZv8K,GAAIoI,EAAMpI,GACVg7F,SAAU5yF,EAAM4yF,SAChB2b,kBAAmBvuG,EAAMuuG,mBAAqBvuG,EAAMD,aACpD0uG,2BAA4BzuG,EAAMyuG,gCAIvB,4BAAfzuG,EAAMtW,KACR,cAAC,IAAD,CACEkmH,QAASA,EACT+jE,kBAAgB,EAChB97K,KAAMmI,EAAMnI,KACZm8K,aAAch0K,EAAMD,aACpBqyF,MACEpyF,EAAM4yF,UAA8C,oBAA3B5yF,EAAM+8M,iBAC3B,CAAEnqH,SAAU5yF,EAAM4yF,SAAUsoC,SAAUl7H,EAAM+8M,kBAC5C,CAAEnqH,SAAU5yF,EAAM4yF,UAExB2iF,OAAQ,gBAAGrnE,EAAH,EAAGA,MAAOimE,EAAV,EAAUA,WAAV,OACN,cAACy9D,EAAA,EAAD,CACE1jI,MAAOA,EACPC,WAAYgmE,EACZv8K,GAAIoI,EAAMpI,GACVg7F,SAAU5yF,EAAM4yF,SAChB2b,kBAAmBvuG,EAAMuuG,mBAAqBvuG,EAAMD,aACpD0uG,2BAA4BzuG,EAAMyuG,gCAIvB,2BAAfzuG,EAAMtW,KACR,cAAC,IAAD,CACEkmH,QAASA,EACT+jE,kBAAgB,EAChB97K,KAAMmI,EAAMnI,KACZm8K,aAAch0K,EAAMD,aACpBqyF,MACEpyF,EAAM4yF,UAA8C,oBAA3B5yF,EAAM+8M,iBAC3B,CAAEnqH,SAAU5yF,EAAM4yF,SAAUsoC,SAAUl7H,EAAM+8M,kBAC5C,CAAEnqH,SAAU5yF,EAAM4yF,UAExB2iF,OAAQ,gBAAGrnE,EAAH,EAAGA,MAAOimE,EAAV,EAAUA,WAAV,OACN,cAAC,EAAD,CACEjmE,MAAOA,EACPC,WAAYgmE,EACZv8K,GAAIoI,EAAMpI,GACVg7F,SAAU5yF,EAAM4yF,SAChBwf,SAAUpyG,EAAMoyG,SAChB7D,kBAAmBvuG,EAAMuuG,mBAAqBvuG,EAAMD,aACpD0uG,2BAA4BzuG,EAAMyuG,gCAIvB,qBAAfzuG,EAAMtW,KACR,cAAC,IAAD,CACEkmH,QAASA,EACT+jE,kBAAgB,EAChB97K,KAAMmI,EAAMnI,KACZm8K,aAAch0K,EAAMD,aACpBqyF,MACEpyF,EAAM4yF,UAA8C,oBAA3B5yF,EAAM+8M,iBAC3B,CAAEnqH,SAAU5yF,EAAM4yF,SAAUsoC,SAAUl7H,EAAM+8M,kBAC5C,CAAEnqH,SAAU5yF,EAAM4yF,UAExB2iF,OAAQ,gBAAGrnE,EAAH,EAAGA,MAAOimE,EAAV,EAAUA,WAAV,OACN,cAAC,IAAD,CACEjmE,MAAOA,EACPC,WAAYgmE,EACZv8K,GAAIoI,EAAMpI,GACVg7F,SAAU5yF,EAAM4yF,SAChBinD,iBAAkB75I,EAAM65I,sBAIb,mBAAf75I,EAAMtW,KACR,cAAC,IAAD,CACEkmH,QAASA,EACT+jE,kBAAgB,EAChB97K,KAAMmI,EAAMnI,KACZm8K,aAAch0K,EAAMD,aACpBqyF,MACEpyF,EAAM4yF,UAA8C,oBAA3B5yF,EAAM+8M,iBAC3B,CAAEnqH,SAAU5yF,EAAM4yF,SAAUsoC,SAAUl7H,EAAM+8M,kBAC5C,CAAEnqH,SAAU5yF,EAAM4yF,UAExB2iF,OAAQ,gBAAGrnE,EAAH,EAAGA,MAAOimE,EAAV,EAAUA,WAAV,OACN,cAAC,IAAD,CACEjmE,MAAOA,EACPC,WAAYgmE,EACZv8K,GAAIoI,EAAMpI,GACVg7F,SAAU5yF,EAAM4yF,SAChB+d,YAAa3wG,EAAM2wG,YACnB6nC,eAAgBx4I,EAAMw4I,oBAIX,qBAAfx4I,EAAMtW,KACR,cAAC,IAAD,CACEkmH,QAASA,EACT+jE,kBAAgB,EAChB97K,KAAMmI,EAAMnI,KACZm8K,aAAch0K,EAAMD,aACpBqyF,MACEpyF,EAAM4yF,UAA8C,oBAA3B5yF,EAAM+8M,iBAC3B,CAAEnqH,SAAU5yF,EAAM4yF,SAAUsoC,SAAUl7H,EAAM+8M,kBAC5C,CAAEnqH,SAAU5yF,EAAM4yF,UAExB2iF,OAAQ,gBAAGrnE,EAAH,EAAGA,MAAOimE,EAAV,EAAUA,WAAV,OACN,cAAC,IAAD,CACEjmE,MAAOA,EACPC,WAAYgmE,EACZv8K,GAAIoI,EAAMpI,GACVm0G,MAAO/rG,EAAM+rG,MACbwE,YAAavwG,EAAMuwG,YACnBI,YAAa3wG,EAAM2wG,YACnB/d,SAAU5yF,EAAM4yF,SAChBwqH,gBAAiBp9M,EAAMo9M,gBACvBC,qBAAsBr9M,EAAMq9M,qBAC5B5uG,2BAA4BzuG,EAAMyuG,2BAClCwlI,aAAcj0O,EAAMi0O,kBAIT,8BAAfj0O,EAAMtW,KACR,cAAC,IAAD,CACEkmH,QAASA,EACT+jE,kBAAgB,EAChB97K,KAAMmI,EAAMnI,KACZm8K,aAAch0K,EAAMD,aACpBqyF,MACEpyF,EAAM4yF,UAA8C,oBAA3B5yF,EAAM+8M,iBAC3B,CAAEnqH,SAAU5yF,EAAM4yF,SAAUsoC,SAAUl7H,EAAM+8M,kBAC5C,CAAEnqH,SAAU5yF,EAAM4yF,UAExB2iF,OAAQ,gBAAGrnE,EAAH,EAAGA,MAAOimE,EAAV,EAAUA,WAAV,OACN,cAAC+/D,EAAA,EAAD,CACEhmI,MAAOA,EACPC,WAAYgmE,EACZ7lE,WAAW,EACXqC,YAAa3wG,EAAM2wG,YACnBhuG,WAAY3C,EAAM2C,WAClB/K,GAAIoI,EAAMpI,GACV22G,kBAAmBvuG,EAAMuuG,mBAAqBvuG,EAAMD,aACpDgsG,MAAO/rG,EAAM+rG,WAIF,kBAAf/rG,EAAMtW,KACR,cAAC,IAAD,CACEkmH,QAASA,EACT+jE,kBAAgB,EAChB97K,KAAMmI,EAAMnI,KACZm8K,aAAch0K,EAAMD,aACpBqyF,MACEpyF,EAAM4yF,UAA8C,oBAA3B5yF,EAAM+8M,iBAC3B,CAAEnqH,SAAU5yF,EAAM4yF,SAAUsoC,SAAUl7H,EAAM+8M,kBAC5C,CAAEnqH,SAAU5yF,EAAM4yF,UAExB2iF,OAAQ,gBAAGrnE,EAAH,EAAGA,MAAOimE,EAAV,EAAUA,WAAV,OACN,cAACggE,EAAA,EAAD,CACEjmI,MAAOA,EACPC,WAAYgmE,EACZ7lE,WAAW,EACXqC,YAAa3wG,EAAM2wG,YACnBhuG,WAAY3C,EAAM2C,WAClB/K,GAAIoI,EAAMpI,GACVihJ,aAAc74I,EAAM64I,aACpBtqC,kBAAmBvuG,EAAMuuG,mBAAqBvuG,EAAMD,aACpDgsG,MAAO/rG,EAAM+rG,WAIF,qBAAf/rG,EAAMtW,KACR,cAAC4jN,EAAA,EAAD,CACE19F,QAASA,EACT+jE,kBAAgB,EAChB97K,KAAMmI,EAAMnI,KACZD,GAAIoI,EAAMpI,GACVmsM,aAAc/jM,EAAM+jM,aACpBH,gBAAiB5jM,EAAM4jM,iBAAmB5jM,EAAMD,aAChDuuG,WAAW,EACXvC,MAAO/rG,EAAM+rG,QAEE,sBAAf/rG,EAAMtW,KACR,cAAC,IAAD,CACEkmH,QAASA,EACT+jE,kBAAgB,EAChB97K,KAAMmI,EAAMnI,KACZm8K,aAAch0K,EAAMD,aACpBqyF,MAAO,CAAEQ,SAAU5yF,EAAM4yF,UACzB2iF,OAAQ,gBAAGrnE,EAAH,EAAGA,MAAOimE,EAAV,EAAUA,WAAV,OACN,cAACwvD,EAAA,EAAD,CACEz1H,MAAOA,EACPC,WAAYgmE,EACZ7lE,WAAW,EACX12G,GAAIoI,EAAMpI,GACV+4G,YAAa3wG,EAAM2wG,YACnBiqC,iBAAkB56I,EAAM46I,iBACxB7uC,MAAO/rG,EAAM+rG,MACbnZ,SAAU5yF,EAAM4yF,cAIL,kBAAf5yF,EAAMtW,KACR,cAAC,IAAD,CACEkmH,QAASA,EACT+jE,kBAAgB,EAChB97K,KAAMmI,EAAMnI,KACZm8K,aAAch0K,EAAMD,aACpBqyF,MACEpyF,EAAM4yF,UAA8C,oBAA3B5yF,EAAM+8M,iBAC3B,CAAEnqH,SAAU5yF,EAAM4yF,SAAUsoC,SAAUl7H,EAAM+8M,kBAC5C,CAAEnqH,SAAU5yF,EAAM4yF,UAExB2iF,OAAQ,gBAAGrnE,EAAH,EAAGA,MAAOimE,EAAV,EAAUA,WAAV,OACN,cAACw3B,EAAA,EAAD,CACEz9F,MAAOA,EACPC,WAAYgmE,EACZ7lE,WAAW,EACXqC,YAAa3wG,EAAM2wG,YACnBtC,QAASruG,EAAMquG,QACf1rG,WAAY3C,EAAM2C,WAClB/K,GAAIoI,EAAMpI,GACVggJ,aAAc53I,EAAM43I,aACpBrpC,kBAAmBvuG,EAAMuuG,kBACzBxC,MAAO/rG,EAAM+rG,WAIF,qBAAf/rG,EAAMtW,KACR,cAAC,IAAD,CACEkmH,QAASA,EACT+jE,kBAAgB,EAChB97K,KAAMmI,EAAMnI,KACZm8K,aAAch0K,EAAMD,aACpBqyF,MACEpyF,EAAM4yF,UAA8C,oBAA3B5yF,EAAM+8M,iBAC3B,CAAEnqH,SAAU5yF,EAAM4yF,SAAUsoC,SAAUl7H,EAAM+8M,kBAC5C,CAAEnqH,SAAU5yF,EAAM4yF,UAExB2iF,OAAQ,kBAAGrnE,EAAH,EAAGA,MAAOimE,EAAV,EAAUA,WAAV,OACN,cAACigE,EAAA,EAAD,CACElmI,MAAOA,EACPC,WAAYgmE,EACZ7lE,WAAW,EACXqC,YAAa3wG,EAAM2wG,YACnBtC,QAASruG,EAAMquG,QACf1rG,WAAY3C,EAAM2C,WAClB0xO,wBAAyBr0O,EAAMq0O,wBAC/Bz8O,GAAIoI,EAAMpI,GACV22G,kBAAmBvuG,EAAMuuG,kBACzBhF,aAAY,UAAEvpG,EAAMupG,oBAAR,QAAwB,UACpCwC,MAAO/rG,EAAM+rG,WAIF,uBAAf/rG,EAAMtW,KACR,cAAC4qP,EAAA,EAAD,CAAyB18O,GAAIoI,EAAMpI,GAAIo8K,aAAch0K,EAAMD,eAC1C,uBAAfC,EAAMtW,KACR,cAAC6qP,EAAA,EAAD,CAAyB38O,GAAIoI,EAAMpI,GAAIC,KAAMmI,EAAMnI,OAClC,4BAAfmI,EAAMtW,KACR,cAAC,IAAD,CAAyBmO,KAAMmI,EAAMnI,KAAMD,GAAIoI,EAAMpI,GAAIo8K,aAAch0K,EAAMD,eAC5D,WAAfC,EAAMtW,KACR,cAAC,IAAD,CACEkmH,QAASA,EACT+jE,kBAAgB,EAChB97K,KAAMmI,EAAMnI,KACZm8K,aAAch0K,EAAMD,aACpBqyF,MACEpyF,EAAM4yF,UAA8C,oBAA3B5yF,EAAM+8M,iBAC3B,CAAEnqH,SAAU5yF,EAAM4yF,SAAUsoC,SAAUl7H,EAAM+8M,kBAC5C,CAAEnqH,SAAU5yF,EAAM4yF,UAExB2iF,OAAQ,gBAAGrnE,EAAH,EAAGA,MAAH,OACN,cAACmoE,EAAA,EAAD,CACEnoE,MAAOA,EACPnC,MAAO/rG,EAAM+rG,MACbwC,kBAAmBvuG,EAAMuuG,kBACzBE,2BAA4BzuG,EAAMyuG,gCAIvB,iBAAfzuG,EAAMtW,KACR,cAAC,IAAD,CACEkmH,QAASA,EACT+jE,kBAAgB,EAChB97K,KAAMmI,EAAMnI,KACZm8K,aAAch0K,EAAMD,aACpBqyF,MACEpyF,EAAM4yF,UAA8C,oBAA3B5yF,EAAM+8M,iBAC3B,CAAEnqH,SAAU5yF,EAAM4yF,SAAUsoC,SAAUl7H,EAAM+8M,kBAC5C,CAAEnqH,SAAU5yF,EAAM4yF,UAExB2iF,OAAQ,gBAAGrnE,EAAH,EAAGA,MAAOimE,EAAV,EAAUA,WAAV,OACN,cAAC,IAAD,CACEjmE,MAAOA,EACPC,WAAYgmE,EACZ7lE,WAAW,EACXvC,MAAO/rG,EAAM+rG,MACboxG,aAAcn9M,EAAMm9M,aACpB1uG,2BAA4BzuG,EAAMyuG,gCAIvB,aAAfzuG,EAAMtW,KACR,cAAC,IAAD,CACEkmH,QAASA,EACT+jE,kBAAgB,EAChB97K,KAAMmI,EAAMnI,KACZm8K,aAAch0K,EAAMD,aACpBqyF,MACEpyF,EAAM4yF,UAA8C,oBAA3B5yF,EAAM+8M,iBAC3B,CAAEnqH,SAAU5yF,EAAM4yF,SAAUsoC,SAAUl7H,EAAM+8M,kBAC5C,CAAEnqH,SAAU5yF,EAAM4yF,UAExB2iF,OAAQ,gBAAGrnE,EAAH,EAAGA,MAAH,EAAUimE,WAAV,OACN,cAAC,IAAD,CACEjmE,MAAOA,EACPnC,MAAO/rG,EAAM+rG,MACbwC,kBAAmBvuG,EAAMuuG,uBAId,aAAfvuG,EAAMtW,KACR,cAAC,IAAD,CACEkmH,QAASA,EACT+jE,kBAAgB,EAChB97K,KAAMmI,EAAMnI,KACZm8K,aAAch0K,EAAMD,aACpBqyF,MACEpyF,EAAM4yF,UAA8C,oBAA3B5yF,EAAM+8M,iBAC3B,CAAEnqH,SAAU5yF,EAAM4yF,SAAUsoC,SAAUl7H,EAAM+8M,kBAC5C,CAAEnqH,SAAU5yF,EAAM4yF,UAExB2iF,OAAQ,gBAAGrnE,EAAH,EAAGA,MAAH,EAAUimE,WAAV,OACN,cAAC,IAAD,CACEjmE,MAAOA,EACPnC,MAAO/rG,EAAM+rG,MACbwC,kBAAmBvuG,EAAMuuG,uBAId,eAAfvuG,EAAMtW,KACR,cAAC8rL,EAAA,EAAD,CACE5lE,QAASA,EACT+jE,kBAAgB,EAEhB97K,KAAMmI,EAAMnI,KACZm8K,aAAch0K,EAAMD,aACpBuuG,WAAW,EACXD,QAASruG,EAAMquG,QACfI,2BAA4BzuG,EAAMyuG,4BAL7BzuG,EAAMpI,IAOI,WAAfoI,EAAMtW,KACR,cAAC,IAAD,CACEkmH,QAASA,EACT+jE,kBAAgB,EAChB97K,KAAMmI,EAAMnI,KACZm8K,aAAch0K,EAAMD,aACpBqyF,MACEpyF,EAAM4yF,UAA8C,oBAA3B5yF,EAAM+8M,iBAC3B,CAAEnqH,SAAU5yF,EAAM4yF,SAAUsoC,SAAUl7H,EAAM+8M,kBAC5C,CAAEnqH,SAAU5yF,EAAM4yF,UAExB2iF,OAAQ,cAAGrnE,MAAH,EAAUimE,WAAV,OACN,cAACn0K,EAAMo+L,UAAP,aACExmM,GAAIoI,EAAMpI,GAEVy2G,QAASruG,EAAMquG,QACfqC,OAAQ,SAACrT,EAAO09B,EAAU88D,EAAehgM,GACvCk4N,EAAO,iBAAkBvqM,KAAKD,QAEhCwmF,MAAO/rG,EAAM+rG,MAAQ14G,cAAUsE,cAAc,CAAEC,GAAIoI,EAAM+rG,QAAW,MAChE/rG,OAIO,cAAfA,EAAMtW,KACR,qBAAKkO,GAAIoI,EAAMpI,GAAf,SAAoBoI,EAAMo+L,YACxB,MAGNC,EAAoB5rF,aAAe,CACjCzyG,MAAO,IAGMq+L,O,wVC5UT70L,EAAmB3f,YAAgB,CACvCs5G,KAvXW,WAAyB,IAAxB35G,EAAuB,uDAAf,GAAIC,EAAW,uCACnC,OAAQA,EAAOC,MAEb,KAAKC,IACL,KAAKA,IACH,MAA4BF,EAAOM,QAA3B2d,EAAR,EAAQA,SAAUshB,EAAlB,EAAkBA,MACZrf,EAAQ,eAAQngB,GAStB,OARAw/B,EAAMrR,SAAQ,SAAC4lC,GACb5zC,EAAS4zC,GAAT,qCACE1lC,YAAY,GACTruB,EAAM+zD,IACN71C,EAAS61C,IAHd,IAIE59C,aAAa,OAGVgK,EAGT,KAAKhgB,IACH,MAAmCF,EAAOM,QAAlC0tC,EAAR,EAAQA,MAAO2lB,EAAf,EAAeA,gBACTzzC,EAAW69F,IAAKh+G,EAAOiuC,GAM7B,OALA9tB,EAASyzC,EAAgBG,mBAAzB,uCACK/zD,EAAMiuC,IACN2lB,GAFL,IAGEz9C,aAAa,IAERgK,EAGT,KAAKhgB,IACH,IAAMyzD,EAAkB3zD,EAAOM,QAC/B,OAAO,2BACFP,GADL,kBAEG4zD,EAAgBG,kBAFnB,uCAGOiqD,IAAKh+G,EAAM4zD,EAAgBG,mBAAoB,CAAC,wBAChDiqD,IAAKpqD,EAAiB,CAAC,wBAJ9B,IAKIz9C,aAAa,MAKnB,KAAKhW,IACH,IAAMyzD,EAAkB3zD,EAAOM,QACzB4f,EAAQ,eAAQngB,GAMtB,OALAmgB,EAASyzC,EAAgBG,mBAAzB,yBACE1lC,YAAY,GACTulC,GAFL,IAGEz9C,aAAa,IAERgK,EAIT,KAAKhgB,IACH,IAAMyzD,EAAkB3zD,EAAOM,QACzB4f,EAAQ,eAAQngB,GAMtB,OALAmgB,EAASyzC,EAAgBG,mBAAzB,yBACE1lC,YAAY,GACTulC,GAFL,IAGEz9C,aAAa,IAERgK,EAET,KAAKhgB,IACH,IAAMyzD,EAAkB3zD,EAAOM,QAC/B,OAAO,2BACFP,GADL,kBAEG4zD,EAAgBG,kBAFnB,uCAGO/zD,EAAM4zD,EAAgBG,oBAH7B,IAII0B,mBAAoBz1D,EAAM4zD,EAAgBG,oBACvCH,GALP,IAMIz9C,aAAa,MAMnB,KAAKhW,IACH,IAAQ8tC,EAAUhuC,EAAOM,QAAjB0tC,MACR,OAAIjuC,EAAMiuC,GACD+vE,IAAKh+G,EAAOiuC,GAEdjuC,EAET,KAAKG,IACH,IAAQs1D,EAAuBx1D,EAAOM,QAA9Bk1D,mBACR,OAAO,2BACFz1D,GADL,kBAEGy1D,EAAmB1B,kBAFtB,uCAGOiqD,IAAKh+G,EAAMy1D,EAAmB1B,mBAAoB,CAAC,wBACnD0B,GAJP,IAKIt/C,aAAa,MAMnB,KAAKhW,IACH,IAAQ4zD,EAAsB9zD,EAAOM,QAA7BwzD,kBACR,OAAOiqD,IAAKh+G,EAAO+zD,GAIrB,KAAK5zD,IACH,IAAM4zD,EAAoB9zD,EAAOM,QAC3B4f,EAAQ,2BACTngB,GADS,kBAEX+zD,EAFW,2BAGP/zD,EAAM+zD,IAHC,IAIV1lC,YAAY,MAGhB,OAAOlO,EAGT,KAAKhgB,IACH,IAAM4zD,EAAoB9zD,EAAOM,QACjC,OAAO,2BACFP,GADL,kBAEG+zD,EAFH,2BAGO/zD,EAAM+zD,IAHb,IAII1lC,YAAY,MAKlB,KAAKluB,IACH,IAAM6qP,EAAqB/qP,EAAOM,QAC5B4f,EAAQ,eAAQngB,GAiBtB,OAhBiC,GAA7BgrP,EAAmBhiO,OACrBmF,IAAQnuB,GAAO,SAAC4zD,EAAsBG,GACpC5zC,EAAS4zC,GAAT,2BACKH,GADL,IAEEvlC,YAAY,OAIhB28N,EAAmB78N,SAAQ,SAAC4lC,GAC1B5zC,EAAS4zC,GAAT,2BACK/zD,EAAM+zD,IADX,IAEE1lC,YAAY,OAKXlO,EAGT,KAAKhgB,IACH,IAAM6qP,EAAqB/qP,EAAOM,QAC5B4f,EAAQ,eAAQngB,GAiBtB,OAhBiC,GAA7BgrP,EAAmBhiO,OACrBmF,IAAQnuB,GAAO,SAAC4zD,EAAsBG,GACpC5zC,EAAS4zC,GAAT,2BACKH,GADL,IAEEvlC,YAAY,OAIhB28N,EAAmB78N,SAAQ,SAAC4lC,GAC1B5zC,EAAS4zC,GAAT,2BACK/zD,EAAM+zD,IADX,IAEE1lC,YAAY,OAKXlO,EAIT,QACE,OAAOngB,IA4MXw/B,MAvMY,WAAyB,IAAxBx/B,EAAuB,uDAAf,GAAIC,EAAW,uCACpC,OAAQA,EAAOC,MAEb,KAAKC,IACL,KAAKA,IACH,IAAQq/B,EAAUv/B,EAAOM,QAAjBi/B,MACR,OAAO+yB,IAAK,GAAD,mBAAKvyD,GAAL,YAAew/B,KAG5B,KAAKr/B,IACH,MAAmCF,EAAOM,QAAlC0tC,EAAR,EAAQA,MAAO2lB,EAAf,EAAeA,gBACf,OAAO5zD,EAAMgiB,KAAI,SAAC+xC,GAAD,OACfA,IAAsB9lB,EAAQ2lB,EAAgBG,kBAAoBA,KAItE,KAAK5zD,IACH,IAAQ4zD,EAAsB9zD,EAAOM,QAA7BwzD,kBACR,OAAO/zD,EAAMs8B,QAAO,SAAC2uN,GAAD,OAA4BA,IAA2Bl3L,KAI7E,KAAK5zD,IACL,KAAKA,IACH,IAAMyzD,EAAkB3zD,EAAOM,QAC/B,MAAM,GAAN,mBAAWP,GAAX,CAAkB4zD,EAAgBG,oBAIpC,KAAK5zD,IACH,IAAQ8tC,EAAUhuC,EAAOM,QAAjB0tC,MACR,OAAOjuC,EAAMs8B,QAAO,SAAC2uN,GAAD,OAA4BA,IAA2Bh9M,KAI7E,QACE,OAAOjuC,IAoKXm+G,sBA/I4B,WAA4B,IAA3Bn+G,EAA0B,wDAAXC,EAAW,uCACvD,OAAQA,EAAOC,MACb,KAAKC,IACH,OAAO,EAET,KAAKA,IACL,KAAKA,IACH,OAAO,EAET,QACE,OAAOH,IAsIX47G,eA/JqB,WAA4B,IAA3B57G,EAA0B,wDAAXC,EAAW,uCAChD,OAAQA,EAAOC,MACb,KAAKC,IACH,OAAO,EAET,KAAKA,IACL,KAAKA,IACH,OAAO,EAET,QACE,OAAOH,IAsJXo+G,SAlIe,WAA4B,IAA3Bp+G,EAA0B,wDAAXC,EAAW,uCAC1C,OAAQA,EAAOC,MACb,KAAKC,IACH,OAAO,EAET,KAAKA,IACL,KAAKA,IACH,OAAO,EAET,QACE,OAAOH,IAyHXq+G,UApHgB,WAA4B,IAA3Br+G,EAA0B,wDAAXC,EAAW,uCAC3C,OAAQA,EAAOC,MACb,KAAKC,IACH,OAAO,EAET,KAAKA,IACL,KAAKA,IACH,OAAO,EAET,QACE,OAAOH,IA2GXs+G,WAtGiB,WAA4B,IAA3Bt+G,EAA0B,wDAAXC,EAAW,uCAC5C,OAAQA,EAAOC,MACb,KAAKC,IACH,OAAO,EAET,KAAKA,IACL,KAAKA,IACH,OAAO,EAET,QACE,OAAOH,IA6FXu+G,yBAxE+B,WAA2B,IAA1Bv+G,EAAyB,uDAAjB,KAAMC,EAAW,uCACzD,OAAQA,EAAOC,MACb,KAAKC,IACH,IAAQ4B,EAAU9B,EAAOM,QAAjBwB,MACR,OAAOA,EAET,KAAK5B,IACL,KAAKA,IACH,OAAO,KAET,QACE,OAAOH,IA8DX87G,kBAzFwB,WAA2B,IAA1B97G,EAAyB,uDAAjB,KAAMC,EAAW,uCAClD,OAAQA,EAAOC,MACb,KAAKC,IACH,IAAQ4B,EAAU9B,EAAOM,QAAjBwB,MACR,OAAOA,EAET,KAAK5B,IACL,KAAKA,IACH,OAAO,KAET,QACE,OAAOH,IA+EXw+G,YA1DkB,WAA2B,IAA1Bx+G,EAAyB,uDAAjB,KAAMC,EAAW,uCAC5C,OAAQA,EAAOC,MACb,KAAKC,IACH,IAAQ4B,EAAU9B,EAAOM,QAAjBwB,MACR,OAAOA,EAET,KAAK5B,IACL,KAAKA,IACH,OAAO,KAET,QACE,OAAOH,IAgDXy+G,aA3CmB,WAA2B,IAA1Bz+G,EAAyB,uDAAjB,KAAMC,EAAW,uCAC7C,OAAQA,EAAOC,MACb,KAAKC,IACH,IAAQ4B,EAAU9B,EAAOM,QAAjBwB,MACR,OAAOA,EAET,KAAK5B,IACL,KAAKA,IACH,OAAO,KAET,QACE,OAAOH,IAiCX0+G,cA5BoB,WAA2B,IAA1B1+G,EAAyB,uDAAjB,KAAMC,EAAW,uCAC9C,OAAQA,EAAOC,MACb,KAAKC,IACH,IAAQ4B,EAAU9B,EAAOM,QAAjBwB,MACR,OAAOA,EAET,KAAK5B,IACL,KAAKA,IACH,OAAO,KAET,QACE,OAAOH,MAoBEggB,MAGR,IAAMvd,EAAc,SAACzC,GAAD,OAAWA,EAAMggB,kBAG/BkrO,EAAqB,SAChClrP,EACA+zD,GAEA,IAAMH,EAAkBnxD,EAAYzC,GAAO25G,KAAK5lD,GAChD,OAAIH,QACC,GAEMu3L,EAA0B,SAACnrP,GAAD,OACrCyC,EAAYzC,GACTw/B,MAAMxd,KAAI,SAAC5T,GAAD,OAAQ88O,EAAmBlrP,EAAOoO,MAC5CkuB,QAAO,SAACs3B,GAAD,OAAqBA,EAAgBw3L,sBAAwB,MAE5DC,EAAsC,SACjDrrP,EACAsB,GAEI,IADJ8gC,EACG,uDADoCjiC,IAA6BmrP,2BAGpE,OAAOH,EAAwBnrP,GAAOs8B,QACpC,SAACs3B,GAAD,OACEtyD,KACEA,EAAWiE,YAAcjE,EAAWiE,aAAequD,EAAgBruD,eACnEjE,EAAWoD,gBACXpD,EAAWoD,iBAAmBkvD,EAAgBlvD,mBAC9CpD,EAAWsD,YAActD,EAAWsD,aAAegvD,EAAgBhvD,eACnEtD,EAAWwD,eAAiBxD,EAAWwD,gBAAkB8uD,EAAgB9uD,mBAC1EqlG,YAAiB,OAACv2C,QAAD,IAACA,OAAD,EAACA,EAAiB23L,0BAEhC33L,EAAgB23L,0BAA4BnpN,OAyBzCopN,EAA6B,SAACxrP,GACzC,IAAMyrP,EAA2BN,EAAwBnrP,GAAOs8B,QAC9D,SAACs3B,GAAD,OAAqBA,EAAgBvlC,cAGvC,OAAwC,IAApCo9N,EAAyBziO,OAAqByiO,EAAyB,GAE/D,MAIDC,EAAwC,SAAC1rP,GAAD,OACnDyC,EAAYzC,GAAOm+G,uBACRwtI,EAAiC,SAAC3rP,GAAD,OAAWyC,EAAYzC,GAAO47G,iB,6BC7e5E,6DAqBMgwI,EAAoB,SAACv1O,GAAkB,IAAD,MAExCquG,EAUEruG,EAVFquG,MACAC,EASEtuG,EATFsuG,WACAvb,EAQE/yF,EARF+yF,SACAtyF,EAOET,EAPFS,aACA+xG,EAMExyG,EANFwyG,oBACAC,EAKEzyG,EALFyyG,qBACA6qG,EAIEt9M,EAJFs9M,aACApxG,EAGElsG,EAHFksG,MACAuC,EAEEzuG,EAFFyuG,UACAG,EACE5uG,EADF4uG,2BAOF,OAJAO,qBAAU,WACJd,EAAM/tG,OAASsuG,GAA4BA,EAA2BP,EAAM/tG,SAC/E,CAAC+tG,EAAM/tG,QAGR,eAAC,IAAD,WACG4rG,GACC,eAAC,IAAD,CAAOS,UAAU,aAAjB,UACGT,EACAnZ,GAAY,sBAAM4Z,UAAU,WAAhB,sBAJnB,OAOG2wG,QAPH,IAOGA,OAPH,EAOGA,EAAc3xM,KAAI,SAAC6pO,EAAa30N,GAAd,OACjB,cAAC,IAAD,CAAK6gJ,GAAG,KAAK/0D,UAAU,OAAvB,SACE,cAAC,IAAD,CACEH,MAAOiC,EAAY,CAAEoB,OAAQ,KAAQ,GACrChmH,KAAK,QACLkO,GAAIy9O,EAAYl1O,MAChBtI,KAAMq2G,EAAMr2G,KACZg9I,QAAM,EACN9oC,MAAOspI,EAAYtpI,MACnB+oC,QAAS5mC,EAAM/tG,OAASk1O,EAAYl1O,MACpCivG,SAAU,SAAC/R,GACT6Q,EAAMkB,SAAS/R,EAAM9C,OAAO3iG,QAVC8oB,MAepCytF,EAAW5iH,OAAmC,aAA1B4iH,EAAW5iH,MAAM7B,KACpC,qBAAK8iH,UAAU,mBAAmBH,MAAO,CAAEC,QAAS,SAApD,UACG,UAAA6B,EAAW5iH,aAAX,eAAkB0M,UAAWqI,GAC5B,cAAC,IAAD,CAAkB1I,GAAG,2BAGvBu2G,EAAW5iH,OAAmC,YAA1B4iH,EAAW5iH,MAAM7B,KACvC,qBAAK8iH,UAAU,mBAAmBH,MAAO,CAAEC,QAAS,SAApD,UACG,UAAA6B,EAAW5iH,aAAX,eAAkB0M,UAAWo6G,GAC5B,cAAC,IAAD,CAAkBz6G,GAAG,0BAGvBu2G,EAAW5iH,OAAmC,aAA1B4iH,EAAW5iH,MAAM7B,KACvC,qBAAK8iH,UAAU,mBAAmBH,MAAO,CAAEC,QAAS,SAApD,UACG,UAAA6B,EAAW5iH,aAAX,eAAkB0M,UAAWq6G,GAC5B,cAAC,IAAD,CAAkB16G,GAAG,0BAIzB,OAMRw9O,EAAkB3iI,aAAe,CAC/B0qG,aAAc,GACdm4B,SAAS,GAGIF,O,6NCvFFG,EAAyB,SAACrzN,EAAUjvB,GAC/C,IACMuiP,EAAsB,CAC1BC,EAAG,kBAAMxiP,EAAK0E,cAAc,CAAEC,GAAI,sBAClC89O,EAAG,kBAAMziP,EAAK0E,cAAc,CAAEC,GAAI,sBAClC+9O,EAAG,kBAAM1iP,EAAK0E,cAAc,CAAEC,GAAI,uBAClCg+O,EAAG,kBAAM3iP,EAAK0E,cAAc,CAAEC,GAAI,yBAClCi+O,EAAG,kBAAM5iP,EAAK0E,cAAc,CAAEC,GAAI,wBAClCk+O,EAAG,kBAAM7iP,EAAK0E,cAAc,CAAEC,GAAI,sBAClCm+O,EAAG,kBAAM9iP,EAAK0E,cAAc,CAAEC,GAAI,yBAqD9Bo+O,EAnDgB,CACpBP,EAAG,kBAAMxiP,EAAK0E,cAAc,CAAEC,GAAI,uBAClCg+O,EAAG,kBACD1zN,EAAS+zN,kBAAoB,EACzBhjP,EAAK0E,cAAc,CAAEC,GAAI,oBACzBsqB,EAAS+zN,kBACThjP,EAAK0E,cAAc,CAAEC,GAAI,mBACzB3E,EAAK0E,cAAc,CAAEC,GAAI,wBAC/Bs+O,EAAG,WACD,IAAI57D,EAAQ,EACR67D,EAAQ,GAQZ,OAPAx+N,IAAQ,YAAIzN,MAAM,GAAGizG,SAAS,SAACh9G,GArBe,KAsB/B+hB,EAAS+zN,kBAtBO,GAsBY91O,KAC1B,IAATg2O,IAAaA,GAAS,MAC1BA,GAASX,EAAoBr1O,EAAQ,KACrCm6K,SAIDA,EAAQ,EACLrnL,EAAK0E,cAAc,CAAEC,GAAI,sBACzB3E,EAAK0E,cAAc,CAAEC,GAAI,oBAClB,IAAV0iL,EAAc67D,EAAMjnJ,QAAQ,IAAK,OAASinJ,GAC3CljP,EAAK0E,cAAc,CAAEC,GAAI,0BACxBsqB,EAASk0N,0BAA4B,EAClCl0N,EAASk0N,0BAA4BnjP,EAAK0E,cAAc,CAAEC,GAAI,oBAC9D3E,EAAK0E,cAAc,CAAEC,GAAI,qBAGjCy+O,GAAI,kBACFpjP,EAAK0E,cAAc,CAAEC,GAAI,qBACzBsqB,EAAS+zN,kBACThjP,EAAK0E,cAAc,CAAEC,GAAI,sBACxBsqB,EAASk0N,0BAA4B,EAClCl0N,EAASk0N,0BAA4BnjP,EAAK0E,cAAc,CAAEC,GAAI,qBAC9D3E,EAAK0E,cAAc,CAAEC,GAAI,sBAC/B0+O,GAAI,iBACD,CACCb,EAAG,kBAAMxiP,EAAK0E,cAAc,CAAEC,GAAI,8BAClC89O,EAAG,kBAAMziP,EAAK0E,cAAc,CAAEC,GAAI,8BAClCg+O,EAAG,kBAAM3iP,EAAK0E,cAAc,CAAEC,GAAI,8BAClCs+O,EAAG,kBAAMjjP,EAAK0E,cAAc,CAAEC,GAAI,8BAClCy+O,GAAI,kBAAMpjP,EAAK0E,cAAc,CAAEC,GAAI,+BACnCsqB,EAASq0N,6BACX,IACAf,EAAoBtzN,EAAS+zN,qBAC7BhjP,EAAK0E,cAAc,CAAEC,GAAI,sBACxBsqB,EAASk0N,0BAA4B,EAClCl0N,EAASk0N,0BAA4BnjP,EAAK0E,cAAc,CAAEC,GAAI,qBAC9D3E,EAAK0E,cAAc,CAAEC,GAAI,uBAEUsqB,EAASs0N,iBACpD,OAAO,2BACFt0N,GADL,IAEE8zN,0BAWSS,EAAW,CACtB,SACA,UACA,YACA,WACA,SACA,WACA,UAGWC,EAAW,SAAC59I,GACvB,IAAM69I,EAAS9hJ,aAAciE,GAE7B,IAAK69I,EAAQ,MAAO,GAEpB,IAAMC,EAAerpJ,KAAKC,MAAOmpJ,EAAS,IAAQ,KAChDxpJ,EAAUI,KAAKC,MAAOmpJ,EAAS,IAAQ,IACvCrpJ,EAAUC,KAAKC,MAAOmpJ,EAAM,IAAkB,IAC9CtpJ,EAAQE,KAAKC,MAAOmpJ,EAAM,KAAuB,IAMnD,OAJetpJ,EAAQ,GAAK,IAAMA,EAAQA,GAI1B,KAHCC,EAAU,GAAK,IAAMA,EAAUA,GAGf,KAFhBH,EAAU,GAAK,IAAMA,EAAUA,GAEE,IAAMypJ,GAa7CC,EAAgB,SAACj9H,GAC5B,IAAMk9H,EAX6B,SAACl9H,GACpC,IAAMtsB,EAAUuH,aAAc+kB,GAE9B,OAAKtsB,EAEsBA,EAAU6sE,IAAcC,OAAS,IAFvC,KAQM28E,CAAsBn9H,GAEjD,OAAO88H,EAASI,K,6BC1HlB,0QAMalqN,EAAU,QAsDVqF,EAAsB,SAAC33B,EAAsBswB,GACxD,IAAM9wB,EAAe,IAAIjE,IASzB,OARAg1B,IAAsB1wB,6BAA6BC,IAAON,GAC1DA,EAAa5D,iBAAiB,CAC5BwB,OAAQ,aACRjO,OAAQ,MACR2N,WAAY,eAGd0C,EAAa3D,iBAAiBy0B,GACvB9wB,EAAa9C,KAAb,UAAqB41B,EAArB,QAAoCtyB,IAGhC43B,EAAkB,SAAC53B,EAAsBswB,GACpD,IAAM9wB,EAAe,IAAIjE,IASzB,OARAg1B,IAAsB1wB,6BAA6BC,IAAON,GAC1DA,EAAa5D,iBAAiB,CAC5BwB,OAAQ,aACRjO,OAAQ,OACR2N,WAAY,eAGd0C,EAAa3D,iBAAiBy0B,GACvB9wB,EAAa9C,KAAb,UAAqB41B,EAArB,SAAqCtyB,IAgBjC08O,EAA8B,SAAC18O,GAC1C,IAAMR,EAAe,IAAIjE,IAGzB,OAFAg1B,IAAsB1wB,6BAA6BC,IAAON,GAEnDA,EAAa9C,KAAb,UAAqB41B,EAArB,yBAAqDtyB,IAGjD28O,EAAW,SAAC38O,EAAsCswB,GAC7D,IAAM9wB,EAAe,IAAIjE,IASzB,OARAg1B,IAAsB1wB,6BAA6BC,IAAON,GAC1DA,EAAa5D,iBAAiB,CAC5BwB,OAAQ,cACRjO,OAAQ,MACR2N,WAAY,eAGd0C,EAAa3D,iBAAiBy0B,GACvB9wB,EAAa9C,KAAb,UAAqB41B,EAArB,UAAsCtyB,IAmClC48O,EAAsB,SACjC58O,EACAswB,GAEA,IAAM9wB,EAAe,IAAIjE,IASzB,OARAg1B,IAAsB1wB,6BAA6BC,IAAON,GAC1DA,EAAa5D,iBAAiB,CAC5BwB,OAAQ,cACRjO,OAAQ,MACR2N,WAAY,eAGd0C,EAAa3D,iBAAiBy0B,GACvB9wB,EAAa9C,KAAb,UAAqB41B,EAArB,qBAAiDtyB,IAG7C68O,EAA0B,SACrC78O,EACAswB,GAEA,IAAM9wB,EAAe,IAAIjE,IASzB,OARAg1B,IAAsB1wB,6BAA6BC,IAAON,GAC1DA,EAAa5D,iBAAiB,CAC5BwB,OAAQ,cACRjO,OAAQ,MACR2N,WAAY,eAGd0C,EAAa3D,iBAAiBy0B,GACvB9wB,EAAa9C,KAAb,UAAqB41B,EAArB,yBAAqDtyB,IA6FjD88O,EAAa,SAAC98O,EAAyBswB,GAClD,IAAM9wB,EAAe,IAAIjE,IASzB,OARAg1B,IAAsB1wB,6BAA6BC,IAAON,GAC1DA,EAAa5D,iBAAiB,CAC5BwB,OAAQ,eACRjO,OAAQ,MACR2N,WAAY,eAGd0C,EAAa3D,iBAAiBy0B,GACvB9wB,EAAa9C,KAAb,UAAqB41B,EAArB,YAAwCtyB,K,4CCpRlCvM,IAPK,CAClB4kO,iBAAkB,QAClBh5M,gBAAiB,QACjBE,iBAAkB,QAClBw9N,mBAAoB,U,qGCSV/jG,EAKAgkG,E,6KALAhkG,O,mBAAAA,I,4BAAAA,M,cAKAgkG,O,aAAAA,I,YAAAA,M,KAmNGC,IApMqB,WAAO,IAAD,EACxC,EAA0CC,cAAlCC,EAAR,EAAQA,QAASC,EAAjB,EAAiBA,qBACjB,EAAyCl8C,cAAjC5rF,EAAR,EAAQA,QAAS6rF,EAAjB,EAAiBA,aAAcC,EAA/B,EAA+BA,MACzBzoM,EAAkBG,cAElBwjC,EAAiBgoB,OAAM,UAAC88I,EAAM,yBAAP,QAA4B,KACnDmI,EAA2BnI,EAAM,4BACjCx5D,EAAqBw5D,EAAM,sBAEjC,OACE,cAAC,WAAD,UACE,eAAC,IAAD,WACE,cAAC,IAAD,UACE,cAAC,IAAD,CAAKn6B,GAAG,KAAR,SACE,cAAC,IAAD,CACE3xD,QAASA,EACT+jE,kBAAgB,EAChB97K,KAAK,iBACLm8K,aAAc,EACduB,OAAQ,gBAAGrnE,EAAH,EAAGA,MAAOimE,EAAV,EAAUA,WAAV,OACN,cAAC,IAAD,CACEjmE,MAAOA,EACPC,WAAYgmE,EACZgpC,aAAc,CACZ,CACEpxG,MAAO,cAAC,IAAD,CAAkBn0G,GAAI,mCAC7BuI,MAAO,GAET,CAAE4rG,MAAO,cAAC,IAAD,CAAkBn0G,GAAI,gCAAmCuI,MAAO,aAOrF,uBACmB,GAAlBy2B,GACC,qCACE,cAAC,IAAD,UACE,cAAC,IAAD,CAAK2qI,GAAG,KAAR,SACE,cAAC,IAAD,CACE3xD,QAASA,EACT+jE,kBAAgB,EAChB97K,KAAK,uBACLu6F,MAAO,CAAEQ,UAAU,GACnB2iF,OAAQ,gBAAGrnE,EAAH,EAAGA,MAAOimE,EAAV,EAAUA,WAAV,OACN,cAAC,IAAD,CACEjmE,MAAOA,EACPC,WAAYgmE,EACZvhF,UAAQ,EACRmZ,MAAO,cAAC,IAAD,CAAkBn0G,GAAI,gCAC7BulN,aAAc,CACZ,CACEpxG,MAAM,GAAD,OAAK94G,EAAK0E,cAAc,CAAEC,GAAI,eAA9B,aAAkD3E,EAAK0E,cAC1D,CACEC,GAAI,yBAFH,KAKLuI,MAAO,GAET,CACE4rG,MAAO,cAAC,IAAD,CAAkBn0G,GAAI,cAC7BuI,MAAO,aAQrB,0BAGJ,eAAC,IAAD,WACE,cAAC,IAAD,CAAKohK,GAAG,KAAK/0D,UAAW,OAAxB,SACE,6BACE,cAAC,IAAD,CAAkB50G,GAAI,wCAG1B,cAAC,IAAD,CAAK2pK,GAAG,IAAR,SACE,cAAC,IAAD,CACE3xD,QAASA,EACT/3G,KAAM,2BACND,GAAI,oCAGR,cAAC,IAAD,CAAK2pK,GAAG,IAAR,UAC2B,OAAxBsiC,QAAwB,IAAxBA,OAAA,EAAAA,EAA0BrxL,QAAS,GAClC,cAAC,IAAD,CACEo9F,QAASA,EACT+jE,kBAAgB,EAChB97K,KAAM,yBACNm8K,aAAc,KACduB,OAAQ,gBAAGrnE,EAAH,EAAGA,MAAOimE,EAAV,EAAUA,WAAV,OACN,cAAC,IAAD,CACEjmE,MAAOA,EACPC,WAAYgmE,EACZv8K,GAAI,8BACJy2G,QAAS8hC,IAAwB3kI,KAAI,SAAColG,GAAD,mBAAC,eACjCA,GADgC,IAEnC7E,MAAO94G,EAAK0E,cAAc,CAAEC,GAAIg5G,EAAO7E,QACvCI,WAAYl5G,EAAK0E,cAAc,CAAEC,GAAIg5G,EAAO7E,aAE9CA,MAAO,cAAC,IAAD,CAAkBn0G,GAAI,yCAMvC,cAAC,IAAD,CAAK2pK,GAAG,IAAR,SACE,cAAC,IAAD,CACE3xD,QAASA,EACT+jE,kBAAgB,EAChB97K,KAAM,gBACN09K,OAAQ,gBAAGrnE,EAAH,EAAGA,MAAH,OACN,cAAC,IAAD,CACEA,MAAOA,EACPnC,MAAO,cAAC,IAAD,CAAkBn0G,GAAI,mCAMvC,uBACA,eAAC,IAAD,WACE,cAAC,IAAD,CAAK2pK,GAAG,KAAK/0D,UAAW,OAAxB,SACE,6BACE,cAAC,IAAD,CAAkB50G,GAAI,kCAG1B,cAAC,IAAD,CAAK2pK,GAAG,IAAR,SACE,cAAC,IAAD,CACE3xD,QAASA,EACT/3G,KAAM,qBACND,GAAI,8BAGR,cAAC,IAAD,CAAK2pK,GAAG,IAAR,UACqB,OAAlBr/B,QAAkB,IAAlBA,OAAA,EAAAA,EAAoB1vH,QAAS,GAC5B,cAAC,IAAD,CACEo9F,QAASA,EACT+jE,kBAAgB,EAChB97K,KAAM,qBACN09K,OAAQ,gBAAGrnE,EAAH,EAAGA,MAAOimE,EAAV,EAAUA,WAAV,OACN,cAAC,IAAD,CACEjmE,MAAOA,EACPC,WAAYgmE,EACZv8K,GAAI,0BACJy2G,QAASgiC,IAAa7kI,KAAI,SAAColG,GAAD,mBAAC,eACtBA,GADqB,IAExB7E,MAAO94G,EAAK0E,cAAc,CAAEC,GAAIg5G,EAAO7E,QACvCI,WAAYl5G,EAAK0E,cAAc,CAAEC,GAAIg5G,EAAO7E,aAE9CA,MAAO,cAAC,IAAD,CAAkBn0G,GAAI,wCAOzC,sBAAK40G,UAAU,iCAAf,UACE,eAAC,IAAO4pB,OAAR,CAAe1yH,MAAM,YAAY8oG,UAAU,WAAWmrI,SAAO,EAACvlI,UAAQ,EAAtE,UACE,cAAC,IAAD,CAAW3uG,KAAM,GAAI+oG,UAAU,+BAC/B,sBAAMA,UAAU,wCAAhB,SACE,cAAC,IAAD,CAAkB50G,GAAI,yBAG1B,eAAC,IAAOw+H,OAAR,CAEE1yH,MAAM,UACN8oG,UAAU,WACV6pB,QAASolE,GAAa,SAAC90K,GACrB+wN,EAAqB,CACnB9gN,eAAgBgoB,OAAOj4B,EAAOiQ,gBAE9BghN,qBAAsBh5L,OAAOj4B,EAAOixN,sBACpC9zC,uBAAwBn9K,EAAOm9K,uBAC/B+zC,cAAelxN,EAAOkxN,cACtB7zC,mBAAoBr9K,EAAOq9K,mBAC3BH,yBAA0Bl9K,EAAOk9K,yBACjC3hE,mBAAoBv7G,EAAOu7G,qBAEtB,OAAPu1G,QAAO,IAAPA,KAASK,UAfb,UAkBE,sBAAMtrI,UAAU,wCAAhB,SACE,cAAC,IAAD,CAAkB50G,GAAI,kBAExB,cAAC,IAAD,CAAY6L,KAAM,GAAI+oG,UAAU,4C,mNCwCtC+6C,EAAoB19J,YAAgB,CACxCs5G,KA7PW,WAAyB,IAAxB35G,EAAuB,uDAAf,GAAIC,EAAW,uCACnC,OAAQA,EAAOC,MACb,KAAKkgB,IACH,MAAO,GAGT,KAAKjgB,IACH,MAA6EF,EAAOM,QAA5EgiC,EAAR,EAAQA,YAAaqgM,EAArB,EAAqBA,eAAgBpgM,EAArC,EAAqCA,gBAAiBqgM,EAAtD,EAAsDA,mBAChD1iN,EAAQ,eAAQngB,GAiBtB,OAhBAuiC,EAAYpU,SAAQ,SAAC/f,GACnB+R,EAAS/R,GAAT,qCACEigB,YAAY,GACTruB,EAAMoO,IACNw0N,EAAex0N,IAHpB,IAIE+H,aAAa,OAGjBqsB,EAAgBrU,SAAQ,SAAC/f,GACvB+R,EAAS/R,GAAT,qCACEigB,YAAY,GACTruB,EAAMoO,IACNy0N,EAAmBz0N,IAHxB,IAIE+H,aAAa,OAGVgK,EAGT,KAAKhgB,IACH,MAA0CF,EAAOM,QAAzCmiC,EAAR,EAAQA,kBAAmBD,EAA3B,EAA2BA,WAC3B,OAAO,2BACFziC,GADL,kBAEG0iC,EAFH,uCAGOs7E,IAAKh+G,EAAM0iC,GAAoB,CAAC,mBAChCs7E,IAAKv7E,EAAY,CAAC,mBAJzB,IAKItsB,aAAa,MAKnB,KAAKhW,IACH,MAAwCF,EAAOM,QAAvCgiC,EAAR,EAAQA,YAAaqgM,EAArB,EAAqBA,eACfziN,EAAW,GASjB,OARAoiB,EAAYpU,SAAQ,SAAC/f,GACnB+R,EAAS/R,GAAT,qCACEigB,YAAY,GACTruB,EAAMoO,IACNw0N,EAAex0N,IAHpB,IAIE+H,aAAa,OAGVgK,EAIT,KAAKhgB,IACH,IAAMsiC,EAAaxiC,EAAOM,QAC1B,OAAO,2BACFP,GADL,kBAEGyiC,EAAWC,kBAFd,uCAGO1iC,EAAMyiC,EAAWC,oBAHxB,IAIIC,cAAe3iC,EAAMyiC,EAAWC,oBAC7Bs7E,IAAKv7E,EAAY,CAAC,uBALzB,IAMItsB,aAAa,MAMnB,KAAKhW,IACH,MAA6CF,EAAOM,QAA5CmiC,EAAR,EAAQA,kBAAmBC,EAA3B,EAA2BA,cAC3B,OAAO,2BACF3iC,GADL,kBAEG0iC,EAFH,uCAGOs7E,IAAKh+G,EAAM0iC,GAAoB,CAAC,mBAChCC,GAJP,IAKIxsB,aAAa,MAMnB,KAAKhW,IACH,IAAQuiC,EAAsBziC,EAAOM,QAA7BmiC,kBACR,OAAOs7E,IAAKh+G,EAAO0iC,GAIrB,QACE,OAAO1iC,IAqKXw/B,MAhKY,WAAyB,IAAxBx/B,EAAuB,uDAAf,GAAIC,EAAW,uCACpC,OAAQA,EAAOC,MACb,KAAKkgB,IACH,MAAO,GAGT,KAAKjgB,IACH,MAAyCF,EAAOM,QAAxCgiC,EAAR,EAAQA,YAAaC,EAArB,EAAqBA,gBACrB,OAAOs3E,IAAMv3E,EAAaC,GAG5B,KAAKriC,IACH,MAAyCF,EAAOM,QAAxCgiC,EAAR,EAAQA,YAAR,EAAqBC,gBACrB,OAAOs3E,IAAMv3E,GAGf,KAAKpiC,IACH,IAAQuiC,EAAsBziC,EAAOM,QAA7BmiC,kBACR,OAAO1iC,EAAMs8B,QAAO,SAACiyN,GAAD,OAA4BA,IAA2B7rN,KAI7E,QACE,OAAO1iC,IA0IX21O,sBApI4B,WAA4B,IAA3B31O,EAA0B,wDAAXC,EAAW,uCACvD,OAAQA,EAAOC,MACb,KAAKkgB,IACH,OAAO,EAET,KAAKjgB,IACH,OAAO,EAET,KAAKA,IACL,KAAKA,IACH,OAAO,EAET,QACE,OAAOH,IAwHXq+G,UAnHgB,WAA4B,IAA3Br+G,EAA0B,wDAAXC,EAAW,uCAC3C,OAAQA,EAAOC,MACb,KAAKkgB,IACH,OAAO,EAET,KAAKjgB,IACH,OAAO,EAET,KAAKA,IACL,KAAKA,IACH,OAAO,EAET,QACE,OAAOH,IAuGXs+G,WAlGiB,WAA4B,IAA3Bt+G,EAA0B,wDAAXC,EAAW,uCAC5C,OAAQA,EAAOC,MACb,KAAKkgB,IACH,OAAO,EAET,KAAKjgB,IACH,OAAO,EAET,KAAKA,IACL,KAAKA,IACH,OAAO,EAET,QACE,OAAOH,IAsFXwuP,uBAjF6B,WAA4B,IAA3BxuP,EAA0B,wDAAXC,EAAW,uCACxD,OAAQA,EAAOC,MACb,KAAKkgB,IACH,OAAO,EAET,KAAKjgB,IACH,OAAO,EAET,KAAKA,IACL,KAAKA,IACH,OAAO,EAET,QACE,OAAOH,IAqEX41O,yBAhE+B,WAA2B,IAA1B51O,EAAyB,uDAAjB,KAAMC,EAAW,uCACzD,OAAQA,EAAOC,MACb,KAAKkgB,IACH,OAAO,KAET,KAAKjgB,IACH,IAAQ4B,EAAU9B,EAAOM,QAAjBwB,MACR,OAAOA,EAET,KAAK5B,IACL,KAAKA,IACH,OAAO,KAET,QACE,OAAOH,IAmDXy+G,aA9CmB,WAA2B,IAA1Bz+G,EAAyB,uDAAjB,KAAMC,EAAW,uCAC7C,OAAQA,EAAOC,MACb,KAAKkgB,IACH,OAAO,KAET,KAAKjgB,IACH,IAAQ4B,EAAU9B,EAAOM,QAAjBwB,MACR,OAAOA,EAET,KAAK5B,IACL,KAAKA,IACH,OAAO,KAET,QACE,OAAOH,IAiCX0+G,cA5BoB,WAA2B,IAA1B1+G,EAAyB,uDAAjB,KAAMC,EAAW,uCAC9C,OAAQA,EAAOC,MACb,KAAKkgB,IACH,OAAO,KAET,KAAKjgB,IACH,IAAQ4B,EAAU9B,EAAOM,QAAjBwB,MACR,OAAOA,EAET,KAAK5B,IACL,KAAKA,IACH,OAAO,KAET,QACE,OAAOH,MAiBE+9J,MAGR,IAAMt7J,EAAc,SAACzC,GAAD,OAAWA,EAAMwe,OAAOu/I,mBAGtC0wF,EAAsB,SAACzuP,EAAO6tC,GACzC,OAAOprC,EAAYzC,GAAO25G,KAAK9rE,IAIpB6gN,EAAiC,SAAC1uP,EAAOoiC,GAAR,OAFN,SAACpiC,GAAD,OACtCyC,EAAYzC,GAAOw/B,MAAMxd,KAAI,SAAC5T,GAAD,OAAQqgP,EAAoBzuP,EAAOoO,MAEhEugP,CAAyB3uP,GAAOs8B,QAAO,SAACmG,GAAD,OAAgBA,EAAWL,SAAWA,MAGlEwsN,EAA8B,SAAC5uP,GAAD,OAAWyC,EAAYzC,GAAO21O,wB,kbCoJnE11N,EAAiB5f,YAAgB,CACrCs5G,KAvaW,WAAyB,IAAxB35G,EAAuB,uDAAf,GAAIC,EAAW,uCACnC,OAAQA,EAAOC,MACb,KAAKkgB,IACH,MAAO,GAET,KAAKjgB,IACH,MAA4BF,EAAOM,QAA3B2d,EAAR,EAAQA,SAAUshB,EAAlB,EAAkBA,MACZrf,EAAW,GASjB,OARAqf,EAAMrR,SAAQ,SAACksC,GACbl6C,EAASk6C,GAAT,qCACEhsC,YAAY,GACTruB,EAAMq6D,IACNn8C,EAASm8C,IAHd,IAIElkD,aAAa,OAGVgK,EAET,KAAKhgB,IACH,MAA4BF,EAAOM,QAA3B2d,EAAR,EAAQA,SAAUshB,EAAlB,EAAkBA,MACZrf,EAAQ,eAAQngB,GAStB,OARAw/B,EAAMrR,SAAQ,SAACksC,GACbl6C,EAASk6C,GAAT,qCACEhsC,YAAY,GACTruB,EAAMq6D,IACNn8C,EAASm8C,IAHd,IAIElkD,aAAa,OAGVgK,EAGT,KAAKhgB,IACH,MAA4BF,EAAOM,QAA3B0tC,EAAR,EAAQA,MAAOisB,EAAf,EAAeA,SACT/5C,EAAW69F,IAAKh+G,EAAOiuC,GAM7B,OALA9tB,EAAS+5C,EAASG,YAAlB,uCACKr6D,EAAMiuC,IACNisB,GAFL,IAGE/jD,aAAa,IAERgK,EAGT,KAAKhgB,IACH,IAAM+5D,EAAWj6D,EAAOM,QACxB,OAAO,2BACFP,GADL,kBAEGk6D,EAASG,WAFZ,uCAGO2jD,IAAKh+G,EAAMk6D,EAASG,YAAa,CAAC,kBAClC2jD,IAAK9jD,EAAU,CAAC,kBAJvB,IAKI/jD,aAAa,MAMnB,KAAKhW,IACH,IAAM+5D,EAAWj6D,EAAOM,QAClB4f,EAAQ,eAAQngB,GAKtB,OAJAmgB,EAAS+5C,EAASG,YAAc,CAC9BhsC,YAAY,EACZlY,aAAa,GAERgK,EAET,KAAKhgB,IACH,IAAM+5D,EAAWj6D,EAAOM,QACxB,OAAO,2BACFP,GADL,kBAEGk6D,EAASG,WAFZ,2BAGOr6D,EAAMk6D,EAASG,aAHtB,IAIIc,YAAan7D,EAAMk6D,EAASG,YAC5BlkD,aAAa,MAMnB,KAAKhW,IACH,IAAQ8tC,EAAUhuC,EAAOM,QAAjB0tC,MACR,OAAIjuC,EAAMiuC,GACD+vE,IAAKh+G,EAAOiuC,GAEdjuC,EAET,KAAKG,IACH,IAAQg7D,EAAgBl7D,EAAOM,QAAvB46D,YACR,OAAO,2BACFn7D,GADL,kBAEGm7D,EAAYd,WAFf,uCAGO2jD,IAAKh+G,EAAMm7D,EAAYd,YAAa,CAAC,kBACrCc,GAJP,IAKIhlD,aAAa,MAMnB,KAAKhW,IACH,IAAQk6D,EAAep6D,EAAOM,QAAtB85D,WACR,OAAO2jD,IAAKh+G,EAAOq6D,GAIrB,KAAKl6D,IACH,IAAMk6D,EAAap6D,EAAOM,QACpB4f,EAAQ,2BACTngB,GADS,kBAEXq6D,EAFW,2BAGPr6D,EAAMq6D,IAHC,IAIVhsC,YAAY,MAGhB,OAAOlO,EAGT,KAAKhgB,IACH,IAAMk6D,EAAap6D,EAAOM,QAC1B,OAAO,2BACFP,GADL,kBAEGq6D,EAFH,2BAGOr6D,EAAMq6D,IAHb,IAIIhsC,YAAY,MAKlB,KAAKluB,IACH,IAAMukL,EAAczkL,EAAOM,QACrB4f,EAAQ,eAAQngB,GAiBtB,OAhB0B,GAAtB0kL,EAAY17J,OACdmF,IAAQnuB,GAAO,SAACk6D,EAAeG,GAC7Bl6C,EAASk6C,GAAT,2BACKH,GADL,IAEE7rC,YAAY,OAIhBq2J,EAAYv2J,SAAQ,SAACksC,GACnBl6C,EAASk6C,GAAT,2BACKr6D,EAAMq6D,IADX,IAEEhsC,YAAY,OAKXlO,EAGT,KAAKhgB,IACH,IAAMukL,EAAczkL,EAAOM,QACrB4f,EAAQ,eAAQngB,GAiBtB,OAhB0B,GAAtB0kL,EAAY17J,OACdmF,IAAQnuB,GAAO,SAACk6D,EAAeG,GAC7Bl6C,EAASk6C,GAAT,2BACKH,GADL,IAEE7rC,YAAY,OAIhBq2J,EAAYv2J,SAAQ,SAACksC,GACnBl6C,EAASk6C,GAAT,2BACKr6D,EAAMq6D,IADX,IAEEhsC,YAAY,OAKXlO,EAGT,QACE,OAAOngB,IA4PXw/B,MAvPY,WAAyB,IAAxBx/B,EAAuB,uDAAf,GAAIC,EAAW,uCACpC,OAAQA,EAAOC,MACb,KAAKkgB,IACH,MAAO,GAGT,KAAKjgB,IACH,IAAQq/B,EAAUv/B,EAAOM,QAAjBi/B,MACR,OAAOs6E,IAAMt6E,GAGf,KAAKr/B,IACH,IAAQq/B,EAAUv/B,EAAOM,QAAjBi/B,MACR,OAAO+yB,IAAK,GAAD,mBAAKvyD,GAAL,YAAew/B,KAG5B,KAAKr/B,IACH,MAA4BF,EAAOM,QAA3B0tC,EAAR,EAAQA,MAAOisB,EAAf,EAAeA,SACf,OAAOl6D,EAAMgiB,KAAI,SAACq4C,GAAD,OAAiBA,IAAepsB,EAAQisB,EAASG,WAAaA,KAGjF,KAAKl6D,IACH,IAAQk6D,EAAep6D,EAAOM,QAAtB85D,WACR,OAAOr6D,EAAMs8B,QAAO,SAACuyN,GAAD,OAAqBA,IAAoBx0L,KAI/D,KAAKl6D,IACH,IAAM+5D,EAAWj6D,EAAOM,QACxB,MAAM,GAAN,mBAAWP,GAAX,CAAkBk6D,EAASG,aAI7B,KAAKl6D,IACH,IAAQ8tC,EAAUhuC,EAAOM,QAAjB0tC,MACR,OAAOjuC,EAAMs8B,QAAO,SAACuyN,GAAD,OAAqBA,IAAoB5gN,KAI/D,QACE,OAAOjuC,IAgNXm+G,sBAxL4B,WAA4B,IAA3Bn+G,EAA0B,wDAAXC,EAAW,uCACvD,OAAQA,EAAOC,MACb,KAAKkgB,IACH,OAAO,EAET,KAAKjgB,IACH,OAAO,EAET,KAAKA,IACL,KAAKA,IACH,OAAO,EAET,QACE,OAAOH,IA4KX47G,eA3MqB,WAA4B,IAA3B57G,EAA0B,wDAAXC,EAAW,uCAChD,OAAQA,EAAOC,MACb,KAAKkgB,IACH,OAAO,EAET,KAAKjgB,IACH,OAAO,EAET,KAAKA,IACL,KAAKA,IACH,OAAO,EAET,QACE,OAAOH,IA+LXo+G,SAxKe,WAA4B,IAA3Bp+G,EAA0B,wDAAXC,EAAW,uCAC1C,OAAQA,EAAOC,MACb,KAAKkgB,IACH,OAAO,EAET,KAAKjgB,IACH,OAAO,EAET,KAAKA,IACL,KAAKA,IACH,OAAO,EAET,QACE,OAAOH,IA4JXq+G,UAvJgB,WAA4B,IAA3Br+G,EAA0B,wDAAXC,EAAW,uCAC3C,OAAQA,EAAOC,MACb,KAAKkgB,IACH,OAAO,EAET,KAAKjgB,IACH,OAAO,EAET,KAAKA,IACL,KAAKA,IACH,OAAO,EAET,QACE,OAAOH,IA2IXs+G,WAtIiB,WAA4B,IAA3Bt+G,EAA0B,wDAAXC,EAAW,uCAC5C,OAAQA,EAAOC,MACb,KAAKkgB,IACH,OAAO,EAET,KAAKjgB,IACH,OAAO,EAET,KAAKA,IACL,KAAKA,IACH,OAAO,EAET,QACE,OAAOH,IA0HXu+G,yBAlG+B,WAA2B,IAA1Bv+G,EAAyB,uDAAjB,KAAMC,EAAW,uCACzD,OAAQA,EAAOC,MACb,KAAKkgB,IACH,OAAO,KAET,KAAKjgB,IACH,IAAQ4B,EAAU9B,EAAOM,QAAjBwB,MACR,OAAOA,EAET,KAAK5B,IACL,KAAKA,IACH,OAAO,KAET,QACE,OAAOH,IAqFX87G,kBAtHwB,WAA2B,IAA1B97G,EAAyB,uDAAjB,KAAMC,EAAW,uCAClD,OAAQA,EAAOC,MACb,KAAKkgB,IACH,OAAO,KAET,KAAKjgB,IACH,IAAQ4B,EAAU9B,EAAOM,QAAjBwB,MACR,OAAOA,EAET,KAAK5B,IACL,KAAKA,IACH,OAAO,KAET,QACE,OAAOH,IAyGXw+G,YAjFkB,WAA2B,IAA1Bx+G,EAAyB,uDAAjB,KAAMC,EAAW,uCAC5C,OAAQA,EAAOC,MACb,KAAKkgB,IACH,OAAO,KAET,KAAKjgB,IACH,IAAQ4B,EAAU9B,EAAOM,QAAjBwB,MACR,OAAOA,EAET,KAAK5B,IACL,KAAKA,IACH,OAAO,KAET,QACE,OAAOH,IAoEXy+G,aA/DmB,WAA2B,IAA1Bz+G,EAAyB,uDAAjB,KAAMC,EAAW,uCAC7C,OAAQA,EAAOC,MACb,KAAKkgB,IACH,OAAO,KAET,KAAKjgB,IACH,IAAQ4B,EAAU9B,EAAOM,QAAjBwB,MACR,OAAOA,EAET,KAAK5B,IACL,KAAKA,IACH,OAAO,KAET,QACE,OAAOH,IAkDX0+G,cA7CoB,WAA2B,IAA1B1+G,EAAyB,uDAAjB,KAAMC,EAAW,uCAC9C,OAAQA,EAAOC,MACb,KAAKkgB,IACH,OAAO,KAET,KAAKjgB,IACH,IAAQ4B,EAAU9B,EAAOM,QAAjBwB,MACR,OAAOA,EAET,KAAK5B,IACL,KAAKA,IACH,OAAO,KAET,QACE,OAAOH,IAgCX+9H,kBA3BwB,WAA4B,IAA3B/9H,EAA0B,wDAAXC,EAAW,uCACnD,OAAQA,EAAOC,MACb,KAAKkgB,IACH,OAAO,EAET,KAAKjgB,IACH,OAAO,EAET,QACE,OAAOH,MAqBP8uP,EAA2B,CAC/B5sP,IAAK,YACLC,QAASC,IACTC,gBAAiBC,IACjBC,UAAW,CAAC,WAAY,YAAa,aAAc,iBAAkB,yBACrEgqH,UAAW,CAAC,OAAQ,UAIP/pH,gBAAessP,EAA0B7uO,GAGjD,IAAMxd,EAAc,SAACzC,GAAD,OAAWA,EAAMigB,WAE/B8uO,EAAc,SAAC/uP,EAAOq6D,GAAR,uBACzB53D,EAAYzC,GAAO25G,KAAKt/C,UADC,QACc,MAE5B20L,EAAmB,SAAChvP,GAAD,OAC9ByC,EAAYzC,GAAOw/B,MAAMxd,KAAI,SAAC5T,GAAD,OAAQ2gP,EAAY/uP,EAAOoO,OAE7C6gP,EAA+B,SAACjvP,EAAOsB,GAClD,OAAO0tP,EAAiBhvP,GAAOs8B,QAC7B,SAAC49B,GAAD,OACE54D,KACEA,EAAWiE,YAAcjE,EAAWiE,aAAe20D,EAAS30D,eAC5DjE,EAAWoD,gBAAkBpD,EAAWoD,iBAAmBw1D,EAASx1D,mBACpEpD,EAAWsD,YAActD,EAAWsD,aAAes1D,EAASt1D,eAC5DtD,EAAWwD,eAAiBxD,EAAWwD,gBAAkBo1D,EAASp1D,mBAK7DoqP,EAAiC,SAAClvP,GAAD,OAAWyC,EAAYzC,GAAOm+G,uBAC/DgxI,EAA0B,SAACnvP,GAAD,OAAWyC,EAAYzC,GAAO47G,gBAExDwzI,EAAmB,SAACpvP,GAAD,OAAWyC,EAAYzC,GAAOo+G,UACjDixI,EAAoB,SAACrvP,GAAD,OAAWyC,EAAYzC,GAAOq+G,Y,2PClelDj7E,EAAU,SAEVnB,EAA8B,uCAAG,WAC5CnxB,EACAswB,GAF4C,eAAAl0B,EAAA,6DAItCoD,EAAe,IAAIjE,IACzBg1B,IAAsB1wB,6BAA6BC,IAAON,GAE1DA,EAAa3D,iBAAiBy0B,GAPc,kBAQrC9wB,EAAa9C,KAAb,UAAqB41B,EAArB,mBAA+CtyB,IARV,2CAAH,wDAW9Bw+O,EAA2B,uCAAG,WAAOx+O,EAAcswB,GAArB,eAAAl0B,EAAA,6DACnCoD,EAAe,IAAIjE,IACzBg1B,IAAsB1wB,6BAA6BC,IAAON,GAE1DA,EAAa3D,iBAAiBy0B,GAJW,kBAKlC9wB,EAAa9C,KAAb,UAAqB41B,EAArB,qBAAiDtyB,IALf,2CAAH,wDAQ3B8xB,EAAwB,SAAC9xB,EAAcswB,GAClD,IAAM9wB,EAAe,IAAIjE,IASzB,OARAg1B,IAAsB1wB,6BAA6BC,IAAON,GAC1DA,EAAa5D,iBAAiB,CAC5B2B,KAAK,GAAD,OAAKyC,EAAQ2mB,UACjBvpB,OAAQ,0BACRjO,OAAQ6Q,EAAQ4xB,kBAAoB,OAAS,SAC7C90B,WAAY,mBAEd0C,EAAa3D,iBAAiBy0B,GACvB9wB,EAAa9C,KAAb,UAAqB41B,EAArB,mBAA+CtyB,IAG3CiyB,EAA0B,SAACjyB,EAAcswB,GACpD,IAAM9wB,EAAe,IAAIjE,IASzB,OARAg1B,IAAsB1wB,6BAA6BC,IAAON,GAC1DA,EAAa5D,iBAAiB,CAC5B2B,KAAK,GAAD,OAAKyC,EAAQ2mB,UACjBvpB,OAAQ,0BACRjO,OAAQ,SACR2N,WAAY,mBAEd0C,EAAa3D,iBAAiBy0B,GACvB9wB,EAAa9C,KAAb,UAAqB41B,EAArB,qBAAiDtyB,IAc7CmyB,EAA6B,uCAAG,WAC3CnyB,EACAswB,GAF2C,eAAAl0B,EAAA,6DAIrCoD,EAAe,IAAIjE,IACzBg1B,IAAsB1wB,6BAA6BC,IAAON,GAE1DA,EAAa3D,iBAAiBy0B,GAPa,kBAQpC9wB,EAAa9C,KAAb,UAAqB41B,EAArB,sBAAkDtyB,IARd,2CAAH,yD,yNC4OpC2rI,EAAiBp8I,YAAgB,CACrCs5G,KApSW,WAAyB,IAAxB35G,EAAuB,uDAAf,GAAIC,EAAW,uCACnC,OAAQA,EAAOC,MACb,KAAKkgB,IACH,MAAO,GAGT,KAAKjgB,IACH,MAA4BF,EAAOM,QAA3B2d,EAAR,EAAQA,SAAUshB,EAAlB,EAAkBA,MACZrf,EAAQ,eAAQngB,GAStB,OARAw/B,EAAMrR,SAAQ,SAAC0f,GACb1tB,EAAS0tB,GAAT,qCACExf,YAAY,GACTruB,EAAM6tC,IACN3vB,EAAS2vB,IAHd,IAIE13B,aAAa,OAGVgK,EAGT,KAAKhgB,IACH,MAA2BF,EAAOM,QAA1B0tC,EAAR,EAAQA,MAAO/K,EAAf,EAAeA,QACT/iB,EAAW69F,IAAKh+G,EAAOiuC,GAM7B,OALA9tB,EAAS+iB,EAAQK,gBAAjB,uCACKvjC,EAAMiuC,IACN/K,GAFL,IAGE/sB,aAAa,IAERgK,EAGT,KAAKhgB,IACH,IAAM+iC,EAAUjjC,EAAOM,QACvB,OAAO,2BACFP,GADL,kBAEGkjC,EAAQK,eAFX,uCAGOy6E,IAAKh+G,EAAMkjC,EAAQK,gBAAiB,CAAC,gBACrCy6E,IAAK96E,EAAS,CAAC,gBAJtB,IAKI/sB,aAAa,MAMnB,KAAKhW,IACH,IAAM+iC,EAAUjjC,EAAOM,QACjB4f,EAAQ,eAAQngB,GAMtB,OALAmgB,EAAS+iB,EAAQK,gBAAjB,yBACElV,YAAY,GACT6U,GAFL,IAGE/sB,aAAa,IAERgK,EAET,KAAKhgB,IACH,IAAM+iC,EAAUjjC,EAAOM,QACvB,OAAO,2BACFP,GADL,kBAEGkjC,EAAQK,eAFX,uCAGOvjC,EAAMkjC,EAAQK,iBAHrB,IAIIW,WAAYlkC,EAAMkjC,EAAQK,iBACvBL,GALP,IAMI/sB,aAAa,MAMnB,KAAKhW,IACH,IAAQ8tC,EAAUhuC,EAAOM,QAAjB0tC,MACR,OAAIjuC,EAAMiuC,GACD+vE,IAAKh+G,EAAOiuC,GAEdjuC,EAET,KAAKG,IACH,IAAQ+jC,EAAejkC,EAAOM,QAAtB2jC,WACR,OAAO,2BACFlkC,GADL,kBAEGkkC,EAAWX,eAFd,uCAGOy6E,IAAKh+G,EAAMkkC,EAAWX,gBAAiB,CAAC,gBACxCW,GAJP,IAKI/tB,aAAa,MAMnB,KAAKhW,IACH,IAAQojC,EAAmBtjC,EAAOM,QAA1BgjC,eACR,OAAOy6E,IAAKh+G,EAAOujC,GAIrB,QACE,OAAOvjC,IAsMXw/B,MAjMY,WAAyB,IAAxBx/B,EAAuB,uDAAf,GAAIC,EAAW,uCACpC,OAAQA,EAAOC,MACb,KAAKkgB,IACH,MAAO,GAGT,KAAKjgB,IACH,IAAQq/B,EAAUv/B,EAAOM,QAAjBi/B,MACR,OAAOs6E,IAAMt6E,GAGf,KAAKr/B,IACH,MAA2BF,EAAOM,QAA1B0tC,EAAR,EAAQA,MAAO/K,EAAf,EAAeA,QACf,OAAOljC,EAAMgiB,KAAI,SAACuhB,GAAD,OACfA,IAAmB0K,EAAQ/K,EAAQK,eAAiBA,KAIxD,KAAKpjC,IACH,IAAQojC,EAAmBtjC,EAAOM,QAA1BgjC,eACR,OAAOvjC,EAAMs8B,QAAO,SAACizN,GAAD,OAAyBA,IAAwBhsN,KAIvE,KAAKpjC,IACH,IAAM+iC,EAAUjjC,EAAOM,QACvB,MAAM,GAAN,mBAAWP,GAAX,CAAkBkjC,EAAQK,iBAI5B,KAAKpjC,IACH,IAAQ8tC,EAAUhuC,EAAOM,QAAjB0tC,MACR,OAAOjuC,EAAMs8B,QAAO,SAACizN,GAAD,OAAyBA,IAAwBthN,KAIvE,QACE,OAAOjuC,IA6JXwvP,mBAvJyB,WAA4B,IAA3BxvP,EAA0B,wDAAXC,EAAW,uCACpD,OAAQA,EAAOC,MACb,KAAKkgB,IACH,OAAO,EAET,KAAKjgB,IACH,OAAO,EAET,KAAKA,IACL,KAAKA,IACH,OAAO,EAET,QACE,OAAOH,IA2IXo+G,SAtIe,WAA4B,IAA3Bp+G,EAA0B,wDAAXC,EAAW,uCAC1C,OAAQA,EAAOC,MACb,KAAKkgB,IACH,OAAO,EAET,KAAKjgB,IACH,OAAO,EAET,KAAKA,IACL,KAAKA,IACH,OAAO,EAET,QACE,OAAOH,IA0HXq+G,UArHgB,WAA4B,IAA3Br+G,EAA0B,wDAAXC,EAAW,uCAC3C,OAAQA,EAAOC,MACb,KAAKkgB,IACH,OAAO,EAET,KAAKjgB,IACH,OAAO,EAET,KAAKA,IACL,KAAKA,IACH,OAAO,EAET,QACE,OAAOH,IAyGXs+G,WApGiB,WAA4B,IAA3Bt+G,EAA0B,wDAAXC,EAAW,uCAC5C,OAAQA,EAAOC,MACb,KAAKkgB,IACH,OAAO,EAET,KAAKjgB,IACH,OAAO,EAET,KAAKA,IACL,KAAKA,IACH,OAAO,EAET,QACE,OAAOH,IAwFXyvP,sBAnF4B,WAA2B,IAA1BzvP,EAAyB,uDAAjB,KAAMC,EAAW,uCACtD,OAAQA,EAAOC,MACb,KAAKkgB,IACH,OAAO,KAET,KAAKjgB,IACH,IAAQ4B,EAAU9B,EAAOM,QAAjBwB,MACR,OAAOA,EAET,KAAK5B,IACL,KAAKA,IACH,OAAO,KAET,QACE,OAAOH,IAsEXw+G,YAjEkB,WAA2B,IAA1Bx+G,EAAyB,uDAAjB,KAAMC,EAAW,uCAC5C,OAAQA,EAAOC,MACb,KAAKkgB,IACH,OAAO,KAET,KAAKjgB,IACH,IAAQ4B,EAAU9B,EAAOM,QAAjBwB,MACR,OAAOA,EAET,KAAK5B,IACL,KAAKA,IACH,OAAO,KAET,QACE,OAAOH,IAoDXy+G,aA/CmB,WAA2B,IAA1Bz+G,EAAyB,uDAAjB,KAAMC,EAAW,uCAC7C,OAAQA,EAAOC,MACb,KAAKkgB,IACH,OAAO,KAET,KAAKjgB,IACH,IAAQ4B,EAAU9B,EAAOM,QAAjBwB,MACR,OAAOA,EAET,KAAK5B,IACL,KAAKA,IACH,OAAO,KAET,QACE,OAAOH,IAkCX0+G,cA7BoB,WAA2B,IAA1B1+G,EAAyB,uDAAjB,KAAMC,EAAW,uCAC9C,OAAQA,EAAOC,MACb,KAAKkgB,IACH,OAAO,KAET,KAAKjgB,IACH,IAAQ4B,EAAU9B,EAAOM,QAAjBwB,MACR,OAAOA,EAET,KAAK5B,IACL,KAAKA,IACH,OAAO,KAET,QACE,OAAOH,MAkBEy8I,MAGR,IAAMh6I,EAAc,SAACzC,GAAD,OAAWA,EAAMwe,OAAO8lB,iBAAiBm4G,gBAGvDizG,EAAmB,SAAC1vP,EAAO6tC,GACtC,OAAOprC,EAAYzC,GAAO25G,KAAK9rE,IAIpB8hN,EAA2C,SAAC3vP,EAAO0iC,GAAR,OAFnB,SAAC1iC,GAAD,OACnCyC,EAAYzC,GAAOw/B,MAAMxd,KAAI,SAAC5T,GAAD,OAAQshP,EAAiB1vP,EAAOoO,MAE7DwhP,CAAsB5vP,GAAOs8B,QAAO,SAAC4G,GAAD,OAAaA,EAAQR,oBAAsBA,MAGpEmtN,EAA2B,SAAC7vP,GAAD,OAAWyC,EAAYzC,GAAOwvP,qB,gCCxUtE,iFAMaM,EAA6B,SACxC/pN,EACA7nB,EACAshB,EACAuwN,EACAC,GALwC,MAMpC,CACJ9vP,KAAMC,IACNI,QAAS,CACPwlC,aACA7nB,WACAshB,QACAuwN,iBACAC,iBAGSC,EAAyB,eAACluP,EAAD,uDAAS,CAAE+U,aAAc,QAASsL,YAAa,KAA/C,MAA0D,CAC9FliB,KAAMC,IACNI,QAAS,CACPwB,Y,iCCfWwC,IAVK,CAClB6nO,UAAW,QACXx7K,QAAS,QACTE,SAAU,QACVM,WAAY,QACZ8+L,SAAU,QACV7jB,kBAAmB,QACnB8jB,uBAAwB,U,8BCAX5rP,IAPK,CAClB4rO,aAAc,QACdC,eAAgB,QAChBt1K,aAAc,QACdu1K,eAAgB,U,4MCiJZ5yM,EAAmBp9B,YAAgB,CACvCs5G,KA1IW,WAAyB,IAAxB35G,EAAuB,uDAAf,GAAIC,EAAW,uCACnC,OAAQA,EAAOC,MACb,KAAKkgB,IACL,KAAKjgB,IACH,MAAO,GAGT,KAAKA,IACH,MAA4BF,EAAOM,QAA3B2d,EAAR,EAAQA,SAAUshB,EAAlB,EAAkBA,MACZrf,EAAQ,eAAQngB,GAStB,OARAw/B,EAAMrR,SAAQ,SAACiiO,GACbjwO,EAASiwO,GAAT,qCACE/hO,YAAY,GACTruB,EAAMowP,IACNlyO,EAASkyO,IAHd,IAIEj6O,aAAa,OAGVgK,EAIT,KAAKkwO,IACH,MAIIpwP,EAAOM,QAHTgiJ,iBACEhjH,YAAerhB,EAFnB,EAEmBA,SAAUshB,EAF7B,EAE6BA,MAGvBrf,EAAQ,eAAQngB,GAStB,OARAw/B,EAAMrR,SAAQ,SAACoP,GACbpd,EAASod,GAAT,qCACElP,YAAY,GACTruB,EAAMu9B,IACNrf,EAASqf,IAHd,IAIEpnB,aAAa,OAGVgK,EAGT,KAAKkwO,IACH,MAEIpwP,EAAOM,QADTg/B,YAAerhB,EADjB,EACiBA,SAAUshB,EAD3B,EAC2BA,MAErBrf,EAAQ,eAAQngB,GAStB,OARAw/B,EAAMrR,SAAQ,SAACoP,GACbpd,EAASod,GAAT,qCACElP,YAAY,GACTruB,EAAMu9B,IACNrf,EAASqf,IAHd,IAIEpnB,aAAa,OAGVgK,EAIT,QACE,OAAOngB,IAiFXw/B,MA5EY,WAAyB,IAAxBx/B,EAAuB,uDAAf,GAAIC,EAAW,uCACpC,OAAQA,EAAOC,MACb,KAAKkgB,IACL,KAAKjgB,IACH,MAAO,GAGT,KAAKA,IACH,IAAQq/B,EAAUv/B,EAAOM,QAAjBi/B,MACR,OAAOs6E,IAAM95G,EAAOw/B,GAItB,KAAK6wN,IACH,IAEmB7wN,EAEfv/B,EAAOM,QAHTgiJ,iBACEhjH,YAAeC,MAGnB,OAAOs6E,IAAM95G,EAAOw/B,GAGtB,KAAK6wN,IACH,IACiB7wN,EACbv/B,EAAOM,QADTg/B,YAAeC,MAEjB,OAAOs6E,IAAM95G,EAAOw/B,GAItB,QACE,OAAOx/B,IA8CX47G,eAxCqB,WAA4B,IAA3B57G,EAA0B,wDAAXC,EAAW,uCAChD,OAAQA,EAAOC,MACb,KAAKkgB,IACH,OAAO,EAET,KAAKjgB,IACH,OAAO,EAET,KAAKA,IACL,KAAKA,IACH,OAAO,EAET,QACE,OAAOH,IA4BX87G,kBAvBwB,WAA2B,IAA1B97G,EAAyB,uDAAjB,KAAMC,EAAW,uCAClD,OAAQA,EAAOC,MACb,KAAKkgB,IACH,OAAO,KAET,KAAKjgB,IACH,IAAQ4B,EAAU9B,EAAOM,QAAjBwB,MACR,OAAOA,EAET,KAAK5B,IACL,KAAKA,IACH,OAAO,KAET,QACE,OAAOH,MAYEy9B,MAGR,IAAMh7B,EAAc,SAACzC,GAAD,OAAWA,EAAMwe,OAAOif,kBAgBtC6yN,EAA0B,SAACtwP,GAAD,OACrCyC,EAAYzC,GAAOw/B,MAAMxd,KAAI,SAAC5T,GAAD,OAdG,SAACpO,EAAOowP,GACxC,IAAM9yN,EAAkB76B,EAAYzC,GAAO25G,KAAKy2I,GAChD,GAAI9yN,EACF,OAAO,2BACFA,GADL,IAEE+6K,gBAAiB/6K,EAAgB+6K,gBAAkB,GACnDa,aAAc13L,aACAxhB,GACXm5M,uCAAuC77K,EAAgBo2I,UAMzB68E,CAAmBvwP,EAAOoO,OACpDoiP,EAAiC,SAACxwP,EAAOu9B,GAAR,OAC5C+yN,EAAwBtwP,GAAOs8B,QAAO,SAACgB,GAAD,OAAqBA,EAAgBC,UAAYA,MAG5EiiI,EAAiC,SAACx/J,GAAD,OAAWyC,EAAYzC,GAAO47G,gBAG/D60I,EAAwC,SAACzwP,GAAD,OACnDyC,EAAYzC,GAAO87G,oB,gIC5IN40I,EArBK,SAAC,GAAqC,IAAnCr8C,EAAkC,EAAlCA,UAAkC,IAAvBM,mBAAuB,MAAT,GAAS,EACvD,OACE,cAACg8C,EAAA,EAAD,UACE,cAACC,EAAA,EAAD,UACE,cAACC,EAAA,EAAD,CAAYx8C,UAAWA,EAAvB,SACGM,EAAY3yL,KAAI,SAAC8uO,GAChB,OACE,cAACC,EAAA,EAAD,CAEEr8C,MAAOo8C,EAAWp8C,MAFpB,SAIGo8C,EAAWl8C,WAJd,oBACoBk8C,EAAWp8C,kBCM9Bg8C,EAdK,SAAC,GAAqC,IAAnCr8C,EAAkC,EAAlCA,UAAkC,IAAvBM,mBAAuB,MAAT,GAAS,EACvD,OACE,cAACk8C,EAAA,EAAD,CAAYx8C,UAAWA,EAAvB,SACGM,EAAY3yL,KAAI,SAAC8uO,GAChB,OACE,cAACC,EAAA,EAAD,CAA+Cr8C,MAAOo8C,EAAWp8C,MAAjE,SACGo8C,EAAWl8C,WADd,oBAA2Bk8C,EAAWp8C,cC6FjCP,IAjEK,SAAC,GAYP,IAAD,IAXX68C,gBAWW,aAVX58C,wBAUW,MAVQ,EAUR,MATXK,YASW,MATJ,KASI,MARXE,mBAQW,MARG,KAQH,MAPX3xF,iBAOW,MAPC,GAOD,MANXwxF,sBAMW,aALXH,iBAKW,MALC,KAKD,MAJXC,oBAIW,MAJI,KAIJ,MAHX28C,gBAGW,aAFXrnP,eAEW,aADXsnP,aACW,MADH,OACG,EACX,GAAiB,MAAb78C,GAAqC,MAAhBC,EAAzB,OAC8B7nE,mBAAS2nE,GADvC,mBACGC,EADH,KACcC,EADd,KAKA,OAHA9uF,qBAAU,WACR8uF,EAAaF,KACZ,CAACA,IAEF,mCACG48C,EACC,eAAC//C,EAAA,EAAD,CAAKjuF,UAAWA,EAAhB,UACE,cAAC6oE,EAAA,EAAD,CAAK7oE,UAAU,eAAessE,GAAG,IAAjC,SACE,cAAC6hE,EAAA,EAAD,CACE98C,UAAWA,EACX+8C,UAAW98C,EACXG,KAAMA,EACNy8C,MAAOA,EACPF,SAAUA,EACVC,SAAUA,EACVrnP,QAASA,MAGb,cAACiiL,EAAA,EAAD,CAAKyD,GAAG,IAAR,SACGklB,EACC,cAAC68C,EAAD,CAAiBh9C,UAAWA,EAAWM,YAAaA,IAEpD,cAAC,EAAD,CAAaN,UAAWA,EAAWM,YAAaA,SAKtD,cAAC1D,EAAA,EAAD,CAAKjuF,UAAWA,EAAhB,SACE,eAAC6oE,EAAA,EAAD,CAAK9T,GAAG,KAAKl1D,MAAO,CAAEyuI,YAAa,OAAnC,UACE,cAACH,EAAA,EAAD,CACE98C,UAAWA,EACX+8C,UAAW98C,EACXG,KAAMA,EACNy8C,MAAOA,EACPF,SAAUA,EACVC,SAAUA,EACVrnP,QAASA,IAEV4qM,EACC,cAAC68C,EAAD,CAAiBh9C,UAAWA,EAAWM,YAAaA,IAEpD,cAAC,EAAD,CAAaN,UAAWA,EAAWM,YAAaA,a,kFClGxDiV,EAAa,WAAsD,IAArDp/B,EAAoD,wDACtE,EAA0B/9C,qBAAW+9C,GAArC,mBAAO7zK,EAAP,KAAc46O,EAAd,KAEM1nC,EAAUm1B,uBAAY,kBAAMuS,GAAS,KAAO,IAC5CznC,EAAWk1B,uBAAY,kBAAMuS,GAAS,KAAQ,IAC9CnkH,EAAS4xG,uBAAY,kBAAMuS,GAAS,SAAC56O,GAAD,OAAYA,OAAQ,IAE9D,MAAO,CAAEA,QAAOkzM,UAASC,WAAU18E,Y,wWCF/BokH,EAA0B,SAACn7O,GAAkB,IAAD,IACxCm5K,EAA+En5K,EAA/Em5K,KAAMmiB,EAAyEt7L,EAAzEs7L,kBAAmB8/C,EAAsDp7O,EAAtDo7O,6BAA8BC,EAAwBr7O,EAAxBq7O,MAAOC,EAAiBt7O,EAAjBs7O,aACtE,EAAgD3/C,cAAxC5rF,EAAR,EAAQA,QAAS6rF,EAAjB,EAAiBA,aAAqBp1B,GAAtC,EAA+Bq1B,MAA/B,EAAsCr1B,OAChCpzK,EAAOG,cAYb,OACE,cAAC,IAAD,CACEo5G,UAAU,sBACV+vF,iBAAiB,8BACjB5lE,OAAQwkE,EACRr8L,MAAO7L,EAAK0E,cAAc,CAAEC,GAAI,wBAChCqlM,SAAQ,UAAKhqM,EAAK0E,cAAc,CAAEC,GAAI,0BAA9B,aAA6DohL,EAAKC,UAC1E95K,MAAO,QACPq9L,eAAgB,WACdy+C,IACA50E,KATJ,SAYE,qCACE,cAACo0B,EAAA,EAAD,UACE,cAACplB,EAAA,EAAD,CAAK9T,GAAG,KAAR,SACE,cAAC,IAAD,CACE3xD,QAASA,EACT/3G,KAAK,WACLm8K,aAAY,OAAEgF,QAAF,IAAEA,GAAF,UAAEA,EAAMC,gBAAR,aAAE,EAAgBjrL,MAAM,KAAK,GACzCokG,MAAO,CAAEQ,UAAU,GACnB2iF,OAAQ,gBAAGrnE,EAAH,EAAGA,MAAOimE,EAAV,EAAUA,WAAV,OACN,cAACliE,EAAA,EAAD,CACE/D,MAAOA,EACPC,WAAYgmE,EACZv8K,GAAI,gBACJm0G,MAAO94G,EAAK0E,cAAc,CACxBC,GAAI,oBAENg7F,UAAQ,WAMlB,qBAAK4Z,UAAU,+BAAf,SACE,cAAC2tI,EAAA,EAAD,CAAM3tI,UAAU,wBAAhB,SACE,gCACG0uI,GAAS,cAACE,EAAA,EAAD,CAASj8O,MAAM,OAAOktG,MAAO,CAAEM,OAAQ,QAAUD,IAAKssE,EAAKE,WAEnEgiE,GACA,cAACd,EAAA,EAAD,CAAU5tI,UAAU,cAAcH,MAAO,CAAEM,OAAQ,QAAnD,SACE,8BACE,qBAAKH,UAAS,0BAAqB,oBAAnC,SACE,qBAAKA,UAAU,iBAAf,SACE,cAAC,IAAD,CACEn0G,KACE2gL,EAAKG,cAAL,wBACWH,EAAKG,qBADhB,aACW,EAAoBz+K,eAC3B,+BAWxB,cAAC+/L,EAAA,EAAD,CAAKjuF,UAAW,oBAAhB,SACE,eAAC6oE,EAAA,EAAD,CAAK9T,GAAG,KAAR,UACE,cAACw7B,EAAA,EAAO3mE,OAAR,CACE5pB,UAAU,mBACV9oG,MAAM,UAEN2yH,QAASolE,GAAa,SAAC90K,GAAD,OA5EjB,SAACA,GACZw0N,GACFA,EAAa,CACXE,OAAQriE,EAAKqiE,OACbpiE,SAAS,GAAD,OAAKtyJ,EAAOsyJ,SAAZ,mBAAwBD,QAAxB,IAAwBA,OAAxB,EAAwBA,EAAMG,iBAE1C8hE,IACA50E,IAqE4Ci1E,CAAS30N,MAJ7C,SAME,cAAC,IAAD,CAAkB/uB,GAAG,kBAEvB,cAACmlM,EAAA,EAAO3mE,OAAR,CACE5pB,UAAU,cACV9oG,MAAM,QACN2yH,QAAS,WACP4kH,IACA50E,KALJ,SAQE,cAAC,IAAD,CAAkBzuK,GAAG,+BASnCojP,EAAwBvoI,aAAe,GAExBuoI,QCrGfjf,IAAWxhO,IAAI,CACbyhO,IACAC,IACAC,IACAC,IACAC,IACAC,IACAC,IACAC,IACAC,MAGF,IAAMC,EAAuB,CAC3BE,aAAc,GACdU,cAAe,EAEfke,YAAa,CAEXC,IAAK,CACH7e,aAAc,GACdU,cAAe,IAGnBN,MAAM,EACN3tB,YAAY,EACZC,WAAY,CACV2tB,WAAW,IAqBTye,EAAc,SAAC57O,GACnB,IAAQmvM,EAAyEnvM,EAAzEmvM,MAAOzhK,EAAkE1tC,EAAlE0tC,MAAOi/D,EAA2D3sG,EAA3D2sG,UAAWuwH,EAAgDl9N,EAAhDk9N,KAAM3tB,EAA0CvvM,EAA1CuvM,WAAYC,EAA8BxvM,EAA9BwvM,WAAYH,EAAkBrvM,EAAlBqvM,cAEzDwuB,EAAc,2BACfjB,GADe,IAGlBM,KAAc,MAARA,EAAeA,EAAON,EAAqBM,KACjD3tB,WAA0B,MAAdA,EAAqBA,EAAaqtB,EAAqBrtB,WACnEC,WAA0B,MAAdA,EAAqBA,EAAaotB,EAAqBptB,aAGrE,OACE,cAAC,IAAD,yBACEwuB,IAAK7uB,EAAQ,MAAQ,OACjB0uB,GAFN,IAGElxH,UAAS,UAAKA,GACd0iG,cAAe,SAAC0uB,GACV1uB,GACFA,EAAc0uB,EAAOE,YAAc,GAAKF,EAAOE,YAAc,GAAKvwL,EAAM/6B,OAAS,IANvF,SASG+6B,EAAM/hC,KAAI,SAACwtK,EAAMtqK,GAChB,OACE,cAAC,IAAD,UACE,cAAC,EAAD,CAAasqK,KAAMA,KADHtqK,UAS5B+sO,EAAYhpI,aAAe,CACzBu8F,OAAO,EACPzhK,MAAO,GACPi/D,UAAW,GACXuwH,KAAM,KACN3tB,WAAY,KACZC,WAAY,KACZH,cAAe,SAACmvB,GAAD,OAAmB,OAS7B,IAAMqd,EAAc,SAAC77O,GAA6B,IAAD,EAC9Cm5K,EAAiDn5K,EAAjDm5K,KAAM2iE,EAA2C97O,EAA3C87O,aAAcC,EAA6B/7O,EAA7B+7O,WAAYT,EAAiBt7O,EAAjBs7O,aAClCD,EAAQ,CAAC,MAAO,MAAO,MAAO,OAAQ,QAAQlsP,SAASgqL,EAAKG,eAClE,EAAuDljD,oBAAS,GAAhE,mBAAO4lH,EAAP,KAA8BC,EAA9B,KACA,EAA4C7lH,oBAAS,GAArD,mBAAOw+E,EAAP,KAAuBC,EAAvB,KAEA,OACE,sBAAKloG,UAAU,+BAAf,UACE,eAAC2tI,EAAA,EAAD,CAAM3tI,UAAU,wBAAhB,UACE,gCACG0uI,GACC,cAACE,EAAA,EAAD,CAEE/uI,MAAO,CAAEltG,MAAO,OAAQwtG,OAAQ,QAASovI,UAAW,WACpDrvI,IAAKssE,EAAKE,QACV7iD,QAAS,WACPq+E,GAAkB,GACdinC,GAAcA,QAKtBT,GACA,cAACd,EAAA,EAAD,CAAU5tI,UAAU,cAAcH,MAAO,CAAEM,OAAQ,QAAnD,SACE,8BACE,qBAAKH,UAAS,0BAAqB,oBAAnC,SACE,qBAAKA,UAAU,iBAAf,SACE,cAAC,IAAD,CACEn0G,KACE2gL,EAAKG,cAAL,wBACWH,EAAKG,qBADhB,aACW,EAAoBz+K,eAC3B,2BASpB,oBACE2xG,MAAO,CACLQ,UAAW,MACXmvI,aAAc,MACdC,WAAY,MACZC,cAAe,SAGnB,eAAC9B,EAAA,EAAD,CAAU5tI,UAAU,YAAYH,MAAO,GAAvC,UACE,qBACEG,UAAU,qBACVH,MAAO,CACLC,QAAS,QACT6vI,aAAc,WACdC,SAAU,aACVC,SAAU,SACVC,UAAW,QACXlsI,WAAY,SARhB,SAWG4oE,EAAKC,SAASzmK,OAAS,GAAvB,UACMwmK,EAAKC,SAASr/E,UAAU,EAAG,IADjC,cAC0Co/E,EAAKC,SAASr/E,UACnDo/E,EAAKC,SAASzmK,OAAS,EACvBwmK,EAAKC,SAASzmK,OAAOA,SAEvBwmK,EAAKC,WAEX,qBACE5sE,MAAO,CACLC,QAAS,OACT6qE,eAAgB,WAChBz+K,SAAU,WACVm6O,IAAK,MACLG,KACEh6D,EAAKE,SAAmC,kBAAjBF,EAAKE,SAAwB0iE,GAAcT,EAC9D,MACAniE,EAAKE,SAAmC,kBAAjBF,EAAKE,UAAyB0iE,GAAcT,GACnE,MACA,OAER3uI,UAAU,uBAbZ,SAeGwsE,EAAKE,SAAmC,kBAAjBF,EAAKE,QAC3B,qCACE,cAAC6jB,EAAA,EAAO3mE,OAAR,CAAe5pB,UAAU,oBAAoB9oG,MAAM,UAAnD,SACE,cAAC,IAAD,CACED,KAAM,GACN4yH,QAAS,WACPpyH,OAAO09J,KAAP,UAAeqX,EAAKE,eAIzBiiE,GACC,cAACp+C,EAAA,EAAO3mE,OAAR,CACE5pB,UAAU,oBACV9oG,MAAM,UACN2oG,MAAO,CAAE0lC,WAAY,OAHvB,SAKE,cAAC,IAAD,CACEtuI,KAAM,GACN4yH,QAAS,WACPylH,GAAsB,QAK7BF,GACC,cAAC7+C,EAAA,EAAO3mE,OAAR,CACE5pB,UAAU,oBACV9oG,MAAM,UACN2oG,MAAO,CAAE0lC,WAAY,OAHvB,SAKE,cAAC,IAAD,CACEtuI,KAAM,GACN4yH,QAAS,WACPulH,EAAW5iE,EAAKqiE,gBAO1BO,GACE,cAAC7+C,EAAA,EAAO3mE,OAAR,CAAe5pB,UAAU,oBAAoB9oG,MAAM,UAAnD,SACE,cAAC,IAAD,CACED,KAAM,GACN4yH,QAAS,WACPulH,iBAShB,cAAC,EAAD,CACE5iE,KAAMA,EACNmiB,kBAAmB0gD,EACnBX,MAAOA,EACPD,6BAA8B,WAC5Ba,GAAsB,IAExBX,aAAcA,IAEf1mC,GACC,cAAC,IAAD,CACEuD,qBAAqB,EACrBC,gBAAiB,CAAEC,QAAS,CAAExoG,OAAQ,MACtCyoG,WAAU,OAAEn/B,QAAF,IAAEA,OAAF,EAAEA,EAAMC,SAClB0/B,QAAO,OAAE3/B,QAAF,IAAEA,OAAF,EAAEA,EAAME,QACf0/B,eAAgB,kBAAMlE,GAAkB,UAOnC+mC,O,kHChQT9vC,EAA2B,SAAC9rM,GAAW,IAAD,EAExC08O,EAOE18O,EAPF08O,qBACAzxP,EAME+U,EANF/U,WACA8sJ,EAKE/3I,EALF+3I,aAHF,EAQI/3I,EAJF+6L,gBAJF,SAKErqF,EAGE1wG,EAHF0wG,YALF,EAQI1wG,EAFF8wG,mBANF,SAOEpC,EACE1uG,EADF0uG,kBAEF,EAA8BonB,aAAY,SAACnsI,GAWzC,MAAO,CACL0e,MATIpd,GAAcyxP,EACVvzM,wCAAoDx/C,EAAOsB,GACxDA,EACHk+C,iCAA6Cx/C,EAAOsB,GAEpDk+C,eAA2Bx/C,GAKnC60K,WACEr1H,sBAAkCx/C,IAAUw/C,6BAAyCx/C,OAdnF0e,EAAR,EAAQA,MAAOm2J,EAAf,EAAeA,WAmBf,EAAoCpoC,mBAASzwG,KAAKD,OAAlD,mBAAO+rM,EAAP,KAAmBC,EAAnB,KAmBA,OAbAviH,qBAAU,WACHqvD,GALLkzD,EAAc/rM,KAAKD,SAQlB,CACD84I,EADC,OAEDx+J,QAFC,IAEDA,GAFC,UAEDA,EAAOwuG,eAFN,aAED,EAAgB77F,OAFf,OAGD1nB,QAHC,IAGDA,OAHC,EAGDA,EAAYiE,WAHX,OAIDjE,QAJC,IAIDA,OAJC,EAIDA,EAAYoD,eAJX,OAKDpD,QALC,IAKDA,OALC,EAKDA,EAAYsD,WALX,OAMDtD,QANC,IAMDA,OANC,EAMDA,EAAYwD,gBAIZ,sCACIuR,EAAMwuG,SAAW,cAAC,IAAD,CAAespC,UAAQ,EAACC,aAAY,OAAEA,QAAF,IAAEA,IAAgB,KACzE,wBAAC,IAAD,2BACM/3I,GADN,IAEEnU,IAAK4lO,EACL17F,UAAWyoC,EACXtyD,MACE6uF,EAAW/6L,EAAMksG,OAAS,cAAC,IAAD,CAAkBn0G,GAAG,+BAAkC,KAEnFy2G,QACExuG,EAAMwuG,WACO,OAAZupC,QAAY,IAAZA,OAAA,EAAAA,EAAc6+D,YACXvuM,EAAM4d,QAAO,SAACnK,GAAD,MAA+C,kBAApC,OAAOi8H,QAAP,IAAOA,OAAP,EAAOA,EAAc6+D,aAA+D,kBAApC,OAAO7+D,QAAP,IAAOA,OAAP,EAAOA,EAAc6+D,YACjF96L,EAAK86L,cAAL,OAAoB7+D,QAApB,IAAoBA,OAApB,EAAoBA,EAAc6+D,YADvB,OAET7+D,QAFS,IAETA,OAFS,EAETA,EAAc6+D,WAAWznN,SAAS2sB,EAAK86L,eAErDvuM,GACFsD,KAAI,SAACmQ,GACL,OAAO,2BACFA,GADL,IAEE/jB,GAAI+jB,EAAK8C,OACTte,MAAOwb,EAAK8C,OACZstF,MAAOpwF,EAAKsF,SACZkrF,WAAYxwF,EAAKsF,cAIvBsvF,YAAW,OACTA,QADS,IACTA,IACAn9G,cAAUuE,cAAc,CACtBC,GAAI,eAGR22G,kBAAiB,OAAEA,QAAF,IAAEA,IAAqB,KACxCoC,YAAaA,SAMrBg7F,EAAcl5F,aAAe,GAEdk5F,O,+BC/Gf,mHAEa6wC,EAA0B,eAACzuO,EAAD,uDAAW,GAAX,MAAmB,CACxDrkB,KAAMC,IACNI,QAASgkB,IAEE0uO,EAA6B,SAAC/0O,EAAUshB,GAAX,MAAsB,CAC9Dt/B,KAAMC,IACNI,QAAS,CACP2d,WACAshB,WAGS0zN,EAAyB,eACpCnxP,EADoC,uDAC5B,CAAE+U,aAAc,QAASsL,YAAa,KADV,MAEhC,CACJliB,KAAMC,IACNI,QAAS,CACPwB,Y,2FCdJ,SAASwnN,EACP18M,EACAsmP,GAKA,aAAmDA,QAAnD,IAAmDA,IAAqB,GAAhEC,EAAR,EAAQA,kBAAmB76N,EAA3B,EAA2BA,oBAE3B,EAAoCk0G,oBAAS,GAA7C,mBAAOooC,EAAP,KAAmBw+E,EAAnB,KACA,EAAgC5mH,mBAAmB,MAAnD,mBAAOp/H,EAAP,KAAiBimP,EAAjB,KACA,EAA0B7mH,mBAAc,MAAxC,mBAAO1qI,EAAP,KAAcwxP,EAAd,KAEMzjP,EAAgB,SAAC0jP,GACrB,IAAMC,EAASjrJ,YAAqBgrJ,GAAO/6N,YAAS+6N,GAAO,KAC3DF,EAAYG,GACZJ,GAAc,GACV96N,GACFA,EAAoBk7N,IAIlBrjP,EAAc,SAACrO,GACnBwxP,EAASxxP,GACTsxP,GAAc,GACVD,GACFA,EAAkBrxP,IAUtB,MAAO,CAAE8yK,aAAYxnK,WAAUtL,QAAOunN,aANjB,SAACnsL,GACpBk2N,GAAc,GACVlpJ,YAAkBhtE,GAAS/sB,EAAY,IAAI++F,MAAM,qBAChDtiG,EAAQswB,EAAQ,CAAErtB,gBAAeM,oB,4uBCkBpCsjP,GAAE,+kBACHC,GACAC,GACAC,GACAC,GACAC,GACAC,GACAC,GACAC,GACAC,GACAC,GACAC,GACAC,GACAC,GACAC,GACAC,GACAC,GACAC,GACAC,GACAC,GACAC,GACAC,GACAC,GACAC,GACAC,GACAC,GACAC,GACAC,GACAC,GACAC,GACAC,GACAC,GACAC,GACAC,GACAC,IACAC,IACAC,IACAC,IACAC,IACAC,IACAC,IACAC,IACAC,IACAC,IACAC,IACAC,IACAH,IACAI,IACAC,IACAC,IAwCU,GAAExxP,SAAQ,UAAC0U,IAAIs5M,6BAAL,QAA8B,KArCnC,SAAChtH,GAEnB,IADA,IAAIywJ,EAAS,GACb,MAA2B1tJ,OAAOo7F,QAAQn+F,GAA1C,eAAgD,CAA3C,0BAAOhkG,EAAP,KAAYyU,EAAZ,KACkB,kBAAVA,IACTggP,EAAOz0P,GAAOyU,EACX+uF,QAAQ,iCAAkC,aAC1CA,QAAQ,iCAAkC,aAC1CA,QAAQ,+CAAgD,YACxDA,QAAQ,6BAA8B,YAEtCA,QAAQ,mBAAoB,kBAC5BA,QAAQ,iBAAkB,eAC1BA,QAAQ,gBAAiB,eACzBA,QAAQ,kBAAmB,iBAC3BA,QAAQ,kBAAmB,iBAC3BA,QAAQ,oBAAqB,mBAC7BA,QAAQ,qBAAsB,sBAE9BA,QAAQ,mBAAoB,kBAC5BA,QAAQ,iBAAkB,eAC1BA,QAAQ,gBAAiB,eACzBA,QAAQ,kBAAmB,iBAC3BA,QAAQ,kBAAmB,iBAC3BA,QAAQ,oBAAqB,mBAC7BA,QAAQ,qBAAsB,sBAE9BA,QAAQ,mBAAoB,kBAC5BA,QAAQ,iBAAkB,eAC1BA,QAAQ,gBAAiB,eACzBA,QAAQ,kBAAmB,iBAC3BA,QAAQ,kBAAmB,iBAC3BA,QAAQ,oBAAqB,mBAC7BA,QAAQ,qBAAsB,uBAErC,OAAOixJ,EAGqDC,CAAYlD,IAAMA,G,+gBC1F1EmD,GAAE,+kBACHC,IACAC,IACAlD,IACAC,IACAC,IACAC,IACAC,IACAC,IACAC,IACAC,IACAC,IACAC,IACAC,IACAC,IACAC,IACAC,IACAC,IACAC,IACAC,IACAC,IACAC,IACAC,IACAC,IACAC,IACAC,IACAC,IACAC,IACAC,IACAC,IACAC,IACAC,IACAC,IACAC,IACAC,IACAoB,IACAlB,IACAC,IACAC,IACAC,IACAC,IACAC,IACAC,IACAC,IACAC,IACAC,IACAH,IACAI,IACAC,IACAC,IAiBU,GAAExxP,SAAQ,UAAC0U,IAAIs5M,6BAAL,QAA8B,KAdnC,SAAChtH,GAEnB,IADA,IAAIywJ,EAAS,GACb,MAA2B1tJ,OAAOo7F,QAAQn+F,GAA1C,eAAgD,CAA3C,0BAAOhkG,EAAP,KAAYyU,EAAZ,KACkB,kBAAVA,IACTggP,EAAOz0P,GAAOyU,EACX+uF,QAAQ,wCAAyC,YACjDA,QAAQ,yBAA0B,YAClCA,QAAQ,qCAAsC,WAC9CA,QAAQ,wBAAyB,WACjCA,QAAQ,UAAW,aAE1B,OAAOixJ,EAGqDC,CAAYC,IAAMA,G,QC5F1EI,GAAe,CACnBvD,GAAG,2BAAMwD,GAAeC,IACxBN,GAAG,2BAAMO,GAAeC,KAIpBC,GAAUC,0BAEVC,GAAsB,SAAC,GAAkB,IAAD,EAAf7tP,EAAe,EAAfA,SAEvB8tP,EAAgB,UAAG/8O,aAAaC,QAAQ,eAAxB,QAAmC,KACzD,EAA4B8xH,mBAASgrH,GAArC,mBAAO9sJ,EAAP,KAAe8wE,EAAf,KACA,EAAgChvC,mBAASwqH,GAAaQ,IAAtD,mBAAOC,EAAP,KAAiBC,EAAjB,KAyBA,OANAC,YAASC,EAAkBC,EAAWC,EAASC,EAAeC,GAE9DC,IAAKC,KAAK,CACR,QAAQ,2BAAMC,GAAkBC,KAIhC,eAACf,GAAQgB,SAAT,CAAkB3hP,MAAO,CAAEg0F,SAAQ4tJ,eAjBd,SAACC,GACtB/8E,EAAU+8E,GACVb,EAAYV,GAAauB,IAEzB99O,aAAaa,QAAQ,OAAQi9O,KAa7B,SACE,eAAC,IAAD,CAAc7tJ,OAAQA,EAAQ+sJ,SAAUA,EAAUe,cAAc,KAAhE,SACE,eAAC/uP,EAAA,EAAD,UAAqBC,U,8BCpE7B,mHAEa+uP,EAAyB,eAACn0O,EAAD,uDAAW,GAAX,MAAmB,CACvDrkB,KAAMC,IACNI,QAASgkB,IAEEo0O,EAA4B,SAACz6O,EAAUshB,GAAX,MAAsB,CAC7Dt/B,KAAMC,IACNI,QAAS,CACP2d,WACAshB,WAGSo5N,EAAwB,eACnC72P,EADmC,uDAC3B,CAAE+U,aAAc,QAASsL,YAAa,KADX,MAE/B,CACJliB,KAAMC,IACNI,QAAS,CACPwB,Y,+MCyEE0b,EAASpd,YAAgB,CAC7Bs5G,KAlFW,WAAyB,IAAxB35G,EAAuB,uDAAf,GAAIC,EAAW,uCACnC,OAAQA,EAAOC,MAEb,KAAKC,IACH,MAA4BF,EAAOM,QAA3B2d,EAAR,EAAQA,SAAUshB,EAAlB,EAAkBA,MACZrf,EAAQ,eAAQngB,GAQtB,OAPAw/B,EAAMrR,SAAQ,SAACilB,GACbjzB,EAASizB,GAAT,yBACE/kB,YAAY,GACTnQ,EAASk1B,IAFd,IAGEj9B,aAAa,OAGVgK,EAIT,QACE,OAAOngB,IAiEXw/B,MA5DY,WAAyB,IAAxBx/B,EAAuB,uDAAf,GAAIC,EAAW,uCACpC,OAAQA,EAAOC,MAEb,KAAKC,IACH,IAAQq/B,EAAUv/B,EAAOM,QAAjBi/B,MACR,OAAOs6E,IAAMt6E,GAIf,QACE,OAAOx/B,IAmDX47G,eA7CqB,WAA4B,IAA3B57G,EAA0B,wDAAXC,EAAW,uCAChD,OAAQA,EAAOC,MACb,KAAKC,IACH,OAAO,EAET,KAAKA,IACL,KAAKA,IACH,OAAO,EAET,QACE,OAAOH,IAoCX+9H,kBA/BwB,WAA4B,IAA3B/9H,EAA0B,wDAAXC,EAAW,uCACnD,OAAQA,EAAOC,MACb,KAAKC,IACH,OAAO,EAET,QACE,OAAOH,IA0BX87G,kBArBwB,WAA2B,IAA1B97G,EAAyB,uDAAjB,KAAMC,EAAW,uCAClD,OAAQA,EAAOC,MACb,KAAKC,IACH,IAAQ4B,EAAU9B,EAAOM,QAAjBwB,MACR,OAAOA,EAET,KAAK5B,IACL,KAAKA,IACH,OAAO,KAET,QACE,OAAOH,IAWXuzC,aAGa91B,MAGR,IAAMhb,EAAc,SAACzC,GAAD,OAAWA,EAAM2c,eAAec,QAI9Co7O,EAAgB,SAAC74P,GAAD,OAAWyC,EAAYzC,GAAOw/B,MAAMxd,KAAI,SAAC5T,GAAD,OAD7C,SAACpO,EAAOozC,GAAR,OAAoB3wC,EAAYzC,GAAO25G,KAAKvmE,GACS0lN,CAAS94P,EAAOoO,OAGhF2qP,EAAuB,SAAC/4P,GAAD,OAAWyC,EAAYzC,GAAO47G,gBACrDo9I,EAAwB,SAACh5P,GAAD,OAAWyC,EAAYzC,GAAO+9H,oB,iCC/GnE,kHAMak7H,EAAmB,IAAI14O,IAAOC,OACzC,oBACA,GACA,CAAEC,YAAa,sBAEJ0hB,EAAoB,IAAI5hB,IAAOG,MAAMu4O,GAErCC,EAAe,SAACviP,GAAD,gBAAcA,EAAM4mB,QAApB,YAA+B5mB,EAAMse,OAArC,YAA+Cte,EAAM8iB,aAEpEyS,EAAuB,IAAI3rB,IAAOC,OAC7C,wBACA,GACA,CAAEC,YAAay4O,IAEJ52N,EAAwB,IAAI/hB,IAAOG,MAAMwrB,I,6BCpBtD,mHAEaitN,EAAsB,eAAC50O,EAAD,uDAAW,GAAX,MAAmB,CACpDrkB,KAAMC,IACNI,QAASgkB,IAEE60O,EAAyB,SAACl7O,EAAUshB,GAAX,MAAsB,CAC1Dt/B,KAAMC,IACNI,QAAS,CACP2d,WACAshB,WAGS65N,EAAqB,eAACt3P,EAAD,uDAAS,CAAE+U,aAAc,QAASsL,YAAa,KAA/C,MAA0D,CAC1FliB,KAAMC,IACNI,QAAS,CACPwB,Y,uCCXW0kL,IALD,CACZ0iD,iBAAkB,sBAClB94M,iBAAkB,wB,6BCILo2J,IAND,CACZ6nD,kBAAmB,sBACnBgrB,kBAAmB,sBACnBl6B,UAAW,yB,wCCHb,yEAGarL,EAA6B,SAAC7sM,GACzC,IAAI8sM,EACA70L,EACAC,EACA80L,EACAD,EACAE,EACAC,EAAcltM,EAASi6K,kBACvBQ,EAAWC,IAAIC,SAAShnL,MAAMu5M,GAC9BnzB,EAAuBU,EAASG,YACpC,GAAsB,KAAlB56K,EAAS4tK,MAAc,CACzB,IAAM8R,EAASv/C,IAAEk7C,QAAQC,eAAevB,EAAgBI,aACxDliK,EAAWynK,EAAO0E,IAClBlsK,EAAYwnK,EAAO2E,IACnByoB,EAAc,OACT,GAAsB,KAAlB9sM,EAAS4tK,MAAc,CAChC,IAAMykE,EAAmB,OAAGt4D,QAAH,IAAGA,OAAH,EAAGA,EAAiBI,YACvCuF,EACoB,cAAxB3F,EAAgB/gM,KACZmnJ,IAAEk7C,QAAQW,gBAAgBq2D,GAC1BlyG,IAAEk7C,QAAQW,gBAAgBq2D,EAAoB,IACpDp6N,EAAWynK,EAAO,GAAG0E,IACrBlsK,EAAYwnK,EAAO,GAAG2E,IACtB2oB,EAAYttB,EAAO,GAAG0E,IACtB2oB,EAAartB,EAAO,GAAG2E,IACvByoB,EAAc,OACT,GAAsB,KAAlB9sM,EAAS4tK,MAAc,CAChC,IAEI8R,EAFE2yD,EAAmB,OAAGt4D,QAAH,IAAGA,OAAH,EAAGA,EAAiBI,YAIjB,cAAxBJ,EAAgB/gM,KAClB0mM,EAASv/C,IAAEk7C,QAAQW,gBAAgBq2D,GAC1B53D,aAAoB63D,qBAC7B73D,EAAS83D,WAAWtrO,SAAQ,SAACxlB,GAC3B,IAAM64L,EAAe74L,EAAEm5L,YAErB8E,EADmB,eAAV,OAAPpF,QAAO,IAAPA,OAAA,EAAAA,EAASthM,MACFmnJ,IAAEk7C,QAAQW,gBAAgB1B,EAAQH,aAElCh6C,IAAEk7C,QAAQW,gBAAgB1B,EAAQH,YAAY,OAI3DuF,EAASv/C,IAAEk7C,QAAQW,gBAAgBq2D,EAAoB,IAGzDvlC,EAAcptB,EAAO59K,OAAS,EAC9BmrM,EAAYvtB,EACT5kL,KAAI,SAAC03O,EAAQx0O,GACZ,MAAM,GAAN,OAAUA,EAAQ,EAAlB,YAAuBw0O,EAAOpuD,IAA9B,YAAqCouD,EAAOnuD,QAE7CtrJ,KAAK,KAGV,MAAO,CAAE+zK,cAAa50L,YAAW60L,aAAY90L,WAAU+0L,YAAWC,YAAWC,iB,gCCzD/E,mHAEaulC,EAA8B,eAACp1O,EAAD,uDAAW,GAAI6uB,EAAf,uCAAwBC,EAAxB,6CAAqC,CAC9EnzC,KAAMC,IACNI,QAAS,CAAEgkB,UAAS6uB,UAASC,aAElBumN,EAAiC,SAAC17O,EAAUshB,GAAX,MAAsB,CAClEt/B,KAAMC,IACNI,QAAS,CACP2d,WACAshB,WAGSq6N,EAA6B,eACxC93P,EADwC,uDAChC,CAAE+U,aAAc,QAASsL,YAAa,KADN,MAEpC,CACJliB,KAAMC,IACNI,QAAS,CACPwB,Y,6BClBJ,mHAEa+3P,EAAsB,eAACv1O,EAAD,uDAAW,GAAI6uB,EAAf,uDAAoD,KAApD,MAA8D,CAC/FlzC,KAAMC,IACNI,QAAS,CAAEgkB,UAAS6uB,aAET2mN,EAAyB,SAAC77O,EAAUshB,GAAX,MAAsB,CAC1Dt/B,KAAMC,IACNI,QAAS,CACP2d,WACAshB,WAGSw6N,EAAqB,eAACj4P,EAAD,uDAAS,CAAE+U,aAAc,QAASsL,YAAa,KAA/C,MAA0D,CAC1FliB,KAAMC,IACNI,QAAS,CACPwB,Y,6BChBJ,mHAEak4P,EAA6B,iBAAO,CAC/C/5P,KAAMC,IACNI,QAAS,KAEE25P,EAAgC,SAACh8O,EAAUshB,GAAX,MAAsB,CACjEt/B,KAAMC,IACNI,QAAS,CACP2d,WACAshB,WAGS26N,EAA4B,eAACp4P,EAAD,uDAAS,CAAE+U,aAAc,QAASsL,YAAa,KAA/C,MAA0D,CACjGliB,KAAMC,IACNI,QAAS,CACPwB,Y,6BChBJ,mHAEaq4P,EAA6B,SAACtlN,GAAD,MAAY,CACpD50C,KAAMC,IACNI,QAASu0C,IAEEulN,EAAgC,SAACn8O,EAAUshB,GAAX,MAAsB,CACjEt/B,KAAMC,IACNI,QAAS,CACP2d,WACAshB,WAGS86N,EAA4B,eAACv4P,EAAD,uDAAS,CAAE+U,aAAc,QAASsL,YAAa,KAA/C,MAA0D,CACjGliB,KAAMC,IACNI,QAAS,CACPwB,Y,iCCTW0kL,IAPD,CACZwlD,uBAAwB,uBACxBF,yBAA0B,yBAC1BI,4BAA6B,4BAC7BouB,kBAAmB,+B,iNCgOf5Y,EAAoBthP,YAAgB,CACxCs5G,KA5NW,WAAyB,IAAxB35G,EAAuB,uDAAf,GAAIC,EAAW,uCACnC,OAAQA,EAAOC,MACb,KAAKkgB,IACH,MAAO,GAGT,KAAKjgB,IACH,MAA4BF,EAAOM,QAA3B2d,EAAR,EAAQA,SAAUshB,EAAlB,EAAkBA,MACZrf,EAAQ,eAAQngB,GAStB,OARAw/B,EAAMrR,SAAQ,SAAC4f,GACb5tB,EAAS4tB,GAAT,qCACE1f,YAAY,GACTruB,EAAM+tC,IACN7vB,EAAS6vB,IAHd,IAIE53B,aAAa,OAGVgK,EAGT,KAAKhgB,IACH,MAA2BF,EAAOM,QAA1B0tC,EAAR,EAAQA,MAAO/K,EAAf,EAAeA,QACT/iB,EAAW69F,IAAKh+G,EAAOiuC,GAM7B,OALA9tB,EAAS+iB,EAAQ6K,cAAjB,uCACK/tC,EAAMiuC,IACN/K,GAFL,IAGE/sB,aAAa,IAERgK,EAIT,KAAKhgB,IACH,IAAM+iC,EAAUjjC,EAAOM,QACjB4f,EAAQ,eAAQngB,GAMtB,OALAmgB,EAAS+iB,EAAQ6K,cAAjB,yBACE1f,YAAY,GACT6U,GAFL,IAGE/sB,aAAa,IAERgK,EAIT,KAAKhgB,IACH,IAAQ8tC,EAAUhuC,EAAOM,QAAjB0tC,MACR,OAAIjuC,EAAMiuC,GACD+vE,IAAKh+G,EAAOiuC,GAEdjuC,EAIT,KAAKG,IACH,IAAQ4tC,EAAiB9tC,EAAOM,QAAxBwtC,aACR,OAAOiwE,IAAKh+G,EAAO+tC,GAIrB,QACE,OAAO/tC,IAiKXw/B,MA5JY,WAAyB,IAAxBx/B,EAAuB,uDAAf,GAAIC,EAAW,uCACpC,OAAQA,EAAOC,MACb,KAAKkgB,IACH,MAAO,GAGT,KAAKjgB,IACH,IAAQq/B,EAAUv/B,EAAOM,QAAjBi/B,MACR,OAAOs6E,IAAMt6E,GAGf,KAAKr/B,IACH,MAA2BF,EAAOM,QAA1B0tC,EAAR,EAAQA,MAAO/K,EAAf,EAAeA,QACf,OAAOljC,EAAMgiB,KAAI,SAAC+rB,GAAD,OACfA,IAAiBE,EAAQ/K,EAAQ6K,aAAeA,KAIpD,KAAK5tC,IACH,IAAQ4tC,EAAiB9tC,EAAOM,QAAxBwtC,aACR,OAAO/tC,EAAMs8B,QAAO,SAACk+N,GAAD,OAAuBA,IAAsBzsN,KAInE,KAAK5tC,IACH,IAAM+iC,EAAUjjC,EAAOM,QACvB,MAAM,GAAN,mBAAWP,GAAX,CAAkBkjC,EAAQ6K,eAI5B,KAAK5tC,IACH,IAAQ8tC,EAAUhuC,EAAOM,QAAjB0tC,MACR,OAAOjuC,EAAMs8B,QAAO,SAACk+N,GAAD,OAAuBA,IAAsBvsN,KAInE,QACE,OAAOjuC,IAwHXwvP,mBAlHyB,WAA4B,IAA3BxvP,EAA0B,wDAAXC,EAAW,uCACpD,OAAQA,EAAOC,MACb,KAAKkgB,IACH,OAAO,EAET,KAAKjgB,IACH,OAAO,EAET,KAAKA,IACL,KAAKA,IACH,OAAO,EAET,QACE,OAAOH,IAsGXo+G,SAjGe,WAA4B,IAA3Bp+G,EAA0B,wDAAXC,EAAW,uCAC1C,OAAQA,EAAOC,MACb,KAAKkgB,IACH,OAAO,EAET,KAAKjgB,IACH,OAAO,EAET,KAAKA,IACL,KAAKA,IACH,OAAO,EAET,QACE,OAAOH,IAqFXs+G,WAhFiB,WAA4B,IAA3Bt+G,EAA0B,wDAAXC,EAAW,uCAC5C,OAAQA,EAAOC,MACb,KAAKkgB,IACH,OAAO,EAET,KAAKjgB,IACH,OAAO,EAET,KAAKA,IACL,KAAKA,IACH,OAAO,EAET,QACE,OAAOH,IAoEXyvP,sBA/D4B,WAA2B,IAA1BzvP,EAAyB,uDAAjB,KAAMC,EAAW,uCACtD,OAAQA,EAAOC,MACb,KAAKkgB,IACH,OAAO,KAET,KAAKjgB,IACH,IAAQ4B,EAAU9B,EAAOM,QAAjBwB,MACR,OAAOA,EAET,KAAK5B,IACL,KAAKA,IACH,OAAO,KAET,QACE,OAAOH,IAkDXw+G,YA7CkB,WAA2B,IAA1Bx+G,EAAyB,uDAAjB,KAAMC,EAAW,uCAC5C,OAAQA,EAAOC,MACb,KAAKkgB,IACH,OAAO,KAET,KAAKjgB,IACH,IAAQ4B,EAAU9B,EAAOM,QAAjBwB,MACR,OAAOA,EAET,KAAK5B,IACL,KAAKA,IACH,OAAO,KAET,QACE,OAAOH,IAgCX0+G,cA3BoB,WAA2B,IAA1B1+G,EAAyB,uDAAjB,KAAMC,EAAW,uCAC9C,OAAQA,EAAOC,MACb,KAAKkgB,IACH,OAAO,KAET,KAAKjgB,IACH,IAAQ4B,EAAU9B,EAAOM,QAAjBwB,MACR,OAAOA,EAET,KAAK5B,IACL,KAAKA,IACH,OAAO,KAET,QACE,OAAOH,MAgBE2hP,MAGR,IAAMl/O,EAAc,SAACzC,GAAD,OAAWA,EAAMoe,UAAUujO,mBAGzC8Y,EAAsB,SAACz6P,EAAO+tC,GACzC,OAAOtrC,EAAYzC,GAAO25G,KAAK5rE,IAIpB2sN,EAAoC,SAAC16P,EAAO6tC,EAASC,GAAjB,OAFT,SAAC9tC,GAAD,OACtCyC,EAAYzC,GAAOw/B,MAAMxd,KAAI,SAAC5T,GAAD,OAAQqsP,EAAoBz6P,EAAOoO,MAEhEusP,CAAyB36P,GAAOs8B,QAC9B,SAAC4G,GAAD,OAAaA,EAAQ2K,UAAYA,GAAW3K,EAAQ4K,aAAeA,MAI1D8sN,EAA8B,SAAC56P,GAAD,OAAWyC,EAAYzC,GAAOwvP,qB,sIC1K1DqL,iBAxEiB,SAACxkP,GAC/B,MAAuFA,EAA/E0uG,yBAAR,MAA4B,EAA5B,EAA+BL,EAAwDruG,EAAxDquG,MAA/B,EAAuFruG,EAAjD4uG,kCAAtC,MAAmE,SAACtuG,GAAD,OAAW,MAA9E,EACM/F,EAAQu7H,aAAY,SAACnsI,GAAD,OAAWA,KAC/BwoB,EAAWipI,cACXhoJ,EAAOG,cACP4T,EAAkB0qO,IAAgDt3O,GAGxE,EAAoC67H,mBAASzwG,KAAKD,OAAlD,mBAAO+rM,EAAP,KAAmBC,EAAnB,KAKAviH,qBAAU,WACW,MAAfd,EAAM/tG,YAAgCrI,GAAfo2G,EAAM/tG,OAA4C,GAAtB+tG,EAAM/tG,MAAMqS,QACjE07F,EAAMkB,SAASb,KAEhB,CAACL,EAAM/tG,QAGV6uG,qBAAU,WACH0iI,IAAwDt3O,IAC3D4X,EAASsyO,SAEV,IAGHt1I,qBAAU,WACH0iI,IAAuDt3O,IAlB5Dm3N,EAAc/rM,KAAKD,SAqBlB,CAACmsN,IAAuDt3O,KAE3D40G,qBAAU,WACJT,GACFU,EAAcV,KAEf,CAACmjI,IAAuDt3O,GAAQm0G,IAEnE,IAAMU,EAAgB,SAAC9uG,GACrB+tG,EAAMkB,SAASjvG,GACXsuG,GACFA,EAA2BtuG,IAG/B,OACE,wBAAC,IAAD,2BACMN,GADN,IAEEhI,KAAK,kBACLD,GAAI,kBACJlM,IAAK4lO,EACL17F,UAAW87G,IAAuDt3O,GAClE2xG,MAAO,cAAC,IAAD,CAAkBn0G,GAAG,4BAC5By2G,QAASrnG,EAAgBwE,KAAI,SAAC4xK,GAAQ,IAAD,EACnC,OAAO,2BACFA,GADL,IAEExlL,GAAIwlL,EAAG3qD,gBACPtyH,MAAOi9K,EAAG3qD,gBACVp6H,KACE,cAAC,IAAD,CACEA,KAAM+kL,EAAGhC,sBACT13K,MAAK,UAAE05K,EAAG1M,iCAAL,aAAkC54K,IAG3Ci0G,MAAO,cAAC,IAAD,CAAkBn0G,GAAE,kCAA6BwlL,EAAG3qD,mBAC3DtmB,WAAYl5G,EAAK0E,cAAc,CAAEC,GAAI,2BAA6BwlL,EAAG3qD,8B,uEC/E/E,mHAEa8xH,EAA4B,eAACx2O,EAAD,uDAAW,GAAX,MAAmB,CAC1DrkB,KAAMC,IACNI,QAASgkB,IAEEy2O,EAA+B,SAC1C98O,EACAshB,EACAuG,EACAgB,EACAC,EACAE,EACAC,GAP0C,MAQtC,CACJjnC,KAAMC,IACNI,QAAS,CACP2d,WACAshB,QACAuG,aACAgB,gBACAC,aACAE,iBACAC,iBAGS8zN,EAA2B,eAACl5P,EAAD,uDAAS,CAAE+U,aAAc,QAASsL,YAAa,KAA/C,MAA0D,CAChGliB,KAAMC,IACNI,QAAS,CACPwB,Y,6BC7BJ,mHAEaojO,EAAyB,SAAC9wL,GAAD,MAAc,CAClDn0C,KAAMC,IACNI,QAAS8zC,IAEE+wL,EAA4B,SAAClnN,EAAUshB,GAAX,MAAsB,CAC7Dt/B,KAAMC,IACNI,QAAS,CACP2d,WACAshB,WAGS6lM,EAAwB,eAACtjO,EAAD,uDAAS,CAAE+U,aAAc,QAASsL,YAAa,KAA/C,MAA0D,CAC7FliB,KAAMC,IACNI,QAAS,CACPwB,Y,6BChBJ,mHAEam5P,EAAkC,SAAC7mN,GAAD,MAAc,CAC3Dn0C,KAAMC,IACNI,QAAS8zC,IAEE8mN,EAAqC,SAACj9O,EAAUshB,GAAX,MAAsB,CACtEt/B,KAAMC,IACNI,QAAS,CACP2d,WACAshB,WAGS47N,EAAiC,eAC5Cr5P,EAD4C,uDACpC,CAAE+U,aAAc,QAASsL,YAAa,KADF,MAExC,CACJliB,KAAMC,IACNI,QAAS,CACPwB,Y,6BClBJ,mHAEas5P,EAA+B,iBAAO,CACjDn7P,KAAMC,IACNI,QAAS,KAEE+6P,EAAkC,SAACp9O,EAAUshB,GAAX,MAAsB,CACnEt/B,KAAMC,IACNI,QAAS,CACP2d,WACAshB,WAGS+7N,EAA8B,eACzCx5P,EADyC,uDACjC,CAAE+U,aAAc,QAASsL,YAAa,KADL,MAErC,CACJliB,KAAMC,IACNI,QAAS,CACPwB,Y,6BClBJ,mHAEay5P,EAA4B,eAACj3O,EAAD,uDAAW,GAAX,MAAmB,CAC1DrkB,KAAMC,IACNI,QAASgkB,IAEEk3O,EAA+B,SAACv9O,EAAUshB,GAAX,MAAsB,CAChEt/B,KAAMC,IACNI,QAAS,CACP2d,WACAshB,WAGSk8N,EAA2B,eAAC35P,EAAD,uDAAS,CAAE+U,aAAc,QAASsL,YAAa,KAA/C,MAA0D,CAChGliB,KAAMC,IACNI,QAAS,CACPwB,Y,6BChBJ,mHAEa45P,EAA4B,SAACtmN,GAAD,MAAkB,CACzDn1C,KAAMC,IACNI,QAAS80C,IAEEumN,EAA+B,SAAC19O,EAAUshB,GAAX,MAAsB,CAChEt/B,KAAMC,IACNI,QAAS,CACP2d,WACAshB,WAGSq8N,EAA2B,eAAC95P,EAAD,uDAAS,CAAE+U,aAAc,QAASsL,YAAa,KAA/C,MAA0D,CAChGliB,KAAMC,IACNI,QAAS,CACPwB,Y,6BChBJ,qJAEa+5P,EAA8B,SAAChmN,EAAUC,GAAX,MAA8B,CACvE71C,KAAMC,IACNI,QAAS,CAAEu1C,WAAUC,mBAEVgmN,EAAiC,SAAC79O,EAAUshB,GAAX,MAAsB,CAClEt/B,KAAMC,IACNI,QAAS,CACP2d,WACAshB,WAGSw8N,EAA6B,eACxCj6P,EADwC,uDAChC,CAAE+U,aAAc,QAASsL,YAAa,KADN,MAEpC,CACJliB,KAAMC,IACNI,QAAS,CACPwB,WAGSk6P,EAAsB,iBAAO,CACxC/7P,KAAMC,IACNI,QAAS,M,4NC6DI8/C,EAPMhgD,YAAgB,CACnCs5G,KAxEW,WAAyB,IAAxB35G,EAAuB,uDAAf,GAAIC,EAAW,uCACnC,OAAQA,EAAOC,MAEb,KAAKC,IACH,MAA4BF,EAAOM,QAA3B2d,EAAR,EAAQA,SAAUshB,EAAlB,EAAkBA,MACZrf,EAAW,GAUjB,OATAqf,EAAMrR,SAAQ,SAAC/f,GACb+R,EAAS/R,GAAT,qCACEigB,YAAY,EACZ+9F,cAAc,GACXpsH,EAAMoO,IACN8P,EAAS9P,IAJd,IAKE+H,aAAa,OAGVgK,EAIT,QACE,OAAOngB,IAqDXw/B,MAhDY,WAAyB,IAAxBx/B,EAAuB,uDAAf,GAAIC,EAAW,uCACpC,OAAQA,EAAOC,MAEb,KAAKC,IACH,IAAQq/B,EAAUv/B,EAAOM,QAAjBi/B,MACR,OAAOs6E,IAAMt6E,GAIf,QACE,OAAOx/B,IAuCXkoI,YAlCkB,WAA4B,IAA3BloI,EAA0B,wDAAXC,EAAW,uCAC7C,OAAQA,EAAOC,MACb,KAAKC,IACH,OAAO,EAET,KAAKA,IACL,KAAKA,IACH,OAAO,EAET,QACE,OAAOH,IAyBXmoI,eApBqB,WAA2B,IAA1BnoI,EAAyB,uDAAjB,KAAMC,EAAW,uCAC/C,OAAQA,EAAOC,MACb,KAAKC,IACH,IAAQ4B,EAAU9B,EAAOM,QAAjBwB,MACR,OAAOA,EAET,KAAK5B,IACL,KAAKA,IACH,OAAO,KAET,QACE,OAAOH,M,6CC2fPk8P,EAAmB77P,YAAgB,CACvCs5G,KAnjBW,WAAyB,IAAxB35G,EAAuB,uDAAf,GAAIC,EAAW,uCACnC,OAAQA,EAAOC,MACb,KAAKkgB,IACH,MAAO,GAGT,KAAKjgB,IACL,KAAKA,IACH,MAA4BF,EAAOM,QAA3B2d,EAAR,EAAQA,SAAUshB,EAAlB,EAAkBA,MACZrf,EAAQ,eAAQngB,GAUtB,OATAw/B,EAAMrR,SAAQ,SAACo0B,GACbpiC,EAASoiC,GAAT,qCACEl0B,YAAY,EACZ89F,aAAa,GACVnsH,EAAMuiD,IACNrkC,EAASqkC,IAJd,IAKEpsC,aAAa,OAGVgK,EAGT,KAAKhgB,IACH,MAA8BF,EAAOM,QAA7B0tC,EAAR,EAAQA,MAAOoU,EAAf,EAAeA,WACTliC,EAAW69F,IAAKh+G,EAAOiuC,GAO7B,OANA9tB,EAASkiC,EAAWE,OAApB,qCACE4pE,aAAa,GACVnsH,EAAMiuC,IACNoU,GAHL,IAIElsC,aAAa,IAERgK,EAGT,KAAKhgB,IACH,IAAMkiD,EAAapiD,EAAOM,QAC1B,OAAO,2BACFP,GADL,kBAEGqiD,EAAWE,MAFd,qCAGI4pE,aAAa,GACVnO,IAAKh+G,EAAMqiD,EAAWE,OAAQ,CAAC,mBAC/By7D,IAAK37D,EAAY,CAAC,mBALzB,IAMIlsC,aAAa,MAMnB,KAAKhW,IACH,IAAMkiD,EAAapiD,EAAOM,QACpB4f,EAAQ,eAAQngB,GAOtB,OANAmgB,EAASkiC,EAAWE,OAApB,yBACE4pE,aAAa,EACb99F,YAAY,GACTg0B,GAHL,IAIElsC,aAAa,IAERgK,EAET,KAAKhgB,IACH,IAAMkiD,EAAapiD,EAAOM,QAC1B,OAAO,2BACFP,GADL,kBAEGqiD,EAAWE,MAFd,qCAGI4pE,aAAa,GACVnsH,EAAMqiD,EAAWE,QAJxB,IAKIE,cAAeziD,EAAMqiD,EAAWE,QAC7BF,GANP,IAOIlsC,aAAa,MAMnB,KAAKhW,IACH,IAAQ8tC,EAAUhuC,EAAOM,QAAjB0tC,MACR,OAAIjuC,EAAMiuC,GACD+vE,IAAKh+G,EAAOiuC,GAEdjuC,EAET,KAAKG,IACH,IAAQsiD,EAAkBxiD,EAAOM,QAAzBkiD,cACR,OAAO,2BACFziD,GADL,kBAEGyiD,EAAcF,MAFjB,qCAGI4pE,aAAa,GACVnO,IAAKh+G,EAAMyiD,EAAcF,OAAQ,CAAC,mBAClCE,GALP,IAMItsC,aAAa,MAMnB,KAAKhW,IACH,IAAQgf,EAASlf,EAAOM,QAAhB4e,KACR,OAAO6+F,IAAKh+G,EAAOmf,EAAK3a,MAAM,MAIhC,KAAKrE,IACH,IAAMoiD,EAAQtiD,EAAOM,QACf4f,EAAQ,2BACTngB,GADS,kBAEXuiD,EAFW,2BAGPviD,EAAMuiD,IAHC,IAIVl0B,YAAY,MAGhB,OAAOlO,EAGT,KAAKhgB,IACH,IAAMoiD,EAAQtiD,EAAOM,QACrB,OAAO,2BACFP,GADL,kBAEGuiD,EAFH,2BAGOviD,EAAMuiD,IAHb,IAIIl0B,YAAY,MAKlB,KAAKluB,IACH,IAAMg8P,EAASl8P,EAAOM,QAChB4f,EAAQ,eAAQngB,GAiBtB,OAhBqB,GAAjBm8P,EAAOnzO,OACTmF,IAAQnuB,GAAO,SAACqiD,EAAiBE,GAC/BpiC,EAASoiC,GAAT,2BACKF,GADL,IAEEh0B,YAAY,OAIhB8tO,EAAOhuO,SAAQ,SAACo0B,GACdpiC,EAASoiC,GAAT,2BACKviD,EAAMuiD,IADX,IAEEl0B,YAAY,OAKXlO,EAGT,KAAKhgB,IACH,IAAMg8P,EAASl8P,EAAOM,QAChB4f,EAAQ,eAAQngB,GAiBtB,OAhBqB,GAAjBm8P,EAAOnzO,OACTmF,IAAQnuB,GAAO,SAACqiD,EAAiBE,GAC/BpiC,EAASoiC,GAAT,2BACKF,GADL,IAEEh0B,YAAY,OAIhB8tO,EAAOhuO,SAAQ,SAACo0B,GACdpiC,EAASoiC,GAAT,2BACKviD,EAAMuiD,IADX,IAEEl0B,YAAY,OAKXlO,EAIT,KAAKhgB,IACH,MAA4BF,EAAOM,QAA3B4e,EAAR,EAAQA,KAAMyjC,EAAd,EAAcA,UACRziC,EAAQ,eAAQngB,GAOtB,OANAmf,EAAK3a,MAAM,KAAK2pB,SAAQ,SAACo0B,GACvBpiC,EAASoiC,GAAT,2BACKviD,EAAMuiD,IADX,IAEEK,UAAWA,OAGRziC,EAIT,KAAKhgB,IACH,MAA8BF,EAAOM,QAA7B4e,EAAR,EAAQA,KAAM6jC,EAAd,EAAcA,YACR7iC,EAAQ,eAAQngB,GAOtB,OANAmf,EAAK3a,MAAM,KAAK2pB,SAAQ,SAACo0B,GACvBpiC,EAASoiC,GAAT,2BACKviD,EAAMuiD,IADX,IAEES,YAAaA,OAGV7iC,EAIT,KAAKhgB,IACH,MAA4BF,EAAOM,QAA3B4e,EAAR,EAAQA,KAAM6uK,EAAd,EAAcA,UACR7tK,EAAQ,eAAQngB,GAOtB,OANAmf,EAAK3a,MAAM,KAAK2pB,SAAQ,SAACo0B,GACvBpiC,EAASoiC,GAAT,2BACKviD,EAAMuiD,IADX,IAEEyrI,UAAWA,OAGR7tK,EAIT,KAAKhgB,IACH,MAA4BF,EAAOM,QAA3B4e,EAAR,EAAQA,KAAM0X,EAAd,EAAcA,UACR1W,EAAQ,eAAQngB,GAOtB,OANAmf,EAAK3a,MAAM,KAAK2pB,SAAQ,SAACo0B,GACvBpiC,EAASoiC,GAAT,2BACKviD,EAAMuiD,IADX,IAEE1rB,UAAWA,OAGR1W,EAIT,KAAKhgB,IACH,MAA0BF,EAAOM,QAAzB4e,EAAR,EAAQA,KAAM2jC,EAAd,EAAcA,QACR3iC,EAAQ,eAAQngB,GAOtB,OANAmf,EAAK3a,MAAM,KAAK2pB,SAAQ,SAACo0B,GACvBpiC,EAASoiC,GAAT,2BACKviD,EAAMuiD,IADX,IAEEO,QAASA,OAGN3iC,EAIT,KAAKhgB,IACH,MAA0BF,EAAOM,QAAzB4e,EAAR,EAAQA,KAAMikC,EAAd,EAAcA,QACRjjC,EAAQ,eAAQngB,GAQtB,OAPAmf,EAAK3a,MAAM,KAAK2pB,SAAQ,SAACo0B,GACvBpiC,EAASoiC,GAAT,2BACKviD,EAAMuiD,IADX,IAEEa,QAASA,EACT6sI,kBAAmB7sI,OAGhBjjC,EAIT,KAAKhgB,IACH,OAAwBF,EAAOM,QAAvB4e,GAAR,GAAQA,KAAM6pB,GAAd,GAAcA,MACR7oB,GAAQ,eAAQngB,GAOtB,OANAmf,GAAK3a,MAAM,KAAK2pB,SAAQ,SAACo0B,GACvBpiC,GAASoiC,GAAT,2BACKviD,EAAMuiD,IADX,IAEEvZ,MAAOA,QAGJ7oB,GAIT,KAAKhgB,IACH,OAAwBF,EAAOM,QAAvB4e,GAAR,GAAQA,KAAMD,GAAd,GAAcA,MACRiB,GAAQ,eAAQngB,GAOtB,OANAmf,GAAK3a,MAAM,KAAK2pB,SAAQ,SAACo0B,GACvBpiC,GAASoiC,GAAT,2BACKviD,EAAMuiD,IADX,IAEErjC,MAAOA,QAGJiB,GAIT,KAAKhgB,IACH,OAAwBF,EAAOM,QAAvB4e,GAAR,GAAQA,KAAMqgB,GAAd,GAAcA,MACRrf,GAAQ,eAAQngB,GAOtB,OANAw/B,GAAMrR,SAAQ,SAACo0B,GACbpiC,GAASoiC,GAAT,2BACKpiC,GAASoiC,IACTpjC,GAAKojC,OAGLpiC,GAIT,KAAKhgB,IACH,OAA8CF,EAAOM,QAA7C4e,GAAR,GAAQA,KAAM0X,GAAd,GAAcA,UAAWisB,GAAzB,GAAyBA,QACnB3iC,IADN,GAAkC+iB,QACpB,eAAQljC,IAStB,OARAmf,GAAK3a,MAAM,KAAK2pB,SAAQ,SAACo0B,GACvBpiC,GAASoiC,GAAT,2BACKviD,EAAMuiD,IADX,IAEEK,UAAW,EACX/rB,UAAWA,GACXisB,QAASA,QAGN3iC,GAIT,QACE,OAAOngB,IAqQXw/B,MAhQY,WAAyB,IAAxBx/B,EAAuB,uDAAf,GAAIC,EAAW,uCACpC,OAAQA,EAAOC,MACb,KAAKkgB,IACH,MAAO,GAGT,KAAKjgB,IACH,IAAQq/B,EAAUv/B,EAAOM,QAAjBi/B,MACR,OAAOs6E,IAAMt6E,GAGf,KAAKr/B,IACH,IAAQq/B,EAAUv/B,EAAOM,QAAjBi/B,MACR,OAAO+yB,IAAK,GAAD,mBAAKvyD,GAAL,YAAew/B,KAG5B,KAAKr/B,IACH,MAA8BF,EAAOM,QAA7B0tC,EAAR,EAAQA,MAAOoU,EAAf,EAAeA,WACf,OAAOriD,EAAMgiB,KAAI,SAACugC,GAAD,OAAYA,IAAUtU,EAAQoU,EAAWE,MAAQA,KAGpE,KAAKpiD,IACH,IAAMkiD,EAAapiD,EAAOM,QAC1B,MAAM,GAAN,mBAAWP,GAAX,CAAkBqiD,EAAWE,QAG/B,KAAKpiD,IACH,IAAQgf,EAASlf,EAAOM,QAAhB4e,KACR,OAAOnf,EAAMs8B,QAAO,SAAC8/N,GAAD,OAAiBj9O,EAAK3a,MAAM,KAAKgB,SAAS42P,MAIhE,KAAKj8P,IACH,IAAMkiD,EAAapiD,EAAOM,QAC1B,MAAM,GAAN,mBAAWP,GAAX,CAAkBqiD,EAAWE,QAI/B,KAAKpiD,IACH,IAAQ8tC,EAAUhuC,EAAOM,QAAjB0tC,MACR,OAAOjuC,EAAMs8B,QAAO,SAAC8/N,GAAD,OAAgBA,IAAenuN,KAIrD,QACE,OAAOjuC,IAoNXqgD,eACA89D,sBA7L4B,WAA4B,IAA3Bn+G,EAA0B,wDAAXC,EAAW,uCACvD,OAAQA,EAAOC,MACb,KAAKkgB,IACH,OAAO,EAET,KAAKjgB,IACH,OAAO,EAET,KAAKA,IACL,KAAKA,IACH,OAAO,EAET,QACE,OAAOH,IAiLX47G,eAhNqB,WAA4B,IAA3B57G,EAA0B,wDAAXC,EAAW,uCAChD,OAAQA,EAAOC,MACb,KAAKkgB,IACH,OAAO,EAET,KAAKjgB,IACH,OAAO,EAET,KAAKA,IACL,KAAKA,IACH,OAAO,EAET,QACE,OAAOH,IAoMXo+G,SA7Ke,WAA4B,IAA3Bp+G,EAA0B,wDAAXC,EAAW,uCAC1C,OAAQA,EAAOC,MACb,KAAKkgB,IACH,OAAO,EAET,KAAKjgB,IACH,OAAO,EAET,KAAKA,IACL,KAAKA,IACH,OAAO,EAET,QACE,OAAOH,IAiKXq+G,UA5JgB,WAA4B,IAA3Br+G,EAA0B,wDAAXC,EAAW,uCAC3C,OAAQA,EAAOC,MACb,KAAKkgB,IACH,OAAO,EAET,KAAKjgB,IACH,OAAO,EAET,KAAKA,IACL,KAAKA,IACH,OAAO,EAET,QACE,OAAOH,IAgJXs+G,WA3IiB,WAA4B,IAA3Bt+G,EAA0B,wDAAXC,EAAW,uCAC5C,OAAQA,EAAOC,MACb,KAAKkgB,IACH,OAAO,EAET,KAAKjgB,IACH,OAAO,EAET,KAAKA,IACL,KAAKA,IACH,OAAO,EAET,QACE,OAAOH,IA+HXq8P,eA1HqB,WAA4B,IAA3Br8P,EAA0B,wDAAXC,EAAW,uCAChD,OAAQA,EAAOC,MACb,KAAKkgB,IACH,OAAO,EAET,KAAKjgB,IACH,OAAO,EAET,KAAKA,IACL,KAAKA,IACH,OAAO,EAET,QACE,OAAOH,IA8GXu+G,yBAtF+B,WAA2B,IAA1Bv+G,EAAyB,uDAAjB,KAAMC,EAAW,uCACzD,OAAQA,EAAOC,MACb,KAAKkgB,IACH,OAAO,KAET,KAAKjgB,IACH,IAAQ4B,EAAU9B,EAAOM,QAAjBwB,MACR,OAAOA,EAET,KAAK5B,IACL,KAAKA,IACH,OAAO,KAET,QACE,OAAOH,IAyEX87G,kBA1GwB,WAA2B,IAA1B97G,EAAyB,uDAAjB,KAAMC,EAAW,uCAClD,OAAQA,EAAOC,MACb,KAAKkgB,IACH,OAAO,KAET,KAAKjgB,IACH,IAAQ4B,EAAU9B,EAAOM,QAAjBwB,MACR,OAAOA,EAET,KAAK5B,IACL,KAAKA,IACH,OAAO,KAET,QACE,OAAOH,IA6FXw+G,YArEkB,WAA2B,IAA1Bx+G,EAAyB,uDAAjB,KAAMC,EAAW,uCAC5C,OAAQA,EAAOC,MACb,KAAKkgB,IACH,OAAO,KAET,KAAKjgB,IACH,IAAQ4B,EAAU9B,EAAOM,QAAjBwB,MACR,OAAOA,EAET,KAAK5B,IACL,KAAKA,IACH,OAAO,KAET,QACE,OAAOH,IAwDXy+G,aAnDmB,WAA2B,IAA1Bz+G,EAAyB,uDAAjB,KAAMC,EAAW,uCAC7C,OAAQA,EAAOC,MACb,KAAKkgB,IACH,OAAO,KAET,KAAKjgB,IACH,IAAQ4B,EAAU9B,EAAOM,QAAjBwB,MACR,OAAOA,EAET,KAAK5B,IACL,KAAKA,IACH,OAAO,KAET,QACE,OAAOH,IAsCX0+G,cAjCoB,WAA2B,IAA1B1+G,EAAyB,uDAAjB,KAAMC,EAAW,uCAC9C,OAAQA,EAAOC,MACb,KAAKkgB,IACH,OAAO,KAET,KAAKjgB,IACH,IAAQ4B,EAAU9B,EAAOM,QAAjBwB,MACR,OAAOA,EAET,KAAK5B,IACL,KAAKA,IACH,OAAO,KAET,QACE,OAAOH,MAsBPs8P,EAA6B,CACjCp6P,IAAK,cACLC,QAASC,IACTC,gBAAiBC,IACjBC,UAAW,CACT,eACA,WACA,YACA,aACA,iBACA,iBACA,yBAEFgqH,UAAW,CAAC,OAAQ,UAMT9pH,GAHED,gBAAe85P,EAA4BJ,GAG/B,SAACl8P,GAAD,OAAWA,EAAMmf,KAAK+8O,cAGpCK,EAAgB,SAACv8P,EAAOuiD,GACnC,IAAMF,EAAa5/C,EAAYzC,GAAO25G,KAAKp3D,GAC3C,GAAIF,EAAY,CACd,IAAM/1B,EAAe+1B,EAAW39C,eAC5Be,kBAAsCzF,EAAOqiD,EAAW39C,qBACxD4J,EACE+U,EAAWg/B,EAAWz9C,WACxBm6G,cAA8B/+G,EAAOqiD,EAAWz9C,iBAChD0J,EACE6iB,EAAckxB,EAAWv9C,cAC3Bk6G,iBAAoCh/G,EAAOqiD,EAAWv9C,oBACtDwJ,EACJ,OAAO,2BACF+zC,GADL,IAEE1zB,iBAAkBrC,EAAeA,EAAaqC,iBAAmB,GACjE1K,aAAcZ,EAAWA,EAASY,aAAe,GACjD+N,gBAAiBb,EAAcA,EAAYa,gBAAkB,Q,mECjnBvDo3L,E,kLCoIGozC,EAlHwC,SAAC,GAMjD,IALLrvH,EAKI,EALJA,OACAzzH,EAII,EAJJA,MAII,IAHJ8wK,oBAGI,MAHW,EAGX,EAFJv1J,EAEI,EAFJA,OACAsD,EACI,EADJA,oBAGA,EAAyCy5K,cAAjC5rF,EAAR,EAAQA,QAAS6rF,EAAjB,EAAiBA,aAAcp1B,EAA/B,EAA+BA,MACzBpzK,EAAOG,cACL0/M,EAAiBC,YAA2B9yD,IAAgB,CAClEl+H,oBAAqB,WACnB/P,EAASgN,kCAC0B,oBAAxB+C,GACTA,OAJE+wL,aAcR,GANqBn9E,aAAY,SAACnsI,GAChC,OAAOwhB,aACOxhB,GACXuH,sCAAsCijL,GACtCpmF,QAAQ,MAEuB+nC,aAAY,SAACnsI,GAC/C,MAAO,CACLy8P,gBAAiBj7O,iBAA6BxhB,GAAOqG,SACrDq2P,OAAQl7O,aAAyBxhB,QAH7By8P,EAAR,EAAQA,gBAMFj0O,GANN,EAAyBk0O,OAMRjrG,eAejB,OACE,cAAC,IAAD,CACEzuC,UAAU,sBACV+vF,iBAAkB,kCAClB5lE,OAAQA,EACR73H,MAAO7L,EAAK0E,cAAc,CAAEC,GAAI,uBAChCqlM,SAAU,GACV99L,MAAO,QACPq9L,eAAgB,WACdt5L,KARJ,SAWE,eAAC,WAAD,WACE,eAACu3L,EAAA,EAAD,WACE,cAACplB,EAAA,EAAD,CAAK9T,GAAG,KAAR,SACE,cAAC,IAAD,CACE3xD,QAASA,EACT/3G,KAAK,WACLu6F,MAAO,CAAEQ,UAAU,GACnB2iF,OAAQ,gBAAGrnE,EAAH,EAAGA,MAAOimE,EAAV,EAAUA,WAAV,OACN,cAACj6C,EAAA,EAAD,CACEhsB,MAAOA,EACPC,WAAYgmE,EACZv8K,GAAI,iBACJm0G,MAAO94G,EAAK0E,cAAc,CAAEC,GAAI,mBAChC22G,kBAAmB3vD,OAAOo1H,GAC1BphF,UAAQ,EACR8nC,WAAS,EACTH,eAAa,EACbnpB,gBAAiB60I,SAKzB,cAAC5wE,EAAA,EAAD,CAAK9T,GAAG,KAAK/0D,UAAU,qCAAvB,SACE,cAAC25I,EAAA,EAAD,CACEluP,QAAShF,EAAK0E,cAAc,CAAEC,GAAI,8BAClCS,KAAK,mBACL29H,SAAS,SAIf,cAACykE,EAAA,EAAD,CAAKjuF,UAAW,oBAAhB,SACE,eAAC6oE,EAAA,EAAD,CAAK9T,GAAG,KAAR,UACE,cAACw7B,EAAA,EAAO3mE,OAAR,CACE5pB,UAAU,mBACV9oG,MAAM,UAEN2yH,QAASolE,GA9DJ,SAAC90K,GAChB,IAAMy/N,EAAcz/N,EAAO83B,SAC3BplD,0BAA+B,CAC7BpB,QAAShF,EAAK0E,cAAc,CAAEC,GAAI,mCAClCnO,OAAQ,WACNqpN,EAAa,CAAEr0L,SAAQ2nO,YAAaA,IACpCljP,KAEFlE,UAAW,WACTkE,UAiDI,SAME,cAAC,IAAD,CAAkBtL,GAAG,kBAEvB,cAACmlM,EAAA,EAAO3mE,OAAR,CACE5pB,UAAU,cACV9oG,MAAM,QACN2yH,QAAS,WACPgwC,IACAnjK,KALJ,SAQE,cAAC,IAAD,CAAkBtL,GAAG,gC,SD3HvBg7M,O,eAAAA,I,oBAAAA,M,KA4DGyE,IA9C6B,SAAC,GAOtC,IAAD,IANJ5zM,YAMI,MANG,GAMH,MALJ0vM,kBAKI,MALSP,EAAY7V,OAKrB,MAJJ/oB,oBAII,MAJW,EAIX,MAHJ3xK,kBAGI,SAFJoc,EAEI,EAFJA,OACAsD,EACI,EADJA,oBAMA,IAHsB4zG,aAAY,SAACv7H,GAAD,OAChC4Q,+BAA2C5Q,EAAO,CAAC,aAEjC,OAAO,6BAE3B,IAAMnH,EAAkBG,cACxB,EAA0DggN,cAA3Cz8E,EAAf,EAAQx2H,MAAwBwhK,EAAhC,EAAuB0xC,QAAyBnwM,EAAhD,EAAsCowM,SAKtC,OACE,eAAC,WAAD,WACGH,IAAeP,EAAYpvM,KAC1B,cAAC,IAAD,CAAMnL,KAAK,QAAQoL,KAAMA,EAAM4yH,QAPjB,SAACh5B,GACnBskE,KAMyDt1D,MAAO,CAAEm1D,OAAQ,aAEtE,cAAC9rC,EAAA,EAAD,CACEhyH,MAAM,QACNmyH,YAAa,WACX8rC,KAEFtpK,KAAM,cACNy9H,eAAgB7iI,EAAK0E,cAAc,CAAEC,GAAI,uBACzCyK,WAAYA,IAGhB,cAAC,EAAD,CACEs0H,OAAQA,EACRzzH,MAAOA,EACP8wK,aAAcA,EACdv1J,OAAQA,EACRsD,oBAAqBA,S,2PE/DvBskO,EAAc,SAACzpF,GAAD,OAClB,IAAIjnK,SAAQ,SAACC,EAASiE,GACpB,IAAMsiB,EAAQ,IAAImqO,MAClBnqO,EAAMtjB,iBAAiB,QAAQ,kBAAMjD,EAAQumB,MAC7CA,EAAMtjB,iBAAiB,SAAS,SAACtN,GAAD,OAAWsO,EAAOtO,MAClD4wB,EAAMoqO,aAAa,cAAe,aAClCpqO,EAAMuwF,IAAMkwD,MAGhB,SAAS4pF,EAAeC,GACtB,OAAQA,EAAcl5J,KAAK+vE,GAAM,IAS5B,IAAMopF,EAAa,uCAAG,WAAOC,EAAUC,GAAjB,+CAAAlwP,EAAA,6DAA4BmwP,EAA5B,+BAAuC,EAAG5tE,EAA1C,uBAAoD6tE,EAApD,gCACPT,EAAYM,GADL,cACrBxqO,EADqB,OAErB4qO,EAASrqJ,SAASC,cAAc,UAChCmwF,EAAMi6D,EAAOC,WAAW,MAExBC,EAAU15J,KAAKssB,IAAI19F,EAAMhd,MAAOgd,EAAMwwF,QACtCu6I,EAAiBD,EAAU,EAAK15J,KAAK45J,KAAK,GAA/B,EAIjBJ,EAAO5nP,MAAQ+nP,EACfH,EAAOp6I,OAASu6I,EAGhBp6D,EAAIs6D,UAAUF,EAAW,EAAGA,EAAW,GACvCp6D,EAAIu6D,OAAOb,EAAeK,IAC1B/5D,EAAIs6D,WAAWF,EAAW,GAAIA,EAAW,GAGzCp6D,EAAIw6D,UAAUnrO,EAAO+qO,EAAW,EAAkB,GAAd/qO,EAAMhd,MAAa+nP,EAAW,EAAmB,GAAf/qO,EAAMwwF,QACtEj3G,EAAOo3L,EAAIy6D,aAAa,EAAG,EAAGL,EAAUA,GAG9CH,EAAO5nP,MAAQynP,EAAUznP,MACzB4nP,EAAOp6I,OAASi6I,EAAUj6I,OAG1BmgF,EAAI06D,aACF9xP,EACA63F,KAAKH,MAAM,EAAI85J,EAAW,EAAkB,GAAd/qO,EAAMhd,MAAcynP,EAAUpsP,GAC5D+yF,KAAKH,MAAM,EAAI85J,EAAW,EAAmB,GAAf/qO,EAAMwwF,OAAei6I,EAAUa,IAIzD7qF,EAAMmqF,EAAOW,UAAU,cAlCF,UAoCRC,EAAc/qF,EAAKqc,EAAU6tE,GApCrB,eAoCrB9tE,EApCqB,yBAqCpB,CAAEpc,MAAKoc,SArCa,4CAAH,wDA+CnB,SAAe2uE,EAAtB,sC,4CAAO,WAA6BC,EAAS3uE,EAAU6tE,GAAhD,iBAAApwP,EAAA,sEACawU,MAAM08O,GADnB,cACC5K,EADD,gBAEcA,EAAI6K,OAFlB,cAECA,EAFD,yBAGE,IAAIC,KAAK,CAACD,GAAO5uE,EAAU,CAAEvvL,KAAMo9P,KAHrC,4C,sBAMA,IAAMiB,EAAe,uCAAG,WAAOpB,GAAP,iCAAAjwP,EAAA,6DAAiBmwP,EAAjB,+BAA4B,EAA5B,SACTR,EAAYM,GADH,cACvBxqO,EADuB,OAEvB4qO,EAASrqJ,SAASC,cAAc,UAChCmwF,EAAMi6D,EAAOC,WAAW,MAGf,KAAbH,IAAiC,KAAdA,GAAiC,MAAbA,IAAkC,MAAdA,GAE3DE,EAAO5nP,MAAQgd,EAAMwwF,OACrBo6I,EAAOp6I,OAASxwF,EAAMhd,QAEtB4nP,EAAO5nP,MAAQgd,EAAMhd,MACrB4nP,EAAOp6I,OAASxwF,EAAMwwF,QAGxBmgF,EAAIs6D,UAAUL,EAAO5nP,MAAQ,EAAG4nP,EAAOp6I,OAAS,GAChDmgF,EAAIu6D,OAAQR,EAAWt5J,KAAK+vE,GAAM,KAClCwvB,EAAIw6D,UAAUnrO,GAAQA,EAAMhd,MAAQ,GAAIgd,EAAMwwF,OAAS,GAjB1B,kBAmBtB,IAAIh3G,SAAQ,SAACC,GAClBmxP,EAAOiB,QAAO,SAAChvE,GACbpjL,EAAQqyP,IAAIC,gBAAgBlvE,MAC3B,iBAtBwB,4CAAH,sD,eCvD5B,SAASmvE,EAASnvE,GAChB,OAAO,IAAIrjL,SAAQ,SAACC,GAClB,IAAMwyP,EAAS,IAAIC,WACnBD,EAAOvvP,iBAAiB,QAAQ,kBAAMjD,EAAQwyP,EAAO1oP,WAAS,GAC9D0oP,EAAOE,cAActvE,MAGzB,IAAMuvE,EAAuB,CAC3B5S,EAAG,IACHG,EAAG,GACHI,GAAI,IAGAsS,EAAY,CAChBC,KAAM,EACNn8I,QAAS,OACTC,cAAe,SACf2qE,WAAY,SACZsxB,QAAS,OACTkgD,YAAa,EACbjgD,aAAc,EACdE,YAAa,UACbD,YAAa,SACb76F,gBAAiB,UACjBnqG,MAAO,UACPi0O,QAAS,OACTtnI,WAAY,2BAGRs4I,EAAc,CAClBhgD,YAAa,WAGTigD,EAAc,CAClBjgD,YAAa,WAGTkgD,EAAc,CAClBlgD,YAAa,WAsSA+G,IAhSO,SAAC,GAmBhB,IAlBLO,EAkBI,EAlBJA,cAkBI,IAjBJ3e,uBAiBI,MAjBc,aAiBd,EAhBJqe,EAgBI,EAhBJA,UACAE,EAeI,EAfJA,OACAD,EAcI,EAdJA,SACAO,EAaI,EAbJA,UACAL,EAYI,EAZJA,wBACAC,EAWI,EAXJA,wBACAG,EAUI,EAVJA,oBAUI,KATJ44C,YASI,EARJ12I,iBAQI,aAPJ49F,mBAOI,MAPU,GAOV,MANJlV,cAMI,MANK,GAML,MALJiuD,2BAKI,MALkB,cAKlB,MAJJC,2BAII,MAJiB,gBAIjB,OAHJC,wBAGI,OAHc,uBAGd,QAFJC,qBAEI,OAFW,oBAEX,QADJC,kBACI,OADQ,UACR,GACJ,GASIC,YAAY,CACdjoP,OAAQgoP,GACRE,SAAU,IAVVC,GADF,GACEA,cAEAC,IAHF,GAEEC,eAFF,GAGED,cACAE,GAJF,GAIEA,cACA9nF,GALF,GAKEA,KACA+nF,GANF,GAMEA,aACAC,GAPF,GAOEA,aACAC,GARF,GAQEA,aAMF,GAAkCpuD,cAA1B5rF,GAAR,GAAQA,QAAS6rF,GAAjB,GAAiBA,aAEjBzsF,qBAAU,WACoB,GAAxBs6I,GAAc92O,QAChBq3O,GAAaP,GAAc,MAE5B,CAACA,KAGJ,IAAMO,GAAY,uCAAG,WAAO7wE,GAAP,mBAAAtiL,EAAA,sEACMyxP,EAASnvE,GADf,cACf8wE,EADe,gBAGOC,yBAAe/wE,GAHtB,UAGbgxE,EAHa,SAIbnD,EAAW0B,EAAqByB,IAJnB,kCAMIjC,EAAgB+B,EAAcjD,GANlC,QAMjBiD,EANiB,eAQnBG,GAAgB,MAChBC,GAAYJ,GACZK,GAAYnxE,EAAKtvL,MACjB0gQ,GAAYpxE,EAAKnhL,MAXE,4CAAH,sDAoBZw0G,GAAQmR,mBACZ,8BAAC,uCACIgrI,GACCkB,GAAef,EAAc,IAC7BgB,GAAef,EAAc,IAC7BgB,GAAef,EAAc,MAEnC,CAACa,GAAcE,GAAcD,KAI/B,GAAgCxqD,IAAMlpE,SAAS,MAA/C,qBAAO0wH,GAAP,MAAiBuD,GAAjB,MACA,GAAgC/qD,IAAMlpE,SAAS,MAA/C,qBAAOgjD,GAAP,MAAiBmxE,GAAjB,MACA,GAAgCjrD,IAAMlpE,SAAS,MAA/C,qBAAO6wH,GAAP,MAAiBqD,GAAjB,MACA,GAAwBl0H,mBAAS,CAAEz7H,EAAG,EAAGitP,EAAG,IAA5C,qBAAO4C,GAAP,MAAaC,GAAb,MACA,GAAgCr0H,mBAAS,GAAzC,qBAAO4wH,GAAP,MAAiB0D,GAAjB,MACA,GAAwBt0H,mBAAS,GAAjC,qBAAOotF,GAAP,MAAamnC,GAAb,MACA,GAAkDv0H,mBAAS,MAA3D,qBAAOw0H,GAAP,MAA0BC,GAA1B,MACA,GAAwCz0H,mBAAS,MAAjD,qBAAO00H,GAAP,MAAqBV,GAArB,MACA,GAA4Ch0H,mBAAS,MAArD,qBAAO20H,GAAP,MAAuBC,GAAvB,MACMC,GAAiBtiB,uBAAY,SAACuiB,EAAaN,GAC/CC,GAAqBD,KACpB,IAGGrwP,GAAQu7H,aAAY,SAACnsI,GAAD,OAAWA,KAC/BM,GAAQkhB,eAA2B5Q,IACnC4wP,GAAW,uCAAG,WAAOrkO,GAAP,iCAAAjwB,EAAA,6DACdnL,GAAQ,EADM,SAGhBs/P,IAAkB,GAHF,SAIWnE,EACzBC,GACA8D,GACA5D,GACA5tE,GACA6tE,IATc,cAIV6D,EAJU,QAWZp1P,EAAU,IAAI01P,SACVC,OAAO,gBAAf,iBAA0CphQ,MACtC4L,EAAO,IAAIy1P,UACVD,OAAO,OAAQP,EAAa3xE,MACjCtjL,EAAKw1P,OAAO,OAAQ/6C,GACpBz6M,EAAKw1P,OAAO,kBAAkB,GAhBd,UAiBOhgP,MAAMnV,IAAe,kBAAmB,CAC7D0E,OAAQ,OACRlF,QAASA,EACT4V,KAAMzV,IApBQ,cAiBVmB,EAjBU,QAuBH4C,QAAU,KAvBP,kCAwBa5C,EAASwU,OAxBtB,aAwBR+/O,EAxBQ,QAyBGlzP,QAzBH,0BA0BkBkzP,EAAa11P,KAAnCujL,EA1BI,EA0BJA,SAAUC,EA1BN,EA0BMA,QA1BN,UA2BsBg3B,EAAoB,yBACpDj3B,WACAC,UACAvuL,UAAWsuL,EACX6tE,SAAUA,GACVn4C,YAAa,EACbL,SAAUp1B,GACP82B,GACArpL,IAnCO,cA2BN0kO,EA3BM,QAqCY5xP,QAAU,KArCtB,qBAsCsB4xP,EAAoBnzP,QAtC1C,sBAuCNmzP,EAvCM,yCAwCAA,EAAoBhgP,OAxCpB,iCAyCkBnT,QAC1B43M,EAAwB,yBACtBnlN,UAAWsuL,EACX6tE,SAAUA,GACVx4C,SAAUp1B,EACVy1B,YAAa,GACVqB,GACArpL,IAGLp7B,GAAQ,EAnDA,wBAsDVA,GAAQ,EAtDE,QAwDZ0kN,EAAc,yBACZtlN,UAAWsuL,EACX6tE,SAAUA,GACVx4C,SAAUp1B,EACVy1B,YAAa,GACVqB,GACArpL,IA9DO,wBAiEZp7B,GAAQ,EAjEI,gCAoEdA,GAAQ,EApEM,0DAuEhBmnB,QAAQnnB,MAAR,MACAA,GAAQ,EAxEQ,QA0EdA,EACFwkN,IAEAze,IAEFu5D,IAAkB,GA/EA,0DAAH,sDAmFjB,OACE,mCACE,0BAASr+I,UAAU,YAAnB,UACe,MAAZm6I,IACC,qCACE,gDAAS4C,GAAa,CAAE/8I,UAAW,WAAYH,YAA/C,cACE,qCAAWo9I,OAEX,cAAC,IAAD,CAAQhmP,KAAM,KACd,4BACE,cAAC,IAAD,CAAkB7L,GAAIqxP,WAG1B,qBAAKz8I,UAAU,cAAf,SACE,cAACuwF,EAAA,EAAO3mE,OAAR,CACEhkB,SAAUA,EACV5F,UAAU,YACV9oG,MAAM,UACN2yH,QAAS,WACPsrC,KACAsoF,GAAgB,OANpB,SASE,cAAC,IAAD,CAAkBryP,GAAIsxP,YAK7BvC,IAA4B,MAAhBgE,IACX,eAAC,IAAM95D,SAAP,WACE,qBAAKrkF,UAAW,iBAAhB,SACE,cAAC,IAAD,CACErwF,MAAOwqO,GACP0D,KAAMA,GACN16C,UAAWA,EACXE,OAAQA,EACRD,SAAUA,EACVi3C,SAAUA,GACVxjC,KAAMA,GACNioC,aAAchB,GACdiB,iBAAkBhB,GAClBO,eAAgBA,GAChBU,aAAchB,OAGlB,sBAAKh+I,UAAW,WAAhB,UACE,sBAAKA,UAAU,kBAAf,UACE,cAAC,IAAD,CAAS/oG,KAAM,GAAI+oG,UAAW,SAC9B,cAACi/I,EAAA,EAAD,CACEtrP,MAAOkjN,GACPzpG,IAAK,EACLC,IAAK,EACLsgB,KAAM,GACNuxH,kBAAgB,OAChBl/I,UAAW,SACX4C,SAAU,SAAC3b,EAAG4vH,GAAJ,OAAamnC,GAAQnnC,MAEjC,cAAC,IAAD,CAAQ5/M,KAAM,GAAI+oG,UAAW,YAE/B,sBAAKA,UAAU,kBAAf,UACE,cAAC,IAAD,CAAW/oG,KAAM,GAAI+oG,UAAW,SAChC,cAACi/I,EAAA,EAAD,CACEtrP,MAAO0mP,GACPjtI,IAAK,EACLC,IAAK,IACLsgB,KAAM,EACNuxH,kBAAgB,WAChBl/I,UAAW,SACX4C,SAAU,SAAC3b,EAAGozJ,GAAJ,OAAiB0D,GAAY1D,MAEzC,cAAC,IAAD,CAAUpjP,KAAM,GAAI+oG,UAAW,eAGnC,uBACCsuF,EAAOtvL,KAAI,SAACxL,EAAO0gB,GAAR,OACV,cAAC29K,EAAA,EAAD,CAEEzuF,QAASA,GACT5vG,MAAK,2BAAOA,GAAP,IAAcnI,KAAMmI,EAAMnI,MAAQ,SAAW6oB,EAAG9oB,GAAI8oB,EAAE5U,cAFtD4U,MAKT,cAAC20J,EAAA,EAAD,CAAK9T,GAAG,mCAAR,SACE,eAAC+8B,EAAA,EAAD,CAAW9xF,UAAU,cAArB,UACE,eAACuwF,EAAA,EAAO3mE,OAAR,CACEhkB,SAAUw4I,GACVp+I,UAAU,YACV9oG,MAAM,UACN2yH,QAASolE,IAAa,SAAC90K,GACrBqkO,GAAYrkO,MALhB,UAQGikO,IAAkB,cAACx0E,EAAA,EAAD,CAAS1yK,MAAM,QAAQD,KAAK,OAC/C,sBAAM+oG,UAAU,QAAhB,SACE,cAAC,IAAD,CAAkB50G,GAAImxP,SAG1B,cAAChsD,EAAA,EAAO3mE,OAAR,CACEhkB,SAAUw4I,GACVlnP,MAAM,QACN8oG,UAAU,OACV6pB,QAAS,WAtNvB4zH,GAAgB,MAChBC,GAAY,OAiNA,SAQE,cAAC,IAAD,CAAkBtyP,GAAIoxP,YAGrB,c,oCCjUJj7P,IApBK,CAClB8pO,kBAAmB,QACnB8zB,oBAAqB,QACrBC,kBAAmB,QACnBC,oBAAqB,QACrBC,YAAa,QACbvtG,sBAAuB,QACvB2nC,SAAU,QACV6lE,oBAAqB,QACrBC,mBAAoB,QACpBC,oBAAqB,QACrBC,sBAAuB,QACvBC,iBAAkB,QAClBC,eAAgB,QAChBC,kBAAmB,QACnBC,gBAAiB,QACjBC,iBAAkB,QAClBC,iBAAkB,U,+BCjBpB,4SAMa5/N,EAAU,WAUVkV,EAAyB,SAACxnC,EAAyBswB,GAC9D,IAAM9wB,EAAe,IAAIjE,IASzB,OARAg1B,IAAsB1wB,6BAA6BC,IAAON,GAC1DA,EAAa5D,iBAAiB,CAC5BwB,OAAQ,mBACRjO,OAAQ,MACR2N,WAAY,eAGd0C,EAAa3D,iBAAiBy0B,GACvB9wB,EAAa9C,KAAb,UAAqB41B,EAArB,QAAoCtyB,IAGhCmyP,EAA2B,SAACnyP,EAAyBswB,GAChE,IAAM9wB,EAAe,IAAIjE,IASzB,OARAg1B,IAAsB1wB,6BAA6BC,IAAON,GAC1DA,EAAa5D,iBAAiB,CAC5BwB,OAAQ,mBACRjO,OAAQ,MACR2N,WAAY,eAGd0C,EAAa3D,iBAAiBy0B,GACvB9wB,EAAa9C,KAAb,UAAqB41B,EAArB,6BAAyDtyB,IAGrDoyP,EAAiC,SAC5CpyP,EACAswB,GAEA,IAAM9wB,EAAe,IAAIjE,IASzB,OARAg1B,IAAsB1wB,6BAA6BC,IAAON,GAC1DA,EAAa5D,iBAAiB,CAC5BwB,OAAQ,mBACRjO,OAAQ,MACR2N,WAAY,eAGd0C,EAAa3D,iBAAiBy0B,GACvB9wB,EAAa9C,KAAb,UAAqB41B,EAArB,aAAyCtyB,IAGrCqyP,EAA4B,SAACryP,EAAcswB,GACtD,IAAM9wB,EAAe,IAAIjE,IASzB,OARAg1B,IAAsB1wB,6BAA6BC,IAAON,GAC1DA,EAAa5D,iBAAiB,CAC5BwB,OAAQ,mBACRjO,OAAQ,MACR2N,WAAY,eAGd0C,EAAa3D,iBAAiBy0B,GACvB9wB,EAAa9C,KAAb,UAAqB41B,EAArB,oBAAgDtyB,IAG5CsyP,EAAmB,SAACtyP,EAAcswB,GAC7C,IAAM9wB,EAAe,IAAIjE,IASzB,OARAg1B,IAAsB1wB,6BAA6BC,IAAON,GAC1DA,EAAa5D,iBAAiB,CAC5BwB,OAAQ,iBACRjO,QAAe,OAAP6Q,QAAO,IAAPA,OAAA,EAAAA,EAASsiC,SAAU,OAAS,SACpCxlC,WAAY,mBAGd0C,EAAa3D,iBAAiBy0B,GACvB9wB,EAAa9C,KAAb,UAAqB41B,EAArB,cAA0CtyB,IAGtCuyP,EAAmB,SAACvyP,EAAcswB,GAC7C,IAAM9wB,EAAe,IAAIjE,IASzB,OARAg1B,IAAsB1wB,6BAA6BC,IAAON,GAC1DA,EAAa5D,iBAAiB,CAC5BwB,OAAQ,iBACRjO,QAAe,OAAP6Q,QAAO,IAAPA,OAAA,EAAAA,EAASuiC,SAAU,OAAS,SACpCzlC,WAAY,mBAGd0C,EAAa3D,iBAAiBy0B,GACvB9wB,EAAa9C,KAAb,UAAqB41B,EAArB,cAA0CtyB,IAGtCwyP,EAAqB,SAACxyP,EAAcswB,GAC/C,IAAM9wB,EAAe,IAAIjE,IASzB,OARAg1B,IAAsB1wB,6BAA6BC,IAAON,GAC1DA,EAAa5D,iBAAiB,CAC5BwB,OAAQ,iBACRjO,OAAQ,SACR2N,WAAY,mBAGd0C,EAAa3D,iBAAiBy0B,GACvB9wB,EAAa9C,KAAb,UAAqB41B,EAArB,gBAA4CtyB,IAGxCyyP,EAAqB,SAACzyP,EAAcswB,GAC/C,IAAM9wB,EAAe,IAAIjE,IASzB,OARAg1B,IAAsB1wB,6BAA6BC,IAAON,GAC1DA,EAAa5D,iBAAiB,CAC5BwB,OAAQ,iBACRjO,OAAQ,SACR2N,WAAY,mBAGd0C,EAAa3D,iBAAiBy0B,GACvB9wB,EAAa9C,KAAb,UAAqB41B,EAArB,gBAA4CtyB,K,+BCxHrD,wOAOasyB,EAAU,SAYV0W,EAAuB,SAAChpC,EAAuBswB,GAC1D,IAAM9wB,EAAe,IAAIjE,IASzB,OARAg1B,IAAsB1wB,6BAA6BC,IAAON,GAC1DA,EAAa5D,iBAAiB,CAC5BwB,OAAQ,eACRjO,OAAQ,MACR2N,WAAY,eAGd0C,EAAa3D,iBAAiBy0B,GACvB9wB,EAAa9C,KAAb,UAAqB41B,EAArB,QAAoCtyB,IAGhC0yP,EAAwB,SAAC1yP,EAAuBswB,GAC3D,IAAM9wB,EAAe,IAAIjE,IASzB,OARAg1B,IAAsB1wB,6BAA6BC,IAAON,GAC1DA,EAAa5D,iBAAiB,CAC5BwB,OAAQ,eACRjO,OAAQ,MACR2N,WAAY,eAGd0C,EAAa3D,iBAAiBy0B,GACvB9wB,EAAa9C,KAAb,UAAqB41B,EAArB,gBAA4CtyB,IAGxC2yP,EAA6B,SACxC3yP,EAMAswB,GAEA,IAAM9wB,EAAe,IAAIjE,IASzB,OARAg1B,IAAsB1wB,6BAA6BC,IAAON,GAC1DA,EAAa5D,iBAAiB,CAC5BwB,OAAQ,iBACRjO,OAAQ,MACR2N,WAAY,eAGd0C,EAAa3D,iBAAiBy0B,GACvB9wB,EAAa9C,KAAb,UAAqB41B,EAArB,wBAAoDtyB,IAGhD4yP,EAAsB,SAAC5yP,EAAuBswB,GACzD,IAAM9wB,EAAe,IAAIjE,IASzB,OARAg1B,IAAsB1wB,6BAA6BC,IAAON,GAC1DA,EAAa5D,iBAAiB,CAC5BwB,OAAQ,iBACRjO,OAAQ,MACR2N,WAAY,eAGd0C,EAAa3D,iBAAiBy0B,GACvB9wB,EAAa9C,KAAb,UAAqB41B,EAArB,iBAA6CtyB,IAgBzC6yP,EAA4B,SACvC7yP,EACAswB,GAEA,IAAM9wB,EAAe,IAAIjE,IASzB,OARAg1B,IAAsB1wB,6BAA6BC,IAAON,GAC1DA,EAAa5D,iBAAiB,CAC5BwB,OAAQ,iBACRjO,OAAQ,MACR2N,WAAY,eAGd0C,EAAa3D,iBAAiBy0B,GACvB9wB,EAAa9C,KAAb,UAAqB41B,EAArB,8BAA0DtyB,IAGtD8yP,EAAgB,SAAC9yP,EAAaswB,GACzC,IAAM9wB,EAAe,IAAIjE,IASzB,OARAg1B,IAAsB1wB,6BAA6BC,IAAON,GAC1DA,EAAa5D,iBAAiB,CAC5BwB,OAAQ,iBACRjO,OAAQ,MACR2N,WAAY,iBAGd0C,EAAa3D,iBAAiBy0B,GACvB9wB,EAAa9C,KAAb,UAAqB41B,EAArB,kBAA8CtyB,K,6BCtHvD,2EAwEeqgP,IAhDF,SAAC,GAQP,IAPL98C,EAOI,EAPJA,UACA+8C,EAMI,EANJA,UAMI,IALJ38C,YAKI,MALG,GAKH,MAJJu8C,gBAII,aAHJC,gBAGI,aAFJrnP,eAEI,aADJsnP,aACI,MADI,OACJ,EACJ,OACE,cAAC,IAAD,CACEluI,UAAS,UAAKguI,EAAW,WAAa,GAA7B,4BAAmDE,GAC5D2S,OAAK,EACL7S,SAAUA,EAHZ,SAKGv8C,EAAKzyL,KAAI,SAAC8hP,GACT,IAAMC,EAAUC,EAAYF,EAAIj1P,MAChC,OACE,cAAC,IAAD,UACE,eAAC,IAAD,CAASo1P,OAAQ5vD,IAAcyvD,EAAIpvD,MAAO7nE,QAAS,kBAAMukH,EAAU0S,EAAIpvD,QAAvE,UACIu8C,EAOA6S,EAAII,kBANJH,EACE,cAACA,EAAD,CAAS9pP,KAAM,GAAI+oG,UAAW8gJ,EAAIxuP,MAAQ,OAAS,gBAEnD,cAAC,IAAD,CAAM2E,KAAM,GAAIpL,KAAMi1P,EAAIj1P,KAAMm0G,UAAW8gJ,EAAIxuP,MAAQ,OAAS,gBAKnEwuP,EAAIxuP,OACH,sBAAM0tG,UAAU,mBAAhB,SACGp5G,EAAU,cAAC,IAAD,CAAkBwE,GAAI01P,EAAIxuP,QAAYwuP,EAAIxuP,QAZ3D,WAgBGwuP,EAAI52C,WACH,cAAC,IAAD,CAAOlqG,UAAU,wBAAwB4qE,MAAI,EAA7C,SACGk2E,EAAI52C,gBAnBb,cAAqB42C,EAAIpvD,e,6BC1CnC,sMAMatxK,EAAU,YAgCVwJ,EAAqC,SAChD97B,EACArE,GAEA,IAAM6D,EAAe,IAAIjE,IAGzB,OAFAg1B,IAAsB1wB,6BAA6BC,IAAON,GAC1DA,EAAa3D,iBAAiBF,GACvB6D,EAAa9C,KAAb,UAAqB41B,EAArB,mBAA+CtyB,IAG3CqzP,EAA0C,SACrDrzP,EACArE,EACAwvL,GAEA,IAAM3rL,EAAe,IAAIjE,IASzB,OARAg1B,IAAsB1wB,6BAA6BC,IAAON,GAC1DA,EAAa5D,iBAAiB,CAC5B2B,KAAK,GAAD,OAAKyC,EAAQu6B,cACjBn9B,OAAQ,qBACRjO,OAAQg8L,EAAQ,SAAW,OAC3BruL,WAAY,iBAEd0C,EAAa3D,iBAAiBF,GACvB6D,EAAa9C,KAAb,UAAqB41B,EAArB,qCAAiEtyB,IAG7DsgC,EAA8B,SAACtgC,EAAcrE,GACxD,IAAM6D,EAAe,IAAIjE,IASzB,OARAg1B,IAAsB1wB,6BAA6BC,IAAON,GAC1DA,EAAa5D,iBAAiB,CAC5B2B,KAAK,GAAD,OAAKyC,EAAQu6B,cACjBn9B,OAAQ,+BACRjO,OAAQ,SACR2N,WAAY,iBAEd0C,EAAa3D,iBAAiBF,GACvB6D,EAAa9C,KAAb,UAAqB41B,EAArB,eAA2CtyB,IAGvCszP,EAA0C,SACrDtzP,EACArE,EACAwvL,GAEA,IAAM3rL,EAAe,IAAIjE,IASzB,OARAg1B,IAAsB1wB,6BAA6BC,IAAON,GAC1DA,EAAa5D,iBAAiB,CAC5B2B,KAAK,GAAD,OAAKyC,EAAQu6B,cACjBn9B,OAAQ,qBACRjO,OAAQg8L,EAAQ,SAAW,OAC3BruL,WAAY,iBAEd0C,EAAa3D,iBAAiBF,GACvB6D,EAAa9C,KAAb,UAAqB41B,EAArB,qCAAiEtyB,IAG7Dw8B,EAAkC,SAACx8B,EAAcrE,GAC5D,IAAM6D,EAAe,IAAIjE,IASzB,OARAg1B,IAAsB1wB,6BAA6BC,IAAON,GAC1DA,EAAa5D,iBAAiB,CAC5B2B,KAAK,GAAD,OAAKyC,EAAQy8B,gBACjBr/B,OAAQ,uBACRjO,OAAQ,SACR2N,WAAY,mBAEd0C,EAAa3D,iBAAiBF,GACvB6D,EAAa9C,KAAb,UAAqB41B,EAArB,6BAAyDtyB,K,gCCvGnD21K,IAFD,CAAEupD,YAAa,gBAAiBC,gBAAiB,mB,+BCKhDxpD,IALD,CACZl1I,cAAe,kBACf2L,gBAAiB,sB,6BCIJupI,IAND,CACZz5D,cAAe,kBACfq3I,gBAAiB,oBACjBn2B,sBAAuB,6B,iDCIV3pO,IAPK,CAClBokO,aAAc,QACd27B,YAAa,QACbC,aAAc,QACdC,eAAgB,U,6BCGHjgQ,IAPK,CAClBskO,oBAAqB,QACrB47B,gBAAiB,QACjBC,iBAAkB,QAClBC,mBAAoB,U,6BCGPpgQ,IAPK,CAClB8kO,UAAW,QACXu7B,SAAU,QACVC,UAAW,QACXC,YAAa,U,6BCGAvgQ,IAPK,CAClBwkO,aAAc,QACdrlN,YAAa,QACbE,aAAc,QACdmhP,eAAgB,U,6BCGHxgQ,IAPK,CAClB0kO,mBAAoB,QACpB+7B,eAAgB,QAChBC,gBAAiB,QACjBC,kBAAmB,U,6BCCNz+E,IALD,CACZ0kD,YAAa,oBACbD,UAAW,oB,6BCMEzkD,IARD,CACZ2lD,UAAW,aACX+4B,UAAW,aACX74B,mBAAoB,sBACpB84B,YAAa,eACbC,kBAAmB,uB,6BCEN9gQ,IAPK,CAClB8oO,kBAAmB,QACnBi4B,iBAAkB,QAClBC,kBAAmB,QACnBC,oBAAqB,U,iPCEVpiO,EAAU,SAMVqiO,EAA+B,uCAAG,WAC7C30P,EACAswB,GAF6C,eAAAl0B,EAAA,6DAIvCoD,EAAe,IAAIjE,IACzBg1B,IAAsB1wB,6BAA6BC,IAAON,GAE1DA,EAAa3D,iBAAiBy0B,GAPe,kBAStC9wB,EAAa9C,KAAb,UAAqB41B,EAArB,wBAAoDtyB,IATd,2CAAH,wDAY/B40P,EAAwB,uCAAG,WAAO50P,EAAkBswB,GAAzB,eAAAl0B,EAAA,6DAChCoD,EAAe,IAAIjE,IACzBg1B,IAAsB1wB,6BAA6BC,IAAON,GAE1DA,EAAa3D,iBAAiBy0B,GAJQ,kBAM/B9wB,EAAa9C,KAAb,UAAqB41B,EAArB,iBAA6CtyB,IANd,2CAAH,wDASxBs1B,EAA4B,SAACt1B,EAAcswB,GACtD,IAAM9wB,EAAe,IAAIjE,IASzB,OARAg1B,IAAsB1wB,6BAA6BC,IAAON,GAC1DA,EAAa5D,iBAAiB,CAC5B2B,KAAK,GAAD,OAAKyC,EAAQ2mB,UACjBvpB,OAAQ,0BACRjO,OAAQ6Q,EAAQ4xB,kBAAoB,OAAS,SAC7C90B,WAAY,mBAEd0C,EAAa3D,iBAAiBy0B,GACvB9wB,EAAa9C,KAAb,UAAqB41B,EAArB,kBAA8CtyB,IAG1Cy1B,EAAgC,SAACz1B,EAAcswB,GAC1D,IAAM9wB,EAAe,IAAIjE,IAKzB,OAJAg1B,IAAsB1wB,6BAA6BC,IAAON,GAE1DA,EAAa3D,iBAAiBy0B,GAEvB9wB,EAAa9C,KAAb,UAAqB41B,EAArB,2BAAuDtyB,K,qJC9CnDsyB,EAAU,YAEVyP,EAA4B,uCAAG,WAAO/hC,EAAcswB,GAArB,eAAAl0B,EAAA,6DACpCoD,EAAe,IAAIjE,IACzBg1B,IAAsB1wB,6BAA6BC,IAAON,GAE1DA,EAAa3D,iBAAiBy0B,GAJY,kBAKnC9wB,EAAa9C,KAAb,UAAqB41B,EAArB,cAA0CtyB,IALP,2CAAH,wDAQ5BgiC,EAA+B,uCAAG,WAC7ChiC,EACAswB,GAF6C,eAAAl0B,EAAA,6DAIvCoD,EAAe,IAAIjE,IACzBg1B,IAAsB1wB,6BAA6BC,IAAON,GAE1DA,EAAa3D,iBAAiBy0B,GAPe,kBAQtC9wB,EAAa9C,KAAb,UAAqB41B,EAArB,iBAA6CtyB,IARP,2CAAH,yD,8BChB5C,OAAe,cAA0B,kC,kDCAzC,0DAoBM60P,EAAkB,SAACtvP,GACvB,IAAQ2xI,EAAmC3xI,EAAnC2xI,KAAM55I,EAA6BiI,EAA7BjI,GAAIgiH,EAAyB/5G,EAAzB+5G,IAAKC,EAAoBh6G,EAApBg6G,IAAKx3G,EAAexC,EAAfwC,WAC5B,OACE,cAAC,IAAD,CACElC,MAAOivP,YAASx3P,EAAI45I,GACpB53B,IAAKA,EACLC,IAAKA,EACLw1I,YAAY,EACZC,SAAUjtP,EACVzK,GAAIA,EACJ24G,YAAal9G,cAAUsE,cAAc,CAAEC,GAAI,gBAC3C23P,eAAe,QACfp1H,KAAM,GACNxoC,OAAQ,WAKdw9J,EAAgB18I,aAAe,CAC7BmH,IAAKloB,MAASswE,QAAQ,OAAOwtF,SAC7B31I,SAAK/hH,EACLuK,YAAY,GAGC8sP,O,sCC5Cf,gGAMaviO,EAAU,UAUVlZ,EAAwB,SAACpZ,EAAwBswB,GAC5D,IAAM9wB,EAAe,IAAIjE,IASzB,OARAg1B,IAAsB1wB,6BAA6BC,IAAON,GAC1DA,EAAa5D,iBAAiB,CAC5BwB,OAAQ,iBACRjO,OAAQ,MACR2N,WAAY,eAGd0C,EAAa3D,iBAAiBy0B,GACvB9wB,EAAa9C,KAAb,UAAqB41B,EAArB,QAAoCtyB,IAGhCm1P,EAAqB,SAACn1P,EAAwBswB,GACzD,IAAM9wB,EAAe,IAAIjE,IASzB,OARAg1B,IAAsB1wB,6BAA6BC,IAAON,GAC1DA,EAAa5D,iBAAiB,CAC5BwB,OAAQ,iBACRjO,OAAQ,MACR2N,WAAY,eAGd0C,EAAa3D,iBAAiBy0B,GACvB9wB,EAAa9C,KAAb,UAAqB41B,EAArB,gBAA4CtyB,K,6BCvCrD,mHAEao1P,EAA8B,eAAC3hP,EAAD,uDAAW,GAAX,MAAmB,CAC5DrkB,KAAMC,IACNI,QAASgkB,IAGE4hP,EAAiC,SAACjoP,EAAUshB,GAAX,MAAsB,CAClEt/B,KAAMC,IACNI,QAAS,CACP2d,WACAshB,WAGS4mO,EAA6B,eACxCrkQ,EADwC,uDAChC,CAAE+U,aAAc,QAASsL,YAAa,KADN,MAEpC,CACJliB,KAAMC,IACNI,QAAS,CACPwB,Y,6BCnBJ,gGAOaqhC,EAAU,OASV8T,EAAqB,SAChCpmC,EACAswB,GAEA,IAAM9wB,EAAe,IAAIjE,IASzB,OARAg1B,IAAsB1wB,6BAA6BC,IAAON,GAC1DA,EAAa5D,iBAAiB,CAC5BwB,OAAQ,WACRjO,OAAQ,MACR2N,WAAY,eAGd0C,EAAa3D,iBAAiBy0B,GACvB9wB,EAAa9C,KAAb,UAAqB41B,EAArB,QAAoCtyB,IAGhCu1P,EAA6B,SAACv1P,EAAqBswB,GAC9D,IAAM9wB,EAAe,IAAIjE,IASzB,OARAg1B,IAAsB1wB,6BAA6BC,IAAON,GAC1DA,EAAa5D,iBAAiB,CAC5BwB,OAAQ,WACRjO,OAAQ,MACR2N,WAAY,eAGd0C,EAAa3D,iBAAiBy0B,GACvB9wB,EAAa9C,KAAb,UAAqB41B,EAArB,aAAyCtyB,K,mvnBCjC5Cw1P,EAAc,SAACjwP,GAAW,IAAD,EAG3BnK,EAWEmK,EAXFnK,KACAhM,EAUEmW,EAVFnW,KACAqmQ,EASElwP,EATFkwP,UACAtC,EAQE5tP,EARF4tP,OACA72H,EAOE/2H,EAPF+2H,OACAo5H,EAMEnwP,EANFmwP,SACAC,EAKEpwP,EALFowP,WACAzjJ,EAIE3sG,EAJF2sG,UACA0jJ,EAGErwP,EAHFqwP,aACAC,EAEEtwP,EAFFswP,WACA9jJ,EACExsG,EADFwsG,MAeF,EAAwC4pB,mBARlC85H,EACKtC,EAEA,YAAIA,IAKf,mBAAO2C,EAAP,KAAqBC,EAArB,KAGMC,EAAuB,SAAC14P,GAC5B,GAAIm4P,EAEAM,EADEz4P,IAAOw4P,EACO,KAEAx4P,OAEb,CACL,IAAMogG,EAAMo4J,EACV1hP,EAAQspF,EAAIjJ,QAAQn3F,GAClBogG,EAAIhpG,SAAS4I,IACfogG,EAAI/xF,OAAOyI,EAAO,GAClB2hP,EAAgB,YAAIr4J,MAEpBA,EAAIhyF,KAAKpO,GACTy4P,EAAgB,YAAIr4J,OAqD1B,OACE,qBACEwU,UAAW+0E,IAAW,iBAAD,mBAClB/0E,EAAYA,GADM,cAEnB,oBAAqB9iH,GAFF,cAGnB,kBAA4B,WAATA,GAHA,cAInB,kBAA4B,WAATA,GAJA,cAKnB,kBAA4B,WAATA,GALA,IADvB,SA/COgM,EAAK8V,KAAI,SAACxH,EAAM0K,GAAW,IAAD,EACzB5P,EAAQkxP,EAAWhsP,EAAKgsP,GAAYhsP,EAAKlF,MAC7C5F,EAAU+2P,EAAajsP,EAAKisP,GAAcjsP,EAAK9K,QAEjD,OACE,eAAC,IAAD,CACEtB,GAAG,kBACH40G,UAAW+0E,IAAW,gBAAD,GACnB,YAAa4uE,GADM,cAElBnsP,EAAKwoG,UAAYxoG,EAAKwoG,WAFJ,qBAGbujJ,EACFK,IAAiB1hP,EACjB0hP,EAAaphQ,SAAS0f,IAAmB,WAAThlB,GALjB,IAQrB2iH,MAAOA,EAVT,UAYE,eAAC,IAAD,yBACEG,UAAW+0E,IAAW,qBAAsB,CAC1CgvE,UAAWR,EAAYK,IAAiB1hP,GAAS0hP,EAAaphQ,SAAS0f,MAGzD,UAAXkoH,EACD,CACE2jE,aAAc,kBAAM+1D,EAAqB5hP,KAE3C,CACE2nH,QAAS,kBAAMi6H,EAAqB5hP,MAV5C,cAcE,cAAC,IAAD,CAAW89F,UAAU,sBAArB,SAA4C1tG,IAC5C,cAAC,IAAD,CAAW2E,KAAM,SAEnB,cAAC,IAAD,CAAUkzH,OAAQo5H,EAAYK,IAAiB1hP,EAAQ0hP,EAAaphQ,SAAS0f,GAA7E,SACE,cAAC,IAAD,YACKwhP,IACAH,EAAYK,IAAiB1hP,EAAQ0hP,EAAaphQ,SAAS0f,MAC5DxV,QAxBDwV,SA+CAohP,MAiBfA,EAAYr9I,aAAe,CACzBg7I,OAAQ,GACR72H,OAAQ,QACRu5H,YAAY,I,kHC7HR1xD,EAAY,SAAC5+L,GACjB,IAAMzF,EAAQu7H,aAAY,SAACnsI,GAAD,OAAWA,KAC7B6Y,EAAkFxC,EAAlFwC,WAAYwzH,EAAsEh2H,EAAtEg2H,YAAaC,EAAyDj2H,EAAzDi2H,eAAgB/nI,EAAyC8R,EAAzC9R,YAAjD,EAA0F8R,EAA5Bm2H,eAA9D,WAA0Fn2H,EAAZjI,UAA9E,MAAmF,GAAnF,EACA,EAAsCq+H,oBAAS,GAA/C,mBAAOC,EAAP,KAAoBC,EAApB,KAGA,OAASpoI,IAAeid,+BAA2C5Q,EAAOrM,KACxEioI,EAwBE,KAvBF,eAAC,IAAOI,OAAR,CACEx+H,GAAE,mBAAcA,GAChB40G,UAAS,mBAAcnqG,EAAa,WAAa,IACjDqB,MAAM,UACN0uG,SAAU/vG,EACVg0H,QAAS,kBAAMR,KALjB,UAOE,cAAC,IAAD,CAAMpyH,KAAM,KACXqyH,GACC,cAAC,IAAD,CACEY,UAAU,MACVC,OAAQT,EACR37B,OAAM,mBAAc3iG,GACpBg/H,OAjBO,kBAAMT,GAAgBD,IAkB7BW,QAAQ,cALV,SAOE,cAAC,IAAD,CACEj/H,GAAI,cACJ+uB,OAAQ,CAAExkB,WAAY9O,cAAUsE,cAAc,CAAEC,GAAIk+H,aAQhE2oE,EAAUhsF,aAAe,CACvBpwG,YAAY,GAGCo8L,O,yLC+BTr4L,G,KAAavc,YAAgB,CACjCs5G,KAnFW,WAAyB,IAAxB35G,EAAuB,uDAAf,GAAIC,EAAW,uCACnC,OAAQA,EAAOC,MAEb,KAAKC,IACH,MAA4BF,EAAOM,QAA3B2d,EAAR,EAAQA,SAAUshB,EAAlB,EAAkBA,MACZrf,EAAQ,eAAQngB,GAStB,OARAw/B,EAAMrR,SAAQ,SAAC64O,GACb7mP,EAAS6mP,GAAT,qCACE34O,YAAY,GACTruB,EAAMgnQ,IACN9oP,EAAS8oP,IAHd,IAIE7wP,aAAa,OAGVgK,EAIT,QACE,OAAOngB,IAiEXw/B,MA5DY,WAAyB,IAAxBx/B,EAAuB,uDAAf,GAAIC,EAAW,uCACpC,OAAQA,EAAOC,MAEb,KAAKC,IACH,IAAQq/B,EAAUv/B,EAAOM,QAAjBi/B,MACR,OAAOs6E,IAAMt6E,GAIf,QACE,OAAOx/B,IAmDX47G,eA7CqB,WAA4B,IAA3B57G,EAA0B,wDAAXC,EAAW,uCAChD,OAAQA,EAAOC,MACb,KAAKC,IACH,OAAO,EAET,KAAKA,IACL,KAAKA,IACH,OAAO,EAET,QACE,OAAOH,IAoCX+9H,kBA/BwB,WAA4B,IAA3B/9H,EAA0B,wDAAXC,EAAW,uCACnD,OAAQA,EAAOC,MACb,KAAKC,IACH,OAAO,EAET,QACE,OAAOH,IA0BX87G,kBArBwB,WAA2B,IAA1B97G,EAAyB,uDAAjB,KAAMC,EAAW,uCAClD,OAAQA,EAAOC,MACb,KAAKC,IACH,IAAQ4B,EAAU9B,EAAOM,QAAjBwB,MACR,OAAOA,EAET,KAAK5B,IACL,KAAKA,IACH,OAAO,KAET,QACE,OAAOH,OAaE4c,MAGR,IAAMna,EAAc,SAACzC,GAAD,OAAWA,EAAM2c,eAAeC,YAG9CqqP,EAAc,SAACjnQ,EAAOgnQ,GAAuC,IAAD,EAEvE,OADc,UAAGvkQ,EAAYzC,GAAO25G,KAAKqtJ,UAA3B,QAA0C,MAiB7CE,EAAoB,SAAClnQ,GAAD,OAC/ByC,EAAYzC,GAAOw/B,MAAMxd,KAAI,SAAC5T,GAAD,OAAQ64P,EAAYjnQ,EAAOoO,OAG7C+4P,EAA2B,SAACnnQ,GAAD,OAAWyC,EAAYzC,GAAO47G,gBACzDwrJ,EAA4B,SAACpnQ,GAAD,OAAWyC,EAAYzC,GAAO+9H,oB,8BC5HvE,oBAgBespI,IAbU,WACvB,OACE,sBAAKrkJ,UAAU,0BAAf,UACE,qBAAKA,UAAU,gBAAgBE,IAAK8jH,UAAMjzH,IAAI,SAC9C,sBAAKiP,UAAU,UAAf,UACE,qBAAKA,UAAU,qBACf,qBAAKA,UAAU,qBACf,qBAAKA,UAAU,6B,gNCkDVskJ,EAAoB/P,wBAA6C,MAEjEgQ,EAAqB,SAAC,GAAkB,IAAhB59P,EAAe,EAAfA,SACnC,EAAiC8iI,mBAAyB,MAA1D,mBAAOwhH,EAAP,KAAgBuZ,EAAhB,KACA,EAA4C/6H,mBAA4C,IAAxF,mBAAOr/F,EAAP,KAAuBq6N,EAAvB,KACA,EAAwCh7H,mBAA0C,IAAlF,mBAAO6c,EAAP,KAAqBo+G,EAArB,KACA,EAA0Cj7H,mBAAyB,IAAnE,mBAAOk7H,EAAP,KAAsBC,EAAtB,KACA,EAAkDn7H,mBAAsC,IAAxF,mBAAOtqG,EAAP,KAA0B0lO,EAA1B,KACA,EAA0Dp7H,mBAExD,IAFF,mBAAOnqG,EAAP,KAA8BwlO,EAA9B,KAIA,EACEr7H,mBAA+B,IADjC,mBAAOs7H,EAAP,KAAwCC,EAAxC,KAEA,EACEv7H,mBAA+B,IADjC,mBAAOw7H,EAAP,KAA4CC,EAA5C,KAGA,EAAwDz7H,mBAAkC,IAA1F,mBAAO07H,EAAP,KAA6BC,EAA7B,KAEA,EAAiEjlD,cAA/CklD,EAAlB,EAAQ3uF,SAAqC4uF,GAA7C,EAA8BvpB,cAGtBrmN,IAFK9uB,cAEQuiI,aAAY,SAACnsI,GAAD,MAAY,CAC3C04B,SAAU6vO,cAA+BvoQ,EAAOspJ,EAAa7vH,gBADvDf,UAIFgxE,GAAwDsqB,mBAC5D,iBAAM,CACJo1B,YAAuCu+G,EAAer+G,EAAcl8G,EAAgB1U,OAEtF,CAACivO,EAAer+G,EAAcl8G,EAAgB1U,KAoB1C8vO,GAAsB,SAC1BC,EAIAC,GAL0B,OAO1BD,EAAYzmP,KAAI,SAACygB,GACf,IAAIkmO,GAAsBD,GAA+D,IAA1Cz/J,OAAO0qB,KAAK+0I,GAAmB1/O,OAC9E,IAAK,IAAM9mB,KAAOwmQ,OACep6P,IAA3Bo6P,EAAkBxmQ,IAAsBugC,EAAWvgC,KAASwmQ,EAAkBxmQ,KAChFymQ,GAAqB,GAIzB,GAAIA,EAAoB,CACtB,IAAIC,EAAsC,GAK1C,OAJAl/J,GAAWv7E,SAAQ,SAACm7E,GAClB,IAAMu/J,EAAkBv/J,EAAUm/J,EAAahmO,GAC3ComO,GAAiBD,EAAiBpsP,KAAjB,MAAAosP,EAAgB,YAASC,OAEzC,2BACFpmO,GADL,IAEEmmO,qBAIJ,OAAOnmO,MAkDLqmO,GAAmB,WACvBjB,EAAqB,IACrBC,EAAyB,KA0brBnxP,GAAgC,CACpC0xP,aACAC,mBACAra,UACA8a,WA9hBiB,SAAC9a,GAClBuZ,EAAcvZ,IA8hBd7gN,iBACA8gN,qBA5hB2B,SAAC9gN,GAC5Bq6N,GAAkB,SAACuB,GAAD,mBAAC,eAAoBA,GAAc57N,OA4hBrDk8G,eACA2/G,mBA1hByB,SAAC3/G,GAC1Bo+G,GAAgB,SAACsB,GAAD,mBAAC,eAAoBA,GAAc1/G,OA0hBnD4/G,+BAvhBqC,WACrC,IAAMC,EAA0CX,GAAoBL,GACpEC,EAAwBe,IAshBxBxB,gBACAyB,oBAtf0B,SAACzB,GAC3B,IAAM0B,EAAkB,YAAO,IAAIC,IAAI3B,EAAc3lP,KAAI,SAACxH,GAAD,OAAUA,EAAKya,YACxE2yO,GAAiB,SAACoB,GAEhB,IAAMO,EACJP,GAAaA,EAAUhgP,OAAS,EAC5BggP,EAAU1sO,QAAO,SAAC9hB,GAAD,OAAW6uP,EAAmB7jQ,SAASgV,EAAKya,WAC7D,GACN,MAAM,GAAN,mBAAWs0O,GAAX,YAAyB5B,QA+e3BxlO,oBACAG,wBACAwmO,oBACAU,qBAtc2B,WAC3BV,KACAV,EAAwB,KAqcxBqB,8BAlcoC,SACpCC,GAEA,GAAIA,GAAwBA,EAAqB1gP,OAAS,EAAG,CAE3D6+O,GAAqB,SAAC8B,GAAD,OACnBA,EAAKrtO,QACH,SAAC9hB,GAAD,OAGS,IAFPkvP,EAAqBntP,WACnB,SAACqtP,GAAD,OAAQA,EAAGrsO,UAAY/iB,EAAK+iB,SAAWqsO,EAAG30O,SAAWza,EAAKya,gBAIlE+yO,EAAmC,IAEnCF,GAAyB,SAAC6B,GAAD,OACvBA,EAAKrtO,QACH,SAAC9hB,GAAD,OAGS,IAFPkvP,EAAqBntP,WACnB,SAACqtP,GAAD,OAAQA,EAAGrsO,UAAY/iB,EAAK+iB,SAAWqsO,EAAG30O,SAAWza,EAAKya,gBAIlEizO,EAAuC,IAEvC,IAAMiB,EAA0CX,GAC9CL,EAAqB7rO,QACnB,SAAC9hB,GAAD,OAGS,IAFPkvP,EAAqBntP,WACnB,SAACqtP,GAAD,OAAQA,EAAGrsO,UAAY/iB,EAAK+iB,SAAWqsO,EAAG30O,SAAWza,EAAKya,cAIlEmzO,EAAwBe,KAka1BU,2BAhfiC,SAACC,GAClC,IAAMC,EAAc,YAAOD,GAErBnqN,EAAmCwoN,EAAqBnmP,KAAI,SAAC0oI,GACjE,IAAMs/G,EAAaD,EAAextP,WAAU,SAAC0tP,GAC3C,OACEA,EAAch1O,SAAWy1H,EAAoBz1H,QAC7Cg1O,EAAc1sO,UAAYmtH,EAAoBntH,WAIlD,OAAIysO,GAAc,EAEMD,EAAettP,OAAOutP,EAAY,GAAG,GAKtDt/G,KAGHw/G,EAAQ,sBAAOvqN,GAAP,YAAmBoqN,IAC3BZ,EAA0CX,GAAoB0B,GACpE9B,EAAwBe,IA0dxBhB,uBACAgC,0BAxdgC,SAACl1O,EAAgBsI,GACjD,IAAMoiB,EAAmCwoN,EAAqB7rO,QAC5D,SAACouH,GAAD,OACEA,EAAoBz1H,SAAWA,GAAUy1H,EAAoBntH,UAAYA,KAEvE4rO,EAA0CX,GAAoB7oN,GACpEyoN,EAAwBe,IAmdxBiB,sBAja4B,WAC5B,IAAMzqN,EAAuCwoN,EAAqBnmP,KAAI,SAAC0oI,GAAyB,IAAD,kBAEvF2/G,EACJtC,EAAgCuC,eAAe5/G,EAAoBjB,cAAgB,IACnFs+G,EAAgCr9G,EAAoBjB,cAAgB,IACpEs+G,EAAgCr9G,EAAoBjB,cAAgB,GAAGx0H,SACrEy1H,EAAoBz1H,QACtB8yO,EAAgCr9G,EAAoBjB,cAAgB,GAAGlsH,UACrEmtH,EAAoBntH,QAClBwqO,EAAgCr9G,EAAoBjB,cAAgB,GACpE,GAgDN,OA9CIikE,kBAAQ28C,IACVrC,GAAmC,SAAC2B,GAAD,mBAAC,eAC/BA,GAD8B,kBAEhCj/G,EAAoBjB,cAAgB,OAAIn7I,OAGR,aACnC2mB,OAAQy1H,EAAoBz1H,OAC5BwC,SAAQ,UAAEizH,EAAoBjzH,gBAAtB,QAAkC,GAC1C8F,QAASmtH,EAAoBntH,QAC7BuC,UAAS,UAAE4qH,EAAoB5qH,iBAAtB,QAAmC,GAC5C2pH,YAAaiB,EAAoBjB,YACjC78F,WAAU,UAAE89F,EAAoB99F,kBAAtB,QAAoC,KAC9CC,aAAY,UAAE69F,EAAoB79F,oBAAtB,QAAsC,KAClDytJ,uBAAwBltK,EAAektK,uBACvCzjL,UAAWyyH,EAAazyH,UACxBkoB,SAAU,KACVwrN,eAAgBjhH,EAAaihH,eAC7BC,0BAA2B,EAC3BC,wCACEnhH,EAAamhH,wCACfC,qBAAsB,EACtB7uI,WAAYytB,EAAaztB,WACzB8uI,aAAc,KACdC,aAAc,KACdC,aAAc,KACdC,aAAc,KACdC,aAAc,KACdC,aAAc,KACd3wD,yBAA0BjtK,EAAeitK,yBACzCg0C,cAAejhN,EAAeihN,cAC9B31G,mBAAoBtrG,EAAesrG,mBACnC8hE,mBAAoBptK,EAAeotK,mBACnC/gL,WAAY,KACZ20N,qBAAsBhhN,EAAeghN,uBAAyBN,IAAqBmd,IACnFC,eAAgB5hH,EAAa4hH,eAC7BC,yBAAyB,UAAA7hH,EAAauxD,sBAAb,eAA6B1uG,cAA7B,WACrB,UAAAm9C,EAAauxD,sBAAb,eAA6B1uG,cAAe,UADvB,QAC6B,OAClD79F,EACJs4I,iBAAiB,UAAA0C,EAAa1C,uBAAb,eAA8Bz6C,eAC3C,UAAAm9C,EAAa1C,uBAAb,eAA8Bz6C,cAAe,QAC7C79F,EACJs6P,iBAAkBl+G,EAAoBk+G,kBACnCyB,MAMDlB,EAAqCX,GAAoB7oN,GAC/DkoN,EAAqBsB,IAmWrBiC,0BAhWgC,WAChC,IAAMzrN,EAA2CwoN,EAAqBnmP,KACpE,SAAC0oI,GAAyB,IAAD,kBAEjB2/G,EACJpC,EAAoCqC,eAClC5/G,EAAoBjB,cAAgB,IAEtCw+G,EAAoCv9G,EAAoBjB,cAAgB,IACxEw+G,EAAoCv9G,EAAoBjB,cAAgB,GAAGx0H,SACzEy1H,EAAoBz1H,QACtBgzO,EAAoCv9G,EAAoBjB,cAAgB,GAAGlsH,UACzEmtH,EAAoBntH,QAClB0qO,EAAoCv9G,EAAoBjB,cAAgB,GACxE,GAiDN,OA/CIikE,kBAAQ28C,IACVnC,GAAuC,SAACyB,GAAD,mBAAC,eACnCA,GADkC,kBAEpCj/G,EAAoBjB,cAAgB,OAAIn7I,OAGJ,aACvC2mB,OAAQy1H,EAAoBz1H,OAC5BwC,SAAQ,UAAEizH,EAAoBjzH,gBAAtB,QAAkC,GAC1C8F,QAASmtH,EAAoBntH,QAC7BuC,UAAS,UAAE4qH,EAAoB5qH,iBAAtB,QAAmC,GAC5C2pH,YAAaiB,EAAoBjB,YACjC78F,WAAU,iBAAE89F,QAAF,IAAEA,OAAF,EAAEA,EAAqB99F,kBAAvB,aAAqCt+C,EAC/Cu+C,aAAY,UAAE69F,EAAoB79F,oBAAtB,QAAsC,KAClDytJ,uBAAwBltK,EAAektK,uBACvCzjL,UAAWyyH,EAAazyH,UACxBkoB,SAAU,KACVwrN,eAAgBjhH,EAAaihH,eAC7BC,0BAA2B,EAC3BC,wCACEnhH,EAAamhH,wCACfC,qBAAsB,EACtB7uI,WAAYytB,EAAaztB,WACzB8uI,aAAc,KACdC,aAAc,KACdC,aAAc,KACdC,aAAc,KACdC,aAAc,KACdC,aAAc,KACd3wD,yBAA0BjtK,EAAeitK,yBACzCg0C,cAAejhN,EAAeihN,cAC9B31G,mBAAoBtrG,EAAesrG,mBACnC8hE,mBAAoBptK,EAAeotK,mBACnC/gL,WAAY6vH,EAAa7vH,WACzBE,aAAc2vH,EAAa3vH,aAC3By0N,qBAAsBhhN,EAAeghN,uBAAyBN,IAAqBmd,IACnFC,eAAgB5hH,EAAa4hH,eAC7BC,yBAAyB,UAAA7hH,EAAauxD,sBAAb,eAA6B1uG,cAA7B,WACrB,UAAAm9C,EAAauxD,sBAAb,eAA6B1uG,cAAe,UADvB,QAC6B,OAClD79F,EACJs4I,iBAAiB,UAAA0C,EAAa1C,uBAAb,eAA8Bz6C,eAC3C,UAAAm9C,EAAa1C,uBAAb,eAA8Bz6C,cAAe,QAC7C79F,EACJs6P,iBAAkBl+G,EAAoBk+G,kBACnCyB,MAOHlB,EAAyCX,GAAoB7oN,GACnEmoN,EAAyBqB,IA6RzBkC,uCA1O6C,SAC7CC,EACA3qO,GAEA,IAAMgf,EAAuCxd,EAAkBngB,KAAI,SAACygB,GAElE,GADY9B,EAASpkB,WAAU,SAAC/B,GAAD,OAAUA,EAAKivI,cAAgBhnH,EAAWgnH,gBAC9D,EAAG,CAAC,IAAD,oCACNwgH,EAA2C,CAC/CxgH,YAAahnH,EAAWgnH,YACxBx0H,OAAM,UAAEq2O,EAAer2O,cAAjB,QAA2BwN,EAAWxN,OAC5CwC,SAAQ,UAAE6zO,EAAe7zO,gBAAjB,QAA6BgL,EAAWhL,SAChD8F,QAAO,UAAE+tO,EAAe/tO,eAAjB,QAA4BkF,EAAWlF,QAC9CuC,UAAS,UAAEwrO,EAAexrO,iBAAjB,QAA8B2C,EAAW3C,UAClD8sB,WAAYnqB,EAAWmqB,WACvBC,aAAcpqB,EAAWoqB,aACzBwtJ,yBAA0B53K,EAAW43K,yBACrCg0C,cAAe5rN,EAAW4rN,cAC1B31G,mBAAoBj2G,EAAWi2G,mBAC/B8hE,mBAAoB/3K,EAAW+3K,mBAC/B/gL,WAAYgJ,EAAWhJ,WACvBslB,SAAQ,UAAEusN,EAAevsN,gBAAjB,QAA6Btc,EAAWsc,SAChDhnB,WAAU,UAAEuzO,EAAevzO,kBAAjB,QAA+B0K,EAAW1K,WACpDyyO,0BAA2B/nO,EAAW+nO,0BACtCpc,qBAAsB3rN,EAAW2rN,qBACjCsc,qBAAsBjoO,EAAWioO,qBACjCQ,eAAc,UAAEI,EAAeJ,sBAAjB,QAAmCzoO,EAAWyoO,eAC5DP,aAAY,UAAEW,EAAeX,oBAAjB,QAAiCloO,EAAWkoO,aACxDC,aAAY,UAAEU,EAAeV,oBAAjB,QAAiCnoO,EAAWmoO,aACxDC,aAAY,UAAES,EAAeT,oBAAjB,QAAiCpoO,EAAWooO,aACxDC,aAAY,UAAEQ,EAAeR,oBAAjB,QAAiCroO,EAAWqoO,aACxDC,aAAY,UAAEO,EAAeP,oBAAjB,QAAiCtoO,EAAWsoO,aACxDC,aAAY,UAAEM,EAAeN,oBAAjB,QAAiCvoO,EAAWuoO,aACxDG,wBAAuB,UACrBG,EAAeH,+BADM,QACqB1oO,EAAW0oO,wBACvDvkH,gBAAe,UAAE0kH,EAAe1kH,uBAAjB,QAAoCnkH,EAAWmkH,gBAC9D0zD,uBAAwB73K,EAAW63K,uBACnCzjL,UAAS,iBAAEy0O,QAAF,IAAEA,OAAF,EAAEA,EAAgBz0O,iBAAlB,QAA+B4L,EAAW5L,UACnD4zO,wCAAuC,iBACrCa,QADqC,IACrCA,OADqC,EACrCA,EAAgBb,+CADqB,QAErChoO,EAAWgoO,wCACb5uI,WAAU,iBAAEyvI,QAAF,IAAEA,OAAF,EAAEA,EAAgBzvI,kBAAlB,QAAgCp5F,EAAWo5F,WACrD0uI,eAAgB9nO,EAAW8nO,gBAU7B,GAPAvC,GAAmC,SAAC2B,GAAD,mBAAC,eAC/BA,GAD8B,kBAEhClnO,EAAWgnH,cAAgB,EAFK,eAEIwgH,SAM3B,OAAVxnO,QAAU,IAAVA,OAAA,EAAAA,EAAYxN,WAAYq2O,EAAer2O,SAAW,KACxC,OAAVwN,QAAU,IAAVA,OAAA,EAAAA,EAAYlF,YAAa+tO,EAAe/tO,UAAY,GACpD,CACA,IAAM4rO,EAA0CX,GAC9CL,EAAqBnmP,KAAI,SAACxH,GACxB,OAAIA,EAAKivI,cAAgBhnH,EAAWgnH,YAC3B,2BACFjvI,GADL,IAEEya,OAAQq2O,EAAer2O,SAAW,EAClCwC,SAAU6zO,EAAe7zO,UAAY,GACrC8F,QAAS+tO,EAAe/tO,UAAY,EACpCuC,UAAWwrO,EAAexrO,WAAa,KAGpCtlB,MAGX4tP,EAAwBe,GAG1B,OAAOc,EAET,OAAOxnO,KAGH0mO,EAAqCX,GAAoB7oN,GAC/DkoN,EAAqBsB,IA6JrBoC,+BA3RqC,SAACD,GACtC,IAAM3rN,EAAUxd,EAAkBngB,KAAI,SAACygB,GACrC,OAAIA,EAAWgnH,cAAgB6hH,EAAe7hH,aAC5Cu+G,GAAmC,SAAC2B,GAAD,mBAAC,eAC/BA,GAD8B,kBAEhC2B,EAAe7hH,cAAgB,EAFC,YAAC,eAEOhnH,GAAe6oO,QAGnD,2BAAK7oO,GAAe6oO,IAEtB7oO,KAIT,GACEN,EAAkB5lB,WAChB,SAACkmB,GAAD,OAAgBA,EAAWgnH,cAAgB6hH,EAAe7hH,gBACvD,EACL,CACA,IAAMhnH,EAAaN,EAAkB/lB,MACnC,SAACqmB,GAAD,OAAgBA,EAAWgnH,cAAgB6hH,EAAe7hH,eAE5D,IACY,OAAVhnH,QAAU,IAAVA,OAAA,EAAAA,EAAYxN,WAAYq2O,EAAer2O,SAAW,KACxC,OAAVwN,QAAU,IAAVA,OAAA,EAAAA,EAAYlF,YAAa+tO,EAAe/tO,UAAY,GACpD,CACA,IAAM4rO,EAA0CX,GAC9CL,EAAqBnmP,KAAI,SAACxH,GACxB,OAAIA,EAAKivI,cAAgB6hH,EAAe7hH,YAC/B,2BACFjvI,GADL,IAEEya,OAAQq2O,EAAer2O,SAAW,EAClCwC,SAAU6zO,EAAe7zO,UAAY,GACrC8F,QAAS+tO,EAAe/tO,UAAY,EACpCuC,UAAWwrO,EAAexrO,WAAa,KAGpCtlB,MAGX4tP,EAAwBe,IAI5B,IAAMA,EAAqCX,GAAoB7oN,GAC/DkoN,EAAqBsB,IA+OrBqC,2CA3GiD,SACjDF,EACA3qO,GAEA,IAAMgf,EAA2Crd,EAAsBtgB,KAAI,SAACygB,GAE1E,GADY9B,EAASpkB,WAAU,SAAC/B,GAAD,OAAUA,EAAKivI,cAAgBhnH,EAAWgnH,gBAC9D,EAAG,CAAC,IAAD,4CACNwgH,EAA+C,CACnDxgH,YAAahnH,EAAWgnH,YACxBx0H,OAAM,UAAEq2O,EAAer2O,cAAjB,QAA2BwN,EAAWxN,OAC5CwC,SAAQ,UAAE6zO,EAAe7zO,gBAAjB,QAA6BgL,EAAWhL,SAChD8F,QAAO,UAAE+tO,EAAe/tO,eAAjB,QAA4BkF,EAAWlF,QAC9CuC,UAAS,UAAEwrO,EAAexrO,iBAAjB,QAA8B2C,EAAW3C,UAClD8sB,WAAYnqB,EAAWmqB,WACvBC,aAAcpqB,EAAWoqB,aACzBwtJ,yBAA0B53K,EAAW43K,yBACrCg0C,cAAe5rN,EAAW4rN,cAC1B31G,mBAAoBj2G,EAAWi2G,mBAC/B8hE,mBAAoB/3K,EAAW+3K,mBAC/Bz7J,SAAQ,UAAEusN,EAAevsN,gBAAjB,QAA6Btc,EAAWsc,SAChDhnB,WAAU,UAAEuzO,EAAevzO,kBAAjB,QAA+B0K,EAAW1K,WACpDyyO,0BAA2B/nO,EAAW+nO,0BACtCpc,qBAAsB3rN,EAAW2rN,qBACjCsc,qBAAsBjoO,EAAWioO,qBACjCQ,eAAc,UAAEI,EAAeJ,sBAAjB,QAAmCzoO,EAAWyoO,eAC5DP,aAAY,UAAEW,EAAeX,oBAAjB,QAAiCloO,EAAWkoO,aACxDC,aAAY,UAAEU,EAAeV,oBAAjB,QAAiCnoO,EAAWmoO,aACxDC,aAAY,UAAES,EAAeT,oBAAjB,QAAiCpoO,EAAWooO,aACxDC,aAAY,UAAEQ,EAAeR,oBAAjB,QAAiCroO,EAAWqoO,aACxDC,aAAY,UAAEO,EAAeP,oBAAjB,QAAiCtoO,EAAWsoO,aACxDC,aAAY,UAAEM,EAAeN,oBAAjB,QAAiCvoO,EAAWuoO,aACxDG,wBAAuB,UACrBG,EAAeH,+BADM,QACqB1oO,EAAW0oO,wBACvDvkH,gBAAe,UAAE0kH,EAAe1kH,uBAAjB,QAAoCnkH,EAAWmkH,gBAC9D0zD,uBAAwB73K,EAAW63K,uBACnCzjL,UAAW,KACX4zO,wCAAuC,iBACrCa,QADqC,IACrCA,OADqC,EACrCA,EAAgBb,+CADqB,QAErChoO,EAAWgoO,wCACb5uI,WAAU,iBAAEyvI,QAAF,IAAEA,OAAF,EAAEA,EAAgBzvI,kBAAlB,QAAgCp5F,EAAWo5F,WACrD0uI,eAAgB9nO,EAAW8nO,eAC3B9wO,WAAU,iBAAE6xO,QAAF,IAAEA,OAAF,EAAEA,EAAgB7xO,kBAAlB,QAAgCgJ,EAAWhJ,WACrDE,aAAY,2BAAE2xO,QAAF,IAAEA,OAAF,EAAEA,EAAgB3xO,oBAAlB,QAAkC8I,EAAW9I,oBAA7C,aAA6DrrB,EACzEm8I,oBAAmB,2BACjB6gH,QADiB,IACjBA,OADiB,EACjBA,EAAgB7gH,2BADC,QACsBhoH,EAAWgoH,2BADjC,aACwDn8I,GAU7E,GAPA45P,GAAuC,SAACyB,GAAD,mBAAC,eACnCA,GADkC,kBAEpClnO,EAAWgnH,cAAgB,EAFS,eAEAwgH,SAM3B,OAAVxnO,QAAU,IAAVA,OAAA,EAAAA,EAAYxN,WAAYq2O,EAAer2O,SAAW,KACxC,OAAVwN,QAAU,IAAVA,OAAA,EAAAA,EAAYlF,YAAa+tO,EAAe/tO,UAAY,GACpD,CACA,IAAM4rO,EAA0CX,GAC9CL,EAAqBnmP,KAAI,SAACxH,GACxB,OAAIA,EAAKivI,cAAgBhnH,EAAWgnH,YAC3B,2BACFjvI,GADL,IAEEya,OAAQq2O,EAAer2O,SAAW,EAClCwC,SAAU6zO,EAAe7zO,UAAY,GACrC8F,QAAS+tO,EAAe/tO,UAAY,EACpCuC,UAAWwrO,EAAexrO,WAAa,KAGpCtlB,MAGX4tP,EAAwBe,GAE1B,OAAOc,EAET,OAAOxnO,KAGH0mO,EAAyCX,GAAoB7oN,GACnEmoN,EAAyBqB,IA4BzBsC,mCA5JyC,SAACH,GAC1C,IAAM3rN,EAAUrd,EAAsBtgB,KAAI,SAACygB,GACzC,OAAIA,EAAWgnH,cAAgB6hH,EAAe7hH,aAC5Cy+G,GAAuC,SAACyB,GAAD,mBAAC,eACnCA,GADkC,kBAEpC2B,EAAe7hH,cAAgB,EAFK,YAAC,eAEGhnH,GAAe6oO,QAGnD,2BAAK7oO,GAAe6oO,IAEtB7oO,KAIT,GACEH,EAAsB/lB,WACpB,SAACkmB,GAAD,OAAgBA,EAAWgnH,cAAgB6hH,EAAe7hH,gBACvD,EACL,CACA,IAAMhnH,EAAaH,EAAsBlmB,MACvC,SAACqmB,GAAD,OAAgBA,EAAWgnH,cAAgB6hH,EAAe7hH,eAE5D,IACY,OAAVhnH,QAAU,IAAVA,OAAA,EAAAA,EAAYxN,WAAYq2O,EAAer2O,SAAW,KACxC,OAAVwN,QAAU,IAAVA,OAAA,EAAAA,EAAYlF,YAAa+tO,EAAe/tO,UAAY,GACpD,CACA,IAAM4rO,EAA0CX,GAC9CL,EAAqBnmP,KAAI,SAACxH,GACxB,OAAIA,EAAKivI,cAAgB6hH,EAAe7hH,YAC/B,2BACFjvI,GADL,IAEEya,OAAQq2O,EAAer2O,SAAW,EAClCwC,SAAU6zO,EAAe7zO,UAAY,GACrC8F,QAAS+tO,EAAe/tO,UAAY,EACpCuC,UAAWwrO,EAAexrO,WAAa,KAGpCtlB,MAGX4tP,EAAwBe,IAI5B,IAAMA,EAAyCX,GAAoB7oN,GACnEmoN,EAAyBqB,KAkH3B,IAAK7B,EACH,MAAM,IAAIn4J,MAAM,iEAGlB,OAAO,cAACm4J,EAAkBhP,SAAnB,CAA4B3hP,MAAOA,GAAnC,SAA2ChN,KAGvCqkP,EAAuB,WAClC,IAAM/wD,EAAU7gB,qBAAWkrF,GAC3B,GAAgB,OAAZrqE,EACF,MAAM,IAAI9tF,MAAM,iEAElB,OAAO8tF,I,gBC/pBT,IAAIj7K,EAAM,CACT,kBAAmB,KACnB,qBAAsB,KACtB,aAAc,KACd,sBAAuB,KACvB,sBAAuB,KACvB,2BAA4B,KAC5B,iBAAkB,KAClB,sBAAuB,MAIxB,SAAS0pP,EAAeC,GACvB,IAAIv9P,EAAKw9P,EAAsBD,GAC/B,OAAOE,EAAoBz9P,GAE5B,SAASw9P,EAAsBD,GAC9B,IAAIE,EAAoBlmJ,EAAE3jG,EAAK2pP,GAAM,CACpC,IAAI1hK,EAAI,IAAIkF,MAAM,uBAAyBw8J,EAAM,KAEjD,MADA1hK,EAAE96E,KAAO,mBACH86E,EAEP,OAAOjoF,EAAI2pP,GAEZD,EAAe/3I,KAAO,WACrB,OAAO1qB,OAAO0qB,KAAK3xG,IAEpB0pP,EAAet/P,QAAUw/P,EACzBzhP,EAAO2hP,QAAUJ,EACjBA,EAAet9P,GAAK,K,kHCiDL29P,IAzDyB,SAAC11P,GAAW,IAAD,EACjD,EAA4CA,EAApC+6L,gBAAR,SAAyBpiD,EAAmB34I,EAAnB24I,eACzB,EAAgC7iB,aAAY,SAACnsI,GAAD,MAA8B,CACxEse,QAAS0tP,IAA+BhsQ,GACxC60K,WACEm3F,IAAsChsQ,IACtCgsQ,IAA6ChsQ,OAJzCse,EAAR,EAAQA,QAASu2J,EAAjB,EAAiBA,WAQjB,EAAoCpoC,mBAASzwG,KAAKD,OAAlD,mBAAO+rM,EAAP,KAAmBC,EAAnB,KAYA,OANAviH,qBAAU,WACHqvD,GALLkzD,EAAc/rM,KAAKD,SAQlB,CAAC84I,EAAD,OAAax+J,QAAb,IAAaA,GAAb,UAAaA,EAAOwuG,eAApB,aAAa,EAAgB77F,SAG9B,sCACI3S,EAAMwuG,SAAW,cAAC,IAAD,CAAekqC,YAAU,EAACC,eAAc,OAAEA,QAAF,IAAEA,IAAkB,KAC/E,wBAAC,IAAD,yBACEj1I,QAAS1D,EAAM0D,SACX1D,GAFN,IAGEnU,IAAK4lO,EACL17F,UAAWyoC,EACXtyD,MAAO6uF,EAAW/6L,EAAMksG,OAAS,cAAC,IAAD,CAAkBn0G,GAAG,mBAAsB,KAC5Ey2G,QACExuG,EAAMwuG,SACNvmG,EAAQ0D,KAAI,SAACy7B,GAAY,IAAD,EACtB,MAAO,CACLrvC,GAAIqvC,EAAOsB,SACXlwC,KACE,cAAC,IAAD,CAEEw/K,KAAW,OAAN5wI,QAAM,IAANA,OAAA,EAAAA,EAAQwuN,gBAAR,OAAyBxuN,QAAzB,IAAyBA,OAAzB,EAAyBA,EAAQwuN,oBAAiB39P,EACvD4L,MAAM,gBACN8oG,UAAW,OACXtzG,QAAO,UAAE+tC,EAAO1lB,kBAAT,QAAuB,GAC9By2J,UAAQ,IAGZ73K,MAAO8mC,EAAOsB,SACdwjE,MAAO9kE,EAAO1lB,WACd4qF,WAAYllE,EAAO1lB,uB,6BCjDlBxzB,IApBK,CAClB6mO,UAAW,QACX1lL,SAAU,QACVI,UAAW,QACXE,YAAa,QACbkmN,gBAAiB,QACjBC,qBAAsB,QACtBC,oBAAqB,QACrBC,yBAA0B,QAC1BC,oBAAqB,QACrBC,yBAA0B,QAC1BC,gBAAiB,QACjBC,qBAAsB,QACtBC,oBAAqB,QACrBC,yBAA0B,QAC1BC,kBAAmB,QACnBC,uBAAwB,QACxBC,iBAAkB,U,6MC8HLliB,IA3HU,SAACv0O,GAAW,IAAD,EAEhC0pG,EASE1pG,EATF0pG,aADF,EAUI1pG,EARF02P,yBAFF,WAUI12P,EAPFw0O,+BAHF,SAIEnmI,EAMEruG,EANFquG,MAJF,EAUIruG,EALF22P,qBALF,WAUI32P,EAJF42P,qBANF,WAUI52P,EAHFkO,eAPF,MAOY,KAPZ,IAUIlO,EAFF62P,0BARF,SAWMzjQ,GAXN,YAUI4M,EAVJ,uIAWazM,eACP4e,EAAWipI,cACX07G,EACa,WAAjBptJ,EACI,gBACiB,YAAjBA,EACA,kBACA,mBACN,EAA4EosB,aAC1E,SAACnsI,GACC,IAAM2gC,EAAW4nO,cAA+BvoQ,EAA/B,OAAsC0kH,QAAtC,IAAsCA,OAAtC,EAAsCA,EAAO/tG,OAC9D,MAAO,CACLy2P,cAAe5rP,+BAA2CxhB,EAAO,CAACuE,IAAYw0B,cAC9Eta,UAAW8pP,EAAmB4E,GAAUntQ,GACrCs8B,QAAO,SAAC5D,GACP,OAASw0O,GACqB,QAAlB,OAARx0O,QAAQ,IAARA,OAAA,EAAAA,EAAU4xH,mBAAkDh8I,KAAlB,OAARoqB,QAAQ,IAARA,OAAA,EAAAA,EAAU4xH,gBAGjDhuH,QAAO,SAAC5D,GAAD,OACM,OAAZnU,QAAgCjW,IAAZiW,EAChBmU,EAASnzB,cAAT,OAAwBgf,QAAxB,IAAwBA,OAAxB,EAAwBA,EAAShf,aACjCmzB,EAASh0B,kBAAT,OAA4B6f,QAA5B,IAA4BA,OAA5B,EAA4BA,EAAS7f,gBACrCg0B,KAEL1W,KAAI,SAAC0W,GAAD,MAAe,CAClB/hB,MAAO+hB,EAASe,WAChB8oF,MAAO7pF,EAASiB,iBAEpB0zO,iBACiC,OAAvB,OAAR1sO,QAAQ,IAARA,OAAA,EAAAA,EAAU8rN,mBAA4BV,YAAuBprN,EAAUl3B,GAAQ,GACjF6jQ,oBAAqB/E,EAAmB4E,GAAUntQ,OAvBhDotQ,EAAR,EAAQA,cAAe3uP,EAAvB,EAAuBA,UAAW4uP,EAAlC,EAAkCA,iBA2BlC,GA3BA,EAAoDC,oBA2BR7gI,oBAAkB,IAA9D,mBAAO8tG,EAAP,KAAwBC,EAAxB,KACM+yB,EAAiB,kBAAM/yB,GAAiB,IAC9C,EAAsC/tG,oBAAS,GAA/C,mBAAOC,EAAP,KAAoBC,EAApB,KAGA,OACE,qCACE,cAAC,IAAD,CAAeojB,cAAY,IAC3B,cAAC,IAAD,2BACM15I,GADN,IAEEwuG,QAASpmG,GAAa,GACtB8jG,MAAO94G,EAAK0E,cAAc,CAAEC,GAAI,uBAChC24G,YAAat9G,EAAK0E,cAAc,CAAEC,GAAI,6BACtCw5G,gBACEmlJ,GAAqBK,EACnB,qCACE,cAAC,IAAD,CACElgI,UAAU,MACVC,OAAQT,EACR37B,OAAQ,cACRq8B,OAjBC,kBAAMT,GAAgBD,IAkBvBW,QAAQ,cALV,SAOE,cAAC,IAAD,CACEj/H,GAAI,cACJ+uB,OAAQ,CAAExkB,WAAYlP,EAAK0E,cAAc,CAAEC,GAAI,4BAGnD,cAAC,IAAD,CACEA,GAAI,cACJy0G,MAAO,CAAEm1D,OAAQ,WACjBh1D,UAAW,MACX6pB,QAAS,WACPrkH,EAASlC,OACTk0N,GAAiB,IANrB,SASE,cAAC,IAAD,CAAMvgO,KAAM,UAIhB,gCAIL4wO,IAAuB,OAAIwiB,QAAJ,IAAIA,OAAJ,EAAIA,EAAkB5zO,aAC5C,qCACGuzO,GACC,gCACE,2CAAYvjQ,EAAK0E,cAAc,CAAEC,GAAI,mCAArC,QADF,oBAEMi/P,EAAiB7gB,4BAFvB,QAE+C,UAGhDygB,GACC,sBAAKjqJ,UAAW,OAAhB,UACE,2CAAYv5G,EAAK0E,cAAc,CAAEC,GAAI,wBAArC,QADF,UAEM3E,EAAK0E,cAAc,CAAEC,GAAI,kBAF/B,YAGIi/P,EAAiB9sJ,UAAY8sJ,EAAiB9sJ,UAAY,UAMlD,WAAjBR,GACC,cAAC,IAAD,CAAYw6H,gBAAiBA,EAAiBizB,kBAAmB,kBAAMD,OAEvD,YAAjBxtJ,GACC,cAAC,IAAD,CACE0tJ,kBAAmBlzB,EACnBizB,kBAAmB,kBAAMD,Y,qHC9HnCG,IAAiBC,KA8TF/kD,IA5RM,SAAC,GAqBR,IApBZ18M,EAoBW,EApBXA,KACA0hQ,EAmBW,EAnBXA,UAmBW,IAlBXj4P,aAkBW,MAlBH,OAkBG,MAjBXwtG,cAiBW,MAjBF,QAiBE,EAhBX0qJ,EAgBW,EAhBXA,WACAh5F,EAeW,EAfXA,WACAxkD,EAcW,EAdXA,IACAD,EAaW,EAbXA,IAaW,IAZX09I,mBAYW,MAZG,EAYH,MAXX7kD,oBAWW,MAXI,EAWJ,MAVX8kD,qBAUW,SATXjlD,EASW,EATXA,WAEAE,GAOW,EARXD,WAQW,EAPXC,cACAvqC,EAMW,EANXA,YAMW,IALXuvF,0BAKW,SAJXn9H,EAIW,EAJXA,OACAhE,EAGW,EAHXA,QAGW,IAFXohI,gBAEW,MAFA,WAEA,MADXC,gBACW,MADA,GACA,EACLC,EAAQ7lH,iBAAY,MAC1B,EAAwC7b,oBAAS,GAAjD,mBAAO2hI,EAAP,KAAqBC,EAArB,KAEM5kQ,EAAOG,cAyPb,OAxPA0kQ,2BAAgB,WAEd,GADIH,EAAMl2F,SAASk2F,EAAMl2F,QAAQs2F,WAC5B15F,EAAY,CACf,IAAI7jK,EAAI08P,IAAeO,EAAUO,KACjCx9P,EAAEy9P,UAAU7lJ,UAAW,EACvB53G,EAAEu6F,cAAcC,WAAa,aAG7B,IAAIkjK,EAAW19P,EAAE29P,MAAMnyP,KAAK,IAAIgyP,KAChCE,EAASE,YAAYC,OAAO,MAAO,cACnCH,EAASI,kBAAoB,mBAC7BJ,EAASK,aAAe,CACtBC,SAAU,SACVl+E,MAAO,GAGT,IAAIm+E,EAAaj+P,EAAEk+P,MAAM1yP,KAAK,IAAIgyP,KAKlC,GAJAS,EAAW35P,MAAMxG,KAAOk6M,EAGb,MAAP34F,IAAa4+I,EAAW5+I,IAAMA,GAChB,MAAdy4F,EAAoB,CACtB,IAAI9zJ,EAAQi6M,EAAWpB,WAAW7gQ,SAClCgoD,EAAMr+C,MAAQmyM,EACd9zJ,EAAMm6M,KAAKC,OAAS1B,IAAc,WAClC14M,EAAMm6M,KAAKE,YAAc,EACzBr6M,EAAMm6M,KAAKG,cAAgB,EAC3Bt6M,EAAMm6M,KAAKI,gBAAkB,MAC7Bv6M,EAAMutD,MAAMitJ,QAAS,EACrBx6M,EAAMutD,MAAMzzG,KAAO,MACnBkmD,EAAMutD,MAAMktJ,KAAOz6M,EAAMm6M,KAAKC,OAC9Bp6M,EAAMutD,MAAMmtJ,eAAiB,SAIpB,MAAPt/I,IAAa6+I,EAAW7+I,IAAMA,GAcxB,OAAVy9I,QAAU,IAAVA,KAAY7rP,KAAI,SAACsxL,GAAQ,IAAD,EAClBq8D,EAAUV,EAAWpB,WAAW7gQ,SACpC2iQ,EAAQh5P,MAAQ28L,EAAG38L,MACnBg5P,EAAQR,KAAKC,OAAb,iBAAsB97D,QAAtB,IAAsBA,OAAtB,EAAsBA,EAAIp5L,aAA1B,QAAmCwzP,IAAc,WACjDiC,EAAQR,KAAKE,YAAc,EAC3BM,EAAQR,KAAKG,cAAgB,EAC7BK,EAAQR,KAAKI,gBAAkB,MAC/BI,EAAQptJ,MAAMitJ,QAAS,EACvBG,EAAQptJ,MAAMzzG,KAAOwkM,EAAGxkM,KACxB6gQ,EAAQptJ,MAAMktJ,KAAOE,EAAQR,KAAKC,OAClCO,EAAQptJ,MAAMmtJ,eAAiB,YAGjC,IAAIE,EAAU5+P,EAAEgvI,OAAOxjI,KAAK,IAAIgyP,KAChCoB,EAAQC,WAAWC,OAAS,QAC5BF,EAAQC,WAAWE,MAAQ,OAC3BH,EAAQP,YAAc,EACtBO,EAAQ1B,SAAWA,EACnB,IAAI8B,EAASJ,EAAQK,QAAQzzP,KAAK,IAAIgyP,KAClC0B,EAAU,GACVC,EAAU,GACVC,EAAU,GACVC,EAAU,GAqKd,OApKItC,IAGFoC,GADAD,EAAUl/P,EAAEgvI,OAAOxjI,KAAK,IAAIgyP,MACVyB,QAAQzzP,KAAK,IAAIgyP,KACnC0B,EAAQL,WAAWC,OAAS,UAC5BI,EAAQL,WAAWE,MAAQ,OAC3BG,EAAQb,YAAc,EACtBa,EAAQhC,SAAWA,EAEnBiC,EAAQG,OAAOC,eAAed,KAAO,QACrCU,EAAQG,OAAOC,eAAenB,OAAS,QAElB,IAAjBnmD,GACFknD,EAAQG,OAAO58F,OAASu1C,EACxBknD,EAAQG,OAAOC,eAAe78F,OAAS,SACvCy8F,EAAQG,OAAOjB,YAAc,KAE7Bc,EAAQG,OAAO58F,OAASu1C,EACxBknD,EAAQG,OAAOC,eAAe78F,OAAS,SACvCy8F,EAAQG,OAAO58F,OAAS,GAGtBk6F,GACFsC,EAAQT,KAAO,UACfS,EAAQd,OAAS,YAEjBc,EAAQK,eAAed,KAAO,QAC9BS,EAAQK,eAAenB,OAAS,SAGlCc,EAAQM,MAAQvB,EAChBiB,EAAQ7hQ,KAAO5E,EAAK0E,cAAc,CAAEC,GAAI,sBACxC8hQ,EAAQpC,YAAcA,EAKtBuC,GADAD,EAAUp/P,EAAEgvI,OAAOxjI,KAAK,IAAIgyP,MACVyB,QAAQzzP,KAAK,IAAIgyP,KACnC4B,EAAQP,WAAWC,OAAS,SAC5BM,EAAQP,WAAWE,MAAQ,OAC3BK,EAAQf,YAAc,EACtBe,EAAQzsE,QAAU,EAClBysE,EAAQlC,SAAW,IAEnBmC,EAAQC,OAAOC,eAAed,KAAO,QACrCY,EAAQC,OAAOC,eAAenB,OAAS,QACvCiB,EAAQZ,KAAO,QACfY,EAAQjB,OAAS,QACI,IAAjBnmD,GACFonD,EAAQC,OAAO58F,OAASu1C,EACxBonD,EAAQC,OAAOC,eAAe78F,OAAS,SACvC28F,EAAQC,OAAOC,eAAed,KAAO,QACrCY,EAAQC,OAAOC,eAAenB,OAAS,QACvCiB,EAAQC,OAAOjB,YAAc,GAC7Be,EAAQzsE,QAAU,EAClB0sE,EAAQZ,KAAO,QACfY,EAAQjB,OAAS,UAEjBiB,EAAQC,OAAO58F,OAASu1C,EACxBonD,EAAQC,OAAOC,eAAe78F,OAAS,SACvC28F,EAAQC,OAAO58F,OAAS,GAG1B08F,EAAQI,MAAQvB,EAChBmB,EAAQ/hQ,KAAO5E,EAAK0E,cAAc,CAAEC,GAAI,qBACxCgiQ,EAAQtC,YAAcA,GAKxBkC,EAAOM,OAAOC,eAAed,KAAO,QACpCO,EAAOM,OAAOC,eAAenB,OAAS,QACjB,IAAjBnmD,GACF+mD,EAAOM,OAAO58F,OAASu1C,EACvB+mD,EAAOM,OAAOC,eAAe78F,OAAS,SACtCs8F,EAAOM,OAAOjB,YAAc,GAC5Be,EAAQX,KAAO,QACfW,EAAQhB,OAAS,UAEjBY,EAAOM,OAAO58F,OAASu1C,EACvB+mD,EAAOM,OAAOC,eAAe78F,OAAS,SACtCs8F,EAAOM,OAAO58F,OAAS,EACvB08F,EAAQX,KAAO,QACfW,EAAQhB,OAAS,SAGfxB,GACFgC,EAAQH,KAAO7B,EACfgC,EAAQR,OAASxB,IAEjBgC,EAAQW,eAAed,KAAO,QAC9BG,EAAQW,eAAenB,OAAS,SAElCQ,EAAQY,MAAQvB,EAChBW,EAAQvhQ,KAAO26M,EACf4mD,EAAQ9B,YAAcA,EACtB8B,EAAQnxF,YAAR,OAAsBA,QAAtB,IAAsBA,IAAtB,8CAA4E5tC,EAA5E,OACAq/H,EAAQzxF,YAAR,qDAAoE5tC,EAApE,OACAu/H,EAAQ3xF,YAAcA,EAElBuvF,GAAsB4B,EAAQp8G,UAChCo8G,EAAQp8G,QAAQi9G,mBAAoB,EACpCb,EAAQp8G,QAAQurD,WAAWwxD,eAAed,KAAO,QACjDG,EAAQp8G,QAAQjxC,MAAM+B,SAAW,IACjCsrJ,EAAQp8G,QAAQjxC,MAAM4zG,MAAO,GAG3B63C,GAAsB4B,EAAQp8G,SAAW08G,EAAQ18G,SAAW48G,EAAQ58G,UACtEo8G,EAAQp8G,QAAQi9G,mBAAoB,EACpCb,EAAQp8G,QAAQurD,WAAWwxD,eAAed,KAAO,QACjDG,EAAQp8G,QAAQjxC,MAAM+B,SAAW,IACjCsrJ,EAAQp8G,QAAQjxC,MAAM4zG,MAAO,EAE7B+5C,EAAQ18G,QAAQi9G,mBAAoB,EACpCP,EAAQ18G,QAAQurD,WAAWwxD,eAAed,KAAO,QACjDS,EAAQ18G,QAAQjxC,MAAM+B,SAAW,IACjC4rJ,EAAQ18G,QAAQjxC,MAAM4zG,MAAO,EAE7Bi6C,EAAQ58G,QAAQi9G,mBAAoB,EACpCL,EAAQ58G,QAAQurD,WAAWwxD,eAAed,KAAO,QACjDW,EAAQ58G,QAAQjxC,MAAM+B,SAAW,IACjC8rJ,EAAQ58G,QAAQjxC,MAAM4zG,MAAO,EAEX,YAAdy3C,IACFgC,EAAQ1B,SAAW,GACnBgC,EAAQhC,SAAW,KAKvBl9P,EAAEgnK,OAAS,IAAIw2F,IACfx9P,EAAE0/P,OAAO5rE,GAAG,OAAO,WACbj4D,GAASA,EAAQ+iI,EAAQe,gBAAgBC,gBAgB/C5/P,EAAE6/P,OAAS,IAAIrC,IACfx9P,EAAE6/P,OAAO3hQ,SAAW,MAGpB8B,EAAE8/P,WAAa,IAAItC,IACnBx9P,EAAE8/P,WAAW9wH,OAAOxjI,KAAKozP,GACrB7B,IACF/8P,EAAE8/P,WAAW9wH,OAAOxjI,KAAK0zP,GACzBl/P,EAAE8/P,WAAW9wH,OAAOxjI,KAAK4zP,IAE3Bp/P,EAAE8/P,WAAWhtJ,OAAS9yG,EAAE+/P,oBAExB//P,EAAE9E,KAAOA,EAETiiQ,EAAMl2F,QAAUjnK,EAET,WACLm9P,EAAMl2F,QAAQs2F,cAGjB,CAAC15F,EAAYzkD,EAAKC,EAAlB,OAAuBnkH,QAAvB,IAAuBA,OAAvB,EAAuBA,EAAM8c,SAEhCw8F,qBAAU,WACJ2oJ,EAAMl2F,SACRo2F,GAAgB,KAEjB,CAACF,EAAMl2F,UAEHpD,IAAeu5F,EACpB,cAAC,IAAD,UACE,cAAC,IAAD,CAAKr2F,GAAG,KAAK/0D,UAAU,eAAvB,SACE,cAAC,IAAD,CAAS9oG,MAAM,UAAUD,KAAK,WAIlC,qBAAK7L,GAAI6/P,EAAUprJ,MAAO,CAAEltG,QAAOwtG,c,oQCCjCpjG,EAAa1f,YAAgB,CACjCs5G,KAhUW,WAAyB,IAAxB35G,EAAuB,uDAAf,GAAIC,EAAW,uCACnC,OAAQA,EAAOC,MAEb,KAAKC,IACL,KAAKA,IACH,MAA4BF,EAAOM,QAA3B2d,EAAR,EAAQA,SAAUshB,EAAlB,EAAkBA,MACZrf,EAAQ,eAAQngB,GAStB,OARAw/B,EAAMrR,SAAQ,SAACkrC,GACbl5C,EAASk5C,GAAT,qCACEhrC,YAAY,GACTruB,EAAMq5D,IACNn7C,EAASm7C,IAHd,IAIEljD,aAAa,OAGVgK,EAGT,KAAKhgB,IACH,MAAiCF,EAAOM,QAAhC6N,EAAR,EAAQA,GAAI6/B,EAAZ,EAAYA,MAAOirB,EAAnB,EAAmBA,UACb/4C,EAAW69F,IAAKh+G,EAAOiuC,GAM7B,OALA9tB,EAAS/R,GAAT,2BACK8qD,GADL,IAEE/iD,aAAa,EACbkY,YAAY,IAEPlO,EAGT,KAAKhgB,IACH,IAAM6wQ,EAAoB/wQ,EAAOM,QAC3B6N,EAAK4iQ,EAAkB33M,YAEvB2lK,EAAehhH,IAAKh+G,EAAMoO,GAAK,CAAC,iBAChC6iQ,EAAejzJ,IAAKgzJ,EAAmB,CAAC,iBAExCE,EAAkB,uCACnBlyC,GACAiyC,GAFmB,IAGtB96P,aAAa,IAGTgK,EAAQ,2BACTngB,GADS,kBAEXoO,EAAK8iQ,IAER,OAAO/wP,EAIT,KAAKhgB,IACH,IAAM+4D,EAAYj5D,EAAOM,QACnB4f,EAAQ,eAAQngB,GAMtB,OALAmgB,EAAS+4C,EAAUvF,QAAnB,yBACEtlC,YAAY,GACT6qC,GAFL,IAGE/iD,aAAa,IAERgK,EAGT,KAAKhgB,IACH,IAAM+4D,EAAYj5D,EAAOM,QACnB6N,EAAK8qD,EAAUG,YACfl5C,EAAQ,2BACTngB,GADS,kBAEXoO,EAFW,2BAGPpO,EAAMoO,IAHC,IAIV4wN,aAAch/N,EAAMoO,GACpB+H,aAAa,GACV+iD,KAGP,OAAO/4C,EAIT,KAAKhgB,IACH,IAAQ8tC,EAAUhuC,EAAOM,QAAjB0tC,MACR,OAAIjuC,EAAMiuC,GACD+vE,IAAKh+G,EAAOiuC,GAEdjuC,EAGT,KAAKG,IACH,IAAQ6+N,EAAiB/+N,EAAOM,QAAxBy+N,aACR,OAAO,2BACFh/N,GADL,kBAEGg/N,EAAa3lK,YAFhB,uCAGO2kD,IAAKh+G,EAAMg/N,EAAa3lK,aAAc,CAAC,kBACvC2lK,GAJP,IAKI7oN,aAAa,MAMnB,KAAKhW,IACH,IAAQiO,EAAOnO,EAAOM,QAAd6N,GACR,OAAO4vG,IAAKh+G,EAAOoO,GAIrB,QACE,OAAOpO,IAwNXw/B,MAnNY,WAAyB,IAAxBx/B,EAAuB,uDAAf,GAAIC,EAAW,uCACpC,OAAQA,EAAOC,MAEb,KAAKC,IACH,IAAQq/B,EAAUv/B,EAAOM,QAAjBi/B,MACR,OAAOs6E,IAAMt6E,GAGf,KAAKr/B,IACH,IAAQq/B,EAAUv/B,EAAOM,QAAjBi/B,MACR,OAAO+yB,IAAK,GAAD,mBAAKvyD,GAAL,YAAew/B,KAG5B,KAAKr/B,IACH,MAAsBF,EAAOM,QAArB6N,EAAR,EAAQA,GAAI6/B,EAAZ,EAAYA,MACZ,OAAOjuC,EAAMgiB,KAAI,SAACq3C,GAAD,OAAkBA,IAAgBprB,EAAQ7/B,EAAKirD,KAGlE,KAAKl5D,IACH,IAAQiO,EAAOnO,EAAOM,QAAd6N,GACR,OAAOpO,EAAMs8B,QAAO,SAAC60O,GAAD,OAAsBA,IAAqB/iQ,KAIjE,KAAKjO,IACH,IAAM+4D,EAAYj5D,EAAOM,QACzB,MAAM,GAAN,mBAAWP,GAAX,CAAkBk5D,EAAUvF,SAI9B,KAAKxzD,IACH,IAAQ8tC,EAAUhuC,EAAOM,QAAjB0tC,MACR,OAAOjuC,EAAMs8B,QAAO,SAAC60O,GAAD,OAAsBA,IAAqBljO,KAIjE,QACE,OAAOjuC,IA+KXm+G,sBA1J4B,WAA4B,IAA3Bn+G,EAA0B,wDAAXC,EAAW,uCACvD,OAAQA,EAAOC,MACb,KAAKC,IACH,OAAO,EAET,KAAKA,IACL,KAAKA,IACH,OAAO,EAET,QACE,OAAOH,IAiJX47G,eA1KqB,WAA4B,IAA3B57G,EAA0B,wDAAXC,EAAW,uCAChD,OAAQA,EAAOC,MACb,KAAKC,IACH,OAAO,EAET,KAAKA,IACL,KAAKA,IACH,OAAO,EAET,QACE,OAAOH,IAiKXo+G,SA7Ie,WAA4B,IAA3Bp+G,EAA0B,wDAAXC,EAAW,uCAC1C,OAAQA,EAAOC,MACb,KAAKC,IACH,OAAO,EAET,KAAKA,IACL,KAAKA,IACH,OAAO,EAET,QACE,OAAOH,IAoIXq+G,UA/HgB,WAA4B,IAA3Br+G,EAA0B,wDAAXC,EAAW,uCAC3C,OAAQA,EAAOC,MACb,KAAKC,IACH,OAAO,EAET,KAAKA,IACL,KAAKA,IACH,OAAO,EAET,QACE,OAAOH,IAsHXs+G,WAjHiB,WAA4B,IAA3Bt+G,EAA0B,wDAAXC,EAAW,uCAC5C,OAAQA,EAAOC,MACb,KAAKC,IACH,OAAO,EAET,KAAKA,IACL,KAAKA,IACH,OAAO,EAET,QACE,OAAOH,IAwGXu+G,yBAnF+B,WAA2B,IAA1Bv+G,EAAyB,uDAAjB,KAAMC,EAAW,uCACzD,OAAQA,EAAOC,MACb,KAAKC,IACH,IAAQ4B,EAAU9B,EAAOM,QAAjBwB,MACR,OAAOA,EAET,KAAK5B,IACL,KAAKA,IACH,OAAO,KAET,QACE,OAAOH,IAyEX87G,kBApGwB,WAA2B,IAA1B97G,EAAyB,uDAAjB,KAAMC,EAAW,uCAClD,OAAQA,EAAOC,MACb,KAAKC,IACH,IAAQ4B,EAAU9B,EAAOM,QAAjBwB,MACR,OAAOA,EAET,KAAK5B,IACL,KAAKA,IACH,OAAO,KAET,QACE,OAAOH,IA0FXw+G,YArEkB,WAA2B,IAA1Bx+G,EAAyB,uDAAjB,KAAMC,EAAW,uCAC5C,OAAQA,EAAOC,MACb,KAAKC,IACH,IAAQ4B,EAAU9B,EAAOM,QAAjBwB,MACR,OAAOA,EAET,KAAK5B,IACL,KAAKA,IACH,OAAO,KAET,QACE,OAAOH,IA2DXy+G,aAtDmB,WAA2B,IAA1Bz+G,EAAyB,uDAAjB,KAAMC,EAAW,uCAC7C,OAAQA,EAAOC,MACb,KAAKC,IACH,IAAQ4B,EAAU9B,EAAOM,QAAjBwB,MACR,OAAOA,EAET,KAAK5B,IACL,KAAKA,IACH,OAAO,KAET,QACE,OAAOH,IA4CX0+G,cAvCoB,WAA2B,IAA1B1+G,EAAyB,uDAAjB,KAAMC,EAAW,uCAC9C,OAAQA,EAAOC,MACb,KAAKC,IACH,IAAQ4B,EAAU9B,EAAOM,QAAjBwB,MACR,OAAOA,EAET,KAAK5B,IACL,KAAKA,IACH,OAAO,KAET,QACE,OAAOH,IA6BX+9H,kBAxBwB,WAA4B,IAA3B/9H,EAA0B,wDAAXC,EAAW,uCACnD,OAAQA,EAAOC,MACb,KAAKC,IACH,OAAO,EAET,QACE,OAAOH,MAqBE+f,MAGR,IAAMtd,EAAc,SAACzC,GAAD,OAAWA,EAAM+f,YAG/BqxP,EAAe,SAACpxQ,EAAOoO,GAAiC,IAAD,EAC5D8qD,EAAS,UAAGz2D,EAAYzC,GAAO25G,KAAKvrG,UAA3B,QAAkC,KAEjD,OAAO,eACF8qD,IAIMm4M,EAAoB,SAACrxQ,GAAD,uBAC/ByC,EAAYzC,GAAOw/B,aADY,aAC/B,EAA0Bxd,KAAI,SAAC5T,GAAD,OAAQgjQ,EAAapxQ,EAAOoO,OAE/CkjQ,EAAgC,SAACtxQ,EAAOsB,GAEnD,OAAIA,EAAWoD,eACTpD,EAAWsD,WACTtD,EAAWwD,cACNusQ,EAAkBrxQ,GAAOs8B,QAC9B,SAAC48B,GAAD,OACEA,EAAUx0D,iBAAmBpD,EAAWoD,gBACxCw0D,EAAUt0D,aAAetD,EAAWsD,YACpCs0D,EAAUp0D,gBAAkBxD,EAAWwD,iBAGtCusQ,EAAkBrxQ,GAAOs8B,QAC9B,SAAC48B,GAAD,OACEA,EAAUx0D,iBAAmBpD,EAAWoD,gBACxCw0D,EAAUt0D,aAAetD,EAAWsD,cAGnCysQ,EAAkBrxQ,GAAOs8B,QAC9B,SAAC48B,GAAD,OAAeA,EAAUx0D,iBAAmBpD,EAAWoD,kBAI/C2sQ,EAAkBrxQ,IAMnBuxQ,EAA4B,SAACvxQ,GAAD,OAAWyC,EAAYzC,GAAO+9H,oB,6BCjXxD0oD,IAnBD,CACZ2nD,WAAY,WACZojC,cAAe,gCACfC,iBAAkB,mCAClBC,4BAA6B,oDAC7BC,kBAAmB,8BACnBC,wBAAyB,8BACzBC,2BAA4B,iCAC5BC,8BAA+B,oCAC/BC,+BAAgC,qCAChCC,gCAAiC,sCACjCC,qBAAsB,mCACtBC,uBAAwB,6BACxBC,+BAAgC,sCAChCC,0BAA2B,gCAC3BC,2BAA4B,iCAC5BC,0BAA2B,kC,gLCiCvBroB,EAA2B,SAAC5zO,GAAW,IAAD,EAC1C,EAeIA,EAdFquG,MAAS/tG,EADX,EACWA,MAAOivG,EADlB,EACkBA,SAChBb,GAFF,EAC4BmC,OAcxB7wG,EAbF0uG,mBACAmlI,EAYE7zO,EAZF6zO,QACAC,EAWE9zO,EAXF8zO,SACAC,EAUE/zO,EAVF+zO,WACAC,EASEh0O,EATFg0O,WACAvzO,EAQET,EARFS,aACA6tG,EAOEtuG,EAPFsuG,WACAyL,EAME/5G,EANF+5G,IACAC,EAKEh6G,EALFg6G,IACA0gB,EAIE16H,EAJF06H,cACAC,EAGE36H,EAHF26H,kBACA/rB,EAEE5uG,EAFF4uG,2BACGK,EAdL,YAeIjvG,EAfJ,uLAiBA,EAAoCo2H,mBAAmB,CACrDvoC,KAAM,GACNL,MAAO,GACPC,QAAS,GACTH,QAAS,GACTwI,aAAc,IALhB,mBAAO11F,EAAP,KAAmB26H,EAAnB,KASA5rB,qBAAU,WACR,GACET,GAC6B,kBAAtBA,GACP,iBAAkBA,IAFlB,OAGAA,QAHA,IAGAA,OAHA,EAGAA,EAAmB5Y,cACnB,CACA,IAAIomK,EAAgB,OAAGxtJ,QAAH,IAAGA,OAAH,EAAGA,EAAmB5Y,aAEpCjI,EAAOH,KAAKC,MAAMuuK,EAAW5hG,IAAcrwD,KACjDiyJ,GAAsBruK,EAAOysE,IAAcrwD,IAE3C,IAAMzc,EAAQE,KAAKC,MAAMuuK,EAAW5hG,IAAct+D,MAClDkgK,GAAsB1uK,EAAQ8sE,IAAct+D,KAE5C,IAAMvO,EAAUC,KAAKC,MAAMuuK,EAAW5hG,IAAcC,QAE9CjtE,EADN4uK,GAAsBzuK,EAAU6sE,IAAcC,OAG9Cx/B,EAAc,CACZltC,KAAMA,EAAK5hF,WACXuhF,MAAOA,EAAMvhF,WACbwhF,QAASA,EAAQxhF,WACjBqhF,QAASA,EAAQrhF,WACjB6pF,aAAY,OAAE4Y,QAAF,IAAEA,OAAF,EAAEA,EAAmB5Y,eAEnCsZ,EAAc,CACZvhB,KAAMA,EAAK5hF,WACXuhF,MAAOA,EAAMvhF,WACbwhF,QAASA,EAAQxhF,WACjBqhF,QAASA,EAAQrhF,WACjB6pF,aAAY,OAAE4Y,QAAF,IAAEA,OAAF,EAAEA,EAAmB5Y,kBA/B9B,YAkCFlD,OAAO9rE,OAAP,OAAc4nF,QAAd,IAAcA,IAAqB,MAE1CS,qBAAU,WACR,GAAK7uG,GASH,IAAKF,GAA2C,IAA5BA,EAAW01F,cAAsBx1F,EAAQ,CAC3D,IAAI47P,GAAwB,OAAL57P,QAAK,IAALA,OAAA,EAAAA,EAAOw1F,cAAP,OAAsBx1F,QAAtB,IAAsBA,OAAtB,EAAsBA,EAAOw1F,aAAex1F,EAE7DutF,EAAOH,KAAKC,MAAMuuK,EAAW5hG,IAAcrwD,KACjDiyJ,GAAsBruK,EAAOysE,IAAcrwD,IAE3C,IAAMzc,EAAQE,KAAKC,MAAMuuK,EAAW5hG,IAAct+D,MAClDkgK,GAAsB1uK,EAAQ8sE,IAAct+D,KAE5C,IAAMvO,EAAUC,KAAKC,MAAMuuK,EAAW5hG,IAAcC,QAG9CjtE,EAFN4uK,GAAsBzuK,EAAU6sE,IAAcC,OAIxCr/B,EAAW,CACfrtC,KAAMA,EAAK5hF,WACXuhF,MAAOA,EAAMvhF,WACbwhF,QAASA,EAAQxhF,WACjBqhF,QAASA,EAAQrhF,WACjB6pF,cAAmB,OAALx1F,QAAK,IAALA,OAAA,EAAAA,EAAOw1F,cAAP,OAAsBx1F,QAAtB,IAAsBA,OAAtB,EAAsBA,EAAOw1F,aAAex1F,GAE5Dy6H,EAAcG,GACd3rB,EAAS2rB,SA9BXH,EAAc,CACZltC,KAAM,GACNL,MAAO,GACPC,QAAS,GACTH,QAAS,GACTwI,aAAc,MA4BjB,CAACx1F,IAEJ,IAAM26H,EAAqB,SAACz9B,EAAO3zG,GACjC,MAA4B2zG,EAAM9C,OAA1Bp6F,EAAR,EAAQA,MAAOy5G,EAAf,EAAeA,IAAKC,EAApB,EAAoBA,IACpB,GAAI15G,EAAO,CACT,IAAI46H,EAAWxtC,KAAKssB,IAAIj7D,OAAOg7D,GAAMrsB,KAAKqsB,IAAIh7D,OAAOi7D,GAAMj7D,OAAOz+C,KAIhE46H,EAHGR,EAGQ37E,OAAOm8E,EAASntC,QAAQ4sC,IAFxBjtC,KAAKH,MAAM2tC,GAIxBH,EAAc,2BAAK36H,GAAN,kBAAmBvW,EAAOqxI,EAASjvH,mBAC3C8uH,EAAc,2BAAK36H,GAAN,kBAAmBvW,EAAO,QAE1CuJ,EAAOG,cAEP67G,EAAgB,SAAC9uG,GACrBivG,EAASjvG,GACLsuG,GACFA,EAA2BtuG,IAGzB67P,EAAc,SAAC3+J,GACnB4R,EAAc,2BACThvG,GADQ,IAEX01F,cACG/2C,OAAM,OAAC3+C,QAAD,IAACA,OAAD,EAACA,EAAYytF,OAAS,GAAKysE,IAAcrwD,KAC/ClrD,OAAM,OAAC3+C,QAAD,IAACA,OAAD,EAACA,EAAYotF,QAAU,GAAK8sE,IAAct+D,MAChDj9C,OAAM,OAAC3+C,QAAD,IAACA,OAAD,EAACA,EAAYqtF,UAAY,GAAK6sE,IAAcC,QAClDx7G,OAAM,OAAC3+C,QAAD,IAACA,OAAD,EAACA,EAAYktF,UAAY,OAItC,OACE,eAAC,IAAD,WACE,eAAC,IAAD,CAAOqf,UAAU,aAAa6C,IAAKP,EAAWl3G,GAA9C,UACGk3G,EAAW/C,MACX+C,EAAWlc,UAAY,sBAAM4Z,UAAU,WAAhB,sBAG1B,eAAC,IAAD,CAAYA,UAAW,yBAAvB,UACGknI,GACC,qCACE,cAAC,IAAD,CACE97O,GAAI,OACJ84G,OAAQsrJ,EACRpiJ,IAAKA,EACLC,IAAKA,EACLnwH,KAAK,SACL0lH,SAAU,SAAC/R,GACTy9B,EAAmBz9B,EAAO,SAE5Bl9F,MAAOF,EAAWytF,OAEpB,cAAC,IAAD,CAAiB4hB,UAAU,SAA3B,SACGr8G,EAAK0E,cAAc,CAAEC,GAAI,kBAE5B,cAAC,IAAD,CAAqBi/H,QAAQ,QAAQH,UAAU,MAAMn8B,OAAQ,OAA7D,SACE,cAAC,IAAD,UAActnG,EAAK0E,cAAc,CAAEC,GAAI,uBAI5C+7O,GACC,qCACE,cAAC,IAAD,CACE95H,IAAK,GACLD,IAAK,EACLhiH,GAAI,QACJ24G,YAAa,IACb7mH,KAAK,SACL0lH,SAAU,SAAC/R,GACTy9B,EAAmBz9B,EAAO,UAE5Bl9F,MAAOF,EAAWotF,MAClBqjB,OAAQsrJ,EACRxvJ,UAAWonI,GAAc,+BAE1BA,GAAc,cAAC,IAAD,CAAiBtkI,UAAU,SAA3B,SAAqC,MACpD,cAAC,IAAD,CAAqBunB,QAAQ,QAAQH,UAAU,MAAMn8B,OAAQ,QAA7D,SACE,cAAC,IAAD,UAActnG,EAAK0E,cAAc,CAAEC,GAAI,wBAI5Cg8O,GACC,qCACE,cAAC,IAAD,CACE/5H,IAAK,GACLD,IAAK,EACLhiH,GAAI,UACJ24G,YAAa,IACb7mH,KAAK,SACL0lH,SAAU,SAAC/R,GACTy9B,EAAmBz9B,EAAO,YAE5Bl9F,MAAOF,EAAWqtF,QAClBojB,OAAQsrJ,EACRxvJ,UACEqnI,EACI,uDACA,8BAGPA,GAAc,cAAC,IAAD,CAAiBvkI,UAAU,SAA3B,SAAqC,MACpD,cAAC,IAAD,CAAqBunB,QAAQ,QAAQH,UAAU,MAAMn8B,OAAQ,UAA7D,SACE,cAAC,IAAD,UAActnG,EAAK0E,cAAc,CAAEC,GAAI,0BAI5Ci8O,GACC,qCACE,cAAC,IAAD,CACEh6H,IAAK,GACLD,IAAK,EACLhiH,GAAI,UACJ24G,YAAa,IACb7mH,KAAK,SACL0lH,SAAU,SAAC/R,GACTy9B,EAAmBz9B,EAAO,YAE5Bl9F,MAAOF,EAAWktF,QAClBujB,OAAQsrJ,EACRxvJ,UAAW,8BAEb,cAAC,IAAD,CAAqBqqB,QAAQ,QAAQH,UAAU,MAAMn8B,OAAQ,UAA7D,SACE,cAAC,IAAD,UAActnG,EAAK0E,cAAc,CAAEC,GAAI,6BAK9Cu2G,EAAW5iH,OACV,qBAAKihH,UAAU,mBAAmBH,MAAO,CAAEC,QAAS,SAApD,UACG,UAAA6B,EAAW5iH,aAAX,eAAkB0M,UAAWqI,GAC5B,cAAC,IAAD,CAAkB1I,GAAG,+BAQjC67O,EAAchhI,aAAe,CAC3BmH,IAAK,EACLC,IAAK,IACL65H,SAAS,EACTC,UAAU,EACVC,YAAY,EACZC,YAAY,EACZt5G,eAAe,EACfC,kBAAmB,GAGNi5G,O,0ECpQAwoB,IAlCY,SACzB1zN,EACA2zN,GAKA,MAAgCjmI,mBAAc,IAA9C,mBAAOkmI,EAAP,KAAqBC,EAArB,KACA,EAAgDnmI,oBAAkB,GAAlE,mBAAOomI,EAAP,KAA+Bxf,EAA/B,KAuBA,OAtBA7tI,qBAAU,gBACSl3G,IAAbywC,GAAuC,OAAbA,IAC5Bs0M,GAAc,GACdh1B,YACE,CACEt/K,YAEF,CACE3uC,YAAa,WACXwiQ,EAAQ,IACRvf,GAAc,IAEhBvjP,cAAe,SAACzC,QACSiB,KAAX,OAARjB,QAAQ,IAARA,OAAA,EAAAA,EAAUnB,OAAyC,QAAX,OAARmB,QAAQ,IAARA,OAAA,EAAAA,EAAUnB,MAC5C0mQ,EAAQlyQ,IAAc2M,EAASnB,OAC1B0mQ,EAAQ,IACfvf,GAAc,SAKrB,CAACqf,IACG,CAAEC,eAAcE,4B,gLCqDnBh2P,EAAYxc,YAAgB,CAChCs5G,KAnFW,WAAyB,IAAxB35G,EAAuB,uDAAf,GAAIC,EAAW,uCACnC,OAAQA,EAAOC,MAEb,KAAKC,IACH,MAA4BF,EAAOM,QAA3B2d,EAAR,EAAQA,SAAUshB,EAAlB,EAAkBA,MACZrf,EAAQ,eAAQngB,GAStB,OARAw/B,EAAMrR,SAAQ,SAAC2kP,GACb3yP,EAAS2yP,GAAT,qCACEzkP,YAAY,GACTruB,EAAM8yQ,IACN50P,EAAS40P,IAHd,IAIE38P,aAAa,OAGVgK,EAIT,QACE,OAAOngB,IAiEXw/B,MA5DY,WAAyB,IAAxBx/B,EAAuB,uDAAf,GAAIC,EAAW,uCACpC,OAAQA,EAAOC,MAEb,KAAKC,IACH,IAAQq/B,EAAUv/B,EAAOM,QAAjBi/B,MACR,OAAOs6E,IAAMt6E,GAIf,QACE,OAAOx/B,IAmDX47G,eA7CqB,WAA4B,IAA3B57G,EAA0B,wDAAXC,EAAW,uCAChD,OAAQA,EAAOC,MACb,KAAKC,IACH,OAAO,EAET,KAAKA,IACL,KAAKA,IACH,OAAO,EAET,QACE,OAAOH,IAoCX+9H,kBA/BwB,WAA4B,IAA3B/9H,EAA0B,wDAAXC,EAAW,uCACnD,OAAQA,EAAOC,MACb,KAAKC,IACH,OAAO,EAET,QACE,OAAOH,IA0BX87G,kBArBwB,WAA2B,IAA1B97G,EAAyB,uDAAjB,KAAMC,EAAW,uCAClD,OAAQA,EAAOC,MACb,KAAKC,IACH,IAAQ4B,EAAU9B,EAAOM,QAAjBwB,MACR,OAAOA,EAET,KAAK5B,IACL,KAAKA,IACH,OAAO,KAET,QACE,OAAOH,MAaE6c,MAGR,IAAMpa,EAAc,SAACzC,GAAD,OAAWA,EAAM2c,eAAeE,WAG9Ck2P,EAAc,SAAC/yQ,EAAO8yQ,GAAR,OACzBrwQ,EAAYzC,GAAO25G,KAAKm5J,IACbE,EAAmB,SAAChzQ,GAAD,OAC9ByC,EAAYzC,GAAOw/B,MAAMxd,KAAI,SAAC5T,GAAD,OAAQ2kQ,EAAY/yQ,EAAOoO,OAa7C6kQ,EAA0B,SAACjzQ,GAAD,OACrCyC,EAAYzC,GAAO47G,gBACRs3J,EAA2B,SAAClzQ,GAAD,OACtCyC,EAAYzC,GAAO+9H,oB,oHCvBN4sH,IAzFO,SAACt0O,GACrB,IACEjI,EAUEiI,EAVFjI,GACAC,EASEgI,EATFhI,KACA02G,EAQE1uG,EARF0uG,kBAHF,EAWI1uG,EAPFu8I,kBAJF,SAKEvD,EAMEh5I,EANFg5I,aALF,EAWIh5I,EALFksG,aANF,WAMUj0G,EANV,IAWI+H,EAJFyuG,iBAPF,WAWIzuG,EAHF8C,kBARF,WAWI9C,EAFF8wG,mBATF,SAUK7B,EAVL,YAWIjvG,EAXJ,8GAYM5M,EAAOG,cAGb,EAAoC6iI,mBAASzwG,KAAKD,OAAlD,mBAAO+rM,EAAP,KAAmBC,EAAnB,KAMA,EAAiD57F,aAAY,SAACnsI,GAAD,MAAY,CACvE07N,8BAA+By3C,IAAsDnzQ,GACrFgpC,MAAOmqO,IAA+CnzQ,GAAOgiB,KAAI,SAACvhB,GAAD,MAAW,CAC1E2N,GAAI3N,EAAKi7B,OACT/kB,MAAOlW,EAAKmoC,SACZ25E,MAAO9hH,EAAKquL,aACZlqL,WAAYnE,EAAKmE,WACjBE,cAAerE,EAAKqE,sBAPhB42N,EAAR,EAAQA,8BAA+B1yL,EAAvC,EAAuCA,MA8BvC,OANAw8E,qBAAU,WACHk2G,IA7BLp2G,EAAWZ,MAAMkB,SAASb,GAC1BgjH,EAAc/rM,KAAKD,UA+BlB,CAAC2/L,IAGF,qCACG9oE,GAAc,cAAC,IAAD,CAAexD,UAAQ,EAACC,aAAY,OAAEA,QAAF,IAAEA,IAAgB,KACrE,wBAAC,IAAD,2BACM/pC,GADN,IAEEl3G,GAAIA,EACJlM,IAAK4lO,EACLz5N,KAAMA,EACN+9H,UAAWsvF,EACXv0G,YAAaA,EACbisJ,aAActrC,EACdhjH,UAAWA,EACX3rG,WAAYA,EACZjZ,KAAM,SACN2kH,QAAS77E,EACN1M,QAAO,SAAC77B,GAAD,OACN4uJ,GAAgBA,EAAazqJ,WACzBnE,EAAKmE,aAAeyqJ,EAAazqJ,WACjCnE,KAEL67B,QAAO,SAAC77B,GAAD,OACN4uJ,GAAgBA,EAAavqJ,cACzBrE,EAAKqE,gBAAkBuqJ,EAAavqJ,cACpCrE,KAER8hH,MACEA,GACA94G,EAAK0E,cAAc,CACjBC,GAAI,yBAGR24G,YAAat9G,EAAK0E,cAAc,CAAEC,GAAI,8B,uQC1BxC47O,EAAkB,SAAC3zO,GAAkB,IAAD,MAEtCjI,EAUEiI,EAVFjI,GACAm0G,EASElsG,EATFksG,MACAnZ,EAQE/yF,EARF+yF,SACAsb,EAOEruG,EAPFquG,MACAC,EAMEtuG,EANFsuG,WACA7tG,EAKET,EALFS,aACAiuG,EAIE1uG,EAJF0uG,kBACAE,EAGE5uG,EAHF4uG,2BARF,EAWI5uG,EAFFg9P,wBATF,MASqB,GATrB,IAWIh9P,EADFi9P,sBAVF,MAUmB,GAVnB,EAcMC,GADO3pQ,cAEX0pQ,EAAetqP,OAAS,EACpB69K,IAAQysE,EAAetxP,KAAI,SAACwxP,GAAD,OAAmBA,EAAcD,cAC5D,IAEN,EAAsC9mI,mBACpCgnI,cAAYC,kBACVC,eAAaC,qBACXC,IAAW,UAACnvJ,EAAM/tG,aAAP,QAAgB,IAAIm9P,cAC/BD,IAAW,UAACnvJ,EAAM/tG,aAAP,QAAgB,IAAIo9P,aAJrC,mBAAOC,EAAP,KAAoBC,EAApB,KASAzuJ,qBAAU,WACJT,IACFU,EAAcV,GACdkvJ,EACER,cAAYC,kBACVC,eAAaC,qBACXC,IAAW,OAAC9uJ,QAAD,IAACA,IAAqB,IAAI+uJ,cACrCD,IAAW,OAAC9uJ,QAAD,IAACA,IAAqB,IAAIgvJ,gBAK5C,CAAChvJ,IAEJ,IAAMU,EAAgB,SAAC9uG,GACjBA,IACF+tG,EAAMkB,SAASjvG,GACXsuG,GACFA,EAA2BtuG,KAkD3Bu9P,EAAoB,SAACrgK,EAAOsgK,GAChCC,IAAOvgK,EAAO,mBAEd,IAAMwgK,EAAiBZ,cAAYC,kBAAkBS,EAAcG,cAC7DC,EAAaJ,EAAczgK,MAC3B8gK,EAAWL,EAAcM,IACzBC,EAAYC,IAAYC,uBAAaP,EAAeQ,sBACpDC,EAAU,UAAMJ,EACnBhvK,QAAQ,MAAO,IACfA,QAAQ,OAAQ,IAChBF,OAAO,EAAG+uK,IAHG,OAGWG,EAAUhvK,QAAQ,MAAO,IAAIA,QAAQ,OAAQ,IAAIF,OAAOgvK,IACnFP,EACER,cAAYC,kBACVC,eAAaC,qBACXC,IAAYiB,GAAYhB,cACxBD,IAAYiB,GAAYf,cAM1BgB,EACJxB,EAAUvqP,OAAS,EACf,CACE,CACEgsP,SAtEe,SAACC,EAAcrwE,GAItC,IAHA,IAEIswE,EAAUxhK,EAFRyhK,EAAiB,IAAIC,OAAO7B,EAAUvxP,KAAI,SAACqzP,GAAD,OAAcA,EAASnzQ,OAAK+9C,KAAK,KAAM,MACjFnxC,EAAOmmQ,EAAaK,UAEwB,QAA1CJ,EAAWC,EAAexjO,KAAK7iC,KAErC81L,EADAlxF,EAAQwhK,EAAShwP,MACDwuF,EAAQwhK,EAAS,GAAGlsP,SAiE9B4rL,UA7DY,SAACv+L,GACrB,OAAOk9P,EAAUj3O,QAAO,SAAC+4O,GAAD,OAAcA,EAASnzQ,MAAQmU,EAAM1M,SAAS,GAAG0M,MAAMvH,QAAMka,OACnF,EACA,sBAAM65F,MAAO,CAAE3oG,MAAO,OAAtB,SACE,eAAC,IAAD,CACE0zK,MAAI,EACJ/qE,MAAO,CACLC,QAAS,eACT6D,SAAU,OACVtC,gBAAiB,UACjBnqG,MAAO,SANX,UASG7D,EAAM1M,SACP,cAAC,IAAD,CACEkF,KAAM,IACNoL,KAAM,GACN4oG,MAAO,CAAEm1D,OAAQ,UAAW3zD,gBAAiB,MAAOkkC,WAAY,OAChE1b,QAAS,SAACh5B,GAAD,OAAWqgK,EAAkBrgK,EAAOx9F,WAKnD,MAyCE,GAEN,OACE,eAAC,IAAD,WACE,eAAC,IAAD,CAAO2sG,UAAU,aAAa6C,IAAKz3G,EAAnC,UACGm0G,EACAnZ,GAAY,sBAAM4Z,UAAU,WAAhB,sBAEdswJ,EAAetqP,OAAS,GACvBsqP,EAAetxP,KAAI,SAACwxP,GAAD,OACjB,eAAC,IAAD,CACE3wJ,MAAO,CAAEQ,UAAW,EAAGD,YAAa,MAAOovI,aAAc,OAD3D,UAIE,cAAC,IAAD,CAAgBt4O,MAAM,UAAUq7P,OAAK,EAAC1yJ,MAAO,CAAEQ,UAAW,GAA1D,SACGmwJ,EAAcvsN,YAEjB,cAAC,IAAD,UACGusN,EAAcD,UAAUvxP,KAAI,SAACqzP,GAAD,OAC3B,cAAC,IAAD,CACExyJ,MAAO,CAAEQ,UAAW,GAEpBwpB,QAAS,SAACh5B,GAAD,OA3DC,SAAC3xG,GACzB,IAAMoyQ,EAAeN,EAAYa,oBAC3BW,EAAcxB,EAAYyB,eAC1BC,EAAkBC,WAASC,WAAWtB,EAAckB,EAAatzQ,GACvE+xQ,EAAeR,cAAYj3P,KAAKw3P,EAAa0B,IAC7CjC,cAAYoC,mBAAmB7B,GAsDG8B,CAAkBT,EAASnzQ,MAHjD,SAKGmzQ,EAAS9yJ,OALZ,wBAEwBixJ,EAAc3sN,QAFtC,sBAE2DwuN,EAASjnQ,YAX1E,wBAEwBolQ,EAAc3sN,aAkB1C,cAAC,IAAD,UACE,cAAC,SAAD,CACEwsN,iBACEA,EAAiBrqP,OAAS,EAA1B,UAAkC+rP,EAAlC,YAAiD1B,IAAoB0B,EAEvEf,YAAaA,EAGb+B,aAAc,CACZpgQ,MAAO,OACPqpM,QAAS,gBACT36F,gBAAiB,UACjB6kI,eAAgB,cAChB3iI,OAAQ,oBACR04F,aAAc,YAEhB+2D,aAAc,CACZrgQ,MAAO,OACPqpM,QAAS,gBACT36F,gBAAiB,UACjB6kI,eAAgB,cAChB3iI,OAAQ,oBACR04F,aAAc,YAEhBg3D,YAAa,CAAE1vJ,OAAQ,OAAQssI,SAAU,UACzCqjB,aAAc,CACZvrK,OAAQ9gG,cAAU8gG,QAUpBwrK,oBAAqB,SAACC,GACpBnC,EAAemC,IAEjBlvJ,OAAQ,WACN,IAAMwtJ,EAAYC,IAAYC,uBAAaZ,EAAYa,sBAEvDpvJ,EAAcivJ,IAEhB2B,yBAAyB,MAG5B1xJ,EAAW5iH,OACV,qBAAKihH,UAAU,mBAAmBH,MAAO,CAAEC,QAAS,SAApD,UACG,UAAA6B,EAAW5iH,aAAX,eAAkB0M,UAAWqI,GAC5B,cAAC,IAAD,CAAkB1I,GAAG,+BAQjC47O,EAAgB/gI,aAAe,GAEhB+gI,O,gKCnOAssB,EAnDgB,SAC7BrhP,EACA4B,EACAC,EACAy/O,GAKA,MAAoC9pI,mBAAc,IAAlD,mBAAO+pI,EAAP,KAAyB5D,EAAzB,KACA,EAAoDnmI,oBAAkB,GAAtE,mBAAOgqI,EAAP,KAAmCpjB,EAAnC,KAsCA,OArCA7tI,qBAAU,gBAEKl3G,IAAX2mB,GACW,OAAXA,QACc3mB,IAAduoB,GACc,OAAdA,QACYvoB,IAAZwoB,GACY,OAAZA,IAEAu8N,GAAc,GACdh9F,YACE,CACEphI,SACA4B,YACAC,WAEF,CACE1mB,YAAa,WACXwiQ,EAAQ,IACRvf,GAAc,IAEhBvjP,cAAe,SAACzC,GAEZulQ,EADEvlQ,EAEAA,EAASnB,KAAK8V,KAAI,SAAC00P,GACjB,OAAOh2Q,IAAc,eAChBg2Q,OAII,IACfrjB,GAAc,SAKrB,CAACp+N,EAAQ4B,EAAWC,EAASy/O,IACzB,CAAEC,mBAAkBC,+B,qEC5BvB33D,EAAa,CACjB,CACEj4G,UAAW,YACXe,WAAY,mBAEd,CACEf,UAAW,UACXe,WAAY,iBAEd,CACEf,UAAW,gBACXe,WAAY,mBAEd,CACEf,UAAW,cACXe,WAAY,iBAEd,CACEf,UAAW,4BACXe,WAAY,iBAYV0nH,EAA8B,SAACj5M,GACnC,IACE4e,EAKE5e,EALF4e,OACAwC,EAIEphB,EAJFohB,SACAk6K,EAGEt7L,EAHFs7L,kBACA4d,EAEEl5M,EAFFk5M,iCAJF,EAMIl5M,EADFsgQ,wBALF,MAKqB,GALrB,EAOMltQ,EAAOG,cACb,EAAkCooM,cAA1B5rF,EAAR,EAAQA,QAAS8rF,EAAjB,EAAiBA,MAAOr1B,EAAxB,EAAwBA,MAClB2yB,EAAa0C,IAEbzxM,EAAO0rI,YAAY3qH,WAInBo8G,GAHQrY,iBAAiBrS,SAASvxF,MAGdwqH,aAAY,SAACnsI,GAAD,OAAWw/C,wBAAoCx/C,OAErF,EAAwCysI,oBAAS,GAAjD,mBAAO0xG,EAAP,KAAqBy4B,EAArB,KAGMv0D,EAAc,8BACdy7B,EAAU9pH,mBAAQ,kBAAM,IAAI+pH,mBAAiB17B,KAAc,IAEjE,EAAyDi0D,EACvDrhP,GACU,OAAVu6K,QAAU,IAAVA,OAAA,EAAAA,EAAY3xG,YAA8C,kBAAjC,OAAO2xG,QAAP,IAAOA,OAAP,EAAOA,EAAY3xG,WAA5C,OACI2xG,QADJ,IACIA,OADJ,EACIA,EAAY3xG,UAAU,QACtBvvF,GACM,OAAVkhM,QAAU,IAAVA,OAAA,EAAAA,EAAY3xG,YAA8C,kBAAjC,OAAO2xG,QAAP,IAAOA,OAAP,EAAOA,EAAY3xG,WAA5C,OACI2xG,QADJ,IACIA,OADJ,EACIA,EAAY3xG,UAAU,QACtBvvF,EACJsvH,GARM44I,EAAR,EAAQA,iBAAkBC,EAA1B,EAA0BA,2BAWpB73B,EAAe,CACnB,CACEjoO,MAAO6/P,EAAiBx0P,KAAI,SAAC00P,GAAD,mBAAC,eACxBA,GADuB,IAE1B7/O,UAAWqxE,IAAOwuK,EAAS7/O,WAAWsxE,OAAO,uBAC7CrxE,QAASoxE,IAAOwuK,EAAS5/O,SAASqxE,OAAO,4BAE3C95F,KAAM,gBAER,CACEsI,MAAO,CACL,CACEkgQ,YAAa3uK,MAASswE,QAAQ,OAAOrwE,OAAO,cAC5Cv/D,SAAQ,OAAEnoC,QAAF,IAAEA,OAAF,EAAEA,EAAMquL,aAChBgoF,gBAA0B,OAAVtnE,QAAU,IAAVA,OAAA,EAAAA,EAAY3xG,WAAZ,OAAwB2xG,QAAxB,IAAwBA,OAAxB,EAAwBA,EAAY3xG,UAAU,GAAG2H,OAAO,EAAG,IAAM,GACjFuxK,cAAwB,OAAVvnE,QAAU,IAAVA,OAAA,EAAAA,EAAY3xG,WAAZ,OAAwB2xG,QAAxB,IAAwBA,OAAxB,EAAwBA,EAAY3xG,UAAU,GAAG2H,OAAO,EAAG,IAAM,GAC/E/tE,SAAUA,EACV6mN,iBAtCQ93H,UAuCRg4H,YAAa,oEAGjBnwO,KAAM,sBA4CV,OAxCAm3G,qBAAU,WACRs4H,EAAQa,YAAY,CAClBC,aAAcA,EACdr8B,WAAY,+BAEb,CAAC47B,IAEJ34H,qBAAU,WACRs4H,EAAQzuO,iBAAiB,WAAW,SAAC46F,GACnC2sK,EAAgB3sK,EAAEk0I,iBAEpBthE,EAAM,2BACD2yB,GADA,IAEH3xG,eACuBvvF,IAArBqoQ,GACqB,OAArBA,GAC4B,kBAArBA,GACqB,IAA5BA,EAAiB3tP,OACb,CAAC2tP,EAAiB,GAAIA,EAAiB,IACvC,CACEzuK,MAASswE,QAAQ,OAAOrwE,OAAO,oBAC/BD,MAASuwE,MAAM,OAAOtwE,OAAO,0BAGtC,IAEHqd,qBAAU,gBAEel3G,IAArBqoQ,GACqB,OAArBA,GAC4B,kBAArBA,GACqB,IAA5BA,EAAiB3tP,QAEjB6zJ,EAAM,2BACD2yB,GADA,IAEH3xG,UAAW,CAAC84K,EAAiB,GAAIA,EAAiB,SAGrD,CAACA,IAEG1hP,GAAUwC,EACf,cAAC,IAAD,CACEurF,UAAU,sBACV+vF,iBAAiB,8BACjB5lE,OAAQwkE,EACRr8L,MAAO7L,EAAK0E,cAAc,CAAEC,GAAI,mCAChCqlM,SAAUh8K,EACV9hB,MAAO,QACPq9L,eAAgB,WACduc,IACA1yC,EAAM,2BACD2yB,GADA,IAEH3xG,eACuBvvF,IAArBqoQ,GACqB,OAArBA,GAC4B,kBAArBA,GACqB,IAA5BA,EAAiB3tP,OACb,CAAC2tP,EAAiB,GAAIA,EAAiB,IACvC,CACEzuK,MAASswE,QAAQ,OAAOrwE,OAAO,oBAC/BD,MAASuwE,MAAM,OAAOtwE,OAAO,yBAnB3C,SAwBE,qCACE,cAAC8oG,EAAA,EAAD,UACE,cAACplB,EAAA,EAAD,CAAK9T,GAAG,IAAR,SACE,cAAC,IAAD,CACE3xD,QAASA,EACT/3G,KAAK,YACLm8K,kBACuBl8K,IAArBqoQ,GACqB,OAArBA,GAC4B,kBAArBA,GACqB,IAA5BA,EAAiB3tP,OACb,CAAC2tP,EAAiB,GAAIA,EAAiB,IACvC,CACEzuK,MAASswE,QAAQ,OAAOrwE,OAAO,oBAC/BD,MAASuwE,MAAM,OAAOtwE,OAAO,qBAGrCS,MAAO,CAAEQ,UAAU,GACnB2iF,OAAQ,gBAAGrnE,EAAH,EAAGA,MAAOimE,EAAV,EAAUA,WAAV,OACN,cAAC9T,EAAA,EAAD,CACEnyD,MAAOA,EACPC,WAAYgmE,EACZvhF,UAAQ,EACR2tE,QAAS7uE,MAASuwE,MAAM,OAAOtwE,OAAO,oBACtC8uE,SAAO,WAMjB,cAAClpB,EAAA,EAAD,CACEC,QAAS,CACP,cAACo0D,EAAA,EAAD,CACE91E,eAAgB,oBAChB+1E,YAAaA,EACbh2E,YAAa,kBAInB,cAAC+sC,EAAA,EAAD,CACEhrK,GAAI,wBACJg5F,QAAS03G,EACTjqC,WAAY4hG,EACZvqQ,KAAMsqQ,EAAiBx0P,KAAI,SAAC00P,GAAD,mBAAC,eACvBA,GADsB,IAEzB7/O,UAAWqxE,IAAOwuK,EAAS7/O,WAAWsxE,OAAO,uBAC7CrxE,QAAS4/O,EAAS5/O,QACdoxE,IAAOwuK,EAAS5/O,SAASqxE,OAAO,uBAChC1+F,EAAK0E,cAAc,CAAEC,GAAI,0BAE/BmrK,mBAAmB,SAIvB,MAGN+1C,EAA4BrmG,aAAe,GAE5BqmG,O,+BCxOA7oC,IAPD,CACZooD,aAAc,iBACdmoC,aAAc,iBACdC,qBAAsB,yBACtBC,oBAAqB,0B,8HCKjBxsB,EAAgB,SAACr0O,GACrB,IACEjI,EAYEiI,EAZFjI,GACAC,EAWEgI,EAXFhI,KAFF,GAaIgI,EAVF0uG,kBAUE1uG,EATF/U,mBAJF,MAIe,GAJf,EAKE61Q,EAQE9gQ,EARF8gQ,uBALF,EAaI9gQ,EAPFksG,aANF,WAMUj0G,EANV,IAaI+H,EANF+gQ,mBAPF,WAaI/gQ,EALFyuG,iBARF,WAaIzuG,EAJF8C,kBATF,WAaI9C,EAHF8wG,mBAVF,WAaI9wG,EAFF+yF,gBAXF,SAYKkc,EAZL,YAaIjvG,EAbJ,iJAcM5M,EAAOG,cACb,EAA8BuiI,aAAY,SAACnsI,GAAD,MAAY,CACpD60K,WAAYwiG,IAAkCr3Q,GAC9Ckf,MAAOm4P,IACqBr3Q,EAAOsB,GAChCg7B,QACC,SAAC5c,GAAD,OAAWy3P,GAA0Bz3P,EAAKy3P,yBAA2BA,KAEtEn1P,KAAI,SAACtC,GAAD,MAAW,CACdtR,GAAIsR,EAAKqwC,mBACTp5C,MAAO+I,EAAKqwC,mBACZwyD,MAAO7iG,EAAKuyC,6BAVV4iH,EAAR,EAAQA,WAAY31J,EAApB,EAAoBA,MAcpB,EAA8CutH,oBAAkB,GAAhE,mBAAO6qI,EAAP,KAAwBC,EAAxB,KAEA,EAAoC9qI,mBAASzwG,KAAKD,OAAlD,mBAAO+rM,EAAP,KAAmBC,EAAnB,KAwBA,OAnBAviH,qBAAU,WACHqvD,GAJLkzD,EAAc/rM,KAAKD,SAOlB,CAAC84I,IAEJrvD,qBAAU,WACkD,IAAD,GAApD8xJ,GAAmBF,GAAel4P,EAAM8J,OAAS,IACpDs8F,EAAWZ,MAAMkB,SAAjB,UAA0B1mG,EAAM,UAAhC,aAA0B,EAAU9Q,IACpCmpQ,GAAmB,MAEpB,CAACH,EAAal4P,IAEjBsmG,qBAAU,YACR,OAAIlkH,QAAJ,IAAIA,OAAJ,EAAIA,EAAYoD,iBACd6yQ,GAAmB,KAEpB,QAACj2Q,QAAD,IAACA,OAAD,EAACA,EAAYoD,iBAGd,qCACE,cAAC,IAAD,CAAesrJ,UAAQ,IACtB72I,EACC,wBAAC,IAAD,2BACMmsG,GADN,IAEEl3G,GAAIA,EACJlM,IAAK4lO,EACLz5N,KAAMA,EACN+6F,SAAUA,EACVgjC,UAAWyoC,EACX1tD,YAAaA,EACbisJ,aAActrC,EACdhjH,UAAWA,EACXD,QAAS3lG,EACTqjG,MACEA,GACA94G,EAAK0E,cAAc,CACjBC,GAAI,gBAGR24G,YAAat9G,EAAK0E,cAAc,CAAEC,GAAI,qBAGxC,wBAAC,IAAD,2BACMk3G,GADN,IAEEl3G,GAAIA,EACJlM,IAAK4lO,EACLz5N,KAAMA,EACN+6F,SAAUA,EACVgjC,UAAWyoC,EACX1tD,YAAaA,EACbisJ,aAActrC,EACdhjH,UAAWA,EACXD,QAAS3lG,EACTqjG,MACEA,GACA94G,EAAK0E,cAAc,CACjBC,GAAI,gBAGR24G,YAAat9G,EAAK0E,cAAc,CAAEC,GAAI,yBAOhDs8O,EAAczhI,aAAe,GAEdyhI,O,uQC6MT9rO,EAAcve,YAAgB,CAClCs5G,KA1TW,WAAyB,IAAxB35G,EAAuB,uDAAf,GAAIC,EAAW,uCACnC,OAAQA,EAAOC,MAEb,KAAKC,IACL,KAAKA,IACH,MAA4BF,EAAOM,QAA3B2d,EAAR,EAAQA,SAAUshB,EAAlB,EAAkBA,MACZrf,EAAQ,eAAQngB,GAStB,OARAw/B,EAAMrR,SAAQ,SAACkqC,GACbl4C,EAASk4C,GAAT,qCACEhqC,YAAY,GACTruB,EAAMq4D,IACNn6C,EAASm6C,IAHd,IAIEliD,aAAa,OAGVgK,EAGT,KAAKhgB,IACH,MAAmCF,EAAOM,QAAlC6N,EAAR,EAAQA,GAAI6/B,EAAZ,EAAYA,MAAOrvB,EAAnB,EAAmBA,YACbuB,EAAW69F,IAAKh+G,EAAOiuC,GAM7B,OALA9tB,EAAS/R,GAAT,2BACKwQ,GADL,IAEEzI,aAAa,EACbkY,YAAY,IAEPlO,EAGT,KAAKhgB,IACH,IAAMye,EAAc3e,EAAOM,QACrB6N,EAAKwQ,EAAYy5C,cACjBl4C,EAAQ,2BACTngB,GADS,kBAEXoO,EAFW,uCAGP4vG,IAAKh+G,EAAMoO,GAAK,CAAC,oBACjB4vG,IAAKp/F,EAAa,CAAC,oBAJZ,IAKVzI,aAAa,MAGjB,OAAOgK,EAIT,KAAKhgB,IACH,IAAMye,EAAc3e,EAAOM,QACrB4f,EAAQ,eAAQngB,GAMtB,OALAmgB,EAASvB,EAAY+0C,QAArB,yBACEtlC,YAAY,GACTzP,GAFL,IAGEzI,aAAa,IAERgK,EAGT,KAAKhgB,IACH,IAAMye,EAAc3e,EAAOM,QACrB6N,EAAKwQ,EAAYy5C,cACjBl4C,EAAQ,2BACTngB,GADS,kBAEXoO,EAFW,2BAGPpO,EAAMoO,IAHC,IAIV81N,eAAgBlkO,EAAMoO,GACtB+H,aAAa,GACVyI,KAGP,OAAOuB,EAIT,KAAKhgB,IACH,IAAQ8tC,EAAUhuC,EAAOM,QAAjB0tC,MACR,OAAIjuC,EAAMiuC,GACD+vE,IAAKh+G,EAAOiuC,GAEdjuC,EAGT,KAAKG,IACH,IAAQ+jO,EAAmBjkO,EAAOM,QAA1B2jO,eACR,OAAO,2BACFlkO,GADL,kBAEGkkO,EAAe7rK,cAFlB,uCAGO2lD,IAAKh+G,EAAMkkO,EAAe7rK,eAAgB,CAAC,oBAC3C6rK,GAJP,IAKI/tN,aAAa,MAMnB,KAAKhW,IACH,IAAQiO,EAAOnO,EAAOM,QAAd6N,GACR,OAAO4vG,IAAKh+G,EAAOoO,GAIrB,QACE,OAAOpO,IAwNXw/B,MAnNY,WAAyB,IAAxBx/B,EAAuB,uDAAf,GAAIC,EAAW,uCACpC,OAAQA,EAAOC,MAEb,KAAKC,IACH,IAAQq/B,EAAUv/B,EAAOM,QAAjBi/B,MACR,OAAOs6E,IAAMt6E,GAGf,KAAKr/B,IACH,IAAQq/B,EAAUv/B,EAAOM,QAAjBi/B,MACR,OAAO+yB,IAAK,GAAD,mBAAKvyD,GAAL,YAAew/B,KAG5B,KAAKr/B,IACH,MAAsBF,EAAOM,QAArB6N,EAAR,EAAQA,GAAI6/B,EAAZ,EAAYA,MACZ,OAAOjuC,EAAMgiB,KAAI,SAACq2C,GAAD,OAAoBA,IAAkBpqB,EAAQ7/B,EAAKiqD,KAGtE,KAAKl4D,IACH,IAAQiO,EAAOnO,EAAOM,QAAd6N,GACR,OAAOpO,EAAMs8B,QAAO,SAACk7O,GAAD,OAAwBA,IAAuBppQ,KAIrE,KAAKjO,IACH,IAAMye,EAAc3e,EAAOM,QAC3B,MAAM,GAAN,mBAAWP,GAAX,CAAkB4e,EAAY+0C,SAIhC,KAAKxzD,IACH,IAAQ8tC,EAAUhuC,EAAOM,QAAjB0tC,MACR,OAAOjuC,EAAMs8B,QAAO,SAACk7O,GAAD,OAAwBA,IAAuBvpO,KAIrE,QACE,OAAOjuC,IA+KXm+G,sBA1J4B,WAA4B,IAA3Bn+G,EAA0B,wDAAXC,EAAW,uCACvD,OAAQA,EAAOC,MACb,KAAKC,IACH,OAAO,EAET,KAAKA,IACL,KAAKA,IACH,OAAO,EAET,QACE,OAAOH,IAiJX47G,eA1KqB,WAA4B,IAA3B57G,EAA0B,wDAAXC,EAAW,uCAChD,OAAQA,EAAOC,MACb,KAAKC,IACH,OAAO,EAET,KAAKA,IACL,KAAKA,IACH,OAAO,EAET,QACE,OAAOH,IAiKXo+G,SA7Ie,WAA4B,IAA3Bp+G,EAA0B,wDAAXC,EAAW,uCAC1C,OAAQA,EAAOC,MACb,KAAKC,IACH,OAAO,EAET,KAAKA,IACL,KAAKA,IACH,OAAO,EAET,QACE,OAAOH,IAoIXq+G,UA/HgB,WAA4B,IAA3Br+G,EAA0B,wDAAXC,EAAW,uCAC3C,OAAQA,EAAOC,MACb,KAAKC,IACH,OAAO,EAET,KAAKA,IACL,KAAKA,IACH,OAAO,EAET,QACE,OAAOH,IAsHXs+G,WAjHiB,WAA4B,IAA3Bt+G,EAA0B,wDAAXC,EAAW,uCAC5C,OAAQA,EAAOC,MACb,KAAKC,IACH,OAAO,EAET,KAAKA,IACL,KAAKA,IACH,OAAO,EAET,QACE,OAAOH,IAwGXu+G,yBAnF+B,WAA2B,IAA1Bv+G,EAAyB,uDAAjB,KAAMC,EAAW,uCACzD,OAAQA,EAAOC,MACb,KAAKC,IACH,IAAQ4B,EAAU9B,EAAOM,QAAjBwB,MACR,OAAOA,EAET,KAAK5B,IACL,KAAKA,IACH,OAAO,KAET,QACE,OAAOH,IAyEX87G,kBApGwB,WAA2B,IAA1B97G,EAAyB,uDAAjB,KAAMC,EAAW,uCAClD,OAAQA,EAAOC,MACb,KAAKC,IACH,IAAQ4B,EAAU9B,EAAOM,QAAjBwB,MACR,OAAOA,EAET,KAAK5B,IACL,KAAKA,IACH,OAAO,KAET,QACE,OAAOH,IA0FXw+G,YArEkB,WAA2B,IAA1Bx+G,EAAyB,uDAAjB,KAAMC,EAAW,uCAC5C,OAAQA,EAAOC,MACb,KAAKC,IACH,IAAQ4B,EAAU9B,EAAOM,QAAjBwB,MACR,OAAOA,EAET,KAAK5B,IACL,KAAKA,IACH,OAAO,KAET,QACE,OAAOH,IA2DXy+G,aAtDmB,WAA2B,IAA1Bz+G,EAAyB,uDAAjB,KAAMC,EAAW,uCAC7C,OAAQA,EAAOC,MACb,KAAKC,IACH,IAAQ4B,EAAU9B,EAAOM,QAAjBwB,MACR,OAAOA,EAET,KAAK5B,IACL,KAAKA,IACH,OAAO,KAET,QACE,OAAOH,IA4CX0+G,cAvCoB,WAA2B,IAA1B1+G,EAAyB,uDAAjB,KAAMC,EAAW,uCAC9C,OAAQA,EAAOC,MACb,KAAKC,IACH,IAAQ4B,EAAU9B,EAAOM,QAAjBwB,MACR,OAAOA,EAET,KAAK5B,IACL,KAAKA,IACH,OAAO,KAET,QACE,OAAOH,IA6BX+9H,kBAxBwB,WAA4B,IAA3B/9H,EAA0B,wDAAXC,EAAW,uCACnD,OAAQA,EAAOC,MACb,KAAKC,IACH,OAAO,EAET,QACE,OAAOH,MAqBE4e,MAGR,IAAMnc,EAAc,SAACzC,GAAD,OAAWA,EAAM4e,aAG/B64P,EAAiB,SAACz3Q,EAAOoO,GACpC,IAAMwQ,EAAcnc,EAAYzC,GAAO25G,KAAKvrG,GAE5C,OAAO,eACFwQ,IAIM25C,EAAsB,SAACv4D,GAAD,uBACjCyC,EAAYzC,GAAOw/B,aADc,aACjC,EAA0Bxd,KAAI,SAAC5T,GAAD,OAAQqpQ,EAAez3Q,EAAOoO,OAEjDspQ,EAAkC,SAAC13Q,EAAOsB,GAErD,OAAIA,EAAWoD,eACTpD,EAAWsD,WACTtD,EAAWwD,cACNyzD,EAAoBv4D,GAAOs8B,QAChC,SAAC1d,GAAD,OACEA,EAAYla,iBAAmBpD,EAAWoD,gBAC1Cka,EAAYha,aAAetD,EAAWsD,YACtCga,EAAY9Z,gBAAkBxD,EAAWwD,iBAGxCyzD,EAAoBv4D,GAAOs8B,QAChC,SAAC1d,GAAD,OACEA,EAAYla,iBAAmBpD,EAAWoD,gBAC1Cka,EAAYha,aAAetD,EAAWsD,cAGrC2zD,EAAoBv4D,GAAOs8B,QAChC,SAAC1d,GAAD,OAAiBA,EAAYla,iBAAmBpD,EAAWoD,kBAInD6zD,EAAoBv4D,IAOrB23Q,EAA8B,SAAC33Q,GAAD,OAAWyC,EAAYzC,GAAO+9H,oB,8BClW1Dx5H,IA7BK,CAClBinO,UAAW,QACXosC,QAAS,QACTC,SAAU,QACVC,WAAY,QACZC,mBAAoB,QACpBC,qBAAsB,QACtBC,oBAAqB,QACrBC,oBAAqB,QACrBC,SAAU,QACVC,SAAU,QACVC,SAAU,QACVC,SAAU,QACVC,SAAU,QACVC,SAAU,QACVC,SAAU,QACVC,SAAU,QACVC,SAAU,QACVC,SAAU,QACVC,SAAU,QACVC,oBAAqB,QACrBC,oBAAqB,QACrBC,wBAAyB,QACzBC,kBAAmB,QACnBC,iBAAkB,QAClBC,oBAAqB,QACrBC,eAAgB,U,mNCYZC,EAA4B,SAAChjQ,GACjC,IAAMzF,EAAQu7H,aAAY,SAACnsI,GAAD,OAAWA,KAGnC2xM,EAeEt7L,EAfFs7L,kBACA+kC,EAcErgO,EAdFqgO,+BAFF,EAgBIrgO,EAbF0iO,mBAHF,WAgBI1iO,EAZFwiO,uBAJF,WAgBIxiO,EAXFyiO,2BALF,WAgBIziO,EAVFkgO,qBANF,WAMkBjoO,EANlB,IAgBI+H,EATFmgO,kBAPF,MAOe,GAPf,EAQEiC,EAQEpiO,EARFoiO,gBARF,EAgBIpiO,EAPFogO,qBATF,WASkBnoO,EATlB,IAgBI+H,EANFwgO,uBAVF,MAUoB,GAVpB,IAgBIxgO,EALF9Q,kBAXF,MAWeic,wBAAoC5Q,GAXnD,IAgBIyF,EAJF3R,sBAZF,MAYmB8c,4BAAwC5Q,GAZ3D,IAgBIyF,EAHFoiL,iBAbF,WAgBIpiL,EAFF2iO,0BAdF,WAgBI3iO,EADF4iO,0BAfF,SAkBA,EAAgDjnC,cAAxC5rF,EAAR,EAAQA,QAAS6rF,EAAjB,EAAiBA,aAAcC,EAA/B,EAA+BA,MAAOr1B,EAAtC,EAAsCA,MAChCpzK,EAAOG,cACP4e,GAAWipI,cAEjB,GACEtlB,aAAY,SAACnsI,GAAD,YAAY,CACtBi8L,OAAOq9E,IAAoCt5Q,KAAiBy4O,EAC5D8gC,cAAa,UAAED,IAAoCt5Q,UAAtC,QAAgDy4O,EAC7D+gC,mBAAoBF,IAAoCt5Q,GACxDo1K,iBAAkBkkG,IAAkCt5Q,GACpDq1K,gBAAiBikG,IAAiCt5Q,OAN9Ci8L,GAAR,GAAQA,MAAOs9E,GAAf,GAAeA,cAAenkG,GAA9B,GAA8BA,iBAAkBC,GAAhD,GAAgDA,gBAShD,IATA,GAAiEmkG,mBASnBrtI,aAAY,SAACnsI,GAAD,MAAY,CACpEy5Q,cAAeH,IACIt5Q,GAChBs8B,QAAO,SAAC1R,GAAD,OAAaA,EAAQ8uP,cAAgB,KAC5Cp9O,QAAO,SAAC1R,GAAD,OACc,IAApBiuN,GAA6D,KAApB,OAAb0gC,SAAa,IAAbA,QAAA,EAAAA,GAAejjC,eACvC1rN,EAAQrlB,YAAcA,GACE,IAAxBuzO,GAAiE,KAApB,OAAbygC,SAAa,IAAbA,QAAA,EAAAA,GAAejjC,eAC/C1rN,EAAQlmB,gBAAkBA,EACH,OAAvBkmB,EAAQrlB,YAAkD,OAA3BqlB,EAAQlmB,kBAE/Ci1Q,mBAAoBL,IAAiCt5Q,QAX/Cy5Q,GAAR,GAAQA,cAAeE,GAAvB,GAAuBA,mBAcJznE,IAmJnB,OAAO98B,IACLC,KACwB,IAAvB4jE,SAAkD3qO,IAAlBirQ,IAAiD,OAAlBA,IAChE,6BAEA,cAAC,IAAD,CACEv2J,UAAU,sBACV+vF,iBAAiB,8BACjB5lE,OAAQwkE,EACRr8L,MAAO7L,EAAK0E,cAAc,CAAEC,GAAI6tL,GAAQ,kBAAoB,kBAC5DwX,SAAUxX,IAAK,OAAes9E,SAAf,IAAeA,QAAZjrQ,EAAYirQ,GAAez4O,YAC7CnrB,MAAO,QACPq9L,eAAgB,WACdxqL,GAASwD,OACT0qN,IACA75D,KAVJ,SAaE,qCACE,eAAC,IAAD,WACE,cAAC,IAAD,CAAK9E,GAAG,KAAR,SACE,cAAC,IAAD,CACE3xD,QAASA,EACT/3G,KAAK,cACLm8K,aAAY,OAAE+uF,SAAF,IAAEA,QAAF,EAAEA,GAAez4O,YAC7B8nE,MAAO,CAAEQ,UAAU,GACnB2iF,OAAQ,gBAAGrnE,EAAH,EAAGA,MAAOimE,EAAV,EAAUA,WAAV,OACN,cAAC,IAAD,CACEjmE,MAAOA,EACPC,WAAYgmE,EACZv8K,GAAI,mBACJs6G,kBAAmB,SACnBnG,MAAO94G,EAAK0E,cAAc,CACxBC,GAAI,yBAENg7F,UAAQ,SAKhB,cAAC,IAAD,CAAK2uE,GAAG,KAAR,SACE,cAAC,IAAD,CACE3xD,QAASA,EACT/3G,KAAK,QACLm8K,aAAY,OAAE+uF,SAAF,IAAEA,QAAF,EAAEA,GAAev0K,MAC7B4D,MAAO,CAAEQ,UAAU,EAAMwwK,QAAS,gDAClC7tF,OAAQ,gBAAGrnE,EAAH,EAAGA,MAAOimE,EAAV,EAAUA,WAAV,OACN,cAAC,IAAD,CACEjmE,MAAOA,EACPC,WAAYgmE,EACZv8K,GAAI,aACJs6G,kBAAmB,SACnBnG,MAAO94G,EAAK0E,cAAc,CACxBC,GAAI,sBAENlO,KAAM,QACNkpG,UAAQ,SAKhB,cAAC,IAAD,CAAK2uE,GAAG,KAAR,SACE,cAAC,IAAD,CACE3xD,QAASA,EACT/3G,KAAK,cACLm8K,aAAY,OAAE+uF,SAAF,IAAEA,QAAF,EAAEA,GAAeM,YAC7B9tF,OAAQ,gBAAGrnE,EAAH,EAAGA,MAAOimE,EAAV,EAAUA,WAAV,OACN,cAAC,IAAD,CACEjmE,MAAOA,EACPC,WAAYgmE,EACZv8K,GAAI,mBACJs6G,kBAAmB,SACnBnG,MAAO94G,EAAK0E,cAAc,CACxBC,GAAI,gCAMd,cAAC,IAAD,CAAK2pK,GAAG,KAAR,SACE,cAAC,IAAD,CACE3xD,QAASA,EACT/3G,KAAK,YACLm8K,aAAY,OAAE+uF,SAAF,IAAEA,QAAF,EAAEA,GAAeO,UAC7B/tF,OAAQ,gBAAGrnE,EAAH,EAAGA,MAAOimE,EAAV,EAAUA,WAAV,OACN,cAAC,IAAD,CACEjmE,MAAOA,EACPC,WAAYgmE,EACZ5T,QAAS7uE,MAASuwE,MAAM,OAAOtwE,OAAO,cACtCoa,MAAO94G,EAAK0E,cAAc,CACxBC,GAAI,uBAEN8oK,UAAU,SAKlB,cAAC,IAAD,CAAKa,GAAG,KAAR,SACE,cAAC,IAAD,CACE3xD,QAASA,EACT/3G,KAAK,WACLm8K,aAAcyR,GAAQ46C,EAAH,OAAqB0iC,SAArB,IAAqBA,QAArB,EAAqBA,GAAepmH,SACvD44B,OAAQ,gBAAGrnE,EAAH,EAAGA,MAAOimE,EAAV,EAAUA,WAAV,OACN,cAAC,IAAD,CACEjmE,MAAOA,EACPC,WAAYgmE,EACZv8K,GAAI,gBACJm0G,MAAO94G,EAAK0E,cAAc,CACxBC,GAAI,6BAMd,cAAC,IAAD,CAAK2pK,GAAG,KAAR,SACE,cAAC,IAAD,CACE3xD,QAASA,EACT/3G,KAAK,iBACLm8K,aAAY,OAAE+uF,SAAF,IAAEA,QAAF,EAAEA,GAAeQ,eAC7BhuF,OAAQ,gBAAGrnE,EAAH,EAAGA,MAAOimE,EAAV,EAAUA,WAAV,OACN,cAAC,IAAD,CACEjmE,MAAOA,EACPC,WAAYgmE,EACZv8K,GAAI,sBACJs6G,kBAAmB,SACnBnG,MAAO94G,EAAK0E,cAAc,CACxBC,GAAI,yCAMd,cAAC,IAAD,CAAK2pK,GAAG,KAAR,SACE,cAAC,IAAD,CACE3xD,QAASA,EACT/3G,KAAK,cACLm8K,aAAY,OAAE+uF,SAAF,IAAEA,QAAF,EAAEA,GAAeS,YAC7BjuF,OAAQ,gBAAGrnE,EAAH,EAAGA,MAAOimE,EAAV,EAAUA,WAAV,OACN,cAAC,IAAD,CACEjmE,MAAOA,EACPC,WAAYgmE,EACZv8K,GAAI,mBACJs6G,kBAAmB,SACnBnG,MAAO94G,EAAK0E,cAAc,CACxBC,GAAI,gCAMd,cAAC,IAAD,CAAK2pK,GAAG,KAAR,SACE,cAAC,IAAD,CACE3xD,QAASA,EACT/3G,KAAK,cACLm8K,aAAY,OAAE+uF,SAAF,IAAEA,QAAF,EAAEA,GAAeU,YAC7BluF,OAAQ,gBAAGrnE,EAAH,EAAGA,MAAOimE,EAAV,EAAUA,WAAV,OACN,cAAC,IAAD,CACEjmE,MAAOA,EACPC,WAAYgmE,EACZv8K,GAAI,mBACJs6G,kBAAmB,SACnBnG,MAAO94G,EAAK0E,cAAc,CACxBC,GAAI,iCAMZ0qO,GACAD,GACiC,KAApB,OAAb0gC,SAAa,IAAbA,QAAA,EAAAA,GAAejjC,gBACkB,KAApB,OAAbijC,SAAa,IAAbA,QAAA,EAAAA,GAAejjC,iBACf,cAAC,IAAD,CAAKv+D,GAAG,KAAR,SACE,cAAC,IAAD,CACE3xD,QAASA,EACT/3G,KAAM,WACNm8K,aACsB,OAApBiuD,QAAgDnqO,IAApBmqO,IACxB,OAAC8gC,SAAD,IAACA,QAAD,EAACA,GAAeW,UADpB,OAEIX,SAFJ,IAEIA,QAFJ,EAEIA,GAAeW,SAErBnuF,OAAQ,gBAAGrnE,EAAH,EAAGA,MAAH,OACN,cAAC,IAAD,CACEA,MAAOA,EACPnC,MAAO94G,EAAK0E,cAAc,CAAEC,GAAI,+BAO5C,uBACA,uBACA,cAAC,IAAD,CAAK40G,UAAW,oBAAhB,SACE,eAAC,IAAD,CAAK+0D,GAAG,KAAR,UACE,cAAC,IAAOnrC,OAAR,CACE5pB,UAAU,mBACV50G,GAAK,sBACL8L,MAAM,UAEN2yH,QAASolE,GAAa,SAAC90K,GAAD,OACpB8+J,GAxQQ,SAAC9+J,GAAY,IAAD,EAC1Bg9O,EAAepiE,cACrB,GAAIghC,EAAa,CAGf,GAAI4gC,GAAmBr9O,QAAO,SAAC1R,GAAD,OAAaA,EAAQo6E,QAAU7nE,EAAO6nE,SAAOh8E,OAAS,EAIlF,YAHAnZ,wBAA6B,CAC3B9N,MAAO,CAAE+U,aAAcrN,EAAK0E,cAAc,CAAEC,GAAI,sCAIhDqqL,GACFjwK,GACEwD,IAAA,2BACKmR,GADL,IAEE9O,WAAY2qN,EACZzzO,WAAY,KACZb,eAAgB,KAChBk8B,UAAWu5O,WAGZ,GAAIthC,GAAmBC,EAAqB,CAAC,IAAD,EACjD,GACE2gC,GAAcn9O,QACZ,SAAC1R,GAAD,OACEA,EAAQo6E,QAAU7nE,EAAO6nE,UACxBi3F,IAAerxK,EAAQgW,aAAR,OAAsB24O,SAAtB,IAAsBA,QAAtB,EAAsBA,GAAe34O,eACvD5X,OAAS,GACXwtN,EAAWl6M,QACT,SAAC1R,GAAD,OACEA,EAAQo6E,QAAU7nE,EAAO6nE,UACxBi3F,IAAerxK,EAAQgW,aAAR,OAAsB24O,SAAtB,IAAsBA,QAAtB,EAAsBA,GAAe34O,eACvD5X,OAAS,EAKX,YAHAnZ,wBAA6B,CAC3B9N,MAAO,CAAE+U,aAAcrN,EAAK0E,cAAc,CAAEC,GAAI,sCAIhDqqL,GACFjwK,GACEwD,IAAA,2BACKmR,GADL,IAEE+8O,UAA8B,IAApB/8O,EAAO+8O,SACjB7rP,WAAY2qN,EACZzzO,WAAYszO,EAAkBtzO,EAAa,KAC3Cb,eAAgBo0O,EAAsBp0O,EAAiB,KACvDk8B,UAAWu5O,MAGb5jC,GACFA,EACEC,EAAWxpC,OAAO,CAAC,2BACZ7vK,GADW,IACH+8O,SAAQ,UAAE/8O,EAAO+8O,gBAAT,SAA4Bt5O,UAAWu5O,OAIhE1jC,GACFA,EAAc,2BAAKt5M,GAAN,IAAc+8O,SAAQ,UAAE/8O,EAAO+8O,gBAAT,SAA4Bt5O,UAAWu5O,KAC5EzjC,IACA75D,IA4MoBu9F,CAAcj9O,GA1VhB,SAACA,GACnB,GAAI47M,EAAa,CACf,IACe,OAAb0gC,SAAa,IAAbA,QAAA,EAAAA,GAAen9O,QACb,SAAC1R,GAAD,OACEA,EAAQo6E,QAAU7nE,EAAO6nE,OAASp6E,EAAQgW,aAAR,OAAsB24O,SAAtB,IAAsBA,QAAtB,EAAsBA,GAAe34O,cACzE5X,QAAS,EAKX,YAHAnZ,wBAA6B,CAC3B9N,MAAO,CAAE+U,aAAcrN,EAAK0E,cAAc,CAAEC,GAAI,sCAIhDqqL,GACFjwK,GACEwD,IAAA,2BACKmR,GADL,IAEE53B,WAAY,KACZb,eAAgB,KAChBk8B,UAAS,OAAE24O,SAAF,IAAEA,QAAF,EAAEA,GAAe34O,cAGhCpY,GAASwD,YACJ,GACL6sN,GACAC,GACiC,KAApB,OAAbygC,SAAa,IAAbA,QAAA,EAAAA,GAAejjC,gBACkB,KAApB,OAAbijC,SAAa,IAAbA,QAAA,EAAAA,GAAejjC,eACf,CACA,GACEmjC,GAAcn9O,QACZ,SAAC1R,GAAD,OACEA,EAAQo6E,QAAU7nE,EAAO6nE,UACxBi3F,IAAerxK,EAAQgW,aAAR,OAAsB24O,SAAtB,IAAsBA,QAAtB,EAAsBA,GAAe34O,eACvD5X,OAAS,GACXwtN,EAAWl6M,QACT,SAAC1R,GAAD,OACEA,EAAQo6E,QAAU7nE,EAAO6nE,UACxBi3F,IAAerxK,EAAQgW,aAAR,OAAsB24O,SAAtB,IAAsBA,QAAtB,EAAsBA,GAAe34O,eACvD5X,OAAS,EAKX,YAHAnZ,wBAA6B,CAC3B9N,MAAO,CAAE+U,aAAcrN,EAAK0E,cAAc,CAAEC,GAAI,sCAIhDqqL,GACFjwK,GACEwD,IAAA,2BACKmR,GADL,IAEE+8O,UAA8B,IAApB/8O,EAAO+8O,SACjB30Q,WAAU,OAAEg0Q,SAAF,IAAEA,QAAF,EAAEA,GAAeh0Q,WAC3Bb,eAAc,OAAE60Q,SAAF,IAAEA,QAAF,EAAEA,GAAe70Q,eAC/Bk8B,UAAS,OAAE24O,SAAF,IAAEA,QAAF,EAAEA,GAAe34O,cAG5B21M,GACFA,EACEC,EAAWx0N,KAAI,SAACq4P,GAAD,aACbA,EAAUz5O,aAAV,OAAwB24O,SAAxB,IAAwBA,QAAxB,EAAwBA,GAAe34O,WAAvC,2BAESy5O,GAFT,IAGMv5O,YAAa3D,EAAO2D,YACpBkkE,MAAO7nE,EAAO6nE,MACd60K,YAAa18O,EAAO08O,YACpBE,eAAgB58O,EAAO48O,eACvB5mH,SAAUh2H,EAAOg2H,SACjB+mH,SAAQ,UAAE/8O,EAAO+8O,gBAAT,SACRJ,UAAW38O,EAAO28O,UAClBE,YAAa78O,EAAO68O,YACpBC,YAAa98O,EAAO88O,cAEtBI,MAGV7xP,GAASwD,OAGX0qN,IACA75D,IA2Q4Ct8I,CAAYpD,MANhD,SASE,cAAC,IAAD,CACE/uB,GAAE,WACCyqO,GAAmBC,IAAwB78C,GAAQ,aAAe,mBAIzE,cAAC,IAAOrvD,OAAR,CACE5pB,UAAU,cACV9oG,MAAM,QACN2yH,QAAS,WACPrkH,GAASwD,OACT0qN,IACA75D,KANJ,SASE,cAAC,IAAD,CAAkBzuK,GAAG,+BASnCirQ,EAA0BpwJ,aAAe,GAE1BowJ,O,6BC/cf,gGAMaj2O,EAAU,YAMVk3O,EAA6B,SACxCxpQ,EACAswB,GAEA,IAAM9wB,EAAe,IAAIjE,IAQzB,OAPAg1B,IAAsB1wB,6BAA6BC,IAAON,GAC1DA,EAAa5D,iBAAiB,CAC5BwB,OAAQ,oBACRjO,OAAQ,MACR2N,WAAY,eAEd0C,EAAa3D,iBAAiBy0B,GACvB9wB,EAAa9C,KAAb,UAAqB41B,EAArB,gBAA4CtyB,IAGxCypQ,EAAmC,SAC9CzpQ,EACAswB,GAEA,IAAM9wB,EAAe,IAAIjE,IAQzB,OAPAg1B,IAAsB1wB,6BAA6BC,IAAON,GAC1DA,EAAa5D,iBAAiB,CAC5BwB,OAAQ,oBACRjO,OAAQ,MACR2N,WAAY,eAEd0C,EAAa3D,iBAAiBy0B,GACvB9wB,EAAa9C,KAAb,UAAqB41B,EAArB,sBAAkDtyB,K,kHCoC5Cy5O,IA9DkB,SAACl0O,GAChC,IACE0uG,EAIE1uG,EAJF0uG,kBACAL,EAGEruG,EAHFquG,MAFF,EAKIruG,EAFF4uG,kCAHF,MAG+B,SAACtuG,GAAD,OAAW,MAH1C,EAIEiyG,EACEvyG,EADFuyG,SAEIn/G,EAAOG,cACP4wQ,EAAa95P,MAAM,GACtB+uP,KAAK,MACLztP,KAAI,SAACwgG,EAAGtrF,GAAJ,MAAW,CACd9oB,GAAI8oB,EAAI,EACRvgB,MAAOugB,EAAI,EACXqrF,MAAM,iBAAD,OAAmBrrF,EAAI,GAC5B1b,SAAU,cACV7L,UAAW29K,YAAoBp2J,EAAI,OAIvC,EAAoCu1G,mBAASzwG,KAAKD,OAAlD,mBAAO+rM,EAAP,UAKAtiH,qBAAU,WACW,MAAfd,EAAM/tG,YAAgCrI,GAAfo2G,EAAM/tG,OAA4C,GAAtB+tG,EAAM/tG,MAAMqS,QACjE07F,EAAMkB,SAASb,KAEhB,CAACL,EAAM/tG,QAEV6uG,qBAAU,WACJT,GACFU,EAAcV,KAEf,CAACA,IAEJ,IAAMU,EAAgB,SAAC9uG,GACrB+tG,EAAMkB,SAASjvG,GACXsuG,GACFA,EAA2BtuG,IAG/B,OACE,wBAAC,IAAD,2BACMqnG,eAAK3nG,EAAO,CAAC,uBADnB,IAEEhI,KAAK,cACLD,GAAI,cACJlM,IAAK4lO,EACLjvN,WAAY+vG,EACZrG,MAAO,cAAC,IAAD,CAAkBn0G,GAAG,kBAC5By2G,QAAS21J,EAAWx4P,KAAI,SAACurK,GACvB,OAAO,2BACFA,GADL,IAEE1+K,KAAM,cAAC,IAAD,CAAMA,KAAM0+K,EAAS/xK,SAAUtB,MAAOqzK,EAAS59K,YACrD4yG,MAAO,cAAC,IAAD,CAAkBn0G,GAAE,wBAAmBm/K,EAAS52K,SACvDgsG,WAAYl5G,EAAK0E,cAAc,CAAEC,GAAI,iBAAmBm/K,EAAS52K,kB,8HCjDrE64M,EAAiC,SAACn5M,GACtC,IAAQonC,EAAmEpnC,EAAnEonC,OAAQk0J,EAA2Dt7L,EAA3Ds7L,kBAAmB8d,EAAwCp5M,EAAxCo5M,oCAC7BhmN,EAAOG,cAEb,EAA4D6iI,oBAAS,GAArE,mBAAOguI,EAAP,KAA+BC,EAA/B,KAGA,EAAiDjI,YAAkB,OACjEh1N,QADiE,IACjEA,OADiE,EACjEA,EAAQsB,SACR07N,GAFM9H,EAAR,EAAQA,aAAcE,EAAtB,EAAsBA,uBAWtB,OANArtJ,qBAAU,gBACiBl3G,KAAf,OAANmvC,QAAM,IAANA,OAAA,EAAAA,EAAQsB,WAA+C,QAAf,OAANtB,QAAM,IAANA,OAAA,EAAAA,EAAQsB,WAC5C27N,GAA2BD,KAE5B,QAACh9N,QAAD,IAACA,OAAD,EAACA,EAAQsB,WAELtB,EACL,cAAC,IAAD,CACEulE,UAAU,sBACV+vF,iBAAiB,8BACjB5lE,OAAQwkE,EACRr8L,MAAO7L,EAAK0E,cAAc,CAAEC,GAAI,2BAChCqlM,SAAUh2J,EAAO1lB,WACjBpiB,MAAO,QACPq9L,eAAgB,WACdyc,KARJ,SAWGojD,EACC,cAAC,IAAD,UACE,cAAC,IAAD,CAAK96F,GAAG,KAAK/0D,UAAU,eAAvB,SACE,cAAC,IAAD,CAAS9oG,MAAM,UAAUD,KAAK,WAIlC,cAAC,IAAD,UACG04P,EAAa3wP,KAAI,SAAC2Q,GAAD,OAChB,cAAC,IAAD,CAAwBolJ,GAAG,IAA3B,SACE,cAAC,IAAD,CACEyX,KAAM,CACJG,cAAeh9J,EAAMg9J,cACrBF,SAAU98J,EAAMgoP,UAChBjrF,QAAS/8J,EAAM+8J,QACfmiE,OAAQl/N,EAAMk/N,WANVl/N,EAAMk/N,eAexB,8BAIJriC,EAA+BvmG,aAAe,GAE/BumG,O,6BC/Ef,+DA+BemtC,IAnBY,SAACtmP,GAC1B,IAAQ5H,EAA0E4H,EAA1E5H,QAAR,EAAkF4H,EAAjE6D,aAAjB,MAAyB,UAAzB,IAAkF7D,EAA9CxH,YAApC,MAA2C,mBAA3C,IAAkFwH,EAAnBm2H,eAA/D,SAEa5iI,cAEb,OAAO4iI,EACL,cAAC,IAAD,CAAKxpB,UAAU,sCAAf,SACE,cAAC,IAAD,CAAO43J,QAAS1gQ,EAAO8oG,UAAU,OAAjC,SACE,eAAC,IAAD,CAAKA,UAAU,YAAf,UACE,cAAC,IAAD,CAAM/oG,KAAM,GAAIpL,KAAMA,EAAMm0G,UAAU,SACtC,cAAC,IAAD,UAAMv0G,WAKZ,+B,4GCoDEuO,EAAgB3c,YAAgB,CACpCs5G,KAvEW,WAAyB,IAAxB35G,EAAuB,uDAAf,GAAIC,EAAW,uCACnC,OAAQA,EAAOC,MAEb,KAAKC,IACH,MAA4BF,EAAOM,QAA3B2d,EAAR,EAAQA,SAAUshB,EAAlB,EAAkBA,MACZrf,EAAQ,eAAQngB,GAQtB,OAPAw/B,EAAMrR,SAAQ,SAAC0sP,GACb16P,EAAS06P,GAAT,yBACExsP,YAAY,GACTnQ,EAAS28P,IAFd,IAGE1kQ,aAAa,OAGVgK,EAIT,QACE,OAAOngB,IAsDXw/B,MAjDY,WAAyB,IAAxBx/B,EAAuB,uDAAf,GAAIC,EAAW,uCACpC,OAAQA,EAAOC,MAEb,KAAKC,IACH,IAAQq/B,EAAUv/B,EAAOM,QAAjBi/B,MACR,OAAOs6E,IAAMt6E,GAIf,QACE,OAAOx/B,IAwCX47G,eAlCqB,WAA4B,IAA3B57G,EAA0B,wDAAXC,EAAW,uCAChD,OAAQA,EAAOC,MACb,KAAKC,IACH,OAAO,EAET,KAAKA,IACL,KAAKA,IACH,OAAO,EAET,QACE,OAAOH,IAyBX87G,kBApBwB,WAA2B,IAA1B97G,EAAyB,uDAAjB,KAAMC,EAAW,uCAClD,OAAQA,EAAOC,MACb,KAAKC,IACH,IAAQ4B,EAAU9B,EAAOM,QAAjBwB,MACR,OAAOA,EAET,KAAK5B,IACL,KAAKA,IACH,OAAO,KAET,QACE,OAAOH,MAYEgd,MAGR,IAAMva,EAAc,SAACzC,GAAD,OAAWA,EAAM2c,eAAeK,eAI9C89P,EAAuB,SAAC96Q,GAAD,OAClCyC,EAAYzC,GAAOw/B,MAAMxd,KAAI,SAAC5T,GAAD,OAFA,SAACpO,EAAO66Q,GAAR,OAA2Bp4Q,EAAYzC,GAAO25G,KAAKkhK,GAE3CE,CAAgB/6Q,EAAOoO,Q,4GCfxD6O,EAAgB5c,YAAgB,CACpCs5G,KAvEW,WAAyB,IAAxB35G,EAAuB,uDAAf,GAAIC,EAAW,uCACnC,OAAQA,EAAOC,MAEb,KAAKC,IACH,MAA4BF,EAAOM,QAA3B2d,EAAR,EAAQA,SAAUshB,EAAlB,EAAkBA,MACZrf,EAAQ,eAAQngB,GAQtB,OAPAw/B,EAAMrR,SAAQ,SAAC6sP,GACb76P,EAAS66P,GAAT,yBACE3sP,YAAY,GACTnQ,EAAS88P,IAFd,IAGE7kQ,aAAa,OAGVgK,EAIT,QACE,OAAOngB,IAsDXw/B,MAjDY,WAAyB,IAAxBx/B,EAAuB,uDAAf,GAAIC,EAAW,uCACpC,OAAQA,EAAOC,MAEb,KAAKC,IACH,IAAQq/B,EAAUv/B,EAAOM,QAAjBi/B,MACR,OAAOs6E,IAAMt6E,GAIf,QACE,OAAOx/B,IAwCX47G,eAlCqB,WAA4B,IAA3B57G,EAA0B,wDAAXC,EAAW,uCAChD,OAAQA,EAAOC,MACb,KAAKC,IACH,OAAO,EAET,KAAKA,IACL,KAAKA,IACH,OAAO,EAET,QACE,OAAOH,IAyBX87G,kBApBwB,WAA2B,IAA1B97G,EAAyB,uDAAjB,KAAMC,EAAW,uCAClD,OAAQA,EAAOC,MACb,KAAKC,IACH,IAAQ4B,EAAU9B,EAAOM,QAAjBwB,MACR,OAAOA,EAET,KAAK5B,IACL,KAAKA,IACH,OAAO,KAET,QACE,OAAOH,MAYEid,MAGR,IAAMxa,EAAc,SAACzC,GAAD,OAAWA,EAAM2c,eAAeM,eAI9Cg+P,EAAuB,SAACj7Q,GAAD,OAClCyC,EAAYzC,GAAOw/B,MAAMxd,KAAI,SAAC5T,GAAD,OAFA,SAACpO,EAAOg7Q,GAAR,OAA2Bv4Q,EAAYzC,GAAO25G,KAAKqhK,GAE3CE,CAAgBl7Q,EAAOoO,OACjD+sQ,EAA8B,SAACn7Q,EAAOo7Q,GAAR,OACzCH,EAAqBj7Q,GAAOs8B,QAAO,SAACgX,GAAD,OAAWA,EAAM8nO,UAAYA,O,qHChB5D7nO,EAASlzC,YAAgB,CAC7Bs5G,KAvEW,WAAyB,IAAxB35G,EAAuB,uDAAf,GAAIC,EAAW,uCACnC,OAAQA,EAAOC,MAEb,KAAKC,IACH,MAA4BF,EAAOM,QAA3B2d,EAAR,EAAQA,SAAUshB,EAAlB,EAAkBA,MACZrf,EAAQ,eAAQngB,GAQtB,OAPAw/B,EAAMrR,SAAQ,SAACklB,GACblzB,EAASkzB,GAAT,yBACEhlB,YAAY,GACTnQ,EAASm1B,IAFd,IAGEl9B,aAAa,OAGVgK,EAIT,QACE,OAAOngB,IAsDXw/B,MAjDY,WAAyB,IAAxBx/B,EAAuB,uDAAf,GAAIC,EAAW,uCACpC,OAAQA,EAAOC,MAEb,KAAKC,IACH,IAAQq/B,EAAUv/B,EAAOM,QAAjBi/B,MACR,OAAOs6E,IAAMt6E,GAIf,QACE,OAAOx/B,IAwCX47G,eAlCqB,WAA4B,IAA3B57G,EAA0B,wDAAXC,EAAW,uCAChD,OAAQA,EAAOC,MACb,KAAKC,IACH,OAAO,EAET,KAAKA,IACL,KAAKA,IACH,OAAO,EAET,QACE,OAAOH,IAyBX87G,kBApBwB,WAA2B,IAA1B97G,EAAyB,uDAAjB,KAAMC,EAAW,uCAClD,OAAQA,EAAOC,MACb,KAAKC,IACH,IAAQ4B,EAAU9B,EAAOM,QAAjBwB,MACR,OAAOA,EAET,KAAK5B,IACL,KAAKA,IACH,OAAO,KAET,QACE,OAAOH,IAUXizC,qBAGaM,MAGR,IAAM9wC,EAAc,SAACzC,GAAD,OAAWA,EAAM2c,eAAec,OAAO81B,QAIrD8nO,EAAgB,SAACr7Q,GAAD,OAAWyC,EAAYzC,GAAOw/B,MAAMxd,KAAI,SAAC5T,GAAD,OAD7C,SAACpO,EAAOqzC,GAAR,OAAoB5wC,EAAYzC,GAAO25G,KAAKtmE,GACSioO,CAASt7Q,EAAOoO,Q,wRC1FhFg1B,EAAU,YAuBVm4O,EAAoB,SAACzqQ,GAChC,IAAMR,EAAe,IAAIjE,IAQzB,OAPAg1B,IAAsB1wB,6BAA6BC,IAAON,GAC1DA,EAAa5D,iBAAiB,CAC5B2B,KAAK,GAAD,OAAKyC,EAAQ3P,WACjB+M,OAAQ,0BACRjO,OAAQ6Q,EAAQ0qQ,gBAAkB,OAAS,SAC3C5tQ,WAAY,mBAEP0C,EAAa9C,KAAb,UAAqB41B,EAArB,sBAAkDtyB,IAG9C2qQ,EAAoB,SAAC3qQ,GAChC,IAAMR,EAAe,IAAIjE,IAEzB,OADAg1B,IAAsB1wB,6BAA6BC,IAAON,GACnDA,EAAa9C,KAAb,UAAqB41B,EAArB,sBAAkDtyB,IAG9C4qQ,EAAsB,SAAC5qQ,GAClC,IAAMR,EAAe,IAAIjE,IAQzB,OAPAg1B,IAAsB1wB,6BAA6BC,IAAON,GAC1DA,EAAa5D,iBAAiB,CAC5B2B,KAAK,GAAD,OAAKyC,EAAQ3P,WACjB+M,OAAQ,0BACRjO,OAAQ,SACR2N,WAAY,mBAEP0C,EAAa9C,KAAb,UAAqB41B,EAArB,wBAAoDtyB,I,+KCjBvD6qQ,EAA2B,SAACtlQ,GAChC,IAAQyxL,EAAiFzxL,EAAjFyxL,gBAAiBC,EAAgE1xL,EAAhE0xL,iBAAkBzyL,EAA8Ce,EAA9Cf,MAAOqnM,EAAuCtmM,EAAvCsmM,QAAS3qK,EAA8B37B,EAA9B27B,SAAUuyK,EAAoBluM,EAApBkuM,gBACrE,EAAkCvS,cAA1B5rF,EAAR,EAAQA,QAAS6rF,EAAjB,EAAiBA,aACXxoM,EAAOG,cAEb,EAA4C6iI,mBAAgB,IAA5D,mBAAOmvI,EAAP,KAAuBC,EAAvB,KACA,EAA8DpvI,oBAAkB,GAAhF,mBAAOqvI,EAAP,KAAgCC,EAAhC,KACA,EAAgDtvI,mBAAiB,GAAjE,mBAAOi4E,EAAP,KAAyBC,EAAzB,KAGA,EAAgCl4E,mBAAkB83E,GAAlD,mBAAOK,GAAP,KAAiBC,GAAjB,KACAr/F,qBAAU,WACRq/F,GAAYN,KACX,CAACA,IACJ,OAAsC93E,mBAAS,CAC7CtrI,UAAW,GACX2jN,SAAU,KAFZ,qBAAoBC,IAApB,aAMMi3D,GAAsB,uCAAG,WAAOhqO,GAAP,iBAAA9kC,EAAA,6DAC7B6uQ,GAA2B,GAC3BF,EAAkB,IAFW,SAGNJ,EAAkB,CAAE3tO,WAAYkE,EAASlE,aAHnC,OAGvBzgC,EAHuB,OAI7B0uQ,GAA2B,GACvB1uQ,EAASqB,UACLkkB,EAASlyB,IAAc2M,EAASnB,MAAM8V,KAAI,SAAC2nL,GAC/C,OAAO,2BACFA,GADL,IAGEsyE,UAAW,kBACX5hJ,QAASsvE,EAAI6xE,gBACbp2D,UAA4B,MAAjBzb,EAAIyb,WAAsC,GAAjBzb,EAAIyb,UAAiB,EAAI,OAGjEy2D,EAAkBjpP,IAfS,2CAAH,sDAoBtBspP,GAAsB,uCAAG,WAAO/+O,GAAP,mBAAAjwB,EAAA,6DAC7B6uQ,GAA2B,GACrB92D,EAAsBL,GAA8C,GAAnCg3D,EAAel3D,GAChDy3D,EAHuB,uCAIxBl3D,GACA9nL,GALwB,IAM3B2nL,SAAWF,GAEe,GAAtBznL,EAAOgoL,YACPhoL,EAAOsyJ,SACPtyJ,EAAO2nL,SAHPG,EAAmBH,SAIvB3jN,UAAWg8B,EAAOh8B,UAClBozO,iBAAkBp3M,EAAOo3M,iBACzBnvB,UAAWjoL,EAAOioL,YAbS,SAeNm2D,EAAkBY,GAfZ,YAevB9uQ,EAfuB,QAgBhBqB,QAhBgB,iCAiBrBstQ,GAAuBhqO,GAjBF,OAkB3B6yK,IAAY,GACZk3D,GAA2B,GAnBA,yBAqBb,CACZjlQ,aAAczJ,EAASoB,QACvB2T,YAAa/U,EAASgV,SAvBG,4CAAH,sDA8BtB+5P,GAAwB,uCAAG,4BAAAlvQ,EAAA,sDACzBmvQ,EADyB,eAE1BT,EAAel3D,IAEpB70M,gCAAqC,CACnC5P,OAAO,WAAD,4BAAE,4BAAAiN,EAAA,6DACN6uQ,GAA2B,GADrB,SAEiBL,EAAoBW,GAFrC,YAEAhvQ,EAFA,QAGOqB,QAHP,iCAIEstQ,GAAuBhqO,GAJzB,OAKJ+pO,GAA2B,GALvB,yBAOU,CACZjlQ,aAAczJ,EAASoB,QACvB2T,YAAa/U,EAASgV,SATpB,4CAAF,kDAAC,GAcP1J,WAAY9O,cAAUsE,cAAc,CAAEC,GAAI,4BAC1CwK,WAAYyjQ,EAAoBl7Q,YApBH,2CAAH,qDA+B9B,OANAqkH,qBAAU,WACJuiF,GAAoB/1J,GACtBgqO,GAAuBhqO,KAExB,CAACA,EAAU+1J,IAGZ,eAAC,IAAD,CACE/kF,UAAU,sBACV+vF,iBAAkB4J,EAAU,kCAAoC,8BAChExvE,OAAQ46D,EACRzyL,MAAOA,EACPK,MAAM,QACNq9L,eAAgB,WACVlL,GAAiBA,KAPzB,UAUE,cAAC7M,EAAA,EAAD,CACEC,OAAS0pB,GAAwC,qBAA7B,2BACpB12B,QAAQ,EACRiN,cAAe,cAGhB2gF,GACC,qBAAK94J,UAAU,qCAAf,SACE,cAAC4pE,EAAA,EAAD,CAAS1yK,MAAM,eAKjB4hQ,GACA,sCACIl3D,IACA,cAAC72D,EAAA,EAAD,CACEC,QAAS,CACP,cAAC9hB,EAAA,EAAD,CACE99H,GAAI,0BACJS,KAAM,SACNgK,YAAY,EACZwzH,YAAa,WACXw4E,IAAY,IAEdv4E,eAAgBziI,cAAUsE,cAAc,CAAEC,GAAI,yBAEhDwtQ,EAAe5yP,OAAS,GACtB,cAACkjH,EAAA,EAAD,CACE99H,GAAI,6BACJ8L,MAAM,SACNrL,KAAM,QACNy9H,eAAgBziI,cAAUsE,cAAc,CAAEC,GAAI,0BAC9CyK,YAAY,EACZwzH,YAAa,WACX+vI,WAQXR,EAAe5yP,OAAS,IAAM47L,IAC7B,cAACW,EAAA,EAAD,CACEC,OAAO,EACP5yL,OAAQgpP,EACRn2D,UAAU,EACVC,cAAe,SAACC,GACdhB,EAAoBgB,IAEtBC,YAAY,EACZC,YAAY,EACZC,WAAW,EACX9iG,UAAW,yBACX+iG,gBAAiB,yBACjBC,aAAc,QAIjB41D,EAAe5yP,OAAS,IAAM47L,IAC7B,eAACqB,EAAA,EAAD,WACE,uBACA,eAAChV,EAAA,EAAD,WACE,cAACplB,EAAA,EAAD,CAAK9T,GAAI,KAAT,SACE,cAAC,IAAD,CACE3xD,QAASA,EACT/3G,KAAK,YACL09K,OAAQ,gBAAGrnE,EAAH,EAAGA,MAAOimE,EAAV,EAAUA,WAAV,OACN,cAACliE,EAAA,EAAD,CACE/D,MAAOA,EACPC,WAAYgmE,EACZv8K,GAAI,iBACJg7F,UAAU,EACV2b,kBACG6/F,GAAwD,GAA7Cg3D,EAAel3D,GAAkBvjN,UAE/CohH,MAAO,cAAC,IAAD,CAAkBn0G,GAAG,4BAKpC,cAACy9K,EAAA,EAAD,CAAK9T,GAAI,KAAT,SACE,cAAC,IAAD,CACE3xD,QAASA,EACT/3G,KAAK,mBACL09K,OAAQ,gBAAGrnE,EAAH,EAAGA,MAAOimE,EAAV,EAAUA,WAAV,OACN,cAACliE,EAAA,EAAD,CACE/D,MAAOA,EACPC,WAAYgmE,EACZv8K,GAAI,wBACJg7F,UAAU,EACV2b,kBACG6/F,GAA+D,GAApDg3D,EAAel3D,GAAkB6vB,iBAE/ChyH,MAAO,cAAC,IAAD,CAAkBn0G,GAAG,mCAKpC,cAACy9K,EAAA,EAAD,CAAK9T,GAAI,KAAT,SACE,cAAC,IAAD,CACE3xD,QAASA,EACT/3G,KAAK,YACL09K,OAAQ,gBAAGrnE,EAAH,EAAGA,MAAH,OACN,cAAC,IAAD,CACEA,MAAOA,EACPK,mBACG6/F,IAAyD,GAA9Cg3D,EAAel3D,GAAkBU,UAE/C7iG,MAAO,cAAC,IAAD,CAAkBn0G,GAAG,kCAMtC,cAAC6iM,EAAA,EAAD,UACE,cAACplB,EAAA,EAAD,CAAK9T,GAAG,KAAR,SACE,eAAC+8B,EAAA,EAAD,CAAW9xF,UAAU,cAArB,UACE,cAACuwF,EAAA,EAAO3mE,OAAR,CACE5pB,UAAU,OACV9oG,MAAM,UAEN2yH,QAASolE,GAAa,SAAC90K,GACrB++O,GAAuB/+O,GACvB2qK,OANJ,SASE,cAAC,IAAD,CAAkB15L,GAAG,kBAEvB,cAACmlM,EAAA,EAAO3mE,OAAR,CACE1yH,MAAM,QACN2yH,QAAS,WACHi7D,GAAiBA,KAHzB,SAME,cAAC,IAAD,CAAkB15L,GAAG,8BASP,GAAzBwtQ,EAAe5yP,SAAgB8yP,IAA4Bl3D,IAC1D,qBAAK5hG,UAAU,wBAAf,SACE,sBAAKA,UAAU,oBAAf,UACE,oBAAIA,UAAU,OAAd,SACE,cAAC,IAAD,CAAkB50G,GAAG,yBAEvB,mBAAG40G,UAAU,OAAb,SACE,cAAC,IAAD,CAAkB50G,GAAG,qCAEvB,cAACmlM,EAAA,EAAO3mE,OAAR,CACE1yH,MAAM,UACN8oG,UAAU,oBACV6pB,QAAS,WACPg4E,IAAY,IAJhB,SAOE,cAAC,IAAD,CAAkBz2M,GAAG,gDAO5Bw2M,IACC,cAACsB,EAAA,EAAD,CACEC,UAAW,YACXC,UAAU,EACVC,OAAQ,EAAI,EACZC,wBAAyB,SAACnpL,KAC1BopL,wBAAyB,aACzBC,YAAa,CAAE14K,WAAYkE,EAASlE,YACpCwjK,OAAQ,CACN,CACEpxM,KAAM,OACNmO,KAAM,YACNk0G,MAAO94G,EAAK0E,cAAc,CAAEC,GAAI,qBAChCg7F,UAAU,EACV7yF,aAAc,IAEhB,CACErW,KAAM,OACNmO,KAAM,mBACNk0G,MAAO94G,EAAK0E,cAAc,CAAEC,GAAI,4BAChCg7F,UAAU,EACV7yF,aAAc,IAEhB,CACElI,KAAM,YAEN02G,mBAAmB,EACnBxC,MAAO94G,EAAK0E,cAAc,CAAEC,GAAI,wBAChCg7F,UAAU,EACVlpG,KAAM,WACNqW,aAAc,KAGlBkwM,cAAe,SAAC9vM,GAAD,OAAWouM,GAAepuM,IACzC+vM,oBAAqB,SAACvpL,GACpB++O,GAAuB/+O,IAEzB2qK,gBAAiB,WACXyc,EACFzc,IAEA+c,IAAY,IAGhB8B,UAAW,wBAKnB,uBACC/B,KAAaL,GACZ,cAACtT,EAAA,EAAD,UACE,cAACplB,EAAA,EAAD,CAAK9T,GAAG,KAAR,SACE,cAAC+8B,EAAA,EAAD,CAAW9xF,UAAU,cAArB,SACE,cAACuwF,EAAA,EAAO3mE,OAAR,CACE1yH,MAAM,QACN2yH,QAAS,WACPg4E,IAAY,IAHhB,SAME,cAAC,IAAD,CAAkBz2M,GAAG,yCASrCutQ,EAAyB1yJ,aAAe,CACtC6+E,gBAAiB,kBAAM,MACvBC,kBAAkB,EAClBzyL,MAAO,GACPqnM,SAAS,EACT3qK,SAAU,GACV40K,YAAY,EACZrC,iBAAiB,GAGJo3D,QC9WA,SAASW,GAAT,GAWX,IAAD,IAVDx0E,EAUC,EAVDA,gBACAC,EASC,EATDA,iBASC,IARD37D,iBAQC,aAPD92H,aAOC,MAPO,GAOP,MANDqnM,eAMC,SALD3qK,EAKC,EALDA,SAKC,IAJDi3J,6BAIC,WAJuB36L,EAIvB,MAHD46L,gCAGC,WAH0B56L,EAG1B,OAFD66L,yBAEC,EADDozE,uBACC,MADgB,SAACh/N,KACjB,EACKupK,EAAUC,cACVt9M,EAAOG,cACP4e,EAAWipI,cACjB,EAA4ChlB,mBAAgB,IAA5D,mBAAOmvI,EAAP,KAAuBC,GAAvB,KACA,GAAsCpvI,mBAAe,IAAIzwG,MAAzD,qBAAOm2K,GAAP,MAAoBC,GAApB,MACA,GAA8D3lE,oBAAkB,GAAhF,qBAAOqvI,GAAP,MAAgCC,GAAhC,MACA,GAAwEtvI,oBAAS,GAAjF,qBAAO+vI,GAAP,MAAqCC,GAArC,MACA,GAA4DhwI,oBAAS,GAArE,qBAAOiwI,GAAP,MAA+BC,GAA/B,MACA,GAAwElwI,oBAAS,GAAjF,qBAAOmwI,GAAP,MAAsCC,GAAtC,MAEA,GAAwDpwI,wBAAcn+H,GAAtE,qBAAOwuQ,GAAP,MAA6BC,GAA7B,MAEMnmD,IAD0BjhB,IAAMrtD,OAAOw0H,IAEf,MAA5B5zE,EAAmC6zE,GAA0B7zE,GACzDytB,GACwB,MAA5BztB,EAAmC4zE,GAAuB7zE,EAI5D,GAAiD98D,aAAY,SAACnsI,GAAD,MAAY,CACvEypM,iBAAkB3iB,IAA8B9mL,EAA9B,OAAqCgyC,QAArC,IAAqCA,OAArC,EAAqCA,EAAUlE,YACjE+7F,mBAAoBi9C,IAAqC9mL,OAFnDypM,GAAR,GAAQA,iBAAkB5/D,GAA1B,GAA0BA,mBAK1BrkB,qBAAU,YACJxzE,EAASlE,YAAe27J,GAAiB37J,YAAe+7F,IAC1Di+D,MACD,CAACj+D,KAEJrkB,qBAAU,gBACgBl3G,IAApBqoN,KACFnuM,EAAS9B,IAAkCiwM,GAAgB7oL,aAC3D+uO,IAA+B,MAEhC,CAAClmD,KAEJnxG,qBAAU,WACJxzE,EAASlE,aACX2uO,IAAgC,GAChCA,IAAgC,GAChCI,IAA+B,MAEhC,CAAC7qO,EAASlE,aAGb,IAAMkuO,GAAsB,uCAAG,WAAOhqO,GAAP,iBAAA9kC,EAAA,6DAC7B6uQ,IAA2B,GAC3BF,GAAkB,IAFW,SAGNJ,EAAkB,CAAE3tO,WAAYkE,EAASlE,aAHnC,OAGvBzgC,EAHuB,OAI7B0uQ,IAA2B,GACvB1uQ,EAASqB,UACLkkB,EAASlyB,IAAc2M,EAASnB,MAAM8V,KAAI,SAAC2nL,GAC/C,OAAO,2BACFA,GADL,IAEEsyE,UAAW,kBACX5hJ,QAASsvE,EAAI6xE,gBACbp2D,UAA4B,MAAjBzb,EAAIyb,WAAsC,GAAjBzb,EAAIyb,eAG5Cy2D,GAAkBjpP,IAdS,2CAAH,sDA+B5B,OAdA4yF,qBAAU,WACJuiF,GAAoB/1J,GACtBgqO,GAAuBhqO,KAExB,CAACA,EAAU+1J,IAEdviF,qBAAU,WACJuiF,IACG4U,GACHvK,GAAe,IAAIp2K,SAGtB,CAAC+rK,IAGF,qCACE,eAAC,IAAD,CACE/kF,UAAU,sBACV+vF,iBACE4J,EAAU,kCAAoC,8BAEhDxvE,OAAQ46D,EACRzyL,MAAOA,EACPK,MAAM,QACNq9L,eAAgBlL,EARlB,UAUE,cAAC7M,EAAA,EAAD,CAASC,OAAQ,qBAAsBhN,QAAQ,EAAMiN,cAAe,eAElE2gF,IAA2B1vI,IAC3B,qBAAKppB,UAAU,qCAAf,SACE,cAAC4pE,EAAA,EAAD,CAAS1yK,MAAM,eAIjB4hQ,KAA4B1vI,GAAawvI,EAAe5yP,OAAS,GACjE,cAACu8L,EAAA,EAAD,CACEC,OAAO,EACP5yL,OAAQgpP,EACRn2D,SAAU,CACRrpL,MAAO,IACPkxL,sBAAsB,EACtBC,mBAAmB,GAErB3H,YAAY,EACZC,YAAY,EACZ7iG,UAAW,2BAGf,wBAEEopB,GAAkC,MAArBp6F,EAAS7S,UAA0C,MAAtB6S,EAAS5S,WACnD,qCACE,cAAC2uH,EAAA,EAAD,CACEC,QAAS,CACP,cAAC9hB,EAAA,EAAD,CACE99H,GAAI,0BACJS,KAAM,SACNw9H,YAAa,WACXswI,IAA0B,GAC1BF,IAAgC,IAElCnwI,eAAgB7iI,EAAK0E,cAAc,CAAEC,GAAI,yBAE3C,cAAC89H,EAAA,EAAD,CACE99H,GAAI,uBACJS,KAAM,QACNgK,YAAY,EACZwzH,YAAa,WACXswI,IAA0B,GAC1BF,IAAgC,IAElCnwI,eAAgB7iI,EAAK0E,cAAc,CAAEC,GAAI,2BAE1CuuM,EAcC,cAACG,EAAA,EAAD,CACExwE,eAAgB,qBAChBzzH,YAAY,EACZwzH,YAAa,WACPuqF,IAAoBA,GAAmB5kL,IAE7CztC,YAAa,CAAC+yN,IAAoBx6K,gBAnBpC,cAACovF,EAAA,EAAD,CACE99H,GAAI,oBACJS,KAAM,MACNqL,MAAM,OACNrB,YAAY,EACZwzH,YAAa,WACXy6E,EAAQtqM,KAAK,CAAE2qM,SAAU,SAAW,CAAE61D,oBAAqB,CAAChrO,MAI9Ds6F,eAAgB7iI,EAAK0E,cAAc,CAAEC,GAAI,yBAY7C,cAAC8mM,EAAA,EAAD,CACE5oE,eAAgB,qBAChBD,YAAa,kBACXx8H,gCAAqC,CACnC5P,OADmC,WAEjCuoB,EAAS9B,IAAsCsrB,EAASlE,cAE1Dn1B,WAAYlP,EAAK0E,cAAc,CAAEC,GAAI,uBACrCwK,WAAYo5B,EAAS3C,gBAGzB9qC,YAAa,CAAC+yN,IAAoBt6K,qBAMxC,eAAC83J,EAAA,EAAD,WACE,oBAAI9xF,UAAW,2BACf,cAAC+xF,EAAA,EAAD,CAAO/xF,UAAU,oBAAjB,SACGv5G,EAAK0E,cAAc,CAAEC,GAAI,qBAE5B,cAAC2mM,EAAA,EAAD,CAAO/xF,UAAU,0BAAjB,mBAA4ChxE,EAAS3C,oBAArD,QAAqE,QACrE,oBAAI2zE,UAAW,2BACf,eAAC+xF,EAAA,EAAD,CAAO/xF,UAAU,oBAAjB,UACG,IACAv5G,EAAK0E,cAAc,CAAEC,GAAI,iCAE5B,cAAC2mM,EAAA,EAAD,CAAO/xF,UAAU,0BAAjB,SACIR,IAAEkrG,QAAQ17K,EAASilL,iBAA8C,MAA3BjlL,EAASilL,mBAGjDta,GACA,cAAC1J,EAAA,EAAD,CACEryM,WAAY,CACVoiH,UAAW,GACXH,MAAO,CAAEM,OAAQ,QACjBgvF,YAAaA,IAEf9gB,oBAAqB,CACnBC,mBAAmB,EACnBC,gBAAgB,EAChBC,eAAe,EACfC,gCAAgC,EAChCC,oBAAoB,EACpBC,oCAAoC,EACpCtzK,UAAW,CAAC2zB,MAIlB,oBAAIgxE,UAAW,2BACf,eAAC+xF,EAAA,EAAD,CAAO/xF,UAAU,oBAAjB,UACG,IACAv5G,EAAK0E,cAAc,CAAEC,GAAI,wBAE5B,cAAC2mM,EAAA,EAAD,CAAO/xF,UAAU,0BAAjB,mBAA4ChxE,EAAS0hI,cAArD,QAA+D,QAC/D,oBAAI1wD,UAAW,2BACf,eAAC+xF,EAAA,EAAD,CAAO/xF,UAAU,oBAAjB,UACG,IACAv5G,EAAK0E,cAAc,CAAEC,GAAI,0BAE5B,cAAC2mM,EAAA,EAAD,CAAO/xF,UAAU,0BAAjB,SACwB,MAArBhxE,EAAS7S,SAAmB6S,EAAS7S,SAASilE,QAAQ,GAAK,QAE9D,oBAAI4e,UAAW,2BACf,cAAC+xF,EAAA,EAAD,CAAO/xF,UAAU,oBAAjB,SACGv5G,EAAK0E,cAAc,CAAEC,GAAI,0BAE5B,cAAC2mM,EAAA,EAAD,CAAO/xF,UAAU,0BAAjB,SACwB,MAArBhxE,EAAS7S,SAAmB6S,EAAS5S,UAAUglE,QAAQ,GAAK,QAE/D,oBAAI4e,UAAW,2BACf,cAAC+xF,EAAA,EAAD,CAAO/xF,UAAU,oBAAjB,SACGv5G,EAAK0E,cAAc,CAAEC,GAAI,4BAE5B,cAAC2mM,EAAA,EAAD,CAAO/xF,UAAU,0BAAjB,SACIR,IAAEkrG,QAAQ17K,EAASutE,aAAsC,MAAvBvtE,EAASutE,cAE/C,oBAAIyD,UAAW,oCAKvB,cAAC,EAAD,CACE8kF,gBAAiB,WACf20E,IAAgC,GAChCT,GAAuBhqO,IAEzB+1J,iBAAkBy0E,GAClBlnQ,MAAO08B,EAAS3C,aAChB2C,SAAUA,EACV2qK,QAASA,EACT4H,gBAAiBm4D,KAEnB,cAACjlD,EAAA,EAAD,CACEliN,YAAa9L,EAAK0E,cAAc,CAAEC,GAAI,gBACtCujM,kBAAmBirE,GACnBjgE,QAASA,EACT/K,iBAAkB,WAChBirE,IAA+B,GAC3BlgE,GACEga,IACFnuM,EAAS9B,IAAkCiwM,GAAgB7oL,cAIjE7tC,OAAQ,SAACk9B,GACP,UAAIw5L,SAAJ,IAAIA,QAAJ,EAAIA,GAAiB7oL,WAAY,CAC/B,IAAMmvO,EAAe,uCAChBtmD,IACAx5L,GACAA,EAAO77B,YAEZknB,EAAS9B,IAAqCu2P,IAC1CV,GAAgBA,EAAeU,GAC/BrmD,IAAoBA,QAAmBtoN,KAG/CoqK,QAAS,WACHk+C,IAAoBA,QAAmBtoN,IAE7CqoN,gBAAiBA,GACjBC,mBAAoBA,GACpBthN,MACEqhN,IACIA,GAAgB7oL,WACd6oL,GAAgBtnL,aAElB5lC,EAAK0E,cAAc,CAAEC,GAAI,iC,kCCpUxBq4K,IALD,CACZ8iD,aAAc,iBACdn+M,aAAc,mB,6BCGDq7J,IALD,CACZojD,iBAAkB,qBAClBh9M,iBAAkB,uB,6BCGL45J,IALD,CACZkjD,UAAW,cACX1oN,UAAW,gB,6BCGEwlK,IALD,CACZsiD,aAAc,iBACdnlN,aAAc,mB,6BCGD6iK,IALD,CACZujD,gBAAiB,oBACjBt4M,gBAAiB,sB,6BCGJ+0J,IALD,CACZ0jD,WAAY,eACZvgN,WAAY,iB,6BCGC68J,IALD,CACZukD,YAAa,gBACb/yL,YAAa,kB,6BCGAwuI,IALD,CACZ6jD,QAAS,YACTxzL,QAAS,c,6BCGI2vI,IALD,CACZgkD,WAAY,eACZzvL,WAAY,iB,6BCGCyrI,IALD,CACZqkD,UAAW,cACXxxL,UAAW,gB,6BCKE/0C,IAPK,CAClB4lO,WAAY,QACZzgN,UAAW,QACXE,WAAY,QACZszP,aAAc,U,6BCGD34Q,IAPK,CAClBymO,YAAa,QACbjzL,WAAY,QACZE,YAAa,QACbE,cAAe,U,6BCGF5zC,IAPK,CAClB+lO,QAAS,QACT1zL,OAAQ,QACRE,QAAS,QACTE,UAAW,U,6BCKEzyC,IATK,CAClBkmO,WAAY,QACZ3vL,UAAW,QACXE,WAAY,QACZmiO,aAAc,QACdC,mBAAoB,QACpBC,eAAgB,U,6BCCH94Q,IAPK,CAClBqmO,aAAc,QACd0yC,SAAU,QACVC,UAAW,QACXC,YAAa,U,6BCCA/2F,IALD,CACZ2kD,UAAW,eACXtlL,UAAW,iB,6BCGE2gI,IALD,CACZ4kD,YAAa,eACboyC,YAAa,iB,6BCGAh3F,IALD,CACZ8kD,WAAY,eACZmyC,WAAY,iB,6BCKCj3F,IAPD,CACZ+kD,UAAW,cACXmyC,UAAW,cACXC,kBAAmB,qBACnBC,sBAAuB,4B,6BCAVp3F,IAJD,CACZilD,aAAc,mB,6BCMDnnO,IAPK,CAClBknO,cAAe,QACfqyC,aAAc,QACdC,cAAe,QACfC,gBAAiB,U,6BCCJv3F,IALD,CACZ6mD,iBAAkB,sBAClB2wC,iBAAkB,wB,6BCELx3F,IAJD,CACZwnD,UAAW,e,6BCOExnD,IARD,CACZyoD,eAAgB,mBAChBgvC,eAAgB,mBAChBC,mBAAoB,uBACpBC,kBAAmB,sCACnBC,0BAA2B,gE,6BCUd95Q,IAfK,CAClBsqO,aAAc,QACdmoC,aAAc,QACdsH,YAAa,QACbC,eAAgB,QAChB7vC,aAAc,QACdnuD,aAAc,QACdi+F,YAAa,QACbC,eAAgB,QAChBC,UAAW,QACXC,UAAW,QACXC,SAAU,QACVC,YAAa,U,6BCRAp4F,IAJD,CACZhoD,KAAM,qB,6BCGOgoD,IAJD,CACZv9J,QAAS,a,6BCGI3kB,IAJK,CAClB2kB,QAAS,U,6BCGIu9J,IAJD,CACZ6pD,cAAe,kB,oHCsEFga,IA3Dc,SAACj0O,GAC5B,IACE0uG,EAIE1uG,EAJF0uG,kBACAL,EAGEruG,EAHFquG,MAFF,EAKIruG,EAFF4uG,kCAHF,MAG+B,SAACtuG,GAAD,OAAW,MAH1C,EAIEiyG,EACEvyG,EADFuyG,SAEIn/G,EAAOG,cACPk1Q,EAAWp+P,MAAM,IACpB+uP,KAAK,MACLztP,KAAI,SAACwgG,EAAGtrF,GAAJ,MAAW,CACd9oB,GAAI8oB,EAAI,EACRvgB,MAAOugB,EAAI,EACXqrF,MAAM,gBAAD,OAAkBrrF,EAAI,GAC3B1b,SAAUqyK,YAAe32J,EAAI,OAIjC,EAAoCu1G,mBAASzwG,KAAKD,OAAlD,mBAAO+rM,EAAP,UAKAtiH,qBAAU,WACW,MAAfd,EAAM/tG,YAAgCrI,GAAfo2G,EAAM/tG,OAA4C,GAAtB+tG,EAAM/tG,MAAMqS,QACjE07F,EAAMkB,SAASb,KAEhB,CAACL,EAAM/tG,QAEV6uG,qBAAU,WACJT,GACFU,EAAcV,KAEf,CAACA,IAEJ,IAAMU,EAAgB,SAAC9uG,GACrB+tG,EAAMkB,SAASjvG,GACXsuG,GACFA,EAA2BtuG,IAG/B,OACE,wBAAC,IAAD,2BACMqnG,eAAK3nG,EAAO,CAAC,uBADnB,IAEEhI,KAAK,YACLD,GAAI,YACJlM,IAAK4lO,EACLjvN,WAAY+vG,EACZrG,MAAO,cAAC,IAAD,CAAkBn0G,GAAG,iBAC5By2G,QAASi6J,EAAS98P,KAAI,SAAC+8P,GAAD,mBAAC,eAClBA,GADiB,IAEpBlwQ,KAAM,cAAC,IAAD,CAAMA,KAAMkwQ,EAAQvjQ,WAC1B+mG,MAAO,cAAC,IAAD,CAAkBn0G,GAAE,uBAAkB2wQ,EAAQpoQ,SACrDgsG,WAAYl5G,EAAK0E,cAAc,CAAEC,GAAI,gBAAkB2wQ,EAAQpoQ,kB,0GChBxD6zO,IApCgB,SAACn0O,GAM1BA,EAJF0uG,kBAIE1uG,EAHFquG,MAGEruG,EAFF4uG,2BAHF,IAIE2D,EACEvyG,EADFuyG,SAEIn/G,EAAOG,cACP4pH,EAAW9yG,MAAM,GACpB+uP,KAAK,MACLztP,KAAI,SAACwgG,EAAGtrF,GAAJ,MAAW,CACd9oB,GAAI8oB,EAAI,EACRvgB,MAAOugB,EAAI,EACXqrF,MAAM,eAAD,OAAiBrrF,EAAI,GAC1B1b,cAAUlN,MAGd,OACE,cAAC,IAAD,2BACM0vG,eAAK3nG,EAAO,CAAC,uBADnB,IAEEhI,KAAK,YACLD,GAAI,YACJyK,WAAY+vG,EACZrG,MAAO,cAAC,IAAD,CAAkBn0G,GAAG,gBAC5By2G,QAAS2O,EAASxxG,KAAI,SAAC/R,GACrB,OAAO,2BACFA,GADL,IAEEpB,KAAM,cAAC,IAAD,CAAMA,KAAM0hL,YAAiBtgL,EAAO0G,SAC1C4rG,MAAO,cAAC,IAAD,CAAkBn0G,GAAE,sBAAiB6B,EAAO0G,SACnDgsG,WAAYl5G,EAAK0E,cAAc,CAAEC,GAAI,eAAiB6B,EAAO0G,kB,qJC3B1DoD,OAAQ,YAA2BH,IAAIqtN,iBAAhC,aAA4DC,QAkEjE83C,IAhEgB,SAAC3oQ,GAAW,IAAD,EAEtCy5I,EAMEz5I,EANFy5I,iBADF,EAOIz5I,EALF+6L,gBAFF,WAOI/6L,EAJFmxN,wBAHF,WAOInxN,EAHFu9M,uBAJF,WAOIv9M,EAFFo0O,oBALF,SAME52B,EACEx9M,EADFw9M,qBAEF,EAAkC1nF,aAAY,SAACnsI,GAAD,MAA8B,CAC1E6e,UAAW+0M,EACPpoL,IAAyCxrC,GAAOs8B,QAAO,SAACpV,GACtD,IAAKA,EAASi6K,oBAAsB0yB,EAAsB,OAAO,EACjE,IAAIntB,EAAer/C,IAAEm6C,QAAQI,IAAIC,SAAShnL,MAAMqM,EAASi6K,mBAAmBW,aACxEm9E,EAAc53H,IAAEm6C,QAAQI,IAAIC,SAAShnL,MAAMg5M,GAAsB/xB,aACrE,OAAO4E,EAAajF,YAAYljB,SAAS0gG,EAAYx9E,gBAEvDgpD,EACAj/M,IAAsCxrC,GACtCwrC,IAAmCxrC,GACvC60K,WACErpI,IAA0CxrC,IAC1CwrC,IAAiDxrC,OAb7C6e,EAAR,EAAQA,UAAWg2J,EAAnB,EAAmBA,WAgBnB,EAAoCpoC,mBAASzwG,KAAKD,OAAlD,mBAAO+rM,EAAP,KAAmBC,EAAnB,KAYA,OANAviH,qBAAU,WACHqvD,GALLkzD,EAAc/rM,KAAKD,SAQlB,CAAC84I,EAAD,OAAax+J,QAAb,IAAaA,GAAb,UAAaA,EAAOwuG,eAApB,aAAa,EAAgB77F,SAG9B,sCACI3S,EAAMwuG,SAAW,cAAC,IAAD,CAAegrC,cAAY,EAACC,iBAAgB,OAAEA,QAAF,IAAEA,IAAoB,KACrF,wBAAC,IAAD,2BACMz5I,GADN,IAEEnU,IAAK4lO,EACL17F,UAAWyoC,EACXtyD,MAAO6uF,EAAW/6L,EAAMksG,OAAS,cAAC,IAAD,CAAkBn0G,GAAG,uBAA0B,KAChFy2G,QACExuG,EAAMwuG,SACNhmG,EAAUmD,KAAI,SAACkF,GACb,OAAO,2BACFA,GADL,IAEErY,KAAM24N,EAAgB,UAAMtgN,EAASyH,uBAAqBrgB,EAC1DF,GAAI8Y,EAASwB,WACb/R,MAAOuQ,EAASwB,WAChB65F,MAAOr7F,EAASykB,aAChBg3E,WAAYz7F,EAASykB,kBAI3Bi8E,gBAAiBvxG,EAAMuxG,wB,kCC3E/B,uDAOas3J,EAAiB3nB,0BAGX4nB,YAAoBD,EAAeE,W,2ECFvC76Q,IARK,CAClB8mO,YAAa,QACbvtL,UAAW,QACXE,WAAY,QACZM,aAAc,QACd+gO,eAAgB,U,6BCIH96Q,IATK,CAClB+mO,WAAY,QACZg0C,UAAW,QACXC,WAAY,QACZC,aAAc,QACdH,eAAgB,QAChBI,oBAAqB,U,6BCFRh5F,IAJD,CACZklD,YAAa,kB,6BCGAllD,IAJD,CACZolD,WAAY,iB,6BCMCtnO,IAPK,CAClBqnO,YAAa,QACb8zC,WAAY,QACZC,YAAa,QACbC,cAAe,U,mCCAFr7Q,IAJK,CAClB0pO,UAAW,U,6BCIExnD,IALD,CACZioD,aAAc,0BACdnuD,aAAc,4B,6BCKDh8K,IAPK,CAClBmqO,aAAc,QACdnuD,aAAc,QACdi+F,YAAa,QACbC,eAAgB,U,6BCWHl6Q,IAfK,CAClByqO,cAAe,QACf1mL,aAAc,QACdI,cAAe,QACfY,gBAAiB,QACjBu2N,iBAAkB,QAClBC,eAAgB,QAChBC,oBAAqB,QACrBC,iBAAkB,QAClBx3N,cAAe,QACfy3N,iBAAkB,QAClBC,kBAAmB,QACnBhJ,oBAAqB,U,6BCRR3yQ,IAJK,CAClBsrO,WAAY,U,uKCGR2H,EAAyB,SAC7BjyO,GAKA,MAAoCknI,mBAAc,IAAlD,mBAAO3gH,EAAP,KAAyB8mP,EAAzB,KACA,EAAoDnmI,oBAAkB,GAAtE,mBAAOirG,EAAP,KAAmC2b,EAAnC,KAuBA,OAtBA7tI,qBAAU,gBACWl3G,IAAf/I,GAA2C,OAAfA,IAC9B8tP,GAAc,GACdinB,YACE,CACE/0Q,cAEF,CACE6K,YAAa,WACXwiQ,EAAQ,IACRvf,GAAc,IAEhBvjP,cAAe,SAACzC,QACSiB,KAAX,OAARjB,QAAQ,IAARA,OAAA,EAAAA,EAAUnB,OAAyC,QAAX,OAARmB,QAAQ,IAARA,OAAA,EAAAA,EAAUnB,MAC5C0mQ,EAAQlyQ,IAAc2M,EAASnB,OAC1B0mQ,EAAQ,IACfvf,GAAc,SAKrB,CAAC9tP,IACG,CAAEumB,mBAAkB4rN,gC,oHC9BvBE,EAAsB,SAAClzO,GAC3B,MAAgC+nI,mBAAqB,IAArD,mBAAO5hH,EAAP,KAAiBs1P,EAAjB,KACA,EAAoC1zI,oBAAkB,GAAtD,mBAAOooC,EAAP,KAAmBw+E,EAAnB,KAsBA,OApBA7tI,qBAAU,WACR6tI,GAAc,GACd5qB,YACE,CACE/jO,kBAEF,CACEoL,cAAe,SAACzC,GAAmB,IAAD,EAC1B0U,EAAU,OAAG1U,QAAH,IAAGA,GAAH,UAAGA,EAAUnB,YAAb,aAAG,EAAgB8V,KAAI,SAAC9L,GAAD,OAAYxV,IAAcwV,OAEnD,OAAV6L,QAAU,IAAVA,OAAA,EAAAA,EAAYiH,QAAS,GAAGm3P,EAAYp+P,GACxCsxO,GAAc,IAEhBjjP,YAAa,SAACrO,GACZsxP,GAAc,QAInB,IAEI,CAAExoO,WAAUgqJ,gB,6VCIN,SAASurG,EAAT,GAWX,IAAD,QAVDt4E,EAUC,EAVDA,gBACAC,EASC,EATDA,iBASC,IARD37D,iBAQC,aAPD92H,aAOC,MAPO,GAOP,MANDqnM,eAMC,SALDz1L,EAKC,EALDA,SAKC,IAJD++K,6BAIC,WAJuB33L,EAIvB,MAHD43L,gCAGC,WAH0B53L,EAG1B,MAFD63L,gCAEC,WAF0B73L,EAE1B,MADD+xQ,sBACC,MADgB,SAACx3P,KACjB,EACKjY,EAAQu7H,aAAY,SAACnsI,GAAD,OAAWA,KAC/B8mN,EAAUC,cACVt9M,GAAOG,cACP4e,GAAWipI,cACjB,GAAsChlB,mBAAe,IAAIzwG,MAAzD,qBAAOm2K,GAAP,MAAoBC,GAApB,MACA,GAAwD3lE,oBAAS,GAAjE,qBAAOoqE,GAAP,MAA8BC,GAA9B,MACA,GAAgDrqE,mBAAc,CAAE6kE,OAAQ,KAAxE,qBAAO6Z,GAAP,MAAyBC,GAAzB,MACMs8B,GAAgBlmO,2BAAuC5Q,GAEvDqiN,KAAiB/tN,SAAQ,UAAC0U,IAAIs5M,6BAAL,QAA8B,KACvDvuH,GAAU6hB,UAEhB,GAAwDimB,wBAAcn+H,GAAtE,qBAAOgyQ,GAAP,MAA6BC,GAA7B,MACMC,GAA0B7qE,IAAMrtD,OAAOg4H,IACvCvtD,GACwB,MAA5B7sB,EAAmCq6E,GAA0Br6E,EACzD4sB,GACwB,MAA5B5sB,EAAmCo6E,GAAuBr6E,EACtD+sB,GACwB,MAA5B9sB,EAAmCs6E,GAA0Br6E,EAC/D3gF,qBAAU,gBAC4Bl3G,KAAd,OAAlB0kN,SAAkB,IAAlBA,QAAA,EAAAA,GAAoB/6C,WAClB0kC,GAASn0L,GAASm+K,IAAkCmsB,GAAgBpqM,aACxEjB,QAED,QAACurM,SAAD,IAACA,QAAD,EAACA,GAAoB/6C,UAExBzyD,qBAAU,WACJt+F,EAASwB,YACXouL,IAAuB,KAExB,CAAC5vL,EAASwB,aAEb,IAWMjB,GAAe,WAAO,IAAD,gBACDyX,WAAWwoN,GAAc,IACxBxoN,WAAWwoN,GAAc,IAGlDt8B,GAAoB,CAClB91M,OAAyB,OAAlB09M,SAAkB,IAAlBA,QAAA,EAAAA,GAAoB/6C,WACL,OAAlB+6C,SAAkB,IAAlBA,QAAA,EAAAA,GAAoB/6C,QAAQvvJ,YAA5B,OACEsqM,SADF,IACEA,QADF,EACEA,GAAoB/6C,QAAQtsI,aAE9BliC,GAAK0E,cAAc,CAAEC,GAAI,0BAC7BkjM,OAAQ,CACN,CACEpxM,KAAM,OACNqiH,MAAO94G,GAAK0E,cAAc,CAAEC,GAAI,mBAChCg7F,UAAU,EACV7yF,cAAgC,OAAlBy8M,SAAkB,IAAlBA,QAAA,EAAAA,GAAoB/6C,SAApB,OACV+6C,SADU,IACVA,QADU,EACVA,GAAoB/6C,QAAQtsI,kBAC5Br9B,EACJD,KAAM,eACN42G,2BAA4B,SAACtuG,GACvBo8M,IACFA,GAAmB,2BAAD,OACbC,SADa,IACbA,QADa,EACbA,GAAoB/6C,SADP,IAEhBtsI,aAAch1B,MAGpB48M,iBAfF,SAemBp2L,EAAQ9mB,GACvB,OAAkB,OAAX8mB,QAA8B7uB,IAAX6uB,OAAuB7uB,EAC/C,cAAC,IAAD,CAAkBF,GAAI,2BAI5B,CACElO,KAAM,OACNqiH,MAAO94G,GAAK0E,cAAc,CAAEC,GAAI,8BAChCg7F,UAAU,EACV7yF,cAAgC,OAAlBy8M,SAAkB,IAAlBA,QAAA,EAAAA,GAAoB/6C,SAApB,OACV+6C,SADU,IACVA,QADU,EACVA,GAAoB/6C,QAAQu7C,gBAC5B,GACJnlN,KAAM,kBACN42G,2BAA4B,SAACtuG,GACvBo8M,IACFA,GAAmB,2BAAD,OACbC,SADa,IACbA,QADa,EACbA,GAAoB/6C,SADP,IAEhBu7C,gBAAiB78M,OAIzB,CACEzW,KAAM,yBACNkpG,UAAU,EACV7yF,cACoB,OAAlBy8M,SAAkB,IAAlBA,QAAA,EAAAA,GAAoB/6C,WAApB,OAA+B+6C,SAA/B,IAA+BA,QAA/B,EAA+BA,GAAoB/6C,QAAQ6c,OAA3D,OACIk+B,SADJ,IACIA,QADJ,EACIA,GAAoB/6C,QAAQ6c,MAC5B,IACNzmL,KAAM,QACNklN,iBARF,SAQmBp2L,EAAQ9mB,GACvB,OAAkB,OAAX8mB,QAA8B7uB,IAAX6uB,OAAuB7uB,EAC/C,cAAC,IAAD,CAAkBF,GAAI,0BAG1Bw6G,YAA4B,OAAlBoqG,SAAkB,IAAlBA,IAAA,UAAAA,GAAoB/6C,eAApB,eAA6BvvJ,YACvCu8F,2BAA4B,SAACtuG,GACvBo8M,IACFA,GAAmB,2BAAD,OACbC,SADa,IACbA,QADa,EACbA,GAAoB/6C,SADP,IAEhB6c,MAAOn+K,QAIG,OAAlBq8M,SAAkB,IAAlBA,QAAA,EAAAA,GAAoB/6C,WAApB,OACA+6C,SADA,IACAA,QADA,EACAA,GAAoB/6C,QAAQ6c,QACS,MAAnB,OAAlBk+B,SAAkB,IAAlBA,QAAA,EAAAA,GAAoB/6C,QAAQ6c,OACxB,CACE50L,KAAM,SACN4wI,gBAAgB,EAChBvuB,MAAO94G,GAAK0E,cAAc,CAAEC,GAAI,qBAChCg7F,UAAU,EACVgnB,IAAK,EACLugB,KAAM,EACNI,eAAe,EACfH,kBAAkB,EAClBhpB,gBAAiB,IACjByI,IAAK,IACLhiH,KAAM,SACNkI,cACoB,OAAlBy8M,SAAkB,IAAlBA,QAAA,EAAAA,GAAoB/6C,WAApB,OAA+B+6C,SAA/B,IAA+BA,QAA/B,EAA+BA,GAAoB/6C,QAAQvE,QAA3D,OACIs/C,SADJ,IACIA,QADJ,EACIA,GAAoB/6C,QAAQvE,OArFtB,GAuFZzuD,2BAA4B,SAACtuG,GACvBo8M,IACFA,GAAmB,2BAAD,OACbC,SADa,IACbA,QADa,EACbA,GAAoB/6C,SADP,IAEhBvE,OAAQ/8J,OAIhB,GACJ,CACEzW,KAAM,cACNqiH,MAAO94G,GAAK0E,cAAc,CAAEC,GAAI,oBAChCg7F,UAAU,EACV/6F,KAAM,QACNkI,cACoB,OAAlBy8M,SAAkB,IAAlBA,QAAA,EAAAA,GAAoB/6C,WAApB,OAA+B+6C,SAA/B,IAA+BA,QAA/B,EAA+BA,GAAoB/6C,QAAQ/9J,OAA3D,OACI84M,SADJ,IACIA,QADJ,EACIA,GAAoB/6C,QAAQ/9J,WAC5B5L,EACN22G,2BAA4B,SAACtuG,GACvBo8M,IACFA,GAAmB,2BAAD,OACbC,SADa,IACbA,QADa,EACbA,GAAoB/6C,SADP,IAEhB/9J,MAAOvD,OAIdgmM,EAyCG,GAxCA,CACEz8M,KAAM,YACNmO,KAAM,MACNkI,aAAc,KACdq+L,UACE,qCACE,cAAC,IAAD,CACEh0M,WAAY,CACVoiH,UAAW,GACXH,MAAO,CAAEM,OAAQ,QACjBgvF,YAAaA,IAEfsnB,uBAAwB,CACtBvyM,UAA4B,OAAlB8rM,SAAkB,IAAlBA,QAAA,EAAAA,GAAoB/6C,SAApB,OAA8B+6C,SAA9B,IAA8BA,QAA9B,EAA8BA,GAAoB/6C,QAAU,GACtEwoG,kBAAmB,SAACtjP,GACd41L,IACFA,GAAmB,2BAAD,OACbC,SADa,IACbA,QADa,EACbA,GAAoB/6C,SADP,IAEhBkpB,kBAAmBhkK,EAAOouK,IAC1BpsK,SAAUhC,EAAOmuK,QAGvB1K,eAAgB,SAACzjK,GACX41L,IACFA,GAAmB,uCAAD,OACbC,SADa,IACbA,QADa,EACbA,GAAoB/6C,SACpB96I,GAFa,IAGhBgkK,kBAAmBhkK,EAAOgkK,sBAGhCR,cAAc,EACdG,iBAAiB,EACjBD,aAAa,GAEfhP,oBAAqB,CAAE3iL,SAAU,aAAc4iL,YAAY,KAE7D,2BAKV,CACE5xL,KAAM,OACNqiH,MAAO94G,GAAK0E,cAAc,CAAEC,GAAI,0BAChCg7F,UAAU,EACV/6F,KAAM,cACNkI,cAAgC,OAAlBy8M,SAAkB,IAAlBA,QAAA,EAAAA,GAAoB/6C,SAApB,OAA8B+6C,SAA9B,IAA8BA,QAA9B,EAA8BA,GAAoB/6C,QAAQ14D,YAAc,GACtF0F,2BAA4B,SAACtuG,GACvBo8M,IACFA,GAAmB,2BAAD,OACbC,SADa,IACbA,QADa,EACbA,GAAoB/6C,SADP,IAEhB14D,YAAa5oG,OAIrB,CACEzW,KAAM,aACNmO,KAAM,aACNw2G,QAAS,CACP0jE,QAAS,KACT1pD,aAAa,EACbkqD,qBAAqB,EACrBM,qBAAqB,EACrBV,iBAAiB,EACjBC,oBAAoB,GAEtBryK,aAAc,CACZhR,YAA8B,OAAlBytN,SAAkB,IAAlBA,QAAA,EAAAA,GAAoB/6C,SAApB,OACR+6C,SADQ,IACRA,QADQ,EACRA,GAAoB/6C,QAAQ1yK,WAC5Bic,wBAAoC5Q,GACxClM,gBAAkC,OAAlBsuN,SAAkB,IAAlBA,QAAA,EAAAA,GAAoB/6C,SAApB,OACZ+6C,SADY,IACZA,QADY,EACZA,GAAoB/6C,QAAQvzK,eAC5B8c,4BAAwC5Q,GAC5ChM,YAA8B,OAAlBouN,SAAkB,IAAlBA,QAAA,EAAAA,GAAoB/6C,SAApB,OACR+6C,SADQ,IACRA,QADQ,EACRA,GAAoB/6C,QAAQrzK,gBAC5B0J,EACJxJ,eAAiC,OAAlBkuN,SAAkB,IAAlBA,QAAA,EAAAA,GAAoB/6C,SAApB,OACX+6C,SADW,IACXA,QADW,EACXA,GAAoB/6C,QAAQnzK,mBAC5BwJ,GAEN22G,2BAA4B,SAAC9nF,GACvB41L,IACFA,GAAmB,2BAAD,OACbC,SADa,IACbA,QADa,EACbA,GAAoB/6C,SADP,IAEhB32K,WAAY67B,GACTA,MAIX81L,GACI,CACE/yN,KAAM,eACNmO,KAAM,mBACNk0G,MAAM,GAAD,OAAK94G,GAAK0E,cAAc,CAAEC,GAAI,mBAA9B,KACLmI,cACoD,KAAhC,OAAlBy8M,SAAkB,IAAlBA,IAAA,UAAAA,GAAoB/6C,eAApB,eAA6BrrD,kBACzB,KACkD,KAAhC,OAAlBomG,SAAkB,IAAlBA,IAAA,UAAAA,GAAoB/6C,eAApB,eAA6BrrD,kBAC7B,SACAt+G,EACNqlN,aAAc,CACZ,CACEpxG,MAAO94G,GAAK0E,cAAc,CAAEC,GAAI,2BAChCuI,MAAO,KAET,CACE4rG,MAAO94G,GAAK0E,cAAc,CAAEC,GAAI,0BAChCuI,MAAO,MAGXsuG,2BAA4B,SAACtuG,GACvBo8M,IACFA,GAAmB,2BAAD,OACbC,SADa,IACbA,QADa,EACbA,GAAoB/6C,SADP,IAEhBrrD,iBAA2B,KAATj2G,YAI1BrI,GAC8C,KAAhC,OAAlB0kN,SAAkB,IAAlBA,IAAA,UAAAA,GAAoB/6C,eAApB,eAA6BrrD,mBAAgCqmG,GACzD,CACE/yN,KAAM,mBACNmO,KAAM,mBACNkI,aAAY,OAAEy8M,SAAF,IAAEA,IAAF,UAAEA,GAAoB/6C,eAAtB,aAAE,EAA6BnrD,iBAC3CvK,MAAO94G,GAAK0E,cAAc,CAAEC,GAAI,2BAChC24G,YAAat9G,GAAK0E,cAAc,CAAEC,GAAI,6BACtC+4G,aAAa,EACbysG,iBAAiB,EACjBxqH,UAAU,EACVyqH,qBAAoB,OAAEb,SAAF,IAAEA,IAAF,UAAEA,GAAoB/6C,eAAtB,aAAE,EAA6BkpB,kBACnDl8E,2BAA4B,SAACtuG,GACvBo8M,IACFA,GAAmB,2BAAD,OACbC,SADa,IACbA,QADa,EACbA,GAAoB/6C,SADP,IAEhBnrD,iBAAkBn2G,YAI1BrI,GAC8C,KAAhC,OAAlB0kN,SAAkB,IAAlBA,IAAA,UAAAA,GAAoB/6C,eAApB,eAA6BrrD,mBAAgCqmG,GACzD,CACE/yN,KAAM,SACNmO,KAAM,uBACNkI,aAAY,OAAEy8M,SAAF,IAAEA,IAAF,UAAEA,GAAoB/6C,eAAtB,aAAE,EAA6B67C,qBAC3CvxG,MAAO94G,GAAK0E,cAAc,CAAEC,GAAI,0DAElCE,GAENrO,OAAQ,SAACk9B,GACP,UAAI61L,SAAJ,IAAIA,QAAJ,EAAIA,GAAoB/6C,QAAQvvJ,WAAY,CAC1C,IAAMxB,EAAQ,OAAG8rM,SAAH,IAAGA,QAAH,EAAGA,GAAoB/6C,QACrC,EAQI87C,YAA2B7sM,GAP7B8sM,EADF,EACEA,YACA50L,EAFF,EAEEA,UACA60L,EAHF,EAGEA,WACA90L,EAJF,EAIEA,SACA+0L,EALF,EAKEA,UACAC,EANF,EAMEA,UACAC,EAPF,EAOEA,YAEIssD,EAAkBl+J,IAAExE,KAAF,0DAEjBg1G,SAFiB,IAEjBA,QAFiB,EAEjBA,GAAoB/6C,SACpB96I,GACAA,EAAO77B,YAJU,IAKpBsrH,iBAC6B,KAA3BzvF,EAAOyvF,kBAEwB,KAA3BzvF,EAAOyvF,uBAEPt+G,EACNw+G,iBAC6B,KAA3B3vF,EAAOyvF,iBAA0BzvF,EAAO2vF,sBAAmBx+G,EAC7DwlN,qBAC6B,KAA3B32L,EAAOyvF,iBAA0BzvF,EAAO22L,0BAAuBxlN,EACjE8lN,cACAJ,cACA70L,WACA+0L,YACA90L,YACA60L,aACAE,cAEF,CAAC,UAEH3rM,GAASnC,IAAsCq6P,IAC3CL,GAAgBA,EAAeK,GAC/B3tD,IAAoBA,QAAmBzkN,OAIjDwoM,IAAuB,IAWzB,OARAtxF,qBAAU,WACJuiF,IACG4U,GACHvK,GAAe,IAAIp2K,SAGtB,CAAC+rK,IAGF,qCACE,eAAC,IAAD,CACE/kF,UAAU,sBACV+vF,iBACE4J,EAAU,kCAAoC,8BAEhDxvE,OAAQ46D,EACRzyL,MAAOA,EACPK,MAAM,QACNq9L,eAAgBlL,EARlB,UAUE,cAAC,IAAD,CAAS5M,OAAQ,qBAAsBhN,QAAQ,EAAMiN,cAAe,cAEnE/uD,GACC,qBAAKppB,UAAU,qCAAf,SACE,cAAC,IAAD,CAAS9oG,MAAM,cAInB,wBAEEkyH,GAAallH,GAAYA,EAAS4tK,OAClC,qCAEE,cAAC,IAAD,CACE9mC,QAAS,EACN2uD,GACC,cAAC,IAAD,CACEvuM,GAAI,oBACJS,KAAM,MACNqL,MAAM,OACNrB,YAAY,EACZwzH,YAAa,WACXy6E,EAAQtqM,KAAK,CAAE2qM,SAAU,SAAW,CAAEw5D,oBAAqB,CAACz5P,MAI9DolH,eAAgB7iI,GAAK0E,cAAc,CAAEC,GAAI,yBAG7CuuM,GACE,cAAC,IAAD,CACEp4M,YAAa,CAACixN,IAAoB/tM,cAClC6kH,eAAgB,qBAChBzzH,YAAY,EACZwzH,YAAa,WACP0mF,IAAoBA,GAAmB7rM,MAIjDy1L,GAAWz1L,EAAS67K,OAClB,cAAC,IAAD,CACE30L,GAAI,mBACJS,KAAM,WACNgK,YAAY,EACZwzH,YAAa,WACX,IACEnlH,EAAS67K,MAAM69E,cACf15P,EAAS67K,MAAMiyB,aACf,YAEJ1oF,eAAgB7iI,GAAK0E,cAAc,CAAEC,GAAI,4BAG7CuuM,GAAWz1L,EAAS67K,OAClB,cAAC,IAAD,CACE30L,GAAI,eACJS,KAAMqY,EAASklG,aAAe,SAAW,MACzCvzG,YAAY,EACZwzH,YAAa,WACPnlH,EAASklG,eACX5jG,GAASm+K,IAAkCz/K,EAASwB,aACpDo/K,MAGJx7D,eAAgB7iI,GAAK0E,cAAc,CAAEC,GAAI,6BAOjD,eAAC,IAAD,WACE,oBAAI40G,UAAW,2BACf,cAAC,IAAD,CAAOA,UAAU,oBAAjB,SACGv5G,GAAK0E,cAAc,CAAEC,GAAI,qBAE5B,cAAC,IAAD,CAAO40G,UAAU,0BAAjB,mBAA4C97F,EAASykB,oBAArD,QAAqE,SAGnEgxK,GACA,qCACE,uBACA,cAAC,IAAD,CACE/7M,WAAY,CACVoiH,UAAW,GACXH,MAAO,CAAEM,OAAQ,QACjBgvF,YAAaA,IAEfqnB,oBAAqB,CACnBjoC,gBAAgB,EAChBmU,eAAe,EACfG,gCAAgC,EAChCF,oBAAoB,EACpB9E,aAAa,EACbiF,oCAAoC,EACpCjnL,UAAW,CAACqI,SAMpB,oBAAI87F,UAAW,2BACf,eAAC,IAAD,CAAOA,UAAU,oBAAjB,UACG,IACAv5G,GAAK0E,cAAc,CAAEC,GAAI,uBAE5B,cAAC,IAAD,CAAO40G,UAAU,0BAAjB,SACE,uBAAMH,MAAO,GAAb,UACqB,KAAlB37F,EAAS4tK,OAAgB,cAAC,IAAD,CAAQ9xE,UAAW,QAAS/oG,KAAM,KACzC,KAAlBiN,EAAS4tK,OAAgB,cAAC,IAAD,CAAQ9xE,UAAW,QAAS/oG,KAAM,KACzC,KAAlBiN,EAAS4tK,OAAgB,cAAC,IAAD,CAAS9xE,UAAW,QAAS/oG,KAAM,KAC1C,KAAlBiN,EAAS4tK,OAAgB,cAAC,IAAD,CAAY9xE,UAAW,QAAS/oG,KAAM,KAChE,cAAC,IAAD,CAAkB7L,GAAE,0BAAqB8Y,EAAS4tK,cAGtD,oBAAI9xE,UAAW,2BACf,eAAC,IAAD,CAAOA,UAAU,oBAAjB,UACG,IACAv5G,GAAK0E,cAAc,CAAEC,GAAI,uBAE5B,cAAC,IAAD,CAAO40G,UAAU,0BAAjB,SACE,uBACEH,MAAO,CACLC,QAAS,OACT4qE,WAAY,SACZC,eAAgB,UAJpB,oBAOGzmK,EAAShN,aAPZ,aAOG,EAAgBhJ,cAAe,IAChC,cAAC,IAAD,CAAQ8xG,UAAW,QAAS/oG,KAAM,GAAIC,MAAOgN,EAAShN,aAG1D,oBAAI8oG,UAAW,2BACI,KAAlB97F,EAAS4tK,OACR,qCACE,eAAC,IAAD,CAAO9xE,UAAU,oBAAjB,UACG,IACAv5G,GAAK0E,cAAc,CAAEC,GAAI,wBAE5B,cAAC,IAAD,CAAO40G,UAAU,0BAAjB,mBAA4C97F,EAASwsJ,cAArD,QAA+D,QAC/D,oBAAI1wD,UAAW,2BAA6B,OAGhD,eAAC,IAAD,CAAOA,UAAU,oBAAjB,UACG,IACAv5G,GAAK0E,cAAc,CAAEC,GAAI,0BAE5B,cAAC,IAAD,CAAO40G,UAAU,0BAAjB,SAC2B,MAAxB97F,EAAS8sM,YAAsB9sM,EAAS8sM,YAAc,QAEzD,oBAAIhxG,UAAW,2BAEf,cAAC,IAAD,CAAOA,UAAU,oBAAjB,SACGv5G,GAAK0E,cAAc,CAAEC,GAAI,4BAE5B,cAAC,IAAD,CAAO40G,UAAU,0BAAjB,SACIR,IAAEkrG,QAAQxmM,EAASq4F,aAAsC,MAAvBr4F,EAASq4F,cAE/C,oBAAIyD,UAAW,2BAEdiwG,IACC,qCACE,cAAC,IAAD,CAAOjwG,UAAU,oBAAjB,SACGv5G,GAAK0E,cAAc,CAAEC,GAAI,qBAE5B,cAAC,IAAD,CAAO40G,UAAU,0BAAjB,SACGv5G,GAAK0E,cAAc,CAClBC,IACgC,IAA9B8Y,EAAS0lG,iBACL,0BAC8B,IAA9B1lG,EAAS0lG,iBACT,wBACA,gCAGV,oBAAI5J,UAAW,4BAEgB,IAA9B97F,EAAS0lG,kBACR,qCACE,cAAC,IAAD,CAAO5J,UAAU,oBAAjB,SACGv5G,GAAK0E,cAAc,CAClBC,GAAI,sDAGR,cAAC,IAAD,CAAO40G,UAAU,0BAAjB,SACG97F,EAAS4sM,qBACR,cAAC,IAAD,CAAMjlN,KAAM,cAAeqL,MAAOyqF,KAElC,cAAC,IAAD,CAAM91F,KAAM,UAAWqL,MAAOyqF,OAGlC,oBAAIqe,UAAW,0CAU/B,cAAC,IAAD,aACEztG,YAAa9L,GAAK0E,cAAc,CAAEC,GAAI,gBACtCujM,kBAAmBkF,GACnB8F,QAASA,EACTjJ,qBAniBuB,WAC3BoD,IAAuB,GACvBsU,GAAoB,CAAE9Z,OAAQ,KAC1BqL,IACF,OAAIqW,SAAJ,IAAIA,QAAJ,EAAIA,GAAoB/6C,WACtBzvJ,GAASm+K,IAAA,OAAkCqsB,SAAlC,IAAkCA,QAAlC,EAAkCA,GAAoB/6C,QAAQvvJ,aACnEqqM,IAAoBA,QAAmBzkN,MA8hBvC68M,U,+QCjlBN01D,EAA6B,SAACxqQ,GAClC,IACEo2C,EAIEp2C,EAJFo2C,SACAklJ,EAGEt7L,EAHFs7L,kBACAipC,EAEEvkO,EAFFukO,gCAHF,EAKIvkO,EADFgkO,4BAJF,SAMA,EAAgDroC,cAAxC5rF,EAAR,EAAQA,QAAS6rF,EAAjB,EAAiBA,aAAcC,EAA/B,EAA+BA,MAAOr1B,EAAtC,EAAsCA,MACtC,EAAsCpwC,mBAAiB,GAAvD,mBAAOonE,EAAP,KAAoBC,EAApB,KACMrqM,EAAOG,cACP4e,EAAWipI,cAEX+9C,EAAa0C,IAEnB,EAA+D/lE,aAAY,SAACnsI,GAAW,IAAD,IAC9Eu5Q,EAAgBj/B,IAAsCt6O,GAC5D,MAAO,CACLi8L,OAAOs9E,EACPA,gBACAuH,oBAAmB,oBACjBh6F,IACE9mL,GACU,OAAVwvM,QAAU,IAAVA,OAAA,EAAAA,EAAY1hK,eAAZ,OAA2ByrO,QAA3B,IAA2BA,OAA3B,EAA2BA,EAAezrO,YAA1C,OAAuD0hK,QAAvD,IAAuDA,OAAvD,EAAuDA,EAAY1hK,gBAAax/B,UAHjE,aACjB,EAGGixG,mBAJc,eAICg6J,QAJD,IAICA,OAJD,EAICA,EAAelwI,kBACnC19B,QAASnqF,aAAyBxhB,OAV9Bi8L,EAAR,EAAQA,MAAOs9E,EAAf,EAAeA,cAAeuH,EAA9B,EAA8BA,oBAAqBn1K,EAAnD,EAAmDA,QA0B7Co1K,EAAY,SAACn0N,EAAYzvB,GAAb,6BAAC,eACd6gF,IAAK7gF,EAAQ,eADA,IAEhByvB,aACAqB,SAAQ,OAAEsrN,QAAF,IAAEA,OAAF,EAAEA,EAAetrN,SACzBvpD,eAAc,UAAEy4B,EAAO77B,kBAAT,aAAE,EAAmBoD,eACnCE,WAAU,UAAEu4B,EAAO77B,kBAAT,aAAE,EAAmBsD,WAC/BE,cAAa,UAAEq4B,EAAO77B,kBAAT,aAAE,EAAmBwD,cAClCy7G,UAAWpjF,EAAOojF,UACd,IAAIvkF,KAAKmB,EAAOojF,WAAWygK,mBAAmB,cAC9C1yQ,EACJkyG,QAASrjF,EAAOqjF,QAAU,IAAIxkF,KAAKmB,EAAOqjF,SAASwgK,mBAAmB,cAAW1yQ,EACjFq0K,qBAA8Cr0K,IAA3B6uB,EAAOwlJ,iBAA4D,OAA3BxlJ,EAAOwlJ,gBAC9Dh3E,EAAQnjG,yCAAyC20B,EAAOwlJ,iBAAiBv+E,QAAQ,QACjF91F,EACJu0K,iBAAsCv0K,IAAvB6uB,EAAO0lJ,aAAoD,OAAvB1lJ,EAAO0lJ,YACtDl3E,EAAQnjG,yCAAyC20B,EAAO0lJ,aAAaz+E,QAAQ,QAC7E91F,EACJy0K,iBAAsCz0K,IAAvB6uB,EAAO4lJ,aAAoD,OAAvB5lJ,EAAO4lJ,YACtDp3E,EAAQnjG,yCAAyC20B,EAAO4lJ,aAAa3+E,QAAQ,QAC7E91F,KAYN,OATAk3G,qBAAU,WACR,UAAI/4D,QAAJ,IAAIA,OAAJ,EAAIA,EAAUG,WAEZ,OADApkC,EAASy4P,IAAA,OAA+Bx0N,QAA/B,IAA+BA,OAA/B,EAA+BA,EAAUG,aAC3C,WACLpkC,EAASy4P,IAAA,OAAiCx0N,QAAjC,IAAiCA,OAAjC,EAAiCA,EAAUG,gBAGvD,QAACH,QAAD,IAACA,OAAD,EAACA,EAAUG,aAGZ,eAAC,IAAD,CACEo2D,UAAU,sBACV+vF,iBAAiB,8BACjB5lE,OAAQwkE,EACRr8L,MAAO7L,EAAK0E,cAAc,CAAEC,GAAI6tL,EAAQ,mBAAqB,mBAC7DwX,SAAUxX,GAAK,OAAes9E,QAAf,IAAeA,OAAZjrQ,EAAYirQ,EAAe1sN,aAC7Cl3C,MAAO,QACPq9L,eAAgB,WACd4nC,IACA/9D,KATJ,UAYE,cAAC,IAAD,CACEu3B,iBAAkB,EAClBC,UAAWR,EACXS,aAAcR,EACdU,gBAAgB,EAChBC,KAAM,CACJ,CACEC,MAAO,EACP7lM,KAAM,YACNyG,MAAO,sBAET,CACEo/L,MAAO,EACP7lM,KAAM,SACNyG,MAAO,4BAGXq/L,YAAa,CACX,CACED,MAAO,EACPE,UACE,eAAC,IAAD,WACE,cAAC,IAAD,CACEvmM,KAAK,aACL+3G,QAASA,EACTokE,aAAc,CACZ9lL,eAAc,OAAE60Q,QAAF,IAAEA,OAAF,EAAEA,EAAe70Q,eAC/BE,WAAU,OAAE20Q,QAAF,IAAEA,OAAF,EAAEA,EAAe30Q,WAC3BE,cAAa,OAAEy0Q,QAAF,IAAEA,OAAF,EAAEA,EAAez0Q,eAEhC+/G,QAAS,CACPga,aAAa,EACbkqD,qBAAqB,EACrBJ,iBAAiB,EACjBC,oBAAoB,EACpBL,QAAS,KAGb,cAAC,IAAD,CAAKxQ,GAAG,KAAR,SACE,cAAC,IAAD,CACE3xD,QAASA,EACT/3G,KAAK,eACLm8K,aAAY,OAAE+uF,QAAF,IAAEA,OAAF,EAAEA,EAAe1sN,aAC7B+7C,MAAO,CAAEQ,UAAU,GACnB2iF,OAAQ,gBAAGrnE,EAAH,EAAGA,MAAOimE,EAAV,EAAUA,WAAV,OACN,cAAC,IAAD,CACEjmE,MAAOA,EACPC,WAAYgmE,EACZv8K,GAAI,oBACJm0G,MAAO94G,EAAK0E,cAAc,CACxBC,GAAI,2BAENg7F,UAAQ,SAKhB,cAAC,IAAD,CAAK2uE,GAAG,KAAR,SACE,cAAC,IAAD,CACE3xD,QAASA,EACT/3G,KAAK,eACLm8K,aAAY,OAAE+uF,QAAF,IAAEA,OAAF,EAAEA,EAAe2H,aAC7Bn1F,OAAQ,gBAAGrnE,EAAH,EAAGA,MAAOimE,EAAV,EAAUA,WAAV,OACN,cAAC,IAAD,CACEjmE,MAAOA,EACPC,WAAYgmE,EACZv8K,GAAI,oBACJm0G,MAAO94G,EAAK0E,cAAc,CACxBC,GAAI,kCAMd,cAAC,IAAD,CAAK2pK,GAAG,IAAR,SACE,cAAC,IAAD,CACE3xD,QAASA,EACT/3G,KAAK,QACLm8K,aAAY,OAAE+uF,QAAF,IAAEA,OAAF,EAAEA,EAAe4H,MAC7Bp1F,OAAQ,gBAAGrnE,EAAH,EAAGA,MAAOimE,EAAV,EAAUA,WAAV,OACN,cAAC,IAAD,CACEjmE,MAAOA,EACPC,WAAYgmE,EACZv8K,GAAI,aACJm0G,MAAO94G,EAAK0E,cAAc,CACxBC,GAAI,6BAMd,cAAC,IAAD,CAAK2pK,GAAG,IAAR,SACE,cAAC,IAAD,CACE3xD,QAASA,EACT/3G,KAAK,cACLm8K,aAAY,OAAE+uF,QAAF,IAAEA,OAAF,EAAEA,EAAeh6J,YAC7BwsE,OAAQ,gBAAGrnE,EAAH,EAAGA,MAAOimE,EAAV,EAAUA,WAAV,OACN,cAAC,IAAD,CACEjmE,MAAOA,EACPC,WAAYgmE,EACZv8K,GAAI,mBACJm0G,MAAO94G,EAAK0E,cAAc,CACxBC,GAAI,iCAMd,cAAC,IAAD,CAAK2pK,GAAG,KAAR,SACE,cAAC,IAAD,CACE3xD,QAASA,EACT/3G,KAAK,kBACLm8K,aAAY,OAAE+uF,QAAF,IAAEA,OAAF,EAAEA,EAAe6H,gBAC7Br1F,OAAQ,gBAAGrnE,EAAH,EAAGA,MAAOimE,EAAV,EAAUA,WAAV,OACN,cAAC,IAAD,CACEjmE,MAAOA,EACPC,WAAYgmE,EACZv8K,GAAI,uBACJm0G,MAAO94G,EAAK0E,cAAc,CACxBC,GAAI,6BAMd,cAAC,IAAD,CAAK2pK,GAAG,KAAR,SACE,cAAC,IAAD,CACE3xD,QAASA,EACT/3G,KAAK,iBACLm8K,aAAY,OAAE+uF,QAAF,IAAEA,OAAF,EAAEA,EAAe8H,eAC7Bt1F,OAAQ,gBAAGrnE,EAAH,EAAGA,MAAOimE,EAAV,EAAUA,WAAV,OACN,cAAC,IAAD,CACEjmE,MAAOA,EACPC,WAAYgmE,EACZv8K,GAAI,sBACJm0G,MAAO94G,EAAK0E,cAAc,CACxBC,GAAI,oBAENlO,KAAM,eAKd,cAAC,IAAD,CAAK63K,GAAG,IAAR,SACE,cAAC,IAAD,CACE3xD,QAASA,EACT/3G,KAAK,eACLm8K,aAAY,OAAE+uF,QAAF,IAAEA,OAAF,EAAEA,EAAe+H,aAC7Bv1F,OAAQ,gBAAGrnE,EAAH,EAAGA,MAAOimE,EAAV,EAAUA,WAAV,OACN,cAAC,IAAD,CACEjmE,MAAOA,EACPC,WAAYgmE,EACZv8K,GAAI,oBACJm0G,MAAO94G,EAAK0E,cAAc,CACxBC,GAAI,8BAMd,cAAC,IAAD,CAAK2pK,GAAG,IAAR,SACE,cAAC,IAAD,CACE3xD,QAASA,EACT/3G,KAAK,SACLm8K,aAAY,OAAE+uF,QAAF,IAAEA,OAAF,EAAEA,EAAegI,OAC7Bx1F,OAAQ,gBAAGrnE,EAAH,EAAGA,MAAOimE,EAAV,EAAUA,WAAV,OACN,cAAC,IAAD,CACEjmE,MAAOA,EACPC,WAAYgmE,EACZv8K,GAAI,cACJm0G,MAAO94G,EAAK0E,cAAc,CACxBC,GAAI,4BAMd,cAAC,IAAD,CAAK2pK,GAAG,IAAR,SACE,cAAC,IAAD,CACE3xD,QAASA,EACT/3G,KAAK,eACLm8K,aAAY,OAAE+uF,QAAF,IAAEA,OAAF,EAAEA,EAAeiI,aAC7Bz1F,OAAQ,gBAAGrnE,EAAH,EAAGA,MAAOimE,EAAV,EAAUA,WAAV,OACN,cAAC,IAAD,CACEjmE,MAAOA,EACPC,WAAYgmE,EACZv8K,GAAI,oBACJm0G,MAAO94G,EAAK0E,cAAc,CACxBC,GAAI,8BAMd,cAAC,IAAD,CAAK2pK,GAAG,IAAR,SACE,cAAC,IAAD,CACE3xD,QAASA,EACT/3G,KAAK,SACLm8K,aAAY,OAAE+uF,QAAF,IAAEA,OAAF,EAAEA,EAAekI,OAC7B11F,OAAQ,gBAAGrnE,EAAH,EAAGA,MAAOimE,EAAV,EAAUA,WAAV,OACN,cAAC,IAAD,CACEjmE,MAAOA,EACPC,WAAYgmE,EACZv8K,GAAI,cACJm0G,MAAO94G,EAAK0E,cAAc,CACxBC,GAAI,4BAMd,cAAC,IAAD,CAAK2pK,GAAG,IAAR,SACE,cAAC,IAAD,CACE3xD,QAASA,EACT/3G,KAAK,eACLm8K,aAAY,OAAE+uF,QAAF,IAAEA,OAAF,EAAEA,EAAemI,aAC7B31F,OAAQ,gBAAGrnE,EAAH,EAAGA,MAAOimE,EAAV,EAAUA,WAAV,OACN,cAAC,IAAD,CACEjmE,MAAOA,EACPC,WAAYgmE,EACZv8K,GAAI,oBACJm0G,MAAO94G,EAAK0E,cAAc,CACxBC,GAAI,8BAMd,cAAC,IAAD,CAAK2pK,GAAG,IAAR,SACE,cAAC,IAAD,CACE3xD,QAASA,EACT/3G,KAAK,SACLm8K,aAAY,OAAE+uF,QAAF,IAAEA,OAAF,EAAEA,EAAeoI,OAC7B51F,OAAQ,gBAAGrnE,EAAH,EAAGA,MAAOimE,EAAV,EAAUA,WAAV,OACN,cAAC,IAAD,CACEjmE,MAAOA,EACPC,WAAYgmE,EACZv8K,GAAI,cACJm0G,MAAO94G,EAAK0E,cAAc,CACxBC,GAAI,4BAMd,cAAC,IAAD,CAAK2pK,GAAG,KAAR,SACE,cAAC,IAAD,CACE3xD,QAASA,EACT/3G,KAAK,WACLm8K,aAAY,OAAE+uF,QAAF,IAAEA,OAAF,EAAEA,EAAep2O,SAC7B4oJ,OAAQ,gBAAGrnE,EAAH,EAAGA,MAAOimE,EAAV,EAAUA,WAAV,OACN,cAAC,IAAD,CACEjmE,MAAOA,EACPC,WAAYgmE,EACZv8K,GAAI,gBACJm0G,MAAO94G,EAAK0E,cAAc,CACxBC,GAAI,uBAENlO,KAAM,sBAQpB,CACEw0M,MAAO,EACPE,UACE,eAAC,IAAD,YACIylC,GACA,cAAC,IAAD,CAAKtiE,GAAG,KAAR,SACE,cAAC,IAAD,CACE3xD,QAASA,EACT+jE,kBAAgB,EAChB97K,KAAM,aACNm8K,aAAY,OAAE+uF,QAAF,IAAEA,OAAF,EAAEA,EAAezrO,WAC7Bi+I,OAAQ,gBAAGrnE,EAAH,EAAGA,MAAOimE,EAAV,EAAUA,WAAV,OACN,cAAC,IAAD,CACEjmE,MAAOA,EACPC,WAAYgmE,EACZ7lE,WAAS,EACTqC,aAAW,EACXmgH,aAAW,EACX16K,WAAU,OAAE2sN,QAAF,IAAEA,OAAF,EAAEA,EAAe3sN,WAC3BqB,SAAQ,OAAEsrN,QAAF,IAAEA,OAAF,EAAEA,EAAetrN,SACzBijJ,oBAAkB,EAClBm2B,2BAAyB,EACzBj5N,GAAI,gBACJiiJ,iBAAgB,OAAEm/C,QAAF,IAAEA,OAAF,EAAEA,EAAYluM,WAC9BihH,MAAO94G,EAAK0E,cAAc,CAAEC,GAAI,8BAM1C,cAAC,IAAD,CAAK2pK,GAAG,KAAR,SACE,cAAC,IAAD,CACE3xD,QAASA,EACT/3G,KAAK,aACL09K,OAAQ,gBAAGrnE,EAAH,EAAGA,MAAOimE,EAAV,EAAUA,WAAV,OACN,cAAC,IAAD,CACEjmE,MAAOA,EACPC,WAAYgmE,EACZ5lE,kBAAiB,OAAEyqF,QAAF,IAAEA,OAAF,EAAEA,EAAY3iJ,aAC/Bz+C,GAAI,kBACJm0G,MAAO94G,EAAK0E,cAAc,CACxBC,GAAI,gBAENw6G,UAAQ,SAKhB,cAAC,IAAD,CAAKmvD,GAAG,KAAR,SACE,cAAC,IAAD,CACE3xD,QAASA,EACT/3G,KAAK,oBACLm8K,aAAY,OAAE+uF,QAAF,IAAEA,OAAF,EAAEA,EAAelwI,kBAC7B0iD,OAAQ,gBAAGrnE,EAAH,EAAGA,MAAOimE,EAAV,EAAUA,WAAV,OACN,cAAC,IAAD,CACEjmE,MAAOA,EACPC,WAAYgmE,EACZ5lE,kBAAmB+7J,EACnB1yQ,GAAI,mBACJm0G,MAAO94G,EAAK0E,cAAc,CACxBC,GAAI,iCAMd,cAAC,IAAD,CAAK2pK,GAAG,KAAR,SACE,cAAC,IAAD,CACE3xD,QAASA,EACT/3G,KAAM,cACNm8K,aAAY,OAAE+uF,QAAF,IAAEA,OAAF,EAAEA,EAAeqI,YAC7B71F,OAAQ,oBAAGrnE,EAAH,EAAGA,MAAOimE,EAAV,EAAUA,WAAV,OACN,cAAC,IAAD,CACEjmE,MAAOA,EACPC,WAAYgmE,EACZv8K,GAAI,mBACJm0G,MAAO94G,EAAK0E,cAAc,CAAEC,GAAI,0BAChCw5G,gBAAiBn+G,EAAK0E,cAAc,CAAEC,GAAI,mBAC1CgiH,IAAG,iBAAEo/E,QAAF,IAAEA,OAAF,EAAEA,EAAY5pB,eAAd,QAAyB,EAC5Bv1D,IAAG,iBAAEm/E,QAAF,IAAEA,OAAF,EAAEA,EAAYpsJ,eAAd,QAAyB,WAKpC,cAAC,IAAD,CAAK20H,GAAG,KAAR,SACE,cAAC,IAAD,CACE3xD,QAASA,EACT/3G,KAAM,UACNm8K,aAAY,OAAE+uF,QAAF,IAAEA,OAAF,EAAEA,EAAe3zF,QAC7BmG,OAAQ,kBAAGrnE,EAAH,EAAGA,MAAOimE,EAAV,EAAUA,WAAV,OACN,cAAC,IAAD,CACEjmE,MAAOA,EACPC,WAAYgmE,EACZv8K,GAAI,eACJm0G,MAAO94G,EAAK0E,cAAc,CAAEC,GAAI,sBAChCw5G,gBAAiBn+G,EAAK0E,cAAc,CAAEC,GAAI,mBAC1CgiH,IAAK,EACLC,IAAG,iBAAEm/E,QAAF,IAAEA,OAAF,EAAEA,EAAYpsJ,eAAd,QAAyB,WAKpC,cAAC,IAAD,CAAK20H,GAAG,KAAR,SACE,cAAC,IAAD,CACE3xD,QAASA,EACT/3G,KAAM,UACNm8K,aAAY,OAAE+uF,QAAF,IAAEA,OAAF,EAAEA,EAAen2N,QAC7B2oI,OAAQ,kBAAGrnE,EAAH,EAAGA,MAAOimE,EAAV,EAAUA,WAAV,OACN,cAAC,IAAD,CACEjmE,MAAOA,EACPC,WAAYgmE,EACZv8K,GAAI,eACJm0G,MAAO94G,EAAK0E,cAAc,CAAEC,GAAI,sBAChCw5G,gBAAiBn+G,EAAK0E,cAAc,CAAEC,GAAI,mBAC1CgiH,IAAG,iBAAEo/E,QAAF,IAAEA,OAAF,EAAEA,EAAY5pB,eAAd,QAAyB,EAC5Bv1D,IAAK,WAKb,cAAC,IAAD,CAAK0nD,GAAG,KAAR,SACE,cAAC,IAAD,CACE3xD,QAASA,EACT/3G,KAAM,YACNm8K,cACe,OAAb+uF,QAAa,IAAbA,OAAA,EAAAA,EAAeh5J,WAAY,IAAIvkF,KAAKu9O,EAAch5J,gBAAajyG,EAEjEy9K,OAAQ,gBAAGrnE,EAAH,EAAGA,MAAOimE,EAAV,EAAUA,WAAV,OACN,cAAC,IAAD,CACEjmE,MAAOA,EACPC,WAAYgmE,EACZ7T,YAAU,EACVv0D,MAAO94G,EAAK0E,cAAc,CAAEC,GAAI,wBAChCg1C,SACY,OAAVosJ,QAAU,IAAVA,OAAA,EAAAA,EAAYhvF,SACRtY,IAAOsnG,EAAWhvF,SAASrY,OAAO,cAClC75F,SAMd,cAAC,IAAD,CAAKypK,GAAG,KAAR,SACE,cAAC,IAAD,CACE3xD,QAASA,EACT/3G,KAAM,UACNm8K,cACe,OAAb+uF,QAAa,IAAbA,OAAA,EAAAA,EAAe/4J,SAAU,IAAIxkF,KAAKu9O,EAAc/4J,cAAWlyG,EAE7Dy9K,OAAQ,gBAAGrnE,EAAH,EAAGA,MAAOimE,EAAV,EAAUA,WAAV,OACN,cAAC,IAAD,CACEjmE,MAAOA,EACPC,WAAYgmE,EACZ7T,YAAU,EACVv0D,MAAO94G,EAAK0E,cAAc,CAAEC,GAAI,sBAChCw3K,SACY,OAAV4pB,QAAU,IAAVA,OAAA,EAAAA,EAAYjvF,WACRrY,IAAOsnG,EAAWjvF,WAAWpY,OAAO,cACpC75F,SAMd,cAAC,IAAD,CAAKypK,GAAG,KAAR,SACE,cAAC,IAAD,CACE3xD,QAASA,EACT/3G,KAAM,kBACNm8K,aAEuC,QAAtB,OAAb+uF,QAAa,IAAbA,OAAA,EAAAA,EAAe52F,uBACoBr0K,KAAtB,OAAbirQ,QAAa,IAAbA,OAAA,EAAAA,EAAe52F,iBAEbh3E,EACGrjG,yCAAyCixQ,EAAc52F,iBACvDv+E,QAAQ,QACX91F,EAENy9K,OAAQ,oBAAGrnE,EAAH,EAAGA,MAAOimE,EAAV,EAAUA,WAAV,OACN,cAAC,IAAD,CACEjmE,MAAOA,EACPC,WAAYgmE,EACZ55C,eAAa,EACbC,kBAAmB,EACnB5iI,GAAI,uBACJyiI,OAAQ,SACRtuB,MAAO94G,EAAK0E,cAAc,CAAEC,GAAI,8BAChCgiH,IAAG,iBAAEo/E,QAAF,IAAEA,OAAF,EAAEA,EAAY3sB,mBAAd,QAA6B,EAChCxyD,IAAG,iBAAEm/E,QAAF,IAAEA,OAAF,EAAEA,EAAYzsB,mBAAd,QAA6B,IAChC7xC,WAAW,SAKnB,cAAC,IAAD,CAAK6mC,GAAG,KAAR,SACE,cAAC,IAAD,CACE3xD,QAASA,EACT/3G,KAAM,cACNm8K,aAEmC,QAAlB,OAAb+uF,QAAa,IAAbA,OAAA,EAAAA,EAAe12F,mBACgBv0K,KAAlB,OAAbirQ,QAAa,IAAbA,OAAA,EAAAA,EAAe12F,aAEbl3E,EACGrjG,yCAAyCixQ,EAAc12F,aACvDz+E,QAAQ,QACX91F,EAENy9K,OAAQ,gBAAGrnE,EAAH,EAAGA,MAAOimE,EAAV,EAAUA,WAAV,OACN,cAAC,IAAD,CACEjmE,MAAOA,EACPC,WAAYgmE,EACZ55C,eAAa,EACbC,kBAAmB,EACnBE,WAAW,EACX9iI,GAAI,mBACJyiI,OAAQ,SACRtuB,MAAO94G,EAAK0E,cAAc,CAAEC,GAAI,0BAChCgiH,IAAK,EACLC,IAAK,WAKb,cAAC,IAAD,CAAK0nD,GAAG,KAAR,SACE,cAAC,IAAD,CACE3xD,QAASA,EACT/3G,KAAM,cACNm8K,aAEmC,QAAlB,OAAb+uF,QAAa,IAAbA,OAAA,EAAAA,EAAex2F,mBACgBz0K,KAAlB,OAAbirQ,QAAa,IAAbA,OAAA,EAAAA,EAAex2F,aAEbp3E,EACGrjG,yCAAyCixQ,EAAcx2F,aACvD3+E,QAAQ,QACX91F,EAENy9K,OAAQ,kBAAGrnE,EAAH,EAAGA,MAAOimE,EAAV,EAAUA,WAAV,OACN,cAAC,IAAD,CACEjmE,MAAOA,EACPC,WAAYgmE,EACZ55C,eAAa,EACbG,WAAW,EACXF,kBAAmB,EACnB5iI,GAAI,mBACJyiI,OAAQ,SACRtuB,MAAO94G,EAAK0E,cAAc,CAAEC,GAAI,0BAChCgiH,IAAG,iBAAEo/E,QAAF,IAAEA,OAAF,EAAEA,EAAY3sB,mBAAd,QAA6B,EAChCxyD,IAAK,kBAWvB,uBACA,uBACA,cAAC,IAAD,CAAKrN,UAAW,oBAAhB,SACE,eAAC,IAAD,CAAK+0D,GAAG,KAAR,UACE,cAAC,IAAOnrC,OAAR,CACE5pB,UAAU,mBACV50G,GAAK,sBACL8L,MAAM,UAEN2yH,QAASolE,GAAa,SAAC90K,GAAD,OACpB8+J,EA1kBW,SAAC9+J,GACtB3U,EAASy4P,IAAoCF,EAAUhpE,cAAU56K,KACjEy9M,IACA/9D,IAukBkBglG,CAAe1kP,GAhlBd,SAACA,GACpB3U,EAASy4P,IAAqCF,EAAS,OAACxH,QAAD,IAACA,OAAD,EAACA,EAAe3sN,WAAYzvB,KACnFy9M,IACA/9D,IA6kB2CxvH,CAAalwB,MANlD,SASE,cAAC,IAAD,CAAkB/uB,GAAG,kBAEvB,cAAC,IAAOw+H,OAAR,CACE5pB,UAAU,cACV9oG,MAAM,QACN2yH,QAAS,WACP+tG,IACA/9D,KALJ,SAQE,cAAC,IAAD,CAAkBzuK,GAAG,6BAQjCyyQ,EAA2B53J,aAAe,GAE3B43J,O,8OCxgBAiB,IApIsB,SAACzrQ,GAAW,IAAD,QACtCquG,EAAqDruG,EAArDquG,MAAOC,EAA8CtuG,EAA9CsuG,WAAY7tG,EAAkCT,EAAlCS,aAAc8wN,EAAoBvxN,EAApBuxN,gBAEnCn+N,EAAOG,cAKb,GAJc27G,iBAAiBrS,SAASvxF,MAII8qH,mBAAc,OAA1D,mBAAO1D,EAAP,KAAuBg5I,EAAvB,KAEAv8J,qBAAU,WAAO,IAAD,EACRw8J,EAAmB,uCAAG,oCAAA90Q,EAAA,sEACJ+0Q,YAAgB,OAACl5I,QAAD,IAACA,OAAD,EAACA,EAAgBxmB,OAD7B,cACpB01E,EADoB,gBAECyQ,YAAUzQ,EAAQ,IAFnB,gBAElBqT,EAFkB,EAElBA,IAAKC,EAFa,EAEbA,IACb22E,EAA4B,CAC1Bn5I,eAAgBA,EAChBj7F,WAAU,OAAEi7F,QAAF,IAAEA,GAAF,UAAEA,EAAgBpyH,aAAlB,aAAE,EAAuBwrQ,SACnC9yO,aAAY,OAAE05F,QAAF,IAAEA,OAAF,EAAEA,EAAgBxmB,MAC9BpjF,SAAUmsK,EACVlsK,UAAWmsK,EACX73B,OAAQ,KATgB,2CAAH,sDAYP,OAAd3qC,QAAc,IAAdA,OAAA,EAAAA,EAAgBxmB,SAAc,OAALmC,QAAK,IAALA,OAAA,EAAAA,EAAO52E,eAAP,OAAsBi7F,QAAtB,IAAsBA,GAAtB,UAAsBA,EAAgBpyH,aAAtC,aAAsB,EAAuBwrQ,UACxEH,IAEAE,EAA4B,QAE7B,CAACn5I,IAEJvjB,qBAAU,WAAO,IAAD,GACd,OAAInvG,QAAJ,IAAIA,GAAJ,UAAIA,EAAO0uG,yBAAX,aAAI,EAA0BgkB,kBAC5Bg5I,EAAkB1rQ,EAAM0uG,kBAAkBgkB,gBAC1Cm5I,EAA4B7rQ,EAAM0uG,sBAEnC,QAAC1uG,QAAD,IAACA,GAAD,UAACA,EAAO0uG,yBAAR,aAAC,EAA0BgkB,iBAE9B,IAAMm5I,EAA8B,SAACvrQ,GAC/BA,GAASN,EAAM86L,4BACjBy2B,IAGFljH,EAAMkB,SAASjvG,GAEXN,EAAM4uG,4BACR5uG,EAAM4uG,2BAA2BtuG,IAGrC,OACE,eAAC,IAAD,WACGN,EAAMksG,OACL,eAAC,IAAD,CAAOS,UAAU,aAAa6C,IAAKxvG,EAAMjI,GAAzC,UACGiI,EAAMksG,MACNlsG,EAAM+yF,UAAY,sBAAM4Z,UAAU,WAAhB,sBAGvB,eAAC,IAAD,WACE,cAAC,IAAD,CAAiB8C,UAAU,UAA3B,SACE,eAAC,IAAD,CAAgBjD,MAAO,CAAEm1D,OAAQ,WAAah1D,UAAW,MAAO6pB,QAAS+6F,EAAzE,UACE,cAAC,IAAD,CAAqB16F,UAAW,MAAOn8B,OAAQ,YAA/C,SACGtnG,EAAK0E,cAAc,CAAEC,GAAI,kCAE5B,cAAC,IAAD,CAAMA,GAAI,YAAaS,KAAI,UAAE+K,IAAIwoQ,6BAAN,QAA+B,iBAG9D,cAAC,IAAD,CACEC,YAAW,2BACNhsQ,GADM,IAET0wG,YAAat9G,EAAK0E,cAAc,CAAEC,GAAI,8BACtC43G,OAAQ,CACNC,WAAY,SAACD,GAAD,mBAAC,eAAiBA,GAAlB,IAA0BE,OAAQ,QAC9CE,QAAS,SAACD,EAAUnmH,GAClB,OAAO,2BACFmmH,GADL,IAEEE,WAAWrmH,EAAMsmH,UAAY,kBAC7BC,OAAQvmH,EAAMsmH,UAAN,oBAtERE,UAsEQ,eAEJ,kCAGRC,YAAa,SAACN,EAAUnmH,GACtB,OAAO,2BACFmmH,GADL,IAEEO,WAAY,IACZC,SAAU,OACVC,WAAY,KACZ1sG,MAAO,UACP2sG,WAAY,kEAGhBC,SAAU,SAACX,EAAUnmH,GACnB,OAAO,2BACFmmH,GADL,IAEEO,WAAY,IACZC,SAAU,OACVC,WAAY,KACZ1sG,MAAO,UACP2sG,WAAY,mEAIlB7D,UACsB,MAApB2B,EAAW5iH,MACP,kCACA,wBACNyoL,aAAY,OAAEn0K,QAAF,IAAEA,GAAF,UAAEA,EAAO0uG,yBAAT,aAAE,EAA0BgkB,eACxCvhB,iBAAkB,kBAAM39G,cAAUsE,cAAc,CAAEC,GAAI,sBACtDk0Q,eAAgB,kBAAMz4Q,cAAUsE,cAAc,CAAEC,GAAI,oBACpDs5G,iBAAkBrxG,EAAMyuG,eAAYx2G,EAAY4kG,SAASyU,cAAc,QACvET,OAAQ,kBAAMxC,EAAMwC,UACpB6hB,iBACAnjB,SAAUm8J,IAEZQ,sBAAuB,CACrBC,sBAAuB,CACrBnuO,QAAS,CAAC,KAAM,UAItB,cAAC,IAAD,CAAiByxE,UAAU,SAA3B,SAAqCzvG,EAAMuxG,qBAE5CjD,EAAW5iH,OACV,qBAAKihH,UAAU,mBAAmBH,MAAO,CAAEC,QAAS,SAApD,UACG,UAAA6B,EAAW5iH,aAAX,eAAkB0M,UAAWqI,GAC5B,cAAC,IAAD,CAAkB1I,GAAG,gC,+QClH3Bo5O,EAAwB,SAACnxO,GAC7B,IACEs3C,EAIEt3C,EAJFs3C,OACAgkJ,EAGEt7L,EAHFs7L,kBACA81C,EAEEpxO,EAFFoxO,2BAHF,EAKIpxO,EADFgkO,4BAJF,SAMA,EAAgDroC,cAAxC5rF,EAAR,EAAQA,QAAS6rF,EAAjB,EAAiBA,aAAcC,EAA/B,EAA+BA,MAAOr1B,EAAtC,EAAsCA,MACtC,EAAsCpwC,mBAAiB,GAAvD,mBACMhjI,GADN,UACaG,eACP4e,EAAWipI,cAEX+9C,EAAa0C,IAEnB,EAA6E/lE,aAC3E,SAACnsI,GAAW,IAAD,QACHu5Q,EAAgBnwI,IAAkCppI,GACxD,MAAO,CACLi8L,OAAOs9E,EACPA,gBACAlqO,aAAY,oBACVy3I,IACE9mL,GACU,OAAVwvM,QAAU,IAAVA,OAAA,EAAAA,EAAY1hK,eAAZ,OAA2ByrO,QAA3B,IAA2BA,OAA3B,EAA2BA,EAAezrO,YAA1C,OACI0hK,QADJ,IACIA,OADJ,EACIA,EAAY1hK,gBACZx/B,UALI,aACV,EAKG+gC,oBANO,eAMSkqO,QANT,IAMSA,OANT,EAMSA,EAAerrN,WACpC4yN,oBAAmB,oBACjBh6F,IACE9mL,GACU,OAAVwvM,QAAU,IAAVA,OAAA,EAAAA,EAAY1hK,eAAZ,OAA2ByrO,QAA3B,IAA2BA,OAA3B,EAA2BA,EAAezrO,YAA1C,OACI0hK,QADJ,IACIA,OADJ,EACIA,EAAY1hK,gBACZx/B,UALW,aACjB,EAKGixG,mBANc,eAMCg6J,QAND,IAMCA,OAND,EAMCA,EAAeh6J,YACnC5T,QAASnqF,aAAyBxhB,OApBhCi8L,EAAR,EAAQA,MAAOs9E,EAAf,EAAeA,cAAelqO,EAA9B,EAA8BA,aAAcyxO,EAA5C,EAA4CA,oBAAqBn1K,EAAjE,EAAiEA,QAqC3Do1K,EAAY,SAAC9yN,EAAU9wB,GAAX,6BAAC,eACd6gF,IAAK7gF,EAAQ,eADA,IAEhB8wB,WACAvpD,eAAc,UAAEy4B,EAAO77B,kBAAT,aAAE,EAAmBoD,eACnCE,WAAU,UAAEu4B,EAAO77B,kBAAT,aAAE,EAAmBsD,WAC/BE,cAAa,UAAEq4B,EAAO77B,kBAAT,aAAE,EAAmBwD,cAClCuiP,aAAY,OAAEkyB,QAAF,IAAEA,OAAF,EAAEA,EAAelyB,aAC7B9mI,UAAWpjF,EAAOojF,UACd,IAAIvkF,KAAKmB,EAAOojF,WAAWygK,mBAAmB,cAC9C1yQ,EACJkyG,QAASrjF,EAAOqjF,QAAU,IAAIxkF,KAAKmB,EAAOqjF,SAASwgK,mBAAmB,cAAW1yQ,EACjFq0K,gBAAiBxlJ,EAAOwlJ,gBACpBh3E,EAAQnjG,yCAAyC20B,EAAOwlJ,iBAAiBv+E,QAAQ,QACjF91F,EACJu0K,YAAa1lJ,EAAO0lJ,YAChBl3E,EAAQnjG,yCAAyC20B,EAAO0lJ,aAAaz+E,QAAQ,QAC7E91F,EACJy0K,YAAa5lJ,EAAO4lJ,YAChBp3E,EAAQnjG,yCAAyC20B,EAAO4lJ,aAAa3+E,QAAQ,QAC7E91F,KAYN,OATAk3G,qBAAU,WACR,UAAI73D,QAAJ,IAAIA,OAAJ,EAAIA,EAAQM,SAEV,OADAzlC,EAAS7B,IAAA,OAA2BgnC,QAA3B,IAA2BA,OAA3B,EAA2BA,EAAQM,WACrC,WACLzlC,EAAS7B,IAAA,OAA6BgnC,QAA7B,IAA6BA,OAA7B,EAA6BA,EAAQM,cAGjD,QAACN,QAAD,IAACA,OAAD,EAACA,EAAQM,WAGV,eAAC,IAAD,CACE+0D,UAAU,sBACV+vF,iBAAiB,8BACjB5lE,OAAQwkE,EACRr8L,MAAO7L,EAAK0E,cAAc,CAAEC,GAAI6tL,EAAQ,iBAAmB,iBAC3DwX,SAAUxX,GAAK,OAAes9E,QAAf,IAAeA,OAAZjrQ,EAAYirQ,EAAerrN,WAC7Cv4C,MAAO,QACPq9L,eAAgB,WACdy0C,IACA5qE,KATJ,UAYE,eAAC,IAAD,WACE,cAAC,IAAD,CACEz2D,QAASA,EACT+jE,kBAAgB,EAChBrlE,WAAS,EACT0lE,aACE+uF,EACI,CACE70Q,eAAgB60Q,EAAc70Q,eAC9BE,WAAY20Q,EAAc30Q,WAC1BE,cAAey0Q,EAAcz0Q,oBAE/BwJ,EAEND,KAAK,aACLw2G,QAAS,CACPga,aAAa,EACbkqD,qBAAqB,EACrBJ,iBAAiB,EACjBC,oBAAoB,EACpBL,QAAS,KAGb,cAAC,IAAD,CAAKxQ,GAAG,KAAR,SACE,cAAC,IAAD,CACE3xD,QAASA,EACT+jE,kBAAgB,EAChB97K,KAAM,aACNu6F,MAAO,CAAEQ,UAAU,GACnBohF,aAAY,OAAE+uF,QAAF,IAAEA,OAAF,EAAEA,EAAe3sN,WAC7Bm/H,OAAQ,gBAAGrnE,EAAH,EAAGA,MAAOimE,EAAV,EAAUA,WAAV,OACN,cAAC,IAAD,CACEjmE,MAAOA,EACPC,WAAYgmE,EACZv8K,GAAI,kBACJ02G,WAAS,EACTu1H,qBAAsBA,EACtBD,oBAAmB,OAACm/B,QAAD,IAACA,OAAD,EAACA,EAAelyB,cACnCxuO,WAAU,OAAE0gQ,QAAF,IAAEA,OAAF,EAAEA,EAAelyB,aAC3Bj2F,iBAAgB,OAAEo+C,QAAF,IAAEA,OAAF,EAAEA,EAAYluM,WAC9B8nG,UAAQ,UAKdixI,GACA,cAAC,IAAD,CAAKtiE,GAAG,KAAR,SACE,cAAC,IAAD,CACE3xD,QAASA,EACT+jE,kBAAgB,EAChB97K,KAAM,aACNm8K,aAAY,OAAE+uF,QAAF,IAAEA,OAAF,EAAEA,EAAezrO,WAC7Bi+I,OAAQ,gBAAGrnE,EAAH,EAAGA,MAAOimE,EAAV,EAAUA,WAAV,OACN,cAAC,IAAD,CACEjmE,MAAOA,EACPC,WAAYgmE,EACZ7lE,WAAS,EACTqC,aAAW,EACXmgH,aAAW,EACX16K,WAAU,OAAE2sN,QAAF,IAAEA,OAAF,EAAEA,EAAe3sN,WAC3BqB,SAAQ,OAAEsrN,QAAF,IAAEA,OAAF,EAAEA,EAAetrN,SACzBijJ,oBAAkB,EAClBm2B,2BAAyB,EACzBj5N,GAAI,gBACJiiJ,iBAAgB,OAAEm/C,QAAF,IAAEA,OAAF,EAAEA,EAAYluM,WAC9BihH,MAAO94G,EAAK0E,cAAc,CAAEC,GAAI,8BAM1C,cAAC,IAAD,CAAK2pK,GAAG,KAAR,SACE,cAAC,IAAD,CACE3xD,QAASA,EACT/3G,KAAK,aACLu6F,MAAO,CAAEQ,UAAU,GACnBohF,aAAY,OAAE+uF,QAAF,IAAEA,OAAF,EAAEA,EAAerrN,WAC7B69H,OAAQ,gBAAGrnE,EAAH,EAAGA,MAAOimE,EAAV,EAAUA,WAAV,OACN,cAAC,IAAD,CACEjmE,MAAOA,EACPC,WAAYgmE,EACZv8K,GAAI,kBACJ22G,mBAAgC,OAAbw0J,QAAa,IAAbA,OAAA,EAAAA,EAAelyB,mBAAe/4O,EAAY+gC,EAC7DkzE,MAAO94G,EAAK0E,cAAc,CACxBC,GAAI,gBAENw6G,SAAQ,OAAE2wJ,QAAF,IAAEA,OAAF,EAAEA,EAAelyB,aACzBj+I,UAAQ,SAKhB,cAAC,IAAD,CAAK2uE,GAAG,KAAR,SACE,cAAC,IAAD,CACE3xD,QAASA,EACT/3G,KAAK,cACLm8K,aAAY,OAAE+uF,QAAF,IAAEA,OAAF,EAAEA,EAAeh6J,YAC7BwsE,OAAQ,gBAAGrnE,EAAH,EAAGA,MAAOimE,EAAV,EAAUA,WAAV,OACN,cAAC,IAAD,CACEjmE,MAAOA,EACPC,WAAYgmE,EACZ5lE,kBAAmB+7J,EACnB1yQ,GAAI,mBACJm0G,MAAO94G,EAAK0E,cAAc,CACxBC,GAAI,+BAMd,cAAC,IAAD,CAAK2pK,GAAG,KAAR,SACE,cAAC,IAAD,CACE3xD,QAASA,EACT/3G,KAAM,cACNm8K,aAAY,OAAE+uF,QAAF,IAAEA,OAAF,EAAEA,EAAeqI,YAC7B71F,OAAQ,oBAAGrnE,EAAH,EAAGA,MAAOimE,EAAV,EAAUA,WAAV,OACN,cAAC,IAAD,CACEjmE,MAAOA,EACPC,WAAYgmE,EACZv8K,GAAI,mBACJm0G,MAAO94G,EAAK0E,cAAc,CAAEC,GAAI,0BAChCw5G,gBAAiBn+G,EAAK0E,cAAc,CAAEC,GAAI,mBAC1CgiH,IAAG,iBAAEo/E,QAAF,IAAEA,OAAF,EAAEA,EAAY5pB,eAAd,QAAyB,EAC5Bv1D,IAAG,iBAAEm/E,QAAF,IAAEA,OAAF,EAAEA,EAAYpsJ,eAAd,QAAyB,WAKpC,cAAC,IAAD,CAAK20H,GAAG,KAAR,SACE,cAAC,IAAD,CACE3xD,QAASA,EACT/3G,KAAM,UACNm8K,aAAY,OAAE+uF,QAAF,IAAEA,OAAF,EAAEA,EAAe3zF,QAC7BmG,OAAQ,kBAAGrnE,EAAH,EAAGA,MAAOimE,EAAV,EAAUA,WAAV,OACN,cAAC,IAAD,CACEjmE,MAAOA,EACPC,WAAYgmE,EACZv8K,GAAI,eACJm0G,MAAO94G,EAAK0E,cAAc,CAAEC,GAAI,sBAChCw5G,gBAAiBn+G,EAAK0E,cAAc,CAAEC,GAAI,mBAC1CgiH,IAAK,EACLC,IAAG,iBAAEm/E,QAAF,IAAEA,OAAF,EAAEA,EAAYpsJ,eAAd,QAAyB,WAKpC,cAAC,IAAD,CAAK20H,GAAG,KAAR,SACE,cAAC,IAAD,CACE3xD,QAASA,EACT/3G,KAAM,UACNm8K,aAAY,OAAE+uF,QAAF,IAAEA,OAAF,EAAEA,EAAen2N,QAC7B2oI,OAAQ,kBAAGrnE,EAAH,EAAGA,MAAOimE,EAAV,EAAUA,WAAV,OACN,cAAC,IAAD,CACEjmE,MAAOA,EACPC,WAAYgmE,EACZv8K,GAAI,eACJm0G,MAAO94G,EAAK0E,cAAc,CAAEC,GAAI,sBAChCw5G,gBAAiBn+G,EAAK0E,cAAc,CAAEC,GAAI,mBAC1CgiH,IAAG,iBAAEo/E,QAAF,IAAEA,OAAF,EAAEA,EAAY5pB,eAAd,QAAyB,EAC5Bv1D,IAAK,WAKb,cAAC,IAAD,CAAK0nD,GAAG,KAAR,SACE,cAAC,IAAD,CACE3xD,QAASA,EACT/3G,KAAM,YACNm8K,cAA2B,OAAb+uF,QAAa,IAAbA,OAAA,EAAAA,EAAeh5J,WAAY,IAAIvkF,KAAKu9O,EAAch5J,gBAAajyG,EAC7Ey9K,OAAQ,gBAAGrnE,EAAH,EAAGA,MAAOimE,EAAV,EAAUA,WAAV,OACN,cAAC,IAAD,CACEjmE,MAAOA,EACPC,WAAYgmE,EACZ7T,YAAU,EACVv0D,MAAO94G,EAAK0E,cAAc,CAAEC,GAAI,wBAChCg1C,SACY,OAAVosJ,QAAU,IAAVA,OAAA,EAAAA,EAAYhvF,SAAUtY,IAAOsnG,EAAWhvF,SAASrY,OAAO,cAAW75F,SAM7E,cAAC,IAAD,CAAKypK,GAAG,KAAR,SACE,cAAC,IAAD,CACE3xD,QAASA,EACT/3G,KAAM,UACNm8K,cAA2B,OAAb+uF,QAAa,IAAbA,OAAA,EAAAA,EAAe/4J,SAAU,IAAIxkF,KAAKu9O,EAAc/4J,cAAWlyG,EACzEy9K,OAAQ,gBAAGrnE,EAAH,EAAGA,MAAOimE,EAAV,EAAUA,WAAV,OACN,cAAC,IAAD,CACEjmE,MAAOA,EACPC,WAAYgmE,EACZ7T,YAAU,EACVv0D,MAAO94G,EAAK0E,cAAc,CAAEC,GAAI,sBAChCw3K,SACY,OAAV4pB,QAAU,IAAVA,OAAA,EAAAA,EAAYjvF,WAAYrY,IAAOsnG,EAAWjvF,WAAWpY,OAAO,cAAW75F,SAMjF,cAAC,IAAD,CAAKypK,GAAG,KAAR,SACE,cAAC,IAAD,CACE3xD,QAASA,EACT/3G,KAAM,kBACNm8K,cACe,OAAb+uF,QAAa,IAAbA,OAAA,EAAAA,EAAe52F,iBACXh3E,EACGrjG,yCAAyCixQ,EAAc52F,iBACvDv+E,QAAQ,QACX91F,EAENy9K,OAAQ,oBAAGrnE,EAAH,EAAGA,MAAOimE,EAAV,EAAUA,WAAV,OACN,cAAC,IAAD,CACEjmE,MAAOA,EACPC,WAAYgmE,EACZ55C,eAAa,EACbC,kBAAmB,EACnB5iI,GAAI,uBACJyiI,OAAQ,SACRtuB,MAAO94G,EAAK0E,cAAc,CAAEC,GAAI,4BAChCgiH,IAAG,iBAAEo/E,QAAF,IAAEA,OAAF,EAAEA,EAAY3sB,mBAAd,QAA6B,EAChCxyD,IAAG,iBAAEm/E,QAAF,IAAEA,OAAF,EAAEA,EAAYzsB,mBAAd,QAA6B,WAKxC,cAAC,IAAD,CAAKhL,GAAG,KAAR,SACE,cAAC,IAAD,CACE3xD,QAASA,EACT/3G,KAAM,cACNm8K,cACe,OAAb+uF,QAAa,IAAbA,OAAA,EAAAA,EAAe12F,aACXl3E,EACGrjG,yCAAyCixQ,EAAc12F,aACvDz+E,QAAQ,QACX91F,EAENy9K,OAAQ,kBAAGrnE,EAAH,EAAGA,MAAOimE,EAAV,EAAUA,WAAV,OACN,cAAC,IAAD,CACEjmE,MAAOA,EACPC,WAAYgmE,EACZ55C,eAAa,EACbC,kBAAmB,EACnB5iI,GAAI,mBACJyiI,OAAQ,SACRtuB,MAAO94G,EAAK0E,cAAc,CAAEC,GAAI,wBAChCgiH,IAAK,EACLC,IAAG,iBAAEm/E,QAAF,IAAEA,OAAF,EAAEA,EAAYzsB,mBAAd,QAA6B,WAKxC,cAAC,IAAD,CAAKhL,GAAG,KAAR,SACE,cAAC,IAAD,CACE3xD,QAASA,EACT/3G,KAAM,cACNm8K,cACe,OAAb+uF,QAAa,IAAbA,OAAA,EAAAA,EAAex2F,aACXp3E,EACGrjG,yCAAyCixQ,EAAcx2F,aACvD3+E,QAAQ,QACX91F,EAENy9K,OAAQ,kBAAGrnE,EAAH,EAAGA,MAAOimE,EAAV,EAAUA,WAAV,OACN,cAAC,IAAD,CACEjmE,MAAOA,EACPC,WAAYgmE,EACZ55C,eAAa,EACbC,kBAAmB,EACnB5iI,GAAI,mBACJyiI,OAAQ,SACRtuB,MAAO94G,EAAK0E,cAAc,CAAEC,GAAI,wBAChCgiH,IAAG,iBAAEo/E,QAAF,IAAEA,OAAF,EAAEA,EAAY3sB,mBAAd,QAA6B,EAChCxyD,IAAK,cAMf,uBACA,uBACA,cAAC,IAAD,CAAKrN,UAAW,oBAAhB,SACE,eAAC,IAAD,CAAK+0D,GAAG,KAAR,UACE,cAAC,IAAOnrC,OAAR,CACE5pB,UAAU,mBACV50G,GAAK,oBACL8L,MAAM,UAEN2yH,QAASolE,GAAa,SAAC90K,GAAD,OAAa8+J,EAlVxB,SAAC9+J,GACpB3U,EAAS7B,IAAgCo6P,EAAUhpE,cAAU56K,KAC7DsqN,IACA5qE,IA+UmD4lG,CAAatlP,GAxV/C,SAACA,GAClB3U,EAAS7B,IAAiCo6P,EAAS,OAACxH,QAAD,IAACA,OAAD,EAACA,EAAetrN,SAAU9wB,KAC7EsqN,IACA5qE,IAqV0EnuH,CAAWvxB,MAL/E,SAOE,cAAC,IAAD,CAAkB/uB,GAAG,kBAEvB,cAAC,IAAOw+H,OAAR,CACE5pB,UAAU,cACV9oG,MAAM,QACN2yH,QAAS,WACP46G,IACA5qE,KALJ,SAQE,cAAC,IAAD,CAAkBzuK,GAAG,6BAQjCo5O,EAAsBv+H,aAAe,GAEtBu+H,O,mGCvaFk7B,EAAoB,CAC/B,CAAEC,cAAe,EAAGC,eAAgB,iBACpC,CAAED,cAAe,EAAGC,eAAgB,kBAGhCC,EAAkB,SAACxsQ,GAAW,IAAD,IAC3B5M,EAAOG,cAEb,EAAoC6iI,mBAASzwG,KAAKD,OAAlD,mBAAO+rM,EAAP,UAKA,OACE,wBAAC,IAAD,2BACMzxN,GADN,IAEEhI,KAAI,iBAAEgI,QAAF,IAAEA,OAAF,EAAEA,EAAOhI,YAAT,QAAiB,gBACrBD,GAAE,iBAAEiI,QAAF,IAAEA,OAAF,EAAEA,EAAOjI,UAAT,QAAe,gBACjBlM,IAAK4lO,EACLvlH,MAAO,cAAC,IAAD,CAAkBn0G,GAAG,kCAC5By2G,QAAS69J,EAAkB1gQ,KAAI,SAAC8gQ,GAC9B,OAAO,2BACFA,GADL,IAEE10Q,GAAI00Q,EAAWH,cACfhsQ,MAAOmsQ,EAAWH,cAClBpgK,MAAO94G,EAAK0E,cAAc,CACxBC,GAAG,gCAAD,OAAkC00Q,EAAWH,iBAEjDhgK,WAAYl5G,EAAK0E,cAAc,CAC7BC,GAAG,gCAAD,OAAkC00Q,EAAWH,0BAqB5C73B,IAbiB,SAACz0O,GAAkB,IAAD,EAChD,OACE,cAAC,IAAD,CACEhI,KAAK,gBACLD,GAAE,iBAAEiI,QAAF,IAAEA,OAAF,EAAEA,EAAOjI,UAAT,QAAe,gBACjBg7F,UAAU,EACVwrG,UAAWiuE,EACX3iR,KAAM,SACNsqL,aAAcn0K,EAAMm0K,iB,2JCvCpBu4F,EAAqB,SAAC1sQ,GAAW,IAAD,IAC9BzF,EAAQu7H,aAAY,SAACnsI,GAAD,OAA6BA,KACjDwoB,EAAWipI,cAEX9yI,EAAaqkQ,IAAqCpyQ,GAGxD,EAAoC67H,mBAASzwG,KAAKD,OAAlD,mBAAO+rM,EAAP,KAAmBC,EAAnB,KAmBA,OAbAviH,qBAAU,WACHw9J,IAA6CpyQ,IAChD4X,EAASy6P,SAEV,IAGHz9J,qBAAU,WACHw9J,IAA4CpyQ,IAZjDm3N,EAAc/rM,KAAKD,SAelB,CAACinP,IAA4CpyQ,KAG9C,wBAAC,IAAD,2BACMyF,GADN,IAEEhI,KAAI,UAAEgI,EAAMhI,YAAR,QAAgB,aACpBD,GAAE,UAAEiI,EAAMjI,UAAR,QAAc,aAChBlM,IAAK4lO,EACL17F,UAAW42I,IAA4CpyQ,GACvD2xG,MAAO,cAAC,IAAD,CAAkBn0G,GAAG,gCAC5By2G,QAASlmG,EAAWqD,KAAI,SAAC0wC,GACvB,OAAO,2BACFA,GADL,IAEEtkD,GAAIskD,EAASG,WACbl8C,MAAO+7C,EAASG,WAChB0vD,MAAO7vD,EAASE,aAChB+vD,WAAYjwD,EAASE,sBAqBhBm4L,IAdiB,SAAC10O,GAAkB,IAAD,IAChD,OACE,cAAC,IAAD,2BACMA,GADN,IAEEhI,KAAI,iBAAEgI,QAAF,IAAEA,OAAF,EAAEA,EAAOhI,YAAT,QAAiB,aACrBD,GAAE,iBAAEiI,QAAF,IAAEA,OAAF,EAAEA,EAAOjI,UAAT,QAAe,aACjBg7F,UAAU,EACVwrG,UAAWmuE,EACX7iR,KAAM,SACNsqL,aAAcn0K,EAAMm0K,kB,uVCpDpB47C,EAAe,CACnB,CACEv/H,UAAW,MACXe,WAAY,iBAEd,CACEf,UAAW,YACXe,WAAY,sBACZ1nG,KAAM,WACNugL,aAAc,QACd7C,cAAc,EACd2C,aAAc,SAACv4B,GAAD,OAAU29G,YAAgB,CAAE39G,OAAM55I,GAAI,gBAEtD,CACEy4F,UAAW,UACXe,WAAY,oBACZ1nG,KAAM,WACNugL,aAAc,QACd7C,cAAc,EACd2C,aAAc,SAACv4B,GAAD,OAAU29G,YAAgB,CAAE39G,OAAM55I,GAAI,eAujBzC80Q,iBACb,SAACljR,GAAD,MAAY,CACVu5Q,cAAez/O,sBAAsC95B,GAEjD,CACE25B,aAAcG,sBAAsC95B,GAAO25B,aAC3DomF,aAA6E,IAA/DjmF,sBAAsC95B,GAAOgtP,cAAsB,EAAI,EACrFm2B,UACiE,IAA/DrpP,sBAAsC95B,GAAOgtP,cACzC,EAC+D,IAA/DlzN,sBAAsC95B,GAAOgtP,cAC7C,EACA,EACN1rP,WAAY,CACVoD,eAAgBo1B,sBAAsC95B,GAAO0E,eAC7DE,WAAYk1B,sBAAsC95B,GAAO4E,WACzDE,cAAeg1B,sBAAsC95B,GAAO8E,eAE9Ds+Q,YAAa77K,WAASC,QAAQ1tE,sBAAsC95B,GAAO62B,WACxEwsP,KAAK,CACJhxK,KAAMv4E,sBAAsC95B,GAAOugH,UAAU1c,MAC7D+sE,OAAQ92I,sBAAsC95B,GAAOugH,UAAUzc,UAEhExhF,WACHghQ,YAAa/7K,WAASg8K,MACpB,IACA,EACA,EACAzpP,sBAAsC95B,GAAOugH,UAAU1c,MACvD/pE,sBAAsC95B,GAAOugH,UAAUzc,SACvD2D,SAAS,SACX+7K,gBAAiB,CACf1pP,sBAAsC95B,GAAO62B,UAC7CiD,sBAAsC95B,GAAO82B,SAE/C2sP,OAAQC,IACN5pP,sBAAsC95B,GAAOysP,kBAC7C,GAEFk3B,OAAQD,IACN5pP,sBAAsC95B,GAAOysP,kBAC7C,GAEFm3B,QAASF,IACP5pP,sBAAsC95B,GAAOysP,kBAC7C,GAEFo3B,UAAWH,IACT5pP,sBAAsC95B,GAAOysP,kBAC7C,GAEFq3B,SAAUJ,IACR5pP,sBAAsC95B,GAAOysP,kBAC7C,GAEFs3B,OAAQL,IACN5pP,sBAAsC95B,GAAOysP,kBAC7C,GAEFu3B,SAAUN,IACR5pP,sBAAsC95B,GAAOysP,kBAC7C,GAEFw3B,WAAYnqP,sBAAsC95B,GAAOysP,kBAEzDy3B,eACiE,IAA/DpqP,sBAAsC95B,GAAOgtP,eAC0B,IAAnElzN,sBAAsC95B,GAAOysP,kBAC3C,EAEF,EACN03B,gBACiE,IAA/DrqP,sBAAsC95B,GAAOgtP,eACkC,IAA3ElzN,sBAAsC95B,GAAO+sP,0BAC3C,EAEF,EACNq3B,iBACEtqP,sBAAsC95B,GAAO4sP,0BAA4B,EAAI,EAAI,EACnFy3B,uBAAwBvqP,sBAAsC95B,GAAOysP,kBACrE63B,wBACExqP,sBAAsC95B,GAAO4sP,0BAE/C23B,kBAAkF,KAA/DzqP,sBAAsC95B,GAAOgtP,cAChEw3B,cAC6E,IAA3E1qP,sBAAsC95B,GAAO+sP,0BACzC,EAC2E,IAA3EjzN,sBAAsC95B,GAAO+sP,0BAC7C,EAC2E,IAA3EjzN,sBAAsC95B,GAAO+sP,0BAC7C,EAC2E,IAA3EjzN,sBAAsC95B,GAAO+sP,0BAC7C,EACA,EACN03B,aAAc3qP,sBAAsC95B,GAAOysP,mBAG7D,CACEO,cAAe,EACfk3B,eAAgB,EAChBC,gBAAiB,EACjBC,iBAAkB,EAClB33B,kBAAmB,EACnBi4B,iBAAkB,WAG1Bp2Q,GACA,SAACq2Q,EAAYC,EAAeC,GAA5B,mBAAC,eACIA,GACAF,KA7GQzB,EA7iBI,SAAC7sQ,GACmEA,EAA7EywM,QAAR,IAAiByzB,EAAoElkO,EAApEkkO,gBAAiBizB,EAAmDn3P,EAAnDm3P,kBAAmB+L,EAAgCljQ,EAAhCkjQ,cAC/C/wP,GADN,YAAqFnS,EAArF,mEACiBo7I,eACXhoJ,EAAOG,cACb,EAA0DooM,cAAlD5rF,EAAR,EAAQA,QAAS6rF,EAAjB,EAAiBA,aAAcp1B,EAA/B,EAA+BA,MAAOq1B,EAAtC,EAAsCA,MAAOq/C,EAA7C,EAA6CA,SACvCt1D,GAAQ9vD,YAAYryG,uBAC1B,EAA4B2yG,mBAAS,KAArC,mBACA,GADA,UAC6CA,mBAAgB,KAA7D,mBAAOq4I,EAAP,KAAsBC,EAAtB,KACA,EAAkCt4I,mBAAgB,IAAlD,mBAAOu4I,EAAP,KAAkBC,EAAlB,KACMC,GAAkB/4I,YAAYryG,uBAEpC0rF,qBAAU,WACR,GAAKy2E,EAkCHgpF,EAAa,QAlCH,CAAC,IAAD,EACJE,EAAc,UAAGl4B,IACpBjrO,KAAI,SAACs+F,EAAKp7F,GAAN,yBACHggQ,GAAgB5kK,UADb,iBACH,EACI97G,MAAM,YAFP,aACH,EAEIwd,KAAI,SAAC6qF,GAAD,kBAAW,CACf3qG,IAAKgjB,EACLo7F,IAAK72G,EAAK0E,cAAc,CAAEC,GAAG,UAAD,OAAYkyG,KACxCC,UAAW,IAAIvkF,KACb,IACA,EACA,EACA92B,SAAQ,UAAC2nG,EAAKroG,MAAM,KAAK,UAAjB,aAAC,EAAoBA,MAAM,KAAK,IACxCU,SAAQ,UAAC2nG,EAAKroG,MAAM,KAAK,UAAjB,aAAC,EAAoBA,MAAM,KAAK,KAE1Cg8G,QAAS,IAAIxkF,KACX,IACA,EACA,EACA92B,SAAQ,UAAC2nG,EAAKroG,MAAM,KAAK,UAAjB,aAAC,EAAoBA,MAAM,KAAK,IACxCU,SAAQ,UAAC2nG,EAAKroG,MAAM,KAAK,UAAjB,aAAC,EAAoBA,MAAM,KAAK,SAG3C83B,QACC,SAACgkF,GAAD,MACqD,kBAAlDrX,OAAO0rH,UAAUryM,SAASb,KAAK6+F,EAAIC,aACjCvV,MAAMsV,EAAIC,YACoC,kBAAhDtX,OAAO0rH,UAAUryM,SAASb,KAAK6+F,EAAIE,WACjCxV,MAAMsV,EAAIE,sBA3BH,aAAG,EA8BnBlkF,QAAO,SAACmiG,GAAD,OAAc,OAAJA,QAAI,IAAJA,OAAA,EAAAA,EAAMz1G,QAAS,KACpCi8P,EAAa5kK,IAAY8kK,OAI1B,CAAClpF,IAEJ,IAAMuT,GAAa0C,IAoDnB,OACE,eAAC,IAAD,CACElvF,UAAU,sBACV+vF,iBAAiB,8BACjB5lE,OAAQotG,EACRjlO,MACE2mL,EACIxyL,EAAK0E,cAAc,CAAEC,GAAI,uBACzB3E,EAAK0E,cAAc,CAAEC,GAAI,wBAE/BuH,MAAO,QACPq9L,eAAgB,WACdw6D,IACA3wF,IACAooG,EAAa,KAbjB,UAiBE,eAAC,IAAD,WACE,cAAC,IAAD,CAAKltG,GAAG,KAAR,SACE,cAAC,IAAD,CACE3xD,QAASA,EACT/3G,KAAK,eACL87K,kBAAgB,EAChBK,aAAY,OAAE+uF,QAAF,IAAEA,OAAF,EAAEA,EAAe5/O,aAC7BivE,MAAO,CAAEQ,UAAU,GACnB2iF,OAAQ,gBAAGrnE,EAAH,EAAGA,MAAOimE,EAAV,EAAUA,WAAV,OACN,cAAC,IAAD,CACEjmE,MAAOA,EACPC,WAAYgmE,EACZv8K,GAAI,oBACJg7F,UAAU,EACVmZ,MAAO,cAAC,IAAD,CAAkBn0G,GAAG,mBAC5BlO,KAAM,cAKd,cAAC,IAAD,CACEmO,KAAK,aACL87K,kBAAgB,EAChB/jE,QAASA,EACTokE,aAAY,OAAE+uF,QAAF,IAAEA,OAAF,EAAEA,EAAej4Q,WAC7BujH,QAAS,CACPga,aAAa,EACbkqD,qBAAqB,EACrBE,iBAAiB,EACjBC,oBAAoB,EACpBG,qBAAqB,EACrBE,iBAAiB,EACjBC,oBAAoB,EACpBb,iBAAiB,EACjBC,oBAAoB,EACpBL,QAAS,IAEXzjE,WAAW,OAIf,cAAC,IAAD,UACE,qCACE,cAAC,IAAD,CAAKizD,GAAI,EAAG/0D,UAAW,uCAAvB,SACE,cAAC,IAAD,CACEoD,QAASA,EACT/3G,KAAK,SACL87K,kBAAgB,EAChBK,aAAY,OAAE+uF,QAAF,IAAEA,OAAF,EAAEA,EAAeoK,OAC7B53F,OAAQ,gBAAGrnE,EAAH,EAAGA,MAAH,OACN,cAAC,IAAD,CAAeA,MAAOA,EAAOnC,MAAO,cAAC,IAAD,CAAkBn0G,GAAG,4BAI/D,cAAC,IAAD,CAAK2pK,GAAI,EAAG/0D,UAAW,uCAAvB,SACE,cAAC,IAAD,CACEoD,QAASA,EACT/3G,KAAK,UACL87K,kBAAgB,EAChBK,aAAY,OAAE+uF,QAAF,IAAEA,OAAF,EAAEA,EAAeqK,QAC7B73F,OAAQ,gBAAGrnE,EAAH,EAAGA,MAAH,OACN,cAAC,IAAD,CAAeA,MAAOA,EAAOnC,MAAO,cAAC,IAAD,CAAkBn0G,GAAG,6BAI/D,cAAC,IAAD,CAAK2pK,GAAI,EAAG/0D,UAAW,uCAAvB,SACE,cAAC,IAAD,CACEoD,QAASA,EACT/3G,KAAK,YACL87K,kBAAgB,EAChBK,aAAY,OAAE+uF,QAAF,IAAEA,OAAF,EAAEA,EAAesK,UAC7B93F,OAAQ,gBAAGrnE,EAAH,EAAGA,MAAH,OACN,cAAC,IAAD,CACEA,MAAOA,EACPnC,MAAO,cAAC,IAAD,CAAkBn0G,GAAG,+BAKpC,cAAC,IAAD,CAAK2pK,GAAI,EAAG/0D,UAAW,uCAAvB,SACE,cAAC,IAAD,CACEoD,QAASA,EACT/3G,KAAK,WACL87K,kBAAgB,EAChBK,aAAY,OAAE+uF,QAAF,IAAEA,OAAF,EAAEA,EAAeuK,SAC7B/3F,OAAQ,gBAAGrnE,EAAH,EAAGA,MAAH,OACN,cAAC,IAAD,CAAeA,MAAOA,EAAOnC,MAAO,cAAC,IAAD,CAAkBn0G,GAAG,8BAI/D,cAAC,IAAD,CAAK2pK,GAAI,EAAG/0D,UAAW,uCAAvB,SACE,cAAC,IAAD,CACEoD,QAASA,EACT/3G,KAAK,SACL87K,kBAAgB,EAChBK,aAAY,OAAE+uF,QAAF,IAAEA,OAAF,EAAEA,EAAewK,OAC7Bh4F,OAAQ,gBAAGrnE,EAAH,EAAGA,MAAH,OACN,cAAC,IAAD,CAAeA,MAAOA,EAAOnC,MAAO,cAAC,IAAD,CAAkBn0G,GAAG,4BAI/D,cAAC,IAAD,CAAK2pK,GAAI,EAAG/0D,UAAW,uCAAvB,SACE,cAAC,IAAD,CACEoD,QAASA,EACT/3G,KAAK,WACL87K,kBAAgB,EAChBK,aAAY,OAAE+uF,QAAF,IAAEA,OAAF,EAAEA,EAAeyK,SAC7Bj4F,OAAQ,gBAAGrnE,EAAH,EAAGA,MAAH,OACN,cAAC,IAAD,CAAeA,MAAOA,EAAOnC,MAAO,cAAC,IAAD,CAAkBn0G,GAAG,8BAI/D,cAAC,IAAD,CAAK2pK,GAAI,EAAG/0D,UAAW,uCAAvB,SACE,cAAC,IAAD,CACEoD,QAASA,EACT/3G,KAAK,SACL87K,kBAAgB,EAChBK,aAAY,OAAE+uF,QAAF,IAAEA,OAAF,EAAEA,EAAekK,OAC7B13F,OAAQ,gBAAGrnE,EAAH,EAAGA,MAAH,OACN,cAAC,IAAD,CAAeA,MAAOA,EAAOnC,MAAO,cAAC,IAAD,CAAkBn0G,GAAG,iCAMnE,uBAEA,cAAC,IAAD,UACE,mCACE,eAAC,IAAD,CAAK2pK,GAAG,mCAAR,UACE,cAAC,IAAOnrC,OAAR,CACE5pB,UAAU,OACV9oG,MAAM,UACN2yH,QAAS,WACP0kH,EAAS,UAAU,GACnBA,EAAS,UAAU,GACnBA,EAAS,WAAW,GACpBA,EAAS,aAAa,GACtBA,EAAS,YAAY,GACrBA,EAAS,UAAU,GACnBA,EAAS,YAAY,IAVzB,SAaG9nP,EAAK0E,cAAc,CAAEC,GAAI,8BAE5B,cAAC,IAAOw+H,OAAR,CACE5pB,UAAU,OACV9oG,MAAM,UACN2yH,QAAS,WACP0kH,EAAS,UAAU,GACnBA,EAAS,WAAW,GACpBA,EAAS,aAAa,GACtBA,EAAS,YAAY,GACrBA,EAAS,UAAU,GACnBA,EAAS,YAAY,GACrBA,EAAS,UAAU,IAVvB,SAaG9nP,EAAK0E,cAAc,CAAEC,GAAI,+BAE5B,cAAC,IAAOw+H,OAAR,CACE5pB,UAAU,OACV9oG,MAAM,QACN2yH,QAAS,WACP0kH,EAAS,UAAU,GACnBA,EAAS,WAAW,GACpBA,EAAS,aAAa,GACtBA,EAAS,YAAY,GACrBA,EAAS,UAAU,GACnBA,EAAS,YAAY,GACrBA,EAAS,UAAU,IAVvB,SAaG9nP,EAAK0E,cAAc,CAAEC,GAAI,mCAKlC,uBAEA,cAAC,IAAD,UACE,qCACE,cAAC,IAAD,CAAK2pK,GAAG,IAAR,SACE,cAAC,IAAD,CACE3xD,QAASA,EACT/3G,KAAK,YACL87K,kBAAgB,EAChBK,aAAY,OAAE+uF,QAAF,IAAEA,OAAF,EAAEA,EAAeh5J,UAC7BwrE,OAAQ,gBAAGrnE,EAAH,EAAGA,MAAOimE,EAAV,EAAUA,WAAV,OACN,cAAC,IAAD,CACEjmE,MAAOA,EACPC,WAAYgmE,EACZpoE,MAAO,cAAC,IAAD,CAAkBn0G,GAAG,+BAKpC,cAAC,IAAD,CAAK2pK,GAAG,IAAR,SACE,cAAC,IAAD,CACE3xD,QAASA,EACT/3G,KAAK,UACL87K,kBAAgB,EAChBK,aAAY,OAAE+uF,QAAF,IAAEA,OAAF,EAAEA,EAAe/4J,QAC7BurE,OAAQ,gBAAGrnE,EAAH,EAAGA,MAAOimE,EAAV,EAAUA,WAAV,OACN,cAAC,IAAD,CACEjmE,MAAOA,EACPC,WAAYgmE,EACZpoE,MAAO,cAAC,IAAD,CAAkBn0G,GAAG,kCAOxC,uBAEA,cAAC,IAAD,UACE,mCACE,cAAC,IAAD,CAAK2pK,GAAG,mCAAR,SACE,cAAC,IAAOnrC,OAAR,CACE5pB,UAAU,OACV9oG,MAAM,UAEN2yH,QAAS,WAEP,GACE2iE,GAAWjvF,WACXivF,GAAWhvF,SACXgvF,GAAWhvF,QAAUgvF,GAAWjvF,UAChC,CACA,IAAM6kK,EAAYn4B,IACfjrO,KAAI,SAACs+F,EAAKp7F,GACT,GAAIsqL,GAAWlvF,GACb,MAAO,CACLp+G,IAAKgjB,EACLo7F,IAAK72G,EAAK0E,cAAc,CAAEC,GAAG,UAAD,OAAYkyG,KACxCC,UAAWivF,GAAWjvF,UACtBC,QAASgvF,GAAWhvF,YAIzBlkF,QAAO,SAACgkF,GAAD,OAASA,KAEb+kK,EAAYD,EAAU9oP,QAC1B,SAACgpP,GAAD,OAgBgB,IAfdN,EAAU1oP,QAAO,SAACipP,GAEhB,IAAU,OAAND,QAAM,IAANA,OAAA,EAAAA,EAAQpjR,OAAQqjR,EAAWrjR,IAAK,OAAO,EAC3C,IAAMsjR,EAAkBxpP,KAAKnhB,MAAL,OAAWyqQ,QAAX,IAAWA,OAAX,EAAWA,EAAQ/kK,WACrCklK,EAAgBzpP,KAAKnhB,MAAL,OAAWyqQ,QAAX,IAAWA,OAAX,EAAWA,EAAQ9kK,SACnCklK,EAAsB1pP,KAAKnhB,MAAM0qQ,EAAWhlK,WAC5ColK,EAAoB3pP,KAAKnhB,MAAM0qQ,EAAW/kK,SAChD,OACEglK,IAAoBE,GACpBD,IAAkBE,GACjBH,GAAmBG,GAClBH,GAAmBE,GACpBD,GAAiBE,GAChBF,GAAiBC,KAEpB18P,UAEHq8P,EAAUr8P,OAAS,GACjBo8P,EAAUp8P,SAAWq8P,EAAUr8P,QACjCnZ,iCAAsC,CACpC9N,MAAO,CACL+U,aAAcrN,EAAK0E,cACjB,CAAEC,GAAI,qCACN,CACEw3Q,UAAWR,EAAUp8P,OAASq8P,EAAUr8P,OACxC68P,UAAWT,EAAUp8P,YAM/Bi8P,EAAa,GAAD,mBAAKD,GAAL,YAAmBK,KAC/BN,EAAoB,KAEK,IAArBK,EAAUp8P,OACZnZ,iCAAsC,CACpC9N,MAAO,CACL+U,aAAcrN,EAAK0E,cAAc,CAAEC,GAAI,kCAI3CyB,iCAAsC,CACpC9N,MAAO,CACL+U,aAAcrN,EAAK0E,cAAc,CAC/BC,GAAI,6CAOc,MAAxBohM,GAAWjvF,UACb1wG,iCAAsC,CACpC9N,MAAO,CACL+U,aAAcrN,EAAK0E,cAAc,CAAEC,GAAI,uCAGZ,MAAtBohM,GAAWhvF,QACpB3wG,iCAAsC,CACpC9N,MAAO,CACL+U,aAAcrN,EAAK0E,cAAc,CAAEC,GAAI,qCAI3CyB,iCAAsC,CACpC9N,MAAO,CACL+U,aAAcrN,EAAK0E,cAAc,CAAEC,GAAI,oCA5FnD,SAmGE,cAAC,IAAD,CAAkBA,GAAG,uBAK7B,uBAEA,cAAC,IAAD,CACE4/I,QAAS,CACP,cAAC,IAAD,CACE1hB,eAAgB,iBAChBzzH,WAAYisQ,EAAc97P,OAAS,EACnCqjH,YAAa,WACX44I,EACED,EAAU1oP,QACR,SAACwpP,GAAD,OACGhB,EAAc1oQ,MACb,SAACu8L,GAAD,OACEA,EAAQr4F,MAAQwlK,EAASxlK,KACzBq4F,EAAQp4F,UAAUtkF,WAAa6pP,EAASvlK,UAAUtkF,WAClD08K,EAAQn4F,QAAQvkF,WAAa6pP,EAAStlK,QAAQvkF,uBAQhE,uBAEA,cAAC,IAAD,UACE,qCACE,cAAC,IAAD,CACE7tB,GAAI,qCACJg5F,QAASg/H,EACTl6N,KAAMy1M,IAAQqjE,EAAW,CAAC,MAAO,cACjC9qG,eAAgB6qG,EAChBpkP,SAAUmkP,EACVnqG,wBAAwB,EACxBqF,eAAe,EACf5F,cAAc,EACdb,mBAAmB,EACnBQ,WAAY,SAAC3yE,GACa,MAApBA,EAAQ2+K,UAAuC,MAAnB3+K,EAAQoZ,SACtCykK,EAAa,IAEfA,EACED,EAAUhjQ,KAAI,SAACs+F,GACb,GACElZ,EAAQmZ,WACRnZ,EAAQoZ,SACRF,EAAIp+G,MAAQklG,EAAQllG,KACpBo+G,EAAIA,MAAQlZ,EAAQkZ,IACpB,CACA,IAAIooC,EAAS,EACb,IAAK,IAAI68H,KAAcP,EAAW,CAAC,IAAD,gBAE9BA,EAAUO,GAAYrjR,MAAQo+G,EAAIp+G,KAClC,oBAAG8iR,EAAUO,GAAYhlK,iBAAzB,aAAG,EAAiCzT,WAApC,sBAAkDk4K,EAChDO,GACAhlK,iBAFF,aAAkD,EAErCxT,gBAFb,oBAGK3F,EAAQmZ,iBAHb,aAGK,EAAmBzT,WAHxB,sBAGsC1F,EAAQmZ,iBAH9C,aAGsC,EAAmBxT,eACzD,oBAAGi4K,EAAUO,GAAY/kK,eAAzB,aAAG,EAA+B1T,WAAlC,sBAAgDk4K,EAC9CO,GACA/kK,eAFF,aAAgD,EAErCzT,gBAFX,oBAGK3F,EAAQoZ,eAHb,aAGK,EAAiB1T,WAHtB,sBAGoC1F,EAAQoZ,eAH5C,aAGoC,EAAiBzT,eAErD27C,IAGJ,GAAIthD,EAAQoZ,QAAQvkF,UAAYmrE,EAAQmZ,UAAUtkF,WAAwB,IAAXysH,EAC7D,OAAO,2BACFpoC,GADL,IAEEC,UAAWnZ,EAAQmZ,UACnBC,QAASpZ,EAAQoZ,UAIvB,OAAO,2BAAKF,GAAZ,IAAiBC,UAAWD,EAAIC,UAAWC,QAASF,EAAIE,iBAKhE,uBACA,4BAIJ,cAAC,IAAD,CAAKwC,UAAW,oBAAhB,SACE,eAAC,IAAD,CAAK+0D,GAAG,KAAR,UACE,cAAC,IAAOnrC,OAAR,CACE5pB,UAAU,mBACV9oG,MAAM,UAEN2yH,QAASolE,GAAa,SAAC90K,GACrBqwO,GAAkB,GAjeZ,SAACrwO,GAAY,IAAD,QACxBgoP,EAAiB,GACrBH,EAAU72P,SAAQ,SAACmyF,EAAKp7F,GACO,kBAAlBo7F,EAAIC,UACb4kK,GAAc,UAAOjgQ,EAAQ,EAAf,aACVo7F,EAAIp+G,IAAM,GAAK,EAAK,EADV,YAEVo+G,EAAIC,UAAUzT,WAFJ,YAEkBwT,EAAIC,UAAUxT,aAFhC,YAEgDuT,EAAIE,QAAQ1T,WAF5D,YAE0EwT,EAAIE,QAAQzT,aAFtF,KAIdo4K,GAAc,UAAOjgQ,EAAQ,EAAf,aAAsBo7F,EAAIp+G,IAAM,GAAK,EAAK,EAA1C,YAA+Co+G,EAAIC,UAAnD,YACZD,EAAIE,QADQ,QAKlB,IAAM8oC,EAAY,2BACbnsH,GADa,IAEhBgoP,eAAgBA,EAAe1hL,MAAM,GAAI,GACzCsc,aAAc,EACditI,cAAe,EACfP,kBAAmB,EACnB51N,UAAW0wE,WAASxrE,MACpBwkF,UAAWhZ,WAASxrE,MACpBjF,QAASywE,WAASg8K,MAAM,KAAM,EAAG,GACjC/iK,QAASjZ,WAASg8K,MAAM,KAAM,EAAG,GACjCh+Q,WAAU,UAAE43B,EAAO77B,kBAAT,aAAE,EAAmBiE,WAC/Bb,eAAc,UAAEy4B,EAAO77B,kBAAT,aAAE,EAAmBoD,eACnCE,WAAU,UAAEu4B,EAAO77B,kBAAT,aAAE,EAAmBsD,WAC/BE,cAAa,UAAEq4B,EAAO77B,kBAAT,aAAE,EAAmBwD,gBAGlC0jB,EADEyzK,EAEA+pF,IAAA,2BACK18H,GADL,IAEE7vH,WAAYs+K,iBAKdiuE,IACEhoK,IAAK,2BAEEsrC,GAFH,IAGA7vH,WAAYyrP,GAAgBzrP,aAE9B,CAAC,SAAU,UAAW,YAAa,WAAY,SAAU,WAAY,aAubnEwsP,CAAU9oP,GACV0/I,IACAooG,EAAa,OARjB,SAWE,cAAC,IAAD,CAAkB72Q,GAAG,kBAEvB,cAAC,IAAOw+H,OAAR,CACE5pB,UAAU,cACV9oG,MAAM,QACN2yH,QAAS,WACP2gI,IACA3wF,IACAooG,EAAa,KANjB,SASE,cAAC,IAAD,CAAkB72Q,GAAG,gC,0QCvkB3B83Q,EAAmB,SAACz8Q,GAAD,OACvB,YAAIiX,MAAM,GAAGizG,QAAQ3xG,KAAI,SAAC5T,GAAD,MAAS,CAChCA,GAAIA,EACJuI,MAAOvI,EACPm0G,MAAO94G,EAAK0E,cAAc,CAAEC,GAAG,yBAAD,OAA2BA,UAGvD+3Q,EAAe,SAAC18Q,GAAD,MACnB,CAAC,EAAG,EAAG,IAAIuY,KAAI,SAAC5T,EAAI8oB,GAAL,MAAY,CACzB9oB,GAAIA,EACJuI,MAAOvI,EACPm0G,MAAO94G,EAAK0E,cAAc,CAAEC,GAAG,sBAAD,OAAwB8oB,UAGpDkvP,EAAmB,SAAC38Q,GAAD,MACvB,CAAC,EAAG,EAAG,EAAG,EAAG,IAAIuY,KAAI,SAAC5T,EAAI8oB,GAAL,MAAY,CAC/B9oB,GAAIA,EACJuI,MAAOvI,EACPm0G,MAAO94G,EAAK0E,cAAc,CAAEC,GAAG,0BAAD,OAA4B8oB,UAGxDmvP,EAAkB,SAAC58Q,GAAD,OACtB,YAAIiX,MAAM,GAAGizG,QAAQ3xG,KAAI,SAAC5T,GAAD,MAAS,CAChCA,GAAIA,EACJuI,MAAOvI,EACPm0G,MAAO94G,EAAK0E,cAAc,CAAEC,GAAG,gBAAD,OAAkBA,UAG9Ck4Q,EAAqB,SAACnpP,GAC1B,IAAIjnB,EAAS,EAQb,OAPIinB,EAAOsmP,SAAQvtQ,GAAU,GACzBinB,EAAOwmP,SAAQztQ,GAAU,GACzBinB,EAAOymP,UAAS1tQ,GAAU,GAC1BinB,EAAO0mP,YAAW3tQ,GAAU,GAC5BinB,EAAO2mP,WAAU5tQ,GAAU,IAC3BinB,EAAO4mP,SAAQ7tQ,GAAU,IACzBinB,EAAO6mP,WAAU9tQ,GAAU,IACxBA,GAuqBMgtQ,iBACb,SAACljR,GACC,IAAMqtQ,EAAmBvzO,sBAAsC95B,GAC/D,MAAO,CACLu5Q,cAAelM,EACX,CACE5zO,WAAY4zO,EAAiB5zO,WAC7BE,aAAc0zO,EAAiB1zO,aAC/B4sP,oBAAqBlZ,EAAiB9tJ,YACtCQ,aAAiD,IAAnCstJ,EAAiBrgB,cAAsB,EAAI,EACzDA,cACqC,KAAnCqgB,EAAiBrgB,cAAuB,GAAKqgB,EAAiBrgB,cAChE1rP,WAAY,CACVoD,eAAgB2oQ,EAAiB3oQ,eACjCE,WAAYyoQ,EAAiBzoQ,WAC7BE,cAAeuoQ,EAAiBvoQ,eAElCs+Q,YACE77K,WAASC,QAAQ6lK,EAAiBx2O,WAC/BwsP,KAAK,CACJhxK,KAAMg7J,EAAiB9sJ,UAAU1c,MACjC+sE,OAAQy8F,EAAiB9sJ,UAAUzc,UAEpCxhF,WACAmhF,MAAM,GAAI,GAAK,QACpB6/K,YAAa/7K,WAASg8K,MACpB,IACA,EACA,EACAlW,EAAiB9sJ,UAAU1c,MAC3BwpK,EAAiB9sJ,UAAUzc,SAC3B2D,SAAS,SACX+7K,gBAAiB,CAACnW,EAAiBx2O,UAAWw2O,EAAiBv2O,SAC/D2sP,OACqC,IAAnCpW,EAAiBrgB,eACb02B,IAAiBrW,EAAiB5gB,kBAAmB,GAE3Dk3B,OACqC,IAAnCtW,EAAiBrgB,eACb02B,IAAiBrW,EAAiB5gB,kBAAmB,GAE3Dm3B,QACqC,IAAnCvW,EAAiBrgB,eACb02B,IAAiBrW,EAAiB5gB,kBAAmB,GAE3Do3B,UACqC,IAAnCxW,EAAiBrgB,eACb02B,IAAiBrW,EAAiB5gB,kBAAmB,GAE3Dq3B,SACqC,IAAnCzW,EAAiBrgB,eACb02B,IAAiBrW,EAAiB5gB,kBAAmB,GAE3Ds3B,OACqC,IAAnC1W,EAAiBrgB,eACb02B,IAAiBrW,EAAiB5gB,kBAAmB,GAE3Du3B,SACqC,IAAnC3W,EAAiBrgB,eACb02B,IAAiBrW,EAAiB5gB,kBAAmB,GAE3Dw3B,WAAY5W,EAAiB5gB,kBAC7B43B,uBACqC,IAAnChX,EAAiBrgB,cAAsBqgB,EAAiB5gB,kBAAoB,EAC9E63B,wBACqC,IAAnCjX,EAAiBrgB,cAAsBqgB,EAAiBzgB,0BAA4B,EACtF45B,yBAA0B,CAAC,GAAI,IAAIhhR,SAAS6nQ,EAAiBrgB,eACzDqgB,EAAiBzgB,0BACjB,EACJ23B,kBAAsD,KAAnClX,EAAiBrgB,cACpCw3B,cAAenX,EAAiBtgB,0BAChC03B,aAAcpX,EAAiB5gB,kBAAoB,EACnDg6B,WAAWpZ,EAAiBv2O,SACmB,eAA3Cu2O,EAAiBv2O,QAAQ0uE,OAAO,EAAG,KAMzC,CACEwnJ,cAAe,EACfP,kBAAmB,EACnBi4B,iBAAkB,EAClBF,cAAe,EACfC,aAAc,EACdJ,uBAAwB,EACxBC,wBAAyB,EACzBkC,yBAA0B,EAC1BvC,WAAY,WAItB31Q,GACA,SAACq2Q,EAAYC,EAAeC,GAA5B,mBAAC,eACIF,GACAE,KA/FQ3B,EApqBM,SAAC7sQ,GACpB,IAAQo3P,EAAwDp3P,EAAxDo3P,kBAAmBD,EAAqCn3P,EAArCm3P,kBAAmB+L,EAAkBljQ,EAAlBkjQ,cACxC/wP,EAAWipI,cACXhoJ,EAAOG,cACb,EAA0DooM,cAAlD5rF,EAAR,EAAQA,QAAS6rF,EAAjB,EAAiBA,aAAcC,EAA/B,EAA+BA,MAAOr1B,EAAtC,EAAsCA,MAAO00E,EAA7C,EAA6CA,SACvCt1D,GAAQ9vD,YAAYryG,uBAEpB01K,EAAa0C,IACbw0E,EAAoB,OAAGl3E,QAAH,IAAGA,OAAH,EAAGA,EAAYzvF,aACnC4mK,EAAiB,OAAGn3E,QAAH,IAAGA,OAAH,EAAGA,EAAYw9C,cAChCu3B,EAAiB,OAAG/0E,QAAH,IAAGA,OAAH,EAAGA,EAAY+0E,kBAChCZ,EAAM,OAAGn0E,QAAH,IAAGA,OAAH,EAAGA,EAAYm0E,OACrBC,EAAO,OAAGp0E,QAAH,IAAGA,OAAH,EAAGA,EAAYo0E,QACtBC,EAAS,OAAGr0E,QAAH,IAAGA,OAAH,EAAGA,EAAYq0E,UACxBC,EAAQ,OAAGt0E,QAAH,IAAGA,OAAH,EAAGA,EAAYs0E,SACvBC,EAAM,OAAGv0E,QAAH,IAAGA,OAAH,EAAGA,EAAYu0E,OACrBC,EAAQ,OAAGx0E,QAAH,IAAGA,OAAH,EAAGA,EAAYw0E,SACvBP,EAAM,OAAGj0E,QAAH,IAAGA,OAAH,EAAGA,EAAYi0E,OAqH3B,OACE,eAAC,IAAD,CACEzgK,UAAU,sBACV+vF,iBAAiB,8BACjB5lE,OAAQsgI,EACRn4P,MAAK,OAAE7L,QAAF,IAAEA,OAAF,EAAEA,EAAM0E,cAAc,CACzBC,GAAI6tL,EAAQ,uBAAyB,0BAEvCtmL,MAAO,QACPq9L,eAAgB,WACdn2B,IACA2wF,KAVJ,UAaE,eAAC,IAAD,WACE,cAAC,IAAD,CAAKz1F,GAAG,KAAR,SACE,cAAC,IAAD,CACE3xD,QAASA,EACT/3G,KAAK,eACL87K,kBAAgB,EAChBK,aAAY,OAAE+uF,QAAF,IAAEA,OAAF,EAAEA,EAAe5/O,aAC7BivE,MAAO,CAAEQ,UAAU,GACnB2iF,OAAQ,gBAAGrnE,EAAH,EAAGA,MAAOimE,EAAV,EAAUA,WAAV,OACN,cAAC,IAAD,CACEjmE,MAAOA,EACPC,WAAYgmE,EACZv8K,GAAI,oBACJg7F,UAAU,EACVmZ,MAAO,cAAC,IAAD,CAAkBn0G,GAAG,0BAKpC,cAAC,IAAD,CAAK2pK,GAAG,KAAR,SACE,cAAC,IAAD,CACE3xD,QAASA,EACT/3G,KAAK,sBACL87K,kBAAgB,EAChBK,aAAY,OAAE+uF,QAAF,IAAEA,OAAF,EAAEA,EAAegN,oBAC7B39K,MAAO,CAAEQ,UAAU,GACnB2iF,OAAQ,gBAAGrnE,EAAH,EAAGA,MAAOimE,EAAV,EAAUA,WAAV,OACN,cAAC,IAAD,CACEjmE,MAAOA,EACPC,WAAYgmE,EACZv8K,GAAI,2BACJg7F,UAAU,EACVmZ,MAAO,cAAC,IAAD,CAAkBn0G,GAAG,iCAKpC,cAAC,IAAD,CACEC,KAAK,aACL87K,kBAAgB,EAChB/jE,QAASA,EACTokE,aAAY,OAAE+uF,QAAF,IAAEA,OAAF,EAAEA,EAAej4Q,WAC7BujH,QAAS,CACPga,aAAa,EACbkqD,qBAAqB,EACrBE,iBAAiB,EACjBC,oBAAoB,EACpBG,qBAAqB,EACrBE,iBAAiB,EACjBC,oBAAoB,EACpBb,iBAAiB,EACjBC,oBAAoB,EACpBL,QAAS,IAEXzjE,WAAW,IAKb,cAAC,IAAD,CAAKizD,GAAG,KAAR,SACE,cAAC,IAAD,CACE3xD,QAASA,EACT/3G,KAAK,eACL87K,kBAAgB,EAChBK,aAAY,OAAE+uF,QAAF,IAAEA,OAAF,EAAEA,EAAex5J,aAC7BnX,MAAO,CAAEQ,UAAU,GACnB2iF,OAAQ,gBAAGrnE,EAAH,EAAGA,MAAOimE,EAAV,EAAUA,WAAV,OACN,cAAC,IAAD,CACEjmE,MAAOA,EACPC,WAAYgmE,EACZv8K,GAAI,oBACJm0G,MAAO,cAAC,IAAD,CAAkBn0G,GAAG,6BAC5BlO,KAAM,SACN2kH,QAASqhK,EAAiBz8Q,GAC1Bq7G,WAAW,EACXG,2BAA4B,SAAC9nF,GACZ,IAAXA,GAAco0N,EAAS,gBAAiB,GAC7B,IAAXp0N,GAAco0N,EAAS,gBAAiB,IAE9CnoJ,UAAU,YAMpB,eAAC,IAAD,WAC4B,IAAzBs9K,GACC,cAAC,IAAD,CAAK3uG,GAAG,KAAR,SACE,cAAC,IAAD,CACE3xD,QAASA,EACT/3G,KAAK,cACL87K,kBAAgB,EAChBK,aAAY,OAAE+uF,QAAF,IAAEA,OAAF,EAAEA,EAAe6J,YAC7Bx6K,MAAO,CAAEQ,UAAU,GACnB2iF,OAAQ,gBAAGrnE,EAAH,EAAGA,MAAOimE,EAAV,EAAUA,WAAV,OACN,cAAC,IAAD,CACEjmE,MAAOA,EACPC,WAAYgmE,EACZpoE,MAAO,cAAC,IAAD,CAAkBn0G,GAAG,0BAC5Bg7F,UAAU,EACV+tE,YAAY,EACZvxD,SAAU,SAACzoF,GACTo0N,EAAS,YAAahqJ,WAASxrE,IAAIoB,GAAQypP,aAC3Cr1B,EAAS,YAAahqJ,WAASxrE,IAAIoB,GAAQ0pP,qBAQ7B,IAAzBH,GACC,qCACE,cAAC,IAAD,CAAK3uG,GAAG,IAAR,SACE,cAAC,IAAD,CACE3xD,QAASA,EACT/3G,KAAK,gBACL87K,kBAAgB,EAChBK,aAAY,OAAE+uF,QAAF,IAAEA,OAAF,EAAEA,EAAevsB,cAC7BpkJ,MAAO,CAAEQ,UAAU,GACnB2iF,OAAQ,gBAAGrnE,EAAH,EAAGA,MAAOimE,EAAV,EAAUA,WAAV,OACN,cAAC,IAAD,CACEjmE,MAAOA,EACPC,WAAYgmE,EACZv8K,GAAI,iBACJm0G,MAAO,cAAC,IAAD,CAAkBn0G,GAAG,wBAC5By2G,QAASshK,EAAa18Q,GACtBq7G,WAAW,EACX1b,UAAU,SAKK,IAAtBu9K,GACC,cAAC,IAAD,CAAK5uG,GAAG,IAAR,SACE,cAAC,IAAD,CACE3xD,QAASA,EACT/3G,KAAK,yBACL87K,kBAAgB,EAChBK,aAAY,OAAE+uF,QAAF,IAAEA,OAAF,EAAEA,EAAe8K,uBAC7Bz7K,MAAO,CAAEQ,UAAU,GACnB2iF,OAAQ,gBAAGrnE,EAAH,EAAGA,MAAOimE,EAAV,EAAUA,WAAV,OACN,cAAC,IAAD,CACEjmE,MAAOA,EACPC,WAAYgmE,EACZv8K,GAAI,8BACJm0G,MAAO,cAAC,IAAD,CAAkBn0G,GAAG,qCAC5Bg7F,UAAU,EACVgnB,IAAK,EACLC,IAAK,UAMQ,IAAtBs2J,GACC,cAAC,IAAD,CAAK5uG,GAAG,IAAR,SACE,cAAC,IAAD,CACE3xD,QAASA,EACT/3G,KAAK,0BACL87K,kBAAgB,EAChBK,aAAY,OAAE+uF,QAAF,IAAEA,OAAF,EAAEA,EAAe+K,wBAC7B17K,MAAO,CAAEQ,UAAU,GACnB2iF,OAAQ,gBAAGrnE,EAAH,EAAGA,MAAOimE,EAAV,EAAUA,WAAV,OACN,cAAC,IAAD,CACEjmE,MAAOA,EACPC,WAAYgmE,EACZv8K,GAAI,+BACJm0G,MAAO,cAAC,IAAD,CAAkBn0G,GAAG,sCAC5Bg7F,UAAU,EACVgnB,IAAK,EACLC,IAAK,SAMQ,KAAtBs2J,GACC,mCACE,cAAC,IAAD,CAAK5uG,GAAG,IAAR,SACE,cAAC,IAAD,CACE3xD,QAASA,EACT/3G,KAAK,oBACL87K,kBAAgB,EAChBK,aAAY,OAAE+uF,QAAF,IAAEA,OAAF,EAAEA,EAAegL,kBAC7Bx4F,OAAQ,gBAAGrnE,EAAH,EAAGA,MAAH,OACN,cAAC,IAAD,CACEA,MAAOA,EACPnC,MAAO,cAAC,IAAD,CAAkBn0G,GAAG,yCAQxC,cAAC,IAAD,CAAK2pK,GAAG,KAAR,SACE,cAAC,IAAD,CACE3xD,QAASA,EACT/3G,KAAK,cACL87K,kBAAgB,EAChBK,aAAY,OAAE+uF,QAAF,IAAEA,OAAF,EAAEA,EAAe+J,YAC7B16K,MAAO,CAAEQ,UAAU,GACnB2iF,OAAQ,gBAAGrnE,EAAH,EAAGA,MAAOimE,EAAV,EAAUA,WAAV,OACN,cAAC,IAAD,CACEjmE,MAAOA,EACPC,WAAYgmE,EACZpoE,MAAO,cAAC,IAAD,CAAkBn0G,GAAG,0BAC5Bg7F,UAAU,EACVguE,YAAassG,IAAA,OAA8BnK,QAA9B,IAA8BA,OAA9B,EAA8BA,EAAe+J,aAC1DjsG,cAAeqsG,IAAA,OAAiCnK,QAAjC,IAAiCA,OAAjC,EAAiCA,EAAe+J,oBAKhD,IAAtBqD,GACC,qCACE,cAAC,IAAD,CAAK5uG,GAAG,IAAR,SACE,cAAC,IAAD,CACE3xD,QAASA,EACT/3G,KAAK,SACL87K,kBAAgB,EAChBK,aAAY,OAAE+uF,QAAF,IAAEA,OAAF,EAAEA,EAAeoK,OAC7B53F,OAAQ,gBAAGrnE,EAAH,EAAGA,MAAH,OACN,cAAC,IAAD,CACEA,MAAOA,EACPnC,MAAO,cAAC,IAAD,CAAkBn0G,GAAG,4BAKpC,cAAC,IAAD,CAAK2pK,GAAG,IAAR,SACE,cAAC,IAAD,CACE3xD,QAASA,EACT/3G,KAAK,UACL87K,kBAAgB,EAChBK,aAAY,OAAE+uF,QAAF,IAAEA,OAAF,EAAEA,EAAeqK,QAC7B73F,OAAQ,gBAAGrnE,EAAH,EAAGA,MAAH,OACN,cAAC,IAAD,CACEA,MAAOA,EACPnC,MAAO,cAAC,IAAD,CAAkBn0G,GAAG,6BAKpC,cAAC,IAAD,CAAK2pK,GAAG,IAAR,SACE,cAAC,IAAD,CACE3xD,QAASA,EACT/3G,KAAK,YACL87K,kBAAgB,EAChBK,aAAY,OAAE+uF,QAAF,IAAEA,OAAF,EAAEA,EAAesK,UAC7B93F,OAAQ,gBAAGrnE,EAAH,EAAGA,MAAH,OACN,cAAC,IAAD,CACEA,MAAOA,EACPnC,MAAO,cAAC,IAAD,CAAkBn0G,GAAG,+BAKpC,cAAC,IAAD,CAAK2pK,GAAG,IAAR,SACE,cAAC,IAAD,CACE3xD,QAASA,EACT/3G,KAAK,WACL87K,kBAAgB,EAChBK,aAAY,OAAE+uF,QAAF,IAAEA,OAAF,EAAEA,EAAeuK,SAC7B/3F,OAAQ,gBAAGrnE,EAAH,EAAGA,MAAH,OACN,cAAC,IAAD,CACEA,MAAOA,EACPnC,MAAO,cAAC,IAAD,CAAkBn0G,GAAG,8BAKpC,cAAC,IAAD,CAAK2pK,GAAG,IAAR,SACE,cAAC,IAAD,CACE3xD,QAASA,EACT/3G,KAAK,SACL87K,kBAAgB,EAChBK,aAAY,OAAE+uF,QAAF,IAAEA,OAAF,EAAEA,EAAewK,OAC7Bh4F,OAAQ,gBAAGrnE,EAAH,EAAGA,MAAH,OACN,cAAC,IAAD,CACEA,MAAOA,EACPnC,MAAO,cAAC,IAAD,CAAkBn0G,GAAG,4BAKpC,cAAC,IAAD,CAAK2pK,GAAG,IAAR,SACE,cAAC,IAAD,CACE3xD,QAASA,EACT/3G,KAAK,WACL87K,kBAAgB,EAChBK,aAAY,OAAE+uF,QAAF,IAAEA,OAAF,EAAEA,EAAeyK,SAC7Bj4F,OAAQ,gBAAGrnE,EAAH,EAAGA,MAAH,OACN,cAAC,IAAD,CACEA,MAAOA,EACPnC,MAAO,cAAC,IAAD,CAAkBn0G,GAAG,8BAKpC,cAAC,IAAD,CAAK2pK,GAAG,IAAR,SACE,cAAC,IAAD,CACE3xD,QAASA,EACT/3G,KAAK,SACL87K,kBAAgB,EAChBK,aAAY,OAAE+uF,QAAF,IAAEA,OAAF,EAAEA,EAAekK,OAC7B13F,OAAQ,gBAAGrnE,EAAH,EAAGA,MAAH,OACN,cAAC,IAAD,CACEA,MAAOA,EACPnC,MAAO,cAAC,IAAD,CAAkBn0G,GAAG,8BAKjCu1Q,GAAUC,GAAWC,GAAaC,GAAYC,GAAUC,GAAYP,IACrE,qCACE,qBAAKzgK,UAAU,mBAAmBH,MAAO,CAAEC,QAAS,SAApD,gBACGr5G,QADH,IACGA,OADH,EACGA,EAAM0E,cAAc,CAAEC,GAAI,yCAE7B,8BAKNm2Q,GAA2C,KAAtBoC,GACrB,cAAC,IAAD,CAAK5uG,GAAG,IAAR,SACE,cAAC,IAAD,CACE3xD,QAASA,EACT/3G,KAAK,aACL87K,kBAAgB,EAChBK,aAAY,OAAE+uF,QAAF,IAAEA,OAAF,EAAEA,EAAe0K,WAC7Br7K,MAAO,CAAEQ,UAAU,GACnB2iF,OAAQ,gBAAGrnE,EAAH,EAAGA,MAAOimE,EAAV,EAAUA,WAAV,OACN,cAAC,IAAD,CACEjmE,MAAOA,EACPC,WAAYgmE,EACZv8K,GAAI,kBACJm0G,MAAO,cAAC,IAAD,CAAkBn0G,GAAG,yBAC5Bg7F,UAAU,EACVgnB,IAAK,EACLC,IAAK,WAMbk0J,GAA2C,KAAtBoC,GACrB,cAAC,IAAD,CAAK5uG,GAAG,IAAR,SACE,cAAC,IAAD,CACE3xD,QAASA,EACT/3G,KAAK,2BACL87K,kBAAgB,EAChBK,aAAY,OAAE+uF,QAAF,IAAEA,OAAF,EAAEA,EAAeiN,yBAC7B59K,MAAO,CAAEQ,UAAU,GACnB2iF,OAAQ,gBAAGrnE,EAAH,EAAGA,MAAOimE,EAAV,EAAUA,WAAV,OACN,cAAC,IAAD,CACEjmE,MAAOA,EACPC,WAAYgmE,EACZv8K,GAAI,gCACJm0G,MAAO,cAAC,IAAD,CAAkBn0G,GAAG,uCAC5Bg7F,UAAU,EACVgnB,IAAK,EACLC,IAAK,UAMdk0J,GAA2C,KAAtBoC,GACpB,cAAC,IAAD,CAAK5uG,GAAG,IAAR,SACE,cAAC,IAAD,CACE3xD,QAASA,EACT/3G,KAAK,gBACL87K,kBAAgB,EAChBK,aAAY,OAAE+uF,QAAF,IAAEA,OAAF,EAAEA,EAAeiL,cAC7B57K,MAAO,CAAEQ,UAAU,GACnB2iF,OAAQ,gBAAGrnE,EAAH,EAAGA,MAAOimE,EAAV,EAAUA,WAAV,OACN,mCACE,cAAC,IAAD,CACEjmE,MAAOA,EACPC,WAAYgmE,EACZv8K,GAAI,sBACJm0G,MAAO,cAAC,IAAD,CAAkBn0G,GAAG,uBAC5By2G,QAASuhK,EAAiB38Q,GAC1Bq7G,WAAW,EACX1b,UAAU,WAOrBm7K,GAA2C,KAAtBoC,GACpB,cAAC,IAAD,CAAK5uG,GAAG,IAAR,SACE,cAAC,IAAD,CACE3xD,QAASA,EACT/3G,KAAK,eACL87K,kBAAgB,EAChBK,aAAY,OAAE+uF,QAAF,IAAEA,OAAF,EAAEA,EAAekL,aAC7B77K,MAAO,CAAEQ,UAAU,GACnB2iF,OAAQ,gBAAGrnE,EAAH,EAAGA,MAAOimE,EAAV,EAAUA,WAAV,OACN,cAAC,IAAD,CACEjmE,MAAOA,EACPC,WAAYgmE,EACZv8K,GAAI,oBACJm0G,MAAO,cAAC,IAAD,CAAkBn0G,GAAG,kBAC5By2G,QAASwhK,EAAgB58Q,GACzBq7G,WAAW,EACX1b,UAAU,SAMnBm7K,GAA2C,KAAtBoC,GACpB,cAAC,IAAD,CAAK5uG,GAAG,IAAR,SACE,cAAC,IAAD,CACE3xD,QAASA,EACT/3G,KAAK,2BACL87K,kBAAgB,EAChBK,aAAY,OAAE+uF,QAAF,IAAEA,OAAF,EAAEA,EAAeiN,yBAC7B59K,MAAO,CAAEQ,UAAU,GACnB2iF,OAAQ,gBAAGrnE,EAAH,EAAGA,MAAOimE,EAAV,EAAUA,WAAV,OACN,cAAC,IAAD,CACEjmE,MAAOA,EACPC,WAAYgmE,EACZv8K,GAAI,gCACJm0G,MAAO,cAAC,IAAD,CAAkBn0G,GAAG,uCAC5Bg7F,UAAU,EACVgnB,IAAK,EACLC,IAAK,UAMf,cAAC,IAAD,CAAK0nD,GAAG,KAAR,SACE,cAAC,IAAD,CACE3xD,QAASA,EACT/3G,KAAK,kBACL87K,kBAAgB,EAChBK,aAAY,OAAE+uF,QAAF,IAAEA,OAAF,EAAEA,EAAeiK,gBAC7B56K,MAAO,CAAEQ,UAAU,GACnB2iF,OAAQ,gBAAGrnE,EAAH,EAAGA,MAAOimE,EAAV,EAAUA,WAAV,OACN,cAAC,IAAD,CACEjmE,MAAOA,EACPC,WAAYgmE,EACZzT,UAAU,EACV30D,MAAO,cAAC,IAAD,CAAkBn0G,GAAG,8BAC5B6oK,SAAS,EACT7tE,UAAU,SAKlB,cAAC,IAAD,CAAK2uE,GAAG,KAAR,SACE,cAAC,IAAD,CACE3xD,QAASA,EACT/3G,KAAK,YACL87K,kBAAgB,EAChBK,aAAY,OAAE+uF,QAAF,IAAEA,OAAF,EAAEA,EAAekN,UAC7B16F,OAAQ,gBAAGrnE,EAAH,EAAGA,MAAH,OACN,cAAC,IAAD,CACEA,MAAOA,EACPnC,MAAO,cAAC,IAAD,CAAkBn0G,GAAG,qCAQ1C,gCACE,uBACA,uBACA,uBACA,uBACA,uBACA,uBACA,uBACA,uBACA,0BAEF,cAAC,IAAD,CAAK40G,UAAW,oBAAhB,SACE,eAAC,IAAD,CAAK+0D,GAAG,KAAR,UACE,cAAC,IAAOnrC,OAAR,CACE5pB,UAAU,mBACV9oG,MAAM,UAEN2yH,QAASolE,GAAa,SAAC90K,IAEK,IAAxBA,EAAO4iF,cACkB,IAAzB5iF,EAAO6vN,eAEL7vN,EAAOwmP,QACPxmP,EAAOymP,SACPzmP,EAAO0mP,WACP1mP,EAAO2mP,UACP3mP,EAAO4mP,QACP5mP,EAAO6mP,UACP7mP,EAAOsmP,WAtnBH,SAACtmP,GAAY,IAAD,oBAM1B2pP,EAAgB,2BAEf3pP,GAFe,IAGlBmmP,YAC0B,IAAxBnmP,EAAO4iF,aAC2B,kBAAvB5iF,EAAOmmP,YACZnmP,EAAOmmP,YADT,qBAEgBnmP,EAAOmmP,YAAY99K,OAAO,EAAG,GAF7C,YAEmDroE,EAAOmmP,YAAY99K,OAClE,EACA,GAJJ,qBAMAl3F,EACNk1Q,gBAC0B,IAAxBrmP,EAAO4iF,aACH,CACE5iF,EAAOqmP,gBAAgB,GAAG99K,QAAQ,IAAK,KACvCvoE,EAAOqmP,gBAAgB,GAAG99K,QAAQ,IAAK,WAEzCp3F,IAGRw4Q,EAAgB,2BAEXA,GAFW,IAGdvhR,WAAU,UAAE43B,EAAO77B,kBAAT,aAAE,EAAmBiE,WAC/Bb,eAAc,UAAEy4B,EAAO77B,kBAAT,aAAE,EAAmBoD,eACnCE,WAAU,UAAEu4B,EAAO77B,kBAAT,aAAE,EAAmBsD,WAC/BE,cAAa,UAAEq4B,EAAO77B,kBAAT,aAAE,EAAmBwD,cAClC20B,WAAYwiK,EAAQ8b,cAAWwhE,EAAc9/O,WAC7C5C,UAC0B,IAAxBsG,EAAO4iF,aACH5iF,EAAOqmP,gBAAgB,GAAGh+K,OAAO,EAAG,IADxC,UAEO,IAAIxpE,KAAKmB,EAAOimP,aAAaz8K,cAFpC,YAGM,IAAI3qE,KAAKmB,EAAOimP,aAAax8K,WAAa,EAHhD,YAIQ,IAAI5qE,KAAKmB,EAAOimP,aAAa38K,WACvC3vE,QAC0B,IAAxBqG,EAAO4iF,aACH5iF,EAAOtG,UACiB,IAAxBsG,EAAO4iF,cAAsB5iF,EAAOspP,UACpC,aADA,OAEAtpP,QAFA,IAEAA,OAFA,EAEAA,EAAQqmP,gBAAgB,GAC9BjjK,UAC0B,IAAxBpjF,EAAO4iF,aACHk8E,EACE9+J,EAAOmmP,YAAYv2K,aAAe,GAAlC,UACK5vE,EAAOmmP,YAAYx2K,WADxB,aACuC3vE,EAAOmmP,YAAYv2K,cAD1D,UAEK5vE,EAAOmmP,YAAYx2K,WAFxB,YAEsC3vE,EAAOmmP,YAAYv2K,cACzD,IAAI/wE,KAAK8qP,EAAiBxD,aAAav2K,aAAe,GAAtD,UACG,IAAI/wE,KAAK8qP,EAAiBxD,aAAax2K,WAD1C,aACyD,IAAI9wE,KAC3D8qP,EAAiBxD,aACjBv2K,cAHF,UAIG,IAAI/wE,KAAK8qP,EAAiBxD,aAAax2K,WAJ1C,YAIwD,IAAI9wE,KAC1D8qP,EAAiBxD,aACjBv2K,cACJ,IAAI/wE,KAAKmB,EAAOimP,aAAar2K,aAAe,GAA5C,UACG,IAAI/wE,KAAKmB,EAAOimP,aAAat2K,WADhC,aAC+C,IAAI9wE,KACjDmB,EAAOimP,aACPr2K,cAHF,UAIG,IAAI/wE,KAAKmB,EAAOimP,aAAat2K,WAJhC,YAI8C,IAAI9wE,KAChDmB,EAAOimP,aACPr2K,cACRyT,QAAS,eACTosI,0BAC0B,IAAxBzvN,EAAO4iF,aACsB,IAAzB5iF,EAAO6vN,cAAP,UACE7vN,EAAOknP,8BADT,QACmC,EACR,IAAzBlnP,EAAO6vN,cAAP,UACA7vN,EAAOmnP,+BADP,QACkC,EACT,KAAzBnnP,EAAO6vN,cAAP,UACA7vN,EAAOqpP,gCADP,QACmC,EACnC,EACF,EACNx5B,eAA6C,KAAxB,OAAN7vN,QAAM,IAANA,OAAA,EAAAA,EAAQonP,mBAA6B,GAArC,iBAA0CpnP,QAA1C,IAA0CA,OAA1C,EAA0CA,EAAQ6vN,qBAAlD,QAAmE,EAClFP,kBAC0B,IAAxBtvN,EAAO4iF,aACH,EACyB,IAAzB5iF,EAAO6vN,cAAP,UACA7vN,EAAOknP,8BADP,QACiC,EACR,IAAzBlnP,EAAO6vN,cACPs5B,EAAmBnpP,GACM,KAAzBA,EAAO6vN,cACN7vN,EAAOonP,kBAENpnP,EAAOsnP,aAAe,EADtBtnP,EAAO8mP,WAET,EACNS,iBAA0C,IAAxBvnP,EAAO4iF,aAAqB,EAAI5iF,EAAOunP,iBACzD33B,0BAC0B,IAAxB5vN,EAAO4iF,cACkB,KAAzB5iF,EAAO6vN,gBACsB,IAA7B7vN,EAAOonP,kBACHpnP,EAAOqnP,cACP,IAERsC,EAAgB,2BACXA,GADW,IAEdhwP,QACoC,IAAlCgwP,EAAiB/mK,aACb7X,IAAO4+K,EAAiBhwP,SAASiwP,IAAI,EAAG,OAAO5+K,OAAO,cACpB,IAAlC2+K,EAAiB/mK,cAAsB5iF,EAAOspP,UAC9C,aADA,UAEAK,SAFA,aAEA,EAAkBtD,gBAAgB,KAGxCh7P,EADEyzK,EACO+pF,IAAoCc,GAEpCd,IAAqCc,IA2gBtCE,CAAY7pP,GACZ0/I,IACA2wF,QArBJ,SAwBE,cAAC,IAAD,CAAkBp/P,GAAG,kBAEvB,cAAC,IAAOw+H,OAAR,CACE5pB,UAAU,cACV9oG,MAAM,QACN2yH,QAAS,WACPgwC,IACA2wF,KALJ,SAQE,cAAC,IAAD,CAAkBp/P,GAAG,gC,+BCztBjC,oEAAO,IAAM64Q,EAAsC,SAACv4Q,GAClD,OAAOA,EAAU,gBAAkB,gBAGxBq7L,EAA0B,SAAC8vB,EAAMnmD,GAC5C,OAAImmD,GAAQ,KACM,KAATA,IACS,KAATA,EAAoBnmD,GAAU,IACrB,KAATmmD,EAAoBnmD,GAAU,IACrB,KAATmmD,EAAoBnmD,GAAU,IACrB,KAATmmD,EAAoBnmD,GAAU,KACrB,IAATmmD,GAAmBnmD,GAAU,Q,6ECgCzBikC,IAvCe,SAC5Bp6K,GAKA,MAAwBkvG,mBAAgB,IAAxC,mBAAOvgI,EAAP,KAAa0mQ,EAAb,KACA,EAAoCnmI,oBAAkB,GAAtD,mBAAOooC,EAAP,KAAmBw+E,EAAnB,KA6BA,OATA7tI,qBAAU,WACJjoF,GACF81N,GAAc,GApBG,SAAC91N,GACpB+mM,YACE,CAAE/mM,WACF,CACEntB,YAAa,WACXwiQ,EAAQ,IACRvf,GAAc,IAEhBvjP,cAAe,SAACzC,IACd,OAAIA,QAAJ,IAAIA,OAAJ,EAAIA,EAAUqB,SACZkkQ,EAAQvlQ,EAASnB,KAAK8V,KAAI,SAACqb,GAAD,OAAW38B,IAAc28B,OAC9Cu1O,EAAQ,IACfvf,GAAc,MASlB6zB,CAAa3pP,KAEbq1O,EAAQ,IACRvf,GAAc,MAEf,CAAC91N,IACG,CAAErxB,OAAM2oK,gB,2FCaFkuC,IA/CiB,SAC9BlsL,EACAC,EACA7B,EACAkyP,GAMA,MAAiC16I,mBAAc,IAA/C,mBAAOu2E,EAAP,KAAsB4vD,EAAtB,KACA,EAAiDnmI,oBAAkB,GAAnE,mBAAOw2E,EAAP,KAAgCowC,EAAhC,KACA,EAA2DlwC,cAAzCzlC,EAAlB,EAAQhE,SAAkCwpC,EAA1C,EAA2B67B,cAgC3B,OA/BAv5H,qBAAU,WACR,IAAMpb,EAA0C,oBAAzB+8K,GAAsCA,IACzDtwP,GAAaC,GAAW7B,GAAUm1E,IACpCipJ,GAAc,GACdv9F,YACE,CACE7gI,SACA4B,YACAC,WAEF,CACE1mB,YAAa,WACXwiQ,EAAQ,IACRvf,GAAc,IAEhBvjP,cAAe,SAACzC,GAAc,IAAD,EACvBA,IAAQ,OAAIA,QAAJ,IAAIA,OAAJ,EAAIA,EAAUnB,QAAgB,OAARmB,QAAQ,IAARA,GAAA,UAAAA,EAAUnB,YAAV,eAAgB8c,QAAS,EACzD4pP,EACEvlQ,EAASnB,KAAK8V,KAAI,SAACqxJ,GACjB,OAAO3yK,IAAc,eAChB2yK,QAIJu/F,EAAQ,IACfvf,GAAc,SAKrB,CAACx8N,EAAWC,EAAS7B,EAAQyoJ,IACzB,CAAEslC,gBAAeC,0BAAyBC,kB,6BClDnD,8CAWaR,EAAkB,SAC7BzyM,GAEA,IAAMxG,EAAOI,cAEb,OAAQoG,GACN,KAAK,EACH,MAAO,CACLnB,KAAMrF,EAAK0E,cAAc,CAAEC,GAAI,kBAC/B8L,MAAO,UACPrL,KAAM,oBAGV,KAAK,EACH,MAAO,CACLC,KAAMrF,EAAK0E,cAAc,CAAEC,GAAI,eAC/B8L,MAAO,UACPrL,KAAM,SAGV,KAAK,EACH,MAAO,CACLC,KAAMrF,EAAK0E,cAAc,CAAEC,GAAI,mBAC/B8L,MAAO,SACPrL,KAAM,oBAGV,QACE,OAAO,Q,uKCfPwgN,EAA+B,SAACh5M,GACpC,IAAQu7L,EAA2Dv7L,EAA3Du7L,iBAAkBw1E,EAAyC/wQ,EAAzC+wQ,YAAa9nE,EAA4BjpM,EAA5BipM,kBAAmBntL,EAAS9b,EAAT8b,KAG1D,EAAgD6/K,cAAxC5rF,EAAR,EAAQA,QAAS8rF,EAAjB,EAAiBA,MAAOD,EAAxB,EAAwBA,aAAcp1B,EAAtC,EAAsCA,MAChCpzK,EAAOG,cACP4e,EAAWipI,cAEX+9C,EAAa0C,IAEnB,EAAuDm1E,YAAqB,OAC1El1P,QAD0E,IAC1EA,OAD0E,EAC1EA,EAAMztB,gBADA4iR,EAAR,EAAQA,gBAAiBC,EAAzB,EAAyBA,0BAInBC,EAAa,YAAI9mQ,MAAM,GAAGizG,QAAQ3xG,KAAI,SAAC5T,GAAD,MAAS,CACnDA,GAAIA,EACJuI,MAAOvI,EACPm0G,MAAO94G,EAAK0E,cAAc,CAAEC,GAAG,qBAAD,OAAuBA,KACrDu0G,WAAYl5G,EAAK0E,cAAc,CAAEC,GAAG,qBAAD,OAAuBA,SAuB5D,OAPAo3G,qBAAU,WACRq3D,EAAM,2BACD2yB,GADA,IAEHx3K,YAAa,OAEd,SAEa1pB,IAAT6jB,GAA+B,OAATA,EAC3B,cAAC,IAAD,CACE6wF,UAAU,sBACV+vF,iBAAkB,kCAClB5lE,OAAQmyE,EACRhqM,MAAO7L,EAAK0E,cAAc,CAAEC,GAAI,wBAChCqlM,SAAQ,OAAEthL,QAAF,IAAEA,OAAF,EAAEA,EAAMsF,SAChB9hB,MAAO,QACPq9L,eAAgB,WACVpB,GAAkBA,GAAiB,IAR3C,SAWE,eAAC,WAAD,WACE,eAAC,IAAD,WACE,cAAC,IAAD,CAAK75B,GAAG,KAAR,SACE,cAAC,IAAD,CACE3xD,QAASA,EACT/3G,KAAK,cACLu6F,MAAO,CAAEQ,UAAU,GACnB2iF,OAAQ,gBAAGrnE,EAAH,EAAGA,MAAOimE,EAAV,EAAUA,WAAV,OACN,cAAC,IAAD,CACEjmE,MAAOA,EACPC,WAAYgmE,EACZv8K,GAAI,oBACJm0G,MAAO94G,EAAK0E,cAAc,CAAEC,GAAI,iBAChCy2G,QAAS2iK,EACT3uQ,YAAU,SAKW,KAAlB,OAAV22L,QAAU,IAAVA,OAAA,EAAAA,EAAYx3K,cACX,cAAC,IAAD,CAAK+/I,GAAG,KAAR,SACE,cAAC,IAAD,CACE3xD,QAASA,EACT/3G,KAAK,iBACLu6F,MAAO,CAAEQ,UAAU,GACnB2iF,OAAQ,gBAAGrnE,EAAH,EAAGA,MAAOimE,EAAV,EAAUA,WAAV,OACN,cAAC,IAAD,CACEjmE,MAAOA,EACPC,WAAYgmE,EACZv8K,GAAI,uBACJm0G,MAAO94G,EAAK0E,cAAc,CAAEC,GAAI,iBAChCy2G,QAASyiK,EAAgBtlQ,KAAI,SAAC2N,GAAD,MAAqB,CAChDvhB,GAAIuhB,EAAeC,SACnBjZ,MAAOgZ,EAAeC,SACtB2yF,MAAO5yF,EAAeG,kBACtB6yF,WAAYhzF,EAAeG,sBAE7Bs5E,UAAU,EACVgjC,UAAWm7I,YAOvB,cAAC,IAAD,CAAKvkK,UAAW,oBAAhB,SACE,eAAC,IAAD,CAAK+0D,GAAG,KAAR,UACE,cAAC,IAAOnrC,OAAR,CACE5pB,UAAU,mBACV9oG,MAAM,UAEN2yH,QAASolE,GAAa,kBAnFjB,WAAO,IAAD,EACrBzpL,EAASgN,yBAAA,OAAmCrD,QAAnC,IAAmCA,OAAnC,EAAmCA,EAAM8C,OAAzC,OAAiDu6K,QAAjD,IAAiDA,OAAjD,EAAiDA,EAAYi4E,iBAClEL,GACFA,EAAY,CACVrqJ,iBAAgB,OAAEyyE,QAAF,IAAEA,OAAF,EAAEA,EAAYi4E,eAC9BtrJ,0BAAyB,UAAEmrJ,EAAgBhrP,QACzC,SAACgK,GAAD,OAAYA,EAAO1W,YAAP,OAAoB4/K,QAApB,IAAoBA,OAApB,EAAoBA,EAAYi4E,mBAC5C,UAFuB,aAAE,EAErB33P,oBAEV+sJ,IACA+0B,GAAiB,GAyEqBkgD,MAJ9B,SAME,cAAC,IAAD,CAAkB1jP,GAAG,kBAEvB,cAAC,IAAOw+H,OAAR,CACE5pB,UAAU,cACV9oG,MAAM,QACN2yH,QAAS,WACPgwC,IACA+0B,GAAiB,IALrB,SAQE,cAAC,IAAD,CAAkBxjM,GAAG,8BAO/B,8BAIJihN,EAA6BpmG,aAAe,CAC1C2oF,iBAAkB,kBAAM,MACxB0N,mBAAmB,EACnBntL,KAAM,IAGOk9L,O,iFCjHAg4D,IAxCe,SAC5B3iR,EACAguQ,GAKA,MAAmCjmI,mBAAc,IAAjD,mBAAO66I,EAAP,KAAwB1U,EAAxB,KACA,EAAmDnmI,oBAAkB,GAArE,mBAAO86I,EAAP,KAAkCl0B,EAAlC,KA6BA,OA5BA7tI,qBAAU,gBACel3G,IAAnB5J,GAAmD,OAAnBA,IAClC2uP,GAAc,GACd7qB,YACE,CACE9jO,kBAEF,CACE0L,YAAa,WACXwiQ,EAAQ,IACRvf,GAAc,IAEhBvjP,cAAe,SAACzC,GAAc,IAAD,EACvBA,IAAQ,OAAIA,QAAJ,IAAIA,OAAJ,EAAIA,EAAUnB,QAAgB,OAARmB,QAAQ,IAARA,GAAA,UAAAA,EAAUnB,YAAV,eAAgB8c,QAAS,EACzD4pP,EACEvlQ,EAASnB,KAAK8V,KAAI,SAACskB,GACjB,OAAO5lC,IAAc,eAChB4lC,QAIJssO,EAAQ,IACfvf,GAAc,SAKrB,CAAC3uP,EAAgBguQ,IACb,CAAE4U,kBAAiBC,+B,0ECDbp/D,IApCsB,SACnCzmM,EACAuT,EACA6gB,EACAkxK,EACAnwL,EACAC,GAKA,MAAwB21G,mBAAgB,IAAxC,mBAAOvgI,EAAP,KAAa0mQ,EAAb,KACA,EAAoCnmI,oBAAkB,GAAtD,mBAAOooC,EAAP,KAAmBw+E,EAAnB,KAqBA,OApBA7tI,qBAAU,WACJ9jG,GAASuT,GAAU6gB,GAAYjf,GAAaC,IAC9Cu8N,GAAc,GACdt9F,YACE,CAAE9gI,SAAQ6gB,WAAUkxK,YAAWnwL,YAAWC,WAC1C,CACE1mB,YAAa,WACXwiQ,EAAQ,IACRvf,GAAc,IAEhBvjP,cAAe,SAACzC,IACd,OAAIA,QAAJ,IAAIA,OAAJ,EAAIA,EAAUqB,SACZkkQ,EAAQvlQ,EAASnB,KAAKw7Q,mBAAmB1lQ,KAAI,SAAC9L,GAAD,OAAYxV,IAAcwV,OAClE08P,EAAQ,IACfvf,GAAc,SAKrB,CAAC3xO,EAAOuT,EAAQ6gB,EAAUkxK,EAAWnwL,EAAWC,IAC5C,CAAE5qB,OAAM2oK,gB,mLCkDXt3J,G,WAAiBld,YAAgB,CACrCs5G,KAnFW,WAAyB,IAAxB35G,EAAuB,uDAAf,GAAIC,EAAW,uCACnC,OAAQA,EAAOC,MAEb,KAAKC,IACH,MAA4BF,EAAOM,QAA3B2d,EAAR,EAAQA,SAAUshB,EAAlB,EAAkBA,MACZrf,EAAQ,eAAQngB,GAStB,OARAw/B,EAAMrR,SAAQ,SAACw5P,GACbxnQ,EAASwnQ,GAAT,qCACEt5P,YAAY,GACTruB,EAAM2nR,IACNzpQ,EAASypQ,IAHd,IAIExxQ,aAAa,OAGVgK,EAIT,QACE,OAAOngB,IAiEXw/B,MA5DY,WAAyB,IAAxBx/B,EAAuB,uDAAf,GAAIC,EAAW,uCACpC,OAAQA,EAAOC,MAEb,KAAKC,IACH,IAAQq/B,EAAUv/B,EAAOM,QAAjBi/B,MACR,OAAOs6E,IAAMt6E,GAIf,QACE,OAAOx/B,IAmDX47G,eA7CqB,WAA4B,IAA3B57G,EAA0B,wDAAXC,EAAW,uCAChD,OAAQA,EAAOC,MACb,KAAKC,IACH,OAAO,EAET,KAAKA,IACL,KAAKA,IACH,OAAO,EAET,QACE,OAAOH,IAoCX+9H,kBA/BwB,WAA4B,IAA3B/9H,EAA0B,wDAAXC,EAAW,uCACnD,OAAQA,EAAOC,MACb,KAAKC,IACH,OAAO,EAET,QACE,OAAOH,IA0BX87G,kBArBwB,WAA2B,IAA1B97G,EAAyB,uDAAjB,KAAMC,EAAW,uCAClD,OAAQA,EAAOC,MACb,KAAKC,IACH,IAAQ4B,EAAU9B,EAAOM,QAAjBwB,MACR,OAAOA,EAET,KAAK5B,IACL,KAAKA,IACH,OAAO,KAET,QACE,OAAOH,OAaEud,MAGR,IAAM9a,EAAc,SAACzC,GAAD,OAAWA,EAAM2c,eAAeY,gBAG9CqqQ,EAAmB,SAAC5nR,EAAO2nR,GAAR,OAC9BllR,EAAYzC,GAAO25G,KAAKguK,IAebE,EAAwB,SAAC7nR,GAAD,OACnCyC,EAAYzC,GAAOw/B,MAAMxd,KAAI,SAAC5T,GAAD,OAAQw5Q,EAAiB5nR,EAAOoO,OAGlD05Q,EAA+B,SAAC9nR,GAAD,OAAWyC,EAAYzC,GAAO47G,gBAC7DmsK,EAAgC,SAAC/nR,GAAD,OAAWyC,EAAYzC,GAAO+9H,oB,yMCyErEjhH,EAAYzc,YAAgB,CAChCs5G,KA1LW,WAAyB,IAAxB35G,EAAuB,uDAAf,GAAIC,EAAW,uCACnC,OAAQA,EAAOC,MAEb,KAAKC,IACH,MAA4BF,EAAOM,QAA3B2d,EAAR,EAAQA,SAAUshB,EAAlB,EAAkBA,MACZrf,EAAQ,eAAQngB,GAQtB,OAPAw/B,EAAMrR,SAAQ,SAAC65P,GACb7nQ,EAAS6nQ,GAAT,yBACE35P,YAAY,GACTnQ,EAAS8pQ,IAFd,IAGE7xQ,aAAa,OAGVgK,EAGT,KAAKhgB,IACH,IAAMk0C,EAAUp0C,EAAOM,QACjB4f,EAAQ,eAAQngB,GAOtB,OANAmgB,EAASk0B,EAAQ2zO,WAAjB,qCACE35P,YAAY,GACTruB,EAAMq0C,EAAQ2zO,YACd3zO,GAHL,IAIEl+B,aAAa,IAERgK,EAIT,KAAKhgB,IACH,IAAM6nR,EAAY/nR,EAAOM,QACnB4f,EAAQ,2BACTngB,GADS,kBAEXgoR,EAFW,2BAGPhoR,EAAMgoR,IAHC,IAIV35P,YAAY,MAGhB,OAAOlO,EAGT,KAAKhgB,IACH,IAAM6nR,EAAY/nR,EAAOM,QACzB,OAAO,2BACFP,GADL,kBAEGgoR,EAFH,2BAGOhoR,EAAMgoR,IAHb,IAII35P,YAAY,MAKlB,KAAKluB,IACH,IAAM8nR,EAAahoR,EAAOM,QACpB4f,EAAQ,eAAQngB,GAiBtB,OAhByB,GAArBioR,EAAWj/P,OACbmF,IAAQnuB,GAAO,SAACq0C,EAAc2zO,GAC5B7nQ,EAAS6nQ,GAAT,2BACK3zO,GADL,IAEEhmB,YAAY,OAIhB45P,EAAW95P,SAAQ,SAAC65P,GAClB7nQ,EAAS6nQ,GAAT,2BACKhoR,EAAMgoR,IADX,IAEE35P,YAAY,OAKXlO,EAGT,KAAKhgB,IACH,IAAM8nR,EAAahoR,EAAOM,QACpB4f,EAAQ,eAAQngB,GAiBtB,OAhByB,GAArBioR,EAAWj/P,OACbmF,IAAQnuB,GAAO,SAACq0C,EAAc2zO,GAC5B7nQ,EAAS6nQ,GAAT,2BACK3zO,GADL,IAEEhmB,YAAY,OAIhB45P,EAAW95P,SAAQ,SAAC65P,GAClB7nQ,EAAS6nQ,GAAT,2BACKhoR,EAAMgoR,IADX,IAEE35P,YAAY,OAKXlO,EAIT,QACE,OAAOngB,IAyFXw/B,MApFY,WAAyB,IAAxBx/B,EAAuB,uDAAf,GAAIC,EAAW,uCACpC,OAAQA,EAAOC,MAEb,KAAKC,IACH,IAAQq/B,EAAUv/B,EAAOM,QAAjBi/B,MACR,OAAOs6E,IAAMt6E,GAGf,KAAKr/B,IACH,IAAMk0C,EAAUp0C,EAAOM,QACvB,OAAOgyD,IAAK,GAAD,mBAAKvyD,GAAL,CAAYq0C,EAAQ2zO,aAGjC,QACE,OAAOhoR,IAuEX60K,WAlDiB,WAA4B,IAA3B70K,EAA0B,wDAAXC,EAAW,uCAC5C,OAAQA,EAAOC,MACb,KAAKC,IACH,OAAO,EAET,KAAKA,IACL,KAAKA,IACH,OAAO,EAET,QACE,OAAOH,IAyCX47G,eAlEqB,WAA4B,IAA3B57G,EAA0B,wDAAXC,EAAW,uCAChD,OAAQA,EAAOC,MACb,KAAKC,IACH,OAAO,EAET,KAAKA,IACL,KAAKA,IACH,OAAO,EAET,QACE,OAAOH,IAyDX80K,cArBoB,WAA2B,IAA1B90K,EAAyB,uDAAjB,KAAMC,EAAW,uCAC9C,OAAQA,EAAOC,MACb,KAAKC,IACH,IAAQ4B,EAAU9B,EAAOM,QAAjBwB,MACR,OAAOA,EAET,KAAK5B,IACL,KAAKA,IACH,OAAO,KAET,QACE,OAAOH,IAWX87G,kBAtCwB,WAA2B,IAA1B97G,EAAyB,uDAAjB,KAAMC,EAAW,uCAClD,OAAQA,EAAOC,MACb,KAAKC,IACH,IAAQ4B,EAAU9B,EAAOM,QAAjBwB,MACR,OAAOA,EAET,KAAK5B,IACL,KAAKA,IACH,OAAO,KAET,QACE,OAAOH,IA4BXizC,qBAGan2B,MAGR,IAAMra,EAAc,SAACzC,GAAD,OAAWA,EAAM2c,eAAeG,WAI9CorQ,EAAmB,SAACloR,GAAD,OAC9ByC,EAAYzC,GAAOw/B,MAAMxd,KAAI,SAAC5T,GAAD,OAFL,SAACpO,EAAOgoR,GAAR,OAAsBvlR,EAAYzC,GAAO25G,KAAKquK,GAEjCG,CAAWnoR,EAAOoO,OAqB5Cg6Q,EAA0B,SAACpoR,GAAD,OAAWyC,EAAYzC,GAAO47G,iB,qHC1J/D7+F,EAAY1c,YAAgB,CAChCs5G,KAvEW,WAAyB,IAAxB35G,EAAuB,uDAAf,GAAIC,EAAW,uCACnC,OAAQA,EAAOC,MAEb,KAAKC,IACH,MAA4BF,EAAOM,QAA3B2d,EAAR,EAAQA,SAAUshB,EAAlB,EAAkBA,MACZrf,EAAQ,eAAQngB,GAQtB,OAPAw/B,EAAMrR,SAAQ,SAACqpC,GACbr3C,EAASq3C,GAAT,yBACEnpC,YAAY,GACTnQ,EAASs5C,IAFd,IAGErhD,aAAa,OAGVgK,EAIT,QACE,OAAOngB,IAsDXw/B,MAjDY,WAAyB,IAAxBx/B,EAAuB,uDAAf,GAAIC,EAAW,uCACpC,OAAQA,EAAOC,MAEb,KAAKC,IACH,IAAQq/B,EAAUv/B,EAAOM,QAAjBi/B,MACR,OAAOs6E,IAAMt6E,GAIf,QACE,OAAOx/B,IAwCX47G,eAlCqB,WAA4B,IAA3B57G,EAA0B,wDAAXC,EAAW,uCAChD,OAAQA,EAAOC,MACb,KAAKC,IACH,OAAO,EAET,KAAKA,IACL,KAAKA,IACH,OAAO,EAET,QACE,OAAOH,IAyBX87G,kBApBwB,WAA2B,IAA1B97G,EAAyB,uDAAjB,KAAMC,EAAW,uCAClD,OAAQA,EAAOC,MACb,KAAKC,IACH,IAAQ4B,EAAU9B,EAAOM,QAAjBwB,MACR,OAAOA,EAET,KAAK5B,IACL,KAAKA,IACH,OAAO,KAET,QACE,OAAOH,IAUXizC,qBAGal2B,MAGR,IAAMta,EAAc,SAACzC,GAAD,OAAWA,EAAM2c,eAAeI,WAI9CsrQ,EAAmB,SAACroR,GAAD,OAC9ByC,EAAYzC,GAAOw/B,MAAMxd,KAAI,SAAC5T,GAAD,OAFJ,SAACpO,EAAOw3D,GAAR,OAAuB/0D,EAAYzC,GAAO25G,KAAKniD,GAEnC8wN,CAAYtoR,EAAOoO,OAC7Cm6Q,EAA4B,SAACvoR,EAAOgoR,GAAR,OACvCK,EAAiBroR,GAAOs8B,QAAO,SAAC4X,GAAD,OAAcA,EAAS8zO,YAAcA,O,4GCnBhE9qQ,EAAqB7c,YAAgB,CACzCs5G,KAvEW,WAAyB,IAAxB35G,EAAuB,uDAAf,GAAIC,EAAW,uCACnC,OAAQA,EAAOC,MAEb,KAAKC,IACH,MAA4BF,EAAOM,QAA3B2d,EAAR,EAAQA,SAAUshB,EAAlB,EAAkBA,MACZrf,EAAQ,eAAQngB,GAQtB,OAPAw/B,EAAMrR,SAAQ,SAAC0sP,GACb16P,EAAS06P,GAAT,yBACExsP,YAAY,GACTnQ,EAAS28P,IAFd,IAGE1kQ,aAAa,OAGVgK,EAIT,QACE,OAAOngB,IAsDXw/B,MAjDY,WAAyB,IAAxBx/B,EAAuB,uDAAf,GAAIC,EAAW,uCACpC,OAAQA,EAAOC,MAEb,KAAKC,IACH,IAAQq/B,EAAUv/B,EAAOM,QAAjBi/B,MACR,OAAOs6E,IAAMt6E,GAIf,QACE,OAAOx/B,IAwCX47G,eAlCqB,WAA4B,IAA3B57G,EAA0B,wDAAXC,EAAW,uCAChD,OAAQA,EAAOC,MACb,KAAKC,IACH,OAAO,EAET,KAAKA,IACL,KAAKA,IACH,OAAO,EAET,QACE,OAAOH,IAyBX87G,kBApBwB,WAA2B,IAA1B97G,EAAyB,uDAAjB,KAAMC,EAAW,uCAClD,OAAQA,EAAOC,MACb,KAAKC,IACH,IAAQ4B,EAAU9B,EAAOM,QAAjBwB,MACR,OAAOA,EAET,KAAK5B,IACL,KAAKA,IACH,OAAO,KAET,QACE,OAAOH,MAYEkd,MAGR,IAAMza,EAAc,SAACzC,GAAD,OAAWA,EAAM2c,eAAeO,oBAI9CsrQ,EAA4B,SAACxoR,GAAD,OACvCyC,EAAYzC,GAAOw/B,MAAMxd,KAAI,SAAC5T,GAAD,OAFA,SAACpO,EAAO66Q,GAAR,OAA2Bp4Q,EAAYzC,GAAO25G,KAAKkhK,GAE3CE,CAAgB/6Q,EAAOoO,OACjDq6Q,EAAqC,SAACzoR,EAAOgoR,GAAR,OAChDQ,EAA0BxoR,GAAOs8B,QAAO,SAACosP,GAAD,OAAaA,EAAQV,YAAcA,O,4GCjBvE7qQ,EAAkB9c,YAAgB,CACtCs5G,KAvEW,WAAyB,IAAxB35G,EAAuB,uDAAf,GAAIC,EAAW,uCACnC,OAAQA,EAAOC,MAEb,KAAKC,IACH,MAA4BF,EAAOM,QAA3B2d,EAAR,EAAQA,SAAUshB,EAAlB,EAAkBA,MACZrf,EAAQ,eAAQngB,GAQtB,OAPAw/B,EAAMrR,SAAQ,SAAC0sP,GACb16P,EAAS06P,GAAT,yBACExsP,YAAY,GACTnQ,EAAS28P,IAFd,IAGE1kQ,aAAa,OAGVgK,EAIT,QACE,OAAOngB,IAsDXw/B,MAjDY,WAAyB,IAAxBx/B,EAAuB,uDAAf,GAAIC,EAAW,uCACpC,OAAQA,EAAOC,MAEb,KAAKC,IACH,IAAQq/B,EAAUv/B,EAAOM,QAAjBi/B,MACR,OAAOs6E,IAAMt6E,GAIf,QACE,OAAOx/B,IAwCX47G,eAlCqB,WAA4B,IAA3B57G,EAA0B,wDAAXC,EAAW,uCAChD,OAAQA,EAAOC,MACb,KAAKC,IACH,OAAO,EAET,KAAKA,IACL,KAAKA,IACH,OAAO,EAET,QACE,OAAOH,IAyBX87G,kBApBwB,WAA2B,IAA1B97G,EAAyB,uDAAjB,KAAMC,EAAW,uCAClD,OAAQA,EAAOC,MACb,KAAKC,IACH,IAAQ4B,EAAU9B,EAAOM,QAAjBwB,MACR,OAAOA,EAET,KAAK5B,IACL,KAAKA,IACH,OAAO,KAET,QACE,OAAOH,MAYEmd,MAGR,IAAM1a,EAAc,SAACzC,GAAD,OAAWA,EAAM2c,eAAeQ,iBAI9CwrQ,EAAyB,SAAC3oR,GAAD,OACpCyC,EAAYzC,GAAOw/B,MAAMxd,KAAI,SAAC5T,GAAD,OAFA,SAACpO,EAAO66Q,GAAR,OAA2Bp4Q,EAAYzC,GAAO25G,KAAKkhK,GAE3CE,CAAgB/6Q,EAAOoO,OACjDw6Q,EAAkC,SAAC5oR,EAAOgoR,GAAR,OAC7CW,EAAuB3oR,GAAOs8B,QAAO,SAAChc,GAAD,OAAWA,EAAM0nQ,YAAcA,O,4GCRhE5qQ,EAAe/c,YAAgB,CACnCs5G,KAnFW,WAAyB,IAAxB35G,EAAuB,uDAAf,GAAIC,EAAW,uCACnC,OAAQA,EAAOC,MAEb,KAAKC,IACH,MAA4BF,EAAOM,QAA3B2d,EAAR,EAAQA,SAAUshB,EAAlB,EAAkBA,MACZrf,EAAQ,eAAQngB,GAStB,OARAw/B,EAAMrR,SAAQ,SAAC06P,GACb1oQ,EAAS0oQ,GAAT,qCACEx6P,YAAY,GACTruB,EAAM6oR,IACN3qQ,EAAS2qQ,IAHd,IAIE1yQ,aAAa,OAGVgK,EAIT,QACE,OAAOngB,IAiEXw/B,MA5DY,WAAyB,IAAxBx/B,EAAuB,uDAAf,GAAIC,EAAW,uCACpC,OAAQA,EAAOC,MAEb,KAAKC,IACH,IAAQq/B,EAAUv/B,EAAOM,QAAjBi/B,MACR,OAAOs6E,IAAMt6E,GAIf,QACE,OAAOx/B,IAmDX47G,eA7CqB,WAA4B,IAA3B57G,EAA0B,wDAAXC,EAAW,uCAChD,OAAQA,EAAOC,MACb,KAAKC,IACH,OAAO,EAET,KAAKA,IACL,KAAKA,IACH,OAAO,EAET,QACE,OAAOH,IAoCX+9H,kBA/BwB,WAA4B,IAA3B/9H,EAA0B,wDAAXC,EAAW,uCACnD,OAAQA,EAAOC,MACb,KAAKC,IACH,OAAO,EAET,QACE,OAAOH,IA0BX87G,kBArBwB,WAA2B,IAA1B97G,EAAyB,uDAAjB,KAAMC,EAAW,uCAClD,OAAQA,EAAOC,MACb,KAAKC,IACH,IAAQ4B,EAAU9B,EAAOM,QAAjBwB,MACR,OAAOA,EAET,KAAK5B,IACL,KAAKA,IACH,OAAO,KAET,QACE,OAAOH,MAaEod,MAGR,IAAM3a,EAAc,SAACzC,GAAD,OAAWA,EAAM2c,eAAeS,cAG9C0rQ,EAAiB,SAAC9oR,EAAO6oR,GAAR,OAA0BpmR,EAAYzC,GAAO25G,KAAKkvK,IACnEE,EAAsB,SAAC/oR,GAAD,OACjCyC,EAAYzC,GAAOw/B,MAAMxd,KAAI,SAAC5T,GAAD,OAAQ06Q,EAAe9oR,EAAOoO,Q,4GChBvDiP,EAAehd,YAAgB,CACnCs5G,KAnFW,WAAyB,IAAxB35G,EAAuB,uDAAf,GAAIC,EAAW,uCACnC,OAAQA,EAAOC,MAEb,KAAKC,IACH,MAA4BF,EAAOM,QAA3B2d,EAAR,EAAQA,SAAUshB,EAAlB,EAAkBA,MACZrf,EAAQ,eAAQngB,GAStB,OARAw/B,EAAMrR,SAAQ,SAAC4nB,GACb51B,EAAS41B,GAAT,qCACE1nB,YAAY,GACTruB,EAAM+1C,IACN73B,EAAS63B,IAHd,IAIE5/B,aAAa,OAGVgK,EAIT,QACE,OAAOngB,IAiEXw/B,MA5DY,WAAyB,IAAxBx/B,EAAuB,uDAAf,GAAIC,EAAW,uCACpC,OAAQA,EAAOC,MAEb,KAAKC,IACH,IAAQq/B,EAAUv/B,EAAOM,QAAjBi/B,MACR,OAAOs6E,IAAMt6E,GAIf,QACE,OAAOx/B,IAmDX47G,eA7CqB,WAA4B,IAA3B57G,EAA0B,wDAAXC,EAAW,uCAChD,OAAQA,EAAOC,MACb,KAAKC,IACH,OAAO,EAET,KAAKA,IACL,KAAKA,IACH,OAAO,EAET,QACE,OAAOH,IAoCX+9H,kBA/BwB,WAA4B,IAA3B/9H,EAA0B,wDAAXC,EAAW,uCACnD,OAAQA,EAAOC,MACb,KAAKC,IACH,OAAO,EAET,QACE,OAAOH,IA0BX87G,kBArBwB,WAA2B,IAA1B97G,EAAyB,uDAAjB,KAAMC,EAAW,uCAClD,OAAQA,EAAOC,MACb,KAAKC,IACH,IAAQ4B,EAAU9B,EAAOM,QAAjBwB,MACR,OAAOA,EAET,KAAK5B,IACL,KAAKA,IACH,OAAO,KAET,QACE,OAAOH,MAaEqd,MAGR,IAAM5a,EAAc,SAACzC,GAAD,OAAWA,EAAM2c,eAAeU,cAG9C2rQ,EAAiB,SAAChpR,EAAO+1C,GAAR,OAA0BtzC,EAAYzC,GAAO25G,KAAK5jE,IAcnEkzO,EAA+B,SAACjpR,EAAOozC,GAAR,OAbT,SAACpzC,GAAD,OACjCyC,EAAYzC,GAAOw/B,MAAMxd,KAAI,SAAC5T,GAAD,OAAQ46Q,EAAehpR,EAAOoO,MAa3D86Q,CAAoBlpR,GAAOs8B,QAAO,SAACkZ,GAAD,OAAiBA,EAAYpC,UAAYA,O,4GC9BvE91B,EAAiBjd,YAAgB,CACrCs5G,KAlFW,WAAyB,IAAxB35G,EAAuB,uDAAf,GAAIC,EAAW,uCACnC,OAAQA,EAAOC,MAEb,KAAKC,IACH,MAA4BF,EAAOM,QAA3B2d,EAAR,EAAQA,SAAUshB,EAAlB,EAAkBA,MACZrf,EAAQ,eAAQngB,GAStB,OARAw/B,EAAMrR,SAAQ,SAAC64L,GACb7mM,EAAS6mM,GAAT,qCACE34L,YAAY,GACTruB,EAAMgnN,IACN9oM,EAAS8oM,IAHd,IAIE7wM,aAAa,OAGVgK,EAET,KAAKhgB,IACH,MAAO,GAIT,QACE,OAAOH,IA6DXw/B,MAxDY,WAAyB,IAAxBx/B,EAAuB,uDAAf,GAAIC,EAAW,uCACpC,OAAQA,EAAOC,MAEb,KAAKC,IACH,IAAQq/B,EAAUv/B,EAAOM,QAAjBi/B,MACR,OAAOs6E,IAAMt6E,GAEf,KAAKr/B,IACH,MAAO,GAIT,QACE,OAAOH,IA4CX47G,eAtCqB,WAA4B,IAA3B57G,EAA0B,wDAAXC,EAAW,uCAChD,OAAQA,EAAOC,MACb,KAAKC,IACH,OAAO,EAET,KAAKA,IACL,KAAKA,IAGL,KAAKA,IACH,OAAO,EAET,QACE,OAAOH,IA0BX87G,kBArBwB,WAA2B,IAA1B97G,EAAyB,uDAAjB,KAAMC,EAAW,uCAClD,OAAQA,EAAOC,MACb,KAAKC,IACH,IAAQ4B,EAAU9B,EAAOM,QAAjBwB,MACR,OAAOA,EAET,KAAK5B,IACL,KAAKA,IACL,KAAKA,IACH,OAAO,KAET,QACE,OAAOH,MAYEsd,MAGR,IAAM7a,EAAc,SAACzC,GAAD,OAAWA,EAAM2c,eAAeW,gBAI9C6rQ,EAAwB,SAACnpR,GAAD,OACnCyC,EAAYzC,GAAOw/B,MAAMxd,KAAI,SAAC5T,GAAD,OAFC,SAACpO,EAAOgnN,GAAR,OAAsBvkN,EAAYzC,GAAO25G,KAAKqtG,GAEvCoiE,CAAiBppR,EAAOoO,Q,8JC4NzDwR,EAAoBvf,YAAgB,CACxCs5G,KA5TW,WAAyB,IAAxB35G,EAAuB,uDAAf,GAAIC,EAAW,uCACnC,OAAQA,EAAOC,MAEb,KAAKC,IACL,KAAKA,IACH,MAA4BF,EAAOM,QAA3B2d,EAAR,EAAQA,SAAUshB,EAAlB,EAAkBA,MACZrf,EAAQ,eAAQngB,GAQtB,OAPAw/B,EAAMrR,SAAQ,SAAC0nC,GACb11C,EAAS01C,GAAT,uCACK71D,EAAM61D,IACN33C,EAAS23C,IAFd,IAGE1/C,aAAa,OAGVgK,EAGT,KAAKhgB,IACH,MAA8BF,EAAOM,QAA7B6N,EAAR,EAAQA,GAAI6/B,EAAZ,EAAYA,MAAO2nB,EAAnB,EAAmBA,OACbz1C,EAAW69F,IAAKh+G,EAAOiuC,GAM7B,OALA9tB,EAAS/R,GAAT,2BACKwnD,GADL,IAEEz/C,aAAa,EACbkY,YAAY,IAEPlO,EAGT,KAAKhgB,IACL,KAAKA,IACH,IAAMy1D,EAAS31D,EAAOM,QAChB6N,EAAE,UAAMwnD,EAAO3gC,OAAb,YAAuB2gC,EAAOC,UAChC11C,EAAQ,2BACTngB,GADS,kBAEXoO,EAFW,uCAGP4vG,IAAKh+G,EAAMoO,GAAK,CAAC,eACjB4vG,IAAKpoD,EAAQ,CAAC,eAJP,IAKVz/C,aAAa,MAGjB,OAAOgK,EAIT,KAAKhgB,IACH,IAAMy1D,EAAS31D,EAAOM,QAChB4f,EAAQ,eAAQngB,GAMtB,OALAmgB,EAASy1C,EAAOjC,QAAhB,yBACEtlC,YAAY,GACTunC,GAFL,IAGEz/C,aAAa,IAERgK,EAGT,KAAKhgB,IACL,KAAKA,IACH,IAAMy1D,EAAS31D,EAAOM,QAChB6N,EAAE,UAAMwnD,EAAO3gC,OAAb,YAAuB2gC,EAAOC,UAChC11C,EAAQ,2BACTngB,GADS,kBAEXoO,EAFW,2BAGPpO,EAAMoO,IAHC,IAIVg3K,UAAWplL,EAAMoO,GACjB+H,aAAa,GACVy/C,KAGP,OAAOz1C,EAIT,KAAKhgB,IACH,IAAQ8tC,EAAUhuC,EAAOM,QAAjB0tC,MACR,OAAIjuC,EAAMiuC,GACD+vE,IAAKh+G,EAAOiuC,GAEdjuC,EAGT,KAAKG,IACL,KAAKA,IACH,IAAQilL,EAAcnlL,EAAOM,QAArB6kL,UACR,OAAO,2BACFplL,GADL,kBAEGolL,EAAUvvH,SAFb,uCAGOmoD,IAAKh+G,EAAMolL,EAAUvvH,UAAW,CAAC,eACjCuvH,GAJP,IAKIjvK,aAAa,MAMnB,KAAKhW,IACH,IAAQiO,EAAOnO,EAAOM,QAAd6N,GACR,OAAO4vG,IAAKh+G,EAAOoO,GAIrB,QACE,OAAOpO,IAwNXw/B,MAnNY,WAAyB,IAAxBx/B,EAAuB,uDAAf,GAAIC,EAAW,uCACpC,OAAQA,EAAOC,MAEb,KAAKC,IACH,IAAQq/B,EAAUv/B,EAAOM,QAAjBi/B,MACR,OAAOs6E,IAAMt6E,GAGf,KAAKr/B,IACH,IAAQq/B,EAAUv/B,EAAOM,QAAjBi/B,MACR,OAAO+yB,IAAK,GAAD,mBAAKvyD,GAAL,YAAew/B,KAG5B,KAAKr/B,IACH,MAAsBF,EAAOM,QAArB6N,EAAR,EAAQA,GAAI6/B,EAAZ,EAAYA,MACZ,OAAOjuC,EAAMgiB,KAAI,SAAC6zC,GAAD,OAAeA,IAAa5nB,EAAQ7/B,EAAKynD,KAG5D,KAAK11D,IACH,IAAQiO,EAAOnO,EAAOM,QAAd6N,GACR,OAAOpO,EAAMs8B,QAAO,SAAC+sP,GAAD,OAAmBA,IAAkBj7Q,KAI3D,KAAKjO,IACH,IAAMy1D,EAAS31D,EAAOM,QACtB,MAAM,GAAN,mBAAWP,GAAX,CAAkB41D,EAAOjC,SAI3B,KAAKxzD,IACH,IAAQ8tC,EAAUhuC,EAAOM,QAAjB0tC,MACR,OAAOjuC,EAAMs8B,QAAO,SAAC+sP,GAAD,OAAmBA,IAAkBp7O,KAI3D,QACE,OAAOjuC,IA+KXm+G,sBA1J4B,WAA4B,IAA3Bn+G,EAA0B,wDAAXC,EAAW,uCACvD,OAAQA,EAAOC,MACb,KAAKC,IACH,OAAO,EAET,KAAKA,IACL,KAAKA,IACH,OAAO,EAET,QACE,OAAOH,IAiJX47G,eA1KqB,WAA4B,IAA3B57G,EAA0B,wDAAXC,EAAW,uCAChD,OAAQA,EAAOC,MACb,KAAKC,IACH,OAAO,EAET,KAAKA,IACL,KAAKA,IACH,OAAO,EAET,QACE,OAAOH,IAiKXo+G,SA7Ie,WAA4B,IAA3Bp+G,EAA0B,wDAAXC,EAAW,uCAC1C,OAAQA,EAAOC,MACb,KAAKC,IACH,OAAO,EAET,KAAKA,IACL,KAAKA,IACH,OAAO,EAET,QACE,OAAOH,IAoIXq+G,UA/HgB,WAA4B,IAA3Br+G,EAA0B,wDAAXC,EAAW,uCAC3C,OAAQA,EAAOC,MACb,KAAKC,IACH,OAAO,EAET,KAAKA,IACL,KAAKA,IACH,OAAO,EAET,QACE,OAAOH,IAsHXs+G,WAjHiB,WAA4B,IAA3Bt+G,EAA0B,wDAAXC,EAAW,uCAC5C,OAAQA,EAAOC,MACb,KAAKC,IACH,OAAO,EAET,KAAKA,IACL,KAAKA,IACH,OAAO,EAET,QACE,OAAOH,IAwGXu+G,yBAnF+B,WAA2B,IAA1Bv+G,EAAyB,uDAAjB,KAAMC,EAAW,uCACzD,OAAQA,EAAOC,MACb,KAAKC,IACH,IAAQ4B,EAAU9B,EAAOM,QAAjBwB,MACR,OAAOA,EAET,KAAK5B,IACL,KAAKA,IACH,OAAO,KAET,QACE,OAAOH,IAyEX87G,kBApGwB,WAA2B,IAA1B97G,EAAyB,uDAAjB,KAAMC,EAAW,uCAClD,OAAQA,EAAOC,MACb,KAAKC,IACH,IAAQ4B,EAAU9B,EAAOM,QAAjBwB,MACR,OAAOA,EAET,KAAK5B,IACL,KAAKA,IACH,OAAO,KAET,QACE,OAAOH,IA0FXw+G,YArEkB,WAA2B,IAA1Bx+G,EAAyB,uDAAjB,KAAMC,EAAW,uCAC5C,OAAQA,EAAOC,MACb,KAAKC,IACH,IAAQ4B,EAAU9B,EAAOM,QAAjBwB,MACR,OAAOA,EAET,KAAK5B,IACL,KAAKA,IACH,OAAO,KAET,QACE,OAAOH,IA2DXy+G,aAtDmB,WAA2B,IAA1Bz+G,EAAyB,uDAAjB,KAAMC,EAAW,uCAC7C,OAAQA,EAAOC,MACb,KAAKC,IACH,IAAQ4B,EAAU9B,EAAOM,QAAjBwB,MACR,OAAOA,EAET,KAAK5B,IACL,KAAKA,IACH,OAAO,KAET,QACE,OAAOH,IA4CX0+G,cAvCoB,WAA2B,IAA1B1+G,EAAyB,uDAAjB,KAAMC,EAAW,uCAC9C,OAAQA,EAAOC,MACb,KAAKC,IACH,IAAQ4B,EAAU9B,EAAOM,QAAjBwB,MACR,OAAOA,EAET,KAAK5B,IACL,KAAKA,IACH,OAAO,KAET,QACE,OAAOH,IA6BX+9H,kBAxBwB,WAA4B,IAA3B/9H,EAA0B,wDAAXC,EAAW,uCACnD,OAAQA,EAAOC,MACb,KAAKC,IACH,OAAO,EAET,QACE,OAAOH,MAqBE4f,MAGR,IAAMnd,EAAc,SAACzC,GAAD,OAAWA,EAAM4f,mBAW/B0pQ,EAAiB,SAACtpR,GAAD,uBAC5ByC,EAAYzC,GAAOw/B,aADS,aAC5B,EAA0Bxd,KAAI,SAAC5T,GAAD,OATP,SAACpO,EAAOoO,GAC/B,IAAMwnD,EAASnzD,EAAYzC,GAAO25G,KAAKvrG,GAEvC,OAAO,eACFwnD,GAKiC2zN,CAAUvpR,EAAOoO,OAI5Co7Q,EAAqC,SAChDxpR,EACAsB,EACAmoR,GAEA,MAAkB,YAAdA,EACKC,EAA2B1pR,EAAOsB,GAAYg7B,QAAO,SAACtrB,GAAD,OAAOA,EAAE2vO,SAAW,OACzD,YAAd8oC,EACFC,EAA2B1pR,EAAOsB,GAAYg7B,QAAO,SAACtrB,GAAD,OAAOA,EAAE2vO,UAAY,OAE1E+oC,EAA2B1pR,EAAOsB,IAIhCooR,EAA6B,SAAC1pR,EAAOsB,GAChD,OAAOgoR,EAAetpR,GAAOs8B,QAC3B,SAACs5B,GAAD,OACGt0D,GACAA,KACGA,EAAWiE,YAAcjE,EAAWiE,aAAeqwD,EAAOrwD,eAC1DjE,EAAWoD,gBAAkBpD,EAAWoD,iBAAmBkxD,EAAOlxD,mBAClEpD,EAAWsD,YAActD,EAAWsD,aAAegxD,EAAOhxD,eAC1DtD,EAAWwD,eAAiBxD,EAAWwD,gBAAkB8wD,EAAO9wD,oB,8JC5DpE+a,EAAgBxf,YAAgB,CACpCs5G,KAzTW,WAAyB,IAAxB35G,EAAuB,uDAAf,GAAIC,EAAW,uCACnC,OAAQA,EAAOC,MAEb,KAAKC,IACL,KAAKA,IACH,MAA4BF,EAAOM,QAA3B2d,EAAR,EAAQA,SAAUshB,EAAlB,EAAkBA,MACZrf,EAAQ,eAAQngB,GAQtB,OAPAw/B,EAAMrR,SAAQ,SAAC0nC,GACb11C,EAAS01C,GAAT,uCACK71D,EAAM61D,IACN33C,EAAS23C,IAFd,IAGE1/C,aAAa,OAGVgK,EAGT,KAAKhgB,IACH,MAA8BF,EAAOM,QAA7B6N,EAAR,EAAQA,GAAI6/B,EAAZ,EAAYA,MAAO2nB,EAAnB,EAAmBA,OACbz1C,EAAW69F,IAAKh+G,EAAOiuC,GAM7B,OALA9tB,EAAS/R,GAAT,2BACKwnD,GADL,IAEEz/C,aAAa,EACbkY,YAAY,IAEPlO,EAGT,KAAKhgB,IACH,IAAMy1D,EAAS31D,EAAOM,QAChB6N,EAAE,UAAMwnD,EAAO3gC,OAAb,YAAuB2gC,EAAOC,UAChC11C,EAAQ,2BACTngB,GADS,kBAEXoO,EAFW,uCAGP4vG,IAAKh+G,EAAMoO,GAAK,CAAC,eACjB4vG,IAAKpoD,EAAQ,CAAC,eAJP,IAKVz/C,aAAa,MAGjB,OAAOgK,EAIT,KAAKhgB,IACH,IAAMy1D,EAAS31D,EAAOM,QAChB4f,EAAQ,eAAQngB,GAMtB,OALAmgB,EAASy1C,EAAOjC,QAAhB,yBACEtlC,YAAY,GACTunC,GAFL,IAGEz/C,aAAa,IAERgK,EAGT,KAAKhgB,IACH,IAAMy1D,EAAS31D,EAAOM,QAChB6N,EAAE,UAAMwnD,EAAO3gC,OAAb,YAAuB2gC,EAAOC,UAChC11C,EAAQ,2BACTngB,GADS,kBAEXoO,EAFW,2BAGPpO,EAAMoO,IAHC,IAIVg3K,UAAWplL,EAAMoO,GACjB+H,aAAa,GACVy/C,KAGP,OAAOz1C,EAIT,KAAKhgB,IACH,IAAQ8tC,EAAUhuC,EAAOM,QAAjB0tC,MACR,OAAIjuC,EAAMiuC,GACD+vE,IAAKh+G,EAAOiuC,GAEdjuC,EAGT,KAAKG,IACH,IAAQilL,EAAcnlL,EAAOM,QAArB6kL,UACR,OAAO,2BACFplL,GADL,kBAEGolL,EAAUvvH,SAFb,uCAGOmoD,IAAKh+G,EAAMolL,EAAUvvH,UAAW,CAAC,eACjCuvH,GAJP,IAKIjvK,aAAa,MAMnB,KAAKhW,IACH,IAAQiO,EAAOnO,EAAOM,QAAd6N,GACR,OAAO4vG,IAAKh+G,EAAOoO,GAIrB,QACE,OAAOpO,IAwNXw/B,MAnNY,WAAyB,IAAxBx/B,EAAuB,uDAAf,GAAIC,EAAW,uCACpC,OAAQA,EAAOC,MAEb,KAAKC,IACH,IAAQq/B,EAAUv/B,EAAOM,QAAjBi/B,MACR,OAAOs6E,IAAMt6E,GAGf,KAAKr/B,IACH,IAAQq/B,EAAUv/B,EAAOM,QAAjBi/B,MACR,OAAO+yB,IAAK,GAAD,mBAAKvyD,GAAL,YAAew/B,KAG5B,KAAKr/B,IACH,MAAsBF,EAAOM,QAArB6N,EAAR,EAAQA,GAAI6/B,EAAZ,EAAYA,MACZ,OAAOjuC,EAAMgiB,KAAI,SAAC6zC,GAAD,OAAeA,IAAa5nB,EAAQ7/B,EAAKynD,KAG5D,KAAK11D,IACH,IAAQiO,EAAOnO,EAAOM,QAAd6N,GACR,OAAOpO,EAAMs8B,QAAO,SAAC+sP,GAAD,OAAmBA,IAAkBj7Q,KAI3D,KAAKjO,IACH,IAAMy1D,EAAS31D,EAAOM,QACtB,MAAM,GAAN,mBAAWP,GAAX,CAAkB41D,EAAOjC,SAI3B,KAAKxzD,IACH,IAAQ8tC,EAAUhuC,EAAOM,QAAjB0tC,MACR,OAAOjuC,EAAMs8B,QAAO,SAAC+sP,GAAD,OAAmBA,IAAkBp7O,KAI3D,QACE,OAAOjuC,IA+KXm+G,sBA1J4B,WAA4B,IAA3Bn+G,EAA0B,wDAAXC,EAAW,uCACvD,OAAQA,EAAOC,MACb,KAAKC,IACH,OAAO,EAET,KAAKA,IACL,KAAKA,IACH,OAAO,EAET,QACE,OAAOH,IAiJX47G,eA1KqB,WAA4B,IAA3B57G,EAA0B,wDAAXC,EAAW,uCAChD,OAAQA,EAAOC,MACb,KAAKC,IACH,OAAO,EAET,KAAKA,IACL,KAAKA,IACH,OAAO,EAET,QACE,OAAOH,IAiKXo+G,SA7Ie,WAA4B,IAA3Bp+G,EAA0B,wDAAXC,EAAW,uCAC1C,OAAQA,EAAOC,MACb,KAAKC,IACH,OAAO,EAET,KAAKA,IACL,KAAKA,IACH,OAAO,EAET,QACE,OAAOH,IAoIXq+G,UA/HgB,WAA4B,IAA3Br+G,EAA0B,wDAAXC,EAAW,uCAC3C,OAAQA,EAAOC,MACb,KAAKC,IACH,OAAO,EAET,KAAKA,IACL,KAAKA,IACH,OAAO,EAET,QACE,OAAOH,IAsHXs+G,WAjHiB,WAA4B,IAA3Bt+G,EAA0B,wDAAXC,EAAW,uCAC5C,OAAQA,EAAOC,MACb,KAAKC,IACH,OAAO,EAET,KAAKA,IACL,KAAKA,IACH,OAAO,EAET,QACE,OAAOH,IAwGXu+G,yBAnF+B,WAA2B,IAA1Bv+G,EAAyB,uDAAjB,KAAMC,EAAW,uCACzD,OAAQA,EAAOC,MACb,KAAKC,IACH,IAAQ4B,EAAU9B,EAAOM,QAAjBwB,MACR,OAAOA,EAET,KAAK5B,IACL,KAAKA,IACH,OAAO,KAET,QACE,OAAOH,IAyEX87G,kBApGwB,WAA2B,IAA1B97G,EAAyB,uDAAjB,KAAMC,EAAW,uCAClD,OAAQA,EAAOC,MACb,KAAKC,IACH,IAAQ4B,EAAU9B,EAAOM,QAAjBwB,MACR,OAAOA,EAET,KAAK5B,IACL,KAAKA,IACH,OAAO,KAET,QACE,OAAOH,IA0FXw+G,YArEkB,WAA2B,IAA1Bx+G,EAAyB,uDAAjB,KAAMC,EAAW,uCAC5C,OAAQA,EAAOC,MACb,KAAKC,IACH,IAAQ4B,EAAU9B,EAAOM,QAAjBwB,MACR,OAAOA,EAET,KAAK5B,IACL,KAAKA,IACH,OAAO,KAET,QACE,OAAOH,IA2DXy+G,aAtDmB,WAA2B,IAA1Bz+G,EAAyB,uDAAjB,KAAMC,EAAW,uCAC7C,OAAQA,EAAOC,MACb,KAAKC,IACH,IAAQ4B,EAAU9B,EAAOM,QAAjBwB,MACR,OAAOA,EAET,KAAK5B,IACL,KAAKA,IACH,OAAO,KAET,QACE,OAAOH,IA4CX0+G,cAvCoB,WAA2B,IAA1B1+G,EAAyB,uDAAjB,KAAMC,EAAW,uCAC9C,OAAQA,EAAOC,MACb,KAAKC,IACH,IAAQ4B,EAAU9B,EAAOM,QAAjBwB,MACR,OAAOA,EAET,KAAK5B,IACL,KAAKA,IACH,OAAO,KAET,QACE,OAAOH,IA6BX+9H,kBAxBwB,WAA4B,IAA3B/9H,EAA0B,wDAAXC,EAAW,uCACnD,OAAQA,EAAOC,MACb,KAAKC,IACH,OAAO,EAET,QACE,OAAOH,MAqBE6f,MAGR,IAAMpd,EAAc,SAACzC,GAAD,OAAWA,EAAM6f,eAW/BypQ,EAAiB,SAACtpR,GAAD,uBAC5ByC,EAAYzC,GAAOw/B,aADS,aAC5B,EAA0Bxd,KAAI,SAAC5T,GAAD,OATP,SAACpO,EAAOoO,GAC/B,IAAMwnD,EAASnzD,EAAYzC,GAAO25G,KAAKvrG,GAEvC,OAAO,eACFwnD,GAKiC2zN,CAAUvpR,EAAOoO,OAE5Cs7Q,EAA6B,SAAC1pR,EAAOsB,GAAR,OACxCgoR,EAAetpR,GAAOs8B,QACpB,SAACs5B,GAAD,OACEt0D,KACEA,EAAWiE,YAAcjE,EAAWiE,aAAeqwD,EAAOrwD,eAC1DjE,EAAWoD,gBAAkBpD,EAAWoD,iBAAmBkxD,EAAOlxD,mBAClEpD,EAAWsD,YAActD,EAAWsD,aAAegxD,EAAOhxD,eAC1DtD,EAAWwD,eAAiBxD,EAAWwD,gBAAkB8wD,EAAO9wD,mBAK3D0kR,EAAqC,SAChDxpR,EACAsB,EACAmoR,GAEA,MAAkB,YAAdA,EACKC,EAA2B1pR,EAAOsB,GAAYg7B,QAAO,SAACtrB,GAAD,OAAOA,EAAE2vO,SAAW,OACzD,YAAd8oC,EACFC,EAA2B1pR,EAAOsB,GAAYg7B,QAAO,SAACtrB,GAAD,OAAOA,EAAE2vO,UAAY,OAE1E+oC,EAA2B1pR,EAAOsB,K,8JCvBvCwe,EAAqBzf,YAAgB,CACzCs5G,KAzTW,WAAyB,IAAxB35G,EAAuB,uDAAf,GAAIC,EAAW,uCACnC,OAAQA,EAAOC,MAEb,KAAKC,IACL,KAAKA,IACH,MAA4BF,EAAOM,QAA3B2d,EAAR,EAAQA,SAAUshB,EAAlB,EAAkBA,MACZrf,EAAQ,eAAQngB,GAQtB,OAPAw/B,EAAMrR,SAAQ,SAAC0nC,GACb11C,EAAS01C,GAAT,uCACK71D,EAAM61D,IACN33C,EAAS23C,IAFd,IAGE1/C,aAAa,OAGVgK,EAGT,KAAKhgB,IACH,MAA8BF,EAAOM,QAA7B6N,EAAR,EAAQA,GAAI6/B,EAAZ,EAAYA,MAAO2nB,EAAnB,EAAmBA,OACbz1C,EAAW69F,IAAKh+G,EAAOiuC,GAM7B,OALA9tB,EAAS/R,GAAT,2BACKwnD,GADL,IAEEz/C,aAAa,EACbkY,YAAY,IAEPlO,EAGT,KAAKhgB,IACH,IAAMy1D,EAAS31D,EAAOM,QAChB6N,EAAE,UAAMwnD,EAAO3gC,OAAb,YAAuB2gC,EAAOC,UAChC11C,EAAQ,2BACTngB,GADS,kBAEXoO,EAFW,uCAGP4vG,IAAKh+G,EAAMoO,GAAK,CAAC,eACjB4vG,IAAKpoD,EAAQ,CAAC,eAJP,IAKVz/C,aAAa,MAGjB,OAAOgK,EAIT,KAAKhgB,IACH,IAAMy1D,EAAS31D,EAAOM,QAChB4f,EAAQ,eAAQngB,GAMtB,OALAmgB,EAASy1C,EAAOjC,QAAhB,yBACEtlC,YAAY,GACTunC,GAFL,IAGEz/C,aAAa,IAERgK,EAGT,KAAKhgB,IACH,IAAMy1D,EAAS31D,EAAOM,QAChB6N,EAAE,UAAMwnD,EAAO3gC,OAAb,YAAuB2gC,EAAOC,UAChC11C,EAAQ,2BACTngB,GADS,kBAEXoO,EAFW,2BAGPpO,EAAMoO,IAHC,IAIVg3K,UAAWplL,EAAMoO,GACjB+H,aAAa,GACVy/C,KAGP,OAAOz1C,EAIT,KAAKhgB,IACH,IAAQ8tC,EAAUhuC,EAAOM,QAAjB0tC,MACR,OAAIjuC,EAAMiuC,GACD+vE,IAAKh+G,EAAOiuC,GAEdjuC,EAGT,KAAKG,IACH,IAAQilL,EAAcnlL,EAAOM,QAArB6kL,UACR,OAAO,2BACFplL,GADL,kBAEGolL,EAAUvvH,SAFb,uCAGOmoD,IAAKh+G,EAAMolL,EAAUvvH,UAAW,CAAC,eACjCuvH,GAJP,IAKIjvK,aAAa,MAMnB,KAAKhW,IACH,IAAQiO,EAAOnO,EAAOM,QAAd6N,GACR,OAAO4vG,IAAKh+G,EAAOoO,GAIrB,QACE,OAAOpO,IAwNXw/B,MAnNY,WAAyB,IAAxBx/B,EAAuB,uDAAf,GAAIC,EAAW,uCACpC,OAAQA,EAAOC,MAEb,KAAKC,IACH,IAAQq/B,EAAUv/B,EAAOM,QAAjBi/B,MACR,OAAOs6E,IAAMt6E,GAGf,KAAKr/B,IACH,IAAQq/B,EAAUv/B,EAAOM,QAAjBi/B,MACR,OAAO+yB,IAAK,GAAD,mBAAKvyD,GAAL,YAAew/B,KAG5B,KAAKr/B,IACH,MAAsBF,EAAOM,QAArB6N,EAAR,EAAQA,GAAI6/B,EAAZ,EAAYA,MACZ,OAAOjuC,EAAMgiB,KAAI,SAAC6zC,GAAD,OAAeA,IAAa5nB,EAAQ7/B,EAAKynD,KAG5D,KAAK11D,IACH,IAAQiO,EAAOnO,EAAOM,QAAd6N,GACR,OAAOpO,EAAMs8B,QAAO,SAAC+sP,GAAD,OAAmBA,IAAkBj7Q,KAI3D,KAAKjO,IACH,IAAMy1D,EAAS31D,EAAOM,QACtB,MAAM,GAAN,mBAAWP,GAAX,CAAkB41D,EAAOjC,SAI3B,KAAKxzD,IACH,IAAQ8tC,EAAUhuC,EAAOM,QAAjB0tC,MACR,OAAOjuC,EAAMs8B,QAAO,SAAC+sP,GAAD,OAAmBA,IAAkBp7O,KAI3D,QACE,OAAOjuC,IA+KXm+G,sBA1J4B,WAA4B,IAA3Bn+G,EAA0B,wDAAXC,EAAW,uCACvD,OAAQA,EAAOC,MACb,KAAKC,IACH,OAAO,EAET,KAAKA,IACL,KAAKA,IACH,OAAO,EAET,QACE,OAAOH,IAiJX47G,eA1KqB,WAA4B,IAA3B57G,EAA0B,wDAAXC,EAAW,uCAChD,OAAQA,EAAOC,MACb,KAAKC,IACH,OAAO,EAET,KAAKA,IACL,KAAKA,IACH,OAAO,EAET,QACE,OAAOH,IAiKXo+G,SA7Ie,WAA4B,IAA3Bp+G,EAA0B,wDAAXC,EAAW,uCAC1C,OAAQA,EAAOC,MACb,KAAKC,IACH,OAAO,EAET,KAAKA,IACL,KAAKA,IACH,OAAO,EAET,QACE,OAAOH,IAoIXq+G,UA/HgB,WAA4B,IAA3Br+G,EAA0B,wDAAXC,EAAW,uCAC3C,OAAQA,EAAOC,MACb,KAAKC,IACH,OAAO,EAET,KAAKA,IACL,KAAKA,IACH,OAAO,EAET,QACE,OAAOH,IAsHXs+G,WAjHiB,WAA4B,IAA3Bt+G,EAA0B,wDAAXC,EAAW,uCAC5C,OAAQA,EAAOC,MACb,KAAKC,IACH,OAAO,EAET,KAAKA,IACL,KAAKA,IACH,OAAO,EAET,QACE,OAAOH,IAwGXu+G,yBAnF+B,WAA2B,IAA1Bv+G,EAAyB,uDAAjB,KAAMC,EAAW,uCACzD,OAAQA,EAAOC,MACb,KAAKC,IACH,IAAQ4B,EAAU9B,EAAOM,QAAjBwB,MACR,OAAOA,EAET,KAAK5B,IACL,KAAKA,IACH,OAAO,KAET,QACE,OAAOH,IAyEX87G,kBApGwB,WAA2B,IAA1B97G,EAAyB,uDAAjB,KAAMC,EAAW,uCAClD,OAAQA,EAAOC,MACb,KAAKC,IACH,IAAQ4B,EAAU9B,EAAOM,QAAjBwB,MACR,OAAOA,EAET,KAAK5B,IACL,KAAKA,IACH,OAAO,KAET,QACE,OAAOH,IA0FXw+G,YArEkB,WAA2B,IAA1Bx+G,EAAyB,uDAAjB,KAAMC,EAAW,uCAC5C,OAAQA,EAAOC,MACb,KAAKC,IACH,IAAQ4B,EAAU9B,EAAOM,QAAjBwB,MACR,OAAOA,EAET,KAAK5B,IACL,KAAKA,IACH,OAAO,KAET,QACE,OAAOH,IA2DXy+G,aAtDmB,WAA2B,IAA1Bz+G,EAAyB,uDAAjB,KAAMC,EAAW,uCAC7C,OAAQA,EAAOC,MACb,KAAKC,IACH,IAAQ4B,EAAU9B,EAAOM,QAAjBwB,MACR,OAAOA,EAET,KAAK5B,IACL,KAAKA,IACH,OAAO,KAET,QACE,OAAOH,IA4CX0+G,cAvCoB,WAA2B,IAA1B1+G,EAAyB,uDAAjB,KAAMC,EAAW,uCAC9C,OAAQA,EAAOC,MACb,KAAKC,IACH,IAAQ4B,EAAU9B,EAAOM,QAAjBwB,MACR,OAAOA,EAET,KAAK5B,IACL,KAAKA,IACH,OAAO,KAET,QACE,OAAOH,IA6BX+9H,kBAxBwB,WAA4B,IAA3B/9H,EAA0B,wDAAXC,EAAW,uCACnD,OAAQA,EAAOC,MACb,KAAKC,IACH,OAAO,EAET,QACE,OAAOH,MAqBE8f,MAGR,IAAMrd,EAAc,SAACzC,GAAD,OAAWA,EAAM8f,oBAW/BwpQ,EAAiB,SAACtpR,GAAD,uBAC5ByC,EAAYzC,GAAOw/B,aADS,aAC5B,EAA0Bxd,KAAI,SAAC5T,GAAD,OATP,SAACpO,EAAOoO,GAC/B,IAAMwnD,EAASnzD,EAAYzC,GAAO25G,KAAKvrG,GAEvC,OAAO,eACFwnD,GAKiC2zN,CAAUvpR,EAAOoO,OAE5Cs7Q,EAA6B,SAAC1pR,EAAOsB,GAAR,OACxCgoR,EAAetpR,GAAOs8B,QACpB,SAACs5B,GAAD,OACEt0D,KACEA,EAAWiE,YAAcjE,EAAWiE,aAAeqwD,EAAOrwD,eAC1DjE,EAAWoD,gBAAkBpD,EAAWoD,iBAAmBkxD,EAAOlxD,mBAClEpD,EAAWsD,YAActD,EAAWsD,aAAegxD,EAAOhxD,eAC1DtD,EAAWwD,eAAiBxD,EAAWwD,gBAAkB8wD,EAAO9wD,mBAK3D0kR,EAAqC,SAChDxpR,EACAsB,EACAmoR,GAEA,MAAkB,YAAdA,EAEKC,EAA2B1pR,EAAOsB,GAAYg7B,QAAO,SAACtrB,GAAD,OAAOA,EAAE2vO,SAAW,OACzD,YAAd8oC,EAEFC,EAA2B1pR,EAAOsB,GAAYg7B,QAAO,SAACtrB,GAAD,OAAOA,EAAE2vO,UAAY,OAE1E+oC,EAA2B1pR,EAAOsB,K,gMCxFvCyb,EAAY1c,YAAgB,CAChCs5G,KA1TW,WAAyB,IAAxB35G,EAAuB,uDAAf,GAAIC,EAAW,uCACnC,OAAQA,EAAOC,MAEb,KAAKC,IACL,KAAKA,IACH,MAA4BF,EAAOM,QAA3B2d,EAAR,EAAQA,SAAUshB,EAAlB,EAAkBA,MACZrf,EAAQ,eAAQngB,GAStB,OARAw/B,EAAMrR,SAAQ,SAACqpC,GACbr3C,EAASq3C,GAAT,qCACEnpC,YAAY,GACTruB,EAAMw3D,IACNt5C,EAASs5C,IAHd,IAIErhD,aAAa,OAGVgK,EAGT,KAAKhgB,IACH,MAAgCF,EAAOM,QAA/B6N,EAAR,EAAQA,GAAI6/B,EAAZ,EAAYA,MAAOiG,EAAnB,EAAmBA,SACb/zB,EAAW69F,IAAKh+G,EAAOiuC,GAM7B,OALA9tB,EAAS/R,GAAT,2BACK8lC,GADL,IAEE/9B,aAAa,EACbkY,YAAY,IAEPlO,EAGT,KAAKhgB,IACH,IAAM+zC,EAAWj0C,EAAOM,QAClB6N,EAAK8lC,EAASsjB,WACdr3C,EAAQ,2BACTngB,GADS,kBAEXoO,EAFW,uCAGP4vG,IAAKh+G,EAAMoO,GAAK,CAAC,iBACjB4vG,IAAK9pE,EAAU,CAAC,iBAJT,IAKV/9B,aAAa,MAGjB,OAAOgK,EAIT,KAAKhgB,IACH,IAAM+zC,EAAWj0C,EAAOM,QAClB4f,EAAQ,eAAQngB,GAMtB,OALAmgB,EAAS+zB,EAASyf,QAAlB,yBACEtlC,YAAY,GACT6lB,GAFL,IAGE/9B,aAAa,IAERgK,EAGT,KAAKhgB,IACH,IAAM+zC,EAAWj0C,EAAOM,QAClB6N,EAAK8lC,EAASsjB,WACdr3C,EAAQ,2BACTngB,GADS,kBAEXoO,EAFW,2BAGPpO,EAAMoO,IAHC,IAIVw3N,YAAa5lO,EAAMoO,GACnB+H,aAAa,GACV+9B,KAGP,OAAO/zB,EAIT,KAAKhgB,IACH,IAAQ8tC,EAAUhuC,EAAOM,QAAjB0tC,MACR,OAAIjuC,EAAMiuC,GACD+vE,IAAKh+G,EAAOiuC,GAEdjuC,EAGT,KAAKG,IACH,IAAQylO,EAAgB3lO,EAAOM,QAAvBqlO,YACR,OAAO,2BACF5lO,GADL,kBAEG4lO,EAAYpuK,WAFf,uCAGOwmD,IAAKh+G,EAAM4lO,EAAYpuK,YAAa,CAAC,iBACrCouK,GAJP,IAKIzvN,aAAa,MAMnB,KAAKhW,IACH,IAAQiO,EAAOnO,EAAOM,QAAd6N,GACR,OAAO4vG,IAAKh+G,EAAOoO,GAIrB,QACE,OAAOpO,IAwNXw/B,MAnNY,WAAyB,IAAxBx/B,EAAuB,uDAAf,GAAIC,EAAW,uCACpC,OAAQA,EAAOC,MAEb,KAAKC,IACH,IAAQq/B,EAAUv/B,EAAOM,QAAjBi/B,MACR,OAAOs6E,IAAMt6E,GAGf,KAAKr/B,IACH,IAAQq/B,EAAUv/B,EAAOM,QAAjBi/B,MACR,OAAO+yB,IAAK,GAAD,mBAAKvyD,GAAL,YAAew/B,KAG5B,KAAKr/B,IACH,MAAsBF,EAAOM,QAArB6N,EAAR,EAAQA,GAAI6/B,EAAZ,EAAYA,MACZ,OAAOjuC,EAAMgiB,KAAI,SAACw1C,GAAD,OAAiBA,IAAevpB,EAAQ7/B,EAAKopD,KAGhE,KAAKr3D,IACH,IAAQiO,EAAOnO,EAAOM,QAAd6N,GACR,OAAOpO,EAAMs8B,QAAO,SAACqtP,GAAD,OAAqBA,IAAoBv7Q,KAI/D,KAAKjO,IACH,IAAM+zC,EAAWj0C,EAAOM,QACxB,MAAM,GAAN,mBAAWP,GAAX,CAAkBk0C,EAASyf,SAI7B,KAAKxzD,IACH,IAAQ8tC,EAAUhuC,EAAOM,QAAjB0tC,MACR,OAAOjuC,EAAMs8B,QAAO,SAACqtP,GAAD,OAAqBA,IAAoB17O,KAI/D,QACE,OAAOjuC,IA+KXm+G,sBA1J4B,WAA4B,IAA3Bn+G,EAA0B,wDAAXC,EAAW,uCACvD,OAAQA,EAAOC,MACb,KAAKC,IACH,OAAO,EAET,KAAKA,IACL,KAAKA,IACH,OAAO,EAET,QACE,OAAOH,IAiJX47G,eA1KqB,WAA4B,IAA3B57G,EAA0B,wDAAXC,EAAW,uCAChD,OAAQA,EAAOC,MACb,KAAKC,IACH,OAAO,EAET,KAAKA,IACL,KAAKA,IACH,OAAO,EAET,QACE,OAAOH,IAiKXo+G,SA7Ie,WAA4B,IAA3Bp+G,EAA0B,wDAAXC,EAAW,uCAC1C,OAAQA,EAAOC,MACb,KAAKC,IACH,OAAO,EAET,KAAKA,IACL,KAAKA,IACH,OAAO,EAET,QACE,OAAOH,IAoIXq+G,UA/HgB,WAA4B,IAA3Br+G,EAA0B,wDAAXC,EAAW,uCAC3C,OAAQA,EAAOC,MACb,KAAKC,IACH,OAAO,EAET,KAAKA,IACL,KAAKA,IACH,OAAO,EAET,QACE,OAAOH,IAsHXs+G,WAjHiB,WAA4B,IAA3Bt+G,EAA0B,wDAAXC,EAAW,uCAC5C,OAAQA,EAAOC,MACb,KAAKC,IACH,OAAO,EAET,KAAKA,IACL,KAAKA,IACH,OAAO,EAET,QACE,OAAOH,IAwGXu+G,yBAnF+B,WAA2B,IAA1Bv+G,EAAyB,uDAAjB,KAAMC,EAAW,uCACzD,OAAQA,EAAOC,MACb,KAAKC,IACH,IAAQ4B,EAAU9B,EAAOM,QAAjBwB,MACR,OAAOA,EAET,KAAK5B,IACL,KAAKA,IACH,OAAO,KAET,QACE,OAAOH,IAyEX87G,kBApGwB,WAA2B,IAA1B97G,EAAyB,uDAAjB,KAAMC,EAAW,uCAClD,OAAQA,EAAOC,MACb,KAAKC,IACH,IAAQ4B,EAAU9B,EAAOM,QAAjBwB,MACR,OAAOA,EAET,KAAK5B,IACL,KAAKA,IACH,OAAO,KAET,QACE,OAAOH,IA0FXw+G,YArEkB,WAA2B,IAA1Bx+G,EAAyB,uDAAjB,KAAMC,EAAW,uCAC5C,OAAQA,EAAOC,MACb,KAAKC,IACH,IAAQ4B,EAAU9B,EAAOM,QAAjBwB,MACR,OAAOA,EAET,KAAK5B,IACL,KAAKA,IACH,OAAO,KAET,QACE,OAAOH,IA2DXy+G,aAtDmB,WAA2B,IAA1Bz+G,EAAyB,uDAAjB,KAAMC,EAAW,uCAC7C,OAAQA,EAAOC,MACb,KAAKC,IACH,IAAQ4B,EAAU9B,EAAOM,QAAjBwB,MACR,OAAOA,EAET,KAAK5B,IACL,KAAKA,IACH,OAAO,KAET,QACE,OAAOH,IA4CX0+G,cAvCoB,WAA2B,IAA1B1+G,EAAyB,uDAAjB,KAAMC,EAAW,uCAC9C,OAAQA,EAAOC,MACb,KAAKC,IACH,IAAQ4B,EAAU9B,EAAOM,QAAjBwB,MACR,OAAOA,EAET,KAAK5B,IACL,KAAKA,IACH,OAAO,KAET,QACE,OAAOH,IA6BX+9H,kBAxBwB,WAA4B,IAA3B/9H,EAA0B,wDAAXC,EAAW,uCACnD,OAAQA,EAAOC,MACb,KAAKC,IACH,OAAO,EAET,QACE,OAAOH,MAqBE+c,MAGR,IAAMta,EAAc,SAACzC,GAAD,OAAWA,EAAM+c,WAW/BsrQ,EAAmB,SAACroR,GAAD,uBAC9ByC,EAAYzC,GAAOw/B,aADW,aAC9B,EAA0Bxd,KAAI,SAAC5T,GAAD,OATL,SAACpO,EAAOoO,GACjC,IAAM8lC,EAAWzxC,EAAYzC,GAAO25G,KAAKvrG,GAEzC,OAAO,eACF8lC,GAKiCo0O,CAAYtoR,EAAOoO,OAE9Cw7Q,EAA+B,SAAC5pR,EAAOsB,GAElD,OAAIA,EAAWoD,eACN2jR,EAAiBroR,GAAOs8B,QAC7B,SAAC4X,GAAD,OAAcA,EAASxvC,iBAAmBpD,EAAWoD,kBAI7C2jR,EAAiBroR,IAMlB6pR,EAA2B,SAAC7pR,GAAD,OAAWyC,EAAYzC,GAAO+9H,oB,mCCzWhE7hG,EAAe,U,OAAGtiB,EAAIkwQ,iCAAP,QAAoC,KAC1C5tP,O,iLCYFm7B,EAA8C,SACzDnrD,EACAzC,GAEA,cAAOyC,QAAP,IAAOA,OAAP,EAAOA,EAAM8V,KAAI,SAAC4zC,GAAY,IAAD,EACrBm7J,EAAIn7J,EAAOm0N,gBAAkBn0N,EAAOX,SACpC+0N,EAAOh/K,MAAM+lH,GAAK,EAAIA,EACtBk5D,GAAMr0N,EAAOutN,UAAY6G,GAAQp0N,EAAOutN,UAAa,IACrDxiC,EAAWspC,GAAK,EAAI,EAAIA,EAAI,IAAM,IAAMA,EACxCC,EAAmB,UAAM9kL,aAAiBu7I,GAAvB,KACnBwpC,EAAiCh/E,IAAOv1I,EAAOw0N,eAErD,OAAO,2BACFx0N,GADL,IAEEo0N,OACArpC,WACAypC,cAAeD,EACfE,UAAW1pC,EACXupC,sBACAI,oBAAqB7gR,EAAK0E,cAAc,CACtCC,GAAG,gCAAD,iBAAkCwnD,EAAO+sN,qBAAzC,QAA0D/sN,EAAO20N,sBAM9DC,EAA2C,SACtDt+Q,EACAwkQ,GACI,IAAD,gBACG3qO,EAA8B,GA8CpC,OA3CAA,EAAWvpB,KAAK,CACdlH,MACE,mCACE,cAAC,IAAD,CAAkBlH,GAAG,sCAGzB6L,KAAM,EACN1V,YAAa,CAACkmR,IAAW/nJ,cACzB4c,aAAa,GAAD,OAAKl6C,aAAgB,UAACl5F,SAAD,iBAAC,EAAM8c,cAAP,aAAC,EAAc1G,aAChDuqH,QAAS6jI,EAAOga,aAIlB3kP,EAAWvpB,KAAK,CACdlH,MACE,mCACE,cAAC,IAAD,CAAkBlH,GAAG,wCAGzB6L,KAAM,EACN1V,YAAa,CAACkmR,IAAW7nJ,eACzB0c,aAAa,GAAD,OAAKl6C,aAAgB,UAC/Bl5F,SAD+B,iBAC/B,EAAMowB,QAAO,SAACs5B,GAAD,aAAY,iBAACA,QAAD,IAACA,OAAD,EAACA,EAAQo0N,YAAT,QAAiB,GAAK,YADhB,iBAC/B,EAAmDhhQ,cADpB,aAC/B,EAA2D1G,aAE7DuqH,QAAS6jI,EAAOia,kBAIlB5kP,EAAWvpB,KAAK,CACdlH,MACE,mCACE,cAAC,IAAD,CAAkBlH,GAAG,wCAGzB6L,KAAM,EACN1V,YAAa,CAACkmR,IAAW9nJ,gBACzB2c,aAAa,GAAD,OAAKl6C,aAAgB,UAC/Bl5F,SAD+B,iBAC/B,EAAMowB,QAAO,SAACs5B,GAAD,aAAY,iBAACA,QAAD,IAACA,OAAD,EAACA,EAAQo0N,YAAT,QAAiB,IAAM,YADjB,iBAC/B,EAAoDhhQ,cADrB,aAC/B,EAA4D1G,aAE9DuqH,QAAS6jI,EAAOka,iBAIX,CAAE7kP,aAAY75B,KAFrBA,EAAOy1M,IAAQz1M,EAAM,OAAQ,U,8NC0DzBsjO,EAAiBnvO,YAAgB,CACrCs5G,KAvIW,WAAyB,IAAxB35G,EAAuB,uDAAf,GAAIC,EAAW,uCACnC,OAAQA,EAAOC,MACb,KAAKkgB,IACH,MAAO,GAGT,KAAKjgB,IACH,MAA4BF,EAAOM,QAA3B2d,EAAR,EAAQA,SAAUshB,EAAlB,EAAkBA,MACZrf,EAAQ,eAAQngB,GAUtB,OATAw/B,EAAMrR,SAAQ,SAACo0B,GACbpiC,EAASoiC,GAAT,qCACEl0B,YAAY,EACZ89F,aAAa,GACVnsH,EAAMuiD,IACNrkC,EAASqkC,IAJd,IAKEpsC,aAAa,OAGVgK,EAIT,KAAKhgB,IACH,MAA4BF,EAAOM,QAA3B4e,EAAR,EAAQA,KAAMyjC,EAAd,EAAcA,UACRziC,EAAQ,eAAQngB,GAOtB,OANAmf,EAAK3a,MAAM,KAAK2pB,SAAQ,SAACo0B,GACvBpiC,EAASoiC,GAAT,2BACKviD,EAAMuiD,IADX,IAEEK,UAAWA,OAGRziC,EAIT,QACE,OAAOngB,IAoGXw/B,MA/FY,WAAyB,IAAxBx/B,EAAuB,uDAAf,GAAIC,EAAW,uCACpC,OAAQA,EAAOC,MACb,KAAKkgB,IACH,MAAO,GAGT,KAAKjgB,IACH,IAAQq/B,EAAUv/B,EAAOM,QAAjBi/B,MACR,OAAOs6E,IAAMt6E,GAIf,QACE,OAAOx/B,IAmFX47G,eA7EqB,WAA4B,IAA3B57G,EAA0B,wDAAXC,EAAW,uCAChD,OAAQA,EAAOC,MACb,KAAKkgB,IACH,OAAO,EAET,KAAKjgB,IACH,OAAO,EAET,KAAKA,IACL,KAAKA,IACH,OAAO,EAET,QACE,OAAOH,IAiEX6qR,iBA5DuB,WAA4B,IAA3B7qR,EAA0B,wDAAXC,EAAW,uCAClD,OAAQA,EAAOC,MACb,KAAKkgB,IACH,OAAO,EAET,KAAKjgB,IACH,OAAO,EAET,KAAKA,IACL,KAAKA,IACH,OAAO,EAET,QACE,OAAOH,IAgDX87G,kBA3CwB,WAA2B,IAA1B97G,EAAyB,uDAAjB,KAAMC,EAAW,uCAClD,OAAQA,EAAOC,MACb,KAAKkgB,IACH,OAAO,KAET,KAAKjgB,IACH,IAAQ4B,EAAU9B,EAAOM,QAAjBwB,MACR,OAAOA,EAET,KAAK5B,IACL,KAAKA,IACH,OAAO,KAET,QACE,OAAOH,IA8BX8qR,oBAzB0B,WAA2B,IAA1B9qR,EAAyB,uDAAjB,KAAMC,EAAW,uCACpD,OAAQA,EAAOC,MACb,KAAKkgB,IACH,OAAO,KAET,KAAKjgB,IACH,IAAQ4B,EAAU9B,EAAOM,QAAjBwB,MACR,OAAOA,EAET,KAAK5B,IACL,KAAKA,IACH,OAAO,KAET,QACE,OAAOH,MAcP+qR,EAA2B,CAC/B7oR,IAAK,YACLC,QAASC,IACTC,gBAAiBC,IACjBC,UAAW,CAAC,iBAAkB,oBAC9BgqH,UAAW,CAAC,OAAQ,UAGP/pH,cAAeuoR,EAA0Bv7C,G,kBCFlDE,G,OAAkBrvO,YAAgB,CACtC0lC,WArJiB,WAAyB,IAAxB/lC,EAAuB,uDAAf,GAAIC,EAAW,uCACzC,OAAQA,EAAOC,MACb,KAAKkgB,IACH,MAAO,GAGT,KAAKjgB,IACH,IAAQ4lC,EAAe9lC,EAAOM,QAAtBwlC,WACR,OAAOA,EAIT,QACE,OAAO/lC,IAyIX25G,KApIW,WAAyB,IAAxB35G,EAAuB,uDAAf,GAAIC,EAAW,uCACnC,OAAQA,EAAOC,MACb,KAAKkgB,IACH,MAAO,GAGT,KAAKjgB,IACH,MAA4BF,EAAOM,QAA3B2d,EAAR,EAAQA,SAAUshB,EAAlB,EAAkBA,MACZrf,EAAQ,eAAQngB,GAUtB,OATAw/B,EAAMrR,SAAQ,SAACo0B,GACbpiC,EAASoiC,GAAT,qCACEl0B,YAAY,EACZ89F,aAAa,GACVnsH,EAAMuiD,IACNrkC,EAASqkC,IAJd,IAKEpsC,aAAa,OAGVgK,EAIT,QACE,OAAOngB,IA8GXw/B,MAzGY,WAAyB,IAAxBx/B,EAAuB,uDAAf,GAAIC,EAAW,uCACpC,OAAQA,EAAOC,MACb,KAAKkgB,IACH,MAAO,GAGT,KAAKjgB,IACH,IAAQq/B,EAAUv/B,EAAOM,QAAjBi/B,MACR,OAAOs6E,IAAMt6E,GAIf,QACE,OAAOx/B,IA6FXgrR,UAxFgB,WAAyB,IAAxBhrR,EAAuB,uDAAf,GAAIC,EAAW,uCACxC,OAAQA,EAAOC,MACb,KAAKkgB,IACH,MAAO,GAGT,KAAKjgB,IACH,MAAwCF,EAAOM,QAAvCwvP,EAAR,EAAQA,eAAgBC,EAAxB,EAAwBA,YAClB7vO,EAAQ,eAAQngB,GAUtB,OATAgwP,EAAY7hO,SAAQ,SAACo0B,GACnBpiC,EAASoiC,GAAT,qCACEl0B,YAAY,EACZ89F,aAAa,GACVnsH,EAAMuiD,IACNwtM,EAAextM,IAJpB,IAKEpsC,aAAa,OAGVgK,EAIT,QACE,OAAOngB,IAkEXirR,WA7DiB,WAAyB,IAAxBjrR,EAAuB,uDAAf,GAAIC,EAAW,uCACzC,OAAQA,EAAOC,MACb,KAAKkgB,IACH,MAAO,GAGT,KAAKjgB,IACH,IAAQ6vP,EAAgB/vP,EAAOM,QAAvByvP,YACR,OAAOl2I,IAAMk2I,GAIf,QACE,OAAOhwP,IAiDX60K,WA3CiB,WAA4B,IAA3B70K,EAA0B,wDAAXC,EAAW,uCAC5C,OAAQA,EAAOC,MACb,KAAKkgB,IACH,OAAO,EAET,KAAKjgB,IACH,OAAO,EAET,KAAKA,IACL,KAAKA,IACH,OAAO,EAET,QACE,OAAOH,IA+BX80K,cA1BoB,WAA2B,IAA1B90K,EAAyB,uDAAjB,KAAMC,EAAW,uCAC9C,OAAQA,EAAOC,MACb,KAAKkgB,IACH,OAAO,KAET,KAAKjgB,IACH,IAAQ4B,EAAU9B,EAAOM,QAAjBwB,MACR,OAAOA,EAET,KAAK5B,IACL,KAAKA,IACH,OAAO,KAET,QACE,OAAOH,OAePkrR,EAA4B,CAChChpR,IAAK,aACLC,QAASC,IACTC,gBAAiBC,IACjBC,UAAW,CAAC,cACZgqH,UAAW,CAAC,aAAc,OAAQ,QAAS,YAAa,eAG3C/pH,cAAe0oR,EAA2Bx7C,G,0BC9GnDvwN,EAAO9e,YAAgB,CAC3B67P,gBACA1sB,YACAE,aACA/1H,KAvEW,WAAyB,IAAxB35G,EAAuB,uDAAf,GAAIC,EAAW,uCACnC,OAAQA,EAAOC,MACb,KAAKC,IACH,IAAQggD,EAAQlgD,EAAOM,QAAf4/C,IACFhgC,EAAQ,eAAQngB,GAMtB,OALAmgB,EAASggC,EAAIoC,OAAb,uCACKviD,EAAMmgD,EAAIoC,QACVpC,GAFL,IAGEhqC,aAAa,IAERgK,EAIT,QACE,OAAOngB,IAyDXw/B,MApDY,WAAyB,IAAxBx/B,EAAuB,uDAAf,GAAIC,EAAW,uCACpC,OAAQA,EAAOC,MAEb,KAAKC,IACH,IAAQggD,EAAQlgD,EAAOM,QAAf4/C,IACR,OAAOoS,IAAK,GAAD,mBAAKvyD,GAAL,CAAYmgD,EAAIoC,SAI7B,QACE,OAAOviD,IA2CX60K,WArCiB,WAA4B,IAA3B70K,EAA0B,wDAAXC,EAAW,uCAC5C,OAAQA,EAAOC,MACb,KAAKC,IACH,OAAO,EAET,KAAKA,IACL,KAAKA,IACH,OAAO,EAET,QACE,OAAOH,IA4BX80K,cAvBoB,WAA2B,IAA1B90K,EAAyB,uDAAjB,KAAMC,EAAW,uCAC9C,OAAQA,EAAOC,MACb,KAAKC,IACH,IAAQ4B,EAAU9B,EAAOM,QAAjBwB,MACR,OAAOA,EAET,KAAK5B,IACL,KAAKA,IACH,OAAO,KAET,QACE,OAAOH,MAkBAyC,GAHE0c,MAGY,SAACnf,GAAD,OAAWA,EAAMmf,OAG/BgsQ,EAAS,SAACnrR,EAAOuiD,GAC5B,IAAMpC,EAAM19C,EAAYzC,GAAO25G,KAAKp3D,GACpC,OAAIpC,QAEG,GAmBIirO,EAAgB,SAACprR,GAAD,OAAWyC,EAAYzC,GAAO60K,a,kFC7C5Cw2G,EApEa,CAC1B,CACEC,SAAU,EACV/oK,MAAO,2BACP/mG,SAAU,cAEZ,CACE8vQ,SAAU,EACV/oK,MAAO,2BACP/mG,SAAU,aAEZ,CACE8vQ,SAAU,EACV/oK,MAAO,2BACP/mG,SAAU,SAEZ,CACE8vQ,SAAU,EACV/oK,MAAO,2BACP/mG,SAAU,aAEZ,CACE8vQ,SAAU,EACV/oK,MAAO,2BACP/mG,SAAU,cAEZ,CACE8vQ,SAAU,EACV/oK,MAAO,2BACP/mG,SAAU,SAEZ,CACE8vQ,SAAU,EACV/oK,MAAO,2BACP/mG,SAAU,qBAEZ,CACE8vQ,SAAU,EACV/oK,MAAO,2BACP/mG,SAAU,UAEZ,CACE8vQ,SAAU,EACV/oK,MAAO,2BACP/mG,SAAU,SAEZ,CACE8vQ,SAAU,GACV/oK,MAAO,4BACP/mG,SAAU,QAEZ,CACE8vQ,SAAU,GACV/oK,MAAO,4BACP/mG,SAAU,WAEZ,CACE8vQ,SAAU,GACV/oK,MAAO,4BACP/mG,SAAU,WAEZ,CACE8vQ,SAAU,GACV/oK,MAAO,4BACP/mG,SAAU,Q,yBC7CR+vQ,EAAgB,SAACl1Q,GACrB,IAAQhI,EAAagI,EAAbhI,KAAMD,EAAOiI,EAAPjI,GACR3E,EAAOG,cAEb,EAAoC6iI,mBAASzwG,KAAKD,OAAlD,mBAAO+rM,EAAP,UAKA,OACE,cAACrjH,EAAA,EAAD,aACEp2G,KAAI,OAAEA,QAAF,IAAEA,IAAQ,YACdD,GAAE,OAAEA,QAAF,IAAEA,IAAM,YAEVm0G,MAAO,cAAC,IAAD,CAAkBn0G,GAAG,gBAC5By2G,QAASwmK,EAAoBrpQ,KAAI,SAAColG,GAChC,MAAO,CACLh5G,GAAIg5G,EAAOkkK,SACX30Q,MAAOywG,EACPv4G,KAAM,cAAC,IAAD,CAAMA,KAAMu4G,EAAO5rG,WACzB+mG,MAAO94G,EAAK0E,cAAc,CAAEC,GAAIg5G,EAAO7E,QACvCI,WAAYl5G,EAAK0E,cAAc,CAAEC,GAAIg5G,EAAO7E,aAG5ClsG,GAXCyxN,IA8BI0jD,IAdiB,SAACn1Q,GAC/B,OACE,cAACo1Q,EAAA,EAAD,CACEp9Q,KAAK,YACLD,GAAI,YACJg7F,UAAU,EACV+d,aAAa,EACbytF,UAAW22E,EACXrrR,KAAM,SACNsqL,aAAcn0K,EAAMm0K,iB,wsgjBCzD1B,IAAIxoK,EAAM,CACT,kBAAmB,KACnB,qBAAsB,KACtB,aAAc,IACd,sBAAuB,KACvB,sBAAuB,KACvB,2BAA4B,KAC5B,iBAAkB,KAClB,sBAAuB,MAIxB,SAAS0pP,EAAeC,GACvB,IAAIv9P,EAAKw9P,EAAsBD,GAC/B,OAAOE,EAAoBz9P,GAE5B,SAASw9P,EAAsBD,GAC9B,IAAIE,EAAoBlmJ,EAAE3jG,EAAK2pP,GAAM,CACpC,IAAI1hK,EAAI,IAAIkF,MAAM,uBAAyBw8J,EAAM,KAEjD,MADA1hK,EAAE96E,KAAO,mBACH86E,EAEP,OAAOjoF,EAAI2pP,GAEZD,EAAe/3I,KAAO,WACrB,OAAO1qB,OAAO0qB,KAAK3xG,IAEpB0pP,EAAet/P,QAAUw/P,EACzBzhP,EAAO2hP,QAAUJ,EACjBA,EAAet9P,GAAK,M,gCC7BpB,2EAMAqM,OAAOk7L,MAAQA,IACfl7L,OAAOixQ,iBAAmBA,IAC1BjxQ,OAAOkxQ,SAAWA,IAClBlxQ,OAAO64J,EAAI74J,OAAOmxQ,OAASC,K,gBCT3B,IAAI7pQ,EAAM,CACT,sBAAuB,KACvB,yBAA0B,KAC1B,iBAAkB,KAClB,0BAA2B,KAC3B,0BAA2B,KAC3B,+BAAgC,KAChC,qBAAsB,KACtB,0BAA2B,MAI5B,SAAS0pP,EAAeC,GACvB,IAAIv9P,EAAKw9P,EAAsBD,GAC/B,OAAOE,EAAoBz9P,GAE5B,SAASw9P,EAAsBD,GAC9B,IAAIE,EAAoBlmJ,EAAE3jG,EAAK2pP,GAAM,CACpC,IAAI1hK,EAAI,IAAIkF,MAAM,uBAAyBw8J,EAAM,KAEjD,MADA1hK,EAAE96E,KAAO,mBACH86E,EAEP,OAAOjoF,EAAI2pP,GAEZD,EAAe/3I,KAAO,WACrB,OAAO1qB,OAAO0qB,KAAK3xG,IAEpB0pP,EAAet/P,QAAUw/P,EACzBzhP,EAAO2hP,QAAUJ,EACjBA,EAAet9P,GAAK,M,kCC7BpB,OAAe,cAA0B,kC,kECAzC,OAAe,cAA0B,sC,6BCAzC,OAAe,cAA0B,sC,6BCAzC,OAAe,cAA0B,sC,6BCAzC,OAAe,cAA0B,sC,6BCAzC,OAAe,cAA0B,sC,6BCAzC,OAAe,cAA0B,sC,6BCAzC,OAAe,cAA0B,sC,6BCAzC,OAAe,cAA0B,sC,6BCAzC,OAAe,cAA0B,kC,6BCAzC,OAAe,cAA0B,kC,6BCAzC,OAAe,4iW,6BCAf,OAAe,cAA0B,kC,6BCAzC,OAAe,cAA0B,kC,6BCAzC,OAAe,cAA0B,kC,6BCAzC,OAAe,cAA0B,kC,k2t3DCAzC,OAAe,cAA0B,kC,6BCAzC,OAAe,cAA0B,kC,6BCAzC,OAAe,cAA0B,kC,6BCAzC,OAAe,cAA0B,kC,6BCAzC,OAAe,cAA0B,kC,6BCAzC,OAAe,cAA0B,kC,6BCAzC,OAAe,cAA0B,kC,8VCOnCqtB,EAAW7gB,KAAKC,MAAMH,aAAaC,QAAQ,aAC3CmxQ,EAAkBrwP,EAAWA,EAASswP,QAAU,KAEvC,MAAIC,IAAQF,GCTG,CAC5B,CACE7rR,OAAQ,OACRgsR,QAAS,U,kDCAPC,EAAc30B,0BAEd40B,EAAe,SAAC,GAAkB,IAAhBxiR,EAAe,EAAfA,SAEtB,EAA4B8iI,mBAAS,IAArC,mBAAOhoC,EAAP,KAAe2nL,EAAf,KA4CA,OAzCA5mK,qBAAU,WACR,GAAe,cAAX/qG,OAAwB,CAE1B,IAAM4xQ,EAAS,SAAAnyQ,GAAK,OAAIO,OAAO8qG,iBAAiBrS,SAASvxF,MAAMqlK,iBAAiB9sK,GAAOquF,QAGjFrC,EAAM,CACVvB,QAAS,CACP2nL,MAAOD,EAAO,aAAar/E,OAAO,MAClCu/E,KAAMF,EAAO,cAEfG,UAAW,CACTF,MAAOD,EAAO,eAAer/E,OAAO,MACpCu/E,KAAMF,EAAO,gBAEf39Q,QAAS,CACP49Q,MAAOD,EAAO,aAAar/E,OAAO,MAClCu/E,KAAMF,EAAO,cAEfI,OAAQ,CACNH,MAAOD,EAAO,YAAYr/E,OAAO,MACjCu/E,KAAMF,EAAO,aAEfK,QAAS,CACPJ,MAAOD,EAAO,aAAar/E,OAAO,MAClCu/E,KAAMF,EAAO,cAEf7sI,KAAM,CACJ8sI,MAAOD,EAAO,UAAUr/E,OAAO,MAC/Bu/E,KAAMF,EAAO,WAEfM,KAAM,CACJL,MAAOD,EAAO,UAAUr/E,OAAO,MAC/Bu/E,KAAMF,EAAO,YAIjBD,EAAU,eAAKlmL,OAEhB,IAEI,cAACgmL,EAAY5zB,SAAb,CAAsB3hP,MAAO,CAAE8tF,UAA/B,SAA0C96F,K,6DCsBnD4pM,IAAO3mE,OAhEc,SAAC,GAA+C,IAA7C5pB,EAA4C,EAA5CA,UAAWr5G,EAAiC,EAAjCA,SAAUkjI,EAAuB,EAAvBA,QAAYirD,EAAW,kDAElE,EAA8BrrD,oBAAS,GAAvC,mBAAOmgJ,EAAP,KAAgBC,EAAhB,KACA,EAAoCpgJ,oBAAS,GAA7C,mBAAOqgJ,EAAP,KAAmBC,EAAnB,KACA,EAA4BtgJ,mBAAS,CAAEz7H,GAAI,EAAGitP,GAAI,IAAlD,mBAAOr3D,EAAP,KAAeomF,EAAf,KA2BA,OAxBAxnK,qBAAU,WAER,OADAqnK,GAAW,GACJ,kBAAMA,GAAW,MACvB,IAGHrnK,qBAAU,WACJonK,KACgB,IAAdhmF,EAAO51L,IAA0B,IAAd41L,EAAOq3D,GAC5B8uB,GAAc,GACd3vG,YAAW,kBAAM2vG,GAAc,KAAQ,MAEvCA,GAAc,MAGjB,CAACnmF,IAGJphF,qBAAU,WACJonK,IACGE,GAAYE,EAAU,CAAEh8Q,GAAI,EAAGitP,GAAI,OAEzC,CAAC6uB,IAGF,eAACv5E,EAAA,EAAD,yBACEvwF,UAAW+0E,IAAW,eAAD,eAClB/0E,EAAYA,IAEf6pB,QAAS,SAAA5iC,GACP,IAAMgjL,EAAOhjL,EAAE8G,OAAOm8K,wBACtBF,EAAU,CAAEh8Q,EAAGi5F,EAAEkjL,QAAUF,EAAKzjC,KAAMyU,EAAGh0J,EAAEmjL,QAAUH,EAAK5jC,MACtDx8G,GACFA,EAAQ5iC,KAGR6tF,GAXN,cAaGnuL,EACAmjR,EACC,sBACE9pK,UAAU,eACVH,MAAO,CACL2mI,KAAM5iD,EAAO51L,EACbq4O,IAAKziD,EAAOq3D,KAGd,U,wECnDUovB,QACW,cAA7B5yQ,OAAOu3B,SAASs7O,UAEe,UAA7B7yQ,OAAOu3B,SAASs7O,UAEhB7yQ,OAAOu3B,SAASs7O,SAAS57O,MAAM,2D,+CCqCnC67O,aACE,2/BAKF,IAAMC,EAAUC,gBAAK,kBAAM,0DAYzBvkQ,QAAQC,IAAM,aACdD,QAAQnnB,MAAQ,aAChBmnB,QAAQwkQ,MAAQ,aAGlB/B,IAAS5/F,OACP,cAAC,IAAD,CAAiBn/K,OAfG,CACpB+gR,YAAa,mCACbC,YAAapnK,aACbqnK,iBAAiB,EACjBC,4BAA4B,GAW5B,SACE,cAACC,EAAA,EAAD,UACE,cAAC,IAAD,CAAoBC,iBAAkBC,QAAtC,SACE,cAAC,IAAD,CAAUr9Q,MAAOA,IAAjB,SACE,cAAC,IAAD,CAAaysD,UAAWA,IAAxB,SACE,cAAC,WAAD,CAAU6wN,SAAU,cAAC,IAAD,IAApB,SACE,cAAC,IAAe51B,SAAhB,CAAyB3hP,MAAOo1Q,EAAhC,SACE,cAAC,EAAD,UACE,eAAC,IAAD,WACE,cAACyB,EAAD,IACA,cAAC,IAAD,CAAgBW,aAAW,uBAU7Cj7K,SAASgqE,eAAe,SD2BpB,kBAAmBvsE,WACrBA,UAAUy9K,cAAcC,MAAMp4Q,MAAK,SAACq4Q,GAClCA,EAAaC,kB","file":"static/js/main.d0575cfb.chunk.js","sourcesContent":["/* -------------------------------------------------------------------------- */\n/* Reducer Auth */\n/* -------------------------------------------------------------------------- */\n// Este reducer contiene toda la informaciĆ³n del usuario en sesiĆ³n.\n\nimport jwtDecode from 'jwt-decode';\nimport { combineReducers } from 'redux';\nimport camelcaseKeys from 'camelcase-keys';\nimport { persistReducer } from 'redux-persist';\nimport localforage from 'localforage';\nimport autoMergeLevel2 from 'redux-persist/lib/stateReconciler/autoMergeLevel2';\nimport * as organizationSelectors from 'views/screens/Organizations/reducers';\nimport * as types from '../../types/auth';\nimport { tsNullKeyword } from '@babel/types';\n\nconst token = (state = null, action) => {\n switch (action.type) {\n case types.AUTHENTICATION_STARTED: {\n return null;\n }\n case types.AUTHENTICATION_COMPLETED: {\n return action.payload.token;\n }\n case types.TOKEN_REFRESH_COMPLETED: {\n return action.payload.newToken;\n }\n case types.TOKEN_REFRESH_FAILED: {\n return action.payload.tokenRefreshFailCount && tokenRefreshFailCount >= 2 ? null : state;\n }\n case types.AUTHENTICATION_FAILED: {\n return null;\n }\n case types.AUTHENTICATION_IDENTITY_CLEARED: {\n return null;\n }\n default: {\n return state;\n }\n }\n};\n\nconst tokenRefreshFailCount = (state = null, action) => {\n switch (action.type) {\n case types.TOKEN_REFRESH_COMPLETED: {\n return 0;\n }\n case types.TOKEN_REFRESH_FAILED: {\n return state + 1;\n }\n default: {\n return state;\n }\n }\n};\n\nconst user = (state = null, action) => {\n switch (action.type) {\n case types.AUTHENTICATION_STARTED: {\n return null;\n }\n case types.AUTHENTICATION_COMPLETED: {\n return camelcaseKeys(jwtDecode(action.payload.token));\n }\n case types.TOKEN_REFRESH_COMPLETED: {\n return camelcaseKeys(jwtDecode(action.payload.newToken));\n }\n case types.AUTHENTICATION_FAILED: {\n return null;\n }\n case types.AUTHENTICATION_IDENTITY_CLEARED: {\n return null;\n }\n case types.PROFILE_UPDATE_MAP_SETTINGS_CONFIGURATION_COMPLETED:\n return { ...state, ...action.payload };\n case types.PROFILE_UPDATE_GENERAL_INFORMATION_COMPLETED:\n return { ...state, ...action.payload };\n case types.PROFILE_UPDATE_MAP_OPTIONS_COMPLETED: {\n const mapOptions = { ...action.payload };\n return {\n ...state,\n enableLocationClustering: mapOptions.enableLocationClustering ? 1 : 0,\n locationMapLabelAlwaysOn: mapOptions.locationMapLabelAlwaysOn ? 1 : 0,\n activateUnitTrackMode: mapOptions.activateUnitTrackMode ? 1 : 0,\n unitMapLabelAlwaysOn: mapOptions.unitMapLabelAlwaysOn ? 1 : 0,\n unitsLabelContent: mapOptions.unitsLabelContent\n };\n }\n\n case types.PROFILE_UPDATE_PICTURE_COMPLETED: {\n const newImage = { ...action.payload };\n return {\n ...state,\n imageName: newImage.imageName,\n userImageUrl: newImage.userImageUrl\n };\n }\n\n case types.PROFILE_UPDATE_HOME_SCREEN_COMPLETED: {\n const homeScreenId = action.payload;\n return {\n ...state,\n homeScreenId: homeScreenId\n };\n }\n\n default: {\n return state;\n }\n }\n};\n\nconst membership = (state = {}, action) => {\n switch (action.type) {\n case types.AUTHENTICATION_IDENTITY_CLEARED: {\n return {};\n }\n case types.AUTHENTICATION_SET_MEMBERSHIP: {\n const membership = action.payload;\n return membership;\n }\n default: {\n return state;\n }\n }\n};\n\nconst navigationOptions = (state = { productId: 1 }, action) => {\n switch (action.type) {\n case types.PROFILE_CHANGE_PRODUCT_COMPLETED: {\n const productId = action.payload;\n return {\n ...state,\n productId\n };\n }\n\n default: {\n return state;\n }\n }\n};\n\nconst isAuthenticating = (state = false, action) => {\n switch (action.type) {\n case types.AUTHENTICATION_STARTED: {\n return true;\n }\n case types.AUTHENTICATION_COMPLETED: {\n return false;\n }\n case types.AUTHENTICATION_FAILED: {\n return false;\n }\n case types.AUTHENTICATION_USER_INFORMATION_STARTED: {\n return true;\n }\n case types.AUTHENTICATION_USER_INFORMATION_COMPLETED: {\n return false;\n }\n default: {\n return state;\n }\n }\n};\n\nconst isUpdatingProfileGeneralInformation = (state = false, action) => {\n switch (action.type) {\n case types.PROFILE_UPDATE_GENERAL_INFORMATION_STARTED: {\n return true;\n }\n case types.PROFILE_UPDATE_GENERAL_INFORMATION_COMPLETED:\n case types.PROFILE_UPDATE_GENERAL_INFORMATION_FAILED: {\n return false;\n }\n default: {\n return state;\n }\n }\n};\n\nconst isUpdatingMapSettingsConfiguration = (state = false, action) => {\n switch (action.type) {\n case types.PROFILE_UPDATE_MAP_SETTINGS_CONFIGURATION_STARTED: {\n return true;\n }\n case types.PROFILE_UPDATE_MAP_SETTINGS_CONFIGURATION_COMPLETED:\n case types.PROFILE_UPDATE_MAP_SETTINGS_CONFIGURATION_FAILED: {\n return false;\n }\n default: {\n return state;\n }\n }\n};\n\nconst isUpdatingProfileMapOptions = (state = false, action) => {\n switch (action.type) {\n case types.PROFILE_UPDATE_MAP_OPTIONS_STARTED: {\n return true;\n }\n\n case types.PROFILE_UPDATE_MAP_OPTIONS_COMPLETED:\n case types.PROFILE_UPDATE_MAP_OPTIONS_FAILED: {\n return false;\n }\n default: {\n return state;\n }\n }\n};\n\nconst isUpdatingProfilePassword = (state = false, action) => {\n switch (action.type) {\n case types.PROFILE_UPDATE_PASSWORD_STARTED: {\n return true;\n }\n\n case types.PROFILE_UPDATE_PASSWORD_COMPLETED:\n case types.PROFILE_UPDATE_PASSWORD_FAILED: {\n return false;\n }\n default: {\n return state;\n }\n }\n};\n\nconst isRefreshing = (state = false, action) => {\n switch (action.type) {\n case types.TOKEN_REFRESH_STARTED: {\n return true;\n }\n case types.TOKEN_REFRESH_COMPLETED: {\n return false;\n }\n case types.TOKEN_REFRESH_FAILED: {\n return false;\n }\n default: {\n return state;\n }\n }\n};\n\nconst refreshingError = (state = null, action) => {\n switch (action.type) {\n case types.TOKEN_REFRESH_STARTED: {\n return null;\n }\n case types.TOKEN_REFRESH_COMPLETED: {\n return null;\n }\n case types.TOKEN_REFRESH_FAILED: {\n return action.payload.error;\n }\n default: {\n return state;\n }\n }\n};\n\nconst error = (state = null, action) => {\n switch (action.type) {\n case types.AUTHENTICATION_STARTED: {\n return null;\n }\n case types.AUTHENTICATION_COMPLETED: {\n return null;\n }\n case types.AUTHENTICATION_FAILED_CLEAR: {\n return null;\n }\n case types.AUTHENTICATION_FAILED: {\n return action.payload.error;\n }\n default: {\n return state;\n }\n }\n};\n\nconst auth = combineReducers({\n token,\n user,\n membership,\n navigationOptions,\n isAuthenticating,\n isUpdatingMapSettingsConfiguration,\n isUpdatingProfileGeneralInformation,\n isUpdatingProfilePassword,\n isUpdatingProfileMapOptions,\n isRefreshing,\n error,\n refreshingError,\n tokenRefreshFailCount\n});\n\nconst authPersistConfig = {\n key: 'auth',\n storage: localforage,\n stateReconciler: autoMergeLevel2,\n blacklist: [\n 'isUpdatingProfilePassword',\n 'isUpdatingProfileGeneralInformation',\n 'isUpdatingMapSettingsConfiguration',\n 'isUpdatingProfileMapOptions',\n 'isAuthenticating'\n ]\n // blackList: [],\n // whiteList: [],\n};\n\nexport default persistReducer(authPersistConfig, auth);\n\n//Own state\nexport const getOwnState = (state) => state.auth;\n\nexport const getUser = (state) => getOwnState(state).user;\n\n//Information\nexport const getAuthToken = (state) => getOwnState(state).token;\nexport const getIsAuthenticating = (state) => getOwnState(state).isAuthenticating;\n//Updating profile\nexport const getIsUpdatingProfileInformation = (state) =>\n getOwnState(state).isUpdatingProfileGeneralInformation;\nexport const getisUpdatingMapSettingsConfiguration = (state) =>\n getOwnState(state).isUpdatingMapSettingsConfiguration;\nexport const getIsUpdatingProfileMapOptions = (state) =>\n getOwnState(state).isUpdatingProfileMapOptions;\nexport const getIsUpdatingProfilePassword = (state) => getOwnState(state).isUpdatingProfilePassword;\nexport const getAuthenticatingError = (state) => getOwnState(state).error;\nexport const getAuthUserID = (state) =>\n getOwnState(state).user ? getOwnState(state).user.user_id : null;\nexport const getAuthExpiration = (state) =>\n getOwnState(state).user ? getOwnState(state).user.exp : null;\nexport const getAuthUsername = (state) =>\n getOwnState(state).user ? getOwnState(state).user.username : null;\nexport const getAuthUser = (state) => getOwnState(state).user ?? {};\nexport const getAuthUserForMembership = (state) => ({\n ...(getOwnState(state).user ?? {}),\n ...(getOwnState(state).membership ?? {})\n});\n\nexport const getAuthUserTimezoneName = (state) =>\n getOwnState(state).user\n ? getOwnState(state).user.zoneName\n ? getOwnState(state).user.zoneName\n : Intl.DateTimeFormat().resolvedOptions().timeZone\n : Intl.DateTimeFormat().resolvedOptions().timeZone;\n\n/**\n * Get auth user map center\n * @param {*} state State from Redux\n * @returns {LatLngExpression}\n */\nexport const getAuthUserMapHomeCenter = (state) =>\n getOwnState(state).user\n ? getOwnState(state).user.homeLatitude && getOwnState(state).user.homeLongitude\n ? [getOwnState(state).user.homeLatitude, getOwnState(state).user.homeLongitude]\n : [14.62, -90.53]\n : [14.62, -90.53];\nexport const getAuthUserMapHomeZoom = (state) =>\n getOwnState(state).user\n ? getOwnState(state).user.homeZoom\n ? getOwnState(state).user.homeZoom\n : 12\n : 12;\nexport const isAuthenticated = (state) => getAuthToken(state) != null;\nexport const getAuthUserPermissions = (state) =>\n getOwnState(state).user\n ? getOwnState(state).user?.permissions == ''\n ? []\n : getOwnState(state).user?.permissions.split(',')\n : [];\n\nexport const getAuthUserOrganizationId = (state) =>\n getOwnState(state).user\n ? getOwnState(state).user.organizationId\n ? getOwnState(state).user.organizationId\n : null\n : null;\n\nexport const getAuthUserDivisionId = (state) =>\n getOwnState(state).user\n ? getOwnState(state).user.divisionId\n ? getOwnState(state).user.divisionId\n : null\n : null;\n\nexport const getAuthUserSubdivisionId = (state) =>\n getOwnState(state).user\n ? getOwnState(state).user.subdivisionId\n ? getOwnState(state).user.subdivisionId\n : null\n : null;\n\nexport const getAuthUserAccessLevelId = (state) =>\n getOwnState(state).user\n ? getOwnState(state).user.accessLevelId\n ? getOwnState(state).user.accessLevelId\n : null\n : null;\n\nexport const getAuthUserHomeScreenId = (state) =>\n getOwnState(state).user\n ? getOwnState(state).user?.homeScreenId\n ? parseInt(getOwnState(state).user?.homeScreenId)\n : null\n : null;\n\nexport const getNavigationProduct = (state) =>\n getOwnState(state).navigationOptions\n ? getOwnState(state).navigationOptions?.productId\n ? parseInt(getOwnState(state).navigationOptions?.productId)\n : null\n : null;\n\nexport const getAuthUserMembershipFilters = (state, { filterOperatorId, filterOrganizationId }) => {\n const {\n accessLevelId,\n operatorId: userOperatorId,\n organizationId: userOrganizationId\n } = getAuthUserForMembership(state);\n\n if ([9, 11, 13, 15].includes(parseInt(accessLevelId))) {\n if (filterOperatorId && !filterOrganizationId)\n return {\n operatorId: filterOperatorId,\n organizationId: null\n };\n else if (!filterOperatorId && filterOrganizationId)\n return {\n operatorId: organizationSelectors.getOrganization(state, filterOrganizationId)?.operatorId,\n organizationId: filterOrganizationId\n };\n else if (!filterOperatorId && !filterOrganizationId) {\n return {\n //NOTA: Anteriormente se tenia los valores quemados del usuario\n operatorId: null,\n organizationId: null\n };\n } else\n return {\n operatorId: filterOperatorId,\n organizationId: filterOrganizationId\n };\n } else\n return {\n allowNullOrganizationId: true,\n operatorId: null,\n organizationId: null\n };\n};\n\nexport const getAuthUserOperatorId = (state) =>\n getOwnState(state).user\n ? getOwnState(state).user.operatorId\n ? getOwnState(state).user.operatorId\n : null\n : null;\nexport const getAuthUserHasPermissionsAny = (state, permissions = []) =>\n permissions.some((userPer) => getAuthUserPermissions(state).includes(userPer));\n\nexport const getAuthUserHasPermissionByAccessLevels = (state, accessLevels = []) =>\n accessLevels.includes(parseInt(getAuthUser(state).accessLevelId));\n\nexport const isAuthUserSystemOrOperator = (state) =>\n [9, 13, 15].includes(parseInt(getAuthUser(state).accessLevelId));\n\nexport const getAuthUserHasPermissionsEvery = (state, permissions = []) =>\n permissions.every((userPer) => getAuthUserPermissions(state).includes(userPer));\n\n//Systems\n// -------------------------------------------------------------------\n// | Metric | Metric System 1 | Metric System 2 | Metric System 3 |\n// -------------------------------------------------------------------\n// | distance | km | km | mi |\n// | capacity | gal | lt | gal |\n// | temperature | C | C | F |\n// | distance2 | m | m | pies |\n// | speed | km/h | km/h | mph |\n// | fuel | km/gal | km/l | mpg |\n// | fuel2 | g/h | l/h | g/h |\n// -------------------------------------------------------------------\n//\n// IMPORTANTE: La base de datos utiliza Metric System 2\n// 1-> Centroamericano\n// 2-> Metrico Decimal\n// 3-> U.S\n\nexport const getAuthSystems = (state) => {\n const distance = getOwnState(state)?.user?.distanceSystem;\n const capacity = getOwnState(state)?.user?.capacitySystem;\n\n return {\n distance,\n capacity,\n volume: getOwnState(state)?.user?.volumeSystem,\n temperature: getOwnState(state)?.user?.temperatureSystem,\n distance2: getOwnState(state)?.user?.distance2System,\n speed: getOwnState(state)?.user?.speedSystem,\n fuel: getOwnState(state)?.user?.fuelSystem,\n fuel2: getOwnState(state)?.user?.fuel2System,\n performance: `${distance}/${capacity}`\n };\n};\n\nexport const getParsers = (state) => ({\n /* -------------------------------------------------------------------------- */\n /* Distance */\n /* -------------------------------------------------------------------------- */\n /**\n * Parser de Metros -> Sistema mĆ©trico del usuario (Kilometros o Millas)\n */\n convertMetersToAuthUserDistanceSystem: (meters) =>\n meters / (getAuthUser(state)?.metricSystemId == 3 ? 1609 : 1000),\n /**\n * Parser de Kilometros -> Sistema mĆ©trico del usuario (Kilometros o Millas)\n */\n convertKilometersToAuthUserDistanceSystem: (kilometers) =>\n kilometers / (getAuthUser(state)?.metricSystemId == 3 ? 1.609 : 1),\n /**\n * Parser de Sistema mĆ©trico del usuario (Kilometros o Millas) -> Metros\n */\n convertAuthUserDistanceSystemToMeters: (authUserDistanceSystem) =>\n authUserDistanceSystem * (getAuthUser(state)?.metricSystemId == 3 ? 1609 : 1000),\n\n /* Pasar de sistema mĆ©trico del usuario (Kilometros o Millas) -> Kilometros */\n convertAuthUserDistanceSystemToKilometers: (authUserDistanceSystem) =>\n authUserDistanceSystem * (getAuthUser(state)?.metricSystemId == 3 ? 1.609 : 1),\n\n /* -------------------------------------------------------------------------- */\n /* Capacity */\n /* -------------------------------------------------------------------------- */\n // -------------------------------------------------------------------\n // | Metric | Metric System 1 | Metric System 2 | Metric System 3 |\n // -------------------------------------------------------------------\n // | capacity | gal | lt | gal |\n // -------------------------------------------------------------------\n /**\n * Parser de Galones -> Sistema de capacidad del usuario (Galones o Litros)\n */\n convertGalonsToAuthUserCapacitySystem: (gal) =>\n gal * (getAuthUser(state)?.metricSystemId == 2 ? 3.78541 : 1),\n /**\n * Parser de Sistema de capacidad del usuario (Galones o Litros) -> Galones\n */\n convertAuthUserCapacitySystemToGalons: (authUserCapacitySystem) =>\n authUserCapacitySystem / (getAuthUser(state)?.metricSystemId == 2 ? 3.78541 : 1),\n /**\n * Parser de Litros -> Sistema de capacidad del usuario (Galones o Litros)\n */\n convertLitersToAuthUserCapacitySystem: (lt) =>\n lt / (getAuthUser(state)?.metricSystemId == 2 ? 1 : 3.78541),\n /**\n * Parser de Sistema de capacidad del usuario (Galones o Litros) -> Litros\n */\n convertAuthUserCapacitySystemToLiters: (authUserCapacitySystem) =>\n authUserCapacitySystem * (getAuthUser(state)?.metricSystemId == 2 ? 1 : 3.78541),\n\n /* -------------------------------------------------------------------------- */\n /* Volume */\n /* -------------------------------------------------------------------------- */\n /**\n * Parser de mĀ³ -> Sistema de volumen del usuario (mĀ³ o ydĀ³)\n */\n convertCubicMetersToAuthUserVolumeSystem: (cubicMeters) =>\n cubicMeters / (getAuthUser(state)?.metricSystemId == 3 ? 0.764555 : 1),\n /**\n * Parser de Sistema de volumen del usuario (mĀ³ o ydĀ³) -> mĀ³\n */\n convertAuthUserVolumeSystemToCubicMeters: (authUserVolumeSystem) =>\n authUserVolumeSystem * (getAuthUser(state)?.metricSystemId == 3 ? 0.764555 : 1),\n /**\n * Parser de Sistema de volumen del usuario (mĀ³ o ydĀ³) -> cmĀ³\n */\n convertAuthUserVolumeSystemToCubicCentimeters: (authUserVolumeSystem) =>\n authUserVolumeSystem * (getAuthUser(state)?.metricSystemId == 3 ? 0.764555 : 1) * 1000000,\n\n /**\n * Parser de metros cubicos a centimetros cubicos (mĀ³) -> cmĀ³\n */\n convertAuthUserVolumeSystemToCubicCentimeters: (authUserVolumeSystem) =>\n authUserVolumeSystem * 1000000,\n\n /* -------------------------------------------------------------------------- */\n /* Temperature */\n /* -------------------------------------------------------------------------- */\n /**\n * Parser de Celsius -> Sistema de temperatura del usuario (Celsius o Fahrenheit)\n */\n convertCelsiusToAuthUserTemperatureSystem: (c) =>\n getAuthUser(state)?.metricSystemId == 3 ? (c * 9) / 5 + 32 : c,\n /**\n * Parser de Sistema de temperatura del usuario (Celsius o Fahrenheit) -> Celsius\n */\n convertAuthUserTemperatureSystemToCelsius: (authUserTemperatureSystem) =>\n getAuthUser(state)?.metricSystemId == 3\n ? (authUserTemperatureSystem - 32) * (5 / 9)\n : authUserTemperatureSystem,\n\n /* -------------------------------------------------------------------------- */\n /* Distance2 */\n /* -------------------------------------------------------------------------- */\n /**\n * Parser de Metros -> Sistema mĆ©trico del usuario (Metros o Pies)\n */\n convertMetersToAuthUserDistance2System: (meters) =>\n meters * (getAuthUser(state)?.metricSystemId == 3 ? 3.281 : 1),\n /**\n * Parser de Sistema mĆ©trico del usuario (Metros o Pies) -> Metros\n */\n convertAuthUserDistance2SystemToMeters: (authUserDistance2System) =>\n authUserDistance2System / (getAuthUser(state)?.metricSystemId == 3 ? 3.281 : 1),\n\n /* -------------------------------------------------------------------------- */\n /* Speed */\n /* -------------------------------------------------------------------------- */\n /**\n * Parser de km/h -> Sistema de velocidad del usuario (km/h o mph)\n */\n convertKilometersPerHourToAuthUserSpeedSystem: (kilometersPerHour) =>\n kilometersPerHour / (getAuthUser(state)?.metricSystemId == 3 ? 1.609 : 1),\n /**\n * Parser de Sistema de velocidad del usuario (km/h o mph) -> km/h\n */\n convertAuthUserSpeedSystemToKilometersPerHour: (authUserSpeedSystem) =>\n authUserSpeedSystem * (getAuthUser(state)?.metricSystemId == 3 ? 1.609 : 1),\n\n /* -------------------------------------------------------------------------- */\n /* Fuel */\n /* -------------------------------------------------------------------------- */\n // -------------------------------------------------------------------\n // | Metric | Metric System 1 | Metric System 2 | Metric System 3 |\n // -------------------------------------------------------------------\n // | fuel | km/gal | km/l | mpg |\n // -------------------------------------------------------------------\n /**\n * Parser de km/gal -> Sistema de capacidad del usuario (km/gal o km/l o mpg)\n */\n convertKilometersPerGalonToAuthUserFuelSystem: (kmPerGal) =>\n getAuthUser(state)?.metricSystemId == 2\n ? kmPerGal / 3.7854\n : getAuthUser(state)?.metricSystemId == 3\n ? kmPerGal / 1.609\n : kmPerGal,\n /**\n * Parser de Sistema de capacidad del usuario (km/gal o km/l o mpg) -> km/gal\n */\n convertAuthUserFuelSystemToKilometersPerGalon: (authUserFuelSystem) =>\n getAuthUser(state)?.metricSystemId == 2 //km/lt\n ? authUserFuelSystem * 3.7854\n : getAuthUser(state)?.metricSystemId == 3 //mpg\n ? authUserFuelSystem * 1.609\n : authUserFuelSystem,\n /**\n * Parser de km/gal -> Sistema de capacidad del usuario (km/gal o km/l o mpg)\n */\n convertKilometersPerLiterToAuthUserFuelSystem: (kmPerLiter) =>\n getAuthUser(state)?.metricSystemId == 1 //km/gal\n ? kmPerLiter * 3.7854\n : getAuthUser(state)?.metricSystemId == 3 //mpg\n ? (kmPerLiter * 3.7854) / 1.609\n : kmPerLiter,\n /**\n * Parser de Sistema de capacidad del usuario (km/gal o km/l o mpg) -> km/gal\n */\n convertAuthUserFuelSystemToKilometersPerLiter: (authUserFuelSystem) =>\n getAuthUser(state)?.metricSystemId == 1 //km/gal\n ? authUserFuelSystem / 3.7854\n : getAuthUser(state)?.metricSystemId == 3 //mpg\n ? (authUserFuelSystem / 3.7854) * 1.609\n : authUserFuelSystem,\n /* -------------------------------------------------------------------------- */\n /* Fuel2 */\n /* -------------------------------------------------------------------------- */\n // -------------------------------------------------------------------\n // | Metric | Metric System 1 | Metric System 2 | Metric System 3 |\n // -------------------------------------------------------------------\n // | fuel2 | g/h | l/h | g/h |\n // -------------------------------------------------------------------\n /**\n * Parser de g/h -> Sistema de capacidad del usuario (g/h o l/h)\n */\n convertGalonsPerHourToAuthUserFuel2System: (galPerHour) =>\n galPerHour * (getAuthUser(state)?.metricSystemId == 2 ? 3.7854 : 1),\n /**\n * Parser de Sistema de capacidad del usuario (g/h o l/h) -> g/h\n */\n convertAuthUserFuel2SystemToGalonsPerHour: (authUserFuel2System) =>\n authUserFuel2System / (getAuthUser(state)?.metricSystemId == 2 ? 3.7854 : 1),\n /**\n * Parser de g/h -> Sistema de capacidad del usuario (g/h o l/h)\n */\n convertLitersPerHourToAuthUserFuel2System: (litersPerHour) =>\n litersPerHour / (getAuthUser(state)?.metricSystemId == 2 ? 1 : 3.7854),\n /**\n * Parser de Sistema de capacidad del usuario (g/h o l/h) -> g/h\n */\n convertAuthUserFuel2SystemToLitersPerHour: (authUserFuel2System) =>\n authUserFuel2System * (getAuthUser(state)?.metricSystemId == 2 ? 1 : 3.7854)\n});\n\n//Status of sagas\nexport const getIsRefreshingToken = (state) => getOwnState(state).isRefreshing;\n\n//Errors\nexport const getRefreshingError = (state) => getOwnState(state).refreshingError;\n\n//Errors\nexport const getTokenRefreshFailCount = (state) => getOwnState(state).tokenRefreshFailCount;\n","import React from \"react\";\nimport { useIntl } from \"react-intl\";\n\n// 'intl' service singleton reference\nlet intl;\n\nexport function IntlGlobalProvider({ children }) {\n intl = useIntl(); // Keep the 'intl' service reference\n return children;\n}\n\n// Getter function to expose the read-only 'intl' service\nexport function appIntl() {\n return intl;\n}\n","/* -------------------------------------------------------------------------- */\n/* Tipos del reductor Auth */\n/* -------------------------------------------------------------------------- */\n\nexport const AUTHENTICATION_STARTED = 'AUTHENTICATION_STARTED';\nexport const AUTHENTICATION_COMPLETED = 'AUTHENTICATION_COMPLETED';\nexport const AUTHENTICATION_FAILED = 'AUTHENTICATION_FAILED';\n\nexport const AUTHENTICATION_FAILED_CLEAR = 'AUTHENTICATION_FAILED_CLEAR';\nexport const AUTHENTICATION_IDENTITY_CLEARED = 'AUTHENTICATION_IDENTITY_CLEARED';\n\nexport const AUTHENTICATION_SET_MEMBERSHIP = 'AUTHENTICATION_SET_MEMBERSHIP';\n\nexport const AUTHENTICATION_USER_INFORMATION_STARTED = 'AUTHENTICATION_USER_INFORMATION_STARTED';\nexport const AUTHENTICATION_USER_INFORMATION_COMPLETED =\n 'AUTHENTICATION_USER_INFORMATION_COMPLETED';\n\nexport const TOKEN_REFRESH_STARTED = 'TOKEN_REFRESH_STARTED';\nexport const TOKEN_REFRESH_FORCE_STARTED = 'TOKEN_REFRESH_FORCE_STARTED';\nexport const TOKEN_REFRESH_COMPLETED = 'TOKEN_REFRESH_COMPLETED';\nexport const TOKEN_REFRESH_FAILED = 'TOKEN_REFRESH_FAILED';\n\nexport const PROFILE_UPDATE_GENERAL_INFORMATION_STARTED =\n 'PROFILE_UPDATE_GENERAL_INFORMATION_STARTED';\nexport const PROFILE_UPDATE_GENERAL_INFORMATION_COMPLETED =\n 'PROFILE_UPDATE_GENERAL_INFORMATION_COMPLETED';\nexport const PROFILE_UPDATE_GENERAL_INFORMATION_FAILED =\n 'PROFILE_UPDATE_GENERAL_INFORMATION_FAILED';\n\nexport const PROFILE_UPDATE_PASSWORD_STARTED = 'PROFILE_UPDATE_PASSWORD_STARTED';\nexport const PROFILE_UPDATE_PASSWORD_COMPLETED = 'PROFILE_UPDATE_PASSWORD_COMPLETED';\nexport const PROFILE_UPDATE_PASSWORD_FAILED = 'PROFILE_UPDATE_PASSWORD_FAILED';\n\nexport const PROFILE_UPDATE_PICTURE_STARTED = 'PROFILE_UPDATE_PICTURE_STARTED';\nexport const PROFILE_UPDATE_PICTURE_COMPLETED = 'PROFILE_UPDATE_PICTURE_COMPLETED';\nexport const PROFILE_UPDATE_PICTURE_FAILED = 'PROFILE_UPDATE_PICTURE_FAILED';\n\nexport const PROFILE_UPDATE_MAP_OPTIONS_STARTED = 'PROFILE_UPDATE_MAP_OPTIONS_STARTED';\nexport const PROFILE_UPDATE_MAP_OPTIONS_COMPLETED = 'PROFILE_UPDATE_MAP_OPTIONS_COMPLETED';\nexport const PROFILE_UPDATE_MAP_OPTIONS_FAILED = 'PROFILE_UPDATE_MAP_OPTIONS_FAILED';\n\nexport const PROFILE_UPDATE_MAP_SETTINGS_CONFIGURATION_STARTED =\n 'PROFILE_UPDATE_MAP_SETTINGS_CONFIGURATION_STARTED';\nexport const PROFILE_UPDATE_MAP_SETTINGS_CONFIGURATION_COMPLETED =\n 'PROFILE_UPDATE_MAP_SETTINGS_CONFIGURATION_COMPLETED';\nexport const PROFILE_UPDATE_MAP_SETTINGS_CONFIGURATION_FAILED =\n 'PROFILE_UPDATE_MAP_SETTINGS_CONFIGURATION_FAILED';\n\nexport const PROFILE_UPDATE_HOME_SCREEN_STARTED = 'PROFILE_UPDATE_HOME_SCREEN_STARTED';\nexport const PROFILE_UPDATE_HOME_SCREEN_COMPLETED = 'PROFILE_UPDATE_HOME_SCREEN_COMPLETED';\nexport const PROFILE_UPDATE_HOME_SCREEN_FAILED = 'PROFILE_UPDATE_HOME_SCREEN_FAILED';\n\nexport const PROFILE_CHANGE_PRODUCT_STARTED = 'PROFILE_CHANGE_PRODUCT_STARTED';\nexport const PROFILE_CHANGE_PRODUCT_COMPLETED = 'PROFILE_CHANGE_PRODUCT_COMPLETED';\nexport const PROFILE_CHANGE_PRODUCT_FAILED = 'PROFILE_CHANGE_PRODUCT_FAILED';\n","export const headers = {\n 'Content-Type': 'application/json',\n Accept: 'application/json'\n};\n","import axios, { AxiosInstance, AxiosRequestConfig } from 'axios';\n\nexport const promiseWith = (data: T) => {\n return new Promise((resolve) => resolve(data));\n};\n\nexport class HttpAxios {\n service: AxiosInstance;\n\n constructor(config: any) {\n this.service = axios.create(config);\n }\n\n async getWithToken(path: string, token: string) {\n const response = await this.service.get(path, {\n headers: { Authorization: `Bearer ${token}` }\n });\n return promiseWith(response.data);\n }\n\n async getPdf(path: string, token: string): Promise {\n const response = await this.service.get(path, {\n headers: { Authorization: `Bearer ${token}` },\n responseType: 'arraybuffer'\n });\n return promiseWith(response.data);\n }\n\n async get(path: string, config?: AxiosRequestConfig): Promise {\n const response = await this.service.get(path, config);\n return promiseWith(response.data);\n }\n\n async patch(path: string, payload: string) {\n const response = await this.service.patch(path, payload);\n return promiseWith(response.data);\n }\n\n async post(path: string, payload: any, config?: AxiosRequestConfig) {\n const response = await this.service.post(path, payload, config);\n return promiseWith(response.data);\n }\n\n async put(path: string, payload: any = {}, config?: AxiosRequestConfig) {\n const response = await this.service.put(path, payload, config);\n return promiseWith(response.data);\n }\n\n async delete(path: string) {\n const response = await this.service.delete(path);\n return promiseWith(response.data);\n }\n}\n","/* eslint-disable class-methods-use-this,no-param-reassign,no-restricted-syntax */\nimport API_BASE_URL from 'redux/sagas/settings/apibaseurl';\nimport { headers } from './constants';\nimport { HttpAxios } from './http-axios';\nimport { ConfigMessages, ConfigActions } from './http-events';\n\nexport const buildParams = (params: any) => {\n if (params) {\n for (const key in params) {\n if (params[key] === '' || params[key] === undefined) {\n delete params[key];\n }\n }\n return Object.keys(params).length > 0 ? params : undefined;\n }\n return undefined;\n};\n\nclass HttpWebtrack extends HttpAxios {\n configMessage: ConfigMessages | undefined;\n configAction: ConfigActions | undefined;\n\n constructor() {\n super({ baseURL: API_BASE_URL, headers });\n }\n\n setConfigMessage = (configMessage: ConfigMessages | undefined) => {\n this.configMessage = configMessage;\n };\n\n setConfigActions = (configAction: ConfigActions | undefined) => {\n this.configAction = configAction;\n };\n}\n\nexport default HttpWebtrack;\n","import Swal from 'sweetalert2';\nimport { ConfigMessages } from 'utility/http/http-events';\nimport { appIntl } from '../../../utility/context/IntlGlobalProvider';\n\nexport interface AlertsConfig extends ConfigMessages {\n success?: string | null;\n altText?: boolean;\n}\n\n/* -------------------------------------------------------------------------- */\n/* Common Success, Confirmation And Error Alerts */\n/* -------------------------------------------------------------------------- */\nexport const showSuccessMessage = ({ success, timer = 4000 }) => {\n Swal.fire({\n timer: timer,\n icon: 'success',\n text: `${success}`,\n timerProgressBar: true,\n showConfirmButton: false,\n position: 'top-end',\n toast: true,\n didOpen(toast) {\n toast.addEventListener('mouseenter', Swal.stopTimer);\n toast.addEventListener('mouseleave', Swal.resumeTimer);\n },\n customClass: {\n confirmButton: 'btn btn-primary',\n content: 'mr-1 ml-1'\n // icon: \"success-alert-icon\",\n },\n iconColor: '#2ed573',\n buttonsStyling: false\n });\n};\n\nexport const showConfirmationMessage = ({ title, message, confirmText, action, width }) => {\n Swal.fire({\n icon: 'warning',\n title: title,\n text: message,\n showConfirmButton: true,\n width: width,\n showCancelButton: true,\n customClass: {\n cancelButton: 'btn btn-primary',\n confirmButton: 'btn btn-outline-danger mr-1'\n },\n iconColor: '#FF4757',\n buttonsStyling: false,\n confirmButtonText: confirmText,\n cancelButtonText: appIntl().formatMessage({ id: 'common.cancel' }),\n focusConfirm: false,\n focusCancel: true\n }).then((result) => {\n if (result.isConfirmed) {\n action();\n }\n });\n};\n\nexport const showErrorAlertFailChanges = ({ error, timer = undefined, title = 'Error' }) => {\n const message =\n error == null ? appIntl().formatMessage({ id: 'common.changesFail' }) : error.errorMessage;\n Swal.fire({\n icon: 'error',\n iconColor: '#FF4757',\n title: title,\n text: `${message}`,\n timer: timer,\n showConfirmButton: true,\n customClass: {\n confirmButton: 'btn btn-primary'\n },\n buttonsStyling: false\n });\n};\n\nexport const showErrorCustomMessage = (config: AlertsConfig) => {\n Swal.fire({\n icon: 'error',\n text: `${config.customMessageError}`,\n timer: config.errorTimer,\n timerProgressBar: true,\n showConfirmButton: false,\n position: 'top-end',\n toast: true,\n didOpen(toast) {\n toast.addEventListener('mouseenter', Swal.stopTimer);\n toast.addEventListener('mouseleave', Swal.resumeTimer);\n },\n customClass: {\n confirmButton: 'btn btn-primary',\n content: 'mr-1 ml-1'\n // icon: \"success-alert-icon\",\n },\n iconColor: '#FF4757',\n buttonsStyling: false\n });\n};\n\nexport const showErrorAlertWarning = ({ error, timer = undefined, title = '' }) => {\n const message =\n error == null ? appIntl().formatMessage({ id: 'common.changesFail' }) : error.errorMessage;\n Swal.fire({\n icon: 'warning',\n iconColor: '#FF4757',\n title: title,\n text: `${message}`,\n timer: timer,\n showConfirmButton: true,\n customClass: {\n confirmButton: 'btn btn-primary'\n },\n buttonsStyling: false\n });\n};\n\n/* -------------------------------------------------------------------------- */\n/* Success Alerts Created, Edited and Deleted */\n/* -------------------------------------------------------------------------- */\nconst getSuccessMessage = (genderType: string | undefined, action: string) => {\n switch (genderType) {\n case 'PluralFemale':\n return `common.${action}SuccessMessageMultipleAlt`;\n case 'PluralMale':\n return `common.${action}SuccessMessageMultiple`;\n case 'SingularFemale':\n return `common.${action}SuccessMessageAlt`;\n case 'SingularMale':\n return `common.${action}SuccessMessage`;\n default:\n return 'common.changesSuccess';\n }\n};\n\nexport const showSuccessCreatedMessage = (config: AlertsConfig) => {\n const messageId = getSuccessMessage(config.genderType, 'created');\n\n const message =\n config.success == null\n ? appIntl().formatMessage(\n {\n id: messageId\n },\n { object: config.object, name: config.name }\n )\n : config.success;\n\n Swal.fire({\n icon: 'success',\n text: `${message}`,\n timer: 3000,\n timerProgressBar: true,\n showConfirmButton: false,\n position: 'top-end',\n toast: true,\n didOpen(toast) {\n toast.addEventListener('mouseenter', Swal.stopTimer);\n toast.addEventListener('mouseleave', Swal.resumeTimer);\n },\n customClass: {\n confirmButton: 'btn btn-primary',\n content: 'mr-1 ml-1'\n // icon: \"success-alert-icon\",\n },\n iconColor: '#2ed573',\n buttonsStyling: false\n });\n};\n\nexport const showSuccessEditedMessage = (config: AlertsConfig) => {\n const messageId = getSuccessMessage(config.genderType, 'edited');\n\n const message =\n config.success == null\n ? appIntl().formatMessage(\n {\n id: messageId\n },\n { object: config.object, name: config.name }\n )\n : config.success;\n\n Swal.fire({\n icon: 'success',\n text: `${message}`,\n timer: config.successTimer,\n timerProgressBar: true,\n showConfirmButton: false,\n position: 'top-end',\n toast: true,\n didOpen(toast) {\n toast.addEventListener('mouseenter', Swal.stopTimer);\n toast.addEventListener('mouseleave', Swal.resumeTimer);\n },\n customClass: {\n confirmButton: 'btn btn-primary',\n content: 'mr-1 ml-1'\n // icon: \"success-alert-icon\",\n },\n iconColor: '#2ed573',\n buttonsStyling: false\n });\n};\n\nexport const showSuccessCustomMessage = (config: AlertsConfig) => {\n Swal.fire({\n icon: 'success',\n text: `${config.customMessage}`,\n timer: config.successTimer,\n timerProgressBar: true,\n showConfirmButton: false,\n position: 'top-end',\n toast: true,\n didOpen(toast) {\n toast.addEventListener('mouseenter', Swal.stopTimer);\n toast.addEventListener('mouseleave', Swal.resumeTimer);\n },\n customClass: {\n confirmButton: 'btn btn-primary',\n content: 'mr-1 ml-1'\n // icon: \"success-alert-icon\",\n },\n iconColor: '#2ed573',\n buttonsStyling: false\n });\n};\n\nexport const showSuccessDeletedMessage = (config: AlertsConfig) => {\n const messageId = getSuccessMessage(config.genderType, 'deleted');\n\n const message =\n config.success == null\n ? appIntl().formatMessage(\n {\n id: messageId\n },\n { object: config.object, name: config.name }\n )\n : config.success;\n\n Swal.fire({\n icon: 'success',\n text: `${message}`,\n timer: config.successTimer,\n timerProgressBar: true,\n showConfirmButton: false,\n position: 'top-end',\n toast: true,\n didOpen(toast) {\n toast.addEventListener('mouseenter', Swal.stopTimer);\n toast.addEventListener('mouseleave', Swal.resumeTimer);\n },\n customClass: {\n confirmButton: 'btn btn-primary',\n content: 'mr-1 ml-1'\n // icon: \"success-alert-icon\",\n },\n iconColor: '#2ed573',\n buttonsStyling: false\n });\n};\n\nexport const showSuccessLeavedMessage = (config: AlertsConfig) => {\n const messageId = getSuccessMessage(config.genderType, 'leaved');\n\n const message =\n config.success == null\n ? appIntl().formatMessage(\n {\n id: messageId\n },\n { object: config.object, name: config.name }\n )\n : config.success;\n\n Swal.fire({\n icon: 'success',\n text: `${message}`,\n timer: config.successTimer,\n timerProgressBar: true,\n showConfirmButton: false,\n position: 'top-end',\n toast: true,\n didOpen(toast) {\n toast.addEventListener('mouseenter', Swal.stopTimer);\n toast.addEventListener('mouseleave', Swal.resumeTimer);\n },\n customClass: {\n confirmButton: 'btn btn-primary',\n content: 'mr-1 ml-1'\n // icon: \"success-alert-icon\",\n },\n iconColor: '#2ed573',\n buttonsStyling: false\n });\n};\n\n/* -------------------------------------------------------------------------- */\n/* Error Alerts Created, Edited And Deleted */\n/* -------------------------------------------------------------------------- */\nconst getFailMessage = (genderType: string | undefined, action: string) => {\n switch (genderType) {\n case 'PluralFemale':\n return `common.${action}FailMessageMultipleAlt`;\n case 'PluralMale':\n return `common.${action}FailMessageMultiple`;\n case 'SingularFemale':\n return `common.${action}FailMessageAlt`;\n case 'SingularMale':\n return `common.${action}FailMessage`;\n default:\n return 'common.changesFail';\n }\n};\n\nexport const showFailCreatedMessage = (config: AlertsConfig) => {\n const messageId = getFailMessage(config.genderType, 'created');\n\n const message =\n config.success == null\n ? appIntl().formatMessage(\n {\n id: messageId\n },\n { object: config.object, name: config.name }\n )\n : config.success;\n\n Swal.fire({\n icon: 'error',\n iconColor: '#FF4757',\n text: `${message}`,\n timer: config.errorTimer,\n timerProgressBar: true,\n showConfirmButton: true,\n customClass: {\n confirmButton: 'btn btn-primary'\n },\n buttonsStyling: false\n });\n};\n\nexport const showFailEditedMessage = (config: AlertsConfig) => {\n const messageId = getFailMessage(config.genderType, 'edited');\n\n const message =\n config.success == null\n ? appIntl().formatMessage(\n {\n id: messageId\n },\n { object: config.object, name: config.name }\n )\n : config.success;\n\n Swal.fire({\n icon: 'error',\n iconColor: '#FF4757',\n text: `${message}`,\n timer: config.errorTimer,\n timerProgressBar: true,\n showConfirmButton: true,\n customClass: {\n confirmButton: 'btn btn-primary'\n },\n buttonsStyling: false\n });\n};\n\nexport const showFailDeletedMessage = (config: AlertsConfig) => {\n const messageId = getFailMessage(config.genderType, 'deleted');\n\n const message =\n config.success == null\n ? appIntl().formatMessage(\n {\n id: messageId\n },\n { object: config.object, name: config.name }\n )\n : config.success;\n\n Swal.fire({\n icon: 'error',\n iconColor: '#FF4757',\n text: `${message}`,\n timer: config.errorTimer,\n timerProgressBar: true,\n showConfirmButton: true,\n customClass: {\n confirmButton: 'btn btn-primary'\n },\n buttonsStyling: false\n });\n};\n\nexport const showFailLeavedMessage = (config: AlertsConfig) => {\n const messageId = getFailMessage(config.genderType, 'leaved');\n\n const message =\n config.success == null\n ? appIntl().formatMessage(\n {\n id: messageId\n },\n { object: config.object, name: config.name }\n )\n : config.success;\n\n Swal.fire({\n icon: 'error',\n iconColor: '#FF4757',\n text: `${message}`,\n timer: config.errorTimer,\n timerProgressBar: true,\n showConfirmButton: true,\n customClass: {\n confirmButton: 'btn btn-primary'\n },\n buttonsStyling: false\n });\n};\n\n/* -------------------------------------------------------------------------- */\n/* Delete Confirmation Message Alert */\n/* -------------------------------------------------------------------------- */\nexport const showDeleteConfirmationMessage = ({ action, objectType, objectName }) => {\n Swal.fire({\n icon: 'warning',\n title: appIntl().formatMessage(\n {\n id: 'common.deleteConfirmationMessage'\n },\n { objectType, objectName }\n ),\n text: appIntl().formatMessage({ id: 'common.deleteWarning' }),\n showConfirmButton: true,\n\n showCancelButton: true,\n customClass: {\n cancelButton: 'btn btn-primary',\n confirmButton: 'btn btn-outline-danger mr-1'\n },\n iconColor: '#FF4757',\n buttonsStyling: false,\n confirmButtonText: appIntl().formatMessage({\n id: 'common.confirmDelete'\n }),\n cancelButtonText: appIntl().formatMessage({ id: 'common.cancel' }),\n focusConfirm: false,\n focusCancel: true\n }).then((result) => {\n if (result.isConfirmed) {\n action();\n }\n });\n};\n\n/* -------------------------------------------------------------------------- */\n/* LOADING Alert */\n/* -------------------------------------------------------------------------- */\nexport const showLoading = () => {\n Swal.fire({\n title: appIntl().formatMessage({ id: 'common.loading' }),\n customClass: {\n loader: 'custom-loader'\n },\n loaderHtml: '
',\n didOpen: () => {\n Swal.showLoading();\n }\n });\n};\n\nexport const closeLoading = () => {\n Swal.close();\n};\n","/* eslint-disable no-param-reassign,no-case-declarations */\nimport * as axios from 'axios';\nimport Swal from 'sweetalert2';\nimport API_BASE_URL from 'redux/sagas/settings/apibaseurl';\nimport * as alerts from 'redux/utils/alerts-interceptors';\nimport { appIntl } from 'utility/context/IntlGlobalProvider';\nimport { HttpWebtrack } from 'utility/http';\n\nexport interface ConfigMessages {\n object: string;\n name?: string;\n customMessage?: string;\n customMessageError?: string;\n action?: 'Create' | 'Delete' | 'Edit' | 'Get' | 'Custom' | 'Leave';\n genderType?: 'PluralFemale' | 'SingularFemale' | 'PluralMale' | 'SingularMale';\n successTimer?: number;\n useSuccessTimer?: boolean;\n errorTimer?: number;\n}\n\nexport interface ConfigActions {\n successAction?: Function;\n errorAction?: Function;\n}\n\nexport const redirectTo = (document: any, path: string) => {\n document.location = path;\n // window.history.pushState({}, '', path);\n // window.location.reload();\n};\n\nexport const handleSuccess = (\n response: any,\n configMessage: ConfigMessages | undefined,\n configAction: ConfigActions | undefined\n) => {\n if (configMessage) {\n const { successTimer = 4000, useSuccessTimer = true } = configMessage;\n const alertObject: alerts.AlertsConfig = {\n object: appIntl().formatMessage({\n id: configMessage.object\n }),\n name: configMessage.name,\n genderType: configMessage.genderType,\n successTimer: !!useSuccessTimer ? successTimer : undefined,\n customMessage: configMessage.customMessage\n };\n\n switch (configMessage.action) {\n case 'Create':\n alerts.showSuccessCreatedMessage(alertObject);\n break;\n case 'Delete':\n alerts.showSuccessDeletedMessage(alertObject);\n break;\n case 'Edit':\n alerts.showSuccessEditedMessage(alertObject);\n break;\n case 'Leave':\n alerts.showSuccessLeavedMessage(alertObject);\n break;\n case 'Custom':\n if (configMessage.customMessage) alerts.showSuccessCustomMessage(alertObject);\n break;\n }\n }\n if (configAction?.successAction) configAction.successAction(response.data);\n // HttpWebtrack.setConfigMessage(undefined);\n // HttpWebtrack.setConfigActions(undefined);\n return response;\n};\n\nexport const handleError = (\n error: any,\n configMessage: ConfigMessages | undefined,\n configAction: ConfigActions | undefined\n) => {\n const Toast = Swal.mixin({\n toast: true,\n position: 'top-end',\n showConfirmButton: false,\n timer: 6000\n });\n\n switch (error?.response?.status) {\n // case 401:\n // Toast.fire({\n // icon: 'error',\n // title: 'No Autorizado'\n // });\n // break;\n // case 403:\n // Toast.fire({\n // icon: 'error',\n // title: 'No Autorizado'\n // });\n // setTimeout(() => {\n // if (error?.response.data?.source !== 'login') {\n // localStorage.clear();\n // redirectTo(document, `${API_BASE_URL}/`);\n // }\n // }, 2000);\n // break;\n // case 404:\n // Toast.fire({\n // icon: 'error',\n // title: 'Servicio no encontrado!'\n // });\n // break;\n default:\n if (configMessage) {\n const alertObject: alerts.AlertsConfig = {\n object: appIntl().formatMessage({\n id: configMessage.object\n }),\n name: configMessage.name,\n genderType: configMessage.genderType,\n errorTimer: configMessage.action === 'Custom' ? 4000 : configMessage.errorTimer,\n customMessageError: configMessage.customMessageError\n };\n\n switch (configMessage.action) {\n case 'Create':\n alerts.showFailCreatedMessage(alertObject);\n break;\n case 'Delete':\n alerts.showFailDeletedMessage(alertObject);\n break;\n case 'Leave':\n alerts.showFailLeavedMessage(alertObject);\n break;\n case 'Edit':\n alerts.showFailEditedMessage(alertObject);\n // case 'Get':\n // alerts.showErrorAlertFailChanges({\n // error: { errorMessage: 'Error al obtener el listado' }\n // });\n break;\n case 'Custom':\n if (configMessage.customMessageError) alerts.showErrorCustomMessage(alertObject);\n break;\n }\n }\n break;\n }\n if (configAction?.errorAction) configAction.errorAction(error);\n // HttpWebtrack.setConfigMessage(undefined);\n // HttpWebtrack.setConfigActions(undefined);\n return Promise.reject(error);\n};\n","import { AxiosRequestConfig, AxiosResponse } from 'axios';\n// import { actions } from 'app/Layout/slice';\nimport { HttpWebtrack } from '../index';\n\nconst httpWebtrack = new HttpWebtrack();\n\nconst methods = ['POST', 'PUT', 'DELETE'];\n\nexport const loadingOverlyaInterceptor = (store: any) => {\n httpWebtrack.service.interceptors.request.use(\n (config: AxiosRequestConfig) => {\n if (methods.some((x) => x === config.method?.toUpperCase())) {\n // store.dispatch(actions.showSpinner());\n }\n return config;\n },\n (error: any) => {\n // store.dispatch(actions.hideSpinner());\n return Promise.reject(error);\n }\n );\n\n httpWebtrack.service.interceptors.response.use(\n (axiosResponse: AxiosResponse) => {\n if (methods.some((x) => x === axiosResponse.config.method?.toUpperCase())) {\n //store.dispatch(actions.hideSpinner());\n }\n\n return axiosResponse;\n },\n (error: any) => {\n //store.dispatch(actions.hideSpinner());\n return Promise.reject(error);\n }\n );\n\n httpWebtrack.service.interceptors.request.use(\n (config: AxiosRequestConfig) => {\n if (methods.some((x) => x === config.method?.toUpperCase())) {\n //store.dispatch(actions.showSpinner());\n }\n return config;\n },\n (error: any) => {\n //store.dispatch(actions.hideSpinner());\n return Promise.reject(error);\n }\n );\n\n httpWebtrack.service.interceptors.response.use(\n (axiosResponse: AxiosResponse) => {\n if (methods.some((x) => x === axiosResponse.config.method?.toUpperCase())) {\n //store.dispatch(actions.hideSpinner());\n }\n\n return axiosResponse;\n },\n (error: any) => {\n //store.dispatch(actions.hideSpinner());\n return Promise.reject(error);\n }\n );\n};\n","/* eslint-disable no-param-reassign */\nimport { endDateAdjustment } from './interceptor-utils';\n\nexport const redirectTo = (document: any, path: string) => {\n document.location = path;\n};\n\nexport const refreshTokenInterceptor = (failedRequest: any, session: any, store: any) => {\n //aquĆ­ irĆ­a el refresh token luego de que el backend responde con token vencido\n};\n\nexport const authTokenInterceptor = async (config: any, session: any) => {\n if (session?.token) {\n config.headers.Authorization = `Bearer ${session?.token}`;\n }\n\n return { ...config, data: endDateAdjustment(config?.data) };\n};\n","import { AxiosResponse } from 'axios';\nimport { HttpWebtrack } from 'utility/http';\nimport { handleError, handleSuccess } from 'utility/http/http-events';\nimport { loadingOverlyaInterceptor } from 'utility/http/interceptors/loading-overlay-interceptor';\nimport { authTokenInterceptor } from './auth-token-interceptor';\n\nconst ConfigureWebtrackInterceptor = (store: any, httpWebtrack: HttpWebtrack) => {\n loadingOverlyaInterceptor(store);\n httpWebtrack.service.interceptors.request.use(\n (conf: any) => {\n const session = store.getState()?.auth;\n return authTokenInterceptor(conf, session);\n },\n (error: any) => {\n return Promise.reject(error);\n }\n );\n httpWebtrack.service.interceptors.response.use(\n (response: AxiosResponse): AxiosResponse => {\n return handleSuccess(response, httpWebtrack.configMessage, httpWebtrack.configAction);\n },\n (error) => {\n return handleError(error, httpWebtrack.configMessage, httpWebtrack.configAction);\n }\n );\n};\n\nexport default {\n ConfigureWebtrackInterceptor\n};\n","import { UnitLiveStatus } from './UnitLiveStatusTypes';\n\nexport const UNITS_FETCH_STARTED = 'UNITS_FETCH_STARTED';\nexport const UNITS_FETCH_COMPLETED = 'UNITS_FETCH_COMPLETED';\nexport const UNITS_FETCH_FAILED = 'UNITS_FETCH_FAILED';\n\nexport const UNITS_PARTIAL_FETCH_STARTED = 'UNITS_PARTIAL_FETCH_STARTED';\nexport const UNITS_PARTIAL_FETCH_COMPLETED = 'UNITS_PARTIAL_FETCH_COMPLETED';\nexport const UNITS_PARTIAL_FETCH_FAILED = 'UNITS_PARTIAL_FETCH_FAILED';\n\nexport const UNIT_ADD_TO_STATE = 'UNIT_ADD_TO_STATE';\n\nexport const UNITS_LIVE_STATUS_FETCH_STARTED = 'UNITS_LIVE_STATUS_FETCH_STARTED';\nexport const UNITS_LIVE_STATUS_FETCH_COMPLETED = 'UNITS_LIVE_STATUS_FETCH_COMPLETED';\nexport const UNITS_LIVE_STATUS_FETCH_FAILED = 'UNITS_LIVE_STATUS_FETCH_FAILED';\n\nexport const UNIT_INFORMATION_FETCH_STARTED = 'UNIT_INFORMATION_FETCH_STARTED';\nexport const UNIT_INFORMATION_FETCH_COMPLETED = 'UNIT_INFORMATION_FETCH_COMPLETED';\nexport const UNIT_INFORMATION_FETCH_FAILED = 'UNIT_INFORMATION_FETCH_FAILED';\n\nexport const UNIT_POSITIONS_FETCH_STARTED = 'UNIT_POSITIONS_FETCH_STARTED';\nexport const UNIT_POSITIONS_FETCH_COMPLETED = 'UNIT_POSITIONS_FETCH_COMPLETED';\nexport const UNIT_POSITIONS_FETCH_FAILED = 'UNIT_POSITIONS_FETCH_FAILED';\nexport const UNIT_POSITIONS_RESET_IS_FETCHED = 'UNIT_POSITIONS_RESET_IS_FETCHED';\n\nexport const UNIT_EXECUTE_DEVICE_ACTION = 'UNIT_EXECUTE_DEVICE_ACTION';\n\nexport const UNIT_ADD_STARTED = 'UNIT_ADD_STARTED';\nexport const UNIT_ADD_COMPLETED = 'UNIT_ADD_COMPLETED';\nexport const UNIT_ADD_FAILED = 'UNIT_ADD_FAILED';\n\nexport const UNIT_EDIT_STARTED = 'UNIT_EDIT_STARTED';\nexport const UNIT_EDIT_COMPLETED = 'UNIT_EDIT_COMPLETED';\nexport const UNIT_EDIT_FAILED = 'UNIT_EDIT_FAILED';\n\nexport const UNIT_ACKNOWLEDGE_STARTED = 'UNIT_ACKNOWLEDGE_STARTED';\nexport const UNIT_ACKNOWLEDGE_COMPLETED = 'UNIT_ACKNOWLEDGE_COMPLETED';\nexport const UNIT_ACKNOWLEDGE_FAILED = 'UNIT_ACKNOWLEDGE_FAILED';\n\nexport const UNIT_REMOVE_STARTED = 'UNIT_REMOVE_STARTED';\nexport const UNIT_REMOVE_COMPLETED = 'UNIT_REMOVE_COMPLETED';\nexport const UNIT_REMOVE_FAILED = 'UNIT_REMOVE_FAILED';\n\nexport const UNIT_SELECTED = 'UNIT_SELECTED';\nexport const UNITS_ALL_SELECTED = 'UNITS_ALL_SELECTED';\nexport const UNIT_DESELECTED = 'UNIT_DESELECTED';\nexport const UNITS_ALL_DESELECTED = 'UNITS_ALL_DESELECTED';\n\nexport const UNIT_SHOW_IN_MAP = 'UNIT_SHOW_IN_MAP';\nexport const UNITS_ALL_SHOW_IN_MAP = 'UNITS_ALL_SHOW_IN_MAP';\nexport const UNIT_HIDE_IN_MAP = 'UNIT_HIDE_IN_MAP';\nexport const UNITS_ALL_HIDE_IN_MAP = 'UNITS_ALL_HIDE_IN_MAP';\n\nexport const UNIT_FETCH_INTERVAL = 30000;\nexport const UNIT_IDLE_SPEED = 5;\n\nexport const SET_DATE_RANGE = 'SET_DATE_RANGE';\n\nexport const UNITS_ACTIVE_STARTED = 'UNITS_ACTIVE_STARTED';\nexport const UNITS_ACTIVE_COMPLETED = 'UNITS_ACTIVE_COMPLETED';\nexport const UNITS_ACTIVE_FAILED = 'UNITS_ACTIVE_FAILED';\n\nexport const UNITS_ASSIGN_DRIVER_STARTED = 'UNITS_ASSIGN_DRIVER_STARTED';\nexport const UNITS_ASSIGN_DRIVER_COMPLETED = 'UNITS_ASSIGN_DRIVER_COMPLETED';\n\nexport const UNIT_CREATE_SHARE_LINK_STARTED = 'UNIT_CREATE_SHARE_LINK_STARTED';\nexport const UNIT_CREATE_SHARE_LINK_COMPLETED = 'UNIT_CREATE_SHARE_LINK_COMPLETED';\nexport const UNIT_CREATE_SHARE_LINK_FAILED = 'UNIT_CREATE_SHARE_LINK_FAILED';\n\nexport const UNIT_CLEAR_SHARE_LINK = 'UNIT_CLEAR_SHARE_LINK';\n\nexport const UNIT_CHANGE_STATUS_STARTED = 'UNIT_CHANGE_STATUS_STARTED';\nexport const UNIT_CHANGE_STATUS_COMPLETED = 'UNIT_CHANGE_STATUS_COMPLETED';\n\nexport const UNIT_RESTORE_STATUS_STARTED = 'UNIT_RESTORE_STATUS_STARTED';\nexport const UNIT_RESTORE_STATUS_COMPLETED = 'UNIT_RESTORE_STATUS_COMPLETED';\nexport const UNIT_RESTORE_STATUS_FAILED = 'UNIT_RESTORE_STATUS_FAILED';\n\nexport const UNIT_START_DOWNTIME_STARTED = 'UNIT_START_DOWNTIME_STARTED';\nexport const UNIT_START_DOWNTIME_COMPLETED = 'UNIT_START_DOWNTIME_COMPLETED';\nexport const UNIT_START_DOWNTIME_FAILED = 'UNIT_START_DOWNTIME_FAILED';\n\nexport const UNIT_END_DOWNTIME_STARTED = 'UNIT_END_DOWNTIME_STARTED';\nexport const UNIT_END_DOWNTIME_COMPLETED = 'UNIT_END_DOWNTIME_COMPLETED';\nexport const UNIT_END_DOWNTIME_FAILED = 'UNIT_END_DOWNTIME_FAILED';\n\nexport const UNIT_UPDATE_DEVICE_STARTED = 'UNIT_DEVICE_ASSIGNMENT_STARTED';\nexport const UNIT_UPDATE_DEVICE_COMPLETED = 'UNIT_DEVICE_ASSIGNMENT_COMPLETED';\nexport const UNIT_UPDATE_DEVICE_FAILED = 'UNIT_DEVICE_ASSIGNMENT_FAILED';\n\nexport const UNIT_UPDATE_SIM_STARTED = 'UNIT_UPDATE_SIM_STARTED';\nexport const UNIT_UPDATE_SIM_COMPLETED = 'UNIT_UPDATE_SIM_COMPLETED';\nexport const UNIT_UPDATE_SIM_FAILED = 'UNIT_UPDATE_SIM_FAILED';\n\n// Interfaces\nexport interface UnitMainState {\n id: number;\n intl: string;\n color: string;\n textColor: string;\n tooltip: string;\n shortIntl: string;\n}\nexport interface UnitsMainState {\n [key: string]: UnitMainState;\n}\n\nexport interface ReduxUnit extends Omit, 'isCharging'> {\n isSelected: boolean;\n isShownInMap: boolean;\n unitId: number;\n unitPublicId: string;\n unitStatus: number;\n unitStatusName: string;\n unitTypeId: number;\n unitName: string;\n operatorId: number;\n organizationId: number;\n organizationName: string;\n divisionId?: number;\n subdivisionId?: number;\n deviceId: number;\n propertyTypeId: number;\n propertyTypeDescription: string;\n deviceIdentifier: string;\n serialNumber: string;\n brandId: number;\n brandName: string;\n deviceModelId: number;\n deviceModelName: string;\n deviceConfigurationId: number;\n deviceConfigurationName: string;\n driverId: number;\n vehicleId: number;\n vehicleName: string;\n licensePlate: string;\n simCardId: number;\n imsi: string;\n cellularNumber: string | number;\n mobileOperatorId: number;\n mobileOperatorName: string;\n comments: string;\n contractDate: string;\n contractNumber: string;\n lastPaymentDate: string;\n periodicity: number | string;\n instalationDate: string;\n privateCode: string;\n privateCode2: string;\n themeId: number;\n serviceClassId: number;\n serviceClassName: string;\n membershipCode: number | string;\n applicationIdentity: string | number;\n scheduleId?: number;\n scheduleName: string;\n countryId: number;\n mainStateTypeId: number;\n idleSpeed: number;\n assets: string;\n offlineTime: number;\n startedTime: number;\n stoppedTime: number;\n idleTime: number;\n utcZoneId: number;\n downtimeReasonId: number;\n downtimeReasonDescription: string;\n lastCommunicationDate: string;\n isConfirmed: boolean;\n operatorName: string;\n divisionName: string;\n subdivisionName: string;\n mainVoltage: number;\n battery: number;\n backupBattery: any;\n isCharging: number | boolean;\n doorState: any;\n coverTamperState: any;\n padlockState: any;\n satellites: number;\n plmn: number;\n mcc: number;\n mnc: number;\n cellNumber: number;\n iccid: number;\n trailerId: number;\n appVersion: any;\n padlockAuthorizationType: any;\n historicalPositions: any;\n}\n\nexport interface PartialUnit extends Partial {}\n\nexport interface GroupUnit\n extends Pick {\n groupName: string;\n}\n","import Swal, { SweetAlertIcon } from 'sweetalert2';\nimport { appIntl } from '../../../utility/context/IntlGlobalProvider';\nimport withReactContent from 'sweetalert2-react-content';\n\nimport { ListGroup, ListGroupItem, Card, CardBody, CardText } from 'reactstrap';\n/* -------------------------------------------------------------------------- */\n/* Common Success, Confirmation And Error Alerts */\n/* -------------------------------------------------------------------------- */\nexport const showSuccessMessage = ({ success, timer = 4000 }) => {\n Swal.fire({\n timer: timer,\n icon: 'success',\n text: `${success}`,\n timerProgressBar: true,\n showConfirmButton: false,\n position: 'top-end',\n toast: true,\n didOpen(toast) {\n toast.addEventListener('mouseenter', Swal.stopTimer);\n toast.addEventListener('mouseleave', Swal.resumeTimer);\n },\n customClass: {\n confirmButton: 'btn btn-primary',\n content: 'mr-1 ml-1'\n // icon: \"success-alert-icon\",\n },\n iconColor: '#2ed573',\n buttonsStyling: false\n });\n};\n\nexport const showConfirmationMessage = ({\n title = '',\n message,\n confirmText = '',\n action,\n iconColor = '#FF4757',\n actionNot = () => {},\n confirmButtonClass = 'btn btn-outline-danger mr-1',\n showCancelButton = true,\n width = 500\n}) => {\n Swal.fire({\n icon: 'warning',\n title: title,\n text: message,\n showConfirmButton: true,\n width: width,\n showCancelButton,\n customClass: {\n cancelButton: 'btn btn-primary',\n confirmButton: confirmButtonClass\n },\n iconColor,\n buttonsStyling: false,\n confirmButtonText: confirmText || appIntl().formatMessage({ id: 'common.confirm' }),\n cancelButtonText: appIntl().formatMessage({ id: 'common.cancel' }),\n focusConfirm: false,\n focusCancel: true\n }).then((result) => {\n if (result.isConfirmed) {\n action();\n } else {\n actionNot();\n }\n });\n};\ninterface showConfirmationWithCheckboxMessageProps {\n title: string;\n message?: string;\n confirmText: string;\n inputLabel: string;\n action: Function;\n width?: any;\n initialValue?: 0 | 1;\n}\nexport const showConfirmationWithCheckboxMessage = (\n props: showConfirmationWithCheckboxMessageProps\n) => {\n const { title, message, confirmText, inputLabel, action, width, initialValue } = props;\n Swal.fire({\n icon: 'warning',\n title: title,\n text: message,\n showConfirmButton: true,\n width: width || 500,\n showCancelButton: true,\n customClass: {\n cancelButton: 'btn btn-primary',\n confirmButton: 'btn btn-outline-danger mr-1'\n },\n iconColor: '#FF4757',\n buttonsStyling: false,\n confirmButtonText: confirmText,\n cancelButtonText: appIntl().formatMessage({ id: 'common.cancel' }),\n focusConfirm: false,\n focusCancel: true,\n input: 'checkbox',\n inputValue: initialValue || 0,\n inputPlaceholder: inputLabel\n }).then((result) => {\n if (result.isConfirmed) {\n action(result.value);\n }\n });\n};\n\nexport const showConfirmationMessageToast = ({\n title = '',\n message,\n confirmText = '',\n iconColor = '',\n action,\n timer = 0,\n width = 500,\n showCancelButton = true\n}) => {\n Swal.fire({\n icon: 'warning',\n title: title,\n text: message,\n position: 'top-end',\n timer: timer === 0 ? undefined : timer,\n timerProgressBar: timer !== 0,\n didOpen(toast) {\n if (timer !== 0) {\n toast.addEventListener('mouseenter', Swal.stopTimer);\n toast.addEventListener('mouseleave', Swal.resumeTimer);\n }\n },\n toast: true,\n showConfirmButton: true,\n width: width,\n showCancelButton,\n customClass: {\n cancelButton: 'btn btn-primary',\n confirmButton: 'btn btn-outline-primary mb-1'\n },\n iconColor: iconColor || '#3FC3EE',\n buttonsStyling: false,\n confirmButtonText: confirmText || appIntl().formatMessage({ id: 'common.confirm' }),\n cancelButtonText: appIntl().formatMessage({ id: 'common.cancel' })\n }).then((result) => {\n if (result.isConfirmed) {\n action();\n }\n });\n};\n\ninterface ShowErrorAlertFailChangesProps {\n error: any;\n timer?: number;\n title?: any;\n icon?: SweetAlertIcon;\n}\n\nexport const showErrorAlertFailChanges = ({\n error,\n timer = undefined,\n title = 'Error',\n icon = 'error'\n}: ShowErrorAlertFailChangesProps) => {\n const message =\n error == null ? appIntl().formatMessage({ id: 'common.changesFail' }) : error.errorMessage;\n Swal.fire({\n icon: icon,\n iconColor: '#FF4757',\n title: title,\n text: `${message}`,\n timer: timer,\n showConfirmButton: true,\n customClass: {\n confirmButton: 'btn btn-primary'\n },\n buttonsStyling: false\n });\n};\n\nexport const showErrorAlertReportNoAvailable = () => {\n const message = appIntl().formatMessage({ id: 'common.reportNotAvailable' });\n Swal.fire({\n icon: 'warning',\n iconColor: '#FF4757',\n text: `${message}`,\n showConfirmButton: false,\n allowOutsideClick: false,\n customClass: {\n confirmButton: 'btn btn-primary'\n },\n buttonsStyling: false\n });\n};\n\nexport const showLoadingReport = ({ timer = 3000 }) => {\n const message = appIntl().formatMessage({ id: 'reports.loadingReport' });\n Swal.fire({\n title: `${message}`,\n timer: timer,\n didOpen: () => {\n Swal.showLoading();\n }\n });\n};\n\nexport const showErrorAlertFailChangesToast = ({ error, timer = 4000 }) => {\n const message =\n error == null ? appIntl().formatMessage({ id: 'common.changesFail' }) : error.errorMessage;\n Swal.fire({\n timer: timer,\n icon: 'error',\n text: `${message}`,\n timerProgressBar: true,\n showConfirmButton: false,\n position: 'top-end',\n toast: true,\n didOpen(toast) {\n toast.addEventListener('mouseenter', Swal.stopTimer);\n toast.addEventListener('mouseleave', Swal.resumeTimer);\n },\n customClass: {\n confirmButton: 'btn btn-primary',\n content: 'mr-1 ml-1'\n // icon: \"success-alert-icon\",\n },\n iconColor: '#FF4757',\n buttonsStyling: false\n });\n};\n\ntype errorProps = {\n error?: { errorMessage: string } | null | undefined;\n timer?: any;\n title?: string;\n};\n\nexport const showErrorAlertWarning = ({ error, timer = undefined, title = '' }: errorProps) => {\n const message =\n error == null ? appIntl().formatMessage({ id: 'common.changesFail' }) : error.errorMessage;\n Swal.fire({\n icon: 'warning',\n iconColor: '#FF4757',\n title: title,\n text: `${message}`,\n timer: timer,\n showConfirmButton: true,\n customClass: {\n confirmButton: 'btn btn-primary'\n },\n buttonsStyling: false\n });\n};\n\n/* -------------------------------------------------------------------------- */\n/* Success Alerts Created, Edited and Deleted */\n/* -------------------------------------------------------------------------- */\nexport const showSuccessCreatedMessage = ({\n object,\n name = '',\n success = null,\n timer = 4000,\n altText = false\n}) => {\n const messageId =\n object != null\n ? altText\n ? 'common.createdSuccessMessageAlt'\n : 'common.createdSuccessMessage'\n : 'common.changesSuccess';\n const message =\n success == null\n ? appIntl().formatMessage(\n {\n id: messageId\n },\n { object, name }\n )\n : success;\n Swal.fire({\n icon: 'success',\n text: `${message}`,\n timer: timer,\n timerProgressBar: true,\n showConfirmButton: false,\n position: 'top-end',\n toast: true,\n didOpen(toast) {\n toast.addEventListener('mouseenter', Swal.stopTimer);\n toast.addEventListener('mouseleave', Swal.resumeTimer);\n },\n customClass: {\n confirmButton: 'btn btn-primary',\n content: 'mr-1 ml-1'\n // icon: \"success-alert-icon\",\n },\n iconColor: '#2ed573',\n buttonsStyling: false\n });\n};\n\nexport const showSuccessEditedMessage = ({\n object,\n name = '',\n success = null,\n timer = 4000,\n altText = false\n}) => {\n const messageId =\n object != null\n ? altText\n ? 'common.editedSuccessMessageAlt'\n : 'common.editedSuccessMessage'\n : 'common.changesSuccess';\n const message =\n success == null\n ? appIntl().formatMessage(\n {\n id: messageId\n },\n { object, name }\n )\n : success;\n Swal.fire({\n icon: 'success',\n text: `${message}`,\n timer: timer,\n timerProgressBar: true,\n showConfirmButton: false,\n position: 'top-end',\n toast: true,\n didOpen(toast) {\n toast.addEventListener('mouseenter', Swal.stopTimer);\n toast.addEventListener('mouseleave', Swal.resumeTimer);\n },\n customClass: {\n confirmButton: 'btn btn-primary',\n content: 'mr-1 ml-1'\n // icon: \"success-alert-icon\",\n },\n iconColor: '#2ed573',\n buttonsStyling: false\n });\n};\n\nexport const showSuccessApprovedDeniedMessage = ({\n object,\n name = '',\n success = null,\n timer = 4000,\n altText = false,\n approve = 1\n}) => {\n const messageId =\n approve === 1\n ? object != null\n ? altText\n ? 'common.approvedSuccessMessageAlt'\n : 'common.approvedSuccessMessage'\n : 'common.changesSuccess'\n : object != null\n ? altText\n ? 'common.deniedSuccessMessageAlt'\n : 'common.deniedSuccessMessage'\n : 'common.changesSuccess';\n const message =\n success == null\n ? appIntl().formatMessage(\n {\n id: messageId\n },\n { object, name }\n )\n : success;\n Swal.fire({\n icon: 'success',\n text: `${message}`,\n timer: timer,\n timerProgressBar: true,\n showConfirmButton: false,\n position: 'top-end',\n toast: true,\n didOpen(toast) {\n toast.addEventListener('mouseenter', Swal.stopTimer);\n toast.addEventListener('mouseleave', Swal.resumeTimer);\n },\n customClass: {\n confirmButton: 'btn btn-primary',\n content: 'mr-1 ml-1'\n // icon: \"success-alert-icon\",\n },\n iconColor: '#2ed573',\n buttonsStyling: false\n });\n};\n\nexport const showSuccessAcceptedDeniedMessage = ({\n object,\n name = '',\n success = null,\n timer = 4000,\n altText = false,\n accept = 1\n}) => {\n const messageId =\n accept === 1\n ? object != null\n ? altText\n ? 'common.acceptedSuccessMessageAlt'\n : 'common.acceptedSuccessMessage'\n : 'common.changesSuccess'\n : object != null\n ? altText\n ? 'common.deniedSuccessMessageAlt'\n : 'common.deniedSuccessMessage'\n : 'common.changesSuccess';\n const message =\n success == null\n ? appIntl().formatMessage(\n {\n id: messageId\n },\n { object, name }\n )\n : success;\n Swal.fire({\n icon: 'success',\n text: `${message}`,\n timer: timer,\n timerProgressBar: true,\n showConfirmButton: false,\n position: 'top-end',\n toast: true,\n didOpen(toast) {\n toast.addEventListener('mouseenter', Swal.stopTimer);\n toast.addEventListener('mouseleave', Swal.resumeTimer);\n },\n customClass: {\n confirmButton: 'btn btn-primary',\n content: 'mr-1 ml-1'\n // icon: \"success-alert-icon\",\n },\n iconColor: '#2ed573',\n buttonsStyling: false\n });\n};\n\nexport const showSuccessScheduledMessage = ({\n object,\n name = '',\n success = null,\n timer = 4000,\n altText = false\n}) => {\n const messageId =\n object != null\n ? altText\n ? 'common.scheduledSuccessMessageAlt'\n : 'common.scheduledSuccessMessage'\n : 'common.changesSuccess';\n const message =\n success == null\n ? appIntl().formatMessage(\n {\n id: messageId\n },\n { object, name }\n )\n : success;\n Swal.fire({\n icon: 'success',\n text: `${message}`,\n timer: timer,\n timerProgressBar: true,\n showConfirmButton: false,\n position: 'top-end',\n toast: true,\n didOpen(toast) {\n toast.addEventListener('mouseenter', Swal.stopTimer);\n toast.addEventListener('mouseleave', Swal.resumeTimer);\n },\n customClass: {\n confirmButton: 'btn btn-primary',\n content: 'mr-1 ml-1'\n // icon: \"success-alert-icon\",\n },\n iconColor: '#2ed573',\n buttonsStyling: false\n });\n};\n\nexport const showSuccessRolesAndPermissionsSavedMessage = ({\n name = '',\n success = null,\n timer = 4000\n}) => {\n const messageId = 'common.savedRolesAndPermissionsSuccess';\n const message =\n success == null\n ? appIntl().formatMessage(\n {\n id: messageId\n },\n { name }\n )\n : success;\n Swal.fire({\n icon: 'success',\n text: `${message}`,\n timer: timer,\n timerProgressBar: true,\n showConfirmButton: false,\n position: 'top-end',\n toast: true,\n didOpen(toast) {\n toast.addEventListener('mouseenter', Swal.stopTimer);\n toast.addEventListener('mouseleave', Swal.resumeTimer);\n },\n customClass: {\n confirmButton: 'btn btn-primary',\n content: 'mr-1 ml-1'\n // icon: \"success-alert-icon\",\n },\n iconColor: '#2ed573',\n buttonsStyling: false\n });\n};\n\nexport const showSuccessAssignedMessage = ({\n object,\n name = '',\n success = null,\n timer = 4000,\n altText = false,\n plural = false\n}) => {\n const messageId =\n object != null\n ? altText && !plural\n ? 'common.assignedSuccessMessageAlt'\n : altText && plural\n ? 'common.assignedSuccessMessageAlts'\n : !altText && plural\n ? 'common.assignedSuccessMessages'\n : 'common.assignedSuccessMessage'\n : 'common.changesSuccess';\n const message =\n success == null\n ? appIntl().formatMessage(\n {\n id: messageId\n },\n { object, name }\n )\n : success;\n Swal.fire({\n icon: 'success',\n text: `${message}`,\n timer: timer,\n timerProgressBar: true,\n showConfirmButton: false,\n position: 'top-end',\n toast: true,\n didOpen(toast) {\n toast.addEventListener('mouseenter', Swal.stopTimer);\n toast.addEventListener('mouseleave', Swal.resumeTimer);\n },\n customClass: {\n confirmButton: 'btn btn-primary',\n content: 'mr-1 ml-1'\n // icon: \"success-alert-icon\",\n },\n iconColor: '#2ed573',\n buttonsStyling: false\n });\n};\n\nexport const showSuccessUnassignedMessage = ({\n object,\n name = '',\n success = null,\n timer = 4000,\n altText = false\n}) => {\n const messageId =\n object != null\n ? altText\n ? 'common.unassignedSuccessMessageAlt'\n : 'common.unassignedSuccessMessage'\n : 'common.changesSuccess';\n const message =\n success == null\n ? appIntl().formatMessage(\n {\n id: messageId\n },\n { object }\n )\n : success;\n Swal.fire({\n icon: 'success',\n text: `${message}`,\n timer: timer,\n timerProgressBar: true,\n showConfirmButton: false,\n position: 'top-end',\n toast: true,\n didOpen(toast) {\n toast.addEventListener('mouseenter', Swal.stopTimer);\n toast.addEventListener('mouseleave', Swal.resumeTimer);\n },\n customClass: {\n confirmButton: 'btn btn-primary',\n content: 'mr-1 ml-1'\n // icon: \"success-alert-icon\",\n },\n iconColor: '#2ed573',\n buttonsStyling: false\n });\n};\n\nexport const showSuccessDeletedMessage = ({\n object,\n name = '',\n success = null,\n multiple = false,\n timer = 4000,\n altText = false\n}) => {\n const messageId =\n object != null\n ? !multiple\n ? altText\n ? 'common.deletedSuccessMessageAlt'\n : 'common.deletedSuccessMessage'\n : altText\n ? 'common.deletedSuccessMessageMultipleAlt'\n : 'common.deletedSuccessMessageMultiple'\n : 'common.changesSuccess';\n const message =\n success == null\n ? appIntl().formatMessage(\n {\n id: messageId\n },\n { object, name }\n )\n : success;\n Swal.fire({\n icon: 'success',\n text: `${message}`,\n timer: timer,\n timerProgressBar: true,\n showConfirmButton: false,\n position: 'top-end',\n toast: true,\n didOpen(toast) {\n toast.addEventListener('mouseenter', Swal.stopTimer);\n toast.addEventListener('mouseleave', Swal.resumeTimer);\n },\n customClass: {\n confirmButton: 'btn btn-primary',\n content: 'mr-1 ml-1'\n // icon: \"success-alert-icon\",\n },\n iconColor: '#2ed573',\n buttonsStyling: false\n });\n};\n\nexport const showSuccessRemovedFromGroupMessage = ({\n object,\n name = '',\n success = null,\n multiple = false,\n timer = 4000,\n altText = false\n}) => {\n const messageId =\n object != null\n ? !multiple\n ? altText\n ? 'common.removedFromGroupSuccessMessageAlt'\n : 'common.removedFromGroupSuccessMessage'\n : altText\n ? 'common.removedFromGroupSuccessMessageMultipleAlt'\n : 'common.removedFromGroupSuccessMessageMultiple'\n : 'common.changesSuccess';\n const message =\n success == null\n ? appIntl().formatMessage(\n {\n id: messageId\n },\n { object, name }\n )\n : success;\n Swal.fire({\n icon: 'success',\n text: `${message}`,\n timer: timer,\n timerProgressBar: true,\n showConfirmButton: false,\n position: 'top-end',\n toast: true,\n didOpen(toast) {\n toast.addEventListener('mouseenter', Swal.stopTimer);\n toast.addEventListener('mouseleave', Swal.resumeTimer);\n },\n customClass: {\n confirmButton: 'btn btn-primary',\n content: 'mr-1 ml-1'\n // icon: \"success-alert-icon\",\n },\n iconColor: '#2ed573',\n buttonsStyling: false\n });\n};\n\nexport const showSuccessAddedToGroupMessage = ({\n object,\n name = '',\n success = null,\n multiple = false,\n timer = 4000,\n altText = false\n}) => {\n const messageId =\n object != null\n ? !multiple\n ? altText\n ? 'common.addedToGroupSuccessMessageAlt'\n : 'common.addedToGroupSuccessMessage'\n : altText\n ? 'common.addedToGroupSuccessMessageMultipleAlt'\n : 'common.addedToGroupSuccessMessageMultiple'\n : 'common.changesSuccess';\n const message =\n success == null\n ? appIntl().formatMessage(\n {\n id: messageId\n },\n { object, name }\n )\n : success;\n Swal.fire({\n icon: 'success',\n text: `${message}`,\n timer: timer,\n timerProgressBar: true,\n showConfirmButton: false,\n position: 'top-end',\n toast: true,\n didOpen(toast) {\n toast.addEventListener('mouseenter', Swal.stopTimer);\n toast.addEventListener('mouseleave', Swal.resumeTimer);\n },\n customClass: {\n confirmButton: 'btn btn-primary',\n content: 'mr-1 ml-1'\n // icon: \"success-alert-icon\",\n },\n iconColor: '#2ed573',\n buttonsStyling: false\n });\n};\n\nexport const showSuccessDisabledMessage = ({\n object,\n name = '',\n success = null,\n multiple = false,\n timer = 4000,\n altText = false\n}) => {\n const messageId =\n object != null\n ? !multiple\n ? altText\n ? 'common.disabledSuccessMessageAlt'\n : 'common.disabledSuccessMessage'\n : altText\n ? 'common.disabledSuccessMessageMultipleAlt'\n : 'common.disabledSuccessMessageMultiple'\n : 'common.changesSuccess';\n const message =\n success == null\n ? appIntl().formatMessage(\n {\n id: messageId\n },\n { object, name }\n )\n : success;\n Swal.fire({\n icon: 'success',\n text: `${message}`,\n timer: timer,\n timerProgressBar: true,\n showConfirmButton: false,\n position: 'top-end',\n toast: true,\n didOpen(toast) {\n toast.addEventListener('mouseenter', Swal.stopTimer);\n toast.addEventListener('mouseleave', Swal.resumeTimer);\n },\n customClass: {\n confirmButton: 'btn btn-primary',\n content: 'mr-1 ml-1'\n // icon: \"success-alert-icon\",\n },\n iconColor: '#2ed573',\n buttonsStyling: false\n });\n};\n\nexport const showSuccessCancelNotificationMessage = ({ timer = 4000 }) => {\n const message = appIntl().formatMessage({\n id: 'common.cancelNotificationSuccessMessage'\n });\n Swal.fire({\n icon: 'success',\n text: `${message}`,\n timer: timer,\n timerProgressBar: true,\n showConfirmButton: false,\n position: 'top-end',\n toast: true,\n didOpen(toast) {\n toast.addEventListener('mouseenter', Swal.stopTimer);\n toast.addEventListener('mouseleave', Swal.resumeTimer);\n },\n customClass: {\n confirmButton: 'btn btn-primary',\n content: 'mr-1 ml-1'\n // icon: \"success-alert-icon\",\n },\n iconColor: '#2ed573',\n buttonsStyling: false\n });\n};\n\n/* -------------------------------------------------------------------------- */\n/* Error Alerts Created, Edited And Deleted */\n/* -------------------------------------------------------------------------- */\nexport const showFailCreatedMessage = ({ object, name = '', error, timer = undefined }) => {\n const messageId = object != null ? 'common.createdFailMessage' : 'common.changesFail';\n const message =\n error == null\n ? appIntl().formatMessage(\n {\n id: messageId\n },\n { object, name }\n )\n : error.message;\n Swal.fire({\n icon: 'error',\n iconColor: '#FF4757',\n text: `${message}`,\n timer: timer,\n timerProgressBar: true,\n showConfirmButton: true,\n customClass: {\n confirmButton: 'btn btn-primary'\n },\n buttonsStyling: false\n });\n};\n\nexport const showFailEditedMessage = ({ object, name = '', error, timer = undefined }) => {\n const messageId = object != null ? 'common.editedFailMessage' : 'common.changesFail';\n const message =\n error == null\n ? appIntl().formatMessage(\n {\n id: messageId\n },\n { object, name }\n )\n : error.message;\n Swal.fire({\n icon: 'error',\n iconColor: '#FF4757',\n text: `${message}`,\n timer: timer,\n timerProgressBar: true,\n showConfirmButton: true,\n customClass: {\n confirmButton: 'btn btn-primary'\n },\n buttonsStyling: false\n });\n};\n\nexport const showFailDeletedMessage = ({\n object,\n name = '',\n error = { message: null },\n multiple = false,\n timer = undefined\n}) => {\n const messageId =\n object != null\n ? !multiple\n ? 'common.deletedFailMessage'\n : 'common.deletedFailMessageMultiple'\n : 'common.changesFail';\n const message =\n error.message == null\n ? appIntl().formatMessage(\n {\n id: messageId\n },\n { object, name }\n )\n : error.message;\n Swal.fire({\n icon: 'error',\n iconColor: '#FF4757',\n text: `${message}`,\n timer: timer,\n timerProgressBar: true,\n showConfirmButton: true,\n customClass: {\n confirmButton: 'btn btn-primary'\n },\n buttonsStyling: false\n });\n};\n\n/* -------------------------------------------------------------------------- */\n/* Delete Confirmation Message Alert */\n/* -------------------------------------------------------------------------- */\ninterface DeleteConfirmationMessageProps {\n action: any;\n objectType: any;\n objectName: any;\n isDisabled?: boolean;\n isUnassign?: boolean;\n deleteWarning?: any;\n width?: any;\n}\n\nexport const showDeleteConfirmationMessage = ({\n action,\n objectType,\n objectName,\n isDisabled = false,\n isUnassign = false,\n width = '32rem',\n deleteWarning\n}: DeleteConfirmationMessageProps) => {\n Swal.fire({\n icon: 'warning',\n width: width,\n title: appIntl().formatMessage(\n {\n id: isDisabled\n ? 'common.disableConfirmationMessage'\n : isUnassign\n ? 'common.unassignConfirmationMessage'\n : 'common.deleteConfirmationMessage'\n },\n { objectType, objectName }\n ),\n text:\n !isDisabled && !isUnassign\n ? deleteWarning\n ? deleteWarning\n : appIntl().formatMessage({ id: 'common.deleteWarning' })\n : '',\n showConfirmButton: true,\n\n showCancelButton: true,\n customClass: {\n cancelButton: 'btn btn-primary',\n confirmButton: 'btn btn-outline-danger mr-1'\n },\n iconColor: '#FF4757',\n buttonsStyling: false,\n confirmButtonText: appIntl().formatMessage({\n id: isDisabled\n ? 'common.confirmDisable'\n : isUnassign\n ? 'common.confirmUnassign'\n : 'common.confirmDelete'\n }),\n cancelButtonText: appIntl().formatMessage({ id: 'common.cancel' }),\n focusConfirm: false,\n focusCancel: true\n }).then((result) => {\n if (result.isConfirmed) {\n action();\n }\n });\n};\n\nexport const showLeaveConfirmationMessage = ({ action, objectType, objectName }) => {\n Swal.fire({\n icon: 'warning',\n title: appIntl().formatMessage(\n {\n id: 'common.leaveConfirmationMessage'\n },\n { objectType, objectName }\n ),\n text: '',\n showConfirmButton: true,\n\n showCancelButton: true,\n customClass: {\n cancelButton: 'btn btn-primary',\n confirmButton: 'btn btn-outline-danger mr-1'\n },\n iconColor: '#FF4757',\n buttonsStyling: false,\n confirmButtonText: appIntl().formatMessage({\n id: 'common.confirmLeave'\n }),\n cancelButtonText: appIntl().formatMessage({ id: 'common.cancel' }),\n focusConfirm: false,\n focusCancel: true\n }).then((result) => {\n if (result.isConfirmed) {\n action();\n }\n });\n};\n\nexport const showRemoveFromGroupConfirmationMessage = ({\n action,\n objectType,\n objectName,\n objectCount,\n isMultiple = false\n}) => {\n Swal.fire({\n icon: 'warning',\n title: appIntl().formatMessage(\n {\n id: isMultiple\n ? 'common.removeFromGroupConfirmationMessageMultiple'\n : 'common.removeFromGroupConfirmationMessage'\n },\n { objectType, objectName, objectCount }\n ),\n text: '',\n showConfirmButton: true,\n\n showCancelButton: true,\n customClass: {\n cancelButton: 'btn btn-primary',\n confirmButton: 'btn btn-outline-danger mr-1'\n },\n iconColor: '#FF4757',\n buttonsStyling: false,\n confirmButtonText: appIntl().formatMessage({\n id: isMultiple ? 'common.confirmRemoveMultiple' : 'common.confirmRemove'\n }),\n cancelButtonText: appIntl().formatMessage({ id: 'common.cancel' }),\n focusConfirm: false,\n focusCancel: true\n }).then((result) => {\n if (result.isConfirmed) {\n action();\n }\n });\n};\n\n/* -------------------------------------------------------------------------- */\n/* Delete Confirmation Message Alert */\n/* -------------------------------------------------------------------------- */\ninterface DeleteMultiple {\n action?: any;\n objectType?: any;\n objectsQuantity?: number;\n}\n\nexport const showDeleteConfirmationMessageMultiple = (props: DeleteMultiple) => {\n const { action, objectType, objectsQuantity } = props;\n const MySwal = withReactContent(Swal);\n MySwal.fire({\n icon: 'warning',\n title: appIntl().formatMessage(\n {\n id: 'common.deleteConfirmationMessageMultiple'\n },\n { objectType, objectsQuantity }\n ),\n showConfirmButton: true,\n\n showCancelButton: true,\n customClass: {\n cancelButton: 'btn btn-primary',\n confirmButton: 'btn btn-outline-danger mr-1'\n },\n iconColor: '#FF4757',\n buttonsStyling: false,\n confirmButtonText: appIntl().formatMessage({\n id: 'common.confirmDelete'\n }),\n cancelButtonText: appIntl().formatMessage({ id: 'common.cancel' }),\n focusConfirm: false,\n focusCancel: true\n }).then((result) => {\n if (result.isConfirmed) {\n action();\n }\n });\n};\n\n/* -------------------------------------------------------------------------- */\n/* LOADING Alert */\n/* -------------------------------------------------------------------------- */\nexport const showLoading = () => {\n Swal.fire({\n title: appIntl().formatMessage({ id: 'common.loading' }),\n customClass: {\n loader: 'custom-loader'\n },\n loaderHtml: '
',\n didOpen: () => {\n Swal.showLoading();\n }\n });\n};\n\nexport const closeLoading = () => {\n Swal.close();\n};\n\n/* -------------------------------------------------------------------------- */\n/* INFORMATION Alert */\n/* -------------------------------------------------------------------------- */\nexport const showInformationMessage = ({ message, timer = 4000 }) => {\n Swal.fire({\n timer: timer,\n icon: 'info',\n text: `${message}`,\n timerProgressBar: true,\n showConfirmButton: false,\n position: 'top-end',\n toast: true,\n didOpen(toast) {\n toast.addEventListener('mouseenter', Swal.stopTimer);\n toast.addEventListener('mouseleave', Swal.resumeTimer);\n }\n });\n};\n","/* eslint-disable semi */\nimport { env } from '../../../env';\n/* -------------------------------------------------------------------------- */\n/* APIBASEURL */\n/* -------------------------------------------------------------------------- */\nconst API_BASE_URL = env.REACT_APP_API_BASE_URL;\nexport default API_BASE_URL;\n","// icon.js\nimport IcoMoon from 'react-icomoon';\nconst iconSet = require('./IcomoonReactive/selection.json');\n\nconst Icon = ({ ...props }) => {\n return (\n \n );\n};\n\nexport default Icon;\n","// ** ThemeConfig Import\r\nimport themeConfig from '@configs/themeConfig';\r\n\r\n// ** Returns Initial Menu Collapsed State\r\nconst initialMenuCollapsed = () => {\r\n const item = window.localStorage.getItem('menuCollapsed');\r\n //** Parse stored json or if none return initialValue\r\n return item ? JSON.parse(item) : themeConfig.layout.menu.isCollapsed;\r\n};\r\n\r\n// ** Initial State\r\nconst initialState = {\r\n isRTL: themeConfig.layout.isRTL,\r\n menuCollapsed: initialMenuCollapsed(),\r\n menuHidden: themeConfig.layout.menu.isHidden,\r\n menuPinner: themeConfig.layout.menu.isPinner,\r\n contentWidth: themeConfig.layout.contentWidth\r\n};\r\n\r\nconst layoutReducer = (state = initialState, action) => {\r\n switch (action.type) {\r\n case 'HANDLE_CONTENT_WIDTH':\r\n return { ...state, contentWidth: action.payload };\r\n case 'HANDLE_MENU_COLLAPSED':\r\n window.localStorage.setItem('menuCollapsed', action.payload);\r\n return { ...state, menuCollapsed: action.payload };\r\n case 'HANDLE_MENU_HIDDEN':\r\n return { ...state, menuHidden: action.payload };\r\n case 'HANDLE_MENU_PINNER':\r\n return { ...state, menuPinner: action.payload };\r\n case 'HANDLE_RTL':\r\n return { ...state, isRTL: action.payload };\r\n default:\r\n return state;\r\n }\r\n};\r\n\r\nexport default layoutReducer;\r\n","import { User } from 'react-feather';\nexport default [\n {\n id: 'accountSettings',\n title: 'profile.profile',\n icon: ,\n permissions: [],\n iconName: 'Users',\n navLink: '/account-settings'\n }\n];\n","import sidebarOptions, * as sidebar from '../../../navigation/vertical';\nimport outsideSidebarOptions from '../../../navigation/outside-sidebar';\n\nimport * as navbarTypes from '../../types/navbar';\n// ** Initial State\nconst initialState = {\n suggestions: [\n ...sidebar.getOptions(sidebarOptions),\n ...sidebar.getOptions(outsideSidebarOptions)\n ],\n bookmarks: [],\n query: '',\n isFetchingBookmarks: false\n};\n\nconst navbar = (state = initialState, action) => {\n switch (action.type) {\n case navbarTypes.HANDLE_SEARCH_QUERY:\n return { ...state, query: action.payload };\n case navbarTypes.GET_BOOKMARKS_FETCH_COMPLETED:\n return {\n ...state,\n bookmarks: action.payload.bookmarks,\n suggestions: action.payload.suggestions,\n isFetchingBookmarks: false\n };\n case navbarTypes.GET_BOOKMARKS_FETCH_FAILED:\n return {\n ...state,\n isFetchingBookmarks: false\n };\n case navbarTypes.GET_BOOKMARKS_FETCH_STARTED:\n return {\n ...state,\n isFetchingBookmarks: true\n };\n case navbarTypes.UPDATE_BOOKMARKED_STARTED:\n let objectToUpdate;\n\n // ** find & update object\n state.suggestions.find((item) => {\n if (item.id === action.payload.id) {\n item.isBookmarked = !item.isBookmarked;\n objectToUpdate = item;\n }\n });\n\n // ** Get index to add or remove bookmark from array\n const bookmarkIndex = state.bookmarks.findIndex((x) => x.id === action.payload.id);\n\n if (bookmarkIndex === -1) {\n state.bookmarks.push(objectToUpdate);\n } else {\n state.bookmarks.splice(bookmarkIndex, 1);\n }\n\n return { ...state };\n default:\n return state;\n }\n};\n\nexport default navbar;\n\n//Own state\nexport const getOwnState = (state) => state.navbar;\n\n// Get User Bookmarks\nexport const getUserBookmarks = (state) => getOwnState(state).bookmarks;\n//Status of sagas\nexport const isFetchingBookmarks = (state) => getOwnState(state).isFetchingBookmarks;\n","import { combineReducers } from 'redux';\nimport currencies from './currencies';\nimport paymentMethods from './payment-methods';\nimport timeZones from './time-zones';\nimport countries from './countries';\nimport providers from './cellular-providers';\nimport vehicleMakers from './vehicle-makers';\nimport vehicleModels from './vehicle-models';\nimport insuranceCompanies from './insurance-companies';\nimport insuranceAgents from './insurance-agents';\nimport sensorBrands from './sensor-brands';\nimport sensorModels from './sensor-models';\nimport sensorMeasures from './sensor-measures';\nimport locationClasses from './location-classes';\nimport brands from './brands';\n\nconst staticCatalogs = combineReducers({\n currencies,\n timeZones,\n countries,\n providers,\n vehicleMakers,\n vehicleModels,\n insuranceCompanies,\n insuranceAgents,\n sensorBrands,\n sensorModels,\n sensorMeasures,\n paymentMethods,\n locationClasses,\n brands\n});\n\nexport default staticCatalogs;\n\n//Own state\nexport const getOwnState = (state) => state.staticCatalogs;\n","// ** Redux Imports\nimport { combineReducers } from 'redux';\nimport { reducer as formReducer } from 'redux-form';\n// ** Reducers Imports\nimport layout from './layout';\nimport auth from './auth';\nimport * as authTypes from '../types/auth';\nimport operators from 'views/screens/Operators/reducers';\nimport organizations from 'views/screens/Organizations/reducers';\nimport divisions from 'views/screens/Divisions/reducers';\nimport subdivisions from 'views/screens/Subdivisions/reducers';\nimport serviceClasses from 'views/screens/ServiceClasses/reducers';\nimport agents from 'views/screens/Agents/reducers';\nimport navbar from './navbar';\nimport modules from 'views/screens/Modules/reducers';\nimport entities from 'views/screens/Entities/reducers';\nimport workplans from 'views/screens/Workplans/reducers/workplans';\nimport locations from 'views/screens/Locations/reducers';\nimport drivers from 'views/screens/Drivers/reducers';\nimport monitoringUsers from 'views/screens/Users/reducers';\nimport jobs from 'views/screens/Jobs/reducers';\nimport groups from 'views/screens/Groups/reducers';\nimport organizationContracts from 'views/screens/Contracts/reducers';\nimport contractTemplates from 'views/screens/ContractTemplates/reducers';\nimport schedules from 'views/screens/Schedules/reducers';\nimport routes from 'views/screens/Routes/reducers/routes';\nimport units from 'views/screens/Units/reducers';\nimport geofences from 'views/screens/Geofences/reducers';\nimport staticCatalogs from './static-catalogs';\nimport localforage from 'localforage';\nimport people from 'views/screens/Contacts/reducers';\nimport sims from 'views/screens/SIMs/reducers';\nimport vehicles from 'views/screens/Vehicles/reducers';\nimport assets from 'views/screens/Assets/reducers';\nimport sensors from 'views/screens/Sensors/reducers';\nimport forms from 'views/screens/Forms/reducers';\nimport categories from 'views/screens/vehicleMaintenance/reducers/catalogs/categories';\nimport workmanship from 'views/screens/vehicleMaintenance/reducers/catalogs/workmanship';\nimport noticesByOdometer from 'views/screens/vehicleMaintenance/reducers/preventiveNotices/noticesByOdometer';\nimport noticesByDate from 'views/screens/vehicleMaintenance/reducers/preventiveNotices/noticesByDate';\nimport noticesByHourmeter from 'views/screens/vehicleMaintenance/reducers/preventiveNotices/noticesByHourmeter';\nimport providers from 'views/screens/vehicleMaintenance/reducers/catalogs/providers';\nimport spareParts from 'views/screens/vehicleMaintenance/reducers/catalogs/spareParts';\nimport maintenanceLines from 'views/screens/MaintenanceLines/reducers';\nimport customers from 'views/screens/Customers/reducers';\nimport quotations from 'views/screens/Quotations/reducers';\nimport offices from 'views/screens/Offices/reducers';\nimport protocols from 'views/screens/Protocols/reducers';\n\nconst reducer = combineReducers({\n auth,\n layout,\n operators,\n organizations,\n divisions,\n subdivisions,\n serviceClasses,\n agents,\n navbar,\n modules,\n entities,\n people,\n workplans,\n locations,\n drivers,\n monitoringUsers,\n routes,\n schedules,\n units,\n categories,\n workmanship,\n geofences,\n staticCatalogs,\n sims,\n vehicles,\n assets,\n sensors,\n forms,\n jobs,\n groups,\n quotations,\n organizationContracts,\n contractTemplates,\n customers,\n offices,\n form: formReducer,\n noticesByOdometer,\n noticesByDate,\n noticesByHourmeter,\n providers,\n spareParts,\n maintenanceLines,\n protocols\n});\n\nconst rootReducer = (state, action): any => {\n let newState = { ...state };\n\n if (!action) {\n return reducer;\n }\n\n if (action.type === authTypes.AUTHENTICATION_IDENTITY_CLEARED) {\n //Remove Session Information\n localStorage.removeItem('auth');\n localStorage.removeItem('userData');\n //Clear redux-persist storage\n localforage.removeItem('persist:root');\n //Set initialState\n const {\n jobs,\n groups,\n entities,\n routes,\n workplans,\n locations,\n drivers,\n auth,\n geofences,\n units\n } = state;\n newState = {\n jobs,\n groups,\n entities,\n routes,\n workplans,\n locations,\n drivers,\n auth,\n geofences,\n units\n };\n }\n return reducer(newState, action);\n};\n\nexport default rootReducer;\nexport type RootState = ReturnType;\n","/* -------------------------------------------------------------------------- */\n/* Schema Agents */\n/* -------------------------------------------------------------------------- */\n\nimport { schema } from \"normalizr\";\n\nexport const agent = new schema.Entity(\n \"agents\",\n {},\n { idAttribute: \"agentId\" }\n);\nexport const agents = new schema.Array(agent);\n","import { call, takeEvery, put, select } from 'redux-saga/effects';\n\nimport { normalize } from 'normalizr';\nimport API_BASE_URL from '../../../../redux/sagas/settings/apibaseurl';\nimport * as actions from '../actions';\nimport * as types from '../types';\nimport * as selectors from '../reducers';\nimport * as schemas from '../schemas';\nimport * as entitySelectors from '../../Entities/reducers';\nimport * as authSelectors from '../../../../redux/reducers/auth';\nimport camelcaseKeys from 'camelcase-keys';\nimport * as alerts from '../../../../redux/utils/alerts';\nimport * as agentSelectors from '../reducers';\nimport { appIntl } from '../../../../utility/context/IntlGlobalProvider';\n\n/* -------------------------------------------------------------------------- */\n/* FETCH LIST */\n/* -------------------------------------------------------------------------- */\nfunction* fetchAgentsList(action) {\n try {\n const isAuth = yield select(authSelectors.isAuthenticated);\n if (isAuth) {\n const token = yield select(authSelectors.getAuthToken);\n const response = yield call(fetch, `${API_BASE_URL}/agent/get`, {\n method: 'POST',\n body: JSON.stringify({}),\n headers: {\n 'Content-Type': 'application/json',\n Authorization: `Bearer ${token}`\n }\n });\n const jsonResult = yield response.json();\n if (response.status <= 300 && jsonResult.success) {\n const resultData = jsonResult.data.map((result) => camelcaseKeys(result));\n const {\n entities: { agents },\n result //order\n } = normalize(resultData, schemas.agents); //normalize data to byId and order\n yield put(actions.completeFetchingAgents(agents, result));\n } else {\n const error = {\n errorMessage: jsonResult.message,\n errorNumber: jsonResult.number\n };\n // alerts.showErrorAlertFailChanges({ error });\n yield put(actions.failFetchingAgents(error));\n }\n }\n } catch (err) {\n const error = {\n errorMessage: err.toString(),\n errorNumber: -1\n };\n // alerts.showErrorAlertFailChanges({ error });\n yield put(actions.failFetchingAgents(error));\n }\n}\n\nexport function* watchFetchAgentsList() {\n yield takeEvery(types.AGENTS_FETCH_STARTED, fetchAgentsList);\n}\n\n/* -------------------------------------------------------------------------- */\n/* PARTIAL FETCH LIST */\n/* -------------------------------------------------------------------------- */\nfunction* partialFetchAgentsList(action) {\n try {\n const entityTypeId = action.payload;\n const date = yield select(entitySelectors.getUserUpdateByEntityDate, entityTypeId);\n const isAuth = yield select(authSelectors.isAuthenticated);\n if (isAuth) {\n const token = yield select(authSelectors.getAuthToken);\n const response = yield call(fetch, `${API_BASE_URL}/agent/GET`, {\n method: 'POST',\n body: JSON.stringify({ userFetchDate: date }),\n headers: {\n 'Content-Type': 'application/json',\n Authorization: `Bearer ${token}`\n }\n });\n const jsonResult = yield response.json();\n if (response.status <= 300 && jsonResult.success) {\n const resultData = jsonResult.data.map((result) => camelcaseKeys(result));\n const {\n entities: { agents },\n result //order\n } = normalize(resultData, schemas.agents); //normalize data to byId and order\n yield put(actions.completePartialFetchingAgents(agents, result));\n } else {\n const error = {\n errorMessage: jsonResult.message,\n errorNumber: jsonResult.number\n };\n // alerts.showErrorAlertFailChanges({ error });\n yield put(actions.failPartialFetchingAgents(error));\n }\n }\n } catch (err) {\n const error = {\n errorMessage: err.toString(),\n errorNumber: -1\n };\n // alerts.showErrorAlertFailChanges({ error });\n yield put(actions.failPartialFetchingAgents(error));\n }\n}\n\nexport function* watchPartialFetchAgentsList() {\n yield takeEvery(types.AGENTS_PARTIAL_FETCH_STARTED, partialFetchAgentsList);\n}\n\n/* -------------------------------------------------------------------------- */\n/* ADD */\n/* -------------------------------------------------------------------------- */\nfunction* addAgent(action) {\n const agent = action.payload;\n try {\n const isAuth = yield select(authSelectors.isAuthenticated);\n\n if (isAuth) {\n const token = yield select(authSelectors.getAuthToken);\n\n const response = yield call(fetch, `${API_BASE_URL}/agent/save`, {\n method: 'POST',\n body: JSON.stringify({ ...agent, agentId: null }),\n headers: {\n 'Content-Type': 'application/json',\n Authorization: `Bearer ${token}`\n }\n });\n const jsonResult = yield response.json();\n if (response.status <= 300 && jsonResult.success) {\n const addedAgent = camelcaseKeys(jsonResult.data);\n yield put(actions.completeAddingAgent(agent.agentId, addedAgent));\n alerts.showSuccessCreatedMessage({\n object: appIntl().formatMessage({\n id: 'agents.agent'\n }),\n name: agent.agentName\n });\n } else {\n const error = {\n errorMessage: jsonResult.message,\n errorNumber: jsonResult.number\n };\n // alerts.showErrorAlertFailChanges({ error });\n yield put(actions.failAddingAgent(agent.agentId, error));\n }\n }\n } catch (err) {\n const error = {\n errorMessage: err.toString(),\n errorNumber: -1\n };\n // alerts.showErrorAlertFailChanges({ error });\n yield put(actions.failAddingAgent(agent.agentId, error));\n }\n}\n\nexport function* watchAddAgentsStarted() {\n yield takeEvery(types.AGENT_ADD_STARTED, addAgent);\n}\n\n/* -------------------------------------------------------------------------- */\n/* EDIT */\n/* -------------------------------------------------------------------------- */\nfunction* editAgent(action) {\n const agent = action.payload;\n try {\n const isAuth = yield select(authSelectors.isAuthenticated);\n\n if (isAuth) {\n const token = yield select(authSelectors.getAuthToken);\n\n const response = yield call(fetch, `${API_BASE_URL}/agent/save`, {\n method: 'POST',\n body: JSON.stringify({\n ...agent\n }),\n headers: {\n 'Content-Type': 'application/json',\n Authorization: `Bearer ${token}`\n }\n });\n const jsonResult = yield response.json();\n if (response.status <= 300 && jsonResult.success) {\n const editedAgent = camelcaseKeys(jsonResult.data);\n yield put(actions.completeEditingAgent(editedAgent));\n alerts.showSuccessEditedMessage({\n object: appIntl().formatMessage({\n id: 'agents.agent'\n }),\n name: editedAgent.agentName\n });\n } else {\n const error = {\n errorMessage: jsonResult.message,\n errorNumber: jsonResult.number\n };\n const { oldAgent } = yield select((state) => selectors.getAgent(state, agent.agentId));\n yield put(actions.failEditingAgent(oldAgent, error));\n // alerts.showErrorAlertFailChanges({ error });\n }\n }\n } catch (err) {\n const error = {\n errorMessage: err.toString(),\n errorNumber: -1\n };\n\n const { oldAgent } = yield select((state) => selectors.getAgent(state, agent.agentId));\n yield put(actions.failEditingAgent(oldAgent, error));\n // alerts.showErrorAlertFailChanges({ error });\n }\n}\n\nexport function* watchEditAgentsStarted() {\n yield takeEvery(types.AGENT_EDIT_STARTED, editAgent);\n}\n\n/* -------------------------------------------------------------------------- */\n/* REMOVE */\n/* -------------------------------------------------------------------------- */\nfunction* removeAgent(action) {\n const { agentId } = action.payload;\n try {\n const isAuth = yield select(authSelectors.isAuthenticated);\n const deletedAgent = yield select((state) => agentSelectors.getAgent(state, agentId));\n if (isAuth) {\n const token = yield select(authSelectors.getAuthToken);\n\n const response = yield call(fetch, `${API_BASE_URL}/agent/delete`, {\n method: 'POST',\n body: JSON.stringify({ agentId }),\n headers: {\n 'Content-Type': 'application/json',\n Authorization: `Bearer ${token}`\n }\n });\n const jsonResult = yield response.json();\n if (response.status <= 300 && jsonResult.success) {\n yield put(actions.completeRemovingAgent(agentId));\n alerts.showSuccessDeletedMessage({\n object: appIntl().formatMessage({\n id: 'agents.agent'\n }),\n name: deletedAgent.agentName\n });\n } else {\n const error = {\n errorMessage: jsonResult.message,\n errorNumber: jsonResult.number\n };\n // alerts.showErrorAlertFailChanges({ error });\n yield put(actions.failRemovingAgent(agentId, error));\n }\n }\n } catch (err) {\n const error = {\n errorMessage: err.toString(),\n errorNumber: -1\n };\n // alerts.showErrorAlertFailChanges({ error });\n yield put(actions.failRemovingAgent(agentId, error));\n }\n}\n\nexport function* watchRemoveAgentStarted() {\n yield takeEvery(types.AGENT_REMOVE_STARTED, removeAgent);\n}\n\n/* -------------------------------------------------------------------------- */\n/* FETCH AGENT */\n/* -------------------------------------------------------------------------- */\nfunction* fetchAgent(action) {\n const agentId = action.payload;\n try {\n const isAuth = yield select(authSelectors.isAuthenticated);\n\n if (isAuth) {\n const token = yield select(authSelectors.getAuthToken);\n\n const response = yield call(fetch, `${API_BASE_URL}/agent/${agentId}`, {\n method: 'GET',\n headers: {\n 'Content-Type': 'application/json',\n Authorization: `Bearer ${token}`\n }\n });\n const jsonResult = yield response.json();\n if (response.status <= 300 && jsonResult.success) {\n const agent = camelcaseKeys(jsonResult.data);\n yield put(actions.completeFetchingAgent(agent));\n } else {\n const error = {\n errorMessage: jsonResult.message,\n errorNumber: jsonResult.number\n };\n\n yield put(actions.failFetchingAgent(error));\n }\n }\n } catch (err) {\n const error = {\n errorMessage: err.toString(),\n errorNumber: -1\n };\n\n yield put(actions.failFetchingAgent(error));\n }\n}\n\nexport function* watchAgentFetchStarted() {\n yield takeEvery(types.AGENT_FETCH_STARTED, fetchAgent);\n}\n","/* -------------------------------------------------------------------------- */\n/* Schema Divisions */\n/* -------------------------------------------------------------------------- */\n\nimport { schema } from \"normalizr\";\n\nexport const division = new schema.Entity(\n \"divisions\",\n {},\n { idAttribute: \"divisionId\" }\n);\nexport const divisions = new schema.Array(division);\n","import { call, takeEvery, put, select } from 'redux-saga/effects';\n\nimport { normalize } from 'normalizr';\nimport API_BASE_URL from '../../../../redux/sagas/settings/apibaseurl';\nimport * as actions from '../actions';\nimport * as types from '../types';\nimport * as selectors from '../reducers';\nimport * as schemas from '../schemas';\nimport * as entitySelectors from '../../Entities/reducers';\nimport * as authSelectors from '../../../../redux/reducers/auth';\nimport camelcaseKeys from 'camelcase-keys';\nimport * as alerts from '../../../../redux/utils/alerts';\nimport { appIntl } from '../../../../utility/context/IntlGlobalProvider';\n\n/* -------------------------------------------------------------------------- */\n/* FETCH LIST */\n/* -------------------------------------------------------------------------- */\nfunction* fetchDivisionsList(action) {\n const { operatorId: filterOperatorId, organizationId: filterOrganizationId } = action.payload;\n const { operatorId, organizationId } = yield select(authSelectors.getAuthUserMembershipFilters, {\n filterOperatorId,\n filterOrganizationId\n });\n\n try {\n const isAuth = yield select(authSelectors.isAuthenticated);\n if (isAuth) {\n const token = yield select(authSelectors.getAuthToken);\n const response = yield call(fetch, `${API_BASE_URL}/division/get`, {\n method: 'POST',\n body: JSON.stringify({\n operatorId,\n organizationId\n }),\n headers: {\n 'Content-Type': 'application/json',\n Authorization: `Bearer ${token}`\n }\n });\n const jsonResult = yield response.json();\n if (response.status <= 300 && jsonResult.success) {\n const resultData = jsonResult.data.map((result) => camelcaseKeys(result));\n const {\n entities: { divisions },\n result //order\n } = normalize(resultData, schemas.divisions); //normalize data to byId and order\n yield put(actions.completeFetchingDivisions(divisions, result, operatorId, organizationId));\n } else {\n const error = {\n errorMessage: jsonResult.message,\n errorNumber: jsonResult.number\n };\n // alerts.showErrorAlertFailChanges({ error });\n yield put(actions.failFetchingDivisions(error));\n }\n }\n } catch (err) {\n const error = {\n errorMessage: err.toString(),\n errorNumber: -1\n };\n // alerts.showErrorAlertFailChanges({ error });\n yield put(actions.failFetchingDivisions(error));\n }\n}\n\nexport function* watchFetchDivisionsList() {\n yield takeEvery(types.DIVISIONS_FETCH_STARTED, fetchDivisionsList);\n}\n/* -------------------------------------------------------------------------- */\n/* PARTIAL FETCH LIST */\n/* -------------------------------------------------------------------------- */\nfunction* partialFetchDivisionsList(action) {\n try {\n const {\n entityTypeId,\n operatorId: filterOperatorId,\n organizationId: filterOrganizationId\n } = action.payload;\n const date = yield select(entitySelectors.getUserUpdateByEntityDate, entityTypeId);\n const { operatorId, organizationId } = yield select(\n authSelectors.getAuthUserMembershipFilters,\n {\n filterOperatorId,\n filterOrganizationId\n }\n );\n\n const isAuth = yield select(authSelectors.isAuthenticated);\n if (isAuth) {\n const token = yield select(authSelectors.getAuthToken);\n const response = yield call(fetch, `${API_BASE_URL}/division/get`, {\n method: 'POST',\n body: JSON.stringify({ userFetchDate: date, operatorId, organizationId }),\n headers: {\n 'Content-Type': 'application/json',\n Authorization: `Bearer ${token}`\n }\n });\n const jsonResult = yield response.json();\n if (response.status <= 300 && jsonResult.success) {\n const resultData = jsonResult.data.map((result) => camelcaseKeys(result));\n const {\n entities: { divisions },\n result //order\n } = normalize(resultData, schemas.divisions); //normalize data to byId and order\n yield put(\n actions.completePartialFetchingDivisions(divisions, result, operatorId, organizationId)\n );\n } else {\n const error = {\n errorMessage: jsonResult.message,\n errorNumber: jsonResult.number\n };\n // alerts.showErrorAlertFailChanges({ error });\n yield put(actions.failPartialFetchingDivisions(error));\n }\n }\n } catch (err) {\n const error = {\n errorMessage: err.toString(),\n errorNumber: -1\n };\n // alerts.showErrorAlertFailChanges({ error });\n yield put(actions.failPartialFetchingDivisions(error));\n }\n}\n\nexport function* watchPartialFetchDivisionsList() {\n yield takeEvery(types.DIVISIONS_PARTIAL_FETCH_STARTED, partialFetchDivisionsList);\n}\n/* -------------------------------------------------------------------------- */\n/* ADD */\n/* -------------------------------------------------------------------------- */\nfunction* addDivision(action) {\n const division = action.payload;\n try {\n const isAuth = yield select(authSelectors.isAuthenticated);\n\n if (isAuth) {\n const token = yield select(authSelectors.getAuthToken);\n const response = yield call(fetch, `${API_BASE_URL}/division/save`, {\n method: 'POST',\n body: JSON.stringify({ ...division, divisionId: null }),\n headers: {\n 'Content-Type': 'application/json',\n Authorization: `Bearer ${token}`\n }\n });\n const jsonResult = yield response.json();\n if (response.status <= 300 && jsonResult.success) {\n const addedDivision = camelcaseKeys(jsonResult.data);\n yield put(actions.completeAddingDivision(division.divisionId, addedDivision));\n\n alerts.showSuccessCreatedMessage({\n object: appIntl().formatMessage({\n id: 'divisions.division'\n }),\n name: division.divisionName\n });\n } else {\n const error = {\n errorMessage: jsonResult.message,\n errorNumber: jsonResult.number\n };\n // alerts.showErrorAlertFailChanges({ error });\n yield put(actions.failAddingDivision(division.divisionId, error));\n }\n }\n } catch (err) {\n const error = {\n errorMessage: err.toString(),\n errorNumber: -1\n };\n // alerts.showErrorAlertFailChanges({ error });\n yield put(actions.failAddingDivision(division.divisionId, error));\n }\n}\n\nexport function* watchAddDivisionsStarted() {\n yield takeEvery(types.DIVISION_ADD_STARTED, addDivision);\n}\n\n/* -------------------------------------------------------------------------- */\n/* EDIT */\n/* -------------------------------------------------------------------------- */\nfunction* editDivision(action) {\n const division = action.payload;\n try {\n const isAuth = yield select(authSelectors.isAuthenticated);\n\n if (isAuth) {\n const token = yield select(authSelectors.getAuthToken);\n\n const response = yield call(fetch, `${API_BASE_URL}/division/save`, {\n method: 'POST',\n body: JSON.stringify(division),\n headers: {\n 'Content-Type': 'application/json',\n Authorization: `Bearer ${token}`\n }\n });\n const jsonResult = yield response.json();\n if (response.status <= 300 && jsonResult.success) {\n const editedDivision = camelcaseKeys(jsonResult.data);\n yield put(actions.completeEditingDivision(editedDivision));\n alerts.showSuccessEditedMessage({\n object: appIntl().formatMessage({\n id: 'divisions.division'\n }),\n name: editedDivision.divisionName\n });\n } else {\n const error = {\n errorMessage: jsonResult.message,\n errorNumber: jsonResult.number\n };\n const { oldDivision } = yield select((state) =>\n selectors.getDivision(state.divisions, division.divisionId)\n );\n yield put(actions.failEditingDivision(oldDivision, error));\n // alerts.showErrorAlertFailChanges({ error });\n }\n }\n } catch (err) {\n const error = {\n errorMessage: err.toString(),\n errorNumber: -1\n };\n\n const oldDivision = yield select((state) => selectors.getDivision(state, division.divisionId));\n yield put(actions.failEditingDivision(oldDivision, error));\n // alerts.showErrorAlertFailChanges({ error });\n }\n}\n\nexport function* watchEditDivisionsStarted() {\n yield takeEvery(types.DIVISION_EDIT_STARTED, editDivision);\n}\n\n/* -------------------------------------------------------------------------- */\n/* REMOVE */\n/* -------------------------------------------------------------------------- */\nfunction* removeDivision(action) {\n const { divisionId } = action.payload;\n try {\n const isAuth = yield select(authSelectors.isAuthenticated);\n if (isAuth) {\n const token = yield select(authSelectors.getAuthToken);\n const deletedDivision = yield select((state) => selectors.getDivision(state, divisionId));\n const response = yield call(fetch, `${API_BASE_URL}/division/delete`, {\n method: 'POST',\n body: JSON.stringify({ divisionId }),\n headers: {\n 'Content-Type': 'application/json',\n Authorization: `Bearer ${token}`\n }\n });\n const jsonResult = yield response.json();\n if (response.status <= 300 && jsonResult.success) {\n yield put(actions.completeRemovingDivision(divisionId));\n alerts.showSuccessDeletedMessage({\n object: appIntl().formatMessage({\n id: 'divisions.division'\n }),\n name: deletedDivision.divisionName\n });\n } else {\n const error = {\n errorMessage: jsonResult.message,\n errorNumber: jsonResult.number\n };\n // alerts.showErrorAlertFailChanges({ error });\n yield put(actions.failRemovingDivision(divisionId, error));\n }\n }\n } catch (err) {\n const error = {\n errorMessage: err.toString(),\n errorNumber: -1\n };\n // alerts.showErrorAlertFailChanges({ error });\n yield put(actions.failRemovingDivision(divisionId, error));\n }\n}\n\nexport function* watchRemoveDivisionStarted() {\n yield takeEvery(types.DIVISION_REMOVE_STARTED, removeDivision);\n}\n","/* Schema Entities */\n/* -------------------------------------------------------------------------- */\n\nimport { schema } from 'normalizr';\n\nexport const entity = new schema.Entity('entities', {}, { idAttribute: 'entityTypeId' });\nexport const entities = new schema.Array(entity);\n","import * as types from '../../../types/static-catalogs/countries';\n\nexport const startFetchingCountries = (filters = {}) => ({\n type: types.COUNTRIES_FETCH_STARTED,\n payload: { filters }\n});\nexport const completeFetchingCountries = (entities, order) => ({\n type: types.COUNTRIES_FETCH_COMPLETED,\n payload: {\n entities,\n order\n }\n});\nexport const failFetchingCountries = (error = { errorMessage: 'Error', errorNumber: 404 }) => ({\n type: types.COUNTRIES_FETCH_FAILED,\n payload: {\n error //error:{errorMessage:'Error', errorNumber:400}\n }\n});\n\nexport const startPartialFetchingCountries = (filters = {}) => ({\n type: types.COUNTRIES_PARTIAL_FETCH_STARTED,\n payload: { filters }\n});\nexport const completePartialFetchingCountries = (entities, order) => ({\n type: types.COUNTRIES_PARTIAL_FETCH_COMPLETED,\n payload: {\n entities,\n order\n }\n});\nexport const failPartialFetchingCountries = (\n error = { errorMessage: 'Error', errorNumber: 404 }\n) => ({\n type: types.COUNTRIES_PARTIAL_FETCH_FAILED,\n payload: {\n error //error:{errorMessage:'Error', errorNumber:400}\n }\n});\n\nexport const selectModel = (modelId) => ({\n type: types.COUNTRY_SELECTED,\n payload: modelId\n});\n\nexport const deselectModel = (modelId) => ({\n type: types.COUNTRY_DESELECTED,\n payload: modelId\n});\n\nexport const deselectAllCountries = (\n modelIds = [] //List of ModelIds\n) => ({\n type: types.COUNTRIES_ALL_DESELECTED,\n payload: modelIds\n});\n","import { all, call, takeEvery, put, select } from 'redux-saga/effects';\n\nimport { normalize } from 'normalizr';\nimport API_BASE_URL from '../../../../redux/sagas/settings/apibaseurl';\nimport * as actions from '../actions';\nimport * as types from '../types';\nimport * as selectors from '../reducers';\nimport * as schemas from '../schemas';\nimport * as authSelectors from '../../../../redux/reducers/auth';\nimport camelcaseKeys from 'camelcase-keys';\nimport * as alerts from '../../../../redux/utils/alerts';\nimport * as entityTypes from '../../../screens/Entities/constants';\n//Se importan las actions de las entities que se quieren actualizar\nimport * as operatorsActions from 'views/screens/Operators/actions';\nimport * as organizationsActions from 'views/screens/Organizations/actions';\nimport * as divisionsActions from 'views/screens/Divisions/actions';\nimport * as subdivisionsActions from 'views/screens/Subdivisions/actions';\nimport * as maintenanceLinesActions from 'views/screens/MaintenanceLines/actions';\nimport * as unitsActions from '../../Units/actions';\nimport * as geofencesActions from 'views/screens/Geofences/actions';\nimport * as workplansActions from 'views/screens/Workplans/actions/workplans';\n\nimport * as routesActions from 'views/screens/Routes/actions/routes';\nimport * as serviceClassesActions from 'views/screens/ServiceClasses/actions';\nimport * as locationActions from '../../Locations/actions';\nimport * as officeActions from '../../Offices/actions';\nimport * as driverActions from '../../Drivers/actions';\nimport * as schedulesActions from '../../Schedules/actions';\nimport * as brandsActions from '../../../../redux/actions/static-catalogs/brands';\nimport * as modelsActions from '../../../../redux/actions/models';\nimport * as contactsActions from 'views/screens/Contacts/actions';\nimport * as monitoringUsers from '../../Users/actions';\nimport * as agentActions from 'views/screens/Agents/actions';\nimport * as modulesActions from '../../Modules/actions';\nimport * as simActions from '../../SIMs/actions';\nimport * as countriesActions from '../../../../redux/actions/static-catalogs/countries';\nimport * as vehicleActions from '../../Vehicles/actions/index';\nimport * as vehicleMakerActions from '../../../../redux/actions/static-catalogs/vehicle-makers';\nimport * as assetsActions from 'views/screens/Assets/actions';\nimport * as sensorsActions from 'views/screens/Sensors/actions';\nimport * as jobActions from 'views/screens/Jobs/actions';\nimport * as groupsActions from 'views/screens/Groups/actions';\nimport * as formsActions from 'views/screens/Forms/actions';\nimport * as organizationContractsActions from 'views/screens/Contracts/actions';\nimport * as contractTemplatesActions from 'views/screens/ContractTemplates/actions';\nimport * as customersActions from 'views/screens/Customers/actions';\nimport * as protocolsActions from 'views/screens/Protocols/actions';\n\n/* -------------------------------------------------------------------------- */\n/* FETCH LIST */\n/* -------------------------------------------------------------------------- */\nfunction* fetchEntitiesList(action) {\n try {\n const isAuth = yield select(authSelectors.isAuthenticated);\n if (isAuth) {\n const token = yield select(authSelectors.getAuthToken);\n const response = yield call(fetch, `${API_BASE_URL}/account/entities-datetimes`, {\n method: 'GET',\n headers: {\n 'Content-Type': 'application/json',\n Authorization: `Bearer ${token}`\n }\n });\n const jsonResult = yield response.json();\n if (response.status <= 300 && jsonResult.success) {\n const resultData = jsonResult.data.map((result) => camelcaseKeys(result));\n const {\n entities: { entities },\n result //order\n } = normalize(resultData, schemas.entities); //normalize data to byId and order\n yield put(actions.completeFetchingEntities(entities, result));\n } else {\n const error = {\n errorMessage: jsonResult.message,\n errorNumber: jsonResult.number\n };\n // alerts.showErrorAlertFailChanges({ error });\n yield put(actions.failFetchingEntities(error));\n }\n }\n } catch (err) {\n const error = {\n errorMessage: err?.toString(),\n errorNumber: -1\n };\n // alerts.showErrorAlertFailChanges({ error });\n yield put(actions.failFetchingEntities(error));\n }\n}\n\nexport function* watchFetchEntitiesList() {\n yield takeEvery(types.ENTITIES_FETCH_STARTED, fetchEntitiesList);\n}\n\n/* -------------------------------------------------------------------------- */\n/* UPDATE ENTITIES */\n/* -------------------------------------------------------------------------- */\nfunction* updateEntities(action) {\n const isFetchedListEntities = yield select(selectors.isFetchedListEntities);\n if (isFetchedListEntities) {\n try {\n const entitiesToUpdate = action.payload;\n const isEntityUpdatedFunction = yield select(selectors.isEntityUpdated);\n const isEntityUpdated = isEntityUpdatedFunction(entitiesToUpdate);\n yield all(\n entitiesToUpdate.map((entity, index) => {\n //Si no esta actualizada se actualiza con la acciĆ³n fetch de la propia entidad\n const entityTypeId = entity?.entityTypeId || entity;\n if (isEntityUpdated[index] !== true) {\n switch (parseInt(entityTypeId)) {\n case entityTypes.ENTITY_UNITS:\n if (isEntityUpdated[index] === null)\n return put(\n unitsActions.startFetchingUnits({\n operatorId: entity.operatorId,\n organizationId: entity.organizationId\n })\n );\n else\n return put(\n unitsActions.startPartialFetchingUnits(\n parseInt(entityTypeId),\n entity.operatorId,\n entity.organizationId\n )\n );\n case entityTypes.ENTITY_SUBDIVISONS:\n if (isEntityUpdated[index] === null)\n return put(\n subdivisionsActions.startFetchingSubdivisions({\n operatorId: entity.operatorId,\n organizationId: entity.organizationId\n })\n );\n else\n return put(\n subdivisionsActions.startPartialFetchingSubdivisions(\n parseInt(entityTypeId),\n entity.operatorId,\n entity.organizationId\n )\n );\n case entityTypes.ENTITY_MAINTENANCE_LINES:\n if (isEntityUpdated[index] === null)\n return put(\n maintenanceLinesActions.startFetchingMaintenanceLines({\n operatorId: entity.operatorId,\n organizationId: entity.organizationId\n })\n );\n else\n return put(\n maintenanceLinesActions.startPartialFetchingMaintenanceLines(\n parseInt(entityTypeId),\n entity.operatorId,\n entity.organizationId\n )\n );\n case entityTypes.ENTITY_VEHICLES:\n if (isEntityUpdated[index] === null)\n return put(\n vehicleActions.startFetchingVehicles({\n operatorId: entity.operatorId,\n organizationId: entity.organizationId\n })\n );\n else\n return put(\n vehicleActions.startPartialFetchingVehicles(\n parseInt(entityTypeId),\n entity.operatorId,\n entity.organizationId\n )\n );\n case entityTypes.ENTITY_MODULES:\n if (isEntityUpdated[index] === null)\n return put(\n modulesActions.startFetchingModules({\n operatorId: entity.operatorId,\n organizationId: entity.organizationId,\n allowNullOrganizationId: entity.allowNullOrganizationId\n })\n );\n else\n return put(\n modulesActions.startPartialFetchingModules(\n parseInt(entityTypeId),\n entity.operatorId,\n entity.organizationId,\n entity.allowNullOrganizationId\n )\n );\n case entityTypes.ENTITY_AGENTS:\n if (isEntityUpdated[index] === null) return put(agentActions.startFetchingAgents());\n else return put(agentActions.startPartialFetchingAgents(parseInt(entityTypeId)));\n case entityTypes.ENTITY_SERVICE_CLASSES:\n if (isEntityUpdated[index] === null)\n return put(\n serviceClassesActions.startFetchingServiceClasses({}, entity.isDropdown)\n );\n else\n return put(\n serviceClassesActions.startPartialFetchingServiceClasses(parseInt(entityTypeId))\n );\n case entityTypes.ENTITY_OPERATORS:\n if (isEntityUpdated[index] === null)\n return put(operatorsActions.startFetchingOperators());\n else\n return put(\n operatorsActions.startPartialFetchingOperators(parseInt(entityTypeId))\n );\n case entityTypes.ENTITY_DIVISIONS:\n if (isEntityUpdated[index] === null)\n return put(\n divisionsActions.startFetchingDivisions({\n operatorId: entity.operatorId,\n organizationId: entity.organizationId\n })\n );\n else\n return put(\n divisionsActions.startPartialFetchingDivisions(\n parseInt(entityTypeId),\n entity.operatorId,\n entity.organizationId\n )\n );\n case entityTypes.ENTITY_FORMS:\n if (isEntityUpdated[index] === null) return put(formsActions.startFetchingForms());\n else return put(formsActions.startPartialFetchingForms(parseInt(entityTypeId)));\n case entityTypes.ENTITY_ORGANIZATIONS:\n if (isEntityUpdated[index] === null)\n return put(organizationsActions.startFetchingOrganizations());\n else\n return put(\n organizationsActions.startPartialFetchingOrganizations(parseInt(entityTypeId))\n );\n case entityTypes.ENTITY_USERS:\n if (isEntityUpdated[index] === null)\n return put(\n monitoringUsers.startFetchingMonitoringUsers({\n operatorId: entity.operatorId,\n organizationId: entity.organizationId\n })\n );\n else\n return put(\n monitoringUsers.startPartialFetchingMonitoringUsers(\n parseInt(entityTypeId),\n entity.operatorId,\n entity.organizationId\n )\n );\n case entityTypes.ENTITY_ORGANIZATION_CONTRACTS:\n if (isEntityUpdated[index] === null)\n return put(\n organizationContractsActions.startFetchingOrganizationContracts({\n operatorId: entity.operatorId,\n organizationId: entity.organizationId\n })\n );\n else\n return put(\n organizationContractsActions.startPartialFetchingOrganizationContracts(\n parseInt(entityTypeId),\n entity.operatorId,\n entity.organizationId,\n entity.allowNullOrganizationId\n )\n );\n case entityTypes.ENTITY_CONTRACT_TEMPLATES:\n // console.log('Se actualiza plantillas de contratos');\n if (isEntityUpdated[index] === null)\n return put(\n contractTemplatesActions.startFetchingContractTemplates({\n operatorId: entity.operatorId,\n organizationId: entity.organizationId,\n allowNullOrganizationId: entity.allowNullOrganizationId\n })\n );\n else\n return put(\n contractTemplatesActions.startPartialFetchingContractTemplates(\n parseInt(entityTypeId),\n entity.operatorId,\n entity.organizationId\n )\n );\n case entityTypes.ENTITY_CUSTOMERS:\n if (isEntityUpdated[index] === null)\n return put(\n customersActions.startFetchingCustomers({\n operatorId: entity.operatorId,\n organizationId: entity.organizationId\n })\n );\n else\n return put(\n customersActions.startPartialFetchingCustomers(\n parseInt(entityTypeId),\n entity.operatorId,\n entity.organizationId\n )\n );\n case entityTypes.ENTITY_CONTACTS:\n if (isEntityUpdated[index] === null)\n return put(contactsActions.startFetchingContacts());\n else\n return put(contactsActions.startPartialFetchingContacts(parseInt(entityTypeId)));\n case entityTypes.ENTITY_WORKPLANS:\n if (isEntityUpdated[index] === null)\n return put(\n workplansActions.startFetchingWorkplans({\n operatorId: entity.operatorId,\n organizationId: entity.organizationId\n })\n );\n else\n return put(\n workplansActions.startPartialFetchingWorkplans(\n parseInt(entityTypeId),\n entity.operatorId,\n entity.organizationId\n )\n );\n case entityTypes.ENTITY_GEOFENCES:\n if (isEntityUpdated[index] === null)\n return put(\n geofencesActions.startFetchingGeofences({\n operatorId: entity.operatorId,\n organizationId: entity.organizationId\n })\n );\n else\n return put(\n geofencesActions.startPartialFetchingGeofences(\n parseInt(entityTypeId),\n entity.operatorId,\n entity.organizationId\n )\n );\n case entityTypes.ENTITY_SCHEDULES:\n if (isEntityUpdated[index] === null)\n return put(schedulesActions.startFetchingSchedules());\n else\n return put(\n schedulesActions.startPartialFetchingSchedules(parseInt(entityTypeId))\n );\n case entityTypes.ENTITY_ROUTES:\n if (isEntityUpdated[index] === null)\n return put(\n routesActions.startFetchingRoutes({\n operatorId: entity.operatorId,\n organizationId: entity.organizationId\n })\n );\n else\n return put(\n routesActions.startPartialFetchingRoutes(\n parseInt(entityTypeId),\n entity.operatorId,\n entity.organizationId\n )\n );\n case entityTypes.ENTITY_SIM_CARDS:\n if (isEntityUpdated[index] === null)\n return put(\n simActions.startFetchingSims({\n operatorId: entity.operatorId,\n organizationId: entity.organizationId,\n allowNullOrganizationId: entity.allowNullOrganizationId\n })\n );\n else\n return put(\n simActions.startPartialFetchingSims(\n parseInt(entityTypeId),\n entity.operatorId,\n entity.organizationId,\n null,\n null,\n entity.allowNullOrganizationId\n )\n );\n case entityTypes.ENTITY_COUNTRIES:\n if (isEntityUpdated[index] === null)\n return put(countriesActions.startFetchingCountries());\n else\n return put(\n countriesActions.startPartialFetchingCountries(parseInt(entityTypeId))\n );\n case entityTypes.ENTITY_LOCATIONS:\n if (isEntityUpdated[index] === null)\n return put(\n locationActions.startFetchingLocations({\n operatorId: entity.operatorId,\n organizationId: entity.organizationId\n })\n );\n else\n return put(\n locationActions.startPartialFetchingLocations(\n parseInt(entityTypeId),\n entity.operatorId,\n entity.organizationId\n )\n );\n case entityTypes.ENTITY_OFFICES:\n if (isEntityUpdated[index] === null)\n return put(\n officeActions.startFetchingOffices({\n operatorId: entity.operatorId,\n organizationId: entity.organizationId\n })\n );\n else\n return put(\n officeActions.startPartialFetchingOffices(\n parseInt(entityTypeId),\n entity.operatorId,\n entity.organizationId\n )\n );\n case entityTypes.ENTITY_DRIVERS:\n if (isEntityUpdated[index] === null)\n return put(\n driverActions.startFetchingDrivers({\n operatorId: entity.operatorId,\n organizationId: entity.organizationId\n })\n );\n else\n return put(\n driverActions.startPartialFetchingDrivers(\n parseInt(entityTypeId),\n entity.operatorId,\n entity.organizationId\n )\n );\n case entityTypes.ENTITY_ASSETS:\n if (isEntityUpdated[index] === null)\n return put(\n assetsActions.startFetchingAssets({\n operatorId: entity.operatorId,\n organizationId: entity.organizationId\n })\n );\n else\n return put(\n assetsActions.startPartialFetchingAssets(\n parseInt(entityTypeId),\n entity.operatorId,\n entity.organizationId\n )\n );\n case entityTypes.ENTITY_SENSORS:\n if (isEntityUpdated[index] === null)\n return put(sensorsActions.startFetchingSensors());\n else return put(sensorsActions.startPartialFetchingSensors(parseInt(entityTypeId)));\n case entityTypes.ENTITY_JOBS_BACKLOG:\n if (isEntityUpdated[index] === null)\n return put(jobActions.startFetchingJobsBacklog());\n else return put(jobActions.startPartialFetchingJobsBacklog(parseInt(entityTypeId)));\n case entityTypes.ENTITY_GROUPS:\n if (isEntityUpdated[index] === null)\n return put(\n groupsActions.startFetchingGroups({\n operatorId: entity.operatorId,\n organizationId: entity.organizationId\n })\n );\n else\n return put(\n groupsActions.startPartialFetchingGroups(\n parseInt(entityTypeId),\n entity.operatorId,\n entity.organizationId\n )\n );\n case entityTypes.ENTITY_PROTOCOLS:\n if (isEntityUpdated[index] === null)\n return put(\n protocolsActions.startFetchingProtocols({\n operatorId: entity.operatorId,\n organizationId: entity.organizationId\n })\n );\n else\n return put(\n protocolsActions.startPartialFetchingProtocols(\n parseInt(entityTypeId),\n entity.operatorId,\n entity.organizationId\n )\n );\n default:\n break;\n }\n }\n })\n );\n yield put(actions.completeUpdatingEntities());\n } catch (err) {\n const error = {\n errorMessage: err?.toString(),\n errorNumber: -1\n };\n // alerts.showErrorAlertFailChanges({ error });\n yield put(actions.failUpdatingEntities(error));\n }\n }\n}\n\nexport function* watchUpdateEntities() {\n yield takeEvery(types.ENTITIES_UPDATE_STARTED, updateEntities);\n}\n","/* -------------------------------------------------------------------------- */\n/* Schema Geofences */\n/* -------------------------------------------------------------------------- */\n\nimport { schema } from 'normalizr';\n\nexport const geofence = new schema.Entity('geofences', {}, { idAttribute: 'geofenceId' });\nexport const geofences = new schema.Array(geofence);\n","import camelcaseKeys from 'camelcase-keys';\nimport { normalize } from 'normalizr';\nimport { store } from 'redux/storeConfig/store';\nimport * as entitySelectors from '../../Entities/reducers';\nimport * as authSelectors from '../../../../redux/reducers/auth';\nimport * as actions from '../actions';\nimport * as selectors from '../reducers';\nimport * as schemas from '../schemas';\nimport {\n deleteGeofenceService,\n getGeofencesListService,\n saveGeofenceService\n} from '../services/geofences';\nimport * as types from '../types';\nimport API_BASE_URL from '../../../../redux/sagas/settings/apibaseurl';\nimport { call, takeEvery, put, select } from 'redux-saga/effects';\nimport * as alerts from '../../../../redux/utils/alerts';\nimport { appIntl } from '../../../../utility/context/IntlGlobalProvider';\n\n/* -------------------------------------------------------------------------- */\n/* FETCH LIST */\n/* -------------------------------------------------------------------------- */\nfunction* fetchGeofencesList(action) {\n const { operatorId: filterOperatorId, organizationId: filterOrganizationId } = action.payload;\n const { operatorId, organizationId } = yield select(authSelectors.getAuthUserMembershipFilters, {\n filterOperatorId,\n filterOrganizationId\n });\n\n getGeofencesListService(\n { operatorId, organizationId },\n {\n successAction: (response) => {\n const resultData = response.data.map((result) => camelcaseKeys(result));\n const {\n entities: { geofences },\n result //order\n } = normalize(resultData, schemas.geofences); //normalize data to byId and order\n store.dispatch(\n actions.completeFetchingGeofences(geofences, result, operatorId, organizationId)\n );\n },\n errorAction: (error) => {\n store.dispatch(actions.failFetchingGeofences(error));\n }\n }\n );\n}\n\nexport function* watchFetchGeofencesList() {\n yield takeEvery(types.GEOFENCES_FETCH_STARTED, fetchGeofencesList);\n}\n/* -------------------------------------------------------------------------- */\n/* PARTIAL FETSH LIST */\n/* -------------------------------------------------------------------------- */\nfunction* partialFetchGeofencesList(action) {\n const {\n entityTypeId,\n operatorId: filterOperatorId,\n organizationId: filterOrganizationId\n } = action.payload;\n const date = yield select(entitySelectors.getUserUpdateByEntityDate, entityTypeId);\n const { operatorId, organizationId } = yield select(authSelectors.getAuthUserMembershipFilters, {\n filterOperatorId,\n filterOrganizationId\n });\n\n getGeofencesListService(\n { userFetchDate: date, operatorId, organizationId },\n {\n successAction: (response) => {\n const resultData = response.data.map((result) => camelcaseKeys(result));\n const {\n entities: { geofences },\n result //order\n } = normalize(resultData, schemas.geofences); //normalize data to byId and order\n store.dispatch(\n actions.completePartialFetchingGeofences(geofences, result, operatorId, organizationId)\n );\n },\n errorAction: (error) => {\n store.dispatch(actions.failPartialFetchingGeofences(error));\n }\n }\n );\n}\n\nexport function* watchPartialFetchGeofencesList() {\n yield takeEvery(types.GEOFENCES_PARTIAL_FETCH_STARTED, partialFetchGeofencesList);\n}\n\n/* -------------------------------------------------------------------------- */\n/* ADD */\n/* -------------------------------------------------------------------------- */\nfunction* addGeofence(action) {\n const geofence = action.payload;\n saveGeofenceService(\n { ...geofence, geofenceId: null },\n {\n successAction: (response) => {\n const addedGeofence = camelcaseKeys(response.data);\n store.dispatch(actions.completeAddingGeofence(geofence.geofenceId, addedGeofence));\n },\n errorAction: (error) => {\n store.dispatch(actions.failAddingGeofence(geofence.geofenceId, error));\n }\n }\n );\n}\n\nexport function* watchAddGeofencesStarted() {\n yield takeEvery(types.GEOFENCE_ADD_STARTED, addGeofence);\n}\n\n/* -------------------------------------------------------------------------- */\n/* EDIT */\n/* -------------------------------------------------------------------------- */\nfunction* editGeofence(action) {\n const geofence = action.payload;\n const oldGeofence = yield select((state) => selectors.getGeofence(state, geofence.geofenceId));\n saveGeofenceService(\n { ...geofence },\n {\n successAction: (response) => {\n const editedGeofence = camelcaseKeys(response.data);\n store.dispatch(actions.completeEditingGeofence(editedGeofence));\n },\n errorAction: (error) => {\n store.dispatch(actions.failEditingGeofence(oldGeofence, error));\n }\n }\n );\n}\n\nexport function* watchEditGeofencesStarted() {\n yield takeEvery(types.GEOFENCE_EDIT_STARTED, editGeofence);\n}\n\n/* -------------------------------------------------------------------------- */\n/* REMOVE */\n/* -------------------------------------------------------------------------- */\nfunction* removeGeofence(action) {\n const { geofenceId } = action.payload;\n const geofence = yield select((state) => selectors.getGeofence(state, geofenceId));\n deleteGeofenceService(\n { ...geofence },\n {\n successAction: (response) => {\n store.dispatch(actions.completeRemovingGeofence(geofenceId));\n },\n errorAction: (error) => {\n store.dispatch(actions.failRemovingGeofence(geofenceId, error));\n }\n }\n );\n}\n\nexport function* watchRemoveGeofenceStarted() {\n yield takeEvery(types.GEOFENCE_REMOVE_STARTED, removeGeofence);\n}\n\n/* -------------------------------------------------------------------------- */\n/* Assign Geofence Unit */\n/* -------------------------------------------------------------------------- */\nfunction* assignGeofenceUnit(action) {\n const assignation = action.payload;\n try {\n const isAuth = yield select(authSelectors.isAuthenticated);\n\n if (isAuth) {\n const token = yield select(authSelectors.getAuthToken);\n\n const response = yield call(fetch, `${API_BASE_URL}/geofence/assignUnit`, {\n method: 'POST',\n body: JSON.stringify(assignation),\n headers: {\n 'Content-Type': 'application/json',\n Authorization: `Bearer ${token}`\n }\n });\n const jsonResult = yield response.json();\n if (\n response.status <= 300 &&\n jsonResult.success &&\n jsonResult.data.length === assignation.length\n ) {\n yield put(actions.completeAssignUnitsGeofences(assignation));\n\n alerts.showSuccessMessage({\n success: appIntl().formatMessage({\n id: 'geofences.unitWasSuccessfullyAssigned'\n })\n });\n } else {\n const error = {\n errorMessage: appIntl().formatMessage({\n id: 'geofences.unitAssignmentIsNotPossibleRightNow'\n }),\n errorNumber: jsonResult.number\n };\n // alerts.showErrorAlertFailChanges({ error });\n yield put(actions.failAssignUnitsGeofences(error));\n }\n }\n } catch (err) {\n const error = {\n errorMessage: appIntl().formatMessage({\n id: 'geofences.unitAssignmentIsNotPossibleRightNow'\n }),\n errorNumber: -1\n };\n // alerts.showErrorAlertFailChanges({ error });\n yield put(actions.failAssignUnitsGeofences(error));\n }\n}\n\nexport function* watchAssignGeofenceUnit() {\n yield takeEvery(types.GEOFENCE_ASSIGN_UNIT_STARTED, assignGeofenceUnit);\n}\n\n/* -------------------------------------------------------------------------- */\n/* Remove Geofence Assignation */\n/* -------------------------------------------------------------------------- */\nfunction* removeGeofenceAssignation(action) {\n const unitGeofences = action.payload;\n try {\n const isAuth = yield select(authSelectors.isAuthenticated);\n\n if (isAuth) {\n const token = yield select(authSelectors.getAuthToken);\n\n const response = yield call(fetch, `${API_BASE_URL}/geofence/deleteUnitGeofences`, {\n method: 'POST',\n body: JSON.stringify(unitGeofences),\n headers: {\n 'Content-Type': 'application/json',\n Authorization: `Bearer ${token}`\n }\n });\n const jsonResult = yield response.json();\n if (\n response.status <= 300 &&\n jsonResult.success /*&&\n jsonResult.data.length === unitGeofences.length*/\n ) {\n yield put(actions.completeRemovingGeofenceAssignation(unitGeofences));\n\n alerts.showSuccessMessage({\n success: appIntl().formatMessage({\n id: 'geofences.assignationWasSuccessfullyRemoved'\n })\n });\n } else {\n const error = {\n errorMessage: appIntl().formatMessage({\n id: 'geofences.removingAssignationIsNotPossibleRightNow'\n }),\n errorNumber: jsonResult.number\n };\n // alerts.showErrorAlertFailChanges({ error });\n yield put(actions.failRemovingGeofenceAssignation(error));\n }\n }\n } catch (err) {\n const error = {\n errorMessage: appIntl().formatMessage({\n id: 'geofences.removingAssignationIsNotPossibleRightNow'\n }),\n errorNumber: -1\n };\n // alerts.showErrorAlertFailChanges({ error });\n yield put(actions.failRemovingGeofenceAssignation(error));\n }\n}\n\n/* -------------------------------------------------------------------------- */\n/* Remove All Assignments By Geofence */\n/* -------------------------------------------------------------------------- */\nfunction* removeAllAssigmentsByGeofences(action) {\n //const unitGeofences = action.payload;\n console.log('removeAll payload', action.payload);\n\n try {\n const isAuth = yield select(authSelectors.isAuthenticated);\n\n if (isAuth) {\n const token = yield select(authSelectors.getAuthToken);\n\n const response = yield call(fetch, `${API_BASE_URL}/geofence/deleteAllByGeofences`, {\n method: 'POST',\n body: JSON.stringify(action.payload),\n headers: {\n 'Content-Type': 'application/json',\n Authorization: `Bearer ${token}`\n }\n });\n const jsonResult = yield response.json();\n console.log('response', jsonResult);\n if (\n response.status <= 300 &&\n jsonResult.success /* &&\n jsonResult.data.length === unitGeofences.length */\n ) {\n yield put(actions.completeRemovingGeofenceAssignation(action.payload));\n\n alerts.showSuccessMessage({\n success: appIntl().formatMessage({\n id: 'geofences.assignationWasSuccessfullyRemoved'\n })\n });\n } else {\n const error = {\n errorMessage: appIntl().formatMessage({\n id: 'geofences.removingAssignationIsNotPossibleRightNow'\n }),\n errorNumber: jsonResult.number\n };\n // alerts.showErrorAlertFailChanges({ error });\n yield put(actions.failRemovingGeofenceAssignation(error));\n }\n }\n } catch (err) {\n const error = {\n errorMessage: appIntl().formatMessage({\n id: 'geofences.removingAssignationIsNotPossibleRightNow'\n }),\n errorNumber: -1\n };\n // alerts.showErrorAlertFailChanges({ error });\n yield put(actions.failRemovingGeofenceAssignation(error));\n }\n}\n\n/* -------------------------------------------------------------------------- */\n/* Remove All Assignments By Geofence */\n/* -------------------------------------------------------------------------- */\nfunction* removeAllAssigmentsByUnits(action) {\n try {\n const isAuth = yield select(authSelectors.isAuthenticated);\n\n if (isAuth) {\n const token = yield select(authSelectors.getAuthToken);\n\n const response = yield call(fetch, `${API_BASE_URL}/geofence/deleteAllByUnits`, {\n method: 'POST',\n body: JSON.stringify(action.payload),\n headers: {\n 'Content-Type': 'application/json',\n Authorization: `Bearer ${token}`\n }\n });\n const jsonResult = yield response.json();\n console.log('response', jsonResult);\n if (\n response.status <= 300 &&\n jsonResult.success /* &&\n jsonResult.data.length === unitGeofences.length */\n ) {\n yield put(actions.completeRemovingGeofenceAssignation(action.payload));\n\n alerts.showSuccessMessage({\n success: appIntl().formatMessage({\n id: 'geofences.assignationWasSuccessfullyRemoved'\n })\n });\n } else {\n const error = {\n errorMessage: appIntl().formatMessage({\n id: 'geofences.removingAssignationIsNotPossibleRightNow'\n }),\n errorNumber: jsonResult.number\n };\n // alerts.showErrorAlertFailChanges({ error });\n yield put(actions.failRemovingGeofenceAssignation(error));\n }\n }\n } catch (err) {\n const error = {\n errorMessage: appIntl().formatMessage({\n id: 'geofences.removingAssignationIsNotPossibleRightNow'\n }),\n errorNumber: -1\n };\n // alerts.showErrorAlertFailChanges({ error });\n yield put(actions.failRemovingGeofenceAssignation(error));\n }\n}\n\nexport function* watchRemoveGeofenceAssignation() {\n yield takeEvery(types.GEOFENCE_ASSIGNATION_REMOVE_STARTED, removeGeofenceAssignation);\n}\n\nexport function* watchRemoveAllAssignmentsByGeofences() {\n yield takeEvery(\n types.GEOFENCE_ASSIGNATION_REMOVE_BY_GEOFENCES_STARTED,\n removeAllAssigmentsByGeofences\n );\n}\n\nexport function* watchRemoveAllAssignmentsByUnits() {\n yield takeEvery(types.GEOFENCE_ASSIGNATION_REMOVE_BY_UNITS_STARTED, removeAllAssigmentsByUnits);\n}\n\n/* -------------------------------------------------------------------------- */\n/* Edit Geofence Assignation */\n/* -------------------------------------------------------------------------- */\nfunction* editGeofenceAssignation(action) {\n const unitGeofenceInfo = action.payload.unitGeofenceInfo;\n try {\n const isAuth = yield select(authSelectors.isAuthenticated);\n\n if (isAuth) {\n const token = yield select(authSelectors.getAuthToken);\n\n const response = yield call(fetch, `${API_BASE_URL}/geofence/editUnitGeofenceNotification`, {\n method: 'POST',\n body: JSON.stringify(unitGeofenceInfo),\n headers: {\n 'Content-Type': 'application/json',\n Authorization: `Bearer ${token}`\n }\n });\n const jsonResult = yield response.json();\n if (\n response.status <= 300 &&\n jsonResult.success /*&&\n jsonResult.data.length === unitGeofences.length*/\n ) {\n yield put(actions.completeEditingGeofenceAssignation(unitGeofenceInfo));\n\n alerts.showSuccessMessage({\n success: appIntl().formatMessage({\n id: 'geofences.assignationWasSuccessfullyEdited'\n })\n });\n } else {\n const error = {\n errorMessage: appIntl().formatMessage({\n id: 'geofences.editingAssignationIsNotPossibleRightNow'\n }),\n errorNumber: jsonResult.number\n };\n // alerts.showErrorAlertFailChanges({ error });\n yield put(actions.failEditingGeofenceAssignation(error));\n }\n }\n } catch (err) {\n const error = {\n errorMessage: appIntl().formatMessage({\n id: 'geofences.editingAssignationIsNotPossibleRightNow'\n }),\n errorNumber: -1\n };\n // alerts.showErrorAlertFailChanges({ error });\n yield put(actions.failEditingGeofenceAssignation(error));\n }\n}\n\nexport function* watchEditGeofenceAssignation() {\n yield takeEvery(types.GEOFENCE_ASSIGNATION_EDIT_STARTED, editGeofenceAssignation);\n}\n","/* -------------------------------------------------------------------------- */\n/* Schema Modules */\n/* -------------------------------------------------------------------------- */\n\nimport { schema } from \"normalizr\";\n//Cambio de nombre porque module causaba problemas al inicializar\nexport const moduleSchema = new schema.Entity(\n \"modules\",\n {},\n { idAttribute: \"deviceId\" }\n);\nexport const modules = new schema.Array(moduleSchema);\n","import { call, takeEvery, put, select } from 'redux-saga/effects';\n\nimport { normalize } from 'normalizr';\nimport { store } from 'redux/storeConfig/store';\nimport API_BASE_URL from '../../../../redux/sagas/settings/apibaseurl';\nimport * as actions from '../actions';\nimport * as types from '../types';\nimport * as selectors from '../reducers';\nimport * as schemas from '../schemas';\nimport * as authSelectors from '../../../../redux/reducers/auth';\nimport * as entitySelectors from '../../Entities/reducers';\nimport camelcaseKeys from 'camelcase-keys';\nimport * as alerts from '../../../../redux/utils/alerts';\nimport { getModulesListService } from '../services';\nimport { appIntl } from '../../../../utility/context/IntlGlobalProvider';\n\n/* -------------------------------------------------------------------------- */\n/* FETCH LIST */\n/* -------------------------------------------------------------------------- */\nfunction* fetchModulesList(action) {\n const {\n operatorId: filterOperatorId,\n organizationId: filterOrganizationId,\n allowNullOrganizationId\n } = action.payload;\n\n const { operatorId, organizationId } = yield select(authSelectors.getAuthUserMembershipFilters, {\n filterOperatorId,\n filterOrganizationId\n });\n\n getModulesListService(\n {\n operatorId,\n organizationId:\n allowNullOrganizationId && filterOrganizationId === null ? null : organizationId\n },\n {\n successAction: (response) => {\n const resultData = response.data.map((result) => camelcaseKeys(result));\n const {\n entities: { modules },\n result //order\n } = normalize(resultData, schemas.modules); //normalize data to byId and order\n store.dispatch(\n actions.completeFetchingModules(modules, result, operatorId, organizationId)\n );\n },\n errorAction: (error) => {\n store.dispatch(actions.failFetchingModules(error));\n }\n }\n );\n}\n\nexport function* watchFetchModulesList() {\n yield takeEvery(types.MODULES_FETCH_STARTED, fetchModulesList);\n}\n\n/* -------------------------------------------------------------------------- */\n/* PARTIAL FETCH LIST */\n/* -------------------------------------------------------------------------- */\nfunction* partialFetchModulesList(action) {\n const {\n entityTypeId,\n operatorId: filterOperatorId,\n organizationId: filterOrganizationId,\n allowNullOrganizationId\n } = action.payload;\n const date = yield select(entitySelectors.getUserUpdateByEntityDate, entityTypeId);\n const { operatorId, organizationId } = yield select(authSelectors.getAuthUserMembershipFilters, {\n filterOperatorId,\n filterOrganizationId\n });\n\n getModulesListService(\n {\n userFetchDate: date,\n operatorId,\n organizationId:\n allowNullOrganizationId && filterOrganizationId === null ? null : organizationId\n },\n {\n successAction: (response) => {\n const resultData = response.data.map((result) => camelcaseKeys(result));\n const {\n entities: { modules },\n result //order\n } = normalize(resultData, schemas.modules); //normalize data to byId and order\n store.dispatch(\n actions.completePartialFetchingModules(modules, result, operatorId, organizationId)\n );\n },\n errorAction: (error) => {\n store.dispatch(actions.failPartialFetchingModules(error));\n }\n }\n );\n}\n\nexport function* watchPartialFetchModulesList() {\n yield takeEvery(types.MODULES_PARTIAL_FETCH_STARTED, partialFetchModulesList);\n}\n/* -------------------------------------------------------------------------- */\n/* ADD */\n/* -------------------------------------------------------------------------- */\nfunction* addModule(action) {\n const module = action.payload;\n try {\n const isAuth = yield select(authSelectors.isAuthenticated);\n\n if (isAuth) {\n const token = yield select(authSelectors.getAuthToken);\n\n const response = yield call(fetch, `${API_BASE_URL}/module/save`, {\n method: 'POST',\n body: JSON.stringify({ ...module, deviceId: null }),\n headers: {\n 'Content-Type': 'application/json',\n Authorization: `Bearer ${token}`\n }\n });\n const jsonResult = yield response.json();\n if (response.status <= 300 && jsonResult.success) {\n alerts.showSuccessCreatedMessage({\n object: appIntl().formatMessage({\n id: 'modules.module'\n }),\n name: module.identifier\n });\n const addedModule = camelcaseKeys(jsonResult.data);\n yield put(actions.completeAddingModule(module.deviceId, addedModule));\n } else {\n const error = {\n errorMessage: jsonResult.message,\n errorNumber: jsonResult.number\n };\n // alerts.showErrorAlertFailChanges({ error });\n yield put(actions.failAddingModule(module.deviceId, error));\n }\n }\n } catch (err) {\n const error = {\n errorMessage: err.toString(),\n errorNumber: -1\n };\n // alerts.showErrorAlertFailChanges({ error });\n yield put(actions.failAddingModule(module.deviceId, error));\n }\n}\n\nexport function* watchAddModulesStarted() {\n yield takeEvery(types.MODULE_ADD_STARTED, addModule);\n}\n\n/* -------------------------------------------------------------------------- */\n/* EDIT */\n/* -------------------------------------------------------------------------- */\nfunction* editModule(action) {\n const module = action.payload;\n try {\n const isAuth = yield select(authSelectors.isAuthenticated);\n\n if (isAuth) {\n const token = yield select(authSelectors.getAuthToken);\n\n const response = yield call(fetch, `${API_BASE_URL}/module/save`, {\n method: 'POST',\n body: JSON.stringify({\n ...module\n }),\n headers: {\n 'Content-Type': 'application/json',\n Authorization: `Bearer ${token}`\n }\n });\n const jsonResult = yield response.json();\n if (response.status <= 300 && jsonResult.success) {\n const editedModule = camelcaseKeys(jsonResult.data);\n yield put(actions.completeEditingModule(editedModule));\n alerts.showSuccessEditedMessage({\n object: appIntl().formatMessage({\n id: 'modules.module'\n }),\n name: editedModule.identifier\n });\n } else {\n const error = {\n errorMessage: jsonResult.message,\n errorNumber: jsonResult.number\n };\n const { oldModule } = yield select((state) => selectors.getModule(state, module.deviceId));\n yield put(actions.failEditingModule(oldModule, error));\n // alerts.showErrorAlertFailChanges({ error });\n }\n }\n } catch (err) {\n const error = {\n errorMessage: err.toString(),\n errorNumber: -1\n };\n\n const { oldModule } = yield select((state) => selectors.getModule(state, module.deviceId));\n yield put(actions.failEditingModule(oldModule, error));\n // alerts.showErrorAlertFailChanges({ error });\n }\n}\n\nexport function* watchEditModulesStarted() {\n yield takeEvery(types.MODULE_EDIT_STARTED, editModule);\n}\n\n/* -------------------------------------------------------------------------- */\n/* REMOVE */\n/* -------------------------------------------------------------------------- */\nfunction* removeModule(action) {\n const { moduleId } = action.payload;\n try {\n const isAuth = yield select(authSelectors.isAuthenticated);\n if (isAuth) {\n const token = yield select(authSelectors.getAuthToken);\n const deletedModule = yield select((state) => selectors.getModule(state, moduleId));\n const response = yield call(fetch, `${API_BASE_URL}/module/delete`, {\n method: 'POST',\n body: JSON.stringify({ moduleId }),\n headers: {\n 'Content-Type': 'application/json',\n Authorization: `Bearer ${token}`\n }\n });\n const jsonResult = yield response.json();\n if (response.status <= 300 && jsonResult.success) {\n yield put(actions.completeRemovingModule(moduleId));\n alerts.showSuccessDeletedMessage({\n object: appIntl().formatMessage({\n id: 'modules.module'\n }),\n name: deletedModule.identifier\n });\n } else {\n const error = {\n errorMessage: jsonResult.message,\n errorNumber: jsonResult.number\n };\n // alerts.showErrorAlertFailChanges({ error });\n yield put(actions.failRemovingModule(moduleId, error));\n }\n }\n } catch (err) {\n const error = {\n errorMessage: err.toString(),\n errorNumber: -1\n };\n // alerts.showErrorAlertFailChanges({ error });\n yield put(actions.failRemovingModule(moduleId, error));\n }\n}\n\nexport function* watchRemoveModuleStarted() {\n yield takeEvery(types.MODULE_REMOVE_STARTED, removeModule);\n}\n\n/* -------------------------------------------------------------------------- */\n/* FETCH MODULE */\n/* -------------------------------------------------------------------------- */\nfunction* fetchModule(action) {\n const moduleId = action.payload;\n try {\n const isAuth = yield select(authSelectors.isAuthenticated);\n\n if (isAuth) {\n const token = yield select(authSelectors.getAuthToken);\n\n const response = yield call(fetch, `${API_BASE_URL}/module/${moduleId}`, {\n method: 'GET',\n headers: {\n 'Content-Type': 'application/json',\n Authorization: `Bearer ${token}`\n }\n });\n const jsonResult = yield response.json();\n if (response.status <= 300 && jsonResult.success) {\n const module = camelcaseKeys(jsonResult.data);\n yield put(actions.completeFetchingModule(module));\n } else {\n const error = {\n errorMessage: jsonResult.message,\n errorNumber: jsonResult.number\n };\n\n yield put(actions.failFetchingModule(error));\n }\n }\n } catch (err) {\n const error = {\n errorMessage: err.toString(),\n errorNumber: -1\n };\n\n yield put(actions.failFetchingModule(error));\n }\n}\n\nexport function* watchModuleFetchStarted() {\n yield takeEvery(types.MODULE_FETCH_STARTED, fetchModule);\n}\n","/* -------------------------------------------------------------------------- */\n/* Schema Operators */\n/* -------------------------------------------------------------------------- */\n\nimport { schema } from \"normalizr\";\n\nexport const operator = new schema.Entity(\n \"operators\",\n {},\n { idAttribute: \"operatorId\" }\n);\nexport const operators = new schema.Array(operator);\n","/* -------------------------------------------------------------------------- */\n/* Schema Contacts */\n/* -------------------------------------------------------------------------- */\n\nimport { schema } from 'normalizr';\n\nexport const contact = new schema.Entity('contacts', {}, { idAttribute: 'contactId' });\nexport const contacts = new schema.Array(contact);\n","import { call, takeEvery, put, select } from 'redux-saga/effects';\n\nimport { normalize } from 'normalizr';\nimport API_BASE_URL from '../../../../redux/sagas/settings/apibaseurl';\nimport * as actions from '../actions';\nimport * as contactActions from 'views/screens/Contacts/actions';\nimport * as types from '../types';\nimport * as selectors from '../reducers';\nimport * as schemas from '../schemas';\nimport * as contactSchemas from 'views/screens/Contacts/schemas';\nimport * as authSelectors from '../../../../redux/reducers/auth';\nimport * as entitySelectors from '../../Entities/reducers';\nimport camelcaseKeys from 'camelcase-keys';\nimport * as alerts from '../../../../redux/utils/alerts';\nimport { appIntl } from '../../../../utility/context/IntlGlobalProvider';\nimport * as operatorSelectors from '../reducers';\n\n/* -------------------------------------------------------------------------- */\n/* FETCH LIST */\n/* -------------------------------------------------------------------------- */\nfunction* fetchOperatorsList(action) {\n try {\n const isAuth = yield select(authSelectors.isAuthenticated);\n if (isAuth) {\n const token = yield select(authSelectors.getAuthToken);\n const response = yield call(fetch, `${API_BASE_URL}/operator/get`, {\n method: 'POST',\n body: JSON.stringify({}),\n headers: {\n 'Content-Type': 'application/json',\n Authorization: `Bearer ${token}`\n }\n });\n const jsonResult = yield response.json();\n if (response.status <= 300 && jsonResult.success) {\n const resultData = jsonResult.data.map((result) => camelcaseKeys(result));\n const {\n entities: { operators },\n result //order\n } = normalize(resultData, schemas.operators); //normalize data to byId and order\n yield put(actions.completeFetchingOperators(operators, result));\n } else {\n const error = {\n errorMessage: jsonResult.message,\n errorNumber: jsonResult.number\n };\n // alerts.showErrorAlertFailChanges({ error });\n yield put(actions.failFetchingOperators(error));\n }\n }\n } catch (err) {\n const error = {\n errorMessage: err.toString(),\n errorNumber: -1\n };\n // alerts.showErrorAlertFailChanges({ error });\n yield put(actions.failFetchingOperators(error));\n }\n}\n\nexport function* watchFetchOperatorsList() {\n yield takeEvery(types.OPERATORS_FETCH_STARTED, fetchOperatorsList);\n}\n/* -------------------------------------------------------------------------- */\n/* PARTIAL FETCH LIST */\n/* -------------------------------------------------------------------------- */\nfunction* partialFetchOperatorsList(action) {\n try {\n const entityTypeId = action.payload;\n const date = yield select(entitySelectors.getUserUpdateByEntityDate, entityTypeId);\n const isAuth = yield select(authSelectors.isAuthenticated);\n if (isAuth) {\n const token = yield select(authSelectors.getAuthToken);\n const response = yield call(fetch, `${API_BASE_URL}/operator/get`, {\n method: 'POST',\n body: JSON.stringify({ userFetchDate: date }),\n headers: {\n 'Content-Type': 'application/json',\n Authorization: `Bearer ${token}`\n }\n });\n const jsonResult = yield response.json();\n if (response.status <= 300 && jsonResult.success) {\n const resultData = jsonResult.data.map((result) => camelcaseKeys(result));\n const {\n entities: { operators },\n result //order\n } = normalize(resultData, schemas.operators); //normalize data to byId and order\n yield put(actions.completePartialFetchingOperators(operators, result));\n } else {\n const error = {\n errorMessage: jsonResult.message,\n errorNumber: jsonResult.number\n };\n // alerts.showErrorAlertFailChanges({ error });\n yield put(actions.failPartialFetchingOperators(error));\n }\n }\n } catch (err) {\n const error = {\n errorMessage: err.toString(),\n errorNumber: -1\n };\n // alerts.showErrorAlertFailChanges({ error });\n yield put(actions.failPartialFetchingOperators(error));\n }\n}\n\nexport function* watchPartialFetchOperatorsList() {\n yield takeEvery(types.OPERATORS_PARTIAL_FETCH_STARTED, partialFetchOperatorsList);\n}\n/* -------------------------------------------------------------------------- */\n/* ADD */\n/* -------------------------------------------------------------------------- */\nfunction* addOperator(action) {\n const operator = action.payload;\n try {\n const isAuth = yield select(authSelectors.isAuthenticated);\n\n if (isAuth) {\n const token = yield select(authSelectors.getAuthToken);\n\n const response = yield call(fetch, `${API_BASE_URL}/operator/save`, {\n method: 'POST',\n body: JSON.stringify({ ...operator, operatorId: null }),\n headers: {\n 'Content-Type': 'application/json',\n Authorization: `Bearer ${token}`\n }\n });\n const jsonResult = yield response.json();\n if (response.status <= 300 && jsonResult.success) {\n const addedOperator = camelcaseKeys(jsonResult.data.operatorData);\n\n // const operatorContacts = camelcaseKeys(jsonResult.data.contacts);\n // const {\n // entities: { contacts },\n // result //order\n // } = normalize(operatorContacts, contactSchemas.contacts); //normalize data to byId and order\n // yield put(contactActions.completePartialFetchingContacts(contacts, result));\n\n yield put(actions.completeAddingOperator(operator.operatorId, addedOperator));\n\n alerts.showSuccessCreatedMessage({\n object: appIntl().formatMessage({\n id: 'operators.operator'\n }),\n name: operator.operatorName\n });\n } else {\n const error = {\n errorMessage: jsonResult.message,\n errorNumber: jsonResult.number\n };\n // alerts.showErrorAlertFailChanges({ error });\n yield put(actions.failAddingOperator(operator.operatorId, error));\n }\n }\n } catch (err) {\n const error = {\n errorMessage: err.toString(),\n errorNumber: -1\n };\n // alerts.showErrorAlertFailChanges({ error });\n yield put(actions.failAddingOperator(operator.operatorId, error));\n }\n}\n\nexport function* watchAddOperatorsStarted() {\n yield takeEvery(types.OPERATOR_ADD_STARTED, addOperator);\n}\n\n/* -------------------------------------------------------------------------- */\n/* EDIT */\n/* -------------------------------------------------------------------------- */\nfunction* editOperator(action) {\n const operator = action.payload;\n try {\n const isAuth = yield select(authSelectors.isAuthenticated);\n\n if (isAuth) {\n const token = yield select(authSelectors.getAuthToken);\n\n const response = yield call(fetch, `${API_BASE_URL}/operator/save`, {\n method: 'POST',\n body: JSON.stringify(operator),\n headers: {\n 'Content-Type': 'application/json',\n Authorization: `Bearer ${token}`\n }\n });\n const jsonResult = yield response.json();\n if (response.status <= 300 && jsonResult.success) {\n const editedOperator = camelcaseKeys(jsonResult.data.operatorData);\n\n const operatorContacts = camelcaseKeys(jsonResult.data.contacts);\n const {\n entities: { contacts },\n result //order\n } = normalize(operatorContacts, contactSchemas.contacts); //normalize data to byId and order\n yield put(contactActions.completePartialFetchingContacts(contacts, result));\n\n yield put(actions.completeEditingOperator(editedOperator));\n alerts.showSuccessEditedMessage({\n object: appIntl().formatMessage({\n id: 'operators.operator'\n }),\n name: editedOperator.operatorName\n });\n } else {\n const error = {\n errorMessage: jsonResult.message,\n errorNumber: jsonResult.number\n };\n const { oldOperator } = yield select((state) =>\n selectors.getOperator(state.operators, operator.operatorId)\n );\n yield put(actions.failEditingOperator(oldOperator, error));\n // alerts.showErrorAlertFailChanges({ error });\n }\n }\n } catch (err) {\n const error = {\n errorMessage: err.toString(),\n errorNumber: -1\n };\n\n const { oldOperator } = yield select((state) =>\n selectors.getOperator(state.operators, operator.operatorId)\n );\n yield put(actions.failEditingOperator(oldOperator, error));\n // alerts.showErrorAlertFailChanges({ error });\n }\n}\n\nexport function* watchEditOperatorsStarted() {\n yield takeEvery(types.OPERATOR_EDIT_STARTED, editOperator);\n}\n\n/* -------------------------------------------------------------------------- */\n/* REMOVE */\n/* -------------------------------------------------------------------------- */\nfunction* removeOperator(action) {\n const { operatorId } = action.payload;\n try {\n const isAuth = yield select(authSelectors.isAuthenticated);\n const deletedOperator = yield select((state) =>\n operatorSelectors.getOperator(state, operatorId)\n );\n if (isAuth) {\n const token = yield select(authSelectors.getAuthToken);\n\n const response = yield call(fetch, `${API_BASE_URL}/operator/delete`, {\n method: 'POST',\n body: JSON.stringify({ operatorId }),\n headers: {\n 'Content-Type': 'application/json',\n Authorization: `Bearer ${token}`\n }\n });\n const jsonResult = yield response.json();\n if (response.status <= 300 && jsonResult.success) {\n yield put(actions.completeRemovingOperator(operatorId));\n alerts.showSuccessDeletedMessage({\n object: appIntl().formatMessage({\n id: 'operators.operator'\n }),\n name: deletedOperator.operatorName\n });\n } else {\n const error = {\n errorMessage: jsonResult.message,\n errorNumber: jsonResult.number\n };\n // alerts.showErrorAlertFailChanges({ error });\n yield put(actions.failRemovingOperator(operatorId, error));\n }\n }\n } catch (err) {\n const error = {\n errorMessage: err.toString(),\n errorNumber: -1\n };\n // alerts.showErrorAlertFailChanges({ error });\n yield put(actions.failRemovingOperator(operatorId, error));\n }\n}\n\nexport function* watchRemoveOperatorStarted() {\n yield takeEvery(types.OPERATOR_REMOVE_STARTED, removeOperator);\n}\n\n/* -------------------------------------------------------------------------- */\n/* EDIT STANDARD PRICES */\n/* -------------------------------------------------------------------------- */\nfunction* editOperatorStandardPrices(action) {\n const standardPrices = action.payload;\n try {\n const isAuth = yield select(authSelectors.isAuthenticated);\n\n if (isAuth) {\n const token = yield select(authSelectors.getAuthToken);\n\n const response = yield call(fetch, `${API_BASE_URL}/operator/saveStandardPrices`, {\n method: 'POST',\n body: JSON.stringify(standardPrices),\n headers: {\n 'Content-Type': 'application/json',\n Authorization: `Bearer ${token}`\n }\n });\n const jsonResult = yield response.json();\n if (response.status <= 300 && jsonResult.success) {\n const editedOperatorStandardPrices = camelcaseKeys(jsonResult.data);\n\n // console.log('editedOperator', editedOperator);\n yield put(actions.completeEditingOperatorStandardPrices(editedOperatorStandardPrices));\n alerts.showSuccessMessage({\n success: appIntl().formatMessage({ id: 'operators.editStandardPricesSuccess' })\n });\n } else {\n const error = {\n errorMessage: jsonResult.message,\n errorNumber: jsonResult.number\n };\n yield put(actions.failEditingOperator(standardPrices, error));\n alerts.showErrorAlertFailChanges({\n error: {\n errorMessage: appIntl().formatMessage({ id: 'operators.editStandardPricesFailure' })\n }\n });\n }\n }\n } catch (err) {\n const error = {\n errorMessage: err.toString(),\n errorNumber: -1\n };\n\n yield put(actions.failEditingOperator(standardPrices, error));\n alerts.showErrorAlertFailChanges({\n error: {\n errorMessage: appIntl().formatMessage({ id: 'operators.editStandardPricesFailure' })\n }\n });\n }\n}\n\nexport function* watchEditOperatorStandardPricesStarted() {\n yield takeEvery(types.OPERATOR_EDIT_STANDARD_PRICES_STARTED, editOperatorStandardPrices);\n}\n","/* -------------------------------------------------------------------------- */\n/* Schema Organizations */\n/* -------------------------------------------------------------------------- */\n\nimport { schema } from \"normalizr\";\n\nexport const organization = new schema.Entity(\n \"organizations\",\n {},\n { idAttribute: \"organizationId\" }\n);\nexport const organizations = new schema.Array(organization);\n","import { call, takeEvery, put, select } from 'redux-saga/effects';\n\nimport { normalize } from 'normalizr';\nimport API_BASE_URL from '../../../../redux/sagas/settings/apibaseurl';\nimport * as actions from '../actions';\nimport * as quotationActions from '../../Quotations/actions';\nimport * as contactActions from 'views/screens/Contacts/actions';\nimport * as types from '../types';\nimport * as selectors from 'views/screens/Organizations/reducers';\nimport * as schemas from '../schemas';\nimport * as contactSchemas from 'views/screens/Contacts/schemas';\nimport * as organizationUsers from '../../../../redux/schemas/organizations-users';\nimport * as authSelectors from '../../../../redux/reducers/auth';\nimport * as entitySelectors from '../../Entities/reducers';\nimport camelcaseKeys from 'camelcase-keys';\nimport * as alerts from '../../../../redux/utils/alerts';\nimport { appIntl } from '../../../../utility/context/IntlGlobalProvider';\nimport forEach from 'lodash/forEach';\nimport groupBy from 'lodash/groupBy';\nimport chain from 'lodash/chain';\nimport { store } from 'redux/storeConfig/store';\nimport {\n deleteOrganizationService,\n getOrganizationsListService,\n saveOrganizationService\n} from '../services';\n\n/* -------------------------------------------------------------------------- */\n/* FETCH LIST */\n/* -------------------------------------------------------------------------- */\nfunction* fetchOrganizationsList(action) {\n getOrganizationsListService(\n {},\n {\n successAction: (response) => {\n const resultData = response.data.organizationList.map((result) => camelcaseKeys(result));\n var usersData = response.data.usersList.map((result) => camelcaseKeys(result));\n const {\n entities: { organizations },\n result //order\n } = normalize(resultData, schemas.organizations); //normalize data to byId and order\n const usersByOrganization = groupBy(usersData, 'organizationId');\n forEach(organizations, (organization) => {\n if (organization.organizationId in usersByOrganization) {\n if (organizations) {\n organizations[organization.organizationId] = {\n ...organizations[organization.organizationId],\n sacUsers: usersByOrganization[organization.organizationId]\n };\n }\n } else {\n if (organizations) {\n organizations[organization.organizationId] = {\n ...organizations[organization.organizationId],\n sacUsers: []\n };\n }\n }\n });\n store.dispatch(actions.completeFetchingOrganizations(organizations, result));\n },\n errorAction: (error) => {\n store.dispatch(actions.failFetchingOrganizations(error));\n }\n }\n );\n}\n\nexport function* watchFetchOrganizationsList() {\n yield takeEvery(types.ORGANIZATIONS_FETCH_STARTED, fetchOrganizationsList);\n}\n/* -------------------------------------------------------------------------- */\n/* PARTIAL FETCH LIST */\n/* -------------------------------------------------------------------------- */\nfunction* partialFetchOrganizationsList(action) {\n const entityTypeId = action.payload;\n const date = yield select(entitySelectors.getUserUpdateByEntityDate, entityTypeId);\n getOrganizationsListService(\n { userFetchDate: date },\n {\n successAction: (response) => {\n const resultData = response.data.organizationList.map((result) => camelcaseKeys(result));\n var usersData = response.data.usersList.map((result) => camelcaseKeys(result));\n const {\n entities: { organizations },\n result //order\n } = normalize(resultData, schemas.organizations); //normalize data to byId and order\n const usersByOrganization = groupBy(usersData, 'organizationId');\n forEach(organizations, (organization) => {\n if (organization.organizationId in usersByOrganization) {\n if (organizations) {\n organizations[organization.organizationId] = {\n ...organizations[organization.organizationId],\n sacUsers: usersByOrganization[organization.organizationId]\n };\n }\n } else {\n if (organizations) {\n organizations[organization.organizationId] = {\n ...organizations[organization.organizationId],\n sacUsers: []\n };\n }\n }\n });\n store.dispatch(actions.completeFetchingOrganizations(organizations, result));\n },\n errorAction: (error) => {\n store.dispatch(actions.failPartialFetchingOrganizations(error));\n }\n }\n );\n}\n\nexport function* watchPartialFetchOrganizationsList() {\n yield takeEvery(types.ORGANIZATIONS_PARTIAL_FETCH_STARTED, partialFetchOrganizationsList);\n}\n\n/* -------------------------------------------------------------------------- */\n/* ADD */\n/* -------------------------------------------------------------------------- */\nfunction* addOrganization(action) {\n const { organization, isSelected } = action.payload;\n try {\n const isAuth = yield select(authSelectors.isAuthenticated);\n if (isAuth) {\n const token = yield select(authSelectors.getAuthToken);\n\n const response = yield call(fetch, `${API_BASE_URL}/organization/save`, {\n method: 'POST',\n body: JSON.stringify({ ...organization, organizationId: null }),\n headers: {\n 'Content-Type': 'application/json',\n Authorization: `Bearer ${token}`\n }\n });\n const jsonResult = yield response.json();\n if (response.status <= 300 && jsonResult.success) {\n const addedOrganization = camelcaseKeys(jsonResult.data.organizationData);\n\n // const organizationContacts = camelcaseKeys(jsonResult.data.contacts);\n // const {\n // entities: { contacts },\n // result //order\n // } = normalize(organizationContacts, contactSchemas.contacts); //normalize data to byId and order\n // yield put(contactActions.completePartialFetchingContacts(contacts, result));\n\n yield put(\n actions.completeAddingOrganization(organization.organizationId, addedOrganization)\n );\n\n if (organization.quotationId)\n yield put(\n quotationActions.changeQuotationOrganization(\n {\n quotationId: organization.quotationId,\n baseQuotationId: organization.baseQuotationId\n },\n {\n organizationId: addedOrganization?.organizationId,\n organizationName: addedOrganization?.organizationName,\n organizationTaxNumber: addedOrganization?.taxNumber,\n organizationType: addedOrganization?.organizationType\n }\n )\n );\n\n alerts.showSuccessCreatedMessage({\n object: appIntl().formatMessage({\n id: 'organizations.organization'\n }),\n name: organization.organizationName\n });\n } else {\n const error = {\n errorMessage: jsonResult.message,\n errorNumber: jsonResult.number\n };\n // alerts.showErrorAlertFailChanges({ error });\n yield put(actions.failAddingOrganization(organization.organizationId, error));\n }\n }\n } catch (err) {\n const error = {\n errorMessage: err.toString(),\n errorNumber: -1\n };\n // alerts.showErrorAlertFailChanges({ error });\n yield put(actions.failAddingOrganization(organization.organizationId, error));\n }\n}\n\nexport function* watchAddOrganizationsStarted() {\n yield takeEvery(types.ORGANIZATION_ADD_STARTED, addOrganization);\n}\n\n/* -------------------------------------------------------------------------- */\n/* EDIT */\n/* -------------------------------------------------------------------------- */\nfunction* editOrganization(action) {\n const organization = action.payload;\n const { oldOrganization } = yield select((state) =>\n selectors.getOrganization(state, organization.organizationId)\n );\n try {\n const isAuth = yield select(authSelectors.isAuthenticated);\n if (isAuth) {\n const token = yield select(authSelectors.getAuthToken);\n\n const response = yield call(fetch, `${API_BASE_URL}/organization/save`, {\n method: 'POST',\n body: JSON.stringify(organization),\n headers: {\n 'Content-Type': 'application/json',\n Authorization: `Bearer ${token}`\n }\n });\n const jsonResult = yield response.json();\n if (response.status <= 300 && jsonResult.success) {\n const editedOrganization = camelcaseKeys(jsonResult.data.organizationData);\n\n // const organizationContacts = camelcaseKeys(jsonResult.data.contacts);\n // const {\n // entities: { contacts },\n // result //order\n // } = normalize(organizationContacts, contactSchemas.contacts); //normalize data to byId and order\n // yield put(contactActions.completePartialFetchingContacts(contacts, result));\n\n yield put(actions.completeEditingOrganization(editedOrganization));\n alerts.showSuccessEditedMessage({\n object: appIntl().formatMessage({\n id: 'organizations.organization'\n }),\n name: editedOrganization.organizationName\n });\n } else {\n const error = {\n errorMessage: jsonResult.message,\n errorNumber: jsonResult.number\n };\n yield put(actions.failEditingOrganization(oldOrganization, error));\n // alerts.showErrorAlertFailChanges({ error });\n }\n }\n } catch (err) {\n const error = {\n errorMessage: err.toString(),\n errorNumber: -1\n };\n\n yield put(actions.failEditingOrganization(oldOrganization, error));\n // alerts.showErrorAlertFailChanges({ error });\n }\n}\n\nexport function* watchEditOrganizationsStarted() {\n yield takeEvery(types.ORGANIZATION_EDIT_STARTED, editOrganization);\n}\n\n/* -------------------------------------------------------------------------- */\n/* SAVE CONSOLIDABLE EVENTS */\n/* -------------------------------------------------------------------------- */\nfunction* saveConsolidableEvents(action) {\n const { organization, consolidableEvents } = action.payload;\n\n try {\n const isAuth = yield select(authSelectors.isAuthenticated);\n\n if (isAuth) {\n const token = yield select(authSelectors.getAuthToken);\n const response = yield call(fetch, `${API_BASE_URL}/organization/SaveConsolidableEvents`, {\n method: 'POST',\n body: JSON.stringify({ organizationId: organization.organizationId, consolidableEvents }),\n headers: {\n 'Content-Type': 'application/json',\n Authorization: `Bearer ${token}`\n }\n });\n const jsonResult = yield response.json();\n if (response.status <= 300 && jsonResult.success) {\n yield put(\n actions.completeSavingConsolidableEvents(organization.organizationId, consolidableEvents)\n );\n alerts.showSuccessMessage({\n success: appIntl().formatMessage({\n id: 'organizations.consolidableEventsSavingSuccess'\n })\n });\n } else {\n const error = {\n errorMessage: jsonResult.message,\n errorNumber: jsonResult.number\n };\n const { oldOrganization } = yield select((state) =>\n selectors.getOrganization(state.organizations, organization.organizationId)\n );\n yield put(actions.failSavingConsolidableEvents(oldOrganization, error));\n alerts.showErrorAlertFailChanges({ error });\n }\n }\n } catch (err) {\n const error = {\n errorMessage: err.toString(),\n errorNumber: -1\n };\n\n const { oldOrganization } = yield select((state) =>\n selectors.getOrganization(state.organizations, organization.organizationId)\n );\n yield put(actions.failSavingConsolidableEvents(oldOrganization, error));\n alerts.showErrorAlertFailChanges({ error });\n }\n}\n\nexport function* watchSaveConsolidableEventsStarted() {\n yield takeEvery(types.ORGANIZATION_SAVE_CONSOLIDABLE_EVENTS_STARTED, saveConsolidableEvents);\n}\n\n/* -------------------------------------------------------------------------- */\n/* REMOVE */\n/* -------------------------------------------------------------------------- */\nfunction* removeOrganization(action) {\n const { organizationId } = action.payload;\n const organization = yield select((state) => selectors.getOrganization(state, organizationId));\n deleteOrganizationService(\n { ...organization },\n {\n successAction: (response) => {\n store.dispatch(actions.completeRemovingOrganization(organizationId));\n },\n errorAction: (error) => {\n store.dispatch(actions.failRemovingOrganization(organizationId, error));\n }\n }\n );\n}\n\nexport function* watchRemoveOrganizationStarted() {\n yield takeEvery(types.ORGANIZATION_REMOVE_STARTED, removeOrganization);\n}\n\n/* -------------------------------------------------------------------------- */\n/* CODE CHECK */\n/* -------------------------------------------------------------------------- */\nfunction* checkRegistrationCode(action) {\n const { organizationId, code } = action.payload;\n try {\n const isAuth = yield select(authSelectors.isAuthenticated);\n if (isAuth) {\n const token = yield select(authSelectors.getAuthToken);\n\n const response = yield call(fetch, `${API_BASE_URL}/organization/validateRegistrationCode`, {\n method: 'POST',\n body: JSON.stringify({ code, organizationId }),\n headers: {\n 'Content-Type': 'application/json',\n Authorization: `Bearer ${token}`\n }\n });\n const jsonResult = yield response.json();\n if (response.status <= 300 && jsonResult.success) {\n const validCode = jsonResult.data.RegistrationCodeStatus === 1;\n yield put(actions.completeCheckingCode(validCode));\n } else {\n const error = {\n errorMessage: jsonResult.message,\n errorNumber: jsonResult.number\n };\n }\n }\n } catch (err) {\n const error = {\n errorMessage: err.toString(),\n errorNumber: -1\n };\n }\n}\n\nexport function* watchRegistrationCodeStarted() {\n yield takeEvery(types.ORGANIZATION_CODE_CHECK_STARTED, checkRegistrationCode);\n}\n\n/* -------------------------------------------------------------------------- */\n/* CODE ASSIGN */\n/* -------------------------------------------------------------------------- */\nfunction* assigCode(action) {\n const {\n operatorId,\n organizationId,\n organizationName,\n registrationCode,\n registrationMails,\n registrationDivisionId,\n registrationSubdivisionId,\n allowedApplications\n } = action.payload;\n try {\n const isAuth = yield select(authSelectors.isAuthenticated);\n if (isAuth) {\n const token = yield select(authSelectors.getAuthToken);\n\n const response = yield call(fetch, `${API_BASE_URL}/organization/assignCode`, {\n method: 'POST',\n body: JSON.stringify({\n operatorId,\n organizationId,\n organizationName,\n registrationCode,\n registrationMails,\n registrationDivisionId,\n registrationSubdivisionId,\n allowedApplications\n }),\n headers: {\n 'Content-Type': 'application/json',\n Authorization: `Bearer ${token}`\n }\n });\n const jsonResult = yield response.json();\n if (response.status <= 300 && jsonResult.success) {\n yield put(\n actions.completeAssigningCode(\n organizationId,\n registrationCode,\n allowedApplications,\n registrationDivisionId,\n registrationSubdivisionId\n )\n );\n alerts.showSuccessEditedMessage({\n object: appIntl().formatMessage({\n id: 'organizations.organization'\n }),\n name: organizationName\n });\n } else {\n const error = {\n errorMessage: jsonResult.message,\n errorNumber: jsonResult.number\n };\n }\n }\n } catch (err) {\n const error = {\n errorMessage: err.toString(),\n errorNumber: -1\n };\n // alerts.showErrorAlertFailChanges({ error });\n yield put(actions.failAssigningCode(error));\n }\n}\n\nexport function* watchCodeAssignStarted() {\n yield takeEvery(types.ORGANIZATION_CODE_ASSIGN_STARTED, assigCode);\n}\n\n/* -------------------------------------------------------------------------- */\n/* ADD DOWNTIME REASON */\n/* -------------------------------------------------------------------------- */\nfunction* addOrganizationDowntimeReason(action) {\n const downtimeReason = action.payload;\n try {\n const isAuth = yield select(authSelectors.isAuthenticated);\n\n if (isAuth) {\n const token = yield select(authSelectors.getAuthToken);\n\n const response = yield call(fetch, `${API_BASE_URL}/organization/saveDowntimeReason`, {\n method: 'POST',\n body: JSON.stringify({ ...downtimeReason, reasonId: null }),\n headers: {\n 'Content-Type': 'application/json',\n Authorization: `Bearer ${token}`\n }\n });\n const jsonResult = yield response.json();\n if (response.status <= 300 && jsonResult.success) {\n const addedDowntimeReason = camelcaseKeys(jsonResult.data);\n yield put(\n actions.completeAddingOrganizationDowntimeReason(\n downtimeReason.reasonId,\n addedDowntimeReason\n )\n );\n\n alerts.showSuccessCreatedMessage({\n object: appIntl().formatMessage({\n id: 'organizations.downtimeReason'\n }),\n name: downtimeReason.reasonDescription,\n altText: true\n });\n } else {\n const error = {\n errorMessage: jsonResult.message,\n errorNumber: jsonResult.number\n };\n alerts.showErrorAlertFailChanges({ error });\n yield put(actions.failAddingOrganizationDowntimeReason(downtimeReason.reasonId, error));\n }\n }\n } catch (err) {\n const error = {\n errorMessage: err.toString(),\n errorNumber: -1\n };\n alerts.showErrorAlertFailChanges({ error });\n yield put(actions.failAddingOrganizationDowntimeReason(downtimeReason.reasonId, error));\n }\n}\n\nexport function* watchAddOrganizationDowntimeReasonsStarted() {\n yield takeEvery(types.ORGANIZATION_DOWNTIME_REASON_ADD_STARTED, addOrganizationDowntimeReason);\n}\n\n/* -------------------------------------------------------------------------- */\n/* EDIT DOWNTIME REASON */\n/* -------------------------------------------------------------------------- */\nfunction* editOrganizationDowntimeReason(action) {\n const downtimeReason = action.payload;\n try {\n const isAuth = yield select(authSelectors.isAuthenticated);\n\n if (isAuth) {\n const token = yield select(authSelectors.getAuthToken);\n\n const response = yield call(fetch, `${API_BASE_URL}/organization/saveDowntimeReason`, {\n method: 'POST',\n body: JSON.stringify(downtimeReason),\n headers: {\n 'Content-Type': 'application/json',\n Authorization: `Bearer ${token}`\n }\n });\n const jsonResult = yield response.json();\n if (response.status <= 300 && jsonResult.success) {\n const editedDowntimeReason = camelcaseKeys(jsonResult.data);\n yield put(actions.completeEditingOrganizationDowntimeReason(editedDowntimeReason));\n\n alerts.showSuccessEditedMessage({\n object: appIntl().formatMessage({\n id: 'organizations.downtimeReason'\n }),\n name: downtimeReason.reasonDescription,\n altText: true\n });\n } else {\n const error = {\n errorMessage: jsonResult.message,\n errorNumber: jsonResult.number\n };\n alerts.showErrorAlertFailChanges({ error });\n yield put(actions.failEditingOrganizationDowntimeReason(downtimeReason.reasonId, error));\n }\n }\n } catch (err) {\n const error = {\n errorMessage: err.toString(),\n errorNumber: -1\n };\n alerts.showErrorAlertFailChanges({ error });\n yield put(actions.failEditingOrganizationDowntimeReason(downtimeReason.reasonId, error));\n }\n}\n\nexport function* watchEditOrganizationDowntimeReasonsStarted() {\n yield takeEvery(types.ORGANIZATION_DOWNTIME_REASON_EDIT_STARTED, editOrganizationDowntimeReason);\n}\n\n/* -------------------------------------------------------------------------- */\n/* REMOVE DOWNTIME REASON */\n/* -------------------------------------------------------------------------- */\nfunction* removeOrganizationDowntimeReason(action) {\n const downtimeReason = action.payload;\n try {\n const isAuth = yield select(authSelectors.isAuthenticated);\n\n if (isAuth) {\n const token = yield select(authSelectors.getAuthToken);\n\n const response = yield call(fetch, `${API_BASE_URL}/organization/deleteDowntimeReason`, {\n method: 'POST',\n body: JSON.stringify(downtimeReason),\n headers: {\n 'Content-Type': 'application/json',\n Authorization: `Bearer ${token}`\n }\n });\n const jsonResult = yield response.json();\n if (response.status <= 300 && jsonResult.success) {\n yield put(actions.completeRemovingOrganizationDowntimeReason(downtimeReason.reasonId));\n alerts.showSuccessDeletedMessage({\n object: appIntl().formatMessage({\n id: 'organizations.downtimeReason'\n }),\n name: downtimeReason.reasonDescription\n });\n } else {\n const error = {\n errorMessage: jsonResult.message,\n errorNumber: jsonResult.number\n };\n alerts.showErrorAlertFailChanges({ error });\n yield put(actions.failRemovingOrganizationDowntimeReason(downtimeReason.reasonId, error));\n }\n }\n } catch (err) {\n const error = {\n errorMessage: err.toString(),\n errorNumber: -1\n };\n alerts.showErrorAlertFailChanges({ error });\n yield put(actions.failRemovingOrganizationDowntimeReason(downtimeReason.reasonId, error));\n }\n}\n\nexport function* watchRemoveOrganizationDowntimeReasonsStarted() {\n yield takeEvery(\n types.ORGANIZATION_DOWNTIME_REASON_REMOVE_STARTED,\n removeOrganizationDowntimeReason\n );\n}\n","/* -------------------------------------------------------------------------- */\n/* Schema Service Classes */\n/* -------------------------------------------------------------------------- */\n\nimport { schema } from \"normalizr\";\n\nexport const serviceClass = new schema.Entity(\n \"serviceClasses\",\n {},\n { idAttribute: \"serviceClassId\" }\n);\nexport const serviceClasses = new schema.Array(serviceClass);\n","import { call, takeEvery, put, select } from 'redux-saga/effects';\n\nimport { normalize } from 'normalizr';\nimport API_BASE_URL from '../../../../redux/sagas/settings/apibaseurl';\nimport * as actions from '../actions';\nimport * as types from '../types';\nimport * as selectors from '../reducers';\nimport * as schemas from '../schemas';\nimport * as authSelectors from '../../../../redux/reducers/auth';\nimport camelcaseKeys from 'camelcase-keys';\nimport * as alerts from '../../../../redux/utils/alerts';\nimport { appIntl } from '../../../../utility/context/IntlGlobalProvider';\n\n/* -------------------------------------------------------------------------- */\n/* FETCH LIST */\n/* -------------------------------------------------------------------------- */\nfunction* fetchServiceClassesList(action) {\n const { filters, isDropdown, isWebPage } = action.payload;\n let urlGet = `${API_BASE_URL}/serviceClass`;\n if (isDropdown) {\n urlGet = `${API_BASE_URL}/serviceClass/allStatus`;\n }\n try {\n const isAuth = yield select(authSelectors.isAuthenticated);\n if (isAuth) {\n const token = yield select(authSelectors.getAuthToken);\n const response = yield call(fetch, urlGet, {\n method: 'POST',\n body: JSON.stringify({ operatorId: isWebPage ? filters?.operatorId : null }),\n headers: {\n 'Content-Type': 'application/json',\n Authorization: `Bearer ${token}`\n }\n });\n const jsonResult = yield response.json();\n if (response.status <= 300 && jsonResult.success) {\n const resultData = jsonResult.data.map((result) => camelcaseKeys(result));\n const {\n entities: { serviceClasses },\n result //order\n } = normalize(resultData, schemas.serviceClasses); //normalize data to byId and order\n yield put(actions.completeFetchingServiceClasses(serviceClasses, result));\n } else {\n const error = {\n errorMessage: jsonResult.message,\n errorNumber: jsonResult.number\n };\n // alerts.showErrorAlertFailChanges({ error });\n yield put(actions.failFetchingServiceClasses(error));\n }\n }\n } catch (err) {\n const error = {\n errorMessage: err.toString(),\n errorNumber: -1\n };\n // alerts.showErrorAlertFailChanges({ error });\n yield put(actions.failFetchingServiceClasses(error));\n }\n}\n\nexport function* watchFetchServiceClassesList() {\n yield takeEvery(types.SERVICECLASSES_FETCH_STARTED, fetchServiceClassesList);\n}\n/* -------------------------------------------------------------------------- */\n/* ADD */\n/* -------------------------------------------------------------------------- */\nfunction* addServiceClass(action) {\n const serviceClass = action.payload;\n try {\n const isAuth = yield select(authSelectors.isAuthenticated);\n\n if (isAuth) {\n const token = yield select(authSelectors.getAuthToken);\n const response = yield call(fetch, `${API_BASE_URL}/serviceClass/save`, {\n method: 'POST',\n body: JSON.stringify({ ...serviceClass, serviceClassId: null }),\n headers: {\n 'Content-Type': 'application/json',\n Authorization: `Bearer ${token}`\n }\n });\n const jsonResult = yield response.json();\n if (response.status <= 300 && jsonResult.success) {\n const addedServiceClass = camelcaseKeys(jsonResult.data);\n yield put(\n actions.completeAddingServiceClass(serviceClass.serviceClassId, addedServiceClass)\n );\n\n alerts.showSuccessCreatedMessage({\n object: appIntl().formatMessage({\n id: 'serviceClasses.serviceClass'\n }),\n name: addedServiceClass.serviceClassName,\n altText: true\n });\n } else {\n const error = {\n errorMessage: jsonResult.message,\n errorNumber: jsonResult.number\n };\n // alerts.showErrorAlertFailChanges({ error });\n yield put(actions.failAddingServiceClass(serviceClass.serviceClassId, error));\n }\n }\n } catch (err) {\n const error = {\n errorMessage: err.toString(),\n errorNumber: -1\n };\n // alerts.showErrorAlertFailChanges({ error });\n yield put(actions.failAddingServiceClass(serviceClass.serviceClassId, error));\n }\n}\n\nexport function* watchAddServiceClassesStarted() {\n yield takeEvery(types.SERVICECLASS_ADD_STARTED, addServiceClass);\n}\n\n/* -------------------------------------------------------------------------- */\n/* EDIT */\n/* -------------------------------------------------------------------------- */\nfunction* editServiceClass(action) {\n const serviceClass = action.payload;\n try {\n const isAuth = yield select(authSelectors.isAuthenticated);\n\n if (isAuth) {\n const token = yield select(authSelectors.getAuthToken);\n\n const response = yield call(fetch, `${API_BASE_URL}/serviceClass/save`, {\n method: 'POST',\n body: JSON.stringify(serviceClass),\n headers: {\n 'Content-Type': 'application/json',\n Authorization: `Bearer ${token}`\n }\n });\n const jsonResult = yield response.json();\n if (response.status <= 300 && jsonResult.success) {\n const editedServiceClass = camelcaseKeys(jsonResult.data);\n yield put(actions.completeEditingServiceClass(editedServiceClass));\n alerts.showSuccessEditedMessage({\n object: appIntl().formatMessage({\n id: 'serviceClasses.serviceClass'\n }),\n name: editedServiceClass.serviceClassName,\n altText: true\n });\n } else {\n const error = {\n errorMessage: jsonResult.message,\n errorNumber: jsonResult.number\n };\n const oldServiceClass = yield select((state) =>\n selectors.getServiceClass(state, serviceClass.serviceClassId)\n );\n yield put(actions.failEditingServiceClass(oldServiceClass, error));\n // alerts.showErrorAlertFailChanges({ error });\n }\n }\n } catch (err) {\n const error = {\n errorMessage: err.toString(),\n errorNumber: -1\n };\n\n const oldServiceClass = yield select((state) =>\n selectors.getServiceClass(state, serviceClass.serviceClassId)\n );\n yield put(actions.failEditingServiceClass(oldServiceClass, error));\n // alerts.showErrorAlertFailChanges({ error });\n }\n}\n\nexport function* watchEditServiceClassesStarted() {\n yield takeEvery(types.SERVICECLASS_EDIT_STARTED, editServiceClass);\n}\n\n/* -------------------------------------------------------------------------- */\n/* REMOVE */\n/* -------------------------------------------------------------------------- */\nfunction* removeServiceClass(action) {\n const { serviceClassId } = action.payload;\n try {\n const isAuth = yield select(authSelectors.isAuthenticated);\n const deletedServiceClass = yield select((state) =>\n selectors.getServiceClass(state, serviceClassId)\n );\n if (isAuth) {\n const token = yield select(authSelectors.getAuthToken);\n\n const response = yield call(fetch, `${API_BASE_URL}/serviceClass/delete`, {\n method: 'POST',\n body: JSON.stringify({ serviceClassId }),\n headers: {\n 'Content-Type': 'application/json',\n Authorization: `Bearer ${token}`\n }\n });\n const jsonResult = yield response.json();\n if (response.status <= 300 && jsonResult.success) {\n yield put(actions.completeRemovingServiceClass(serviceClassId));\n alerts.showSuccessDeletedMessage({\n object: appIntl().formatMessage({\n id: 'serviceClasses.serviceClass'\n }),\n name: deletedServiceClass.serviceClassName,\n altText: true\n });\n } else {\n const error = {\n errorMessage: jsonResult.message,\n errorNumber: jsonResult.number\n };\n // alerts.showErrorAlertFailChanges({ error });\n yield put(actions.failRemovingServiceClass(serviceClassId, error));\n }\n }\n } catch (err) {\n const error = {\n errorMessage: err.toString(),\n errorNumber: -1\n };\n // alerts.showErrorAlertFailChanges({ error });\n yield put(actions.failRemovingServiceClass(serviceClassId, error));\n }\n}\n\nexport function* watchRemoveServiceClassStarted() {\n yield takeEvery(types.SERVICECLASS_REMOVE_STARTED, removeServiceClass);\n}\n\n/* -------------------------------------------------------------------------- */\n/* FETCH SERVICE CLASS */\n/* -------------------------------------------------------------------------- */\nfunction* fetchServiceClass(action) {\n const serviceClassId = action.payload;\n try {\n const isAuth = yield select(authSelectors.isAuthenticated);\n\n if (isAuth) {\n const token = yield select(authSelectors.getAuthToken);\n\n const response = yield call(fetch, `${API_BASE_URL}/serviceClass/${serviceClassId}`, {\n method: 'GET',\n headers: {\n 'Content-Type': 'application/json',\n Authorization: `Bearer ${token}`\n }\n });\n const jsonResult = yield response.json();\n if (response.status <= 300 && jsonResult.success) {\n const serviceClass = camelcaseKeys(jsonResult.data);\n yield put(actions.completeFetchingServiceClass(serviceClass));\n } else {\n const error = {\n errorMessage: jsonResult.message,\n errorNumber: jsonResult.number\n };\n\n yield put(actions.failFetchingServiceClass(error));\n }\n }\n } catch (err) {\n const error = {\n errorMessage: err.toString(),\n errorNumber: -1\n };\n\n yield put(actions.failFetchingServiceClass(error));\n }\n}\n\nexport function* watchServiceClassFetchStarted() {\n yield takeEvery(types.SERVICECLASS_FETCH_STARTED, fetchServiceClass);\n}\n","/* -------------------------------------------------------------------------- */\n/* Schema Subdivisions */\n/* -------------------------------------------------------------------------- */\n\nimport { schema } from \"normalizr\";\n\nexport const subdivision = new schema.Entity(\n \"subdivisions\",\n {},\n { idAttribute: \"subdivisionId\" }\n);\nexport const subdivisions = new schema.Array(subdivision);\n","import { call, takeEvery, put, select } from 'redux-saga/effects';\n\nimport { normalize } from 'normalizr';\nimport API_BASE_URL from '../../../../redux/sagas/settings/apibaseurl';\nimport * as actions from '../actions';\nimport * as types from '../types';\nimport * as selectors from '../reducers';\nimport * as schemas from '../schemas';\nimport * as entitySelectors from '../../Entities/reducers';\nimport * as authSelectors from '../../../../redux/reducers/auth';\nimport camelcaseKeys from 'camelcase-keys';\nimport * as alerts from '../../../../redux/utils/alerts';\nimport { appIntl } from '../../../../utility/context/IntlGlobalProvider';\n\n/* -------------------------------------------------------------------------- */\n/* FETCH LIST */\n/* -------------------------------------------------------------------------- */\nfunction* fetchSubdivisionsList(action) {\n const { operatorId: filterOperatorId, organizationId: filterOrganizationId } = action.payload;\n const { operatorId, organizationId } = yield select(authSelectors.getAuthUserMembershipFilters, {\n filterOperatorId,\n filterOrganizationId\n });\n\n try {\n const isAuth = yield select(authSelectors.isAuthenticated);\n if (isAuth) {\n const token = yield select(authSelectors.getAuthToken);\n const response = yield call(fetch, `${API_BASE_URL}/subdivision/get`, {\n method: 'POST',\n body: JSON.stringify({\n operatorId,\n organizationId\n }),\n headers: {\n 'Content-Type': 'application/json',\n Authorization: `Bearer ${token}`\n }\n });\n const jsonResult = yield response.json();\n if (response.status <= 300 && jsonResult.success) {\n const resultData = jsonResult.data.map((result) => camelcaseKeys(result));\n const {\n entities: { subdivisions },\n result //order\n } = normalize(resultData, schemas.subdivisions); //normalize data to byId and order\n yield put(\n actions.completeFetchingSubdivisions(subdivisions, result, operatorId, organizationId)\n );\n } else {\n const error = {\n errorMessage: jsonResult.message,\n errorNumber: jsonResult.number\n };\n // alerts.showErrorAlertFailChanges({ error });\n yield put(actions.failFetchingSubdivisions(error));\n }\n }\n } catch (err) {\n const error = {\n errorMessage: err.toString(),\n errorNumber: -1\n };\n // alerts.showErrorAlertFailChanges({ error });\n yield put(actions.failFetchingSubdivisions(error));\n }\n}\n\nexport function* watchFetchSubdivisionsList() {\n yield takeEvery(types.SUBDIVISIONS_FETCH_STARTED, fetchSubdivisionsList);\n}\n/* -------------------------------------------------------------------------- */\n/* PARTIAL FETCH LIST */\n/* -------------------------------------------------------------------------- */\nfunction* partialFetchSubdivisionsList(action) {\n try {\n const {\n entityTypeId,\n operatorId: filterOperatorId,\n organizationId: filterOrganizationId\n } = action.payload;\n const date = yield select(entitySelectors.getUserUpdateByEntityDate, entityTypeId);\n const { operatorId, organizationId } = yield select(\n authSelectors.getAuthUserMembershipFilters,\n {\n filterOperatorId,\n filterOrganizationId\n }\n );\n\n const isAuth = yield select(authSelectors.isAuthenticated);\n if (isAuth) {\n const token = yield select(authSelectors.getAuthToken);\n const response = yield call(fetch, `${API_BASE_URL}/subdivision/get`, {\n method: 'POST',\n body: JSON.stringify({ userFetchDate: date, operatorId, organizationId }),\n headers: {\n 'Content-Type': 'application/json',\n Authorization: `Bearer ${token}`\n }\n });\n const jsonResult = yield response.json();\n if (response.status <= 300 && jsonResult.success) {\n const resultData = jsonResult.data.map((result) => camelcaseKeys(result));\n const {\n entities: { subdivisions },\n result //order\n } = normalize(resultData, schemas.subdivisions); //normalize data to byId and order\n yield put(\n actions.completePartialFetchingSubdivisions(\n subdivisions,\n result,\n operatorId,\n organizationId\n )\n );\n } else {\n const error = {\n errorMessage: jsonResult.message,\n errorNumber: jsonResult.number\n };\n // alerts.showErrorAlertFailChanges({ error });\n yield put(actions.failPartialFetchingSubdivisions(error));\n }\n }\n } catch (err) {\n const error = {\n errorMessage: err.toString(),\n errorNumber: -1\n };\n // alerts.showErrorAlertFailChanges({ error });\n yield put(actions.failPartialFetchingSubdivisions(error));\n }\n}\n\nexport function* watchPartialFetchSubdivisionsList() {\n yield takeEvery(types.SUBDIVISIONS_PARTIAL_FETCH_STARTED, partialFetchSubdivisionsList);\n}\n/* -------------------------------------------------------------------------- */\n/* ADD */\n/* -------------------------------------------------------------------------- */\nfunction* addSubdivision(action) {\n const subdivision = action.payload;\n try {\n const isAuth = yield select(authSelectors.isAuthenticated);\n\n if (isAuth) {\n const token = yield select(authSelectors.getAuthToken);\n\n const response = yield call(fetch, `${API_BASE_URL}/subdivision/save`, {\n method: 'POST',\n body: JSON.stringify({ ...subdivision, subdivisionId: null }),\n headers: {\n 'Content-Type': 'application/json',\n Authorization: `Bearer ${token}`\n }\n });\n const jsonResult = yield response.json();\n if (response.status <= 300 && jsonResult.success) {\n const addedSubdivision = camelcaseKeys(jsonResult.data);\n yield put(actions.completeAddingSubdivision(subdivision.subdivisionId, addedSubdivision));\n alerts.showSuccessCreatedMessage({\n object: appIntl().formatMessage({\n id: 'subdivisions.subdivision'\n }),\n name: subdivision.organizationName\n });\n } else {\n const error = {\n errorMessage: jsonResult.message,\n errorNumber: jsonResult.number\n };\n // alerts.showErrorAlertFailChanges({ error });\n yield put(actions.failAddingSubdivision(subdivision.subdivisionId, error));\n }\n }\n } catch (err) {\n const error = {\n errorMessage: err.toString(),\n errorNumber: -1\n };\n // alerts.showErrorAlertFailChanges({ error });\n yield put(actions.failAddingSubdivision(subdivision.subdivisionId, error));\n }\n}\n\nexport function* watchAddSubdivisionsStarted() {\n yield takeEvery(types.SUBDIVISION_ADD_STARTED, addSubdivision);\n}\n\n/* -------------------------------------------------------------------------- */\n/* EDIT */\n/* -------------------------------------------------------------------------- */\nfunction* editSubdivision(action) {\n const subdivision = action.payload;\n try {\n const isAuth = yield select(authSelectors.isAuthenticated);\n\n if (isAuth) {\n const token = yield select(authSelectors.getAuthToken);\n\n const response = yield call(fetch, `${API_BASE_URL}/subdivision/save`, {\n method: 'POST',\n body: JSON.stringify(subdivision),\n headers: {\n 'Content-Type': 'application/json',\n Authorization: `Bearer ${token}`\n }\n });\n const jsonResult = yield response.json();\n if (response.status <= 300 && jsonResult.success) {\n const editedSubdivision = camelcaseKeys(jsonResult.data);\n yield put(actions.completeEditingSubdivision(editedSubdivision));\n alerts.showSuccessEditedMessage({\n object: appIntl().formatMessage({\n id: 'subdivisions.subdivision'\n }),\n name: editedSubdivision.subdivisionName\n });\n } else {\n const error = {\n errorMessage: jsonResult.message,\n errorNumber: jsonResult.number\n };\n const oldSubdivision = yield select((state) =>\n selectors.getSubdivision(state, subdivision.subdivisionId)\n );\n yield put(actions.failEditingSubdivision(oldSubdivision, error));\n // alerts.showErrorAlertFailChanges({ error });\n }\n }\n } catch (err) {\n const error = {\n errorMessage: err.toString(),\n errorNumber: -1\n };\n\n const oldSubdivision = yield select((state) =>\n selectors.getSubdivision(state, subdivision.subdivisionId)\n );\n yield put(actions.failEditingSubdivision(oldSubdivision, error));\n // alerts.showErrorAlertFailChanges({ error });\n }\n}\n\nexport function* watchEditSubdivisionsStarted() {\n yield takeEvery(types.SUBDIVISION_EDIT_STARTED, editSubdivision);\n}\n\n/* -------------------------------------------------------------------------- */\n/* REMOVE */\n/* -------------------------------------------------------------------------- */\nfunction* removeSubdivision(action) {\n const { subdivisionId } = action.payload;\n try {\n const isAuth = yield select(authSelectors.isAuthenticated);\n const deletedSubdivision = yield select((state) =>\n selectors.getSubdivision(state, subdivisionId)\n );\n if (isAuth) {\n const token = yield select(authSelectors.getAuthToken);\n const response = yield call(fetch, `${API_BASE_URL}/subdivision/delete`, {\n method: 'POST',\n body: JSON.stringify({ subdivisionId }),\n headers: {\n 'Content-Type': 'application/json',\n Authorization: `Bearer ${token}`\n }\n });\n const jsonResult = yield response.json();\n if (response.status <= 300 && jsonResult.success) {\n yield put(actions.completeRemovingSubdivision(subdivisionId));\n alerts.showSuccessDeletedMessage({\n object: appIntl().formatMessage({\n id: 'subdivisions.subdivision'\n }),\n name: deletedSubdivision.subdivisionName\n });\n } else {\n const error = {\n errorMessage: jsonResult.message,\n errorNumber: jsonResult.number\n };\n // alerts.showErrorAlertFailChanges({ error });\n yield put(actions.failRemovingSubdivision(subdivisionId, error));\n }\n }\n } catch (err) {\n const error = {\n errorMessage: err.toString(),\n errorNumber: -1\n };\n // alerts.showErrorAlertFailChanges({ error });\n yield put(actions.failRemovingSubdivision(subdivisionId, error));\n }\n}\n\nexport function* watchRemoveSubdivisionStarted() {\n yield takeEvery(types.SUBDIVISION_REMOVE_STARTED, removeSubdivision);\n}\n","/* -------------------------------------------------------------------------- */\n/* Schema Units */\n/* -------------------------------------------------------------------------- */\n\nimport { schema } from 'normalizr';\n\nexport const unit = new schema.Entity('units', {}, { idAttribute: 'unitId' });\nexport const units = new schema.Array(unit);\n","/* -------------------------------------------------------------------------- */\n/* Schema Device Metrics */\n/* -------------------------------------------------------------------------- */\n\nimport { schema } from 'normalizr';\n\nexport const deviceMetric = new schema.Entity(\n 'deviceMetrics',\n {},\n { idAttribute: 'deviceMetricId' }\n);\nexport const deviceMetrics = new schema.Array(deviceMetric);\n","/* -------------------------------------------------------------------------- */\n/* Schema Device Actions */\n/* -------------------------------------------------------------------------- */\n\nimport { schema } from 'normalizr';\n\nexport const deviceAction = new schema.Entity(\n 'deviceActions',\n {},\n { idAttribute: 'deviceActionId' }\n);\nexport const deviceActions = new schema.Array(deviceAction);\n","/* -------------------------------------------------------------------------- */\n/* Schema Groups */\n/* -------------------------------------------------------------------------- */\n\nimport { schema } from 'normalizr';\n\nexport const group = new schema.Entity('groups', {}, { idAttribute: 'groupId' });\nexport const groups = new schema.Array(group);\n","/* -------------------------------------------------------------------------- */\n/* Schema Reports */\n/* -------------------------------------------------------------------------- */\n\nimport { schema } from 'normalizr';\n\nexport const report = new schema.Entity('reports', {}, { idAttribute: 'reportId' });\nexport const reports = new schema.Array(report);\n","/* -------------------------------------------------------------------------- */\n/* Schema Images */\n/* -------------------------------------------------------------------------- */\n\nimport { schema } from 'normalizr';\n\nexport const image = new schema.Entity('images', {}, { idAttribute: 'imageId' });\nexport const images = new schema.Array(image);\n","/* -------------------------------------------------------------------------- */\n/* Schema Sensors */\n/* -------------------------------------------------------------------------- */\n\nimport { schema } from 'normalizr';\n\nexport const sensor = new schema.Entity('sensors', {}, { idAttribute: 'sensorId' });\nexport const sensors = new schema.Array(sensor);\n","import camelcaseKeys from 'camelcase-keys';\nimport { normalize } from 'normalizr';\nimport { call, put, select, takeEvery } from 'redux-saga/effects';\nimport { store } from 'redux/storeConfig/store';\nimport * as authSelectors from '../../../../redux/reducers/auth';\nimport API_BASE_URL from '../../../../redux/sagas/settings/apibaseurl';\nimport * as alerts from '../../../../redux/utils/alerts';\nimport { appIntl } from '../../../../utility/context/IntlGlobalProvider';\nimport * as entitySelectors from '../../Entities/reducers';\nimport { ENTITY_UNITS } from '../../Entities/constants';\nimport * as actions from '../actions';\nimport * as selectors from '../reducers';\nimport * as schemas from '../schemas';\nimport * as deviceMetricsSchemas from '../schemas/deviceMetrics';\nimport * as deviceActionsSchemas from '../schemas/deviceActions';\nimport * as groupsSchemas from '../schemas/groups';\nimport * as reportsSchemas from '../schemas/reports';\nimport * as imagesSchemas from '../schemas/images';\nimport * as sensorsSchemas from '../schemas/sensors';\nimport * as types from '../types';\nimport {\n getUnitsListService,\n getUnitsLiveStatusListService,\n getUnitInformationService,\n executeDeviceActionService,\n getUnitHistoricalPositionsReportService,\n acknowledgeUnitEventService,\n updateDeviceService,\n updateSimCardService\n} from '../services';\nimport { camelize } from 'utility/Utils';\n\n/* -------------------------------------------------------------------------- */\n/* FETCH LIST */\n/* -------------------------------------------------------------------------- */\nfunction* fetchUnitsList(action) {\n const { operatorId: filterOperatorId, organizationId: filterOrganizationId } = action.payload;\n console.log('operatorId', filterOperatorId, 'organizationId', filterOrganizationId);\n const { operatorId, organizationId } = yield select(authSelectors.getAuthUserMembershipFilters, {\n filterOperatorId,\n filterOrganizationId\n });\n\n getUnitsListService(\n { operatorId, organizationId },\n {\n successAction: (response) => {\n const resultData = response.data.map((result) => camelcaseKeys(result));\n const {\n entities: { units },\n result //order\n } = normalize(resultData, schemas.units); //normalize data to byId and order\n store.dispatch(actions.completeFetchingUnits(units, result, operatorId, organizationId));\n },\n errorAction: (error) => {\n store.dispatch(actions.failFetchingUnits(error));\n }\n }\n );\n}\n\nexport function* watchFetchUnitsList() {\n yield takeEvery(types.UNITS_FETCH_STARTED, fetchUnitsList);\n}\n/* -------------------------------------------------------------------------- */\n/* PARTIAL FETCH LIST */\n/* -------------------------------------------------------------------------- */\nfunction* partialFetchUnitsList(action) {\n const {\n entityTypeId,\n operatorId: filterOperatorId,\n organizationId: filterOrganizationId\n } = action.payload;\n const date = yield select(entitySelectors.getUserUpdateByEntityDate, entityTypeId);\n const { operatorId, organizationId } = yield select(authSelectors.getAuthUserMembershipFilters, {\n filterOperatorId,\n filterOrganizationId\n });\n\n getUnitsListService(\n { userFetchDate: date, operatorId, organizationId },\n {\n successAction: (response) => {\n const resultData = response.data.map((result) => camelcaseKeys(result));\n const {\n entities: { units },\n result //order\n } = normalize(resultData, schemas.units); //normalize data to byId and order\n store.dispatch(\n actions.completePartialFetchingUnits(units, result, operatorId, organizationId)\n );\n },\n errorAction: (error) => {\n store.dispatch(actions.failPartialFetchingUnits(error));\n }\n }\n );\n}\n\nexport function* watchPartialFetchUnitsList() {\n yield takeEvery(types.UNITS_PARTIAL_FETCH_STARTED, partialFetchUnitsList);\n}\n\n/* -------------------------------------------------------------------------- */\n/* FETCH LIVE STATUS */\n/* -------------------------------------------------------------------------- */\nfunction* fetchUnitsLiveStatusList(action) {\n const operatorId = yield select(entitySelectors.getUserUpdateByEntityOperatorId, ENTITY_UNITS);\n const organizationId = yield select(\n entitySelectors.getUserUpdateByEntityOrganizationId,\n ENTITY_UNITS\n );\n const userFetchDate = yield select(selectors.getUnitLiveFetchDate, organizationId);\n\n getUnitsLiveStatusListService(\n { operatorId, organizationId, userFetchDate },\n {\n successAction: (response) => {\n const resultData = response.data.map((result) => camelcaseKeys(result));\n const {\n entities: { units },\n result //order\n } = normalize(resultData, schemas.units); //normalize data to byId and order\n store.dispatch(actions.completeFetchingUnitsLiveStatus(units, result, organizationId));\n },\n errorAction: (error) => {\n store.dispatch(actions.failFetchingUnitsLiveStatus(error));\n }\n }\n );\n}\n\nexport function* watchFetchUnitsLiveStatusList() {\n yield takeEvery(types.UNITS_LIVE_STATUS_FETCH_STARTED, fetchUnitsLiveStatusList);\n}\n\n/* -------------------------------------------------------------------------- */\n/* FETCH INFORMATION */\n/* -------------------------------------------------------------------------- */\nfunction* fetchUnitInformation(action) {\n const { unitId } = action.payload;\n\n getUnitInformationService(\n { unitId },\n {\n successAction: (response) => {\n const resultData = response.data;\n //Unit data Live Status\n const unitData = camelcaseKeys(resultData.unitData);\n //Unit device metrics\n const unitMetrics = resultData.unitMetrics.map((result) => camelcaseKeys(result));\n const {\n entities: { deviceMetrics: deviceMetricsEntities },\n result: deviceMetricsOrder //order\n } = normalize(unitMetrics, deviceMetricsSchemas.deviceMetrics); //normalize data to byId and order\n\n //Unit device actions\n const unitActions = resultData.unitActions.map((result) => camelcaseKeys(result));\n const {\n entities: { deviceActions: deviceActionsEntities },\n result: deviceActionsOrder //order\n } = normalize(unitActions, deviceActionsSchemas.deviceActions); //normalize data to byId and order\n\n //Unit groups\n const groupsData = resultData.groupsData.map((result) => camelcaseKeys(result));\n const {\n entities: { groups: groupsEntities },\n result: groupsOrder //order\n } = normalize(groupsData, groupsSchemas.groups); //normalize data to byId and order\n\n //Unit Reports\n const unitReports = resultData.unitReports.map((result) => camelcaseKeys(result));\n const {\n entities: { reports: reportsEntities },\n result: reportsOrder //order\n } = normalize(unitReports, reportsSchemas.reports); //normalize data to byId and order\n\n //Unit Images\n const unitImages = resultData.unitImages.map((result) => camelcaseKeys(result));\n const {\n entities: { images: imagesEntities },\n result: imagesOrder //order\n } = normalize(unitImages, imagesSchemas.images); //normalize data to byId and order\n\n //Unit Sensors\n const unitSensorMeasures = resultData.unitSensorMeasures.map((result) =>\n camelcaseKeys(result)\n );\n const {\n entities: { sensors: sensorsEntities },\n result: sensorsOrder //order\n } = normalize(unitSensorMeasures, sensorsSchemas.sensors); //normalize data to byId and order\n\n store.dispatch(\n actions.completeFetchingUnitInformation(\n unitId,\n unitData,\n deviceMetricsEntities,\n deviceMetricsOrder,\n deviceActionsEntities,\n deviceActionsOrder,\n groupsEntities,\n groupsOrder,\n reportsEntities,\n reportsOrder,\n imagesEntities,\n imagesOrder,\n sensorsEntities,\n sensorsOrder\n )\n );\n },\n errorAction: (error) => {\n store.dispatch(actions.failFetchingUnitInformation(error));\n }\n }\n );\n}\n\nexport function* watchFetchUnitInformationStarted() {\n yield takeEvery(types.UNIT_INFORMATION_FETCH_STARTED, fetchUnitInformation);\n}\n\n/* -------------------------------------------------------------------------- */\n/* FETCH LIVE STATUS */\n/* -------------------------------------------------------------------------- */\nfunction* fetchUnitHistoricalPositionsReport(action) {\n const { unitId, reportType, startDate, endDate, idleSpeed } = action.payload;\n\n getUnitHistoricalPositionsReportService(\n { unitId, reportType, startDate, endDate, idleSpeed },\n {\n successAction: (response) => {\n const distance = response.data.distance;\n const parkedPositions = response.data?.parkedPositions?.map((result, i) => ({\n ...camelcaseKeys(result),\n id: `parkedPosition-${i}`\n }));\n const polyline = response.data?.polyline?.map((result) => camelcaseKeys(result));\n const positions = response.data?.positions?.map((result, i) => ({\n ...camelcaseKeys(result),\n id: `position-${i}`\n }));\n store.dispatch(\n actions.completeFetchingUnitPositions(\n unitId,\n distance,\n parkedPositions,\n polyline,\n positions\n )\n );\n },\n errorAction: (error) => {\n store.dispatch(actions.failFetchingUnitPositions(error));\n }\n }\n );\n}\n\nexport function* watchFetchUnitHistoricalPositionsStarted() {\n yield takeEvery(types.UNIT_POSITIONS_FETCH_STARTED, fetchUnitHistoricalPositionsReport);\n}\n\n/* -------------------------------------------------------------------------- */\n/* EXECUTE DEVICE ACTION */\n/* -------------------------------------------------------------------------- */\nfunction* executeDeviceAction(action) {\n const { unitId, deviceActionId, parameters } = action.payload;\n\n executeDeviceActionService({\n unitId,\n deviceActionId,\n parameters\n });\n}\n\nexport function* watchExecuteDeviceAction() {\n yield takeEvery(types.UNIT_EXECUTE_DEVICE_ACTION, executeDeviceAction);\n}\n\n/* -------------------------------------------------------------------------- */\n/* ADD */\n/* -------------------------------------------------------------------------- */\nfunction* addUnit(action) {\n const unit = action.payload;\n try {\n const isAuth = yield select(authSelectors.isAuthenticated);\n\n if (isAuth) {\n const token = yield select(authSelectors.getAuthToken);\n\n const response = yield call(fetch, `${API_BASE_URL}/unit/save`, {\n method: 'POST',\n body: JSON.stringify({ ...unit, unitId: null }),\n headers: {\n 'Content-Type': 'application/json',\n Authorization: `Bearer ${token}`\n }\n });\n const jsonResult = yield response.json();\n if (response.status <= 300 && jsonResult.success) {\n const addedUnit = camelcaseKeys(jsonResult.data);\n yield put(actions.completeAddingUnit(unit.unitId, addedUnit));\n\n alerts.showSuccessCreatedMessage({\n object: appIntl().formatMessage({\n id: 'units.unit'\n }),\n name: unit.unitName,\n altText: true\n });\n } else {\n const error = {\n errorMessage: jsonResult.message,\n errorNumber: jsonResult.number\n };\n // alerts.showErrorAlertFailChanges({ error });\n yield put(actions.failAddingUnit(unit.unitId, error));\n }\n }\n } catch (err) {\n const error = {\n errorMessage: err.toString(),\n errorNumber: -1\n };\n // alerts.showErrorAlertFailChanges({ error });\n yield put(actions.failAddingUnit(unit.unitId, error));\n }\n}\n\nexport function* watchAddUnitsStarted() {\n yield takeEvery(types.UNIT_ADD_STARTED, addUnit);\n}\n\n/* -------------------------------------------------------------------------- */\n/* EDIT */\n/* -------------------------------------------------------------------------- */\nfunction* editUnit(action) {\n const unit = action.payload;\n try {\n const isAuth = yield select(authSelectors.isAuthenticated);\n\n if (isAuth) {\n const token = yield select(authSelectors.getAuthToken);\n\n const response = yield call(fetch, `${API_BASE_URL}/unit/save`, {\n method: 'POST',\n body: JSON.stringify(unit),\n headers: {\n 'Content-Type': 'application/json',\n Authorization: `Bearer ${token}`\n }\n });\n const jsonResult = yield response.json();\n if (response.status <= 300 && jsonResult.success) {\n const editedUnit = camelcaseKeys(jsonResult.data);\n yield put(actions.completeEditingUnit(editedUnit));\n alerts.showSuccessEditedMessage({\n object: appIntl().formatMessage({\n id: 'units.unit'\n }),\n name: unit.unitName,\n altText: true\n });\n } else {\n const error = {\n errorMessage: jsonResult.message,\n errorNumber: jsonResult.number\n };\n const { oldUnit } = yield select((state) => selectors.getUnit(state.units, unit.unitId));\n yield put(actions.failEditingUnit(oldUnit, error));\n // alerts.showErrorAlertFailChanges({ error });\n }\n\n store.dispatch(actions.startFetchingUnits());\n }\n } catch (err) {\n const error = {\n errorMessage: err.toString(),\n errorNumber: -1\n };\n\n const { oldUnit } = yield select((state) => selectors.getUnit(state.units, unit.unitId));\n yield put(actions.failEditingUnit(oldUnit, error));\n // alerts.showErrorAlertFailChanges({ error });\n }\n}\n\nexport function* watchEditUnitsStarted() {\n yield takeEvery(types.UNIT_EDIT_STARTED, editUnit);\n}\n\n/* -------------------------------------------------------------------------- */\n/* UNIT ACKNOWLEDGE */\n/* -------------------------------------------------------------------------- */\nfunction* acknowledgeUnitEvent(action) {\n const { unitId } = action.payload;\n acknowledgeUnitEventService(\n { unitId },\n {\n successAction: (response) => {\n store.dispatch(actions.completeAcknowledgeUnitEvent(unitId));\n },\n errorAction: (error) => {\n store.dispatch(actions.failAcknowledgeUnitEvent(error));\n }\n }\n );\n}\n\nexport function* watchAcknowledgeUnitEvent() {\n yield takeEvery(types.UNIT_ACKNOWLEDGE_STARTED, acknowledgeUnitEvent);\n}\n\n/* -------------------------------------------------------------------------- */\n/* REMOVE */\n/* -------------------------------------------------------------------------- */\nfunction* removeUnit(action) {\n const unitBody = action.payload;\n const units = unitBody.units;\n try {\n const isAuth = yield select(authSelectors.isAuthenticated);\n if (isAuth) {\n const token = yield select(authSelectors.getAuthToken);\n\n const response = yield call(fetch, `${API_BASE_URL}/unit/delete`, {\n method: 'POST',\n body: JSON.stringify({ units }),\n headers: {\n 'Content-Type': 'application/json',\n Authorization: `Bearer ${token}`\n }\n });\n const jsonResult = yield response.json();\n if (response.status <= 300 && jsonResult.success) {\n yield put(actions.completeRemovingUnit(unitBody.units, unitBody.unitsName));\n alerts.showSuccessDisabledMessage({\n object: appIntl().formatMessage({\n id: unitBody.units.length > 1 ? 'units.units' : 'units.unit'\n }),\n multiple: unitBody.units.length > 1,\n altText: true,\n name: unitBody.unitsName\n });\n } else {\n const error = {\n errorMessage: jsonResult.message,\n errorNumber: jsonResult.number\n };\n // alerts.showErrorAlertFailChanges({ error });\n yield put(actions.failRemovingUnit(unitBody.units, error));\n }\n }\n } catch (err) {\n const error = {\n errorMessage: err.toString(),\n errorNumber: -1\n };\n // alerts.showErrorAlertFailChanges({ error });\n yield put(actions.failRemovingUnit(unitBody.units, error));\n }\n}\n\nexport function* watchRemoveUnitStarted() {\n yield takeEvery(types.UNIT_REMOVE_STARTED, removeUnit);\n}\n\n/* -------------------------------------------------------------------------- */\n/* ACTIVE UNITS */\n/* -------------------------------------------------------------------------- */\nfunction* activeUnits(action) {\n const units = action.payload;\n try {\n const isAuth = yield select(authSelectors.isAuthenticated);\n\n if (isAuth) {\n const token = yield select(authSelectors.getAuthToken);\n\n const response = yield call(fetch, `${API_BASE_URL}/unit/updateUnitStatus`, {\n method: 'POST',\n body: JSON.stringify(units),\n headers: {\n 'Content-Type': 'application/json',\n Authorization: `Bearer ${token}`\n }\n });\n const jsonResult = yield response.json();\n if (\n response.status <= 300 &&\n jsonResult.success /*&&\n jsonResult.data.length === unitGeofences.length*/\n ) {\n yield put(actions.completeActivingUnits(units));\n\n alerts.showSuccessMessage({\n success: appIntl().formatMessage({\n id: 'units.unitsWereSuccessfullyActived'\n })\n });\n } else {\n const error = {\n errorMessage: appIntl().formatMessage({\n id: 'units.unitsActivationIsNotPossibleRightNow'\n }),\n errorNumber: jsonResult.number\n };\n // alerts.showErrorAlertFailChanges({ error });\n yield put(actions.failActivingUnits(error));\n }\n }\n } catch (err) {\n const error = {\n errorMessage: appIntl().formatMessage({\n id: 'units.unitsActivationIsNotPossibleRightNow'\n }),\n errorNumber: -1\n };\n // alerts.showErrorAlertFailChanges({ error });\n yield put(actions.failActivingUnits(error));\n }\n}\n\nexport function* watchActiveUnits() {\n yield takeEvery(types.UNITS_ACTIVE_STARTED, activeUnits);\n}\n\n/* -------------------------------------------------------------------------- */\n/* ASSIGN DRIVER */\n/* -------------------------------------------------------------------------- */\nfunction* assignDriver(action) {\n const units = action.payload;\n try {\n const isAuth = yield select(authSelectors.isAuthenticated);\n\n if (isAuth) {\n const token = yield select(authSelectors.getAuthToken);\n\n const response = yield call(fetch, `${API_BASE_URL}/unit/assignDriver`, {\n method: 'POST',\n body: JSON.stringify(units),\n headers: {\n 'Content-Type': 'application/json',\n Authorization: `Bearer ${token}`\n }\n });\n const jsonResult = yield response.json();\n if (response.status <= 300 && jsonResult.success) {\n yield put(actions.completeAssigningDriverUnits(units));\n units[0].driverName && units[0].driverName !== ''\n ? alerts.showSuccessAssignedMessage({\n object: appIntl().formatMessage({\n id: units.length > 1 ? 'drivers.drivers' : 'drivers.driver'\n }),\n name: units.length > 1 ? '' : units[0].driverName,\n plural: units.length > 1\n })\n : alerts.showSuccessUnassignedMessage({\n object: appIntl().formatMessage({\n id: 'drivers.driver'\n })\n });\n\n /* store.dispatch(actions.startFetchingUnits()); */\n store.dispatch(actions.startFetchingUnitsLiveStatus());\n } else {\n const error = {\n errorMessage: jsonResult.message,\n errorNumber: jsonResult.number\n };\n // alerts.showErrorAlertFailChanges({ error });\n }\n }\n } catch (err) {\n const error = {\n errorMessage: err.toString(),\n errorNumber: -1\n };\n\n // alerts.showErrorAlertFailChanges({ error });\n }\n}\n\nexport function* watchAssignDriverUnitsStarted() {\n yield takeEvery(types.UNITS_ASSIGN_DRIVER_STARTED, assignDriver);\n}\n\n/* -------------------------------------------------------------------------- */\n/* START UNIT DOWNTIME */\n/* -------------------------------------------------------------------------- */\nfunction* startUnitDowntime(action) {\n const { unitId, reasonId } = action.payload;\n try {\n //const { unit } = yield select((state) => selectors.getUnit(state.units, unitId));\n\n const isAuth = yield select(authSelectors.isAuthenticated);\n\n if (isAuth) {\n const token = yield select(authSelectors.getAuthToken);\n\n const response = yield call(fetch, `${API_BASE_URL}/unit/startDowntime`, {\n method: 'POST',\n body: JSON.stringify({ unitId, reasonId }),\n headers: {\n 'Content-Type': 'application/json',\n Authorization: `Bearer ${token}`\n }\n });\n const jsonResult = yield response.json();\n if (response.status <= 300 && jsonResult.success) {\n const editedUnit = camelcaseKeys(jsonResult.data);\n yield put(\n actions.completeStartDowntimeUnit(\n unitId,\n editedUnit.reasonId,\n editedUnit.reasonDescription\n )\n );\n alerts.showSuccessMessage({\n success: appIntl().formatMessage({ id: 'units.startDowntimeSuccess' })\n });\n } else {\n const error = {\n errorMessage: jsonResult.message,\n errorNumber: jsonResult.number\n };\n alerts.showErrorAlertWarning({\n error: { errorMessage: appIntl().formatMessage({ id: 'units.startDowntimeFailure' }) }\n });\n yield put(actions.failStartDowntimeUnit(error));\n }\n }\n } catch (err) {\n const error = {\n errorMessage: err.toString(),\n errorNumber: -1\n };\n\n alerts.showErrorAlertWarning({\n error: { errorMessage: appIntl().formatMessage({ id: 'units.startDowntimeFailure' }) }\n });\n yield put(actions.failStartDowntimeUnit(error));\n }\n}\n\nexport function* watchStartUnitDowntimeStarted() {\n yield takeEvery(types.UNIT_START_DOWNTIME_STARTED, startUnitDowntime);\n}\n\n/* -------------------------------------------------------------------------- */\n/* END UNIT DOWNTIME */\n/* -------------------------------------------------------------------------- */\nfunction* endUnitDowntime(action) {\n const { unitId } = action.payload;\n try {\n //const { unit } = yield select((state) => selectors.getUnit(state.units, unitId));\n\n const isAuth = yield select(authSelectors.isAuthenticated);\n\n if (isAuth) {\n const token = yield select(authSelectors.getAuthToken);\n\n const response = yield call(fetch, `${API_BASE_URL}/unit/endDowntime`, {\n method: 'POST',\n body: JSON.stringify({ unitId }),\n headers: {\n 'Content-Type': 'application/json',\n Authorization: `Bearer ${token}`\n }\n });\n const jsonResult = yield response.json();\n if (response.status <= 300 && jsonResult.success) {\n const editedUnit = camelcaseKeys(jsonResult.data);\n yield put(\n actions.completeEndDowntimeUnit(unitId, editedUnit.mainStateId, editedUnit.mainStateDate)\n );\n alerts.showSuccessMessage({\n success: appIntl().formatMessage({ id: 'units.endDowntimeSuccess' })\n });\n } else {\n const error = {\n errorMessage: jsonResult.message,\n errorNumber: jsonResult.number\n };\n alerts.showErrorAlertWarning({\n error: { errorMessage: appIntl().formatMessage({ id: 'units.endDowntimeFailure' }) }\n });\n yield put(actions.failEndDowntimeUnit(error));\n }\n }\n } catch (err) {\n const error = {\n errorMessage: err.toString(),\n errorNumber: -1\n };\n\n alerts.showErrorAlertWarning({\n error: { errorMessage: appIntl().formatMessage({ id: 'units.endDowntimeFailure' }) }\n });\n yield put(actions.failEndDowntimeUnit(error));\n }\n}\n\nexport function* watchEndUnitDowntimeStarted() {\n yield takeEvery(types.UNIT_END_DOWNTIME_STARTED, endUnitDowntime);\n}\n\n/* -------------------------------------------------------------------------- */\n/* CREATE SHARED LINK */\n/* -------------------------------------------------------------------------- */\nfunction* createSharedLink(action) {\n const { unitId, unitName, emails, ttl } = action.payload;\n try {\n const isAuth = yield select(authSelectors.isAuthenticated);\n if (isAuth) {\n const token = yield select(authSelectors.getAuthToken);\n const response = yield call(fetch, `${API_BASE_URL}/unit/shareUnitLocationLink`, {\n method: 'POST',\n body: JSON.stringify({ unitId, unitName, emails, ttl }),\n headers: {\n 'Content-Type': 'application/json',\n Authorization: `Bearer ${token}`\n }\n });\n const jsonResult = yield response.json();\n if (response.status <= 300 && jsonResult.success) {\n const sharedLink = jsonResult.data;\n yield put(actions.completeCreatingShareLink(sharedLink));\n alerts.showSuccessMessage({\n success: appIntl().formatMessage({ id: 'common.sharedLinkCreatedSuccess' })\n });\n } else {\n const error = {\n errorMessage: jsonResult.message,\n errorNumber: jsonResult.number\n };\n alerts.showErrorAlertWarning({\n error: {\n errorMessage: appIntl().formatMessage({ id: 'common.sharedLinkCreatingFailure' })\n }\n });\n }\n }\n } catch (err) {\n const error = {\n errorMessage: err.toString(),\n errorNumber: -1\n };\n }\n}\n\nexport function* watchCreateSharedLinkUnitStarted() {\n yield takeEvery(types.UNIT_CREATE_SHARE_LINK_STARTED, createSharedLink);\n}\n\n/* -------------------------------------------------------------------------- */\n/* UPDATE DEVICE */\n/* -------------------------------------------------------------------------- */\nfunction* updateDevice(action) {\n const requestData = action.payload;\n const oldUnitId = requestData.unitId;\n const additionalOnSuccess = requestData.additionalOnSuccess;\n updateDeviceService(requestData, {\n successAction(response) {\n const [data] = camelize(response?.data);\n store.dispatch(actions.completeUpdateDevice(data));\n if (typeof additionalOnSuccess === 'function') additionalOnSuccess();\n },\n errorAction(error) {\n store.dispatch(actions.failUpdateDevice(oldUnitId, error.toString()));\n }\n });\n}\n\nexport function* watchUpdateDevice() {\n yield takeEvery(types.UNIT_UPDATE_DEVICE_STARTED, updateDevice);\n}\n\n/* -------------------------------------------------------------------------- */\n/* UPDATE SIM */\n/* -------------------------------------------------------------------------- */\nfunction* updateSim(action) {\n const requestData = action.payload;\n const oldUnitId = requestData.unitId;\n const additionalOnSuccess = requestData?.additionalOnSuccess;\n\n updateSimCardService(requestData, {\n successAction(response) {\n const [data] = camelize(response?.data);\n store.dispatch(actions.completeUpdateSim(data));\n if (typeof additionalOnSuccess === 'function') additionalOnSuccess();\n },\n errorAction(error) {\n store.dispatch(actions.failUpdateSim(oldUnitId, error?.toString() ?? ''));\n }\n });\n}\n\nexport function* watchUpdateSim() {\n yield takeEvery(types.UNIT_UPDATE_SIM_STARTED, updateSim);\n}\n","/* -------------------------------------------------------------------------- */\n/* Schema Schedules */\n/* -------------------------------------------------------------------------- */\n\nimport { schema } from 'normalizr';\n\nexport const schedule = new schema.Entity('schedules', {}, { idAttribute: 'scheduleId' });\nexport const schedules = new schema.Array(schedule);\n","import { call, takeEvery, put, select } from 'redux-saga/effects';\n\nimport { normalize } from 'normalizr';\nimport API_BASE_URL from '../../../../redux/sagas/settings/apibaseurl';\nimport * as actions from '../actions';\nimport * as types from '../types';\nimport * as selectors from '../reducers';\nimport * as schemas from '../schemas';\nimport * as authSelectors from '../../../../redux/reducers/auth';\nimport * as entitySelectors from '../../Entities/reducers';\nimport * as scheduleSelectors from '../reducers';\nimport camelcaseKeys from 'camelcase-keys';\nimport * as alerts from '../../../../redux/utils/alerts';\nimport { useIntl } from 'react-intl';\nimport * as utility from '../../../../utility/Utils';\nimport { appIntl } from '../../../../utility/context/IntlGlobalProvider';\nimport { addSchedulesDescription } from '../utils';\n\n/* -------------------------------------------------------------------------- */\n/* FETCH LIST */\n/* -------------------------------------------------------------------------- */\nfunction* fetchSchedulesList(action) {\n try {\n const isAuth = yield select(authSelectors.isAuthenticated);\n if (isAuth) {\n const token = yield select(authSelectors.getAuthToken);\n const response = yield call(fetch, `${API_BASE_URL}/schedule/get`, {\n method: 'POST',\n body: JSON.stringify({}),\n headers: {\n 'Content-Type': 'application/json',\n Authorization: `Bearer ${token}`\n }\n });\n const jsonResult = yield response.json();\n if (response.status <= 300 && jsonResult.success) {\n const resultData = jsonResult.data.map((result) => camelcaseKeys(result));\n const {\n entities: { schedules },\n result //order\n } = normalize(resultData, schemas.schedules); //normalize data to byId and order\n yield put(actions.completeFetchingSchedules(schedules, result));\n } else {\n const error = {\n errorMessage: jsonResult.message,\n errorNumber: jsonResult.number\n };\n // alerts.showErrorAlertFailChanges({ error });\n yield put(actions.failFetchingSchedules(error));\n }\n }\n } catch (err) {\n const error = {\n errorMessage: err.toString(),\n errorNumber: -1\n };\n // alerts.showErrorAlertFailChanges({ error });\n yield put(actions.failFetchingSchedules(error));\n }\n}\n\nexport function* watchFetchSchedulesList() {\n yield takeEvery(types.SCHEDULES_FETCH_STARTED, fetchSchedulesList);\n}\n/* -------------------------------------------------------------------------- */\n/* PARTIAL FETCH LIST */\n/* -------------------------------------------------------------------------- */\nfunction* partialFetchSchedulesList(action) {\n try {\n const entityTypeId = action.payload;\n const date = yield select(entitySelectors.getUserUpdateByEntityDate, entityTypeId);\n const isAuth = yield select(authSelectors.isAuthenticated);\n if (isAuth) {\n const token = yield select(authSelectors.getAuthToken);\n const response = yield call(fetch, `${API_BASE_URL}/schedule/get`, {\n method: 'POST',\n body: JSON.stringify({ userFetchDate: date }),\n headers: {\n 'Content-Type': 'application/json',\n Authorization: `Bearer ${token}`\n }\n });\n const jsonResult = yield response.json();\n if (response.status <= 300 && jsonResult.success) {\n const resultData = jsonResult.data.map((result) => camelcaseKeys(result));\n const {\n entities: { schedules },\n result //order\n } = normalize(resultData, schemas.schedules); //normalize data to byId and order\n yield put(actions.completePartialFetchingSchedules(schedules, result));\n } else {\n const error = {\n errorMessage: jsonResult.message,\n errorNumber: jsonResult.number\n };\n // alerts.showErrorAlertFailChanges({ error });\n yield put(actions.failPartialFetchingSchedules(error));\n }\n }\n } catch (err) {\n const error = {\n errorMessage: err.toString(),\n errorNumber: -1\n };\n // alerts.showErrorAlertFailChanges({ error });\n yield put(actions.failPartialFetchingSchedules(error));\n }\n}\n\nexport function* watchPartialFetchSchedulesList() {\n yield takeEvery(types.SCHEDULES_PARTIAL_FETCH_STARTED, partialFetchSchedulesList);\n}\n/* -------------------------------------------------------------------------- */\n/* ADD */\n/* -------------------------------------------------------------------------- */\nfunction* addSchedule(action) {\n const schedule = action.payload;\n try {\n const isAuth = yield select(authSelectors.isAuthenticated);\n\n if (isAuth) {\n const token = yield select(authSelectors.getAuthToken);\n\n const response = yield call(fetch, `${API_BASE_URL}/schedule/saveTrigger`, {\n method: 'POST',\n body: JSON.stringify({ ...schedule, scheduleId: null }),\n headers: {\n 'Content-Type': 'application/json',\n Authorization: `Bearer ${token}`\n }\n });\n const jsonResult = yield response.json();\n if (response.status <= 300 && jsonResult.success) {\n const addedSchedule = camelcaseKeys(jsonResult.data);\n yield put(actions.completeAddingSchedule(schedule.scheduleId, addedSchedule));\n\n alerts.showSuccessCreatedMessage({\n object: appIntl().formatMessage({\n id: 'schedules.schedule'\n }),\n name: schedule.scheduleName\n });\n } else {\n const error = {\n errorMessage: jsonResult.message,\n errorNumber: jsonResult.number\n };\n // alerts.showErrorAlertFailChanges({ error });\n yield put(actions.failAddingSchedule(schedule.scheduleId, error));\n }\n }\n } catch (err) {\n const error = {\n errorMessage: err.toString(),\n errorNumber: -1\n };\n // alerts.showErrorAlertFailChanges({ error });\n yield put(actions.failAddingSchedule(schedule.scheduleId, error));\n }\n}\n\nexport function* watchAddSchedulesStarted() {\n yield takeEvery(types.SCHEDULE_ADD_STARTED, addSchedule);\n}\n\nexport function* completeAddingSchedule({ payload }) {\n const { oldId, schedule } = payload;\n yield put(actions.startFetchingSchedules());\n}\n\nexport function* watchAddSchedulesCompleted() {\n yield takeEvery(types.SCHEDULE_ADD_COMPLETED, addSchedule);\n}\n\n/* -------------------------------------------------------------------------- */\n/* EDIT */\n/* -------------------------------------------------------------------------- */\nfunction* editSchedule(action) {\n const schedule = action.payload;\n try {\n const isAuth = yield select(authSelectors.isAuthenticated);\n\n if (isAuth) {\n const token = yield select(authSelectors.getAuthToken);\n\n const response = yield call(fetch, `${API_BASE_URL}/schedule/saveTrigger`, {\n method: 'POST',\n body: JSON.stringify(schedule),\n headers: {\n 'Content-Type': 'application/json',\n Authorization: `Bearer ${token}`\n }\n });\n const jsonResult = yield response.json();\n if (response.status <= 300 && jsonResult.success) {\n const editedSchedule = camelcaseKeys(jsonResult.data);\n yield put(actions.completeEditingSchedule(editedSchedule));\n alerts.showSuccessEditedMessage({\n object: appIntl().formatMessage({\n id: 'schedules.schedule'\n }),\n name: editedSchedule.scheduleName\n });\n yield put(actions.startFetchingSchedules());\n } else {\n const error = {\n errorMessage: jsonResult.message,\n errorNumber: jsonResult.number\n };\n const { oldSchedule } = yield select((state) =>\n selectors.getSchedule(state.schedules, schedule.scheduleId)\n );\n yield put(actions.failEditingSchedule(oldSchedule, error));\n // alerts.showErrorAlertFailChanges({ error });\n }\n }\n } catch (err) {\n const error = {\n errorMessage: err.toString(),\n errorNumber: -1\n };\n\n const { oldSchedule } = yield select((state) =>\n selectors.getSchedule(state.schedules, schedule.scheduleId)\n );\n yield put(actions.failEditingSchedule(oldSchedule, error));\n // alerts.showErrorAlertFailChanges({ error });\n }\n}\n\nexport function* watchEditSchedulesStarted() {\n yield takeEvery(types.SCHEDULE_EDIT_STARTED, editSchedule);\n}\n\n// added in order to resolve problem of not refreshing the schedule list after editing a schedule\nfunction* completeEditSchedule(action) {\n const schedule = action.payload;\n yield put(actions.startFetchingSchedules());\n}\n\nexport function* watchCompleteEditSchedule() {\n yield takeEvery(types.SCHEDULE_EDIT_COMPLETED, completeEditSchedule);\n}\n\n/* -------------------------------------------------------------------------- */\n/* ADD SHIFT */\n/* -------------------------------------------------------------------------- */\nfunction* addShift(action) {\n const schedule = action.payload;\n try {\n const isAuth = yield select(authSelectors.isAuthenticated);\n\n if (isAuth) {\n const token = yield select(authSelectors.getAuthToken);\n\n const response = yield call(fetch, `${API_BASE_URL}/schedule/saveShift`, {\n method: 'POST',\n body: JSON.stringify({ ...schedule, scheduleId: null }),\n headers: {\n 'Content-Type': 'application/json',\n Authorization: `Bearer ${token}`\n }\n });\n const jsonResult = yield response.json();\n if (response.status <= 300 && jsonResult.success) {\n const addedSchedule = camelcaseKeys(jsonResult.data);\n yield put(actions.completeAddingSchedule(schedule.scheduleId, addedSchedule));\n\n alerts.showSuccessCreatedMessage({\n object: appIntl().formatMessage({\n id: 'schedules.schedule'\n }),\n name: schedule.scheduleName\n });\n } else {\n const error = {\n errorMessage: jsonResult.message,\n errorNumber: jsonResult.number\n };\n // alerts.showErrorAlertFailChanges({ error });\n yield put(actions.failAddingSchedule(schedule.scheduleId, error));\n }\n }\n } catch (err) {\n const error = {\n errorMessage: err.toString(),\n errorNumber: -1\n };\n // alerts.showErrorAlertFailChanges({ error });\n yield put(actions.failAddingSchedule(schedule.scheduleId, error));\n }\n}\n\nexport function* watchAddShiftStarted() {\n yield takeEvery(types.SCHEDULE_SHIFT_ADD_STARTED, addShift);\n}\n\n/* -------------------------------------------------------------------------- */\n/* EDIT SHIFT */\n/* -------------------------------------------------------------------------- */\nfunction* editScheduleShift(action) {\n const schedule = action.payload;\n try {\n const isAuth = yield select(authSelectors.isAuthenticated);\n if (isAuth) {\n const token = yield select(authSelectors.getAuthToken);\n const response = yield call(fetch, `${API_BASE_URL}/schedule/saveShift`, {\n method: 'POST',\n body: JSON.stringify(schedule),\n headers: {\n 'Content-Type': 'application/json',\n Authorization: `Bearer ${token}`\n }\n });\n const jsonResult = yield response.json();\n if (response.status <= 300 && jsonResult.success) {\n const editedSchedule = camelcaseKeys(jsonResult.data);\n yield put(actions.completeEditingShift(editedSchedule));\n alerts.showSuccessEditedMessage({\n object: appIntl().formatMessage({\n id: 'schedules.schedule'\n }),\n name: editedSchedule.scheduleName\n });\n } else {\n const error = {\n errorMessage: jsonResult.message,\n errorNumber: jsonResult.number\n };\n const { oldSchedule } = yield select((state) =>\n selectors.getSchedule(state.schedules, schedule.scheduleId)\n );\n yield put(actions.failEditingShift(oldSchedule, error));\n // alerts.showErrorAlertFailChanges({ error });\n }\n }\n } catch (err) {\n const error = {\n errorMessage: err.toString(),\n errorNumber: -1\n };\n const { oldSchedule } = yield select((state) =>\n selectors.getSchedule(state.schedules, schedule.scheduleId)\n );\n yield put(actions.failEditingShift(oldSchedule, error));\n // alerts.showErrorAlertFailChanges({ error });\n }\n}\n\nexport function* watchEditSchedulesShiftStarted() {\n yield takeEvery(types.SCHEDULE_SHIFT_EDIT_STARTED, editScheduleShift);\n}\n\n/* -------------------------------------------------------------------------- */\n/* REMOVE */\n/* -------------------------------------------------------------------------- */\nfunction* removeSchedule(action) {\n const { scheduleId } = action.payload;\n try {\n const isAuth = yield select(authSelectors.isAuthenticated);\n if (isAuth) {\n const token = yield select(authSelectors.getAuthToken);\n\n const response = yield call(fetch, `${API_BASE_URL}/schedule/delete`, {\n method: 'POST',\n body: JSON.stringify({ scheduleId }),\n headers: {\n 'Content-Type': 'application/json',\n Authorization: `Bearer ${token}`\n }\n });\n const jsonResult = yield response.json();\n if (response.status <= 300 && jsonResult.success) {\n const scheduleDeleted = yield select(scheduleSelectors.getSchedule, scheduleId);\n yield put(actions.completeRemovingSchedule(scheduleId));\n alerts.showSuccessDeletedMessage({\n object: appIntl().formatMessage({\n id: 'schedules.schedule'\n }),\n name: scheduleDeleted?.scheduleName\n });\n } else {\n const error = {\n errorMessage: appIntl().formatMessage({\n id: 'schedules.scheduleDeleteMessageError'\n }),\n errorNumber: jsonResult.number\n };\n // alerts.showErrorAlertFailChanges({ error });\n yield put(actions.failRemovingSchedule(scheduleId, error));\n }\n }\n } catch (err) {\n const error = {\n errorMessage: appIntl().formatMessage({\n id: 'schedules.scheduleDeleteMessageError'\n }),\n errorNumber: -1\n };\n // alerts.showErrorAlertFailChanges({ error });\n yield put(actions.failRemovingSchedule(scheduleId, error));\n }\n}\n\nexport function* watchRemoveScheduleStarted() {\n yield takeEvery(types.SCHEDULE_REMOVE_STARTED, removeSchedule);\n}\n","/* -------------------------------------------------------------------------- */\n/* Schema bookmarks */\n/* -------------------------------------------------------------------------- */\n\nimport { schema } from \"normalizr\";\n\nexport const bookmark = new schema.Entity(\n \"bookmarks\",\n {},\n { idAttribute: \"id\" }\n);\nexport const bookmarks = new schema.Array(bookmark);\n","/* eslint-disable semi */\n/* -------------------------------------------------------------------------- */\n/* Saga Auth */\n/* -------------------------------------------------------------------------- */\n\nimport camelcaseKeys from 'camelcase-keys';\nimport jwtDecode from 'jwt-decode';\nimport { normalize } from 'normalizr';\nimport { call, delay, put, select, takeEvery } from 'redux-saga/effects';\nimport sidebarOptions, * as sidebar from '../../../navigation/vertical';\nimport outsideSidebarOptions, * as outsideSidebar from '../../../navigation/outside-sidebar';\nimport * as actions from '../../actions/auth';\nimport * as navbarActions from '../../actions/navbar';\nimport * as selectors from '../../reducers/auth';\nimport * as navbarSelectors from '../../reducers/navbar';\nimport * as schemas from '../../schemas/bookmarks';\nimport * as types from '../../types/auth';\nimport * as navbarTypes from '../../types/navbar';\nimport * as alerts from '../../utils/alerts';\nimport API_BASE_URL from '../settings/apibaseurl';\nimport TOKEN_LIFE_TIME from '../settings/tokenLifeTime';\nimport { appIntl } from '../../../utility/context/IntlGlobalProvider';\nimport { getTokenRefreshFailCount } from '../../reducers/auth';\n\nfunction* login(action) {\n try {\n let timerInterval;\n // alerts.showLoading();\n const response = yield call(fetch, `${API_BASE_URL}/account/login`, {\n method: 'POST',\n body: JSON.stringify(action.payload),\n headers: {\n 'Content-Type': 'application/json'\n }\n });\n // alerts.closeLoading();\n if (response.status <= 300) {\n const { token } = yield response.json();\n //Se guarda el persisted storage////////\n yield localStorage.setItem('auth', token);\n let userData = camelcaseKeys(jwtDecode(token));\n yield localStorage.setItem('userData', JSON.stringify(userData));\n\n // alerts.showSuccessMessage({\n // success: `Bienvenido ${userData.username}`,\n // timer: 2000,\n // });\n\n // yield put(reset(\"login\"));\n ////////////////////////////////////////\n yield put(actions.completeLogin(token));\n // Obtener informacion adicional del usuario\n // yield put(actions.authenticationUserInformationStarted());\n } else {\n yield put(\n actions.failLogin(\n 'El nombre de usuario y contraseƱa introducidos no coinciden con nuestros registros. RevĆ­salos e intĆ©ntalo de nuevo.'\n )\n );\n\n alerts.showErrorAlertFailChanges({\n error: {\n errorMessage:\n 'El nombre de usuario y contraseƱa introducidos no coinciden con nuestros registros. RevĆ­salos e intĆ©ntalo de nuevo.'\n }\n });\n }\n } catch (error) {\n yield put(actions.failLogin('FallĆ³ la autentitaciĆ³n.'));\n alerts.showErrorAlertFailChanges({\n error: {\n errorMessage:\n 'El nombre de usuario y contraseƱa introducidos no coinciden con nuestros registros. RevĆ­salos e intĆ©ntalo de nuevo.'\n }\n });\n }\n}\n\nexport function* watchLoginStarted() {\n yield takeEvery(types.AUTHENTICATION_STARTED, login);\n}\n\nfunction* userInformationRequest(action) {\n try {\n const isAuth = yield select(selectors.isAuthenticated);\n const userId = yield select(selectors.getAuthUserID);\n\n if (isAuth) {\n const token = yield select(selectors.getAuthToken);\n\n const responseSuperAdmin = yield call(fetch, `${API_BASE_URL}/superAdmins/${userId}/`, {\n method: 'GET',\n headers: {\n 'Content-Type': 'application/json',\n Authorization: `JWT ${token}`\n }\n });\n\n if (responseSuperAdmin.status <= 300) {\n const jsonResultUser = yield responseSuperAdmin.json();\n yield put(actions.authenticationUserInformationCompleted(jsonResultUser));\n } else {\n const responseRestaurantAdmin = yield call(\n fetch,\n `${API_BASE_URL}/restaurantAdmins/${userId}/`,\n {\n method: 'GET',\n headers: {\n 'Content-Type': 'application/json',\n Authorization: `JWT ${token}`\n }\n }\n );\n\n if (responseRestaurantAdmin.status <= 300) {\n const jsonResultUser = yield responseRestaurantAdmin.json();\n yield put(actions.authenticationUserInformationCompleted(jsonResultUser));\n } else {\n yield put(actions.logout());\n }\n }\n }\n } catch (error) {\n yield put(actions.logout());\n yield put(actions.failRefreshToken('FallĆ³ la conexiĆ³n'));\n }\n}\n\nexport function* watchUserInformationRequest() {\n yield takeEvery(types.AUTHENTICATION_USER_INFORMATION_STARTED, userInformationRequest);\n}\n\n/* -------------------------------------------------------------------------- */\n/* REFRESH TOKEN */\n/* -------------------------------------------------------------------------- */\nfunction* refreshToken(action) {\n const tokenRefreshFailCount = yield select(getTokenRefreshFailCount);\n try {\n const isAuth = yield select((state) => state.auth.token != null);\n const token = yield select((state) => state.auth.token);\n\n const expiration = yield select((state) => state.auth.user.exp);\n const now = parseInt(new Date().getTime() / 1000);\n\n if (expiration - now < TOKEN_LIFE_TIME / 2) {\n const response = yield call(fetch, `${API_BASE_URL}/account/refresh-token`, {\n method: 'POST',\n body: JSON.stringify({ token }),\n headers: {\n 'Content-Type': 'application/json',\n Authorization: `Bearer ${token}`\n }\n });\n if (response.status === 200) {\n const { token } = yield response.json();\n yield put(actions.completeRefreshToken(token));\n //Se guarda el persisted storage////////\n yield localStorage.setItem('auth', token);\n yield localStorage.setItem('userData', JSON.stringify(camelcaseKeys(jwtDecode(token))));\n } else {\n if (tokenRefreshFailCount && tokenRefreshFailCount >= 2) yield put(actions.logout());\n const { non_field_errors } = yield response.json();\n yield put(actions.failRefreshToken({ ...non_field_errors[0], tokenRefreshFailCount }));\n yield delay(200);\n }\n }\n } catch (error) {\n if (tokenRefreshFailCount && tokenRefreshFailCount >= 2) yield put(actions.logout());\n\n yield put(actions.failRefreshToken('FallĆ³ la conexiĆ³n'));\n }\n}\n\nexport function* watchRefreshTokenStarted() {\n yield takeEvery(types.TOKEN_REFRESH_STARTED, refreshToken);\n}\n\n/* -------------------------------------------------------------------------- */\n/* FORCE REFRESH TOKEN WHEN PROFILE UPDATED */\n/* -------------------------------------------------------------------------- */\n\n/* -------------------------------------------------------------------------- */\n/* REFRESH TOKEN */\n/* -------------------------------------------------------------------------- */\nfunction* forceRefreshToken(action) {\n const token = yield select((state) => state.auth.token);\n\n try {\n const response = yield call(fetch, `${API_BASE_URL}/account/refresh-token`, {\n method: 'POST',\n body: JSON.stringify({ token }),\n headers: {\n 'Content-Type': 'application/json',\n Authorization: `Bearer ${token}`\n }\n });\n if (response.status === 200) {\n const { token } = yield response.json();\n yield put(actions.completeRefreshToken(token));\n //Se guarda el persisted storage////////\n yield localStorage.setItem('auth', token);\n yield localStorage.setItem('userData', JSON.stringify(camelcaseKeys(jwtDecode(token))));\n } else {\n // yield put(actions.logout());\n // const { non_field_errors } = yield response.json();\n // yield put(actions.failRefreshToken(non_field_errors[0]));\n // yield delay(200);\n }\n } catch (error) {\n // yield put(actions.logout());\n // yield put(actions.failRefreshToken('FallĆ³ la conexiĆ³n'));\n }\n}\n\nexport function* watchForceRefreshToken() {\n yield takeEvery(\n [\n types.PROFILE_UPDATE_GENERAL_INFORMATION_COMPLETED,\n types.PROFILE_UPDATE_MAP_OPTIONS_COMPLETED,\n types.PROFILE_UPDATE_PASSWORD_COMPLETED,\n types.PROFILE_UPDATE_PICTURE_COMPLETED,\n types.PROFILE_UPDATE_MAP_SETTINGS_CONFIGURATION_COMPLETED,\n types.PROFILE_UPDATE_HOME_SCREEN_COMPLETED,\n types.TOKEN_REFRESH_FORCE_STARTED\n ],\n forceRefreshToken\n );\n}\n/* -------------------------------------------------------------------------- */\n/* FETCH BOOKMARKS */\n/* -------------------------------------------------------------------------- */\nfunction* fetchUserBookmarks(action) {\n try {\n const isAuth = yield select(selectors.isAuthenticated);\n if (isAuth) {\n const token = yield select(selectors.getAuthToken);\n const response = yield call(fetch, `${API_BASE_URL}/account/userSettings`, {\n method: 'GET',\n headers: {\n 'Content-Type': 'application/json',\n Authorization: `Bearer ${token}`\n }\n });\n const jsonResult = yield response.json();\n if (response.status <= 300 && jsonResult.success) {\n const bookmarkSetting = jsonResult.data.filter(\n (setting) => camelcaseKeys(setting).settingId == 19\n );\n const bookmarkSettingValue =\n bookmarkSetting.length == 1 ? camelcaseKeys(bookmarkSetting[0]).settingValue : '';\n const bookmarkIds =\n (bookmarkSettingValue ?? '') != '' ? bookmarkSettingValue.split(',') : [];\n const optionsSuggestions = [\n ...sidebar.getOptions(sidebarOptions),\n ...sidebar.getOptions(outsideSidebarOptions)\n ];\n const {\n entities: {\n bookmarks //byId\n },\n result //order\n } = normalize(optionsSuggestions, schemas.bookmarks); //normalize data to byId and order\n let userBookmarks = bookmarkIds.map((id) => {\n bookmarks[id] = {\n ...bookmarks[id],\n isBookmarked: true\n };\n return {\n ...bookmarks[id]\n };\n });\n let newSuggestions = result.map((id) => bookmarks[id]);\n\n yield put(navbarActions.completeFetchingBookmarks(userBookmarks, newSuggestions));\n } else {\n const error = {\n errorMessage: jsonResult.message,\n errorNumber: jsonResult.number\n };\n // alerts.showErrorAlertFailChanges({ error });\n yield put(navbarActions.failFetchingBookmarks());\n }\n }\n } catch (err) {\n const error = {\n errorMessage: err.toString(),\n errorNumber: -1\n };\n // alerts.showErrorAlertFailChanges({ error });\n yield put(navbarActions.failFetchingBookmarks());\n }\n}\n\nexport function* watchFetchUserBookmarksStarted() {\n yield takeEvery(navbarTypes.GET_BOOKMARKS_FETCH_STARTED, fetchUserBookmarks);\n}\n\n/* -------------------------------------------------------------------------- */\n/* ADD USER BOOKMARK */\n/* -------------------------------------------------------------------------- */\nfunction* updateUserBookmarks(action) {\n // const id = action.payload;\n try {\n const isAuth = yield select(selectors.isAuthenticated);\n const userBookmarks = yield select(navbarSelectors.getUserBookmarks);\n if (isAuth) {\n const token = yield select(selectors.getAuthToken);\n const userBookmarksSettingsValue = userBookmarks.map((ub) => ub.id).toString();\n const response = yield call(fetch, `${API_BASE_URL}/account/saveUserSettings`, {\n method: 'POST',\n body: JSON.stringify({\n settingId: 19,\n settingValue: userBookmarksSettingsValue\n }),\n headers: {\n 'Content-Type': 'application/json',\n Authorization: `Bearer ${token}`\n }\n });\n const jsonResult = yield response.json();\n if (response.status <= 300 && jsonResult.success) {\n // const updateUserSettings = camelcaseKeys(jsonResult.data);\n yield put(navbarActions.updateBookmarkedCompleted());\n } else {\n const error = {\n errorMessage: jsonResult.message,\n errorNumber: jsonResult.number\n };\n // alerts.showErrorAlertFailChanges({ error });\n yield put(navbarActions.updateBookmarkedFailed());\n }\n }\n } catch (err) {\n const error = {\n errorMessage: err.toString(),\n errorNumber: -1\n };\n // alerts.showErrorAlertFailChanges({ error });\n yield put(navbarActions.updateBookmarkedFailed());\n }\n}\n\nexport function* watchUpdateUserBookmarkssStarted() {\n yield takeEvery(navbarTypes.UPDATE_BOOKMARKED_STARTED, updateUserBookmarks);\n}\n\n/* -------------------------------------------------------------------------- */\n/* UPDATE PROFILE GENERAL INFORMATION */\n/* -------------------------------------------------------------------------- */\nfunction* updateProfileGeneralInformation(action) {\n const values = action.payload;\n try {\n const isAuth = yield select(selectors.isAuthenticated);\n if (isAuth) {\n const token = yield select(selectors.getAuthToken);\n yield delay(2000);\n // alerts.showLoading();\n const response = yield call(fetch, `${API_BASE_URL}/profile/saveProfile`, {\n method: 'POST',\n body: JSON.stringify({\n ...values\n }),\n headers: {\n 'Content-Type': 'application/json',\n Authorization: `Bearer ${token}`\n }\n });\n // alerts.closeLoading();\n const jsonResult = yield response.json();\n if (response.status <= 300 && jsonResult.success) {\n alerts.showSuccessMessage({\n success: appIntl().formatMessage({\n id: 'profile.successMessage'\n }),\n timer: 4000\n });\n yield put(actions.completeUpdatingProfileGeneralInformation(values));\n } else {\n const error = {\n // errorMessage: jsonResult.message,\n errorMessage: appIntl().formatMessage({\n id: 'profile.errorMessage'\n }),\n errorNumber: jsonResult.number\n };\n // alerts.showErrorAlertFailChanges({ error });\n yield put(actions.failUpdatingProfileGeneralInformation(error));\n }\n }\n } catch (err) {\n const error = {\n // errorMessage: err.toString(),\n errorMessage: appIntl().formatMessage({\n id: 'profile.errorMessage'\n }),\n errorNumber: -1\n };\n // alerts.showErrorAlertFailChanges({ error });\n yield put(actions.failUpdatingProfileGeneralInformation(error));\n }\n}\n\nexport function* watchUpdateProfileGeneralInformationStarted() {\n yield takeEvery(\n types.PROFILE_UPDATE_GENERAL_INFORMATION_STARTED,\n updateProfileGeneralInformation\n );\n}\n\n/* -------------------------------------------------------------------------- */\n/* UPDATE PROFILE MAP SETTINGS CONFIG */\n/* -------------------------------------------------------------------------- */\nfunction* updateMapProfileSettings(action) {\n const values = action.payload;\n try {\n const isAuth = yield select(selectors.isAuthenticated);\n if (isAuth) {\n const token = yield select(selectors.getAuthToken);\n // alerts.showLoading();\n const response = yield call(fetch, `${API_BASE_URL}/account/saveUserSettingsMap`, {\n method: 'POST',\n body: JSON.stringify({\n ...values\n }),\n headers: {\n 'Content-Type': 'application/json',\n Authorization: `Bearer ${token}`\n }\n });\n\n const jsonResult = yield response.json();\n if (response.status <= 300 && jsonResult.success) {\n alerts.showSuccessMessage({\n success: appIntl().formatMessage({\n id: 'profile.mapSettingsConfiguration.successMessage'\n }),\n timer: 4000\n });\n yield put(actions.completeUpdatingMapSettingsConfiguration(values));\n } else {\n const error = {\n // errorMessage: jsonResult.message,\n errorMessage: appIntl().formatMessage({\n id: 'profile.mapSettingsConfiguration.errorMessage'\n }),\n errorNumber: jsonResult.number\n };\n // alerts.showErrorAlertFailChanges({ error });\n yield put(actions.failUpdatingMapSettingsConfiguration(error));\n }\n }\n } catch (err) {\n const error = {\n // errorMessage: err.toString(),\n errorMessage: appIntl().formatMessage({\n id: 'profile.mapSettingsConfiguration.errorMessage'\n }),\n errorNumber: -1\n };\n // alerts.showErrorAlertFailChanges({ error });\n yield put(actions.failUpdatingMapSettingsConfiguration(error));\n }\n}\n\nexport function* watchUpdateMapProfileSettingsStarted() {\n yield takeEvery(\n types.PROFILE_UPDATE_MAP_SETTINGS_CONFIGURATION_STARTED,\n updateMapProfileSettings\n );\n}\n\n/* -------------------------------------------------------------------------- */\n/* UPDATE PROFILE MAP OPTIONS */\n/* -------------------------------------------------------------------------- */\nfunction* updateProfileMapOptions(action) {\n const values = action.payload;\n try {\n const isAuth = yield select(selectors.isAuthenticated);\n if (isAuth) {\n const token = yield select(selectors.getAuthToken);\n // alerts.showLoading();\n const response = yield call(fetch, `${API_BASE_URL}/profile/saveMapOptions`, {\n method: 'POST',\n body: JSON.stringify({\n ...values\n }),\n headers: {\n 'Content-Type': 'application/json',\n Authorization: `Bearer ${token}`\n }\n });\n // alerts.closeLoading();\n const jsonResult = yield response.json();\n if (response.status <= 300 && jsonResult.success) {\n alerts.showSuccessMessage({\n success: appIntl().formatMessage({\n id: 'profile.mapOptions.successMessage'\n }),\n timer: 4000\n });\n yield put(actions.completeUpdatingProfileMapOptions(values));\n } else {\n const error = {\n // errorMessage: jsonResult.message,\n errorMessage: appIntl().formatMessage({\n id: 'profile.mapOptions.errorMessage'\n }),\n errorNumber: jsonResult.number\n };\n // alerts.showErrorAlertFailChanges({ error });\n yield put(actions.failUpdatingProfileMapOptions(error));\n }\n }\n } catch (err) {\n const error = {\n // errorMessage: err.toString(),\n errorMessage: appIntl().formatMessage({\n id: 'profile.mapOptions.errorMessage'\n }),\n errorNumber: -1\n };\n // alerts.showErrorAlertFailChanges({ error });\n yield put(actions.failUpdatingProfileMapOptions(error));\n }\n}\n\nexport function* watchUpdateProfileMapOptionsStarted() {\n yield takeEvery(types.PROFILE_UPDATE_MAP_OPTIONS_STARTED, updateProfileMapOptions);\n}\n\n/* -------------------------------------------------------------------------- */\n/* UPDATE PROFILE PASSWORD */\n/* -------------------------------------------------------------------------- */\nfunction* updateProfilePassword(action) {\n const values = action.payload;\n try {\n const isAuth = yield select(selectors.isAuthenticated);\n if (isAuth) {\n const token = yield select(selectors.getAuthToken);\n // alerts.showLoading();\n const response = yield call(fetch, `${API_BASE_URL}/profile/password`, {\n method: 'POST',\n body: JSON.stringify({\n ...values\n }),\n headers: {\n 'Content-Type': 'application/json',\n Authorization: `Bearer ${token}`\n }\n });\n // alerts.closeLoading();\n const jsonResult = yield response.json();\n if (response.status <= 300 && jsonResult.success) {\n alerts.showSuccessMessage({\n success: appIntl().formatMessage({\n id: 'profile.changePassword.successMessage'\n }),\n timer: 4000\n });\n yield put(actions.completeUpdatingProfilePassword(values));\n } else {\n const error = {\n // errorMessage: jsonResult.message,\n errorMessage: appIntl().formatMessage({\n id: 'profile.changePassword.errorMessage'\n }),\n errorNumber: jsonResult.number\n };\n // alerts.showErrorAlertFailChanges({ error });\n yield put(actions.failUpdatingProfilePassword(error));\n }\n }\n } catch (err) {\n const error = {\n // errorMessage: err.toString(),\n errorMessage: appIntl().formatMessage({\n id: 'profile.changePassword.errorMessageGeneral'\n }),\n errorNumber: -1\n };\n // alerts.showErrorAlertFailChanges({ error });\n yield put(actions.failUpdatingProfilePassword(error));\n }\n}\n\nexport function* watchUpdateProfilePasswordStarted() {\n yield takeEvery(types.PROFILE_UPDATE_PASSWORD_STARTED, updateProfilePassword);\n}\n\n/* -------------------------------------------------------------------------- */\n/* UPDATE HOME SCREEN */\n/* -------------------------------------------------------------------------- */\nfunction* updateHomeScreen(action) {\n const homeScreenId = action.payload;\n try {\n const isAuth = yield select(selectors.isAuthenticated);\n if (isAuth) {\n const token = yield select(selectors.getAuthToken);\n // alerts.showLoading();\n const response = yield call(fetch, `${API_BASE_URL}/profile/homeScreen`, {\n method: 'POST',\n body: JSON.stringify({\n homeScreenId\n }),\n headers: {\n 'Content-Type': 'application/json',\n Authorization: `Bearer ${token}`\n }\n });\n // alerts.closeLoading();\n const jsonResult = yield response.json();\n if (response.status <= 300 && jsonResult.success) {\n alerts.showSuccessMessage({\n success: appIntl().formatMessage({\n id: 'profile.changeHomeScreen.successMessage'\n }),\n timer: 4000\n });\n yield put(actions.completeUpdatingProfileHomeScreen(homeScreenId));\n } else {\n const error = {\n // errorMessage: jsonResult.message,\n errorMessage: appIntl().formatMessage({\n id: 'profile.changeHomeScreen.errorMessage'\n }),\n errorNumber: jsonResult.number\n };\n alerts.showErrorAlertFailChanges({ error });\n yield put(actions.failUpdatingProfileHomeScreen(error));\n }\n }\n } catch (err) {\n const error = {\n // errorMessage: err.toString(),\n errorMessage: appIntl().formatMessage({\n id: 'profile.changeHomeScreen.errorMessageGeneral'\n }),\n errorNumber: -1\n };\n alerts.showErrorAlertFailChanges({ error });\n yield put(actions.failUpdatingProfileHomeScreen(error));\n }\n}\n\nexport function* watchUpdateProfileHomeScreenStarted() {\n yield takeEvery(types.PROFILE_UPDATE_HOME_SCREEN_STARTED, updateHomeScreen);\n}\n\n/* -------------------------------------------------------------------------- */\n/* CHANGE PRODUCT */\n/* -------------------------------------------------------------------------- */\nfunction* changeProduct(action) {\n const serviceId = action.payload;\n try {\n const isAuth = yield select(selectors.isAuthenticated);\n if (isAuth) {\n const token = yield select(selectors.getAuthToken);\n // alerts.showLoading();\n /*const response = yield call(fetch, `${API_BASE_URL}/profile/service`, {\n method: 'POST',\n body: JSON.stringify({\n homeScreenId\n }),\n headers: {\n 'Content-Type': 'application/json',\n Authorization: `Bearer ${token}`\n }\n });*/\n // alerts.closeLoading();\n //const jsonResult = yield response.json();\n //if (response.status <= 300 && jsonResult.success) {\n alerts.showSuccessMessage({\n success: appIntl().formatMessage({\n id: 'profile.changeProduct.successMessage'\n }),\n timer: 4000\n });\n yield put(actions.completeChangingProduct(serviceId));\n /*} else {\n const error = {\n // errorMessage: jsonResult.message,\n errorMessage: appIntl().formatMessage({\n id: 'profile.changeActualService.errorMessage'\n }),\n errorNumber: jsonResult.number\n };\n alerts.showErrorAlertFailChanges({ error });\n yield put(actions.failUpdatingProfileActualService(error));\n }*/\n }\n } catch (err) {\n const error = {\n // errorMessage: err.toString(),\n errorMessage: appIntl().formatMessage({\n id: 'profile.changeProduct.errorMessageGeneral'\n }),\n errorNumber: -1\n };\n alerts.showErrorAlertFailChanges({ error });\n yield put(actions.failChangingProduct(error));\n }\n}\n\nexport function* watchChangeProductStarted() {\n yield takeEvery(types.PROFILE_CHANGE_PRODUCT_STARTED, changeProduct);\n}\n","/* -------------------------------------------------------------------------- */\n/* Schema Routes */\n/* -------------------------------------------------------------------------- */\n\nimport { schema } from 'normalizr';\n\nexport const route = new schema.Entity('routes', {}, { idAttribute: 'routeId' });\nexport const routes = new schema.Array(route);\n","/* -------------------------------------------------------------------------- */\n/* Schema Execution Route Checkpoints */\n/* -------------------------------------------------------------------------- */\n\nimport { schema } from 'normalizr';\n\nexport const routeCheckpoint = new schema.Entity(\n 'routeCheckpoints',\n {},\n { idAttribute: (value) => `${value.routeId}-${value.checkpointId}` }\n);\nexport const routeCheckpoints = new schema.Array(routeCheckpoint);\n","import { call, takeEvery, put, select } from 'redux-saga/effects';\n\nimport { normalize } from 'normalizr';\nimport API_BASE_URL from '../../../../../redux/sagas/settings/apibaseurl';\nimport * as actions from '../../actions/routes';\nimport * as types from '../../types/routes';\nimport * as selectors from '../../reducers/routes';\nimport * as schemas from '../../schemas/routes';\nimport * as schemasRouteCheckpoints from '../../schemas/routeCheckpoints';\nimport * as authSelectors from '../../../../../redux/reducers/auth';\nimport * as entitySelectors from '../../../Entities/reducers';\nimport camelcaseKeys from 'camelcase-keys';\nimport * as alerts from '../../../../../redux/utils/alerts';\n\nimport { appIntl } from '../../../../../utility/context/IntlGlobalProvider';\nimport {\n getRoutesListService,\n saveRouteService,\n deleteRouteService,\n deleteRoutesService\n} from '../../services/routes';\nimport { store } from 'redux/storeConfig/store';\n\n/* -------------------------------------------------------------------------- */\n/* FETCH LIST */\n/* -------------------------------------------------------------------------- */\nfunction* fetchRoutesList(action) {\n const { operatorId: filterOperatorId, organizationId: filterOrganizationId } = action.payload;\n const { operatorId, organizationId } = yield select(authSelectors.getAuthUserMembershipFilters, {\n filterOperatorId,\n filterOrganizationId\n });\n\n getRoutesListService(\n { operatorId, organizationId },\n {\n successAction: (response) => {\n const resultData = response.data.map((result) => camelcaseKeys(result));\n const {\n entities: { routes },\n result //order\n } = normalize(resultData, schemas.routes); //normalize data to byId and order\n store.dispatch(actions.completeFetchingRoutes(routes, result, operatorId, organizationId));\n },\n errorAction: (error) => {\n store.dispatch(actions.failFetchingRoutes(error));\n }\n }\n );\n}\n\nexport function* watchFetchRoutesList() {\n yield takeEvery(types.ROUTES_FETCH_STARTED, fetchRoutesList);\n}\n\n/* -------------------------------------------------------------------------- */\n/* PARTIAL FETCH LIST */\n/* -------------------------------------------------------------------------- */\nfunction* partialFetchRoutesList(action) {\n const {\n entityTypeId,\n operatorId: filterOperatorId,\n organizationId: filterOrganizationId\n } = action.payload;\n const date = yield select(entitySelectors.getUserUpdateByEntityDate, entityTypeId);\n const { operatorId, organizationId } = yield select(authSelectors.getAuthUserMembershipFilters, {\n filterOperatorId,\n filterOrganizationId\n });\n\n getRoutesListService(\n { userFetchDate: date, operatorId, organizationId },\n {\n successAction: (response) => {\n const resultData = response.data.map((result) => camelcaseKeys(result));\n const {\n entities: { routes },\n result //order\n } = normalize(resultData, schemas.routes); //normalize data to byId and order\n store.dispatch(\n actions.completePartialFetchingRoutes(routes, result, operatorId, organizationId)\n );\n },\n errorAction: (error) => {\n store.dispatch(actions.failPartialFetchingRoutes(error));\n }\n }\n );\n}\n\nexport function* watchPartialFetchRoutesList() {\n yield takeEvery(types.ROUTES_PARTIAL_FETCH_STARTED, partialFetchRoutesList);\n}\n/* -------------------------------------------------------------------------- */\n/* ADD */\n/* -------------------------------------------------------------------------- */\nfunction* addRoute(action) {\n const route = action.payload;\n\n saveRouteService(\n { ...route, route: { ...route.route, routeId: null } },\n {\n successAction: async (response) => {\n const addedRoute = camelcaseKeys(response.data.routeData);\n const addedCheckpoints = response.data.checkpointList\n .map((result) => camelcaseKeys(result))\n .map((chk) =>\n chk.segmentPath\n ? {\n ...chk,\n segmentPath: chk.segmentPath.split(';').map((path) => {\n const pathArray = path.split(',');\n if (pathArray.length === 5)\n return {\n routePathId: parseFloat(pathArray[0]),\n checkpointId: parseFloat(pathArray[1]),\n latitude: parseFloat(pathArray[2]),\n longitude: parseFloat(pathArray[3]),\n distance: parseFloat(pathArray[4])\n };\n })\n }\n : { ...chk, segmentPath: [] }\n );\n const routeGroupId = response.data.routeGroupId;\n const {\n entities: { routeCheckpoints },\n result //order\n } = normalize(addedCheckpoints, schemasRouteCheckpoints.routeCheckpoints); //normalize data to byId and order\n store.dispatch(\n actions.completeAddingRoute(route.route.routeId, {\n route: { ...addedRoute, routeGroupId },\n checkpoints: { entities: routeCheckpoints, order: result }\n })\n );\n },\n errorAction: async (error) => {\n store.dispatch(actions.failAddingRoute(route.route.routeId, error));\n }\n },\n true\n );\n}\n\nexport function* watchAddRoutesStarted() {\n yield takeEvery(types.ROUTE_ADD_STARTED, addRoute);\n}\n\n/* -------------------------------------------------------------------------- */\n/* EDIT */\n/* -------------------------------------------------------------------------- */\nfunction* editRoute(action) {\n const route = action.payload;\n const { oldRoute } = yield select(selectors.getRoute, route.route.routeId);\n\n saveRouteService(\n route,\n {\n successAction: async (response) => {\n const editedRoute = camelcaseKeys(response.data.routeData);\n const editedCheckpoints = response.data.checkpointList\n .map((result) => camelcaseKeys(result))\n .map((chk) =>\n chk.segmentPath\n ? {\n ...chk,\n segmentPath: chk.segmentPath.split(';').map((path) => {\n const pathArray = path.split(',');\n if (pathArray.length === 5)\n return {\n routePathId: parseFloat(pathArray[0]),\n checkpointId: parseFloat(pathArray[1]),\n latitude: parseFloat(pathArray[2]),\n longitude: parseFloat(pathArray[3]),\n distance: parseFloat(pathArray[4])\n };\n })\n }\n : { ...chk, segmentPath: [] }\n );\n const routeGroupId = response.data.routeGroupId;\n const {\n entities: { routeCheckpoints },\n result //order\n } = normalize(editedCheckpoints, schemasRouteCheckpoints.routeCheckpoints); //normalize data to byId and order\n store.dispatch(\n actions.completeEditingRoute({\n route: { ...editedRoute, routeGroupId },\n checkpoints: { entities: routeCheckpoints, order: result }\n })\n );\n },\n errorAction: async (error) => {\n store.dispatch(actions.failEditingRoute(oldRoute, error));\n }\n },\n false\n );\n}\n\nexport function* watchEditRoutesStarted() {\n yield takeEvery(types.ROUTE_EDIT_STARTED, editRoute);\n}\n\n/* -------------------------------------------------------------------------- */\n/* REMOVE */\n/* -------------------------------------------------------------------------- */\nfunction* removeRoute(action) {\n const { routeId } = action.payload;\n const routeDeleted = yield select(selectors.getRoute, routeId);\n\n deleteRouteService(\n { routeId, routeName: routeDeleted?.routeName },\n {\n successAction: async (response) => {\n store.dispatch(actions.completeRemovingRoute(routeId));\n },\n errorAction: async (error) => {\n store.dispatch(actions.failRemovingRoute(routeId, error));\n }\n }\n );\n}\n\nexport function* watchRemoveRouteStarted() {\n yield takeEvery(types.ROUTE_REMOVE_STARTED, removeRoute);\n}\n\n/* -------------------------------------------------------------------------- */\n/* REMOVE */\n/* -------------------------------------------------------------------------- */\nfunction* removeRoutes(action) {\n const { routeIds } = action.payload;\n\n deleteRoutesService(\n { routeIds },\n {\n successAction: async (response) => {\n store.dispatch(\n actions.completeRemovingRoutes(routeIds.split(',').map((routeId) => parseInt(routeId)))\n );\n },\n errorAction: async (error) => {\n store.dispatch(\n actions.failRemovingRoutes(\n routeIds.split(',').map((routeId) => parseInt(routeId)),\n error\n )\n );\n }\n }\n );\n}\n\nexport function* watchRemoveRoutesStarted() {\n yield takeEvery(types.ROUTES_REMOVE_STARTED, removeRoutes);\n}\n\n/* -------------------------------------------------------------------------- */\n/* Copy Route */\n/* -------------------------------------------------------------------------- */\nfunction* copyRoute(action) {\n const route = action.payload;\n try {\n const isAuth = yield select(authSelectors.isAuthenticated);\n\n if (isAuth) {\n const token = yield select(authSelectors.getAuthToken);\n\n const response = yield call(fetch, `${API_BASE_URL}/route/copyRoute`, {\n method: 'POST',\n body: JSON.stringify(route),\n headers: {\n 'Content-Type': 'application/json',\n Authorization: `Bearer ${token}`\n }\n });\n const jsonResult = yield response.json();\n if (response.status <= 300 && jsonResult.success) {\n yield put(\n actions.completeCopyRoute(\n route.routeId,\n jsonResult.data.newRouteId,\n route.newRouteName,\n route.organizationId,\n route.divisionId,\n route.subdivisionId\n )\n );\n\n alerts.showSuccessMessage({\n success: appIntl().formatMessage({\n id: 'routes.copySuccessful'\n })\n });\n } else {\n const error = {\n errorMessage: appIntl().formatMessage({\n id: 'routes.copyError'\n }),\n errorNumber: jsonResult.number\n };\n alerts.showErrorAlertFailChanges({ error });\n yield put(actions.failCopyRoute(error));\n }\n }\n } catch (err) {\n const error = {\n errorMessage: appIntl().formatMessage({\n id: 'routes.copyError'\n }),\n errorNumber: -1\n };\n alerts.showErrorAlertFailChanges({ error });\n yield put(actions.failCopyRoute(error));\n }\n}\n\nexport function* watchCopyRouteStarted() {\n yield takeEvery(types.ROUTE_COPY_STARTED, copyRoute);\n}\n","import { call, takeEvery, put, select } from 'redux-saga/effects';\n\nimport { normalize } from 'normalizr';\nimport API_BASE_URL from 'views/../redux/sagas/settings/apibaseurl.js';\nimport * as actions from '../actions';\nimport * as types from '../types';\nimport * as selectors from '../reducers';\nimport * as schemas from '../schemas';\nimport * as authSelectors from 'views/../redux/reducers/auth';\nimport camelcaseKeys from 'camelcase-keys';\nimport { appIntl } from 'views/../utility/context/IntlGlobalProvider';\nimport * as alerts from 'views/../redux/utils/alerts';\n\n/* -------------------------------------------------------------------------- */\n/* FETCH LIST */\n/* -------------------------------------------------------------------------- */\nfunction* fetchContactsList(action) {\n const { query, selected } = action.payload;\n try {\n const isAuth = yield select(authSelectors.isAuthenticated);\n if (isAuth) {\n const token = yield select(authSelectors.getAuthToken);\n const response = yield call(fetch, `${API_BASE_URL}/contact/getDropdown`, {\n method: 'POST',\n headers: {\n 'Content-Type': 'application/json',\n Authorization: `Bearer ${token}`\n },\n body: JSON.stringify({ selected: selected })\n });\n const jsonResult = yield response.json();\n if (response.status <= 300 && jsonResult.success) {\n const resultData = jsonResult.data.map((result) => camelcaseKeys(result));\n const {\n entities: { contacts },\n result //order\n } = normalize(resultData, schemas.contacts); //normalize data to byId and order\n yield put(actions.completeFetchingContacts(contacts, result));\n } else {\n const error = {\n errorMessage: jsonResult.message,\n errorNumber: jsonResult.number\n };\n // alerts.showErrorAlertFailChanges({ error });\n yield put(actions.failFetchingContacts(error));\n }\n }\n } catch (err) {\n const error: any = {\n errorMessage: err?.toString(),\n errorNumber: -1\n };\n // alerts.showErrorAlertFailChanges({ error });\n yield put(actions.failFetchingContacts(error));\n }\n}\n\nexport function* watchFetchContactsList() {\n yield takeEvery(types.CONTACTS_FETCH_STARTED, fetchContactsList);\n}\n\n/* -------------------------------------------------------------------------- */\n/* ADD */\n/* -------------------------------------------------------------------------- */\nfunction* addContact(action) {\n const contact = action.payload;\n try {\n const isAuth = yield select(authSelectors.isAuthenticated);\n\n if (isAuth) {\n const token = yield select(authSelectors.getAuthToken);\n\n const response = yield call(fetch, `${API_BASE_URL}/contact/save`, {\n method: 'POST',\n body: JSON.stringify({ ...contact, contactId: null }),\n headers: {\n 'Content-Type': 'application/json',\n Authorization: `Bearer ${token}`\n }\n });\n const jsonResult = yield response.json();\n if (response.status <= 300 && jsonResult.success) {\n const addedContact = camelcaseKeys(jsonResult.data);\n yield put(actions.completeAddingContact(contact.contactId, addedContact));\n\n alerts.showSuccessCreatedMessage({\n object: appIntl().formatMessage({\n id: 'contacts.contact'\n }),\n name: contact.contactName\n });\n } else {\n const error = {\n errorMessage: jsonResult.message,\n errorNumber: jsonResult.number\n };\n // alerts.showErrorAlertFailChanges({ error });\n yield put(actions.failAddingContact(contact.contactId, error));\n }\n }\n } catch (err) {\n const error = {\n errorMessage: err?.toString(),\n errorNumber: -1\n };\n // alerts.showErrorAlertFailChanges({ error });\n yield put(actions.failAddingContact(contact.contactId, error));\n }\n}\n\nexport function* watchAddContactsStarted() {\n yield takeEvery(types.CONTACT_ADD_STARTED, addContact);\n}\n\n/* -------------------------------------------------------------------------- */\n/* EDIT */\n/* -------------------------------------------------------------------------- */\nfunction* editContact(action) {\n const contact = action.payload;\n try {\n const isAuth = yield select(authSelectors.isAuthenticated);\n\n if (isAuth) {\n const token = yield select(authSelectors.getAuthToken);\n\n const response = yield call(fetch, `${API_BASE_URL}/contact/save`, {\n method: 'POST',\n body: JSON.stringify(contact),\n headers: {\n 'Content-Type': 'application/json',\n Authorization: `Bearer ${token}`\n }\n });\n const jsonResult = yield response.json();\n if (response.status <= 300 && jsonResult.success) {\n const editedContact = camelcaseKeys(jsonResult.data);\n yield put(actions.completeEditingContact(editedContact));\n alerts.showSuccessEditedMessage({\n object: appIntl().formatMessage({\n id: 'contacts.contact'\n }),\n name: contact.contactName\n });\n } else {\n const error = {\n errorMessage: jsonResult.message,\n errorNumber: jsonResult.number\n };\n const { oldContact } = yield select((state) =>\n selectors.getContact(state.contacts, contact.contactId)\n );\n yield put(actions.failEditingContact(oldContact, error));\n }\n }\n } catch (err) {\n const error = {\n errorMessage: err?.toString(),\n errorNumber: -1\n };\n\n const oldContact = yield select((state) => selectors.getContact(state, contact.contactId));\n yield put(actions.failEditingContact(oldContact, error));\n }\n}\n\nexport function* watchEditContactsStarted() {\n yield takeEvery(types.CONTACT_EDIT_STARTED, editContact);\n}\n\n/* -------------------------------------------------------------------------- */\n/* REMOVE */\n/* -------------------------------------------------------------------------- */\nfunction* removeContact(action) {\n const contactBody = action.payload;\n const contacts = contactBody.contacts;\n try {\n const isAuth = yield select(authSelectors.isAuthenticated);\n if (isAuth) {\n const token = yield select(authSelectors.getAuthToken);\n\n const response = yield call(fetch, `${API_BASE_URL}/contact/delete`, {\n method: 'POST',\n body: JSON.stringify({ contacts }),\n headers: {\n 'Content-Type': 'application/json',\n Authorization: `Bearer ${token}`\n }\n });\n const jsonResult = yield response.json();\n if (response.status <= 300 && jsonResult.success) {\n yield put(actions.completeRemovingContact(contactBody.contacts, contactBody.contactsName));\n alerts.showSuccessDeletedMessage({\n object: appIntl().formatMessage({\n id: contactBody.contacts.length > 1 ? 'contacts.contacts2' : 'contacts.contact'\n }),\n name: contactBody.contactsName,\n multiple: contactBody.contacts.length > 1\n });\n } else {\n const error = {\n errorMessage: jsonResult.message,\n errorNumber: jsonResult.number\n };\n // alerts.showErrorAlertFailChanges({ error });\n yield put(actions.failRemovingContact(contactBody.contacts, error));\n }\n }\n } catch (err) {\n const error = {\n errorMessage: err?.toString(),\n errorNumber: -1\n };\n // alerts.showErrorAlertFailChanges({ error });\n yield put(actions.failRemovingContact(contactBody.contacts, error));\n }\n}\n\nexport function* watchRemoveContactsStarted() {\n yield takeEvery(types.CONTACT_REMOVE_STARTED, removeContact);\n}\n","import { HttpWebtrack } from 'utility/http';\nimport { ConfigActions } from '../../../../utility/http/http-events';\n\nimport configureInterceptors from 'utility/http/interceptors/configure-interceptors';\nimport { store } from 'redux/storeConfig/store';\n\nexport const baseUrl = '/route';\n\nexport const getRouteCheckpointsListService = async (\n request: any,\n configActions: ConfigActions\n) => {\n const httpWebtrack = new HttpWebtrack();\n configureInterceptors.ConfigureWebtrackInterceptor(store, httpWebtrack);\n\n httpWebtrack.setConfigActions(configActions);\n return httpWebtrack.post(`${baseUrl}/getCheckpoints`, request);\n};\n","import { call, takeEvery, put, select } from 'redux-saga/effects';\n\nimport { normalize } from 'normalizr';\nimport API_BASE_URL from '../../../../../redux/sagas/settings/apibaseurl';\nimport * as actions from '../../actions/routeCheckpoints';\nimport * as types from '../../types/routeCheckpoints';\nimport * as selectors from '../../reducers/routes';\nimport * as schemas from '../../schemas/routeCheckpoints';\nimport * as schemasRouteCheckpoints from '../../schemas/routeCheckpoints';\nimport * as authSelectors from '../../../../../redux/reducers/auth';\nimport * as entitySelectors from '../../../Entities/reducers';\nimport camelcaseKeys from 'camelcase-keys';\nimport * as alerts from '../../../../../redux/utils/alerts';\n\nimport { appIntl } from '../../../../../utility/context/IntlGlobalProvider';\nimport { getRouteCheckpointsListService } from '../../services/routeCheckpoints';\nimport { store } from 'redux/storeConfig/store';\n\n/* -------------------------------------------------------------------------- */\n/* FETCH LIST */\n/* -------------------------------------------------------------------------- */\nfunction* fetchRouteCheckpointsList(action) {\n const routeId = action.payload;\n\n getRouteCheckpointsListService(\n { routeId },\n {\n successAction: (response) => {\n const resultData = response.data.map((result) => camelcaseKeys(result));\n const finalResultData = resultData.map((chk) =>\n chk.segmentPath\n ? {\n ...chk,\n segmentPath: chk.segmentPath.split(';').map((path) => {\n const pathArray = path.split(',');\n if (pathArray.length === 5)\n return {\n routePathId: parseFloat(pathArray[0]),\n checkpointId: parseFloat(pathArray[1]),\n latitude: parseFloat(pathArray[2]),\n longitude: parseFloat(pathArray[3]),\n distance: parseFloat(pathArray[4])\n };\n })\n }\n : { ...chk, segmentPath: [] }\n );\n const {\n entities: { routeCheckpoints },\n result //order\n } = normalize(finalResultData, schemas.routeCheckpoints); //normalize data to byId and order\n store.dispatch(actions.completeFetchingRouteCheckpoints(routeCheckpoints, result));\n },\n errorAction: (error) => {\n store.dispatch(actions.failFetchingRouteCheckpoints(error));\n }\n }\n );\n}\n\nexport function* watchFetchRouteCheckpointsList() {\n yield takeEvery(types.ROUTE_CHECKPOINTS_FETCH_STARTED, fetchRouteCheckpointsList);\n}\n","import { call, takeEvery, put, select } from 'redux-saga/effects';\n\nimport { normalize } from 'normalizr';\nimport API_BASE_URL from '../../../../../redux/sagas/settings/apibaseurl';\nimport * as actions from '../../actions/routesAssignments';\nimport * as types from '../../types/routesAssignments';\nimport * as selectors from '../../reducers/routesAssignments';\nimport * as schemas from '../../schemas/routesAssignments';\nimport * as entitySelectors from '../../../Entities/reducers';\nimport * as authSelectors from '../../../../../redux/reducers/auth';\nimport camelcaseKeys from 'camelcase-keys';\nimport * as alerts from '../../../../../redux/utils/alerts';\nimport { appIntl } from '../../../../../utility/context/IntlGlobalProvider';\nimport { store } from 'redux/storeConfig/store';\nimport {\n deleteAssignmentService,\n getRouteAssignmentsListService,\n importRouteAssignmentsService,\n saveAssignmentService\n} from '../../services/routesAssignments';\n\n/* -------------------------------------------------------------------------- */\n/* FETCH LIST */\n/* -------------------------------------------------------------------------- */\nfunction* fetchAssignmentsList(action) {\n const { startDate, endDate, organizationId, divisionId, subdivisionId } = action.payload;\n\n getRouteAssignmentsListService(\n { startDate, endDate, organizationId, divisionId, subdivisionId },\n {\n successAction: (response) => {\n const resultDataByDate = response.data.assignmentsByDate.map((result) => ({\n ...camelcaseKeys(result),\n typeId: 1\n }));\n const resultDataBySchedule = response.data.assignmentsBySchedule.map((result) => ({\n ...camelcaseKeys(result),\n typeId: 2\n }));\n const {\n entities: { assignmentsByDate },\n result: orderByDate //order\n } = normalize(resultDataByDate, schemas.assignmentsByDate); //normalize data to byId and order\n const {\n entities: { assignmentsBySchedule },\n result: orderBySchedule //order\n } = normalize(resultDataBySchedule, schemas.assignmentsBySchedule); //normalize data to byId and order\n store.dispatch(\n actions.completeFetchingAssignments(\n assignmentsByDate,\n orderByDate,\n assignmentsBySchedule,\n orderBySchedule\n )\n );\n },\n errorAction: (error) => {\n store.dispatch(actions.failFetchingAssignments(error));\n }\n }\n );\n}\n\nexport function* watchFetchAssignmentsList() {\n yield takeEvery(types.ROUTES_ASSIGNMENTS_FETCH_STARTED, fetchAssignmentsList);\n}\n\n/* -------------------------------------------------------------------------- */\n/* EDIT */\n/* -------------------------------------------------------------------------- */\nfunction* editAssignment(action) {\n const assignment = action.payload;\n const { oldAssignment } = yield select((state) =>\n selectors.getRoutesAssignment(state, assignment.routeAssignmentId)\n );\n saveAssignmentService(\n {\n ...assignment,\n routeAssignmentId: oldAssignment.routeAssignmentId,\n routeId: oldAssignment.routeId,\n unitId: oldAssignment.unitId,\n scheduleId: oldAssignment.scheduleId,\n unitName: oldAssignment.unitName\n },\n {\n successAction: (response) => {\n const editedAssignment = camelcaseKeys(response.data);\n store.dispatch(\n actions.completeEditingAssignment(assignment.routeAssignmentId, editedAssignment)\n );\n },\n errorAction: (error) => {\n store.dispatch(\n actions.failEditingAssignment(assignment.routeAssignmentId, oldAssignment, error)\n );\n }\n }\n );\n}\n\nexport function* watchEditAssignmentsStarted() {\n yield takeEvery(types.ROUTES_ASSIGNMENT_EDIT_STARTED, editAssignment);\n}\n\n/* -------------------------------------------------------------------------- */\n/* REMOVE */\n/* -------------------------------------------------------------------------- */\nfunction* removeAssignment(action) {\n const { routeAssignmentId } = action.payload;\n const deletedAssignment = yield select((state) =>\n selectors.getRoutesAssignment(state, routeAssignmentId)\n );\n deleteAssignmentService(\n { ...deletedAssignment },\n {\n successAction: (response) => {\n store.dispatch(actions.completeRemovingAssignment(routeAssignmentId));\n },\n errorAction: (error) => {\n store.dispatch(actions.failRemovingAssignment(routeAssignmentId, error));\n }\n }\n );\n}\n\nexport function* watchRemoveAssignmentStarted() {\n yield takeEvery(types.ROUTES_ASSIGNMENT_REMOVE_STARTED, removeAssignment);\n}\n\n/* -------------------------------------------------------------------------- */\n/* FETCH LIST */\n/* -------------------------------------------------------------------------- */\nfunction* importRouteAssignments(action) {\n const { routeAssignments } = action.payload;\n\n importRouteAssignmentsService(\n { ...routeAssignments },\n {\n successAction: (response) => {\n const resultDataByDate = response.data.map((result) => ({\n ...camelcaseKeys(result),\n typeId: 1\n }));\n const {\n entities: { assignmentsByDate },\n result: orderByDate //order\n } = normalize(resultDataByDate, schemas.assignmentsByDate); //normalize data to byId and order\n store.dispatch(actions.completeImportingRouteAssignments(assignmentsByDate, orderByDate));\n },\n errorAction: (error) => {\n store.dispatch(actions.failImportingRouteAssignments(error));\n }\n }\n );\n}\n\nexport function* watchImportRouteAssignments() {\n yield takeEvery(types.ROUTES_ASSIGNMENTS_IMPORT_STARTED, importRouteAssignments);\n}\n","/* -------------------------------------------------------------------------- */\n/* Schema Execution Routes */\n/* -------------------------------------------------------------------------- */\n\nimport { schema } from 'normalizr';\n\nexport const comment = new schema.Entity('comments', {}, { idAttribute: 'routeCommentId' });\nexport const comments = new schema.Array(comment);\n","import { HttpWebtrack } from 'utility/http';\nimport { ConfigActions } from '../../../../utility/http/http-events';\n\nimport configureInterceptors from 'utility/http/interceptors/configure-interceptors';\nimport { store } from 'redux/storeConfig/store';\n\nexport const baseUrl = '/route';\n\nexport const getRouteCommentsListService = async (request: any, configActions: ConfigActions) => {\n const httpWebtrack = new HttpWebtrack();\n configureInterceptors.ConfigureWebtrackInterceptor(store, httpWebtrack);\n\n httpWebtrack.setConfigActions(configActions);\n return httpWebtrack.post(`${baseUrl}/getComments`, request);\n};\n\nexport const saveCommentService = (request: any, configActions: ConfigActions) => {\n const httpWebtrack = new HttpWebtrack();\n configureInterceptors.ConfigureWebtrackInterceptor(store, httpWebtrack);\n httpWebtrack.setConfigMessage({\n object: 'routes.comment',\n action: request.routeCommentId ? 'Edit' : 'Create',\n genderType: 'SingularMale'\n });\n httpWebtrack.setConfigActions(configActions);\n return httpWebtrack.post(`${baseUrl}/saveComment`, request);\n};\n\nexport const deleteCommentService = (request: any, configActions: ConfigActions) => {\n const httpWebtrack = new HttpWebtrack();\n configureInterceptors.ConfigureWebtrackInterceptor(store, httpWebtrack);\n httpWebtrack.setConfigMessage({\n object: 'routes.comment',\n action: 'Delete',\n genderType: 'SingularMale'\n });\n httpWebtrack.setConfigActions(configActions);\n return httpWebtrack.post(`${baseUrl}/deleteComment`, request);\n};\n","import { call, takeEvery, put, select } from 'redux-saga/effects';\n\nimport { normalize } from 'normalizr';\nimport API_BASE_URL from '../../../../../redux/sagas/settings/apibaseurl';\nimport * as actions from '../../actions/routesComments';\nimport * as types from '../../types/routesComments';\nimport * as selectors from '../../reducers/routesComments';\nimport * as schemas from '../../schemas/routesComments';\nimport * as entitySelectors from '../../../Entities/reducers';\nimport * as authSelectors from '../../../../../redux/reducers/auth';\nimport camelcaseKeys from 'camelcase-keys';\nimport * as alerts from '../../../../../redux/utils/alerts';\nimport { appIntl } from '../../../../../utility/context/IntlGlobalProvider';\nimport { store } from 'redux/storeConfig/store';\nimport {\n deleteCommentService,\n getRouteCommentsListService,\n saveCommentService\n} from '../../services/routesComments';\n\n/* -------------------------------------------------------------------------- */\n/* FETCH LIST */\n/* -------------------------------------------------------------------------- */\nfunction* fetchCommentsList(action) {\n const { routeAssignmentId } = action.payload;\n\n getRouteCommentsListService(\n { routeAssignmentId },\n {\n successAction: (response) => {\n const resultData = response.data.map((result) => camelcaseKeys(result));\n const {\n entities: { comments },\n result //order\n } = normalize(resultData, schemas.comments); //normalize data to byId and order\n store.dispatch(actions.completeFetchingComments(comments, result));\n },\n errorAction: (error) => {\n store.dispatch(actions.failFetchingComments(error));\n }\n }\n );\n}\n\nexport function* watchFetchCommentsList() {\n yield takeEvery(types.ROUTES_EXECUTION_COMMENTS_FETCH_STARTED, fetchCommentsList);\n}\n\n/* -------------------------------------------------------------------------- */\n/* ADD */\n/* -------------------------------------------------------------------------- */\nfunction* addComment(action) {\n const comment = action.payload;\n saveCommentService(\n { ...comment, routeCommentId: null },\n {\n successAction: (response) => {\n const addedComment = camelcaseKeys(response.data);\n store.dispatch(actions.completeAddingComment(comment.routeCommentId, addedComment));\n },\n errorAction: (error) => {\n store.dispatch(actions.failAddingComment(comment.routeCommentId, error));\n }\n }\n );\n}\n\nexport function* watchAddCommentsStarted() {\n yield takeEvery(types.ROUTES_EXECUTION_COMMENT_ADD_STARTED, addComment);\n}\n\n/* -------------------------------------------------------------------------- */\n/* EDIT */\n/* -------------------------------------------------------------------------- */\nfunction* editComment(action) {\n const comment = action.payload;\n const { oldComment } = yield select((state) =>\n selectors.getRoutesComment(state, comment.routeCommentId)\n );\n saveCommentService(\n { ...comment },\n {\n successAction: (response) => {\n const editedComment = camelcaseKeys(response.data);\n store.dispatch(actions.completeEditingComment(editedComment));\n },\n errorAction: (error) => {\n store.dispatch(actions.failEditingComment(oldComment, error));\n }\n }\n );\n}\n\nexport function* watchEditCommentsStarted() {\n yield takeEvery(types.ROUTES_EXECUTION_COMMENT_EDIT_STARTED, editComment);\n}\n\n/* -------------------------------------------------------------------------- */\n/* REMOVE */\n/* -------------------------------------------------------------------------- */\nfunction* removeComment(action) {\n const { routeCommentId } = action.payload;\n const deletedComment = yield select((state) => selectors.getRoutesComment(state, routeCommentId));\n deleteCommentService(\n { ...deletedComment },\n {\n successAction: (response) => {\n store.dispatch(actions.completeRemovingComment(routeCommentId));\n },\n errorAction: (error) => {\n store.dispatch(actions.failRemovingComment(routeCommentId, error));\n }\n }\n );\n}\n\nexport function* watchRemoveCommentStarted() {\n yield takeEvery(types.ROUTES_EXECUTION_COMMENT_REMOVE_STARTED, removeComment);\n}\n","/* -------------------------------------------------------------------------- */\n/* Schema Execution Routes */\n/* -------------------------------------------------------------------------- */\n\nimport { schema } from 'normalizr';\n\nexport const routeExecution = new schema.Entity(\n 'routesExecutions',\n {},\n { idAttribute: 'routeAssignmentId' }\n);\nexport const routesExecutions = new schema.Array(routeExecution);\n","import { call, takeEvery, put, select } from 'redux-saga/effects';\n\nimport { normalize } from 'normalizr';\nimport API_BASE_URL from '../../../../../redux/sagas/settings/apibaseurl';\n\nimport * as actions from '../../actions/routesExecutions';\nimport * as types from '../../types/routesExecutions';\nimport * as selectors from '../../reducers/routes';\nimport * as schemas from '../../schemas/routesExecutions';\n\nimport * as authSelectors from '../../../../../redux/reducers/auth';\nimport camelcaseKeys from 'camelcase-keys';\nimport * as alerts from '../../../../../redux/utils/alerts';\nimport { useIntl } from 'react-intl';\nimport { appIntl } from '../../../../../utility/context/IntlGlobalProvider';\nimport { store } from 'redux/storeConfig/store';\nimport {\n changeToAlternateRouteService,\n saveRouteExecutionService\n} from '../../services/routeExecution';\nimport { endDateAdjustment } from 'utility/http/interceptors/interceptor-utils';\n\n/* -------------------------------------------------------------------------- */\n/* FETCH LIST EXECUTIONS */\n/* -------------------------------------------------------------------------- */\nfunction* fetchRoutesExecutions(action) {\n try {\n const filters = action.payload;\n const isAuth = yield select(authSelectors.isAuthenticated);\n if (isAuth) {\n const token = yield select(authSelectors.getAuthToken);\n const response = yield call(fetch, `${API_BASE_URL}/route/getExecutions`, {\n method: 'POST',\n body: JSON.stringify(endDateAdjustment({ ...filters })),\n headers: {\n 'Content-Type': 'application/json',\n Authorization: `Bearer ${token}`\n }\n });\n const jsonResult = yield response.json();\n if (response.status <= 300 && jsonResult.success) {\n const indicators = camelcaseKeys(jsonResult.data.indicators);\n const { scheduledBySchedule } = camelcaseKeys(jsonResult.data.scheduledBySchedule);\n const { totalNotShown } = camelcaseKeys(jsonResult.data.totalNotShown);\n const resultData = jsonResult.data.routesList.map((result) => camelcaseKeys(result));\n const {\n entities: { routesExecutions },\n result //order\n } = normalize(resultData, schemas.routesExecutions); //normalize data to byId and order\n yield put(\n actions.completeFetchingRoutesExecutions(routesExecutions, result, {\n ...indicators,\n scheduledBySchedule,\n totalNotShown\n })\n );\n } else {\n const error = {\n errorMessage: appIntl().formatMessage({\n id: 'routes.routeFetchMonitorMessageError'\n }),\n errorNumber: jsonResult.number\n };\n // alerts.showErrorAlertFailChanges({ error });\n yield put(actions.failFetchingRoutesExecutions(error));\n }\n }\n } catch (err) {\n const error = {\n errorMessage: appIntl().formatMessage({\n id: 'routes.routeFetchMonitorMessageError'\n }),\n errorNumber: -1\n };\n // alerts.showErrorAlertFailChanges({ error });\n yield put(actions.failFetchingRoutesExecutions(error));\n }\n}\n\nexport function* watchFetchRoutesExecutions() {\n yield takeEvery(types.ROUTES_EXECUTIONS_FETCH_STARTED, fetchRoutesExecutions);\n}\n\n/* -------------------------------------------------------------------------- */\n/* EDIT */\n/* -------------------------------------------------------------------------- */\nfunction* editRouteExecution(action) {\n const routeExecution = action.payload;\n const oldRouteExecution = yield select((state) =>\n selectors.getRoutesExecution(state, routeExecution.routeAssignmentId)\n );\n saveRouteExecutionService(\n {\n ...routeExecution,\n routeAssignmentId: oldRouteExecution.routeAssignmentId,\n unitName: oldRouteExecution.unitName\n },\n {\n successAction: (response) => {\n const editedRouteExecution = camelcaseKeys(response.data);\n store.dispatch(\n actions.completeEditRouteExecution({ ...routeExecution, ...editedRouteExecution })\n );\n },\n errorAction: (error) => {\n store.dispatch(actions.failEditRouteExecution(error));\n }\n }\n );\n}\n\nexport function* watchEditRouteExecutionStarted() {\n yield takeEvery(types.ROUTE_EXECUTION_EDIT_STARTED, editRouteExecution);\n}\n\n/* -------------------------------------------------------------------------- */\n/* EDIT */\n/* -------------------------------------------------------------------------- */\nfunction* changeToAlternateRoute(action) {\n const { routeAssignmentId, routeId, reason } = action.payload;\n changeToAlternateRouteService(\n { routeAssignmentId, routeId, reason },\n {\n successAction: (response) => {\n if (response.success)\n alerts.showSuccessMessage({\n success: appIntl().formatMessage({\n id: 'routes.successfullyChangeAlternateRoute'\n })\n });\n store.dispatch(actions.completeChangeToAlternateRoute(routeAssignmentId, routeId, reason));\n },\n errorAction: (error) => {\n const errorTxt = {\n errorMessage: appIntl().formatMessage({\n id: 'routes.changeAlternateRouteMessageError'\n })\n };\n alerts.showErrorAlertFailChanges({ error: errorTxt });\n store.dispatch(actions.failChangeToAlternateRoute(error));\n }\n }\n );\n}\n\nexport function* watchChangeToAlternateRouteStarted() {\n yield takeEvery(types.ROUTE_CHANGE_TO_ALTERNATE_ROUTE_STARTED, changeToAlternateRoute);\n}\n\n/* -------------------------------------------------------------------------- */\n/* Cancel Route Execution */\n/* -------------------------------------------------------------------------- */\nfunction* cancelRouteExecution(action) {\n const newStatus = 8;\n const routes = action.payload.routes;\n try {\n const isAuth = yield select(authSelectors.isAuthenticated);\n\n if (isAuth) {\n const token = yield select(authSelectors.getAuthToken);\n\n const response = yield call(fetch, `${API_BASE_URL}/route/updateRouteExecutionStatus`, {\n method: 'POST',\n body: JSON.stringify(routes.map((route) => ({ ...route, newRouteStatus: newStatus }))),\n headers: {\n 'Content-Type': 'application/json',\n Authorization: `Bearer ${token}`\n }\n });\n const jsonResult = yield response.json();\n if (\n response.status <= 300 &&\n jsonResult.success &&\n jsonResult.data.length === routes.length\n ) {\n yield put(\n actions.completeCancelRoutesExecutions(\n routes.map((route) => ({ ...route, newRouteStatus: newStatus }))\n )\n );\n\n alerts.showSuccessMessage({\n success: appIntl().formatMessage({\n id: 'routes.selectedRoutesWasCanceled'\n })\n });\n } else {\n const error = {\n errorMessage: appIntl().formatMessage({\n id: 'routes.routesCancelationMessageError'\n }),\n errorNumber: jsonResult.number\n };\n alerts.showErrorAlertFailChanges({ error });\n yield put(actions.failCancelRoutesExecutions(error));\n }\n }\n } catch (err) {\n const error = {\n errorMessage: appIntl().formatMessage({\n id: 'routes.routesCancelationMessageError'\n }),\n errorNumber: -1\n };\n alerts.showErrorAlertFailChanges({ error });\n yield put(actions.failCancelRoutesExecutions(error));\n }\n}\n\nexport function* watchCancelRouteExecution() {\n yield takeEvery(types.ROUTES_EXECUTION_CANCEL_STARTED, cancelRouteExecution);\n}\n\n/* -------------------------------------------------------------------------- */\n/* Finalize Route Execution */\n/* -------------------------------------------------------------------------- */\nfunction* finalizeRouteExecution(action) {\n const newStatus = 6;\n const routes = action.payload.routes;\n try {\n const isAuth = yield select(authSelectors.isAuthenticated);\n\n if (isAuth) {\n const token = yield select(authSelectors.getAuthToken);\n\n const response = yield call(fetch, `${API_BASE_URL}/route/updateRouteExecutionStatus`, {\n method: 'POST',\n body: JSON.stringify(routes.map((route) => ({ ...route, newRouteStatus: newStatus }))),\n headers: {\n 'Content-Type': 'application/json',\n Authorization: `Bearer ${token}`\n }\n });\n const jsonResult = yield response.json();\n if (\n response.status <= 300 &&\n jsonResult.success &&\n jsonResult.data.length === routes.length\n ) {\n yield put(\n actions.completeFinalizeRoutesExecutions(\n routes.map((route) => ({ ...route, newRouteStatus: newStatus }))\n )\n );\n\n alerts.showSuccessMessage({\n success: appIntl().formatMessage({\n id: 'routes.selectedRoutesWasFinished'\n })\n });\n } else {\n const error = {\n errorMessage: appIntl().formatMessage({\n id: 'routes.routesFinalizationMessageError'\n }),\n errorNumber: jsonResult.number\n };\n alerts.showErrorAlertFailChanges({ error });\n yield put(actions.failFinalizeRoutesExecutions(error));\n }\n }\n } catch (err) {\n const error = {\n errorMessage: appIntl().formatMessage({\n id: 'routes.routesFinalizationMessageError'\n }),\n errorNumber: -1\n };\n alerts.showErrorAlertFailChanges({ error });\n yield put(actions.failFinalizeRoutesExecutions(error));\n }\n}\n\nexport function* watchFinalizeRouteExecution() {\n yield takeEvery(types.ROUTES_EXECUTION_FINALIZE_STARTED, finalizeRouteExecution);\n}\n\n/* -------------------------------------------------------------------------- */\n/* Complete Route Execution */\n/* -------------------------------------------------------------------------- */\nfunction* completeRouteExecution(action) {\n const newStatus = 2;\n const routes = action.payload.routes;\n try {\n const isAuth = yield select(authSelectors.isAuthenticated);\n\n if (isAuth) {\n const token = yield select(authSelectors.getAuthToken);\n\n const response = yield call(fetch, `${API_BASE_URL}/route/updateRouteExecutionStatus`, {\n method: 'POST',\n body: JSON.stringify(routes.map((route) => ({ ...route, newRouteStatus: newStatus }))),\n headers: {\n 'Content-Type': 'application/json',\n Authorization: `Bearer ${token}`\n }\n });\n const jsonResult = yield response.json();\n if (\n response.status <= 300 &&\n jsonResult.success &&\n jsonResult.data.length === routes.length\n ) {\n yield put(\n actions.completeCompleteRoutesExecutions(\n routes.map((route) => ({ ...route, newRouteStatus: newStatus }))\n )\n );\n\n alerts.showSuccessMessage({\n success: appIntl().formatMessage({\n id: 'routes.selectedRoutesWasCompleted'\n })\n });\n } else {\n const error = {\n errorMessage: appIntl().formatMessage({\n id: 'routes.routesCompletationMessageError'\n }),\n errorNumber: jsonResult.number\n };\n alerts.showErrorAlertFailChanges({ error });\n yield put(actions.failCompleteRoutesExecutions(error));\n }\n }\n } catch (err) {\n const error = {\n errorMessage: appIntl().formatMessage({\n id: 'routes.routesCompletationMessageError'\n }),\n errorNumber: -1\n };\n alerts.showErrorAlertFailChanges({ error });\n yield put(actions.failCompleteRoutesExecutions(error));\n }\n}\n\nexport function* watchCompleteRouteExecution() {\n yield takeEvery(types.ROUTES_EXECUTION_COMPLETE_STARTED, completeRouteExecution);\n}\n\n/* -------------------------------------------------------------------------- */\n/* Remove Route Execution */\n/* -------------------------------------------------------------------------- */\nfunction* removeRouteExecution(action) {\n const newStatus = 0;\n const routes = action.payload.routes;\n try {\n const isAuth = yield select(authSelectors.isAuthenticated);\n\n if (isAuth) {\n const token = yield select(authSelectors.getAuthToken);\n\n const response = yield call(fetch, `${API_BASE_URL}/route/updateRouteExecutionStatus`, {\n method: 'POST',\n body: JSON.stringify(routes.map((route) => ({ ...route, newRouteStatus: newStatus }))),\n headers: {\n 'Content-Type': 'application/json',\n Authorization: `Bearer ${token}`\n }\n });\n const jsonResult = yield response.json();\n if (\n response.status <= 300 &&\n jsonResult.success &&\n jsonResult.data.length === routes.length\n ) {\n yield put(\n actions.completeRemoveRoutesExecutions(\n routes.map((route) => ({ ...route, newRouteStatus: newStatus }))\n )\n );\n\n alerts.showSuccessMessage({\n success: appIntl().formatMessage({\n id: 'routes.selectedRoutesWasRemoved'\n })\n });\n } else {\n const error = {\n errorMessage: appIntl().formatMessage({\n id: 'routes.routesRemoveMessageError'\n }),\n errorNumber: jsonResult.number\n };\n alerts.showErrorAlertFailChanges({ error });\n yield put(actions.failRemoveRoutesExecutions(error));\n }\n }\n } catch (err) {\n const error = {\n errorMessage: appIntl().formatMessage({\n id: 'routes.routesRemoveMessageError'\n }),\n errorNumber: -1\n };\n alerts.showErrorAlertFailChanges({ error });\n yield put(actions.failRemoveRoutesExecutions(error));\n }\n}\n\nexport function* watchRemoveRouteExecution() {\n yield takeEvery(types.ROUTES_EXECUTION_REMOVE_STARTED, removeRouteExecution);\n}\n\n/* -------------------------------------------------------------------------- */\n/* Pause Route Execution */\n/* -------------------------------------------------------------------------- */\nfunction* pauseRouteExecution(action) {\n const newStatus = 5;\n const routes = action.payload.routes;\n try {\n const isAuth = yield select(authSelectors.isAuthenticated);\n\n if (isAuth) {\n const token = yield select(authSelectors.getAuthToken);\n\n const response = yield call(fetch, `${API_BASE_URL}/route/updateRouteExecutionStatus`, {\n method: 'POST',\n body: JSON.stringify(routes.map((route) => ({ ...route, newRouteStatus: newStatus }))),\n headers: {\n 'Content-Type': 'application/json',\n Authorization: `Bearer ${token}`\n }\n });\n const jsonResult = yield response.json();\n if (\n response.status <= 300 &&\n jsonResult.success &&\n jsonResult.data.length === routes.length\n ) {\n yield put(\n actions.completePauseRoutesExecutions(\n routes.map((route) => ({ ...route, newRouteStatus: newStatus }))\n )\n );\n\n alerts.showSuccessMessage({\n success: appIntl().formatMessage({\n id: 'routes.selectedRoutesWasPaused'\n })\n });\n } else {\n const error = {\n errorMessage: appIntl().formatMessage({\n id: 'routes.routesPauseMessageError'\n }),\n errorNumber: jsonResult.number\n };\n alerts.showErrorAlertFailChanges({ error });\n yield put(actions.failPauseRoutesExecutions(error));\n }\n }\n } catch (err) {\n const error = {\n errorMessage: appIntl().formatMessage({\n id: 'routes.routesPauseMessageError'\n }),\n errorNumber: -1\n };\n alerts.showErrorAlertFailChanges({ error });\n yield put(actions.failPauseRoutesExecutions(error));\n }\n}\n\nexport function* watchPauseRouteExecution() {\n yield takeEvery(types.ROUTES_EXECUTION_PAUSE_STARTED, pauseRouteExecution);\n}\n\n/* -------------------------------------------------------------------------- */\n/* Start Route Execution */\n/* -------------------------------------------------------------------------- */\nfunction* startRouteExecution(action) {\n const newStatus = 3;\n const routes = action.payload.routes;\n try {\n const isAuth = yield select(authSelectors.isAuthenticated);\n\n if (isAuth) {\n const token = yield select(authSelectors.getAuthToken);\n\n const response = yield call(fetch, `${API_BASE_URL}/route/updateRouteExecutionStatus`, {\n method: 'POST',\n body: JSON.stringify(routes.map((route) => ({ ...route, newRouteStatus: newStatus }))),\n headers: {\n 'Content-Type': 'application/json',\n Authorization: `Bearer ${token}`\n }\n });\n const jsonResult = yield response.json();\n if (\n response.status <= 300 &&\n jsonResult.success &&\n jsonResult.data.length === routes.length\n ) {\n yield put(\n actions.completeStartRoutesExecutions(\n routes.map((route) => ({ ...route, newRouteStatus: newStatus }))\n )\n );\n\n alerts.showSuccessMessage({\n success: appIntl().formatMessage({\n id: 'routes.selectedRoutesWasStarted'\n })\n });\n } else {\n const error = {\n errorMessage: appIntl().formatMessage({\n id: 'routes.routesStartMessageError'\n }),\n errorNumber: jsonResult.number\n };\n alerts.showErrorAlertFailChanges({ error });\n yield put(actions.failStartRoutesExecutions(error));\n }\n }\n } catch (err) {\n const error = {\n errorMessage: appIntl().formatMessage({\n id: 'routes.routesStartMessageError'\n }),\n errorNumber: -1\n };\n alerts.showErrorAlertFailChanges({ error });\n yield put(actions.failStartRoutesExecutions(error));\n }\n}\n\nexport function* watchStartRouteExecution() {\n yield takeEvery(types.ROUTES_EXECUTION_START_STARTED, startRouteExecution);\n}\n\n/* -------------------------------------------------------------------------- */\n/* Manual Transit Route Execution */\n/* -------------------------------------------------------------------------- */\nfunction* manualTransitRouteExecution(action) {\n const newStatus = 3;\n const routes = action.payload.routes;\n try {\n const isAuth = yield select(authSelectors.isAuthenticated);\n\n if (isAuth) {\n const token = yield select(authSelectors.getAuthToken);\n\n const response = yield call(fetch, `${API_BASE_URL}/route/updateRouteExecutionStatus`, {\n method: 'POST',\n body: JSON.stringify(routes.map((route) => ({ ...route, newRouteStatus: newStatus }))),\n headers: {\n 'Content-Type': 'application/json',\n Authorization: `Bearer ${token}`\n }\n });\n const jsonResult = yield response.json();\n if (\n response.status <= 300 &&\n jsonResult.success &&\n jsonResult.data.length === routes.length\n ) {\n yield put(\n actions.completeManualTransitRoutesExecutions(\n routes.map((route) => ({ ...route, newRouteStatus: newStatus }))\n )\n );\n\n alerts.showSuccessMessage({\n success: appIntl().formatMessage({\n id: 'routes.selectedRoutesManualTransit'\n })\n });\n } else {\n const error = {\n errorMessage: appIntl().formatMessage({\n id: 'routes.routesManualTransitMessageError'\n }),\n errorNumber: jsonResult.number\n };\n alerts.showErrorAlertFailChanges({ error });\n yield put(actions.failManualTransitRoutesExecutions(error));\n }\n }\n } catch (err) {\n const error = {\n errorMessage: appIntl().formatMessage({\n id: 'routes.routesManualTransitMessageError'\n }),\n errorNumber: -1\n };\n alerts.showErrorAlertFailChanges({ error });\n yield put(actions.failManualTransitRoutesExecutions(error));\n }\n}\n\nexport function* watchManualTransitRouteExecution() {\n yield takeEvery(types.ROUTES_EXECUTION_MANUAL_TRANSIT_STARTED, manualTransitRouteExecution);\n}\n\n/* -------------------------------------------------------------------------- */\n/* Share Route Execution */\n/* -------------------------------------------------------------------------- */\nfunction* shareRouteExecution(action) {\n const newStatus = 0;\n const routes = action.payload;\n try {\n const isAuth = yield select(authSelectors.isAuthenticated);\n\n if (isAuth) {\n const token = yield select(authSelectors.getAuthToken);\n\n const response = yield call(fetch, `${API_BASE_URL}/route/shareRouteExecutions`, {\n method: 'POST',\n body: JSON.stringify(routes),\n headers: {\n 'Content-Type': 'application/json',\n Authorization: `Bearer ${token}`\n }\n });\n const jsonResult = yield response.json();\n if (response.status <= 300 && jsonResult.success) {\n yield put(actions.completeShareRoutesExecutions(routes.routeAssignments, routes.emailList));\n\n alerts.showSuccessMessage({\n success: appIntl().formatMessage({\n id: 'routes.selectedRoutesWasShared'\n })\n });\n } else {\n const error = {\n errorMessage: appIntl().formatMessage({\n id: 'routes.routesShareMessageError'\n }),\n errorNumber: jsonResult.number\n };\n alerts.showErrorAlertFailChanges({ error });\n yield put(actions.failShareRoutesExecutions(error));\n }\n }\n } catch (err) {\n const error = {\n errorMessage: appIntl().formatMessage({\n id: 'routes.routesShareMessageError'\n }),\n errorNumber: -1\n };\n alerts.showErrorAlertFailChanges({ error });\n yield put(actions.failShareRoutesExecutions(error));\n }\n}\n\nexport function* watchShareRouteExecution() {\n yield takeEvery(types.ROUTES_EXECUTION_SHARE_STARTED, shareRouteExecution);\n}\n\n/* -------------------------------------------------------------------------- */\n/* Assign Route Execution Unit */\n/* -------------------------------------------------------------------------- */\nfunction* assignRouteExecutionUnit(action) {\n const assignation = action.payload;\n try {\n const isAuth = yield select(authSelectors.isAuthenticated);\n\n if (isAuth) {\n const token = yield select(authSelectors.getAuthToken);\n\n const response = yield call(fetch, `${API_BASE_URL}/route/assignUnit`, {\n method: 'POST',\n body: JSON.stringify(assignation),\n headers: {\n 'Content-Type': 'application/json',\n Authorization: `Bearer ${token}`\n }\n });\n const jsonResult = yield response.json();\n if (\n response.status <= 300 &&\n jsonResult.success &&\n jsonResult.data.length === assignation.length\n ) {\n yield put(actions.completeAssignUnitRoutesExecutions(assignation));\n\n alerts.showSuccessMessage({\n success: appIntl().formatMessage({\n id: 'routes.unitWasSuccessfullyAssigned'\n })\n });\n } else {\n const error = {\n errorMessage: appIntl().formatMessage({\n id: 'routes.unitAssignmentIsNotPossibleRightNow'\n }),\n errorNumber: jsonResult.number\n };\n alerts.showErrorAlertFailChanges({ error });\n yield put(actions.failAssignUnitRoutesExecutions(error));\n }\n }\n } catch (err) {\n const error = {\n errorMessage: appIntl().formatMessage({\n id: 'routes.unitAssignmentIsNotPossibleRightNow'\n }),\n errorNumber: -1\n };\n alerts.showErrorAlertFailChanges({ error });\n yield put(actions.failAssignUnitRoutesExecutions(error));\n }\n}\n\nexport function* watchAsignRouteExecutionUnit() {\n yield takeEvery(types.ROUTES_EXECUTION_ASSIGN_UNIT_STARTED, assignRouteExecutionUnit);\n}\n","import { call, takeEvery, put, select } from 'redux-saga/effects';\n\nimport { normalize } from 'normalizr';\nimport API_BASE_URL from '../../../../../redux/sagas/settings/apibaseurl';\n\nimport * as actions from '../../actions/routesReport';\nimport * as types from '../../types/routesReport';\nimport * as selectors from '../../reducers/routes';\nimport * as routesExecutionsSchemas from '../../schemas/routesExecutions';\nimport * as unitsSchemas from '../../../Units/schemas';\nimport * as routesSchemas from '../../schemas/routes';\n\nimport * as authSelectors from '../../../../../redux/reducers/auth';\nimport camelcaseKeys from 'camelcase-keys';\nimport * as alerts from '../../../../../redux/utils/alerts';\nimport { appIntl } from '../../../../../utility/context/IntlGlobalProvider';\nimport { endDateAdjustment } from 'utility/http/interceptors/interceptor-utils';\n\n/* -------------------------------------------------------------------------- */\n/* FETCH LIST REPORT */\n/* -------------------------------------------------------------------------- */\nfunction* fetchRoutesReport(action) {\n try {\n const filters = action.payload;\n const isAuth = yield select(authSelectors.isAuthenticated);\n if (isAuth) {\n const token = yield select(authSelectors.getAuthToken);\n const response = yield call(fetch, `${API_BASE_URL}/route/getReport`, {\n method: 'POST',\n body: JSON.stringify(endDateAdjustment({ ...filters })),\n headers: {\n 'Content-Type': 'application/json',\n Authorization: `Bearer ${token}`\n }\n });\n const jsonResult = yield response.json();\n if (response.status <= 300 && jsonResult.success) {\n const indicators = camelcaseKeys(jsonResult.data.indicators);\n\n const units = jsonResult.data.units.map((result) => camelcaseKeys(result));\n const {\n entities: { units: unitsEntities },\n result: unitsOrder //order\n } = normalize(units, unitsSchemas.units); //normalize data to byId and order\n\n const routes = jsonResult.data.routes.map((result) => camelcaseKeys(result));\n const {\n entities: { routes: routesEntities },\n result: routesOrder //order\n } = normalize(routes, routesSchemas.routes); //normalize data to byId and order\n\n const resultData = jsonResult.data.routeExecutions.map((result) => camelcaseKeys(result));\n const {\n entities: { routesExecutions },\n result //order\n } = normalize(resultData, routesExecutionsSchemas.routesExecutions); //normalize data to byId and order\n\n yield put(\n actions.completeFetchingRoutesReport(\n routesExecutions,\n result,\n indicators,\n unitsEntities,\n unitsOrder,\n routesEntities,\n routesOrder\n )\n );\n } else {\n const error = {\n errorMessage: appIntl().formatMessage({\n id: 'routes.routeFetchReportMessageError'\n }),\n errorNumber: jsonResult.number\n };\n // alerts.showErrorAlertFailChanges({ error });\n yield put(actions.failFetchingRoutesReport(error));\n }\n }\n } catch (err) {\n const error = {\n errorMessage: appIntl().formatMessage({\n id: 'routes.routeFetchReportMessageError'\n }),\n errorNumber: -1\n };\n // alerts.showErrorAlertFailChanges({ error });\n yield put(actions.failFetchingRoutesReport(error));\n }\n}\n\nexport function* watchFetchRoutesReport() {\n yield takeEvery(types.ROUTES_REPORT_FETCH_STARTED, fetchRoutesReport);\n}\n","/* -------------------------------------------------------------------------- */\n/* Schema Agents */\n/* -------------------------------------------------------------------------- */\n\nimport { schema } from 'normalizr';\n\nexport const monitoringUser = new schema.Entity('monitoringUsers', {}, { idAttribute: 'userName' });\nexport const monitoringUsers = new schema.Array(monitoringUser);\n","import { call, takeEvery, put, select } from 'redux-saga/effects';\n\nimport { normalize } from 'normalizr';\nimport { store } from 'redux/storeConfig/store';\nimport API_BASE_URL from '../../../../redux/sagas/settings/apibaseurl';\nimport * as actions from '../actions';\nimport * as types from '../types';\nimport * as selectors from '../reducers';\nimport * as schemas from '../schemas';\nimport * as authSelectors from '../../../../redux/reducers/auth';\nimport * as authActions from '../../../../redux/actions/auth';\nimport camelcaseKeys from 'camelcase-keys';\nimport * as alerts from '../../../../redux/utils/alerts';\nimport * as entitySelectors from '../../Entities/reducers';\nimport { getUsersListService, saveUserService, deleteUserService } from '../services';\nimport { appIntl } from '../../../../utility/context/IntlGlobalProvider';\n\n/* -------------------------------------------------------------------------- */\n/* FETCH LIST */\n/* -------------------------------------------------------------------------- */\nfunction* fetchMonitoringUsersList(action) {\n const { operatorId: filterOperatorId, organizationId: filterOrganizationId } = action.payload;\n const { operatorId, organizationId } = yield select(authSelectors.getAuthUserMembershipFilters, {\n filterOperatorId,\n filterOrganizationId\n });\n\n getUsersListService(\n { operatorId, organizationId },\n {\n successAction: (response) => {\n const resultData = response.data.map((result) => camelcaseKeys(result));\n const {\n entities: { monitoringUsers },\n result //order\n } = normalize(resultData, schemas.monitoringUsers); //normalize data to byId and order\n store.dispatch(\n actions.completeFetchingMonitoringUsers(\n monitoringUsers,\n result,\n operatorId,\n organizationId\n )\n );\n },\n errorAction: (error) => {\n store.dispatch(actions.failFetchingMonitoringUsers(error));\n }\n }\n );\n}\n\nexport function* watchFetchMonitoringUsersList() {\n yield takeEvery(types.MONITORING_USERS_FETCH_STARTED, fetchMonitoringUsersList);\n}\n\n/* -------------------------------------------------------------------------- */\n/* PARTIAL FETCH LIST */\n/* -------------------------------------------------------------------------- */\nfunction* partialFetchMonitoringUsersList(action) {\n const {\n entityTypeId,\n operatorId: filterOperatorId,\n organizationId: filterOrganizationId\n } = action.payload;\n const date = yield select(entitySelectors.getUserUpdateByEntityDate, entityTypeId);\n const { operatorId, organizationId } = yield select(authSelectors.getAuthUserMembershipFilters, {\n filterOperatorId,\n filterOrganizationId\n });\n\n getUsersListService(\n { userFetchDate: date, operatorId, organizationId },\n {\n successAction: (response) => {\n const resultData = response.data.map((result) => camelcaseKeys(result));\n const {\n entities: { monitoringUsers },\n result //order\n } = normalize(resultData, schemas.monitoringUsers); //normalize data to byId and order\n store.dispatch(\n actions.completePartialFetchingMonitoringUsers(\n monitoringUsers,\n result,\n operatorId,\n organizationId\n )\n );\n },\n errorAction: (error) => {\n store.dispatch(actions.failPartialFetchingMonitoringUsers(error));\n }\n }\n );\n}\n\nexport function* watchPartialFetchMonitoringUsersList() {\n yield takeEvery(types.MONITORING_USERS_PARTIAL_FETCH_STARTED, partialFetchMonitoringUsersList);\n}\n\n/* -------------------------------------------------------------------------- */\n/* ADD */\n/* -------------------------------------------------------------------------- */\nfunction* addMonitoringUser(action) {\n const monitoringUser = action.payload;\n saveUserService(\n { ...monitoringUser },\n {\n successAction: (response) => {\n const addedMonitoringUser = camelcaseKeys(response?.data[0]);\n store.dispatch(\n actions.completeAddingMonitoringUser(monitoringUser.userName, addedMonitoringUser)\n );\n },\n errorAction: (error) => {\n store.dispatch(actions.failAddingMonitoringUser(monitoringUser.userName, error));\n }\n }\n );\n}\n\nexport function* watchAddMonitoringUsersStarted() {\n yield takeEvery(types.MONITORING_USER_ADD_STARTED, addMonitoringUser);\n}\n\n/* -------------------------------------------------------------------------- */\n/* EDIT */\n/* -------------------------------------------------------------------------- */\nfunction* editMonitoringUser(action) {\n const monitoringUser = action.payload;\n const oldMonitoringUser = yield select((state) =>\n selectors.getMonitoringUser(state, monitoringUser.oldUserName)\n );\n saveUserService(\n { ...monitoringUser },\n {\n successAction: (response) => {\n const editedMonitoringUser = camelcaseKeys(response?.data[0]);\n store.dispatch(\n actions.completeEditingMonitoringUser(monitoringUser.oldUserName, editedMonitoringUser)\n );\n },\n errorAction: (error) => {\n store.dispatch(actions.failEditingMonitoringUser(oldMonitoringUser, error));\n }\n }\n );\n}\n\nexport function* watchEditMonitoringUsersStarted() {\n yield takeEvery(types.MONITORING_USER_EDIT_STARTED, editMonitoringUser);\n}\n\n/* -------------------------------------------------------------------------- */\n/* REMOVE */\n/* -------------------------------------------------------------------------- */\nfunction* removeMonitoringUser(action) {\n const { users, usersName } = action.payload;\n try {\n const isAuth = yield select(authSelectors.isAuthenticated);\n if (isAuth) {\n const token = yield select(authSelectors.getAuthToken);\n\n const response = yield call(fetch, `${API_BASE_URL}/user/delete`, {\n method: 'POST',\n body: JSON.stringify({ users }),\n headers: {\n 'Content-Type': 'application/json',\n Authorization: `Bearer ${token}`\n }\n });\n\n const jsonResult = yield response.json();\n if (response.status <= 300 && jsonResult.success) {\n yield put(actions.completeRemovingMonitoringUser(users, usersName));\n\n //verificar si en la lista de usuario eliminados esta incluido el usuario logeado\n const loggedUsername = yield select(authSelectors.getAuthUsername);\n //si esta en la lista, forzamos un logout\n if (users.includes(loggedUsername)) yield put(authActions.logout());\n else\n alerts.showSuccessDeletedMessage({\n object: appIntl().formatMessage({\n id: users.length > 1 ? 'users.users' : 'users.user'\n }),\n multiple: users.length > 1,\n name: usersName\n });\n } else {\n const error = {\n errorMessage: jsonResult.message,\n errorNumber: jsonResult.number\n };\n // alerts.showErrorAlertFailChanges({ error });\n yield put(actions.failRemovingMonitoringUser(users, error));\n }\n }\n } catch (err) {\n const error = {\n errorMessage: err.toString(),\n errorNumber: -1\n };\n // alerts.showErrorAlertFailChanges({ error });\n yield put(actions.failRemovingMonitoringUser(users, error));\n }\n}\n\nexport function* watchRemoveMonitoringUserStarted() {\n yield takeEvery(types.MONITORING_USER_REMOVE_STARTED, removeMonitoringUser);\n}\n\n/* -------------------------------------------------------------------------- */\n/* UPDATE USER PASSWORD */\n/* -------------------------------------------------------------------------- */\nfunction* updateMonitoringUserPassword(action) {\n const values = action.payload;\n try {\n const isAuth = yield select(authSelectors.isAuthenticated);\n if (isAuth) {\n const token = yield select(authSelectors.getAuthToken);\n // alerts.showLoading();\n const response = yield call(fetch, `${API_BASE_URL}/user/password`, {\n method: 'POST',\n body: JSON.stringify({\n ...values\n }),\n headers: {\n 'Content-Type': 'application/json',\n Authorization: `Bearer ${token}`\n }\n });\n // alerts.closeLoading();\n const jsonResult = yield response.json();\n if (response.status <= 300 && jsonResult.success) {\n alerts.showSuccessMessage({\n success: appIntl().formatMessage({\n id: 'profile.changePassword.successMessage'\n }),\n timer: 4000\n });\n yield put(actions.completeUpdatingMonitoringUserPassword(values));\n } else {\n const error = {\n // errorMessage: jsonResult.message,\n errorMessage: appIntl().formatMessage({\n id: 'profile.changePassword.errorMessageGeneral'\n }),\n errorNumber: jsonResult.number\n };\n // alerts.showErrorAlertFailChanges({ error });\n yield put(actions.failUpdatingMonitoringUserPassword(error));\n }\n }\n } catch (err) {\n const error = {\n // errorMessage: err.toString(),\n errorMessage: appIntl().formatMessage({\n id: 'profile.changePassword.errorMessageGeneral'\n }),\n errorNumber: -1\n };\n // alerts.showErrorAlertFailChanges({ error });\n yield put(actions.failUpdatingMonitoringUserPassword(error));\n }\n}\n\nexport function* watchUpdateMonitoringUserPasswordStarted() {\n yield takeEvery(types.MONITORING_USER_UPDATE_PASSWORD_STARTED, updateMonitoringUserPassword);\n}\n\n/* -------------------------------------------------------------------------- */\n/* SAVE ROLES AND PERMISSIONS */\n/* -------------------------------------------------------------------------- */\nfunction* saveRolesAndPermissions(action) {\n const rolesAndPermissions = action.payload;\n try {\n const isAuth = yield select(authSelectors.isAuthenticated);\n\n if (isAuth) {\n const token = yield select(authSelectors.getAuthToken);\n const response = yield call(fetch, `${API_BASE_URL}/user/saveRolesAndPermissions`, {\n method: 'POST',\n body: JSON.stringify(rolesAndPermissions),\n headers: {\n 'Content-Type': 'application/json',\n Authorization: `Bearer ${token}`\n }\n });\n const jsonResult = yield response.json();\n if (response.status <= 300 && jsonResult.success) {\n yield put(actions.completeSavingMonitoringUserRolesAndPermissions(rolesAndPermissions));\n alerts.showSuccessRolesAndPermissionsSavedMessage({\n name: rolesAndPermissions.userName\n });\n const userInSession = yield select(authSelectors.getAuthUser);\n if (rolesAndPermissions.userName === userInSession.username) {\n yield put(authActions.startForceRefreshToken());\n }\n } else {\n const error = {\n errorMessage: jsonResult.message,\n errorNumber: jsonResult.number\n };\n // alerts.showErrorAlertFailChanges({ error });\n }\n }\n } catch (err) {\n const error = {\n errorMessage: err.toString(),\n errorNumber: -1\n };\n\n // alerts.showErrorAlertFailChanges({ error });\n }\n}\n\nexport function* watchSaveMonitoringUserRolesAndPermissionsStarted() {\n yield takeEvery(types.MONITORING_USER_SAVE_ROLES_PERMISSIONS_STARTED, saveRolesAndPermissions);\n}\n\n/* -------------------------------------------------------------------------- */\n/* ASSIGN SCHEDULE */\n/* -------------------------------------------------------------------------- */\nfunction* assignSchedule(action) {\n const userAssignSchedule = action.payload;\n try {\n const isAuth = yield select(authSelectors.isAuthenticated);\n\n if (isAuth) {\n const token = yield select(authSelectors.getAuthToken);\n\n const response = yield call(fetch, `${API_BASE_URL}/user/AssignSchedule`, {\n method: 'POST',\n body: JSON.stringify(userAssignSchedule),\n headers: {\n 'Content-Type': 'application/json',\n Authorization: `Bearer ${token}`\n }\n });\n const jsonResult = yield response.json();\n if (response.status <= 300 && jsonResult.success) {\n yield put(actions.completeAssigningScheduleUsers(userAssignSchedule));\n alerts.showSuccessAssignedMessage({\n object: appIntl().formatMessage({\n id: 'common.schedule'\n }),\n name: userAssignSchedule.scheduleName\n });\n } else {\n const error = {\n errorMessage: jsonResult.message,\n errorNumber: jsonResult.number\n };\n // alerts.showErrorAlertFailChanges({ error });\n }\n }\n } catch (err) {\n const error = {\n errorMessage: err.toString(),\n errorNumber: -1\n };\n\n // alerts.showErrorAlertFailChanges({ error });\n }\n}\n\nexport function* watchAssignScheduleUsersStarted() {\n yield takeEvery(types.USERS_ASSIGN_SCHEDULE_STARTED, assignSchedule);\n}\n\n/* -------------------------------------------------------------------------- */\n/* UNASSIGN SCHEDULE */\n/* -------------------------------------------------------------------------- */\nfunction* unassignSchedule(action) {\n const userAssignSchedule = action.payload;\n try {\n const isAuth = yield select(authSelectors.isAuthenticated);\n\n if (isAuth) {\n const token = yield select(authSelectors.getAuthToken);\n\n const response = yield call(fetch, `${API_BASE_URL}/user/UnassignSchedule`, {\n method: 'POST',\n body: JSON.stringify(userAssignSchedule),\n headers: {\n 'Content-Type': 'application/json',\n Authorization: `Bearer ${token}`\n }\n });\n const jsonResult = yield response.json();\n if (response.status <= 300 && jsonResult.success) {\n yield put(actions.completeUnassigningScheduleUsers(userAssignSchedule));\n alerts.showSuccessUnassignedMessage({\n object: appIntl().formatMessage({\n id: 'common.schedule'\n })\n });\n } else {\n const error = {\n errorMessage: jsonResult.message,\n errorNumber: jsonResult.number\n };\n // alerts.showErrorAlertFailChanges({ error });\n }\n }\n } catch (err) {\n const error = {\n errorMessage: err.toString(),\n errorNumber: -1\n };\n\n // alerts.showErrorAlertFailChanges({ error });\n }\n}\n\nexport function* watchUnassignScheduleUsersStarted() {\n yield takeEvery(types.USERS_UNASSIGN_SCHEDULE_STARTED, unassignSchedule);\n}\n","/* -------------------------------------------------------------------------- */\n/* Schema Workplans */\n/* -------------------------------------------------------------------------- */\n\nimport { schema } from 'normalizr';\n\nexport const workplan = new schema.Entity('workplans', {}, { idAttribute: 'workplanId' });\nexport const workplans = new schema.Array(workplan);\n","import { call, takeEvery, put, select } from 'redux-saga/effects';\n\nimport { normalize } from 'normalizr';\nimport API_BASE_URL from '../../../../../redux/sagas/settings/apibaseurl';\nimport * as actions from '../../actions/workplans';\nimport * as types from '../../types/workplans';\nimport * as selectors from '../../reducers/workplans';\nimport * as schemas from '../../schemas/workplans';\nimport * as authSelectors from '../../../../../redux/reducers/auth';\nimport * as entitySelectors from '../../../Entities/reducers';\nimport * as workplanSelectors from '../../reducers/workplans';\nimport * as geofenceSelectors from '../../../Geofences/reducers';\nimport camelcaseKeys from 'camelcase-keys';\nimport * as alerts from '../../../../../redux/utils/alerts';\nimport { appIntl } from '../../../../../utility/context/IntlGlobalProvider';\nimport {\n getWorkplansListService,\n deleteWorkplanService,\n saveWorkplanService\n} from '../../services/workplans';\nimport { store } from 'redux/storeConfig/store';\n\n/* -------------------------------------------------------------------------- */\n/* FETCH LIST */\n/* -------------------------------------------------------------------------- */\nfunction* fetchWorkplansList(action) {\n const { operatorId: filterOperatorId, organizationId: filterOrganizationId } = action.payload;\n const { operatorId, organizationId } = yield select(authSelectors.getAuthUserMembershipFilters, {\n filterOperatorId,\n filterOrganizationId\n });\n\n getWorkplansListService(\n { operatorId, organizationId },\n {\n successAction: (response) => {\n const resultData = response.data.map((result) => camelcaseKeys(result));\n const {\n entities: { workplans },\n result //order\n } = normalize(resultData, schemas.workplans); //normalize data to byId and order\n store.dispatch(\n actions.completeFetchingWorkplans(workplans, result, operatorId, organizationId)\n );\n },\n errorAction: (error) => {\n store.dispatch(actions.failFetchingWorkplans(error));\n }\n }\n );\n}\n\nexport function* watchFetchWorkplansList() {\n yield takeEvery(types.WORKPLANS_FETCH_STARTED, fetchWorkplansList);\n}\n/* -------------------------------------------------------------------------- */\n/* PARTIAL FETSH LIST */\n/* -------------------------------------------------------------------------- */\nfunction* partialFetchWorkplansList(action) {\n const {\n entityTypeId,\n operatorId: filterOperatorId,\n organizationId: filterOrganizationId\n } = action.payload;\n const date = yield select(entitySelectors.getUserUpdateByEntityDate, entityTypeId);\n const { operatorId, organizationId } = yield select(authSelectors.getAuthUserMembershipFilters, {\n filterOperatorId,\n filterOrganizationId\n });\n\n getWorkplansListService(\n { userFetchDate: date, operatorId, organizationId },\n {\n successAction: (response) => {\n const resultData = response.data.map((result) => camelcaseKeys(result));\n const {\n entities: { workplans },\n result //order\n } = normalize(resultData, schemas.workplans); //normalize data to byId and order\n store.dispatch(\n actions.completePartialFetchingWorkplans(workplans, result, operatorId, organizationId)\n );\n },\n errorAction: (error) => {\n store.dispatch(actions.failPartialFetchingWorkplans(error));\n }\n }\n );\n}\n\nexport function* watchPartialFetchWorkplansList() {\n yield takeEvery(types.WORKPLANS_PARTIAL_FETCH_STARTED, partialFetchWorkplansList);\n}\n\n/* -------------------------------------------------------------------------- */\n/* FETCH LOCATIONS LIST */\n/* -------------------------------------------------------------------------- */\nfunction* fetchWorkplanLocationsList(action) {\n const workplanId = action.payload;\n try {\n const isAuth = yield select(authSelectors.isAuthenticated);\n if (isAuth) {\n const token = yield select(authSelectors.getAuthToken);\n const response = yield call(fetch, `${API_BASE_URL}/workplan/getLocations`, {\n method: 'POST',\n body: JSON.stringify({ workplanId }),\n headers: {\n 'Content-Type': 'application/json',\n Authorization: `Bearer ${token}`\n }\n });\n const jsonResult = yield response.json();\n if (response.status <= 300 && jsonResult.success) {\n const locations = jsonResult.data.map((result) => camelcaseKeys(result));\n yield put(actions.completeFetchingWorkplanLocations(workplanId, locations));\n } else {\n const error = {\n errorMessage: jsonResult.message,\n errorNumber: jsonResult.number\n };\n // alerts.showErrorAlertFailChanges({ error });\n yield put(actions.failFetchingWorkplanLocations(error));\n }\n }\n } catch (err) {\n const error = {\n errorMessage: err.toString(),\n errorNumber: -1\n };\n // alerts.showErrorAlertFailChanges({ error });\n yield put(actions.failFetchingWorkplanLocations(error));\n }\n}\n\nexport function* watchFetchWorkplanLocationsList() {\n yield takeEvery(types.WORKPLAN_SELECTED, fetchWorkplanLocationsList);\n}\n/* -------------------------------------------------------------------------- */\n/* ADD */\n/* -------------------------------------------------------------------------- */\nfunction* addWorkplan(action) {\n const workplan = action.payload;\n\n saveWorkplanService(\n { ...workplan, workplanId: null },\n {\n successAction: async (response) => {\n const addedWorkplan = camelcaseKeys(response.data);\n store.dispatch(actions.completeAddingWorkplan(workplan.workplanId, addedWorkplan));\n },\n errorAction: async (error) => {\n store.dispatch(actions.failAddingWorkplan(workplan.workplanId, error));\n }\n },\n true\n );\n}\n\nexport function* watchAddWorkplansStarted() {\n yield takeEvery(types.WORKPLAN_ADD_STARTED, addWorkplan);\n}\n\n/* -------------------------------------------------------------------------- */\n/* EDIT */\n/* -------------------------------------------------------------------------- */\nfunction* editWorkplan(action) {\n const workplan = action.payload;\n const { oldWorkplan } = yield select(selectors.getWorkplan, workplan.workplanId);\n\n saveWorkplanService(\n workplan,\n {\n successAction: async (response) => {\n const editedWorkplan = camelcaseKeys(response.data);\n store.dispatch(actions.completeEditingWorkplan(editedWorkplan));\n },\n errorAction: async (error) => {\n store.dispatch(actions.failEditingWorkplan(oldWorkplan, error));\n }\n },\n false\n );\n}\n\nexport function* watchEditWorkplansStarted() {\n yield takeEvery(types.WORKPLAN_EDIT_STARTED, editWorkplan);\n}\n\n/* -------------------------------------------------------------------------- */\n/* REMOVE */\n/* -------------------------------------------------------------------------- */\nfunction* removeWorkplan(action) {\n const { workplanId } = action.payload;\n const workplanDeleted = yield select(workplanSelectors.getWorkplan, workplanId);\n\n deleteWorkplanService(\n { workplanId, workplanName: workplanDeleted?.workplanName },\n {\n successAction: async (response) => {\n store.dispatch(actions.completeRemovingWorkplan(workplanId));\n },\n errorAction: async (error) => {\n store.dispatch(actions.failRemovingWorkplan(workplanId, error));\n }\n }\n );\n}\n\nexport function* watchRemoveWorkplanStarted() {\n yield takeEvery(types.WORKPLAN_REMOVE_STARTED, removeWorkplan);\n}\n\n/* -------------------------------------------------------------------------- */\n/* Copy Workplan */\n/* -------------------------------------------------------------------------- */\nfunction* copyWorkplan(action) {\n const workplan = action.payload;\n try {\n const isAuth = yield select(authSelectors.isAuthenticated);\n\n if (isAuth) {\n const token = yield select(authSelectors.getAuthToken);\n\n const response = yield call(fetch, `${API_BASE_URL}/workplan/copyWorkplan`, {\n method: 'POST',\n body: JSON.stringify(workplan),\n headers: {\n 'Content-Type': 'application/json',\n Authorization: `Bearer ${token}`\n }\n });\n const jsonResult = yield response.json();\n if (response.status <= 300 && jsonResult.success) {\n yield put(\n actions.completeCopyWorkplan(\n workplan.workplanId,\n jsonResult.data.newWorkplanId,\n workplan.newWorkplanName,\n workplan.organizationId,\n workplan.divisionId,\n workplan.subdivisionId\n )\n );\n\n alerts.showSuccessMessage({\n success: appIntl().formatMessage({\n id: 'workplans.copySuccessful'\n })\n });\n } else {\n const error = {\n errorMessage: appIntl().formatMessage({\n id: 'workplans.copyError'\n }),\n errorNumber: jsonResult.number\n };\n alerts.showErrorAlertFailChanges({ error });\n yield put(actions.failCopyWorkplan(error));\n }\n }\n } catch (err) {\n const error = {\n errorMessage: appIntl().formatMessage({\n id: 'workplans.copyError'\n }),\n errorNumber: -1\n };\n alerts.showErrorAlertFailChanges({ error });\n yield put(actions.failCopyWorkplan(error));\n }\n}\n\nexport function* watchCopyWorkplanStarted() {\n yield takeEvery(types.WORKPLAN_COPY_STARTED, copyWorkplan);\n}\n\n/* -------------------------------------------------------------------------- */\n/* Assign Origin Geofence */\n/* -------------------------------------------------------------------------- */\nfunction* assignOriginGeofence(action) {\n const workplan = action.payload;\n const geofence = yield select(geofenceSelectors.getGeofence, workplan.originGeofenceId);\n try {\n const isAuth = yield select(authSelectors.isAuthenticated);\n\n if (isAuth) {\n const token = yield select(authSelectors.getAuthToken);\n\n const response = yield call(fetch, `${API_BASE_URL}/workplan/assignOriginGeofence`, {\n method: 'POST',\n body: JSON.stringify(workplan),\n headers: {\n 'Content-Type': 'application/json',\n Authorization: `Bearer ${token}`\n }\n });\n const jsonResult = yield response.json();\n if (\n response.status <= 300 &&\n jsonResult.success &&\n jsonResult.data.length === workplan.workplanIds.length\n ) {\n yield put(\n actions.completeAssignOriginGeofenceWorkplan(\n workplan.workplanIds,\n workplan.originGeofenceId,\n geofence.geofenceName,\n workplan.originExitWindow,\n workplan.originValidationWindow\n )\n );\n\n alerts.showSuccessMessage({\n success: appIntl().formatMessage({\n id: 'workplans.assignOriginGeofenceSuccess'\n })\n });\n } else {\n const error = {\n errorMessage: appIntl().formatMessage({\n id: 'workplans.assignOriginGeofenceError'\n }),\n errorNumber: jsonResult.number\n };\n alerts.showErrorAlertFailChanges({ error });\n yield put(actions.failAssignOriginGeofenceWorkplan(error));\n }\n }\n } catch (err) {\n const error = {\n errorMessage: appIntl().formatMessage({\n id: 'workplans.assignOriginGeofenceError'\n }),\n errorNumber: -1\n };\n alerts.showErrorAlertFailChanges({ error });\n yield put(actions.failAssignOriginGeofenceWorkplan(error));\n }\n}\n\nexport function* watchAssignOriginGeofenceStarted() {\n yield takeEvery(types.WORKPLANS_ASSIGN_ORIGIN_GEOFENCE_STARTED, assignOriginGeofence);\n}\n\n/* -------------------------------------------------------------------------- */\n/* Assign Work Area Geofence */\n/* -------------------------------------------------------------------------- */\nfunction* assignWorkGeofence(action) {\n const workplan = action.payload;\n const geofence = yield select(geofenceSelectors.getGeofence, workplan.workGeofenceId);\n try {\n const isAuth = yield select(authSelectors.isAuthenticated);\n\n if (isAuth) {\n const token = yield select(authSelectors.getAuthToken);\n\n const response = yield call(fetch, `${API_BASE_URL}/workplan/assignWorkGeofence`, {\n method: 'POST',\n body: JSON.stringify(workplan),\n headers: {\n 'Content-Type': 'application/json',\n Authorization: `Bearer ${token}`\n }\n });\n const jsonResult = yield response.json();\n if (\n response.status <= 300 &&\n jsonResult.success &&\n jsonResult.data.length === workplan.workplanIds.length\n ) {\n yield put(\n actions.completeAssignWorkGeofenceWorkplan(\n workplan.workplanIds,\n workplan.workGeofenceId,\n geofence.geofenceName,\n workplan.workGeofenceArriveWindow,\n workplan.workGeofenceMaxTime\n )\n );\n\n alerts.showSuccessMessage({\n success: appIntl().formatMessage({\n id: 'workplans.assignWorkGeofenceSuccess'\n })\n });\n } else {\n const error = {\n errorMessage: appIntl().formatMessage({\n id: 'workplans.assignWorkGeofenceError'\n }),\n errorNumber: jsonResult.number\n };\n alerts.showErrorAlertFailChanges({ error });\n yield put(actions.failAssignWorkGeofenceWorkplan(error));\n }\n }\n } catch (err) {\n const error = {\n errorMessage: appIntl().formatMessage({\n id: 'workplans.assignWorkGeofenceError'\n }),\n errorNumber: -1\n };\n alerts.showErrorAlertFailChanges({ error });\n yield put(actions.failAssignWorkGeofenceWorkplan(error));\n }\n}\n\nexport function* watchAssignWorkGeofenceStarted() {\n yield takeEvery(types.WORKPLANS_ASSIGN_WORK_AREA_GEOFENCE_STARTED, assignWorkGeofence);\n}\n\n/* -------------------------------------------------------------------------- */\n/* Assign Destination Geofence */\n/* -------------------------------------------------------------------------- */\nfunction* assignDestinationGeofence(action) {\n const workplan = action.payload;\n const geofence = yield select(geofenceSelectors.getGeofence, workplan.destinationGeofenceId);\n try {\n const isAuth = yield select(authSelectors.isAuthenticated);\n\n if (isAuth) {\n const token = yield select(authSelectors.getAuthToken);\n\n const response = yield call(fetch, `${API_BASE_URL}/workplan/assignDestinationGeofence`, {\n method: 'POST',\n body: JSON.stringify(workplan),\n headers: {\n 'Content-Type': 'application/json',\n Authorization: `Bearer ${token}`\n }\n });\n const jsonResult = yield response.json();\n if (\n response.status <= 300 &&\n jsonResult.success &&\n jsonResult.data.length === workplan.workplanIds.length\n ) {\n yield put(\n actions.completeAssignDestinationGeofenceWorkplan(\n workplan.workplanIds,\n workplan.destinationGeofenceId,\n geofence.geofenceName\n )\n );\n\n alerts.showSuccessMessage({\n success: appIntl().formatMessage({\n id: 'workplans.assignDestinationGeofenceSuccess'\n })\n });\n } else {\n const error = {\n errorMessage: appIntl().formatMessage({\n id: 'workplans.assignDestinationGeofenceError'\n }),\n errorNumber: jsonResult.number\n };\n alerts.showErrorAlertFailChanges({ error });\n yield put(actions.failAssignDestinationGeofenceWorkplan(error));\n }\n }\n } catch (err) {\n const error = {\n errorMessage: appIntl().formatMessage({\n id: 'workplans.assignDestinationGeofenceError'\n }),\n errorNumber: -1\n };\n alerts.showErrorAlertFailChanges({ error });\n yield put(actions.failAssignDestinationGeofenceWorkplan(error));\n }\n}\n\nexport function* watchAssignDestinationGeofenceStarted() {\n yield takeEvery(types.WORKPLANS_ASSIGN_DESTINATION_GEOFENCE_STARTED, assignDestinationGeofence);\n}\n","/* -------------------------------------------------------------------------- */\n/* Schema Workplan Assignment */\n/* -------------------------------------------------------------------------- */\n\nimport { schema } from 'normalizr';\n\nexport const assignmentBySchedule = new schema.Entity(\n 'assignmentsBySchedule',\n {},\n { idAttribute: 'assignmentId' }\n);\nexport const assignmentsBySchedule = new schema.Array(assignmentBySchedule);\n\nexport const assignmentByDateTime = new schema.Entity(\n 'assignmentsByDateTime',\n {},\n { idAttribute: 'assignmentId' }\n);\nexport const assignmentsByDateTime = new schema.Array(assignmentByDateTime);\n","import { call, takeEvery, put, select } from 'redux-saga/effects';\n\nimport { normalize } from 'normalizr';\nimport * as actions from '../../actions/workplansAssignments';\nimport * as types from '../../types/workplansAssignments';\nimport * as selectors from '../../reducers/workplansAssignments';\nimport * as schemas from '../../schemas/workplanAssignments';\nimport camelcaseKeys from 'camelcase-keys';\nimport { store } from 'redux/storeConfig/store';\nimport {\n getWorkplansAssignmentsListService,\n saveWorkplanAssignmentByScheduleService,\n saveWorkplanAssignmentByDateTimeService,\n deleteWorkplanAssignmentService\n} from '../../services/workplansAssignments';\nimport { appIntl } from '../../../../../utility/context/IntlGlobalProvider';\nimport * as authSelectors from '../../../../../redux/reducers/auth';\nimport * as alerts from '../../../../../redux/utils/alerts';\nimport API_BASE_URL from '../../../../../redux/sagas/settings/apibaseurl';\nimport { endDateAdjustment } from 'utility/http/interceptors/interceptor-utils';\n\n/* -------------------------------------------------------------------------- */\n/* FETCH LIST */\n/* -------------------------------------------------------------------------- */\nfunction* fetchAssignmentsList(action) {\n const { operatorId, organizationId } = action.payload;\n getWorkplansAssignmentsListService(\n { operatorId, organizationId },\n {\n successAction: (response) => {\n const resultDataWS = response.data.withScheduleList.map((result) => camelcaseKeys(result));\n const resultDataWDT = response.data.withDateTimeList.map((result) => camelcaseKeys(result));\n const {\n entities: { assignmentsBySchedule },\n result: withScheduleOrder //order\n } = normalize(resultDataWS, schemas.assignmentsBySchedule); //normalize data to byId and order\n const {\n entities: { assignmentsByDateTime },\n result: withDateTimeOrder //order\n } = normalize(resultDataWDT, schemas.assignmentsByDateTime); //normalize data to byId and order\n store.dispatch(\n actions.completeFetchingAssignmentsWithSchedule(assignmentsBySchedule, withScheduleOrder)\n );\n store.dispatch(\n actions.completeFetchingAssignmentsWithDateTime(assignmentsByDateTime, withDateTimeOrder)\n );\n },\n errorAction: (error) => {\n store.dispatch(actions.failFetchingAssignments(error));\n }\n }\n );\n}\n\nexport function* watchFetchWorkplansAssignmentsList() {\n yield takeEvery(types.WORKPLAN_ASSIGNMENT_FETCH_STARTED, fetchAssignmentsList);\n}\n\n/* -------------------------------------------------------------------------- */\n/* EDIT ASSIGNMENT BY SCHEDULE */\n/* -------------------------------------------------------------------------- */\nfunction* editAssignmentBySchedule(action) {\n const assignment = action.payload;\n try {\n const isAuth = yield select(authSelectors.isAuthenticated);\n\n if (isAuth) {\n const token = yield select(authSelectors.getAuthToken);\n const response = yield call(\n fetch,\n `${API_BASE_URL}/workplan/updateWorkplanAssignmentSchedule`,\n {\n method: 'POST',\n body: JSON.stringify(\n endDateAdjustment({\n ...assignment\n })\n ),\n headers: {\n 'Content-Type': 'application/json',\n Authorization: `Bearer ${token}`\n }\n }\n );\n const jsonResult = yield response.json();\n if (response.status <= 300 && jsonResult.success) {\n const editedAssignment = camelcaseKeys(jsonResult.data);\n yield put(actions.completeEditingAssignmentWithSchedule(editedAssignment));\n alerts.showSuccessEditedMessage({\n object: appIntl().formatMessage({\n id: 'workplans.workplanAssignment'\n }),\n name: editedAssignment.workplanName,\n altText: true\n });\n } else {\n const error = {\n errorMessage: appIntl().formatMessage({\n id: 'workplans.assignmentByScheduleEditFailure'\n }),\n errorNumber: jsonResult.number\n };\n const { oldAssignment } = yield select((state) =>\n selectors.getWorkplansAssignment(state, assignment.assignmentId, 'bySchedule')\n );\n yield put(actions.failEditingAssignmentWithSchedule(oldAssignment, error));\n alerts.showErrorAlertFailChanges({ error });\n }\n }\n } catch (err) {\n const error = {\n errorMessage: appIntl().formatMessage({ id: 'workplans.assignmentByDateTimeEditFailure' }),\n errorNumber: -1\n };\n\n const { oldAssignment } = yield select((state) =>\n selectors.getWorkplansAssignment(state, assignment.assignmentId, 'bySchedule')\n );\n yield put(actions.failEditingAssignmentWithSchedule(oldAssignment, error));\n alerts.showErrorAlertFailChanges({ error });\n }\n}\n\nexport function* watchEditWorkplanAssignmentByScheduleStarted() {\n yield takeEvery(types.WORKPLAN_ASSIGNMENT_BY_SCHEDULE_EDIT_STARTED, editAssignmentBySchedule);\n}\n\n/* -------------------------------------------------------------------------- */\n/* EDIT ASSIGNMENT BY DATETIME */\n/* -------------------------------------------------------------------------- */\nfunction* editAssignmentByDateTime(action) {\n const assignment = action.payload;\n try {\n const isAuth = yield select(authSelectors.isAuthenticated);\n\n if (isAuth) {\n const token = yield select(authSelectors.getAuthToken);\n const response = yield call(\n fetch,\n `${API_BASE_URL}/workplan/updateWorkplanAssignmentDateTime`,\n {\n method: 'POST',\n body: JSON.stringify(\n endDateAdjustment({\n ...assignment\n })\n ),\n headers: {\n 'Content-Type': 'application/json',\n Authorization: `Bearer ${token}`\n }\n }\n );\n const jsonResult = yield response.json();\n if (response.status <= 300 && jsonResult.success) {\n const editedAssignment = camelcaseKeys(jsonResult.data);\n yield put(actions.completeEditingAssignmentWithDateTime(editedAssignment));\n alerts.showSuccessEditedMessage({\n object: appIntl().formatMessage({\n id: 'workplans.workplanAssignment'\n }),\n name: editedAssignment.workplanName,\n altText: true\n });\n } else {\n const error = {\n errorMessage: appIntl().formatMessage({\n id: 'workplans.assignmentByDateTimeEditFailure'\n }),\n errorNumber: jsonResult.number\n };\n const { oldAssignment } = yield select((state) =>\n selectors.getWorkplansAssignment(state, assignment.assignmentId, 'byDateTime')\n );\n yield put(actions.failEditingAssignmentWithDateTime(oldAssignment, error));\n alerts.showErrorAlertFailChanges({ error });\n }\n }\n } catch (err) {\n const error = {\n errorMessage: appIntl().formatMessage({ id: 'workplans.assignmentByDateTimeEditFailure' }),\n errorNumber: -1\n };\n\n const { oldAssignment } = yield select((state) =>\n selectors.getWorkplansAssignment(state, assignment.assignmentId, 'byDateTime')\n );\n yield put(actions.failEditingAssignmentWithDateTime(oldAssignment, error));\n alerts.showErrorAlertFailChanges({ error });\n }\n}\n\nexport function* watchEditWorkplanAssignmentByDateTimeStarted() {\n yield takeEvery(types.WORKPLAN_ASSIGNMENT_BY_DATETIME_EDIT_STARTED, editAssignmentByDateTime);\n}\n\n/* -------------------------------------------------------------------------- */\n/* REMOVE */\n/* -------------------------------------------------------------------------- */\nfunction* removeWorkplanAssignment(action) {\n const { assignmentId, assignmentType } = action.payload;\n const assignmentDeleted = yield select(\n selectors.getWorkplansAssignment,\n assignmentId,\n assignmentType\n );\n\n deleteWorkplanAssignmentService(\n {\n assignmentId,\n assignmentName: `${assignmentDeleted?.workplanName}-${assignmentDeleted?.unitName}`\n },\n {\n successAction: async (response) => {\n assignmentType === 'bySchedule'\n ? store.dispatch(actions.completeRemovingAssignmentWithSchedule(assignmentId))\n : assignmentType === 'byDateTime'\n ? store.dispatch(actions.completeRemovingAssignmentWithDateTime(assignmentId))\n : '';\n },\n errorAction: async (error) => {\n store.dispatch(actions.failRemovingAssignment(assignmentId, error));\n }\n }\n );\n}\n\nexport function* watchRemoveWorkplanAssignmentStarted() {\n yield takeEvery(types.WORKPLAN_ASSIGNMENT_REMOVE_STARTED, removeWorkplanAssignment);\n}\n","/* -------------------------------------------------------------------------- */\n/* Schema Workplan Comments */\n/* -------------------------------------------------------------------------- */\n\nimport { schema } from 'normalizr';\n\nexport const comment = new schema.Entity('comments', {}, { idAttribute: 'jobCommentId' });\nexport const comments = new schema.Array(comment);\n","import { HttpWebtrack } from 'utility/http';\nimport { ConfigActions } from '../../../../utility/http/http-events';\n\nimport configureInterceptors from 'utility/http/interceptors/configure-interceptors';\nimport { store } from 'redux/storeConfig/store';\n\nexport const baseUrl = '/workplan';\n\nexport const getWorkplanCommentsListService = async (\n request: any,\n configActions: ConfigActions\n) => {\n const httpWebtrack = new HttpWebtrack();\n configureInterceptors.ConfigureWebtrackInterceptor(store, httpWebtrack);\n\n httpWebtrack.setConfigActions(configActions);\n return httpWebtrack.post(`${baseUrl}/getComments`, request);\n};\n\nexport const saveCommentService = (request: any, configActions: ConfigActions) => {\n const httpWebtrack = new HttpWebtrack();\n configureInterceptors.ConfigureWebtrackInterceptor(store, httpWebtrack);\n httpWebtrack.setConfigMessage({\n object: 'workplans.comment',\n action: request.workplanCommentId ? 'Edit' : 'Create',\n genderType: 'SingularMale'\n });\n httpWebtrack.setConfigActions(configActions);\n return httpWebtrack.post(`${baseUrl}/saveComment`, request);\n};\n\nexport const deleteCommentService = (request: any, configActions: ConfigActions) => {\n const httpWebtrack = new HttpWebtrack();\n configureInterceptors.ConfigureWebtrackInterceptor(store, httpWebtrack);\n httpWebtrack.setConfigMessage({\n object: 'workplans.comment',\n action: 'Delete',\n genderType: 'SingularMale'\n });\n httpWebtrack.setConfigActions(configActions);\n return httpWebtrack.post(`${baseUrl}/deleteComment`, request);\n};\n","import { call, takeEvery, put, select } from 'redux-saga/effects';\n\nimport { normalize } from 'normalizr';\nimport API_BASE_URL from '../../../../../redux/sagas/settings/apibaseurl';\nimport * as actions from '../../actions/workplansComments';\nimport * as types from '../../types/workplansComments';\nimport * as selectors from '../../reducers/workplansComments';\nimport * as schemas from '../../schemas/workplansComments';\nimport * as entitySelectors from '../../../Entities/reducers';\nimport * as authSelectors from '../../../../../redux/reducers/auth';\nimport camelcaseKeys from 'camelcase-keys';\nimport * as alerts from '../../../../../redux/utils/alerts';\nimport { appIntl } from '../../../../../utility/context/IntlGlobalProvider';\nimport { store } from 'redux/storeConfig/store';\nimport {\n deleteCommentService,\n getWorkplanCommentsListService,\n saveCommentService\n} from '../../services/workplansComments';\n\n/* -------------------------------------------------------------------------- */\n/* FETCH LIST */\n/* -------------------------------------------------------------------------- */\nfunction* fetchCommentsList(action) {\n const { visitId, locationId } = action.payload;\n\n getWorkplanCommentsListService(\n { visitId, locationId },\n {\n successAction: (response) => {\n const resultData = response.data.map((result) => camelcaseKeys(result));\n const {\n entities: { comments },\n result //order\n } = normalize(resultData, schemas.comments); //normalize data to byId and order\n store.dispatch(actions.completeFetchingComments(comments, result));\n },\n errorAction: (error) => {\n store.dispatch(actions.failFetchingComments(error));\n }\n }\n );\n}\n\nexport function* watchFetchWorkplansCommentsList() {\n yield takeEvery(types.WORKPLAN_COMMENTS_FETCH_STARTED, fetchCommentsList);\n}\n\n/* -------------------------------------------------------------------------- */\n/* ADD */\n/* -------------------------------------------------------------------------- */\nfunction* addComment(action) {\n const comment = action.payload;\n saveCommentService(\n { ...comment, jobCommentId: null },\n {\n successAction: (response) => {\n const addedComment = camelcaseKeys(response.data);\n store.dispatch(actions.completeAddingComment(comment.jobCommentId, addedComment));\n },\n errorAction: (error) => {\n store.dispatch(actions.failAddingComment(comment.jobCommentId, error));\n }\n }\n );\n}\n\nexport function* watchAddWorkplansCommentStarted() {\n yield takeEvery(types.WORKPLAN_COMMENT_ADD_STARTED, addComment);\n}\n\n/* -------------------------------------------------------------------------- */\n/* REMOVE */\n/* -------------------------------------------------------------------------- */\nfunction* removeComment(action) {\n const { jobCommentId } = action.payload;\n const deletedComment = yield select((state) =>\n selectors.getWorkplansComment(state, jobCommentId)\n );\n deleteCommentService(\n { ...deletedComment },\n {\n successAction: (response) => {\n store.dispatch(actions.completeRemovingComment(jobCommentId));\n },\n errorAction: (error) => {\n store.dispatch(actions.failRemovingComment(jobCommentId, error));\n }\n }\n );\n}\n\nexport function* watchRemoveWorkplansCommentStarted() {\n yield takeEvery(types.WORKPLAN_COMMENT_REMOVE_STARTED, removeComment);\n}\n","import * as types from '../../types/workplansExecutionLocations';\n\nexport const startAddingWorkplanExecutionLocation = (workplanExecutionLocation) => ({\n type: types.WORKPLANS_EXECUTION_LOCATION_ADD_STARTED,\n payload: workplanExecutionLocation\n});\nexport const completeAddingWorkplanExecutionLocation = (oldId, workplanExecutionLocation) => ({\n type: types.WORKPLANS_EXECUTION_LOCATION_ADD_COMPLETED,\n payload: { oldId, workplanExecutionLocation }\n});\nexport const failAddingWorkplanExecutionLocation = (oldId, error) => ({\n type: types.WORKPLANS_EXECUTION_LOCATION_ADD_FAILED,\n payload: {\n oldId,\n error\n }\n});\n\nexport const startEditingWorkplanExecutionLocation = (workplanExecutionLocation) => ({\n type: types.WORKPLANS_EXECUTION_LOCATION_EDIT_STARTED,\n payload: workplanExecutionLocation\n});\nexport const completeEditingWorkplanExecutionLocation = (workplanExecutionLocation) => ({\n type: types.WORKPLANS_EXECUTION_LOCATION_EDIT_COMPLETED,\n payload: workplanExecutionLocation\n});\nexport const failEditingWorkplanExecutionLocation = (oldWorkplanExecutionLocation, error) => ({\n type: types.WORKPLANS_EXECUTION_LOCATION_EDIT_FAILED,\n payload: {\n oldWorkplanExecutionLocation,\n error\n }\n});\n\nexport const startRemovingWorkplanExecutionLocation = (\n visitId,\n locationId,\n sequenceNumber,\n applyToWorkplan\n) => ({\n type: types.WORKPLANS_EXECUTION_LOCATION_REMOVE_STARTED,\n payload: {\n visitId,\n locationId,\n sequenceNumber,\n applyToWorkplan\n }\n});\nexport const completeRemovingWorkplanExecutionLocation = (workplanExecutionLocationId) => ({\n type: types.WORKPLANS_EXECUTION_LOCATION_REMOVE_COMPLETED,\n payload: {\n workplanExecutionLocationId\n }\n});\nexport const failRemovingWorkplanExecutionLocation = (workplanExecutionLocationId, error) => ({\n type: types.WORKPLANS_EXECUTION_LOCATION_REMOVE_FAILED,\n payload: {\n workplanExecutionLocationId,\n error\n }\n});\n","import { call, takeEvery, put, select } from 'redux-saga/effects';\n\nimport * as actions from '../../actions/workplansExecutionLocations';\nimport * as types from '../../types/workplansExecutionLocations';\nimport * as selectors from '../../reducers/workplansExecutionLocations';\nimport camelcaseKeys from 'camelcase-keys';\nimport {\n saveWorkplanExecutionLocationService,\n deleteWorkplanExecutionLocationService\n} from '../../services/workplans';\nimport { store } from 'redux/storeConfig/store';\n\nconst getWorkplanExecutionLocationId = (workplanExecutionLocation) =>\n `${workplanExecutionLocation.visitId}-${workplanExecutionLocation.locationId}`;\n\n/* -------------------------------------------------------------------------- */\n/* ADD */\n/* -------------------------------------------------------------------------- */\nfunction* addWorkplanExecutionLocation(action) {\n const workplanExecutionLocation = action.payload;\n\n saveWorkplanExecutionLocationService(workplanExecutionLocation, {\n successAction: async (response) => {\n const addedWorkplanExecutionLocation = camelcaseKeys(response.data);\n store.dispatch(\n actions.completeAddingWorkplanExecutionLocation(\n workplanExecutionLocation.workplanExecutionLocationId,\n {\n workplanExecutionLocationId: getWorkplanExecutionLocationId(\n addedWorkplanExecutionLocation\n ),\n ...addedWorkplanExecutionLocation\n }\n )\n );\n },\n errorAction: async (error) => {\n store.dispatch(\n actions.failAddingWorkplanExecutionLocation(workplanExecutionLocation.workplanId, error)\n );\n }\n });\n}\n\nexport function* watchAddWorkplanExecutionLocationsStarted() {\n yield takeEvery(types.WORKPLANS_EXECUTION_LOCATION_ADD_STARTED, addWorkplanExecutionLocation);\n}\n\n/* -------------------------------------------------------------------------- */\n/* EDIT */\n/* -------------------------------------------------------------------------- */\nfunction* editWorkplanExecutionLocation(action) {\n const workplanExecutionLocation = action.payload;\n const { oldWorkplanExecutionLocation } = yield select(\n selectors.getLocation,\n workplanExecutionLocation.workplanExecutionLocationId\n );\n\n saveWorkplanExecutionLocationService(workplanExecutionLocation, {\n successAction: async (response) => {\n const editedWorkplanExecutionLocation = camelcaseKeys(response.data);\n store.dispatch(\n actions.completeEditingWorkplanExecutionLocation({\n workplanExecutionLocationId: getWorkplanExecutionLocationId(\n editedWorkplanExecutionLocation\n ),\n ...editedWorkplanExecutionLocation\n })\n );\n },\n errorAction: async (error) => {\n store.dispatch(\n actions.failEditingWorkplanExecutionLocation(oldWorkplanExecutionLocation, error)\n );\n }\n });\n}\n\nexport function* watchEditWorkplanExecutionLocationsStarted() {\n yield takeEvery(types.WORKPLANS_EXECUTION_LOCATION_EDIT_STARTED, editWorkplanExecutionLocation);\n}\n\n/* -------------------------------------------------------------------------- */\n/* REMOVE */\n/* -------------------------------------------------------------------------- */\nfunction* removeWorkplanExecutionLocation(action) {\n const workplanExecutionLocation = action.payload;\n const workplanExecutionLocationDeleted = yield select(\n selectors.getLocation,\n getWorkplanExecutionLocationId(workplanExecutionLocation)\n );\n\n deleteWorkplanExecutionLocationService(\n { ...workplanExecutionLocation, locationName: workplanExecutionLocationDeleted?.locationName },\n {\n successAction: async (response) => {\n store.dispatch(\n actions.completeRemovingWorkplanExecutionLocation(\n getWorkplanExecutionLocationId(workplanExecutionLocation)\n )\n );\n },\n errorAction: async (error) => {\n store.dispatch(\n actions.failRemovingWorkplanExecutionLocation(\n getWorkplanExecutionLocationId(workplanExecutionLocation),\n error\n )\n );\n }\n }\n );\n}\n\nexport function* watchRemoveWorkplanExecutionLocationStarted() {\n yield takeEvery(\n types.WORKPLANS_EXECUTION_LOCATION_REMOVE_STARTED,\n removeWorkplanExecutionLocation\n );\n}\n","import * as types from '../../types/workplansExecutions';\n\nexport const startFetchingWorkplansExecutions = (filters = {}) => ({\n type: types.WORKPLANS_EXECUTIONS_FETCH_STARTED,\n payload: filters\n});\nexport const completeFetchingWorkplansExecutions = (\n entities,\n order,\n indicators,\n executionStatus,\n geographicStatus\n) => ({\n type: types.WORKPLANS_EXECUTIONS_FETCH_COMPLETED,\n payload: {\n entities,\n order,\n indicators,\n executionStatus,\n geographicStatus\n }\n});\nexport const failFetchingWorkplansExecutions = (\n error = { errorMessage: 'Error', errorNumber: 404 }\n) => ({\n type: types.WORKPLANS_EXECUTIONS_FETCH_FAILED,\n payload: {\n error //error:{errorMessage:'Error', errorNumber:400}\n }\n});\n\nexport const startFetchingWorkplanExecution = (visitId) => ({\n type: types.WORKPLAN_EXECUTION_FETCH_STARTED,\n payload: {\n visitId\n }\n});\nexport const completeFetchingWorkplanExecution = (\n workplanExecution,\n workplanExecutionLocationsEntities,\n workplanExecutionLocationsOrder\n) => ({\n type: types.WORKPLAN_EXECUTION_FETCH_COMPLETED,\n payload: {\n workplanExecution,\n workplanExecutionLocationsEntities,\n workplanExecutionLocationsOrder\n }\n});\nexport const failFetchingWorkplanExecution = (\n error = { errorMessage: 'Error', errorNumber: 404 }\n) => ({\n type: types.WORKPLAN_EXECUTION_FETCH_FAILED,\n payload: {\n error //error:{errorMessage:'Error', errorNumber:400}\n }\n});\n\nexport const startCancelWorkplansExecutions = (visitId, unitId, assignmentId?: number) => ({\n type: types.WORKPLANS_EXECUTION_CANCEL_STARTED,\n payload: { visitId, unitId, assignmentId }\n});\nexport const completeCancelWorkplansExecutions = (visitId, unitId) => ({\n type: types.WORKPLANS_EXECUTION_CANCEL_COMPLETED,\n payload: { visitId, unitId }\n});\nexport const failCancelWorkplansExecutions = (\n error = { errorMessage: 'Error', errorNumber: 404 }\n) => ({\n type: types.WORKPLANS_EXECUTION_CANCEL_FAILED,\n payload: {\n error //error:{errorMessage:'Error', errorNumber:400}\n }\n});\n\nexport const startFinalizeWorkplansExecutions = (visitId, unitId, assignmentId?: number) => ({\n type: types.WORKPLANS_EXECUTION_FINALIZE_STARTED,\n payload: { visitId, unitId, assignmentId }\n});\nexport const completeFinalizeWorkplansExecutions = (visitId, unitId) => ({\n type: types.WORKPLANS_EXECUTION_FINALIZE_COMPLETED,\n payload: { visitId, unitId }\n});\nexport const failFinalizeWorkplansExecutions = (\n error = { errorMessage: 'Error', errorNumber: 404 }\n) => ({\n type: types.WORKPLANS_EXECUTION_FINALIZE_FAILED,\n payload: {\n error //error:{errorMessage:'Error', errorNumber:400}\n }\n});\n\nexport const startManualTransitWorkplansExecutions = (visitId, unitId, reason) => ({\n type: types.WORKPLANS_EXECUTION_MANUAL_TRANSIT_STARTED,\n payload: { visitId, unitId, reason }\n});\nexport const completeManualTransitWorkplansExecutions = (visitId, unitId) => ({\n type: types.WORKPLANS_EXECUTION_MANUAL_TRANSIT_COMPLETED,\n payload: { visitId, unitId }\n});\nexport const failManualTransitWorkplansExecutions = (\n error = { errorMessage: 'Error', errorNumber: 404 }\n) => ({\n type: types.WORKPLANS_EXECUTION_MANUAL_TRANSIT_FAILED,\n payload: {\n error //error:{errorMessage:'Error', errorNumber:400}\n }\n});\n\nexport const startChangeUnitWorkplansExecutions = (visitId, unitId) => ({\n type: types.WORKPLANS_EXECUTION_CHANGE_UNIT_STARTED,\n payload: { visitId, unitId }\n});\nexport const completeChangeUnitWorkplansExecutions = (visitId, unitId) => ({\n type: types.WORKPLANS_EXECUTION_CHANGE_UNIT_COMPLETED,\n payload: { visitId, unitId }\n});\nexport const failChangeUnitWorkplansExecutions = (\n error = { errorMessage: 'Error', errorNumber: 404 }\n) => ({\n type: types.WORKPLANS_EXECUTION_CHANGE_UNIT_FAILED,\n payload: {\n error //error:{errorMessage:'Error', errorNumber:400}\n }\n});\n\nexport const startAssignUnitWorkplansExecutions = (assignation) => ({\n type: types.WORKPLANS_EXECUTION_ASSIGN_UNIT_STARTED,\n payload: assignation\n});\nexport const completeAssignUnitWorkplansExecutions = (assignation) => ({\n type: types.WORKPLANS_EXECUTION_ASSIGN_UNIT_COMPLETED,\n payload: assignation\n});\nexport const failAssignUnitWorkplansExecutions = (\n error = { errorMessage: 'Error', errorNumber: 404 }\n) => ({\n type: types.WORKPLANS_EXECUTION_ASSIGN_UNIT_FAILED,\n payload: {\n error //error:{errorMessage:'Error', errorNumber:400}\n }\n});\n","/* -------------------------------------------------------------------------- */\n/* Schema Execution Workplans */\n/* -------------------------------------------------------------------------- */\n\nimport { schema } from 'normalizr';\n\nexport const workplanExecution = new schema.Entity(\n 'workplansExecutions',\n {},\n { idAttribute: 'visitId' }\n);\nexport const workplansExecutions = new schema.Array(workplanExecution);\n","/* -------------------------------------------------------------------------- */\n/* Schema Execution Workplans */\n/* -------------------------------------------------------------------------- */\n\nimport { schema } from 'normalizr';\n\nexport const workplanExecutionLocation = new schema.Entity(\n 'workplanExecutionLocations',\n {},\n { idAttribute: (value) => `${value.visitId}-${value.locationId}` }\n);\nexport const workplanExecutionLocations = new schema.Array(workplanExecutionLocation);\n","import { call, takeEvery, put, select } from 'redux-saga/effects';\n\nimport { normalize } from 'normalizr';\nimport API_BASE_URL from '../../../../../redux/sagas/settings/apibaseurl';\n\nimport * as actions from '../../actions/workplansExecutions';\nimport * as types from '../../types/workplansExecutions';\nimport * as selectors from '../../reducers/workplans';\nimport * as schemas from '../../schemas/workplansExecutions';\nimport * as schemasWorkplanExecutionLocation from '../../schemas/workplansExecutionLocations';\n\nimport * as authSelectors from '../../../../../redux/reducers/auth';\nimport camelcaseKeys from 'camelcase-keys';\nimport * as alerts from '../../../../../redux/utils/alerts';\nimport { useIntl } from 'react-intl';\nimport { appIntl } from '../../../../../utility/context/IntlGlobalProvider';\nimport { endDateAdjustment } from 'utility/http/interceptors/interceptor-utils';\n\n/* -------------------------------------------------------------------------- */\n/* FETCH LIST EXECUTIONS */\n/* -------------------------------------------------------------------------- */\nfunction* fetchWorkplansExecutions(action) {\n try {\n const filters = action.payload;\n const isAuth = yield select(authSelectors.isAuthenticated);\n if (isAuth) {\n const token = yield select(authSelectors.getAuthToken);\n const response = yield call(fetch, `${API_BASE_URL}/workplan/getWorkplansExecutions`, {\n method: 'POST',\n body: JSON.stringify(endDateAdjustment({ ...filters })),\n headers: {\n 'Content-Type': 'application/json',\n Authorization: `Bearer ${token}`\n }\n });\n const jsonResult = yield response.json();\n if (response.status <= 300 && jsonResult.success) {\n const indicators = camelcaseKeys(jsonResult.data.indicators);\n\n const executionStatus = camelcaseKeys(jsonResult.data.executionStatus);\n\n const geographicStatus = camelcaseKeys(jsonResult.data.geographicStatus);\n\n const resultData = jsonResult.data.workplansList.map((result) => camelcaseKeys(result));\n const {\n entities: { workplansExecutions },\n result //order\n } = normalize(resultData, schemas.workplansExecutions); //normalize data to byId and order\n yield put(\n actions.completeFetchingWorkplansExecutions(\n workplansExecutions,\n result,\n indicators,\n executionStatus,\n geographicStatus\n )\n );\n } else {\n const error = {\n errorMessage: appIntl().formatMessage({\n id: 'workplans.workplanFetchMonitorMessageError'\n }),\n errorNumber: jsonResult.number\n };\n // alerts.showErrorAlertFailChanges({ error });\n yield put(actions.failFetchingWorkplansExecutions(error));\n }\n }\n } catch (err) {\n const error = {\n errorMessage: appIntl().formatMessage({\n id: 'workplans.workplanFetchMonitorMessageError'\n }),\n errorNumber: -1\n };\n // alerts.showErrorAlertFailChanges({ error });\n yield put(actions.failFetchingWorkplansExecutions(error));\n }\n}\n\nexport function* watchFetchWorkplansExecutions() {\n yield takeEvery(types.WORKPLANS_EXECUTIONS_FETCH_STARTED, fetchWorkplansExecutions);\n}\n/* -------------------------------------------------------------------------- */\n/* FETCH EXECUTION */\n/* -------------------------------------------------------------------------- */\nfunction* fetchWorkplanExecution(action) {\n try {\n const workplanExecution = action.payload;\n const isAuth = yield select(authSelectors.isAuthenticated);\n if (isAuth) {\n const token = yield select(authSelectors.getAuthToken);\n const response = yield call(fetch, `${API_BASE_URL}/workplan/getWorkplanExecution`, {\n method: 'POST',\n body: JSON.stringify(endDateAdjustment({ ...workplanExecution })),\n headers: {\n 'Content-Type': 'application/json',\n Authorization: `Bearer ${token}`\n }\n });\n const jsonResult = yield response.json();\n if (response.status <= 300 && jsonResult.success) {\n const workplanExecution = camelcaseKeys(jsonResult.data.workplanExecution);\n\n const resultData = jsonResult.data.locationsList.map((result) => camelcaseKeys(result));\n const {\n entities: { workplanExecutionLocations },\n result //order\n } = normalize(resultData, schemasWorkplanExecutionLocation.workplanExecutionLocations); //normalize data to byId and order\n\n yield put(\n actions.completeFetchingWorkplanExecution(\n workplanExecution,\n workplanExecutionLocations,\n result\n )\n );\n } else {\n const error = {\n errorMessage: appIntl().formatMessage({\n id: 'workplans.fetchWorkplanExecutionError'\n }),\n errorNumber: jsonResult.number\n };\n // alerts.showErrorAlertFailChanges({ error });\n yield put(actions.failFetchingWorkplanExecution(error));\n }\n }\n } catch (err) {\n const error = {\n errorMessage: appIntl().formatMessage({\n id: 'workplans.fetchWorkplanExecutionError'\n }),\n errorNumber: -1\n };\n // alerts.showErrorAlertFailChanges({ error });\n yield put(actions.failFetchingWorkplanExecution(error));\n }\n}\n\nexport function* watchFetchWorkplanExecution() {\n yield takeEvery(types.WORKPLAN_EXECUTION_FETCH_STARTED, fetchWorkplanExecution);\n}\n\n/* -------------------------------------------------------------------------- */\n/* Cancel Workplan Execution */\n/* -------------------------------------------------------------------------- */\nfunction* cancelWorkplanExecution(action) {\n const workplan = action.payload;\n try {\n const isAuth = yield select(authSelectors.isAuthenticated);\n\n if (isAuth) {\n const token = yield select(authSelectors.getAuthToken);\n\n const response = yield call(fetch, `${API_BASE_URL}/workplan/cancelWorkplanExecution`, {\n method: 'POST',\n body: JSON.stringify(endDateAdjustment(workplan)),\n headers: {\n 'Content-Type': 'application/json',\n Authorization: `Bearer ${token}`\n }\n });\n const jsonResult = yield response.json();\n if (response.status <= 300 && jsonResult.success) {\n yield put(actions.completeCancelWorkplansExecutions(workplan.visitId, workplan.unitId));\n\n alerts.showSuccessMessage({\n success: appIntl().formatMessage({\n id: 'workplans.selectedWorkplanWasCanceled'\n })\n });\n } else {\n const error = {\n errorMessage: appIntl().formatMessage({\n id: 'workplans.workplanCancelationMessageError'\n }),\n errorNumber: jsonResult.number\n };\n alerts.showErrorAlertFailChanges({ error });\n yield put(actions.failCancelWorkplansExecutions(error));\n }\n }\n } catch (err) {\n const error = {\n errorMessage: appIntl().formatMessage({\n id: 'workplans.workplanCancelationMessageError'\n }),\n errorNumber: -1\n };\n alerts.showErrorAlertFailChanges({ error });\n yield put(actions.failCancelWorkplansExecutions(error));\n }\n}\n\nexport function* watchCancelWorkplanExecution() {\n yield takeEvery(types.WORKPLANS_EXECUTION_CANCEL_STARTED, cancelWorkplanExecution);\n}\n\n/* -------------------------------------------------------------------------- */\n/* Finalize Workplan Execution */\n/* -------------------------------------------------------------------------- */\nfunction* finalizeWorkplanExecution(action) {\n const workplan = action.payload;\n try {\n const isAuth = yield select(authSelectors.isAuthenticated);\n\n if (isAuth) {\n const token = yield select(authSelectors.getAuthToken);\n\n const response = yield call(fetch, `${API_BASE_URL}/workplan/finalizeWorkplanExecution`, {\n method: 'POST',\n body: JSON.stringify(endDateAdjustment(workplan)),\n headers: {\n 'Content-Type': 'application/json',\n Authorization: `Bearer ${token}`\n }\n });\n const jsonResult = yield response.json();\n if (response.status <= 300 && jsonResult.success) {\n yield put(actions.completeFinalizeWorkplansExecutions(workplan.visitId, workplan.unitId));\n\n alerts.showSuccessMessage({\n success: appIntl().formatMessage({\n id: 'workplans.selectedWorkplanWasFinished'\n })\n });\n } else {\n const error = {\n errorMessage: appIntl().formatMessage({\n id: 'workplans.workplanFinalizationMessageError'\n }),\n errorNumber: jsonResult.number\n };\n alerts.showErrorAlertFailChanges({ error });\n yield put(actions.failFinalizeWorkplansExecutions(error));\n }\n }\n } catch (err) {\n const error = {\n errorMessage: appIntl().formatMessage({\n id: 'workplans.workplanFinalizationMessageError'\n }),\n errorNumber: -1\n };\n alerts.showErrorAlertFailChanges({ error });\n yield put(actions.failFinalizeWorkplansExecutions(error));\n }\n}\n\nexport function* watchFinalizeWorkplanExecution() {\n yield takeEvery(types.WORKPLANS_EXECUTION_FINALIZE_STARTED, finalizeWorkplanExecution);\n}\n\n/* -------------------------------------------------------------------------- */\n/* Manual Transit Workplan Execution */\n/* -------------------------------------------------------------------------- */\nfunction* manualTransitWorkplanExecution(action) {\n const newStatus = 3;\n const { visitId, unitId, reason } = action.payload;\n try {\n const isAuth = yield select(authSelectors.isAuthenticated);\n\n if (isAuth) {\n const token = yield select(authSelectors.getAuthToken);\n\n const response = yield call(\n fetch,\n `${API_BASE_URL}/workplan/updateWorkplanExecutionManualTransit`,\n {\n method: 'POST',\n body: JSON.stringify({ visitId, unitId, reason }),\n headers: {\n 'Content-Type': 'application/json',\n Authorization: `Bearer ${token}`\n }\n }\n );\n const jsonResult = yield response.json();\n if (response.status <= 300 && jsonResult.success) {\n yield put(actions.completeManualTransitWorkplansExecutions(visitId, unitId));\n\n alerts.showSuccessMessage({\n success: appIntl().formatMessage({\n id: 'workplans.workplansManualTransitMessage'\n })\n });\n } else {\n const error = {\n errorMessage: appIntl().formatMessage({\n id: 'workplans.workplansManualTransitMessageError'\n }),\n errorNumber: jsonResult.number\n };\n alerts.showErrorAlertFailChanges({ error });\n yield put(actions.failManualTransitWorkplansExecutions(error));\n }\n }\n } catch (err) {\n const error = {\n errorMessage: appIntl().formatMessage({\n id: 'workplans.workplansManualTransitMessageError'\n }),\n errorNumber: -1\n };\n alerts.showErrorAlertFailChanges({ error });\n yield put(actions.failManualTransitWorkplansExecutions(error));\n }\n}\n\nexport function* watchManualTransitWorkplanExecution() {\n yield takeEvery(types.WORKPLANS_EXECUTION_MANUAL_TRANSIT_STARTED, manualTransitWorkplanExecution);\n}\n\n/* -------------------------------------------------------------------------- */\n/* Change Workplan Execution Unit */\n/* -------------------------------------------------------------------------- */\nfunction* changeWorkplanExecutionUnit(action) {\n const workplan = action.payload;\n try {\n const isAuth = yield select(authSelectors.isAuthenticated);\n\n if (isAuth) {\n const token = yield select(authSelectors.getAuthToken);\n\n const response = yield call(fetch, `${API_BASE_URL}/workplan/changeUnit`, {\n method: 'POST',\n body: JSON.stringify(endDateAdjustment(workplan)),\n\n headers: {\n 'Content-Type': 'application/json',\n Authorization: `Bearer ${token}`\n }\n });\n const jsonResult = yield response.json();\n if (response.status <= 300 && jsonResult.success) {\n yield put(actions.completeChangeUnitWorkplansExecutions(workplan.visitId, workplan.unitId));\n\n alerts.showSuccessMessage({\n success: appIntl().formatMessage({\n id: 'workplans.unitWasSuccessfullyChanged'\n })\n });\n } else {\n const error = {\n errorMessage: appIntl().formatMessage({\n id: 'workplans.unitChangeIsNotPossibleRightNow'\n }),\n errorNumber: jsonResult.number\n };\n alerts.showErrorAlertFailChanges({ error });\n yield put(actions.failChangeUnitWorkplansExecutions(error));\n }\n }\n } catch (err) {\n const error = {\n errorMessage: appIntl().formatMessage({\n id: 'workplans.unitChangeIsNotPossibleRightNow'\n }),\n errorNumber: -1\n };\n alerts.showErrorAlertFailChanges({ error });\n yield put(actions.failChangeUnitWorkplansExecutions(error));\n }\n}\n\nexport function* watchChangeWorkplanExecutionUnit() {\n yield takeEvery(types.WORKPLANS_EXECUTION_CHANGE_UNIT_STARTED, changeWorkplanExecutionUnit);\n}\n\n/* -------------------------------------------------------------------------- */\n/* Assign Workplan Execution Unit */\n/* -------------------------------------------------------------------------- */\nconst getDatabaseErrorFromString = (text: string) => {\n const match: any = /(database\\.error\\.\\w+\\.\\w+)/.exec(text);\n let result: string | undefined = undefined;\n try {\n result = match[1];\n } catch (error) {\n result = undefined;\n }\n return result;\n};\n\nfunction* assignWorkplanExecutionUnit(action) {\n const assignation = action.payload;\n try {\n const isAuth = yield select(authSelectors.isAuthenticated);\n\n if (isAuth) {\n const token = yield select(authSelectors.getAuthToken);\n\n const response = yield call(fetch, `${API_BASE_URL}/workplan/assignUnit`, {\n method: 'POST',\n body: JSON.stringify(endDateAdjustment(assignation)),\n headers: {\n 'Content-Type': 'application/json',\n Authorization: `Bearer ${token}`\n }\n });\n const jsonResult = yield response.json();\n if (\n response.status <= 300 &&\n jsonResult.success &&\n jsonResult.data.length === assignation.length\n ) {\n yield put(actions.completeAssignUnitWorkplansExecutions(assignation));\n\n alerts.showSuccessMessage({\n success: appIntl().formatMessage({\n id: 'workplans.unitWasSuccessfullyAssigned'\n })\n });\n } else {\n const jsonErrorMessage = jsonResult.message;\n const typeJsonErrorMessage = typeof jsonResult.message;\n const errorMessage: string =\n response.status === 500\n ? getDatabaseErrorFromString(jsonResult.message) ??\n 'workplans.unitAssignmentIsNotPossibleRightNow'\n : 'workplans.unitAssignmentIsNotPossibleRightNow';\n // Validates status code is 500 server error\n const error: any = {\n errorMessage: appIntl().formatMessage({\n id: errorMessage\n }),\n errorNumber: jsonResult.number\n };\n alerts.showErrorAlertFailChanges({ error });\n yield put(actions.failAssignUnitWorkplansExecutions(error));\n }\n }\n } catch (err) {\n const error = {\n errorMessage: appIntl().formatMessage({\n id: 'workplans.unitAssignmentIsNotPossibleRightNow'\n }),\n errorNumber: -1\n };\n alerts.showErrorAlertFailChanges({ error });\n yield put(actions.failAssignUnitWorkplansExecutions(error));\n }\n}\n\nexport function* watchAsignWorkplanExecutionUnit() {\n yield takeEvery(types.WORKPLANS_EXECUTION_ASSIGN_UNIT_STARTED, assignWorkplanExecutionUnit);\n}\n","import * as types from '../../types/workplansReport';\n\nexport const startFetchingWorkplansReport = (filters = {}) => ({\n type: types.WORKPLANS_REPORT_FETCH_STARTED,\n payload: filters\n});\nexport const completeFetchingWorkplansReport = (\n entities,\n order,\n indicators,\n unitsEntities,\n unitsOrder,\n locationsEntities,\n locationsOrder\n) => ({\n type: types.WORKPLANS_REPORT_FETCH_COMPLETED,\n payload: {\n entities,\n order,\n indicators,\n unitsEntities,\n unitsOrder,\n locationsEntities,\n locationsOrder\n }\n});\nexport const failFetchingWorkplansReport = (\n error = { errorMessage: 'Error', errorNumber: 404 }\n) => ({\n type: types.WORKPLANS_REPORT_FETCH_FAILED,\n payload: {\n error //error:{errorMessage:'Error', errorNumber:400}\n }\n});\n","/* -------------------------------------------------------------------------- */\n/* Schema Locations */\n/* -------------------------------------------------------------------------- */\n\nimport { schema } from 'normalizr';\n\nexport const location = new schema.Entity('locations', {}, { idAttribute: 'locationId' });\nexport const locations = new schema.Array(location);\n","import { call, takeEvery, put, select } from 'redux-saga/effects';\n\nimport { normalize } from 'normalizr';\nimport API_BASE_URL from '../../../../../redux/sagas/settings/apibaseurl';\n\nimport * as actions from '../../actions/workplansReport';\nimport * as types from '../../types/workplansReport';\nimport * as selectors from '../../reducers/workplans';\nimport * as workplansExecutionsSchemas from '../../schemas/workplansExecutions';\nimport * as unitsSchemas from '../../../Units/schemas';\nimport * as locationsSchemas from '../../../../../redux/schemas/locations';\n\nimport * as authSelectors from '../../../../../redux/reducers/auth';\nimport camelcaseKeys from 'camelcase-keys';\nimport * as alerts from '../../../../../redux/utils/alerts';\nimport { appIntl } from '../../../../../utility/context/IntlGlobalProvider';\nimport { endDateAdjustment } from 'utility/http/interceptors/interceptor-utils';\n\n/* -------------------------------------------------------------------------- */\n/* FETCH LIST REPORT */\n/* -------------------------------------------------------------------------- */\nfunction* fetchWorkplansReport(action) {\n try {\n const filters = action.payload;\n const isAuth = yield select(authSelectors.isAuthenticated);\n if (isAuth) {\n const token = yield select(authSelectors.getAuthToken);\n const response = yield call(fetch, `${API_BASE_URL}/workplan/getReport`, {\n method: 'POST',\n body: JSON.stringify(\n endDateAdjustment({\n ...filters\n })\n ),\n headers: {\n 'Content-Type': 'application/json',\n Authorization: `Bearer ${token}`\n }\n });\n const jsonResult = yield response.json();\n if (response.status <= 300 && jsonResult.success) {\n const indicators = camelcaseKeys(jsonResult.data.indicators);\n\n const units = jsonResult.data.units.map((result) => camelcaseKeys(result));\n const {\n entities: { units: unitsEntities },\n result: unitsOrder //order\n } = normalize(units, unitsSchemas.units); //normalize data to byId and order\n\n const locations = jsonResult.data.locations.map((result) => camelcaseKeys(result));\n const {\n entities: { locations: locationsEntities },\n result: locationsOrder //order\n } = normalize(locations, locationsSchemas.locations); //normalize data to byId and order\n\n const resultData = jsonResult.data.workplansList.map((result) => camelcaseKeys(result));\n const {\n entities: { workplansExecutions },\n result //order\n } = normalize(resultData, workplansExecutionsSchemas.workplansExecutions); //normalize data to byId and order\n yield put(\n actions.completeFetchingWorkplansReport(\n workplansExecutions,\n result,\n indicators,\n unitsEntities,\n unitsOrder,\n locationsEntities,\n locationsOrder\n )\n );\n } else {\n const error = {\n errorMessage: appIntl().formatMessage({\n id: 'workplans.workplanFetchReportMessageError'\n }),\n errorNumber: jsonResult.number\n };\n // alerts.showErrorAlertFailChanges({ error });\n yield put(actions.failFetchingWorkplansReport(error));\n }\n }\n } catch (err) {\n const error = {\n errorMessage: appIntl().formatMessage({\n id: 'workplans.workplanFetchReportMessageError'\n }),\n errorNumber: -1\n };\n // alerts.showErrorAlertFailChanges({ error });\n yield put(actions.failFetchingWorkplansReport(error));\n }\n}\n\nexport function* watchFetchWorkplansReport() {\n yield takeEvery(types.WORKPLANS_REPORT_FETCH_STARTED, fetchWorkplansReport);\n}\n","import * as types from '../../types/workplansVisits';\n\nexport const startFetchingWorkplansVisits = (filters = {}) => ({\n type: types.WORKPLANS_VISITS_FETCH_STARTED,\n payload: filters\n});\nexport const completeFetchingWorkplansVisits = (entities, order) => ({\n type: types.WORKPLANS_VISITS_FETCH_COMPLETED,\n payload: {\n entities,\n order\n }\n});\nexport const failFetchingWorkplansVisits = (\n error = { errorMessage: 'Error', errorNumber: 404 }\n) => ({\n type: types.WORKPLANS_VISITS_FETCH_FAILED,\n payload: {\n error //error:{errorMessage:'Error', errorNumber:400}\n }\n});\n\nexport const startFetchingWorkplansAllVisits = (filters = {}) => ({\n type: types.WORKPLANS_ALL_VISITS_FETCH_STARTED,\n payload: filters\n});\nexport const completeFetchingWorkplansAllVisits = (entities, order) => ({\n type: types.WORKPLANS_ALL_VISITS_FETCH_COMPLETED,\n payload: {\n entities,\n order\n }\n});\nexport const failFetchingWorkplansAllVisits = (\n error = { errorMessage: 'Error', errorNumber: 404 }\n) => ({\n type: types.WORKPLANS_ALL_VISITS_FETCH_FAILED,\n payload: {\n error //error:{errorMessage:'Error', errorNumber:400}\n }\n});\n","/* -------------------------------------------------------------------------- */\n/* Schema Execution Workplans */\n/* -------------------------------------------------------------------------- */\n\nimport { schema } from 'normalizr';\n\nexport const workplansVisit = new schema.Entity(\n 'workplansVisits',\n {},\n { idAttribute: (value) => `${value.visitId}-${value.locationId}` }\n);\nexport const workplansVisits = new schema.Array(workplansVisit);\n","/* -------------------------------------------------------------------------- */\n/* Schema Execution Workplans */\n/* -------------------------------------------------------------------------- */\n\nimport { schema } from 'normalizr';\n\nexport const workplansVisit = new schema.Entity(\n 'workplansVisits',\n {},\n { idAttribute: 'historicalVisitId' }\n);\nexport const workplansVisits = new schema.Array(workplansVisit);\n","import { call, takeEvery, put, select } from 'redux-saga/effects';\n\nimport { normalize } from 'normalizr';\nimport API_BASE_URL from '../../../../../redux/sagas/settings/apibaseurl';\n\nimport * as actions from '../../actions/workplansVisits';\nimport * as types from '../../types/workplansVisits';\nimport * as selectors from '../../reducers/workplans';\nimport * as schemas from '../../schemas/workplansVisits';\nimport * as historicalSchemas from '../../schemas/workplansHistoricalVisits';\n\nimport * as authSelectors from '../../../../../redux/reducers/auth';\nimport camelcaseKeys from 'camelcase-keys';\nimport * as alerts from '../../../../../redux/utils/alerts';\nimport { useIntl } from 'react-intl';\nimport { appIntl } from '../../../../../utility/context/IntlGlobalProvider';\nimport { store } from 'redux/storeConfig/store';\nimport {\n getWorkplanAllVisitsListService,\n getWorkplanVisitsListService\n} from '../../services/workplansVisits';\n\n/* -------------------------------------------------------------------------- */\n/* FETCH LIST VISITS */\n/* -------------------------------------------------------------------------- */\nfunction* fetchWorkplansVisits(action) {\n const filters = action.payload;\n\n getWorkplanVisitsListService(\n { ...filters },\n {\n successAction: (response) => {\n const resultData = response.data.map((result) => camelcaseKeys(result));\n const {\n entities: { workplansVisits },\n result //order\n } = normalize(resultData, schemas.workplansVisits); //normalize data to byId and order\n store.dispatch(actions.completeFetchingWorkplansVisits(workplansVisits, result));\n },\n errorAction: (error) => {\n store.dispatch(actions.failFetchingWorkplansVisits(error));\n }\n }\n );\n}\n\nexport function* watchFetchWorkplansVisits() {\n yield takeEvery(types.WORKPLANS_VISITS_FETCH_STARTED, fetchWorkplansVisits);\n}\n\n/* -------------------------------------------------------------------------- */\n/* FETCH LIST ALL VISITS */\n/* -------------------------------------------------------------------------- */\nfunction* fetchWorkplansAllVisits(action) {\n const { visitId } = action.payload;\n getWorkplanAllVisitsListService(\n { visitId },\n {\n successAction: (response) => {\n const resultData = response.data.map((result) => camelcaseKeys(result));\n const {\n entities: { workplansVisits },\n result //order\n } = normalize(resultData, historicalSchemas.workplansVisits); //normalize data to byId and order\n store.dispatch(actions.completeFetchingWorkplansAllVisits(workplansVisits, result));\n },\n errorAction: (error) => {\n store.dispatch(actions.failFetchingWorkplansAllVisits(error));\n }\n }\n );\n}\n\nexport function* watchFetchWorkplansAllVisits() {\n yield takeEvery(types.WORKPLANS_ALL_VISITS_FETCH_STARTED, fetchWorkplansAllVisits);\n}\n","/* -------------------------------------------------------------------------- */\n/* Schema Agents */\n/* -------------------------------------------------------------------------- */\n\nimport { schema } from \"normalizr\";\n\nexport const configuration = new schema.Entity(\n \"configurations\",\n {},\n { idAttribute: \"deviceConfigurationId\" }\n);\nexport const configurations = new schema.Array(configuration);\n","import { call, takeEvery, put, select } from 'redux-saga/effects';\n\nimport { normalize } from 'normalizr';\nimport API_BASE_URL from '../settings/apibaseurl';\nimport * as actions from '../../actions/configurations';\nimport * as types from '../../types/configurations';\nimport * as selectors from '../../reducers/configurations';\nimport * as schemas from '../../schemas/configurations';\nimport * as authSelectors from '../../reducers/auth';\nimport camelcaseKeys from 'camelcase-keys';\nimport * as alerts from '../../utils/alerts';\n\n/* -------------------------------------------------------------------------- */\n/* FETCH LIST */\n/* -------------------------------------------------------------------------- */\nfunction* fetchConfigurationsList(action) {\n const { brandId, modelId } = action.payload;\n try {\n const isAuth = yield select(authSelectors.isAuthenticated);\n if (brandId && modelId) {\n if (isAuth) {\n const token = yield select(authSelectors.getAuthToken);\n const response = yield call(\n fetch,\n `${API_BASE_URL}/model/configurations/${brandId}/${modelId}`,\n {\n method: 'GET',\n headers: {\n 'Content-Type': 'application/json',\n Authorization: `Bearer ${token}`\n }\n }\n );\n const jsonResult = yield response.json();\n if (response.status <= 300 && jsonResult.success) {\n const resultData = jsonResult.data.map((result) => camelcaseKeys(result));\n const {\n entities: { configurations },\n result //order\n } = normalize(resultData, schemas.configurations); //normalize data to byId and order\n yield put(actions.completeFetchingConfigurations(configurations, result));\n } else {\n const error = {\n errorMessage: jsonResult.message,\n errorNumber: jsonResult.number\n };\n // alerts.showErrorAlertFailChanges({ error });\n yield put(actions.failFetchingConfigurations(error));\n }\n }\n }\n } catch (err) {\n const error = {\n errorMessage: err.toString(),\n errorNumber: -1\n };\n // alerts.showErrorAlertFailChanges({ error });\n yield put(actions.failFetchingConfigurations(error));\n }\n}\n\nexport function* watchFetchConfigurationsList() {\n yield takeEvery(types.CONFIGURATIONS_FETCH_STARTED, fetchConfigurationsList);\n}\n","/* -------------------------------------------------------------------------- */\n/* Schema Agents */\n/* -------------------------------------------------------------------------- */\n\nimport { schema } from \"normalizr\";\n\nexport const model = new schema.Entity(\n \"models\",\n {},\n { idAttribute: \"deviceModelId\" }\n);\nexport const models = new schema.Array(model);\n","import { call, takeEvery, put, select } from 'redux-saga/effects';\n\nimport { normalize } from 'normalizr';\nimport API_BASE_URL from '../settings/apibaseurl';\nimport * as actions from '../../actions/models';\nimport * as types from '../../types/models';\nimport * as schemas from '../../schemas/models';\nimport * as authSelectors from '../../reducers/auth';\nimport camelcaseKeys from 'camelcase-keys';\nimport * as alerts from '../../utils/alerts';\n\n/* -------------------------------------------------------------------------- */\n/* FETCH LIST */\n/* -------------------------------------------------------------------------- */\nfunction* fetchModelsList(action) {\n const { brandId } = action.payload;\n if (brandId) {\n try {\n const isAuth = yield select(authSelectors.isAuthenticated);\n if (isAuth) {\n const token = yield select(authSelectors.getAuthToken);\n const response = yield call(fetch, `${API_BASE_URL}/model/${brandId}`, {\n method: 'GET',\n headers: {\n 'Content-Type': 'application/json',\n Authorization: `Bearer ${token}`\n }\n });\n const jsonResult = yield response.json();\n if (response.status <= 300 && jsonResult.success) {\n const resultData = jsonResult.data.map((result) => camelcaseKeys(result));\n const {\n entities: { models },\n result //order\n } = normalize(resultData, schemas.models); //normalize data to byId and order\n yield put(actions.completeFetchingModels(models, result));\n } else {\n const error = {\n errorMessage: jsonResult.message,\n errorNumber: jsonResult.number\n };\n // alerts.showErrorAlertFailChanges({ error });\n yield put(actions.failFetchingModels(error));\n }\n }\n } catch (err) {\n const error = {\n errorMessage: err.toString(),\n errorNumber: -1\n };\n // alerts.showErrorAlertFailChanges({ error });\n yield put(actions.failFetchingModels(error));\n }\n }\n}\n\nexport function* watchFetchModelsList() {\n yield takeEvery(types.MODELS_FETCH_STARTED, fetchModelsList);\n}\n","/* -------------------------------------------------------------------------- */\n/* Schema Agents */\n/* -------------------------------------------------------------------------- */\n\nimport { schema } from \"normalizr\";\n\nexport const brand = new schema.Entity(\n \"brands\",\n {},\n { idAttribute: \"brandId\" }\n);\nexport const brands = new schema.Array(brand);\n","import camelcaseKeys from 'camelcase-keys';\nimport { normalize } from 'normalizr';\nimport { call, put, select, takeEvery } from 'redux-saga/effects';\nimport * as actions from '../../../actions/static-catalogs/brands';\nimport * as authSelectors from '../../../reducers/auth';\nimport * as schemas from '../../../schemas/brands';\nimport * as types from '../../../types/static-catalogs/brands';\nimport API_BASE_URL from '../../settings/apibaseurl';\n\n/* -------------------------------------------------------------------------- */\n/* FETCH LIST */\n/* -------------------------------------------------------------------------- */\nfunction* fetchBrandsList(action) {\n const { brandId } = action.payload;\n try {\n const isAuth = yield select(authSelectors.isAuthenticated);\n if (isAuth) {\n const token = yield select(authSelectors.getAuthToken);\n const response = yield call(fetch, `${API_BASE_URL}/brand`, {\n method: 'GET',\n headers: {\n 'Content-Type': 'application/json',\n Authorization: `Bearer ${token}`\n }\n });\n const jsonResult = yield response.json();\n if (response.status <= 300 && jsonResult.success) {\n const resultData = jsonResult.data.map((result) => camelcaseKeys(result));\n const {\n entities: { brands },\n result //order\n } = normalize(resultData, schemas.brands); //normalize data to byId and order\n yield put(actions.completeFetchingBrands(brands, result));\n } else {\n const error = {\n errorMessage: jsonResult.message,\n errorNumber: jsonResult.number\n };\n // alerts.showErrorAlertFailChanges({ error });\n yield put(actions.failFetchingBrands(error));\n }\n }\n } catch (err) {\n const error = {\n errorMessage: err.toString(),\n errorNumber: -1\n };\n // alerts.showErrorAlertFailChanges({ error });\n yield put(actions.failFetchingBrands(error));\n }\n}\n\nexport function* watchFetchBrandsList() {\n yield takeEvery(types.BRANDS_FETCH_STARTED, fetchBrandsList);\n}\n","/* -------------------------------------------------------------------------- */\n/* Schema Currencies */\n/* -------------------------------------------------------------------------- */\n\nimport { schema } from \"normalizr\";\n\nexport const currency = new schema.Entity(\n \"currencies\",\n {},\n { idAttribute: \"currencyId\" }\n);\nexport const currencies = new schema.Array(currency);\n","import { call, takeEvery, put, select } from 'redux-saga/effects';\n\nimport { normalize } from 'normalizr';\nimport API_BASE_URL from '../../settings/apibaseurl';\nimport * as actions from '../../../actions/static-catalogs/currencies';\nimport * as types from '../../../types/static-catalogs/currencies';\nimport * as schemas from '../../../schemas/currencies';\nimport * as authSelectors from '../../../reducers/auth';\nimport camelcaseKeys from 'camelcase-keys';\nimport * as alerts from '../../../utils/alerts';\n\n/* -------------------------------------------------------------------------- */\n/* FETCH LIST */\n/* -------------------------------------------------------------------------- */\nfunction* fetchCurrenciesList(action) {\n try {\n const isAuth = yield select(authSelectors.isAuthenticated);\n if (isAuth) {\n const token = yield select(authSelectors.getAuthToken);\n const response = yield call(fetch, `${API_BASE_URL}/profile/currency`, {\n method: 'GET',\n // body: JSON.stringify({}),\n headers: {\n 'Content-Type': 'application/json',\n Authorization: `Bearer ${token}`\n }\n });\n const jsonResult = yield response.json();\n if (response.status <= 300 && jsonResult.success) {\n const resultData = jsonResult.data.map((result) => camelcaseKeys(result));\n const {\n entities: { currencies },\n result //order\n } = normalize(resultData, schemas.currencies); //normalize data to byId and order\n yield put(actions.completeFetchingCurrencies(currencies, result));\n } else {\n const error = {\n errorMessage: jsonResult.message,\n errorNumber: jsonResult.number\n };\n // alerts.showErrorAlertFailChanges({ error });\n yield put(actions.failFetchingCurrencies(error));\n }\n }\n } catch (err) {\n const error = {\n errorMessage: err.toString(),\n errorNumber: -1\n };\n // alerts.showErrorAlertFailChanges({ error });\n yield put(actions.failFetchingCurrencies(error));\n }\n}\n\nexport function* watchFetchCurrenciesList() {\n yield takeEvery(types.CURRENCIES_FETCH_STARTED, fetchCurrenciesList);\n}\n","/* -------------------------------------------------------------------------- */\n/* Schema Time Zones */\n/* -------------------------------------------------------------------------- */\n\nimport { schema } from \"normalizr\";\n\nexport const timeZone = new schema.Entity(\n \"timeZones\",\n {},\n { idAttribute: \"zoneId\" }\n);\nexport const timeZones = new schema.Array(timeZone);\n","import { call, takeEvery, put, select } from 'redux-saga/effects';\n\nimport { normalize } from 'normalizr';\nimport API_BASE_URL from '../../settings/apibaseurl';\nimport * as actions from '../../../actions/static-catalogs/time-zones';\nimport * as types from '../../../types/static-catalogs/time-zones';\nimport * as selectors from '../../../reducers/static-catalogs/time-zones';\nimport * as schemas from '../../../schemas/time-zones';\nimport * as authSelectors from '../../../reducers/auth';\nimport camelcaseKeys from 'camelcase-keys';\nimport * as alerts from '../../../utils/alerts';\n\n/* -------------------------------------------------------------------------- */\n/* FETCH LIST */\n/* -------------------------------------------------------------------------- */\nfunction* fetchTimeZonesList(action) {\n try {\n const isAuth = yield select(authSelectors.isAuthenticated);\n if (isAuth) {\n const token = yield select(authSelectors.getAuthToken);\n const response = yield call(fetch, `${API_BASE_URL}/profile/timeZone`, {\n method: 'GET',\n // body: JSON.stringify({}),\n headers: {\n 'Content-Type': 'application/json',\n Authorization: `Bearer ${token}`\n }\n });\n const jsonResult = yield response.json();\n if (response.status <= 300 && jsonResult.success) {\n const resultData = jsonResult.data.map((result) => camelcaseKeys(result));\n const {\n entities: { timeZones },\n result //order\n } = normalize(resultData, schemas.timeZones); //normalize data to byId and order\n yield put(actions.completeFetchingTimeZones(timeZones, result));\n } else {\n const error = {\n errorMessage: jsonResult.message,\n errorNumber: jsonResult.number\n };\n // alerts.showErrorAlertFailChanges({ error });\n yield put(actions.failFetchingTimeZones(error));\n }\n }\n } catch (err) {\n const error = {\n errorMessage: err.toString(),\n errorNumber: -1\n };\n // alerts.showErrorAlertFailChanges({ error });\n yield put(actions.failFetchingTimeZones(error));\n }\n}\n\nexport function* watchFetchTimeZonesList() {\n yield takeEvery(types.TIME_ZONES_FETCH_STARTED, fetchTimeZonesList);\n}\n","/* -------------------------------------------------------------------------- */\n/* Schema Providers */\n/* -------------------------------------------------------------------------- */\n\nimport { schema } from 'normalizr';\n\nexport const provider = new schema.Entity('providers', {}, { idAttribute: 'cellProviderId' });\nexport const providers = new schema.Array(provider);\n","import { call, takeEvery, put, select } from 'redux-saga/effects';\n\nimport { normalize } from 'normalizr';\nimport API_BASE_URL from '../../settings/apibaseurl';\nimport * as actions from '../../../actions/static-catalogs/cellular-providers';\nimport * as types from '../../../types/static-catalogs/cellular-providers';\nimport * as selectors from '../../../reducers/static-catalogs/cellular-providers';\nimport * as schemas from '../../../schemas/cellular-providers';\nimport * as authSelectors from '../../../reducers/auth';\nimport camelcaseKeys from 'camelcase-keys';\nimport * as alerts from '../../../utils/alerts';\n/* -------------------------------------------------------------------------- */\n/* FETCH LIST */\n/* -------------------------------------------------------------------------- */\nfunction* fetchProvidersList(action) {\n const country = action.payload;\n try {\n const isAuth = yield select(authSelectors.isAuthenticated);\n if (isAuth && (country || country === 0)) {\n const token = yield select(authSelectors.getAuthToken);\n const response = yield call(fetch, `${API_BASE_URL}/provider/get`, {\n method: 'POST',\n body: JSON.stringify({ country }),\n headers: {\n 'Content-Type': 'application/json',\n Authorization: `Bearer ${token}`\n }\n });\n const jsonResult = yield response.json();\n if (response.status <= 300 && jsonResult.success) {\n const resultData = jsonResult.data.map((result) => camelcaseKeys(result));\n const {\n entities: { providers },\n result //order\n } = normalize(resultData, schemas.providers); //normalize data to byId and order\n yield put(actions.completeFetchingProviders(providers, result));\n } else {\n const error = {\n errorMessage: jsonResult.message,\n errorNumber: jsonResult.number\n };\n // alerts.showErrorAlertFailChanges({ error });\n yield put(actions.failFetchingProviders(error));\n }\n }\n } catch (err) {\n const error = {\n errorMessage: err.toString(),\n errorNumber: -1\n };\n // alerts.showErrorAlertFailChanges({ error });\n yield put(actions.failFetchingProviders(error));\n }\n}\n\nexport function* watchFetchProvidersList() {\n yield takeEvery(types.PROVIDERS_FETCH_STARTED, fetchProvidersList);\n}\n","/* -------------------------------------------------------------------------- */\n/* Schema Countries */\n/* -------------------------------------------------------------------------- */\n\nimport { schema } from 'normalizr';\n\nexport const country = new schema.Entity('countries', {}, { idAttribute: 'countryId' });\nexport const countries = new schema.Array(country);\n","import { call, takeEvery, put, select } from 'redux-saga/effects';\n\nimport { normalize } from 'normalizr';\nimport API_BASE_URL from '../../settings/apibaseurl';\nimport * as actions from '../../../actions/static-catalogs/countries';\nimport * as types from '../../../types/static-catalogs/countries';\nimport * as selectors from '../../../reducers/static-catalogs/countries';\nimport * as schemas from '../../../schemas/countries';\nimport * as authSelectors from '../../../reducers/auth';\nimport camelcaseKeys from 'camelcase-keys';\nimport * as alerts from '../../../utils/alerts';\n\n/* -------------------------------------------------------------------------- */\n/* FETCH LIST */\n/* -------------------------------------------------------------------------- */\nfunction* fetchCountriesList(action) {\n try {\n const isAuth = yield select(authSelectors.isAuthenticated);\n if (isAuth) {\n const token = yield select(authSelectors.getAuthToken);\n const response = yield call(fetch, `${API_BASE_URL}/country/get`, {\n method: 'POST',\n body: JSON.stringify({}),\n headers: {\n 'Content-Type': 'application/json',\n Authorization: `Bearer ${token}`\n }\n });\n const jsonResult = yield response.json();\n if (response.status <= 300 && jsonResult.success) {\n const resultData = jsonResult.data.map((result) => camelcaseKeys(result));\n const {\n entities: { countries },\n result //order\n } = normalize(resultData, schemas.countries); //normalize data to byId and order\n yield put(actions.completeFetchingCountries(countries, result));\n } else {\n const error = {\n errorMessage: jsonResult.message,\n errorNumber: jsonResult.number\n };\n // alerts.showErrorAlertFailChanges({ error });\n yield put(actions.failFetchingCountries(error));\n }\n }\n } catch (err) {\n const error = {\n errorMessage: err.toString(),\n errorNumber: -1\n };\n // alerts.showErrorAlertFailChanges({ error });\n yield put(actions.failFetchingCountries(error));\n }\n}\n\nexport function* watchFetchCountriesList() {\n yield takeEvery(types.COUNTRIES_FETCH_STARTED, fetchCountriesList);\n}\n","/* -------------------------------------------------------------------------- */\n/* Schema Vehicle Makers */\n/* -------------------------------------------------------------------------- */\n\nimport { schema } from 'normalizr';\n\nexport const vehicleMaker = new schema.Entity('vehicleMakers', {}, { idAttribute: 'makerId' });\nexport const vehicleMakers = new schema.Array(vehicleMaker);\n","import { call, takeEvery, put, select } from 'redux-saga/effects';\n\nimport { normalize } from 'normalizr';\nimport API_BASE_URL from '../../settings/apibaseurl';\nimport * as actions from '../../../actions/static-catalogs/vehicle-makers';\nimport * as types from '../../../types/static-catalogs/vehicle-makers';\nimport * as selectors from '../../../reducers/static-catalogs/vehicle-makers';\nimport * as schemas from '../../../schemas/vehicle-makers';\nimport * as authSelectors from '../../../reducers/auth';\nimport camelcaseKeys from 'camelcase-keys';\nimport * as alerts from '../../../utils/alerts';\n/* -------------------------------------------------------------------------- */\n/* FETCH LIST */\n/* -------------------------------------------------------------------------- */\nfunction* fetchVehicleMakersList(action) {\n try {\n const isAuth = yield select(authSelectors.isAuthenticated);\n if (isAuth) {\n const token = yield select(authSelectors.getAuthToken);\n const response = yield call(fetch, `${API_BASE_URL}/vehicleMaker/get`, {\n method: 'POST',\n body: JSON.stringify({}),\n headers: {\n 'Content-Type': 'application/json',\n Authorization: `Bearer ${token}`\n }\n });\n const jsonResult = yield response.json();\n if (response.status <= 300 && jsonResult.success) {\n const resultData = jsonResult.data.map((result) => camelcaseKeys(result));\n const {\n entities: { vehicleMakers },\n result //order\n } = normalize(resultData, schemas.vehicleMakers); //normalize data to byId and order\n yield put(actions.completeFetchingVehicleMakers(vehicleMakers, result));\n } else {\n const error = {\n errorMessage: jsonResult.message,\n errorNumber: jsonResult.number\n };\n // alerts.showErrorAlertFailChanges({ error });\n yield put(actions.failFetchingVehicleMakers(error));\n }\n }\n } catch (err) {\n const error = {\n errorMessage: err.toString(),\n errorNumber: -1\n };\n // alerts.showErrorAlertFailChanges({ error });\n yield put(actions.failFetchingVehicleMakers(error));\n }\n}\n\nexport function* watchFetchVehicleMakersList() {\n yield takeEvery(types.VEHICLE_MAKERS_FETCH_STARTED, fetchVehicleMakersList);\n}\n","/* -------------------------------------------------------------------------- */\n/* Schema Vehicle Models */\n/* -------------------------------------------------------------------------- */\n\nimport { schema } from 'normalizr';\n\nexport const vehicleModel = new schema.Entity('vehicleModels', {}, { idAttribute: 'modelId' });\nexport const vehicleModels = new schema.Array(vehicleModel);\n","import { call, takeEvery, put, select } from 'redux-saga/effects';\n\nimport { normalize } from 'normalizr';\nimport API_BASE_URL from '../../settings/apibaseurl';\nimport * as actions from '../../../actions/static-catalogs/vehicle-models';\nimport * as types from '../../../types/static-catalogs/vehicle-models';\nimport * as selectors from '../../../reducers/static-catalogs/vehicle-models';\nimport * as schemas from '../../../schemas/vehicle-models';\nimport * as authSelectors from '../../../reducers/auth';\nimport camelcaseKeys from 'camelcase-keys';\nimport * as alerts from '../../../utils/alerts';\n/* -------------------------------------------------------------------------- */\n/* FETCH LIST */\n/* -------------------------------------------------------------------------- */\nfunction* fetchVehicleModelsList(action) {\n const maker = action.payload;\n try {\n const isAuth = yield select(authSelectors.isAuthenticated);\n if (isAuth && (maker || maker === 0)) {\n const token = yield select(authSelectors.getAuthToken);\n const response = yield call(fetch, `${API_BASE_URL}/vehicleModel/get`, {\n method: 'POST',\n body: JSON.stringify({ maker }),\n headers: {\n 'Content-Type': 'application/json',\n Authorization: `Bearer ${token}`\n }\n });\n const jsonResult = yield response.json();\n if (response.status <= 300 && jsonResult.success) {\n const resultData = jsonResult.data.map((result) => camelcaseKeys(result));\n const {\n entities: { vehicleModels },\n result //order\n } = normalize(resultData, schemas.vehicleModels); //normalize data to byId and order\n yield put(actions.completeFetchingVehicleModels(vehicleModels, result));\n } else {\n const error = {\n errorMessage: jsonResult.message,\n errorNumber: jsonResult.number\n };\n // alerts.showErrorAlertFailChanges({ error });\n yield put(actions.failFetchingVehicleModels(error));\n }\n }\n } catch (err) {\n const error = {\n errorMessage: err.toString(),\n errorNumber: -1\n };\n // alerts.showErrorAlertFailChanges({ error });\n yield put(actions.failFetchingVehicleModels(error));\n }\n}\n\nexport function* watchFetchVehicleModelsList() {\n yield takeEvery(types.VEHICLE_MODELS_FETCH_STARTED, fetchVehicleModelsList);\n}\n","/* -------------------------------------------------------------------------- */\n/* Schema Insurance Companies */\n/* -------------------------------------------------------------------------- */\n\nimport { schema } from 'normalizr';\n\nexport const insuranceCompany = new schema.Entity(\n 'insuranceCompanies',\n {},\n { idAttribute: 'insuranceCompanyId' }\n);\nexport const insuranceCompanies = new schema.Array(insuranceCompany);\n","import { call, takeEvery, put, select } from 'redux-saga/effects';\n\nimport { normalize } from 'normalizr';\nimport API_BASE_URL from '../../settings/apibaseurl';\nimport * as actions from '../../../actions/static-catalogs/insurance-companies';\nimport * as types from '../../../types/static-catalogs/insurance-companies';\nimport * as selectors from '../../../reducers/static-catalogs/insurance-companies';\nimport * as schemas from '../../../schemas/insurance-companies';\nimport * as authSelectors from '../../../reducers/auth';\nimport camelcaseKeys from 'camelcase-keys';\nimport * as alerts from '../../../utils/alerts';\n/* -------------------------------------------------------------------------- */\n/* FETCH LIST */\n/* -------------------------------------------------------------------------- */\nfunction* fetchInsuranceCompaniesList(action) {\n const country = action.payload;\n try {\n const isAuth = yield select(authSelectors.isAuthenticated);\n if (isAuth && (country || country === 0)) {\n const token = yield select(authSelectors.getAuthToken);\n const response = yield call(fetch, `${API_BASE_URL}/insuranceCompany/get`, {\n method: 'POST',\n body: JSON.stringify({ country }),\n headers: {\n 'Content-Type': 'application/json',\n Authorization: `Bearer ${token}`\n }\n });\n const jsonResult = yield response.json();\n if (response.status <= 300 && jsonResult.success) {\n const resultData = jsonResult.data.map((result) => camelcaseKeys(result));\n const {\n entities: { insuranceCompanies },\n result //order\n } = normalize(resultData, schemas.insuranceCompanies); //normalize data to byId and order\n yield put(actions.completeFetchingInsuranceCompanies(insuranceCompanies, result));\n } else {\n const error = {\n errorMessage: jsonResult.message,\n errorNumber: jsonResult.number\n };\n // alerts.showErrorAlertFailChanges({ error });\n yield put(actions.failFetchingInsuranceCompanies(error));\n }\n }\n } catch (err) {\n const error = {\n errorMessage: err.toString(),\n errorNumber: -1\n };\n // alerts.showErrorAlertFailChanges({ error });\n yield put(actions.failFetchingInsuranceCompanies(error));\n }\n}\n\nexport function* watchFetchInsuranceCompaniesList() {\n yield takeEvery(types.INSURANCE_COMPANIES_FETCH_STARTED, fetchInsuranceCompaniesList);\n}\n","/* -------------------------------------------------------------------------- */\n/* Schema Insurance Agents */\n/* -------------------------------------------------------------------------- */\n\nimport { schema } from 'normalizr';\n\nexport const insuranceAgent = new schema.Entity(\n 'insuranceAgents',\n {},\n { idAttribute: 'insuranceAgentId' }\n);\nexport const insuranceAgents = new schema.Array(insuranceAgent);\n","import { call, takeEvery, put, select } from 'redux-saga/effects';\n\nimport { normalize } from 'normalizr';\nimport API_BASE_URL from '../../settings/apibaseurl';\nimport * as actions from '../../../actions/static-catalogs/insurance-agents';\nimport * as types from '../../../types/static-catalogs/insurance-agents';\nimport * as selectors from '../../../reducers/static-catalogs/insurance-agents';\nimport * as schemas from '../../../schemas/insurance-agents';\nimport * as authSelectors from '../../../reducers/auth';\nimport camelcaseKeys from 'camelcase-keys';\nimport * as alerts from '../../../utils/alerts';\n/* -------------------------------------------------------------------------- */\n/* FETCH LIST */\n/* -------------------------------------------------------------------------- */\nfunction* fetchInsuranceAgentsList(action) {\n const country = action.payload;\n try {\n const isAuth = yield select(authSelectors.isAuthenticated);\n if (isAuth && (country || country === 0)) {\n const token = yield select(authSelectors.getAuthToken);\n const response = yield call(fetch, `${API_BASE_URL}/insuranceAgent/get`, {\n method: 'POST',\n body: JSON.stringify({ country }),\n headers: {\n 'Content-Type': 'application/json',\n Authorization: `Bearer ${token}`\n }\n });\n const jsonResult = yield response.json();\n if (response.status <= 300 && jsonResult.success) {\n const resultData = jsonResult.data.map((result) => camelcaseKeys(result));\n const {\n entities: { insuranceAgents },\n result //order\n } = normalize(resultData, schemas.insuranceAgents); //normalize data to byId and order\n yield put(actions.completeFetchingInsuranceAgents(insuranceAgents, result));\n } else {\n const error = {\n errorMessage: jsonResult.message,\n errorNumber: jsonResult.number\n };\n // alerts.showErrorAlertFailChanges({ error });\n yield put(actions.failFetchingInsuranceAgents(error));\n }\n }\n } catch (err) {\n const error = {\n errorMessage: err.toString(),\n errorNumber: -1\n };\n // alerts.showErrorAlertFailChanges({ error });\n yield put(actions.failFetchingInsuranceAgents(error));\n }\n}\n\nexport function* watchFetchInsuranceAgentsList() {\n yield takeEvery(types.INSURANCE_AGENTS_FETCH_STARTED, fetchInsuranceAgentsList);\n}\n","/* -------------------------------------------------------------------------- */\n/* Schema Sensor Brands */\n/* -------------------------------------------------------------------------- */\n\nimport { schema } from 'normalizr';\n\nexport const sensorBrand = new schema.Entity('sensorBrands', {}, { idAttribute: 'brandId' });\nexport const sensorBrands = new schema.Array(sensorBrand);\n","import { call, takeEvery, put, select } from 'redux-saga/effects';\n\nimport { normalize } from 'normalizr';\nimport API_BASE_URL from '../../settings/apibaseurl';\nimport * as actions from '../../../actions/static-catalogs/sensor-brands';\nimport * as types from '../../../types/static-catalogs/sensor-brands';\nimport * as selectors from '../../../reducers/static-catalogs/sensor-brands';\nimport * as schemas from '../../../schemas/sensor-brands';\nimport * as authSelectors from '../../../reducers/auth';\nimport camelcaseKeys from 'camelcase-keys';\nimport * as alerts from '../../../utils/alerts';\n\n/* -------------------------------------------------------------------------- */\n/* FETCH LIST */\n/* -------------------------------------------------------------------------- */\nfunction* fetchSensorBrandsList(action) {\n try {\n const isAuth = yield select(authSelectors.isAuthenticated);\n if (isAuth) {\n const token = yield select(authSelectors.getAuthToken);\n const response = yield call(fetch, `${API_BASE_URL}/sensorBrand/get`, {\n method: 'POST',\n body: JSON.stringify({}),\n headers: {\n 'Content-Type': 'application/json',\n Authorization: `Bearer ${token}`\n }\n });\n const jsonResult = yield response.json();\n if (response.status <= 300 && jsonResult.success) {\n const resultData = jsonResult.data.map((result) => camelcaseKeys(result));\n const {\n entities: { sensorBrands },\n result //order\n } = normalize(resultData, schemas.sensorBrands); //normalize data to byId and order\n yield put(actions.completeFetchingSensorBrands(sensorBrands, result));\n } else {\n const error = {\n errorMessage: jsonResult.message,\n errorNumber: jsonResult.number\n };\n // alerts.showErrorAlertFailChanges({ error });\n yield put(actions.failFetchingSensorBrands(error));\n }\n }\n } catch (err) {\n const error = {\n errorMessage: err.toString(),\n errorNumber: -1\n };\n // alerts.showErrorAlertFailChanges({ error });\n yield put(actions.failFetchingSensorBrands(error));\n }\n}\n\nexport function* watchFetchSensorBrandsList() {\n yield takeEvery(types.SENSOR_BRANDS_FETCH_STARTED, fetchSensorBrandsList);\n}\n","/* -------------------------------------------------------------------------- */\n/* Schema Sensor Models */\n/* -------------------------------------------------------------------------- */\n\nimport { schema } from 'normalizr';\n\nexport const sensorModel = new schema.Entity('sensorModels', {}, { idAttribute: 'sensorModelId' });\nexport const sensorModels = new schema.Array(sensorModel);\n","import { call, takeEvery, put, select } from 'redux-saga/effects';\n\nimport { normalize } from 'normalizr';\nimport API_BASE_URL from '../../settings/apibaseurl';\nimport * as actions from '../../../actions/static-catalogs/sensor-models';\nimport * as types from '../../../types/static-catalogs/sensor-models';\nimport * as selectors from '../../../reducers/static-catalogs/sensor-models';\nimport * as schemas from '../../../schemas/sensor-models';\nimport * as authSelectors from '../../../reducers/auth';\nimport camelcaseKeys from 'camelcase-keys';\nimport * as alerts from '../../../utils/alerts';\n\n/* -------------------------------------------------------------------------- */\n/* FETCH LIST */\n/* -------------------------------------------------------------------------- */\nfunction* fetchSensorModelsList(action) {\n const brandId = action.payload;\n try {\n const isAuth = yield select(authSelectors.isAuthenticated);\n if (isAuth) {\n const token = yield select(authSelectors.getAuthToken);\n const response = yield call(fetch, `${API_BASE_URL}/sensorModel/get`, {\n method: 'POST',\n body: JSON.stringify({ brandId }),\n headers: {\n 'Content-Type': 'application/json',\n Authorization: `Bearer ${token}`\n }\n });\n const jsonResult = yield response.json();\n if (response.status <= 300 && jsonResult.success) {\n const resultData = jsonResult.data.map((result) => camelcaseKeys(result));\n const {\n entities: { sensorModels },\n result //order\n } = normalize(resultData, schemas.sensorModels); //normalize data to byId and order\n yield put(actions.completeFetchingSensorModels(sensorModels, result));\n } else {\n const error = {\n errorMessage: jsonResult.message,\n errorNumber: jsonResult.number\n };\n // alerts.showErrorAlertFailChanges({ error });\n yield put(actions.failFetchingSensorModels(error));\n }\n }\n } catch (err) {\n const error = {\n errorMessage: err.toString(),\n errorNumber: -1\n };\n // alerts.showErrorAlertFailChanges({ error });\n yield put(actions.failFetchingSensorModels(error));\n }\n}\n\nexport function* watchFetchSensorModelsList() {\n yield takeEvery(types.SENSOR_MODELS_FETCH_STARTED, fetchSensorModelsList);\n}\n","/* -------------------------------------------------------------------------- */\n/* Schema Sensor Measures */\n/* -------------------------------------------------------------------------- */\n\nimport { schema } from 'normalizr';\n\nexport const sensorMeasure = new schema.Entity('sensorMeasures', {}, { idAttribute: 'measureId' });\nexport const sensorMeasures = new schema.Array(sensorMeasure);\n","import { call, takeEvery, put, select } from 'redux-saga/effects';\n\nimport { normalize } from 'normalizr';\nimport API_BASE_URL from '../../settings/apibaseurl';\nimport * as actions from '../../../actions/static-catalogs/sensor-measures';\nimport * as types from '../../../types/static-catalogs/sensor-measures';\nimport * as selectors from '../../../reducers/static-catalogs/sensor-measures';\nimport * as schemas from '../../../schemas/sensor-measures';\nimport * as authSelectors from '../../../reducers/auth';\nimport camelcaseKeys from 'camelcase-keys';\nimport * as alerts from '../../../utils/alerts';\n\n/* -------------------------------------------------------------------------- */\n/* FETCH LIST */\n/* -------------------------------------------------------------------------- */\nfunction* fetchSensorMeasuresList(action) {\n const { sensorId, sensorModelId } = action.payload;\n try {\n const isAuth = yield select(authSelectors.isAuthenticated);\n if (isAuth) {\n const token = yield select(authSelectors.getAuthToken);\n const response = yield call(fetch, `${API_BASE_URL}/sensorMeasure/get`, {\n method: 'POST',\n body: JSON.stringify({ sensorId, sensorModelId }),\n headers: {\n 'Content-Type': 'application/json',\n Authorization: `Bearer ${token}`\n }\n });\n const jsonResult = yield response.json();\n if (response.status <= 300 && jsonResult.success) {\n const resultData = jsonResult.data.map((result) => camelcaseKeys(result));\n const {\n entities: { sensorMeasures },\n result //order\n } = normalize(resultData, schemas.sensorMeasures); //normalize data to byId and order\n yield put(actions.completeFetchingSensorMeasures(sensorMeasures, result));\n } else {\n const error = {\n errorMessage: jsonResult.message,\n errorNumber: jsonResult.number\n };\n // alerts.showErrorAlertFailChanges({ error });\n yield put(actions.failFetchingSensorMeasures(error));\n }\n }\n } catch (err) {\n const error = {\n errorMessage: err.toString(),\n errorNumber: -1\n };\n // alerts.showErrorAlertFailChanges({ error });\n yield put(actions.failFetchingSensorMeasures(error));\n }\n}\n\nexport function* watchFetchSensorMeasuresList() {\n yield takeEvery(types.SENSOR_MEASURES_FETCH_STARTED, fetchSensorMeasuresList);\n}\n","/* -------------------------------------------------------------------------- */\n/* Schema PaymentMethods */\n/* -------------------------------------------------------------------------- */\n\nimport { schema } from 'normalizr';\n\nexport const paymentMethod = new schema.Entity(\n 'paymentMethods',\n {},\n { idAttribute: 'paymentMethodId' }\n);\nexport const paymentMethods = new schema.Array(paymentMethod);\n","import { HttpWebtrack } from 'utility/http';\nimport { PaymentMethods } from '../types';\n\nimport configureInterceptors from 'utility/http/interceptors/configure-interceptors';\nimport { store } from 'redux/storeConfig/store';\n\nexport const baseUrl = '/vehicleFuel';\n\nexport const getPaymentMethods = () => {\n const httpWebtrack = new HttpWebtrack();\n configureInterceptors.ConfigureWebtrackInterceptor(store, httpWebtrack);\n return httpWebtrack.get(`${baseUrl}/paymentMethods`);\n};\n","import { call, takeEvery, put, select } from 'redux-saga/effects';\nimport { normalize } from 'normalizr';\nimport API_BASE_URL from '../../settings/apibaseurl';\nimport * as actions from '../../../actions/static-catalogs/payment-methods';\nimport * as types from '../../../types/static-catalogs/payment-methods';\nimport * as schemas from '../../../schemas/payment-methods';\nimport * as authSelectors from '../../../reducers/auth';\nimport camelcaseKeys from 'camelcase-keys';\nimport * as alerts from '../../../utils/alerts';\nimport { getPaymentMethods } from 'views/screens/VehicleFuel/services/paymentMethodsService';\n\n/* -------------------------------------------------------------------------- */\n/* FETCH LIST */\n/* -------------------------------------------------------------------------- */\nfunction* fetchPaymentMethodsList(action) {\n try {\n const isAuth = yield select(authSelectors.isAuthenticated);\n if (isAuth) {\n const jsonResult = yield call(getPaymentMethods);\n const resultData = jsonResult.map((result) => camelcaseKeys(result));\n const {\n entities: { paymentMethods },\n result //order\n } = normalize(resultData, schemas.paymentMethods); //normalize data to byId and order\n yield put(actions.completeFetchingPaymentMethods(paymentMethods, result));\n }\n } catch (err) {\n const error = {\n errorMessage: err.toString(),\n errorNumber: -1\n };\n // alerts.showErrorAlertFailChanges({ error });\n yield put(actions.failFetchingPaymentMethods(error));\n }\n}\n\nexport function* watchFetchPaymentMethodsList() {\n yield takeEvery(types.PAYMENT_METHODS_FETCH_STARTED, fetchPaymentMethodsList);\n}\n","/* -------------------------------------------------------------------------- */\n/* Schema Currencies */\n/* -------------------------------------------------------------------------- */\n\nimport { schema } from 'normalizr';\n\nexport const locationClass = new schema.Entity(\n 'locationClasses',\n {},\n { idAttribute: 'locationClassId' }\n);\nexport const locationClasses = new schema.Array(locationClass);\n","import { call, takeEvery, put, select } from 'redux-saga/effects';\n\nimport { normalize } from 'normalizr';\nimport API_BASE_URL from '../../settings/apibaseurl';\nimport * as actions from '../../../actions/static-catalogs/location-classes';\nimport * as types from '../../../types/static-catalogs/location-classes';\nimport * as schemas from '../../../schemas/location-classes';\nimport * as authSelectors from '../../../reducers/auth';\nimport camelcaseKeys from 'camelcase-keys';\nimport * as alerts from '../../../utils/alerts';\n\n/* -------------------------------------------------------------------------- */\n/* FETCH LIST */\n/* -------------------------------------------------------------------------- */\nfunction* fetchLocationClassesList(action) {\n try {\n const isAuth = yield select(authSelectors.isAuthenticated);\n if (isAuth) {\n const token = yield select(authSelectors.getAuthToken);\n const response = yield call(fetch, `${API_BASE_URL}/location/getLocationClasses`, {\n method: 'POST',\n body: JSON.stringify({}),\n headers: {\n 'Content-Type': 'application/json',\n Authorization: `Bearer ${token}`\n }\n });\n const jsonResult = yield response.json();\n if (response.status <= 300 && jsonResult.success) {\n const resultData = jsonResult.data.map((result) => camelcaseKeys(result));\n const {\n entities: { locationClasses },\n result //order\n } = normalize(resultData, schemas.locationClasses); //normalize data to byId and order\n yield put(actions.completeFetchingLocationClasses(locationClasses, result));\n } else {\n const error = {\n errorMessage: jsonResult.message,\n errorNumber: jsonResult.number\n };\n // alerts.showErrorAlertFailChanges({ error });\n yield put(actions.failFetchingLocationClasses(error));\n }\n }\n } catch (err) {\n const error = {\n errorMessage: err.toString(),\n errorNumber: -1\n };\n // alerts.showErrorAlertFailChanges({ error });\n yield put(actions.failFetchingLocationClasses(error));\n }\n}\n\nexport function* watchFetchLocationClassesList() {\n yield takeEvery(types.LOCATION_CLASSES_FETCH_STARTED, fetchLocationClassesList);\n}\n","/* -------------------------------------------------------------------------- */\n/* Schema SIMS */\n/* -------------------------------------------------------------------------- */\n\nimport { schema } from 'normalizr';\n\nexport const sim = new schema.Entity('sims', {}, { idAttribute: 'simCardId' });\nexport const sims = new schema.Array(sim);\n","import { call, takeEvery, put, select } from 'redux-saga/effects';\n\nimport { normalize } from 'normalizr';\nimport { store } from 'redux/storeConfig/store';\nimport API_BASE_URL from '../../../../redux/sagas/settings/apibaseurl';\nimport * as actions from '../actions';\nimport * as types from '../types';\nimport * as selectors from '../reducers';\nimport * as schemas from '../schemas';\nimport * as authSelectors from '../../../../redux/reducers/auth';\nimport * as entitySelectors from '../../Entities/reducers';\nimport camelcaseKeys from 'camelcase-keys';\nimport * as alerts from '../../../../redux/utils/alerts';\nimport { appIntl } from '../../../../utility/context/IntlGlobalProvider';\nimport { getSimsListService } from '../services';\nimport * as simSelectors from '../reducers';\n\n/* -------------------------------------------------------------------------- */\n/* FETCH LIST */\n/* -------------------------------------------------------------------------- */\nfunction* fetchSimsList(action) {\n const {\n operatorId: filterOperatorId,\n organizationId: filterOrganizationId,\n allowNullOrganizationId\n } = action.payload.filters;\n const { operatorId, organizationId } = yield select(authSelectors.getAuthUserMembershipFilters, {\n filterOperatorId,\n filterOrganizationId\n });\n\n getSimsListService(\n {\n operatorId,\n organizationId:\n allowNullOrganizationId && filterOrganizationId === null ? null : organizationId\n },\n {\n successAction: (response) => {\n const resultData = response.data.map((result) => camelcaseKeys(result));\n const {\n entities: { sims },\n result //order\n } = normalize(resultData, schemas.sims); //normalize data to byId and order\n store.dispatch(actions.completeFetchingSims(sims, result, operatorId, organizationId));\n },\n errorAction: (error) => {\n store.dispatch(actions.failFetchingSims(error));\n }\n }\n );\n}\n\nexport function* watchFetchSimsList() {\n yield takeEvery(types.SIMS_FETCH_STARTED, fetchSimsList);\n}\n/* -------------------------------------------------------------------------- */\n/* PARTIAL FETCH LIST */\n/* -------------------------------------------------------------------------- */\nfunction* partialFetchSimsList(action) {\n const {\n entityTypeId,\n operatorId: filterOperatorId,\n organizationId: filterOrganizationId,\n allowNullOrganizationId\n } = action.payload;\n\n const date = yield select(entitySelectors.getUserUpdateByEntityDate, entityTypeId);\n const { operatorId, organizationId } = yield select(authSelectors.getAuthUserMembershipFilters, {\n filterOperatorId,\n filterOrganizationId\n });\n\n getSimsListService(\n {\n userFetchDate: date,\n operatorId,\n organizationId:\n allowNullOrganizationId && filterOrganizationId === null ? null : organizationId\n },\n {\n successAction: (response) => {\n const resultData = response.data.map((result) => camelcaseKeys(result));\n const {\n entities: { sims },\n result //order\n } = normalize(resultData, schemas.sims); //normalize data to byId and order\n store.dispatch(\n actions.completePartialFetchingSims(sims, result, operatorId, organizationId)\n );\n },\n errorAction: (error) => {\n store.dispatch(actions.failPartialFetchingSims(error));\n }\n }\n );\n}\n\nexport function* watchPartialFetchSimsList() {\n yield takeEvery(types.SIMS_PARTIAL_FETCH_STARTED, partialFetchSimsList);\n}\n/* -------------------------------------------------------------------------- */\n/* ADD */\n/* -------------------------------------------------------------------------- */\nfunction* addSim(action) {\n const sim = action.payload;\n try {\n const isAuth = yield select(authSelectors.isAuthenticated);\n\n if (isAuth) {\n const token = yield select(authSelectors.getAuthToken);\n\n const response = yield call(fetch, `${API_BASE_URL}/sim/save`, {\n method: 'POST',\n body: JSON.stringify({ ...sim, simId: null }),\n headers: {\n 'Content-Type': 'application/json',\n Authorization: `Bearer ${token}`\n }\n });\n const jsonResult = yield response.json();\n if (response.status <= 300 && jsonResult.success) {\n const addedSim = camelcaseKeys(jsonResult.data);\n yield put(actions.completeAddingSim(sim.simId, addedSim));\n\n alerts.showSuccessCreatedMessage({\n object: appIntl().formatMessage({\n id: 'sims.sim'\n }),\n name: sim.iccid\n });\n } else {\n const error = {\n errorMessage: jsonResult.message,\n errorNumber: jsonResult.number\n };\n // alerts.showErrorAlertFailChanges({ error });\n yield put(actions.failAddingSim(sim.simId, error));\n }\n }\n } catch (err) {\n const error = {\n errorMessage: err.toString(),\n errorNumber: -1\n };\n // alerts.showErrorAlertFailChanges({ error });\n yield put(actions.failAddingSim(sim.simId, error));\n }\n}\n\nexport function* watchAddSimsStarted() {\n yield takeEvery(types.SIM_ADD_STARTED, addSim);\n}\n\n/* -------------------------------------------------------------------------- */\n/* EDIT */\n/* -------------------------------------------------------------------------- */\nfunction* editSim(action) {\n const sim = action.payload;\n try {\n const isAuth = yield select(authSelectors.isAuthenticated);\n\n if (isAuth) {\n const token = yield select(authSelectors.getAuthToken);\n\n const response = yield call(fetch, `${API_BASE_URL}/sim/save`, {\n method: 'POST',\n body: JSON.stringify(sim),\n headers: {\n 'Content-Type': 'application/json',\n Authorization: `Bearer ${token}`\n }\n });\n const jsonResult = yield response.json();\n if (response.status <= 300 && jsonResult.success) {\n const editedSim = camelcaseKeys(jsonResult.data);\n yield put(actions.completeEditingSim(editedSim));\n alerts.showSuccessEditedMessage({\n object: appIntl().formatMessage({\n id: 'sims.sim'\n }),\n name: editedSim.iccid\n });\n } else {\n const error = {\n errorMessage: jsonResult.message,\n errorNumber: jsonResult.number\n };\n const { oldSim } = yield select((state) => selectors.getSim(state.sims, sim.simId));\n yield put(actions.failEditingSim(oldSim, error));\n // alerts.showErrorAlertFailChanges({ error });\n }\n }\n } catch (err) {\n const error = {\n errorMessage: err.toString(),\n errorNumber: -1\n };\n\n const { oldSim } = yield select((state) => selectors.getSim(state.sims, sim.simId));\n yield put(actions.failEditingSim(oldSim, error));\n // alerts.showErrorAlertFailChanges({ error });\n }\n}\n\nexport function* watchEditSimsStarted() {\n yield takeEvery(types.SIM_EDIT_STARTED, editSim);\n}\n\n/* -------------------------------------------------------------------------- */\n/* REMOVE */\n/* -------------------------------------------------------------------------- */\nfunction* removeSim(action) {\n const { simId } = action.payload;\n try {\n const isAuth = yield select(authSelectors.isAuthenticated);\n const deletedSim = yield select((state) => simSelectors.getSim(state, simId));\n if (isAuth) {\n const token = yield select(authSelectors.getAuthToken);\n\n const response = yield call(fetch, `${API_BASE_URL}/sim/delete`, {\n method: 'POST',\n body: JSON.stringify({ simId }),\n headers: {\n 'Content-Type': 'application/json',\n Authorization: `Bearer ${token}`\n }\n });\n const jsonResult = yield response.json();\n if (response.status <= 300 && jsonResult.success) {\n yield put(actions.completeRemovingSim(simId));\n alerts.showSuccessDeletedMessage({\n object: appIntl().formatMessage({\n id: 'sims.sim'\n }),\n name: deletedSim.iccid\n });\n } else {\n const error = {\n errorMessage: jsonResult.message,\n errorNumber: jsonResult.number\n };\n // alerts.showErrorAlertFailChanges({ error });\n yield put(actions.failRemovingSim(simId, error));\n }\n }\n } catch (err) {\n const error = {\n errorMessage: err.toString(),\n errorNumber: -1\n };\n // alerts.showErrorAlertFailChanges({ error });\n yield put(actions.failRemovingSim(simId, error));\n }\n}\n\nexport function* watchRemoveSimStarted() {\n yield takeEvery(types.SIM_REMOVE_STARTED, removeSim);\n}\n","/* -------------------------------------------------------------------------- */\n/* Schema Vehicles */\n/* -------------------------------------------------------------------------- */\n\nimport { schema } from 'normalizr';\n\nexport const vehicle = new schema.Entity('vehicles', {}, { idAttribute: 'vehicleId' });\nexport const vehicles = new schema.Array(vehicle);\n","import camelcaseKeys from 'camelcase-keys';\nimport { normalize } from 'normalizr';\nimport { call, put, select, takeEvery } from 'redux-saga/effects';\nimport { store } from 'redux/storeConfig/store';\nimport * as authSelectors from '../../../../redux/reducers/auth';\nimport API_BASE_URL from '../../../../redux/sagas/settings/apibaseurl';\nimport * as alerts from '../../../../redux/utils/alerts';\nimport { appIntl } from '../../../../utility/context/IntlGlobalProvider';\nimport * as entitySelectors from '../../Entities/reducers';\nimport * as actions from '../actions';\nimport * as selectors from '../reducers';\nimport * as schemas from '../schemas';\nimport { getVehiclesListService } from '../services';\nimport * as types from '../types';\n\n/* -------------------------------------------------------------------------- */\n/* FETCH LIST */\n/* -------------------------------------------------------------------------- */\nfunction* fetchVehiclesList(action) {\n const { operatorId: filterOperatorId, organizationId: filterOrganizationId } = action.payload;\n const { operatorId, organizationId } = yield select(authSelectors.getAuthUserMembershipFilters, {\n filterOperatorId,\n filterOrganizationId\n });\n\n getVehiclesListService(\n { operatorId, organizationId },\n {\n successAction: (response) => {\n const resultData = response.data.map((result) => camelcaseKeys(result));\n const {\n entities: { vehicles },\n result //order\n } = normalize(resultData, schemas.vehicles); //normalize data to byId and order\n store.dispatch(\n actions.completeFetchingVehicles(vehicles, result, operatorId, organizationId)\n );\n },\n errorAction: (error) => {\n store.dispatch(actions.failFetchingVehicles(error));\n }\n }\n );\n}\n\nexport function* watchFetchVehiclesList() {\n yield takeEvery(types.VEHICLES_FETCH_STARTED, fetchVehiclesList);\n}\n/* -------------------------------------------------------------------------- */\n/* PARTIAL FETCH LIST */\n/* -------------------------------------------------------------------------- */\nfunction* partialFetchVehiclesList(action) {\n const {\n entityTypeId,\n operatorId: filterOperatorId,\n organizationId: filterOrganizationId\n } = action.payload;\n const date = yield select(entitySelectors.getUserUpdateByEntityDate, entityTypeId);\n const { operatorId, organizationId } = yield select(authSelectors.getAuthUserMembershipFilters, {\n filterOperatorId,\n filterOrganizationId\n });\n\n getVehiclesListService(\n { userFetchDate: date, operatorId, organizationId },\n {\n successAction: (response) => {\n const resultData = response.data.map((result) => camelcaseKeys(result));\n const {\n entities: { vehicles },\n result //order\n } = normalize(resultData, schemas.vehicles); //normalize data to byId and order\n store.dispatch(\n actions.completePartialFetchingVehicles(vehicles, result, operatorId, organizationId)\n );\n },\n errorAction: (error) => {\n store.dispatch(actions.failPartialFetchingVehicles(error));\n }\n }\n );\n}\n\nexport function* watchPartialFetchVehiclesList() {\n yield takeEvery(types.VEHICLES_PARTIAL_FETCH_STARTED, partialFetchVehiclesList);\n}\n/* -------------------------------------------------------------------------- */\n/* ADD */\n/* -------------------------------------------------------------------------- */\nfunction* addVehicle(action) {\n const vehicle = action.payload;\n try {\n const isAuth = yield select(authSelectors.isAuthenticated);\n\n if (isAuth) {\n const token = yield select(authSelectors.getAuthToken);\n\n const response = yield call(fetch, `${API_BASE_URL}/vehicle/save`, {\n method: 'POST',\n body: JSON.stringify({ ...vehicle, vehicleId: null }),\n headers: {\n 'Content-Type': 'application/json',\n Authorization: `Bearer ${token}`\n }\n });\n const jsonResult = yield response.json();\n if (response.status <= 300 && jsonResult.success) {\n const addedVehicle = camelcaseKeys(jsonResult.data);\n yield put(actions.completeAddingVehicle(vehicle.vehicleId, addedVehicle));\n\n alerts.showSuccessCreatedMessage({\n object: appIntl().formatMessage({\n id: 'vehicles.vehicle'\n }),\n name: vehicle.vehicleName\n });\n } else {\n const error = {\n errorMessage: jsonResult.message,\n errorNumber: jsonResult.number\n };\n // alerts.showErrorAlertFailChanges({ error });\n yield put(actions.failAddingVehicle(vehicle.vehicleId, error));\n }\n }\n } catch (err) {\n const error = {\n errorMessage: err.toString(),\n errorNumber: -1\n };\n // alerts.showErrorAlertFailChanges({ error });\n yield put(actions.failAddingVehicle(vehicle.vehicleId, error));\n }\n}\n\nexport function* watchAddVehiclesStarted() {\n yield takeEvery(types.VEHICLE_ADD_STARTED, addVehicle);\n}\n\n/* -------------------------------------------------------------------------- */\n/* EDIT */\n/* -------------------------------------------------------------------------- */\nfunction* editVehicle(action) {\n const vehicle = action.payload;\n try {\n const isAuth = yield select(authSelectors.isAuthenticated);\n\n if (isAuth) {\n const token = yield select(authSelectors.getAuthToken);\n\n const response = yield call(fetch, `${API_BASE_URL}/vehicle/save`, {\n method: 'POST',\n body: JSON.stringify({ ...vehicle }),\n headers: {\n 'Content-Type': 'application/json',\n Authorization: `Bearer ${token}`\n }\n });\n const jsonResult = yield response.json();\n if (response.status <= 300 && jsonResult.success) {\n const editedVehicle = camelcaseKeys(jsonResult.data);\n yield put(actions.completeEditingVehicle(editedVehicle));\n alerts.showSuccessEditedMessage({\n object: appIntl().formatMessage({\n id: 'vehicles.vehicle'\n }),\n name: editedVehicle.vehicleName\n });\n } else {\n const error = {\n errorMessage: jsonResult.message,\n errorNumber: jsonResult.number\n };\n const { oldVehicle } = yield select((state) =>\n selectors.getVehicle(state.vehicles, vehicle.vehicleId)\n );\n yield put(actions.failEditingVehicle(oldVehicle, error));\n // alerts.showErrorAlertFailChanges({ error });\n }\n }\n } catch (err) {\n const error = {\n errorMessage: err.toString(),\n errorNumber: -1\n };\n\n const { oldVehicle } = yield select((state) =>\n selectors.getVehicle(state.vehicles, vehicle.vehicleId)\n );\n yield put(actions.failEditingVehicle(oldVehicle, error));\n // alerts.showErrorAlertFailChanges({ error });\n }\n}\n\nexport function* watchEditVehiclesStarted() {\n yield takeEvery(types.VEHICLE_EDIT_STARTED, editVehicle);\n}\n\n/* -------------------------------------------------------------------------- */\n/* REMOVE */\n/* -------------------------------------------------------------------------- */\nfunction* removeVehicle(action) {\n const { vehicleId } = action.payload;\n try {\n const isAuth = yield select(authSelectors.isAuthenticated);\n const deletedVehicle = yield select((state) => selectors.getVehicle(state, vehicleId));\n if (isAuth) {\n const token = yield select(authSelectors.getAuthToken);\n\n const response = yield call(fetch, `${API_BASE_URL}/vehicle/delete`, {\n method: 'POST',\n body: JSON.stringify({ vehicleId }),\n headers: {\n 'Content-Type': 'application/json',\n Authorization: `Bearer ${token}`\n }\n });\n const jsonResult = yield response.json();\n if (response.status <= 300 && jsonResult.success) {\n yield put(actions.completeRemovingVehicle(vehicleId));\n alerts.showSuccessDeletedMessage({\n object: appIntl().formatMessage({\n id: 'vehicles.vehicle'\n }),\n name: deletedVehicle.vehicleName\n });\n } else {\n const error = {\n errorMessage: jsonResult.message,\n errorNumber: jsonResult.number\n };\n // alerts.showErrorAlertFailChanges({ error });\n yield put(actions.failRemovingVehicle(vehicleId, error));\n }\n }\n } catch (err) {\n const error = {\n errorMessage: err.toString(),\n errorNumber: -1\n };\n // alerts.showErrorAlertFailChanges({ error });\n yield put(actions.failRemovingVehicle(vehicleId, error));\n }\n}\n\nexport function* watchRemoveVehicleStarted() {\n yield takeEvery(types.VEHICLE_REMOVE_STARTED, removeVehicle);\n}\n\n/* -------------------------------------------------------------------------- */\n/* LICENSE PLATE CHECK */\n/* -------------------------------------------------------------------------- */\nfunction* checkRegistrationCode(action) {\n const { vehicleId, licensePlate } = action.payload;\n try {\n const isAuth = yield select(authSelectors.isAuthenticated);\n if (isAuth) {\n const token = yield select(authSelectors.getAuthToken);\n const response = yield call(fetch, `${API_BASE_URL}/vehicle/validateLicensePlate`, {\n method: 'POST',\n body: JSON.stringify({ licensePlate, vehicleId }),\n headers: {\n 'Content-Type': 'application/json',\n Authorization: `Bearer ${token}`\n }\n });\n const jsonResult = yield response.json();\n if (response.status <= 300 && jsonResult.success) {\n const validCode = jsonResult.data.LicensePlateStatus === 1;\n yield put(actions.completeCheckingCode(validCode));\n } else {\n const error = {\n errorMessage: jsonResult.message,\n errorNumber: jsonResult.number\n };\n }\n }\n } catch (err) {\n const error = {\n errorMessage: err.toString(),\n errorNumber: -1\n };\n }\n}\n\nexport function* watchLicenseCheckStarted() {\n yield takeEvery(types.VEHICLE_LICENSE_PLATE_CHECK_STARTED, checkRegistrationCode);\n}\n","/* -------------------------------------------------------------------------- */\n/* Schema Assets */\n/* -------------------------------------------------------------------------- */\n\nimport { schema } from 'normalizr';\n\nexport const asset = new schema.Entity('assets', {}, { idAttribute: 'assetId' });\nexport const assets = new schema.Array(asset);\n","import { call, takeEvery, put, select } from 'redux-saga/effects';\n\nimport { normalize } from 'normalizr';\nimport { store } from 'redux/storeConfig/store';\nimport API_BASE_URL from '../../../../redux/sagas/settings/apibaseurl';\nimport * as actions from '../actions';\nimport * as types from '../types';\nimport * as selectors from '../reducers';\nimport * as schemas from '../schemas';\nimport * as authSelectors from '../../../../redux/reducers/auth';\nimport * as entitySelectors from '../../Entities/reducers';\nimport camelcaseKeys from 'camelcase-keys';\nimport * as alerts from '../../../../redux/utils/alerts';\nimport { appIntl } from '../../../../utility/context/IntlGlobalProvider';\nimport { getAssetsListService } from '../services';\nimport * as assetSelectors from '../reducers';\n\n/* -------------------------------------------------------------------------- */\n/* FETCH LIST */\n/* -------------------------------------------------------------------------- */\nfunction* fetchAssetsList(action) {\n const { operatorId: filterOperatorId, organizationId: filterOrganizationId } = action.payload;\n const { operatorId, organizationId } = yield select(authSelectors.getAuthUserMembershipFilters, {\n filterOperatorId,\n filterOrganizationId\n });\n\n getAssetsListService(\n { operatorId, organizationId },\n {\n successAction: (response) => {\n const resultData = response.data.map((result) => camelcaseKeys(result));\n const {\n entities: { assets },\n result //order\n } = normalize(resultData, schemas.assets); //normalize data to byId and order\n store.dispatch(actions.completeFetchingAssets(assets, result, operatorId, organizationId));\n },\n errorAction: (error) => {\n store.dispatch(actions.failFetchingAssets(error));\n }\n }\n );\n}\n\nexport function* watchFetchAssetsList() {\n yield takeEvery(types.ASSETS_FETCH_STARTED, fetchAssetsList);\n}\n/* -------------------------------------------------------------------------- */\n/* PARTIAL FETCH LIST */\n/* -------------------------------------------------------------------------- */\nfunction* partialFetchAssetsList(action) {\n const {\n entityTypeId,\n operatorId: filterOperatorId,\n organizationId: filterOrganizationId\n } = action.payload;\n const date = yield select(entitySelectors.getUserUpdateByEntityDate, entityTypeId);\n const { operatorId, organizationId } = yield select(authSelectors.getAuthUserMembershipFilters, {\n filterOperatorId,\n filterOrganizationId\n });\n\n getAssetsListService(\n { userFetchDate: date, operatorId, organizationId },\n {\n successAction: (response) => {\n const resultData = response.data.map((result) => camelcaseKeys(result));\n const {\n entities: { assets },\n result //order\n } = normalize(resultData, schemas.assets); //normalize data to byId and order\n store.dispatch(\n actions.completePartialFetchingAssets(assets, result, operatorId, organizationId)\n );\n },\n errorAction: (error) => {\n store.dispatch(actions.failPartialFetchingAssets(error));\n }\n }\n );\n}\n\nexport function* watchPartialFetchAssetsList() {\n yield takeEvery(types.ASSETS_PARTIAL_FETCH_STARTED, partialFetchAssetsList);\n}\n/* -------------------------------------------------------------------------- */\n/* ADD */\n/* -------------------------------------------------------------------------- */\nfunction* addAsset(action) {\n const asset = action.payload;\n try {\n const isAuth = yield select(authSelectors.isAuthenticated);\n\n if (isAuth) {\n const token = yield select(authSelectors.getAuthToken);\n\n const response = yield call(fetch, `${API_BASE_URL}/asset/save`, {\n method: 'POST',\n body: JSON.stringify({ ...asset, assetId: null }),\n headers: {\n 'Content-Type': 'application/json',\n Authorization: `Bearer ${token}`\n }\n });\n const jsonResult = yield response.json();\n if (response.status <= 300 && jsonResult.success) {\n const addedAsset = camelcaseKeys(jsonResult.data);\n yield put(actions.completeAddingAsset(asset.assetId, addedAsset));\n\n alerts.showSuccessCreatedMessage({\n object: appIntl().formatMessage({\n id: 'assets.asset'\n }),\n name: asset.assetIdentifier\n });\n } else {\n const error = {\n errorMessage: jsonResult.message,\n errorNumber: jsonResult.number\n };\n // alerts.showErrorAlertFailChanges({ error });\n yield put(actions.failAddingAsset(asset.assetId, error));\n }\n }\n } catch (err) {\n const error = {\n errorMessage: err.toString(),\n errorNumber: -1\n };\n // alerts.showErrorAlertFailChanges({ error });\n yield put(actions.failAddingAsset(asset.assetId, error));\n }\n}\n\nexport function* watchAddAssetsStarted() {\n yield takeEvery(types.ASSET_ADD_STARTED, addAsset);\n}\n\n/* -------------------------------------------------------------------------- */\n/* EDIT */\n/* -------------------------------------------------------------------------- */\nfunction* editAsset(action) {\n const asset = action.payload;\n try {\n const isAuth = yield select(authSelectors.isAuthenticated);\n\n if (isAuth) {\n const token = yield select(authSelectors.getAuthToken);\n\n const response = yield call(fetch, `${API_BASE_URL}/asset/save`, {\n method: 'POST',\n body: JSON.stringify(asset),\n headers: {\n 'Content-Type': 'application/json',\n Authorization: `Bearer ${token}`\n }\n });\n const jsonResult = yield response.json();\n if (response.status <= 300 && jsonResult.success) {\n const editedAsset = camelcaseKeys(jsonResult.data);\n yield put(actions.completeEditingAsset(editedAsset));\n alerts.showSuccessEditedMessage({\n object: appIntl().formatMessage({\n id: 'assets.asset'\n }),\n name: editedAsset.assetIdentifier\n });\n } else {\n const error = {\n errorMessage: jsonResult.message,\n errorNumber: jsonResult.number\n };\n const { oldAsset } = yield select((state) =>\n selectors.getAsset(state.assets, asset.assetId)\n );\n yield put(actions.failEditingAsset(oldAsset, error));\n // alerts.showErrorAlertFailChanges({ error });\n }\n }\n } catch (err) {\n const error = {\n errorMessage: err.toString(),\n errorNumber: -1\n };\n\n const { oldAsset } = yield select((state) => selectors.getAsset(state.assets, asset.assetId));\n yield put(actions.failEditingAsset(oldAsset, error));\n // alerts.showErrorAlertFailChanges({ error });\n }\n}\n\nexport function* watchEditAssetsStarted() {\n yield takeEvery(types.ASSET_EDIT_STARTED, editAsset);\n}\n\n/* -------------------------------------------------------------------------- */\n/* REMOVE */\n/* -------------------------------------------------------------------------- */\nfunction* removeAsset(action) {\n const { assetId } = action.payload;\n try {\n const isAuth = yield select(authSelectors.isAuthenticated);\n const deletedAsset = yield select((state) => assetSelectors.getAsset(state, assetId));\n if (isAuth) {\n const token = yield select(authSelectors.getAuthToken);\n const response = yield call(fetch, `${API_BASE_URL}/asset/delete`, {\n method: 'POST',\n body: JSON.stringify({ assetId }),\n headers: {\n 'Content-Type': 'application/json',\n Authorization: `Bearer ${token}`\n }\n });\n const jsonResult = yield response.json();\n if (response.status <= 300 && jsonResult.success) {\n yield put(actions.completeRemovingAsset(assetId));\n alerts.showSuccessDeletedMessage({\n object: appIntl().formatMessage({\n id: 'assets.asset'\n }),\n name: deletedAsset.assetIdentifier\n });\n } else {\n const error = {\n errorMessage: jsonResult.message,\n errorNumber: jsonResult.number\n };\n // alerts.showErrorAlertFailChanges({ error });\n yield put(actions.failRemovingAsset(assetId, error));\n }\n }\n } catch (err) {\n const error = {\n errorMessage: err.toString(),\n errorNumber: -1\n };\n // alerts.showErrorAlertFailChanges({ error });\n yield put(actions.failRemovingAsset(assetId, error));\n }\n}\n\nexport function* watchRemoveAssetStarted() {\n yield takeEvery(types.ASSET_REMOVE_STARTED, removeAsset);\n}\n\n/* -------------------------------------------------------------------------- */\n/* IDENTIFIER CHECK */\n/* -------------------------------------------------------------------------- */\nfunction* checkIdentifier(action) {\n const { assetId, identifier } = action.payload;\n try {\n const isAuth = yield select(authSelectors.isAuthenticated);\n if (isAuth) {\n const token = yield select(authSelectors.getAuthToken);\n\n const response = yield call(fetch, `${API_BASE_URL}/asset/validateIdentifier`, {\n method: 'POST',\n body: JSON.stringify({ assetId, identifier }),\n headers: {\n 'Content-Type': 'application/json',\n Authorization: `Bearer ${token}`\n }\n });\n const jsonResult = yield response.json();\n if (response.status <= 300 && jsonResult.success) {\n const validCode = jsonResult.data.AssetIdentifierStatus === 1;\n yield put(actions.completeCheckingCode(validCode));\n } else {\n const error = {\n errorMessage: jsonResult.message,\n errorNumber: jsonResult.number\n };\n }\n }\n } catch (err) {\n const error = {\n errorMessage: err.toString(),\n errorNumber: -1\n };\n }\n}\n\nexport function* watchIdentifierCheckStarted() {\n yield takeEvery(types.ASSET_IDENTIFIER_CHECK_STARTED, checkIdentifier);\n}\n\n/* -------------------------------------------------------------------------- */\n/* SECURITY SEAL CODE CHECK */\n/* -------------------------------------------------------------------------- */\nfunction* checkSecuritySealCode(action) {\n const { assetId, securitySealCode } = action.payload;\n\n try {\n const isAuth = yield select(authSelectors.isAuthenticated);\n if (isAuth) {\n const token = yield select(authSelectors.getAuthToken);\n\n const response = yield call(fetch, `${API_BASE_URL}/asset/validateSecuritySealCode`, {\n method: 'POST',\n body: JSON.stringify({ assetId: assetId ?? null, securitySealCode }),\n headers: {\n 'Content-Type': 'application/json',\n Authorization: `Bearer ${token}`\n }\n });\n const jsonResult = yield response.json();\n if (response.status <= 300 && jsonResult.success) {\n const validCode = jsonResult.data.IsValid === 1;\n yield put(actions.completeCheckingSecuritySealCode(validCode));\n } else {\n const error = {\n errorMessage: jsonResult.message,\n errorNumber: jsonResult.number\n };\n }\n }\n } catch (err) {\n const error = {\n errorMessage: err.toString(),\n errorNumber: -1\n };\n }\n}\n\nexport function* watchSecuritySealCodeCheckStarted() {\n yield takeEvery(types.ASSET_SECURITY_SEAL_CODE_CHECK_STARTED, checkSecuritySealCode);\n}\n","/* -------------------------------------------------------------------------- */\n/* Schema Sensors */\n/* -------------------------------------------------------------------------- */\n\nimport { schema } from 'normalizr';\nexport const sensorSchema = new schema.Entity('sensors', {}, { idAttribute: 'sensorId' });\nexport const sensors = new schema.Array(sensorSchema);\n","import { call, put, select, takeEvery } from 'redux-saga/effects';\n\nimport camelcaseKeys from 'camelcase-keys';\nimport { normalize } from 'normalizr';\nimport { store } from 'redux/storeConfig/store';\nimport * as authSelectors from '../../../../redux/reducers/auth';\nimport API_BASE_URL from '../../../../redux/sagas/settings/apibaseurl';\nimport * as entitySelectors from '../../Entities/reducers';\nimport * as actions from '../actions';\nimport * as selectors from '../reducers';\nimport * as schemas from '../schemas';\nimport {\n deleteSensorService,\n fuelCalibrationFinalizeService,\n fuelCalibrationStartService,\n getSensorsListService,\n saveSensorService\n} from '../services/sensors';\nimport * as types from '../types';\n\n/* -------------------------------------------------------------------------- */\n/* FETCH LIST */\n/* -------------------------------------------------------------------------- */\nfunction* fetchSensorsList(action) {\n getSensorsListService(\n {},\n {\n successAction: (response) => {\n const resultData = response.data.map((result) => camelcaseKeys(result));\n const {\n entities: { sensors },\n result //order\n } = normalize(resultData, schemas.sensors); //normalize data to byId and order\n store.dispatch(actions.completeFetchingSensors(sensors, result));\n },\n errorAction: (error) => {\n store.dispatch(actions.failFetchingSensors(error));\n }\n }\n );\n}\n\nexport function* watchFetchSensorsList() {\n yield takeEvery(types.SENSORS_FETCH_STARTED, fetchSensorsList);\n}\n\n/* -------------------------------------------------------------------------- */\n/* FETCH LIST */\n/* -------------------------------------------------------------------------- */\nfunction* partialFetchSensorsList(action) {\n const entityTypeId = action.payload;\n const date = yield select(entitySelectors.getUserUpdateByEntityDate, entityTypeId);\n getSensorsListService(\n { userFetchDate: date },\n {\n successAction: (response) => {\n const resultData = response.data.map((result) => camelcaseKeys(result));\n const {\n entities: { sensors },\n result //order\n } = normalize(resultData, schemas.sensors); //normalize data to byId and order\n store.dispatch(actions.completePartialFetchingSensors(sensors, result));\n },\n errorAction: (error) => {\n store.dispatch(actions.failPartialFetchingSensors(error));\n }\n }\n );\n}\n\nexport function* watchPartialFetchSensorsList() {\n yield takeEvery(types.SENSORS_PARTIAL_FETCH_STARTED, partialFetchSensorsList);\n}\n\n/* -------------------------------------------------------------------------- */\n/* ADD */\n/* -------------------------------------------------------------------------- */\nfunction* addSensor(action) {\n const sensor = action.payload;\n saveSensorService(\n { ...sensor, sensorId: null },\n {\n successAction: (response) => {\n const addedSensor = camelcaseKeys(response.data);\n store.dispatch(actions.completeAddingSensor(sensor.sensorId, addedSensor));\n },\n errorAction: (error) => {\n store.dispatch(actions.failAddingSensor(sensor.sensorId, error));\n }\n }\n );\n}\n\nexport function* watchAddSensorsStarted() {\n yield takeEvery(types.SENSOR_ADD_STARTED, addSensor);\n}\n\n/* -------------------------------------------------------------------------- */\n/* EDIT */\n/* -------------------------------------------------------------------------- */\nfunction* editSensor(action) {\n const sensor = action.payload;\n const oldSensor = yield select((state) => selectors.getSensor(state, sensor.sensorId));\n saveSensorService(\n { ...sensor },\n {\n successAction: (response) => {\n const editedSensor = camelcaseKeys(response.data);\n store.dispatch(actions.completeEditingSensor(editedSensor));\n },\n errorAction: (error) => {\n store.dispatch(actions.failEditingSensor(oldSensor, error));\n }\n }\n );\n}\n\nexport function* watchEditSensorsStarted() {\n yield takeEvery(types.SENSOR_EDIT_STARTED, editSensor);\n}\n\n/* -------------------------------------------------------------------------- */\n/* REMOVE */\n/* -------------------------------------------------------------------------- */\nfunction* removeSensor(action) {\n const { sensorId } = action.payload;\n const sensor = yield select((state) => selectors.getSensor(state, sensorId));\n deleteSensorService(\n { ...sensor },\n {\n successAction: (response) => {\n store.dispatch(actions.completeRemovingSensor(sensorId));\n },\n errorAction: (error) => {\n store.dispatch(actions.failRemovingSensor(sensorId, error));\n }\n }\n );\n}\n\nexport function* watchRemoveSensorStarted() {\n yield takeEvery(types.SENSOR_REMOVE_STARTED, removeSensor);\n}\n\n/* -------------------------------------------------------------------------- */\n/* IDENTIFIER CHECK */\n/* -------------------------------------------------------------------------- */\nfunction* checkRegistrationCode(action) {\n const { sensorId, identifier } = action.payload;\n try {\n const isAuth = yield select(authSelectors.isAuthenticated);\n if (isAuth) {\n const token = yield select(authSelectors.getAuthToken);\n const response = yield call(fetch, `${API_BASE_URL}/sensor/validateIdentifier`, {\n method: 'POST',\n body: JSON.stringify({ identifier, sensorId }),\n headers: {\n 'Content-Type': 'application/json',\n Authorization: `Bearer ${token}`\n }\n });\n const jsonResult = yield response.json();\n if (response.status <= 300 && jsonResult.success) {\n const validCode = jsonResult.data.UniqueIdentifierStatus === 1;\n yield put(actions.completeCheckingCode(validCode));\n } else {\n const error = {\n errorMessage: jsonResult.message,\n errorNumber: jsonResult.number\n };\n }\n }\n } catch (err) {\n const error = {\n errorMessage: err.toString(),\n errorNumber: -1\n };\n }\n}\n\nexport function* watchSensorIdentifierCheckStarted() {\n yield takeEvery(types.IDENTIFIER_CHECK_STARTED, checkRegistrationCode);\n}\n\n/* -------------------------------------------------------------------------- */\n/* START FUEL CALIBRATION */\n/* -------------------------------------------------------------------------- */\nfunction* sensorCalibrationStarted(action) {\n const { sensorId } = action.payload;\n const sensor = yield select((state) => selectors.getSensor(state, sensorId));\n fuelCalibrationStartService(\n { ...sensor },\n {\n successAction: (response) => {\n store.dispatch(actions.sensorCalibrationStartCompleted(sensorId));\n },\n errorAction: (error) => {\n store.dispatch(actions.sensorCalibrationStartFail(sensorId, error));\n }\n }\n );\n}\n\nexport function* watchSensorCalibrationStartStarted() {\n yield takeEvery(types.START_SENSOR_CALIBRATION_STARTED, sensorCalibrationStarted);\n}\n\n/* -------------------------------------------------------------------------- */\n/* FINALIZE FUEL CALIBRATION */\n/* -------------------------------------------------------------------------- */\nfunction* sensorCalibrationFinalized(action) {\n const { sensorId } = action.payload;\n const sensor = yield select((state) => selectors.getSensor(state, sensorId));\n fuelCalibrationFinalizeService(\n { ...sensor },\n {\n successAction: (response) => {\n store.dispatch(actions.sensorCalibrationFinalizeCompleted(sensorId));\n },\n errorAction: (error) => {\n store.dispatch(actions.sensorCalibrationFinalizeFail(sensorId, error));\n }\n }\n );\n}\n\nexport function* watchSensorCalibrationFinalizeStarted() {\n yield takeEvery(types.FINALIZE_SENSOR_CALIBRATION_STARTED, sensorCalibrationFinalized);\n}\n","/* -------------------------------------------------------------------------- */\n/* Schema Locations */\n/* -------------------------------------------------------------------------- */\n\nimport { schema } from 'normalizr';\n\nexport const location = new schema.Entity('locations', {}, { idAttribute: 'locationId' });\nexport const locations = new schema.Array(location);\n","/* -------------------------------------------------------------------------- */\n/* Schema Imported Locations */\n/* -------------------------------------------------------------------------- */\n\nimport { schema } from 'normalizr';\n\nexport const importedLocation = new schema.Entity('importedLocations', {}, { idAttribute: 'id' });\nexport const importedLocations = new schema.Array(importedLocation);\n","import { HttpWebtrack } from 'utility/http';\nimport { ConfigActions } from '../../../../utility/http/http-events';\n\nimport configureInterceptors from 'utility/http/interceptors/configure-interceptors';\nimport { store } from 'redux/storeConfig/store';\n\nexport const baseUrl = '/location';\n\ninterface LocationSaveRequest {\n locationId?: number;\n dispatchCompletionType: number;\n dispatchEmails: string;\n dispatchNotificationFreq: number;\n enableDispatch: number;\n latitude: number;\n longitude: number;\n radius: number;\n locationName: string;\n locationTypeId: number;\n locationClassId: number;\n locationAddress?: string;\n privateCode?: string;\n organizationId: number;\n divisionId: number;\n subdivisionId: number;\n}\n\ninterface LocationDeleteRequest {\n locationId: number;\n locationName: string;\n}\ninterface LocationFilters {\n operatorId?: number;\n organizationId?: number;\n userFetchDate?: Date;\n}\n\nexport const getLocationsListService = (request: LocationFilters, configActions: ConfigActions) => {\n const httpWebtrack = new HttpWebtrack();\n configureInterceptors.ConfigureWebtrackInterceptor(store, httpWebtrack);\n httpWebtrack.setConfigMessage({\n object: 'locations.location',\n action: 'Get',\n genderType: 'PluralFemale'\n });\n httpWebtrack.setConfigActions(configActions);\n return httpWebtrack.post(`${baseUrl}/get`, request);\n};\n\nexport const saveLocationService = (request: LocationSaveRequest, configActions: ConfigActions) => {\n const httpWebtrack = new HttpWebtrack();\n configureInterceptors.ConfigureWebtrackInterceptor(store, httpWebtrack);\n httpWebtrack.setConfigMessage({\n object: 'locations.location',\n action: request.locationId ? 'Edit' : 'Create',\n name: request.locationName,\n genderType: 'SingularFemale'\n });\n httpWebtrack.setConfigActions(configActions);\n return httpWebtrack.post(`${baseUrl}/save`, request);\n};\n\nexport const deleteLocationService = (\n request: LocationDeleteRequest,\n configActions: ConfigActions\n) => {\n const httpWebtrack = new HttpWebtrack();\n configureInterceptors.ConfigureWebtrackInterceptor(store, httpWebtrack);\n httpWebtrack.setConfigMessage({\n name: `${request.locationName}`,\n object: 'locations.location',\n action: 'Delete',\n genderType: 'SingularFemale'\n });\n httpWebtrack.setConfigActions(configActions);\n return httpWebtrack.post(`${baseUrl}/delete`, request);\n};\n\nexport const importLocationsService = (\n request: LocationDeleteRequest,\n configActions: ConfigActions\n) => {\n const httpWebtrack = new HttpWebtrack();\n configureInterceptors.ConfigureWebtrackInterceptor(store, httpWebtrack);\n httpWebtrack.setConfigActions(configActions);\n return httpWebtrack.post(`${baseUrl}/importLocations`, request);\n};\n\nexport const importLocationsServiceOptimization = (\n request: LocationDeleteRequest,\n configActions: ConfigActions\n) => {\n const httpWebtrack = new HttpWebtrack();\n configureInterceptors.ConfigureWebtrackInterceptor(store, httpWebtrack);\n httpWebtrack.setConfigActions(configActions);\n return httpWebtrack.post(`${baseUrl}/importLocationsOptimizations`, request);\n};\n","import { call, takeEvery, put, select } from 'redux-saga/effects';\n\nimport { normalize } from 'normalizr';\nimport * as actions from '../actions';\nimport * as types from '../types';\nimport * as selectors from '../reducers';\nimport * as schemas from '../schemas';\nimport * as schemasImportedLocations from '../schemas/importLocations';\nimport * as entitySelectors from '../../Entities/reducers';\nimport * as entityActions from '../../Entities/actions';\nimport * as authSelectors from '../../../../redux/reducers/auth';\nimport camelcaseKeys from 'camelcase-keys';\nimport {\n getLocationsListService,\n saveLocationService,\n deleteLocationService,\n importLocationsService\n} from '../services/locations';\nimport { store } from 'redux/storeConfig/store';\n\n/* -------------------------------------------------------------------------- */\n/* FETCH LIST */\n/* -------------------------------------------------------------------------- */\nfunction* fetchLocationsList(action) {\n const { operatorId: filterOperatorId, organizationId: filterOrganizationId } = action.payload;\n const { operatorId, organizationId } = yield select(authSelectors.getAuthUserMembershipFilters, {\n filterOperatorId,\n filterOrganizationId\n });\n\n getLocationsListService(\n { operatorId, organizationId },\n {\n successAction: (response) => {\n const resultData = response.data.map((result) => camelcaseKeys(result));\n const {\n entities: { locations },\n result //order\n } = normalize(resultData, schemas.locations); //normalize data to byId and order\n store.dispatch(\n actions.completeFetchingLocations(locations, result, operatorId, organizationId)\n );\n },\n errorAction: (error) => {\n store.dispatch(actions.failFetchingLocations(error));\n }\n }\n );\n}\n\nexport function* watchFetchLocationsList() {\n yield takeEvery(types.LOCATIONS_FETCH_STARTED, fetchLocationsList);\n}\n\n/* -------------------------------------------------------------------------- */\n/* PARTIAL FETCH LIST */\n/* -------------------------------------------------------------------------- */\nfunction* partialFetchLocationsList(action) {\n const {\n entityTypeId,\n operatorId: filterOperatorId,\n organizationId: filterOrganizationId\n } = action.payload;\n const date = yield select(entitySelectors.getUserUpdateByEntityDate, entityTypeId);\n const { operatorId, organizationId } = yield select(authSelectors.getAuthUserMembershipFilters, {\n filterOperatorId,\n filterOrganizationId\n });\n\n getLocationsListService(\n { userFetchDate: date, operatorId, organizationId },\n {\n successAction: (response) => {\n const resultData = response.data.map((result) => camelcaseKeys(result));\n const {\n entities: { locations },\n result //order\n } = normalize(resultData, schemas.locations); //normalize data to byId and order\n store.dispatch(\n actions.completePartialFetchingLocations(locations, result, operatorId, organizationId)\n );\n },\n errorAction: (error) => {\n store.dispatch(actions.failPartialFetchingLocations(error));\n }\n }\n );\n}\n\nexport function* watchPartialFetchLocationsList() {\n yield takeEvery(types.LOCATIONS_PARTIAL_FETCH_STARTED, partialFetchLocationsList);\n}\n\n/* -------------------------------------------------------------------------- */\n/* ADD */\n/* -------------------------------------------------------------------------- */\nfunction* addLocation(action) {\n const location = action.payload;\n saveLocationService(\n { ...location, locationId: null },\n {\n successAction: (response) => {\n const addedLocation = camelcaseKeys(response.data);\n store.dispatch(actions.completeAddingLocation(location.locationId, addedLocation));\n store.dispatch(entityActions.startFetchingEntities());\n },\n errorAction: (error) => {\n store.dispatch(actions.failAddingLocation(location.locationId, error));\n }\n }\n );\n}\n\nexport function* watchAddLocationsStarted() {\n yield takeEvery(types.LOCATION_ADD_STARTED, addLocation);\n}\n\n/* -------------------------------------------------------------------------- */\n/* EDIT */\n/* -------------------------------------------------------------------------- */\nfunction* editLocation(action) {\n const location = action.payload;\n const { oldLocation } = yield select((state) =>\n selectors.getLocation(state, location.locationId)\n );\n saveLocationService(\n { ...location },\n {\n successAction: (response) => {\n const editedLocation = camelcaseKeys(response.data);\n store.dispatch(actions.completeEditingLocation(editedLocation));\n store.dispatch(entityActions.startFetchingEntities());\n },\n errorAction: (error) => {\n store.dispatch(actions.failEditingLocation(oldLocation, error));\n }\n }\n );\n}\n\nexport function* watchEditLocationsStarted() {\n yield takeEvery(types.LOCATION_EDIT_STARTED, editLocation);\n}\n\n/* -------------------------------------------------------------------------- */\n/* REMOVE */\n/* -------------------------------------------------------------------------- */\nfunction* removeLocation(action) {\n const { locationId } = action.payload;\n const location = yield select((state) => selectors.getLocation(state, locationId));\n deleteLocationService(\n { ...location },\n {\n successAction: (response) => {\n store.dispatch(actions.completeRemovingLocation(locationId));\n },\n errorAction: (error) => {\n store.dispatch(actions.failRemovingLocation(locationId, error));\n }\n }\n );\n}\n\nexport function* watchRemoveLocationStarted() {\n yield takeEvery(types.LOCATION_REMOVE_STARTED, removeLocation);\n}\n\n/* -------------------------------------------------------------------------- */\n/* IMPORT */\n/* -------------------------------------------------------------------------- */\nfunction* importLocations(action) {\n const locations = action.payload;\n const { operatorId: filterOperatorId, organizationId: filterOrganizationId } = action.payload;\n const { operatorId, organizationId } = yield select(authSelectors.getAuthUserMembershipFilters, {\n filterOperatorId,\n filterOrganizationId\n });\n importLocationsService(\n { ...locations },\n {\n successAction: (response) => {\n const resultData = response.data.map((result) => camelcaseKeys(result));\n // Fetch locations\n store.dispatch(actions.startFetchingLocations({ operatorId, organizationId }));\n const {\n entities: { importedLocations },\n result //order\n } = normalize(resultData, schemasImportedLocations.importedLocations); //normalize data to byId and order\n // Complete import locations\n store.dispatch(actions.completeImportingLocations(importedLocations, result));\n },\n errorAction: (error) => {\n store.dispatch(actions.failImportingLocations(error));\n }\n }\n );\n}\n\nexport function* watchImportLocationsStarted() {\n yield takeEvery(types.LOCATIONS_IMPORT_STARTED, importLocations);\n}\n","/* -------------------------------------------------------------------------- */\n/* Schema Locations */\n/* -------------------------------------------------------------------------- */\n\nimport { schema } from 'normalizr';\n\nexport const driver = new schema.Entity('drivers', {}, { idAttribute: 'driverId' });\nexport const drivers = new schema.Array(driver);\n","import { call, takeEvery, put, select } from 'redux-saga/effects';\n\nimport { normalize } from 'normalizr';\nimport * as actions from '../actions';\nimport * as types from '../types';\nimport * as selectors from '../reducers';\nimport * as schemas from '../schemas';\nimport * as entitySelectors from '../../Entities/reducers';\nimport * as unitSelectors from 'views/screens/Units/reducers';\nimport * as authSelectors from '../../../../redux/reducers/auth';\nimport camelcaseKeys from 'camelcase-keys';\nimport {\n getDriversListService,\n saveDriverService,\n deleteDriverService,\n assignDriversMassivelyService\n} from '../services/drivers';\nimport { store } from 'redux/storeConfig/store';\nimport API_BASE_URL from '../../../../redux/sagas/settings/apibaseurl';\nimport * as alerts from '../../../../redux/utils/alerts';\nimport { appIntl } from '../../../../utility/context/IntlGlobalProvider';\n\n/* -------------------------------------------------------------------------- */\n/* FETCH LIST */\n/* -------------------------------------------------------------------------- */\nfunction* fetchDriversList(action) {\n const { operatorId: filterOperatorId, organizationId: filterOrganizationId } = action.payload;\n const { operatorId, organizationId } = yield select(authSelectors.getAuthUserMembershipFilters, {\n filterOperatorId,\n filterOrganizationId\n });\n\n getDriversListService(\n { operatorId, organizationId },\n {\n successAction: (response) => {\n const resultData = response.data.map((result) => camelcaseKeys(result));\n const {\n entities: { drivers },\n result //order\n } = normalize(resultData, schemas.drivers); //normalize data to byId and order\n store.dispatch(\n actions.completeFetchingDrivers(drivers, result, operatorId, organizationId)\n );\n },\n errorAction: (error) => {\n store.dispatch(actions.failFetchingDrivers(error));\n }\n }\n );\n}\n\nexport function* watchFetchDriversList() {\n yield takeEvery(types.DRIVERS_FETCH_STARTED, fetchDriversList);\n}\n\n/* -------------------------------------------------------------------------- */\n/* PARTIAL FETCH LIST */\n/* -------------------------------------------------------------------------- */\nfunction* partialFetchDriversList(action) {\n const {\n entityTypeId,\n operatorId: filterOperatorId,\n organizationId: filterOrganizationId\n } = action.payload;\n const date = yield select(entitySelectors.getUserUpdateByEntityDate, entityTypeId);\n const { operatorId, organizationId } = yield select(authSelectors.getAuthUserMembershipFilters, {\n filterOperatorId,\n filterOrganizationId\n });\n\n getDriversListService(\n { userFetchDate: date, operatorId, organizationId },\n {\n successAction: (response) => {\n const resultData = response.data.map((result) => camelcaseKeys(result));\n const {\n entities: { drivers },\n result //order\n } = normalize(resultData, schemas.drivers); //normalize data to byId and order\n store.dispatch(\n actions.completePartialFetchingDrivers(drivers, result, operatorId, organizationId)\n );\n },\n errorAction: (error) => {\n store.dispatch(actions.failPartialFetchingDrivers(error));\n }\n }\n );\n}\n\nexport function* watchPartialFetchDriversList() {\n yield takeEvery(types.DRIVERS_PARTIAL_FETCH_STARTED, partialFetchDriversList);\n}\n\n/* -------------------------------------------------------------------------- */\n/* ADD */\n/* -------------------------------------------------------------------------- */\nfunction* addDriver(action) {\n const driver = action.payload;\n const person = action.person;\n saveDriverService(\n { ...driver, driverId: null },\n {\n successAction: (response) => {\n const addedDriver = camelcaseKeys(response?.data[0]);\n store.dispatch(actions.completeAddingDriver(driver.driverId, addedDriver));\n },\n errorAction: (error) => {\n store.dispatch(actions.failAddingDriver(driver.driverId, error));\n }\n },\n person\n );\n}\n\nexport function* watchAddDriversStarted() {\n yield takeEvery(types.DRIVER_ADD_STARTED, addDriver);\n}\n\n/* -------------------------------------------------------------------------- */\n/* EDIT */\n/* -------------------------------------------------------------------------- */\nfunction* editDriver(action) {\n const driver = action.payload;\n const person = action.person;\n const oldDriver = yield select((state) => selectors.getDriver(state, driver.driverId));\n saveDriverService(\n { ...driver },\n {\n successAction: (response) => {\n const editedDriver = camelcaseKeys(response?.data[0]);\n store.dispatch(actions.completeEditingDriver(editedDriver));\n },\n errorAction: (error) => {\n store.dispatch(actions.failEditingDriver(oldDriver, error));\n }\n },\n person\n );\n}\n\nexport function* watchEditDriversStarted() {\n yield takeEvery(types.DRIVER_EDIT_STARTED, editDriver);\n}\n\n/* -------------------------------------------------------------------------- */\n/* ASSIGN UNASSIGN SENSOR */\n/* -------------------------------------------------------------------------- */\nfunction* assignSensor(action) {\n const sensor: any = action.payload.sensor;\n const driverId = action.payload.driverId;\n try {\n const isAuth = yield select(authSelectors.isAuthenticated);\n\n if (isAuth) {\n const token = yield select(authSelectors.getAuthToken);\n const response = yield call(fetch, `${API_BASE_URL}/driver/updateSensors`, {\n method: 'POST',\n body: JSON.stringify({ driverId: driverId, sensorId: sensor.sensorId }),\n headers: {\n 'Content-Type': 'application/json',\n Authorization: `Bearer ${token}`\n }\n });\n const jsonResult = yield response.json();\n if (response.status <= 300 && jsonResult.success) {\n yield put(actions.completeDriverAssignSensor(driverId, sensor));\n alerts.showSuccessAssignedMessage({\n object: appIntl().formatMessage({\n id: 'sensors.sensor'\n }),\n name: sensor.sensorName\n });\n } else {\n const error = {\n errorMessage: jsonResult.message,\n errorNumber: jsonResult.number\n };\n // alerts.showErrorAlertFailChanges({ error });\n }\n }\n } catch (err) {\n const error = {\n errorMessage: err?.toString(),\n errorNumber: -1\n };\n\n // alerts.showErrorAlertFailChanges({ error });\n }\n}\n\nfunction* unassignSensor(action) {\n const sensor: any = action.payload.sensor;\n const driverId = action.payload.driverId;\n try {\n const isAuth = yield select(authSelectors.isAuthenticated);\n\n if (isAuth) {\n const token = yield select(authSelectors.getAuthToken);\n const response = yield call(fetch, `${API_BASE_URL}/driver/deleteSensor`, {\n method: 'POST',\n body: JSON.stringify({ sensorId: sensor.sensorId }),\n headers: {\n 'Content-Type': 'application/json',\n Authorization: `Bearer ${token}`\n }\n });\n const jsonResult = yield response.json();\n if (response.status <= 300 && jsonResult.success) {\n yield put(actions.completeDriverUnassignSensor(driverId, sensor));\n alerts.showSuccessUnassignedMessage({\n object: appIntl().formatMessage({\n id: 'sensors.sensor'\n }),\n name: sensor.sensorName\n });\n } else {\n const error = {\n errorMessage: jsonResult.message,\n errorNumber: jsonResult.number\n };\n // alerts.showErrorAlertFailChanges({ error });\n }\n }\n } catch (err) {\n const error = {\n errorMessage: err?.toString(),\n errorNumber: -1\n };\n\n // alerts.showErrorAlertFailChanges({ error });\n }\n}\n\nexport function* watchAssignSensor() {\n yield takeEvery(types.DRIVER_ASSIGN_SENSOR_STARTED, assignSensor);\n}\n\nexport function* watchUnassignSensor() {\n yield takeEvery(types.DRIVER_UNASSIGN_SENSOR_STARTED, unassignSensor);\n}\n\n/* -------------------------------------------------------------------------- */\n/* REMOVE */\n/* -------------------------------------------------------------------------- */\nfunction* removeDriver(action) {\n const { driverId } = action.payload;\n const person = action.person;\n const driver = yield select((state) => selectors.getDriver(state, driverId));\n deleteDriverService(\n { ...driver },\n {\n successAction: (response) => {\n store.dispatch(actions.completeRemovingDriver(driverId));\n },\n errorAction: (error) => {\n store.dispatch(actions.failRemovingDriver(driverId, error));\n }\n },\n person\n );\n}\n\nexport function* watchRemoveDriverStarted() {\n yield takeEvery(types.DRIVER_REMOVE_STARTED, removeDriver);\n}\n\n/* -------------------------------------------------------------------------- */\n/* IMPORT DATA */\n/* -------------------------------------------------------------------------- */\n\nfunction* importDriverAndUnitData(action: any) {\n const dataToImport: Array = action.payload;\n if (dataToImport?.length === 0) return;\n\n function* importDriverAndUnit({ driverId, driverPrivateCode, unitId, unitPrivateCode }) {\n const { driver, unit } = yield select((state) => ({\n driver: selectors.getDriverByIdOrPrivateCode(state, driverId, driverPrivateCode),\n unit: unitSelectors.getUnitByIdOrPrivateCode(state, unitId, unitPrivateCode)\n }));\n return { driver, unit };\n }\n const importedData =\n typeof dataToImport?.map === 'function' ? dataToImport?.map(importDriverAndUnit) : [];\n const newData: Array = [];\n for (let driverAndUnit of importedData) {\n try {\n newData.push(yield driverAndUnit);\n } catch (error) {\n console.warn(error);\n }\n }\n store.dispatch(actions.completeImportDriver(newData));\n}\n\nexport function* watchStartImportDriverAndUnit() {\n yield takeEvery(types.START_IMPORT_DRIVERS_UNITS_IMPORT, importDriverAndUnitData);\n}\n\n/* -------------------------------------------------------------------------- */\n/* MASSIVE ASSIGNMENT */\n/* -------------------------------------------------------------------------- */\nfunction* assignDriversToUnits(action: any) {\n const { driversAndUnitsIds, membership } = action.payload;\n // changed data [{driverId, unitId}, {driverId, unitId}] -> 'driverId~unitId^driverId~unitId'\n const data: string = driversAndUnitsIds\n ?.map((d: any) => [d?.driverId, d?.unitId].join('~'))\n .join('^');\n // Validate data is not empty\n if (data?.length < 1) return;\n\n assignDriversMassivelyService(\n { driversAndUnitsIds: data },\n {\n successAction: (response: any) => {\n const resultData =\n typeof response?.data?.map === 'function'\n ? response?.data?.map((result) => camelcaseKeys(result))\n : undefined;\n store.dispatch(actions.startFetchingDrivers(membership));\n store.dispatch(actions.completeMassiveDriversAssignment(response?.data));\n },\n errorAction: (response: any) => {\n store.dispatch(actions.errorMassiveDriversAssignment(response?.data));\n }\n }\n );\n}\n\nexport function* watchAssignDriversToUnits() {\n yield takeEvery(types.START_MASSIVE_DRIVERS_ASSIGNMENT, assignDriversToUnits);\n}\n","/* -------------------------------------------------------------------------- */\n/* Schema JobsBacklog */\n/* -------------------------------------------------------------------------- */\n\nimport { schema } from 'normalizr';\n\nexport const job = new schema.Entity('jobs', {}, { idAttribute: 'jobId' });\nexport const jobs = new schema.Array(job);\n","/* -------------------------------------------------------------------------- */\n/* Schema Imported Jobs */\n/* -------------------------------------------------------------------------- */\n\nimport { schema } from 'normalizr';\n\nexport const importedJob = new schema.Entity('importedJobs', {}, { idAttribute: 'id' });\nexport const importedJobs = new schema.Array(importedJob);\n","import camelcaseKeys from 'camelcase-keys';\nimport { normalize } from 'normalizr';\nimport { select, takeEvery } from 'redux-saga/effects';\nimport { store } from 'redux/storeConfig/store';\nimport * as entitySelectors from '../../../Entities/reducers';\nimport * as actions from '../../actions/backlog';\nimport * as selectors from '../../reducers/backlog';\nimport * as schemas from '../../schemas';\nimport * as schemasImportedJobs from '../../schemas/importJobs';\nimport {\n // deleteJobBacklogService,\n getJobsBacklogListService,\n saveJobBacklogService,\n deleteJobsBacklogService,\n changeJobsDueDateService,\n changeJobsMinMaxTimeService,\n changeJobsStartDateService,\n changeJobsStatusService,\n changeJobsPriorityService,\n assignJobsFilesService,\n assignJobsUsersService,\n assignJobsFormsService,\n rescheduleJobsService,\n importJobsService\n} from '../../services/jobs';\nimport * as types from '../../types/backlog';\n\n/* -------------------------------------------------------------------------- */\n/* FETCH LIST */\n/* -------------------------------------------------------------------------- */\nfunction* fetchJobsBacklogList(action) {\n getJobsBacklogListService(\n {},\n {\n successAction: (response) => {\n const resultData = response.data.map((result) => camelcaseKeys(result));\n const {\n entities: { jobs },\n result //order\n } = normalize(resultData, schemas.jobs); //normalize data to byId and order\n store.dispatch(actions.completeFetchingJobsBacklog(jobs, result));\n },\n errorAction: (error) => {\n store.dispatch(actions.failFetchingJobsBacklog(error));\n }\n }\n );\n}\n\nexport function* watchFetchJobsBacklogList() {\n yield takeEvery(types.JOBS_BACKLOG_FETCH_STARTED, fetchJobsBacklogList);\n}\n/* -------------------------------------------------------------------------- */\n/* PARTIAL FETSH LIST */\n/* -------------------------------------------------------------------------- */\nfunction* partialFetchJobsBacklogList(action) {\n const entityTypeId = action.payload;\n const date = yield select(entitySelectors.getUserUpdateByEntityDate, entityTypeId);\n getJobsBacklogListService(\n { userFetchDate: date },\n {\n successAction: (response) => {\n const resultData = response.data.map((result) => camelcaseKeys(result));\n const {\n entities: { jobs },\n result //order\n } = normalize(resultData, schemas.jobs); //normalize data to byId and order\n store.dispatch(actions.completePartialFetchingJobsBacklog(jobs, result));\n },\n errorAction: (error) => {\n store.dispatch(actions.failPartialFetchingJobsBacklog(error));\n }\n }\n );\n}\n\nexport function* watchPartialFetchJobsBacklogList() {\n yield takeEvery(types.JOBS_BACKLOG_PARTIAL_FETCH_STARTED, partialFetchJobsBacklogList);\n}\n\n/* -------------------------------------------------------------------------- */\n/* ADD */\n/* -------------------------------------------------------------------------- */\nfunction* addJobBacklog(action) {\n const jobBacklog = action.payload;\n saveJobBacklogService(\n { ...jobBacklog, jobId: null },\n {\n successAction: (response) => {\n const addedJobBacklog = camelcaseKeys(response.data);\n store.dispatch(actions.completeAddingJobBacklog(jobBacklog.jobId, addedJobBacklog));\n },\n errorAction: (error) => {\n store.dispatch(actions.failAddingJobBacklog(jobBacklog.jobId, error));\n }\n }\n );\n}\n\nexport function* watchAddJobsBacklogStarted() {\n yield takeEvery(types.JOB_BACKLOG_ADD_STARTED, addJobBacklog);\n}\n\n/* -------------------------------------------------------------------------- */\n/* EDIT */\n/* -------------------------------------------------------------------------- */\nfunction* editJobBacklog(action) {\n const jobBacklog = action.payload;\n const oldJobBacklog = yield select((state) => selectors.getJobBacklog(state, jobBacklog.jobId));\n saveJobBacklogService(\n { ...jobBacklog },\n {\n successAction: (response) => {\n const editedJobBacklog = camelcaseKeys(response.data);\n store.dispatch(actions.completeEditingJobBacklog(editedJobBacklog));\n },\n errorAction: (error) => {\n store.dispatch(actions.failEditingJobBacklog(oldJobBacklog, error));\n }\n }\n );\n}\n\nexport function* watchEditJobsBacklogStarted() {\n yield takeEvery(types.JOB_BACKLOG_EDIT_STARTED, editJobBacklog);\n}\n\n/* -------------------------------------------------------------------------- */\n/* REMOVE */\n/* -------------------------------------------------------------------------- */\nfunction* removeJobsBacklog(action) {\n const { jobs } = action.payload;\n // const jobBacklog = yield select((state) => selectors.getJobBacklog(state, jobId));\n deleteJobsBacklogService(\n { jobs },\n {\n successAction: (response) => {\n store.dispatch(actions.completeRemovingJobsBacklog(jobs));\n },\n errorAction: (error) => {\n store.dispatch(actions.failRemovingJobsBacklog(jobs, error));\n }\n }\n );\n}\n\nexport function* watchRemoveJobsBacklogStarted() {\n yield takeEvery(types.JOBS_BACKLOG_REMOVE_STARTED, removeJobsBacklog);\n}\n\n/* -------------------------------------------------------------------------- */\n/* CHANGE STATUS */\n/* -------------------------------------------------------------------------- */\nfunction* changeStatusJobsBacklog(action) {\n const { jobs, jobStatus, comment } = action.payload;\n changeJobsStatusService(\n { jobs, jobStatus, comment },\n {\n successAction: (response) => {\n store.dispatch(actions.completeChangeStatusJobs(jobs, jobStatus, comment));\n },\n errorAction: (error) => {\n store.dispatch(actions.failChangeStatusJobs(jobs, error));\n }\n }\n );\n}\n\nexport function* watchChangeStatusJobsBacklogStarted() {\n yield takeEvery(types.JOBS_BACKLOG_CHANGE_STATUS_STARTED, changeStatusJobsBacklog);\n}\n\n/* -------------------------------------------------------------------------- */\n/* RESCHEDULE JOBS */\n/* -------------------------------------------------------------------------- */\nfunction* rescheduleJobs(action) {\n const { jobs, startDate, dueDate, comment } = action.payload;\n rescheduleJobsService(\n { jobs, startDate, dueDate, comment },\n {\n successAction: (response) => {\n store.dispatch(actions.completeRescheduleJobs(jobs, startDate, dueDate, comment));\n },\n errorAction: (error) => {\n store.dispatch(actions.failRescheduleJobs(jobs, error));\n }\n }\n );\n}\n\nexport function* watchRescheduleJobsStarted() {\n yield takeEvery(types.JOBS_BACKLOG_RESCHEDULE_JOBS_STARTED, rescheduleJobs);\n}\n\n/* -------------------------------------------------------------------------- */\n/* CHANGE PRIORITY */\n/* -------------------------------------------------------------------------- */\nfunction* changePriorityJobsBacklog(action) {\n const { jobs, jobPriority } = action.payload;\n changeJobsPriorityService(\n { jobs, jobPriority },\n {\n successAction: (response) => {\n store.dispatch(actions.completeChangePriorityJobs(jobs, jobPriority));\n },\n errorAction: (error) => {\n store.dispatch(actions.failChangePriorityJobs(jobs, error));\n }\n }\n );\n}\n\nexport function* watchChangePriorityJobsBacklogStarted() {\n yield takeEvery(types.JOBS_BACKLOG_CHANGE_PRIORITY_STARTED, changePriorityJobsBacklog);\n}\n\n/* -------------------------------------------------------------------------- */\n/* CHANGE START DATE */\n/* -------------------------------------------------------------------------- */\nfunction* changeStartDateJobsBacklog(action) {\n const { jobs, startDate } = action.payload;\n changeJobsStartDateService(\n { jobs, startDate },\n {\n successAction: (response) => {\n store.dispatch(actions.completeChangeStartDateJobs(jobs, startDate));\n },\n errorAction: (error) => {\n store.dispatch(actions.failChangeStartDateJobs(jobs, error));\n }\n }\n );\n}\n\nexport function* watchChangeStartDateJobsBacklogStarted() {\n yield takeEvery(types.JOBS_BACKLOG_CHANGE_START_DATE_STARTED, changeStartDateJobsBacklog);\n}\n\n/* -------------------------------------------------------------------------- */\n/* CHANGE DUE DATE */\n/* -------------------------------------------------------------------------- */\nfunction* changeDueDateJobsBacklog(action) {\n const { jobs, dueDate } = action.payload;\n changeJobsDueDateService(\n { jobs, dueDate },\n {\n successAction: (response) => {\n store.dispatch(actions.completeChangeDueDateJobs(jobs, dueDate));\n },\n errorAction: (error) => {\n store.dispatch(actions.failChangeDueDateJobs(jobs, error));\n }\n }\n );\n}\n\nexport function* watchChangeDueDateJobsBacklogStarted() {\n yield takeEvery(types.JOBS_BACKLOG_CHANGE_DUE_DATE_STARTED, changeDueDateJobsBacklog);\n}\n\n/* -------------------------------------------------------------------------- */\n/* CHANGE MAX TIME */\n/* -------------------------------------------------------------------------- */\nfunction* changeMinMaxTimeJobsBacklog(action) {\n const { jobs, maxTime } = action.payload;\n changeJobsMinMaxTimeService(\n { jobs, maxTime },\n {\n successAction: (response) => {\n store.dispatch(actions.completeChangeMinMaxTimeJobs(jobs, maxTime));\n },\n errorAction: (error) => {\n store.dispatch(actions.failChangeMinMaxTimeJobs(jobs, error));\n }\n }\n );\n}\n\nexport function* watchChangeMinMaxTimeJobsBacklogStarted() {\n yield takeEvery(types.JOBS_BACKLOG_CHANGE_MIN_MAX_TIME_STARTED, changeMinMaxTimeJobsBacklog);\n}\n\n/* -------------------------------------------------------------------------- */\n/* ASSIGN USERS */\n/* -------------------------------------------------------------------------- */\nfunction* assignUsersJobsBacklog(action) {\n const { jobs, userNames, users } = action.payload;\n assignJobsUsersService(\n { jobs, userNames },\n {\n successAction: (response) => {\n store.dispatch(actions.completeAssignUsersJobs(jobs, userNames, users));\n },\n errorAction: (error) => {\n store.dispatch(actions.failAssignUsersJobs(jobs, error));\n }\n }\n );\n}\n\nexport function* watchAssignUsersJobsBacklogStarted() {\n yield takeEvery(types.JOBS_BACKLOG_ASSIGN_USERS_STARTED, assignUsersJobsBacklog);\n}\n\n/* -------------------------------------------------------------------------- */\n/* ASSIGN FORMS */\n/* -------------------------------------------------------------------------- */\nfunction* assignFormsJobsBacklog(action) {\n const { jobs, formIds, forms } = action.payload;\n assignJobsFormsService(\n { jobs, formIds },\n {\n successAction: (response) => {\n store.dispatch(actions.completeAssignFormsJobs(jobs, formIds, forms));\n },\n errorAction: (error) => {\n store.dispatch(actions.failAssignFormsJobs(jobs, error));\n }\n }\n );\n}\n\nexport function* watchAssignFormsJobsBacklogStarted() {\n yield takeEvery(types.JOBS_BACKLOG_ASSIGN_FORMS_STARTED, assignFormsJobsBacklog);\n}\n\n/* -------------------------------------------------------------------------- */\n/* ASSIGN FILES */\n/* -------------------------------------------------------------------------- */\nfunction* assignFilesJobsBacklog(action) {\n const { jobs, fileIds } = action.payload;\n assignJobsFilesService(\n { jobs, fileIds },\n {\n successAction: (response) => {\n const resultData = response.data.map((result) => camelcaseKeys(result));\n const {\n entities: { jobs: entities },\n result //order\n } = normalize(resultData, schemas.jobs); //normalize data to byId and order\n store.dispatch(\n actions.completeAssignFilesJobs(\n entities ??\n jobs.split(',').reduce((acc, curr) => ((acc[curr] = { files: '' }), acc), {}),\n result.length > 0 ? result : jobs.split(',')\n )\n );\n },\n errorAction: (error) => {\n store.dispatch(actions.failAssignFilesJobs(jobs, error));\n }\n }\n );\n}\n\nexport function* watchAssignFilesJobsBacklogStarted() {\n yield takeEvery(types.JOBS_BACKLOG_ASSIGN_FILES_STARTED, assignFilesJobsBacklog);\n}\n\n/* -------------------------------------------------------------------------- */\n/* IMPORT */\n/* -------------------------------------------------------------------------- */\nfunction* importJobs(action) {\n const jobs = action.payload;\n importJobsService(\n { ...jobs },\n {\n successAction: (response) => {\n const resultData = response.data.map((result) => camelcaseKeys(result));\n const {\n entities: { importedJobs },\n result //order\n } = normalize(resultData, schemasImportedJobs.importedJobs); //normalize data to byId and order\n store.dispatch(actions.completeImportingJobs(importedJobs, result));\n },\n errorAction: (error) => {\n store.dispatch(actions.failImportingJobs(error));\n }\n }\n );\n}\n\nexport function* watchImportJobsStarted() {\n yield takeEvery(types.JOBS_BACKLOG_IMPORT_STARTED, importJobs);\n}\n","import camelcaseKeys from 'camelcase-keys';\nimport { normalize } from 'normalizr';\nimport { select, takeEvery } from 'redux-saga/effects';\nimport { store } from 'redux/storeConfig/store';\nimport * as entitySelectors from '../../../Entities/reducers';\nimport * as actions from '../../actions/board';\nimport * as selectors from '../../reducers/board';\nimport * as schemas from '../../schemas';\nimport { getJobsBoardListService, changeJobsStatusBoardService } from '../../services/jobs';\nimport * as types from '../../types/board';\n\n/* -------------------------------------------------------------------------- */\n/* FETCH LIST */\n/* -------------------------------------------------------------------------- */\nfunction* fetchJobsBoardList(action) {\n const filters = action.payload;\n getJobsBoardListService(filters, {\n successAction: (response) => {\n const resultData = response.data.map((result) => camelcaseKeys(result));\n const {\n entities: { jobs },\n result //order\n } = normalize(resultData, schemas.jobs); //normalize data to byId and order\n store.dispatch(actions.completeFetchingJobsBoard(jobs, result));\n },\n errorAction: (error) => {\n store.dispatch(actions.failFetchingJobsBoard(error));\n }\n });\n}\n\nexport function* watchFetchJobsBoardList() {\n yield takeEvery(types.JOBS_BOARD_FETCH_STARTED, fetchJobsBoardList);\n}\n\n/* -------------------------------------------------------------------------- */\n/* CHANGE STATUS */\n/* -------------------------------------------------------------------------- */\nfunction* changeStatusJobsBoard(action) {\n const { jobs, jobStatus, comment } = action.payload;\n changeJobsStatusBoardService(\n { jobs, jobStatus, comment },\n {\n successAction: (response) => {\n store.dispatch(actions.completeChangeStatusJobsBoard(jobs, jobStatus, comment));\n },\n errorAction: (error) => {\n store.dispatch(actions.failChangeStatusJobsBoard(jobs, error));\n }\n }\n );\n}\n\nexport function* watchChangeStatusJobsBoardStarted() {\n yield takeEvery(types.JOBS_BOARD_CHANGE_STATUS_STARTED, changeStatusJobsBoard);\n}\n","/* -------------------------------------------------------------------------- */\n/* Schema JobsBacklog */\n/* -------------------------------------------------------------------------- */\n\nimport { schema } from 'normalizr';\n\nexport const user = new schema.Entity('users', {}, { idAttribute: 'userId' });\nexport const users = new schema.Array(user);\n","import camelcaseKeys from 'camelcase-keys';\nimport { normalize } from 'normalizr';\nimport { select, takeEvery } from 'redux-saga/effects';\nimport { store } from 'redux/storeConfig/store';\nimport * as entitySelectors from '../../../Entities/reducers';\nimport * as actions from '../../actions/report';\nimport * as selectors from '../../reducers/report';\nimport * as schemas from '../../schemas';\nimport * as schemasJobByUser from '../../schemas/jobsByUser';\nimport { getJobsReportListService } from '../../services/jobs';\nimport * as types from '../../types/report';\n\n/* -------------------------------------------------------------------------- */\n/* FETCH LIST */\n/* -------------------------------------------------------------------------- */\nfunction* fetchJobsReportList(action) {\n const filters = action.payload;\n getJobsReportListService(filters, {\n successAction: (response) => {\n const indicators = camelcaseKeys(response.data.indicators);\n const jobsList = response.data.jobsList.map((result) => camelcaseKeys(result));\n const {\n entities: { jobs },\n result: orderJobs //order\n } = normalize(jobsList, schemas.jobs); //normalize data to byId and order\n const jobsByUserList = response.data.jobsByUserList.map((result) => camelcaseKeys(result));\n const {\n entities: { users: jobsByUser },\n result: orderJobsByUser //order\n } = normalize(jobsByUserList, schemasJobByUser.users); //normalize data to byId and order\n store.dispatch(\n actions.completeFetchingJobsReport(indicators, jobs, orderJobs, jobsByUser, orderJobsByUser)\n );\n },\n errorAction: (error) => {\n store.dispatch(actions.failFetchingJobsReport(error));\n }\n });\n}\n\nexport function* watchFetchJobsReportList() {\n yield takeEvery(types.JOBS_REPORT_FETCH_STARTED, fetchJobsReportList);\n}\n","import camelcaseKeys from 'camelcase-keys';\nimport { select, takeEvery } from 'redux-saga/effects';\nimport { store } from 'redux/storeConfig/store';\nimport * as types from '../types';\nimport * as actions from '../actions';\nimport { getJobService } from '../services/jobs';\n\nexport * from './backlog';\nexport * from './board';\nexport * from './report';\n\n/* -------------------------------------------------------------------------- */\n/* FETCH JOB */\n/* -------------------------------------------------------------------------- */\nfunction* fetchJob(action) {\n const { jobId } = action.payload;\n getJobService(\n { jobId },\n {\n successAction: (response) => {\n const job = camelcaseKeys(response.data);\n store.dispatch(actions.completeFetchingJob(job));\n },\n errorAction: (error) => {\n store.dispatch(actions.failFetchingJob(error));\n }\n }\n );\n}\n\nexport function* watchFetchJob() {\n yield takeEvery(types.JOB_FETCH_STARTED, fetchJob);\n}\n","import camelcaseKeys from 'camelcase-keys';\nimport { normalize } from 'normalizr';\nimport { select, takeEvery, put, call } from 'redux-saga/effects';\nimport { store } from 'redux/storeConfig/store';\nimport * as entitySelectors from '../../Entities/reducers';\nimport * as actions from '../actions';\nimport * as selectors from '../reducers';\nimport * as schemas from '../schemas';\nimport * as authSelectors from '../../../../redux/reducers/auth';\nimport {\n getGroupsListService,\n getAllEntitiesInGroupService,\n saveGroupService,\n saveGroupWithEntitiesService,\n deleteGroupService,\n leaveGroupService\n} from '../services/groups';\nimport * as types from '../types';\nimport * as alerts from '../../../../redux/utils/alerts';\nimport { appIntl } from '../../../../utility/context/IntlGlobalProvider';\nimport API_BASE_URL from '../../../../redux/sagas/settings/apibaseurl';\n\n/* -------------------------------------------------------------------------- */\n/* FETCH LIST */\n/* -------------------------------------------------------------------------- */\nfunction* fetchGroupsList(action) {\n const { operatorId: filterOperatorId, organizationId: filterOrganizationId } = action.payload;\n const { operatorId, organizationId } = yield select(authSelectors.getAuthUserMembershipFilters, {\n filterOperatorId,\n filterOrganizationId\n });\n\n getGroupsListService(\n { operatorId, organizationId },\n {\n successAction: (response) => {\n const resultData = response.data.map((result) => camelcaseKeys(result));\n const {\n entities: { groups },\n result //order\n } = normalize(resultData, schemas.groups); //normalize data to byId and order\n store.dispatch(actions.completeFetchingGroups(groups, result, operatorId, organizationId));\n },\n errorAction: (error) => {\n store.dispatch(actions.failFetchingGroups(error));\n }\n }\n );\n}\n\nexport function* watchFetchGroupsList() {\n yield takeEvery(types.GROUPS_FETCH_STARTED, fetchGroupsList);\n}\n\n/* -------------------------------------------------------------------------- */\n/* PARTIAL FETCH LIST */\n/* -------------------------------------------------------------------------- */\nfunction* partialFetchGroupsList(action) {\n const {\n entityTypeId,\n operatorId: filterOperatorId,\n organizationId: filterOrganizationId\n } = action.payload;\n const date = yield select(entitySelectors.getUserUpdateByEntityDate, entityTypeId);\n const { operatorId, organizationId } = yield select(authSelectors.getAuthUserMembershipFilters, {\n filterOperatorId,\n filterOrganizationId\n });\n\n getGroupsListService(\n { userFetchDate: date, operatorId, organizationId },\n {\n successAction: (response) => {\n const resultData = response.data.map((result) => camelcaseKeys(result));\n const {\n entities: { groups },\n result //order\n } = normalize(resultData, schemas.groups); //normalize data to byId and order\n store.dispatch(\n actions.completePartialFetchingGroups(groups, result, operatorId, organizationId)\n );\n },\n errorAction: (error) => {\n store.dispatch(actions.failPartialFetchingGroups(error));\n }\n }\n );\n}\n\nexport function* watchPartialFetchGroupsList() {\n yield takeEvery(types.GROUPS_PARTIAL_FETCH_STARTED, partialFetchGroupsList);\n}\n\n/* -------------------------------------------------------------------------- */\n/* FETCH ALL ENTITIES */\n/* -------------------------------------------------------------------------- */\nfunction* fetchAllEntitiesInGroup(action) {\n const groupId = action.payload;\n getAllEntitiesInGroupService(\n { groupId },\n {\n successAction: (response) => {\n const resultData = response.data.map((result) => camelcaseKeys(result));\n const {\n entities: { users }\n } = normalize(resultData[0], schemas.users); //normalize data to byId for users\n const {\n entities: { locations }\n } = normalize(resultData[1], schemas.locations); //normalize data to byId for locations\n const {\n entities: { workplans }\n } = normalize(resultData[2], schemas.workplans); //normalize data to byId for workplans\n const {\n entities: { units }\n } = normalize(resultData[3], schemas.units); //normalize data to byId for units\n const {\n entities: { geofences }\n } = normalize(resultData[4], schemas.geofences); //normalize data to byId for geofences\n const {\n entities: { drivers }\n } = normalize(resultData[5], schemas.drivers); //normalize data to byId for drivers\n const entities = {\n users: users,\n locations: locations,\n workplans: workplans,\n units: units,\n geofences: geofences,\n drivers: drivers\n };\n store.dispatch(actions.completeFetchingAllEntitiesGroups(entities, groupId));\n },\n errorAction: (error) => {\n store.dispatch(actions.failFetchingAllEntitiesGroups(error));\n }\n }\n );\n}\n\nexport function* watchFetchAllEntitiesInGroup() {\n yield takeEvery(types.GROUPS_ALL_ENTITIES_FETCH_STARTED, fetchAllEntitiesInGroup);\n}\n\n/* -------------------------------------------------------------------------- */\n/* ADD */\n/* -------------------------------------------------------------------------- */\nfunction* addGroup(action) {\n const { group, users, userInSession, additionalOnSave } = action.payload;\n saveGroupService(\n { groupName: group.groupName, owners: users.map((user) => user.userId).toString() },\n {\n successAction: (response) => {\n const addedGroup = camelcaseKeys(response?.data);\n store.dispatch(actions.completeAddingGroup(group.groupId, addedGroup));\n alerts.showSuccessCreatedMessage({\n object: appIntl().formatMessage({\n id: 'groups.group'\n }),\n name: group.groupName\n });\n store.dispatch(actions.deselectAllGroups());\n store.dispatch(actions.selectGroup(addedGroup.groupId));\n if (typeof additionalOnSave === 'function') additionalOnSave();\n },\n errorAction: (error) => {\n store.dispatch(actions.failAddingGroup(group.groupId, error));\n }\n }\n );\n}\n\nexport function* watchAddGroupStarted() {\n yield takeEvery(types.GROUP_ADD_STARTED, addGroup);\n}\n\n/* -------------------------------------------------------------------------- */\n/* ADD WITH ENTITIES */\n/* -------------------------------------------------------------------------- */\nfunction* addGroupWithEntities(action) {\n const { group, userInSession, entityType, entities, params } = action.payload;\n\n saveGroupWithEntitiesService(\n {\n groupName: group.groupName,\n owners: [userInSession.userId].toString(),\n ...params,\n entities:\n entityType === 'users'\n ? entities.map((entity) => entity.userName).toString()\n : entityType === 'locations'\n ? entities.map((entity) => entity.locationId).toString()\n : entityType === 'workplans'\n ? entities.map((entity) => entity.workplanId).toString()\n : entityType === 'units'\n ? entities.map((entity) => entity.unitId).toString()\n : entityType === 'geofences'\n ? entities.map((entity) => entity.geofenceId).toString()\n : entityType === 'drivers'\n ? entities.map((entity) => entity.driverId).toString()\n : '',\n entityType\n },\n {\n successAction: (response) => {\n const addedGroup = camelcaseKeys(response?.data);\n store.dispatch(actions.completeAddingGroupWithEntities(group.groupId, addedGroup));\n alerts.showSuccessCreatedMessage({\n object: appIntl().formatMessage({\n id: 'groups.group'\n }),\n name: group.groupName\n });\n },\n errorAction: (error) => {\n store.dispatch(actions.failAddingGroupWithEntities(group.groupId, error));\n }\n }\n );\n}\n\nexport function* watchAddGroupWithEntitiesStarted() {\n yield takeEvery(types.GROUP_ADD_WITH_ENTITIES_STARTED, addGroupWithEntities);\n}\n\n/* -------------------------------------------------------------------------- */\n/* EDIT */\n/* -------------------------------------------------------------------------- */\nfunction* editGroup(action) {\n const group = action.payload;\n try {\n const isAuth = yield select(authSelectors.isAuthenticated);\n\n if (isAuth) {\n const token = yield select(authSelectors.getAuthToken);\n\n const response = yield call(fetch, `${API_BASE_URL}/group/edit`, {\n method: 'POST',\n body: JSON.stringify(group),\n headers: {\n 'Content-Type': 'application/json',\n Authorization: `Bearer ${token}`\n }\n });\n const jsonResult = yield response.json();\n if (response.status <= 300 && jsonResult.success) {\n const editedGroup = camelcaseKeys(jsonResult.data);\n yield put(actions.completeEditingGroup(editedGroup));\n alerts.showSuccessEditedMessage({\n object: appIntl().formatMessage({\n id: 'groups.group'\n }),\n name: group.groupName\n });\n } else {\n const error = {\n errorMessage: jsonResult.message,\n errorNumber: jsonResult.number\n };\n const { oldGroup } = yield select((state) =>\n selectors.getGroup(state.groups, group.groupId)\n );\n yield put(actions.failEditingGroup(oldGroup, error));\n // alerts.showErrorAlertFailChanges({ error });\n }\n }\n } catch (err) {\n const error = {\n errorMessage: err.toString(),\n errorNumber: -1\n };\n\n const { oldGroup } = yield select((state) => selectors.getGroup(state.groups, group.groupId));\n yield put(actions.failEditingGroup(oldGroup, error));\n // alerts.showErrorAlertFailChanges({ error });\n }\n}\n\nexport function* watchEditGroupsStarted() {\n yield takeEvery(types.GROUP_EDIT_STARTED, editGroup);\n}\n\n/* -------------------------------------------------------------------------- */\n/* REMOVE */\n/* -------------------------------------------------------------------------- */\nfunction* removeGroup(action) {\n const { groupId } = action.payload;\n const group = yield select((state) => selectors.getGroup(state, groupId));\n deleteGroupService(\n { ...group },\n {\n successAction: (response) => {\n store.dispatch(actions.completeRemovingGroup(group.groupId));\n },\n errorAction: (error) => {\n store.dispatch(actions.failRemovingGroup(group.groupId, error));\n }\n }\n );\n}\n\nexport function* watchRemoveGroupStarted() {\n yield takeEvery(types.GROUP_REMOVE_STARTED, removeGroup);\n}\n\n/* -------------------------------------------------------------------------- */\n/* LEAVE */\n/* -------------------------------------------------------------------------- */\nfunction* leaveGroup(action) {\n const { groupId, isAsesor, asesorUsername } = action.payload;\n const group = yield select((state) => selectors.getGroup(state, groupId));\n leaveGroupService(\n { ...group },\n {\n successAction: (response) => {\n store.dispatch(actions.completeLeavingGroup(group.groupId, isAsesor, asesorUsername));\n },\n errorAction: (error) => {\n store.dispatch(actions.failLeavingGroup(group.groupId, error));\n }\n }\n );\n}\n\nexport function* watchLeaveGroupStarted() {\n yield takeEvery(types.GROUP_LEAVE_STARTED, leaveGroup);\n}\n\n/* -------------------------------------------------------------------------- */\n/* EDIT NOTIFICATIONS CONFIGURATION */\n/* -------------------------------------------------------------------------- */\nfunction* editNotificationsConfiguration(action) {\n const group = action.payload;\n try {\n const isAuth = yield select(authSelectors.isAuthenticated);\n\n if (isAuth) {\n const token = yield select(authSelectors.getAuthToken);\n\n const response = yield call(fetch, `${API_BASE_URL}/group/editNotificationsConfiguration`, {\n method: 'POST',\n body: JSON.stringify(group),\n headers: {\n 'Content-Type': 'application/json',\n Authorization: `Bearer ${token}`\n }\n });\n const jsonResult = yield response.json();\n if (response.status <= 300 && jsonResult.success) {\n //const editedGroup = camelcaseKeys(jsonResult.data);\n yield put(actions.completeEditingNotificationsConfigurationGroup(group));\n alerts.showSuccessEditedMessage({\n object: appIntl().formatMessage({\n id: 'groups.group'\n }),\n name: group.groupName\n });\n } else {\n const error = {\n errorMessage: jsonResult.message,\n errorNumber: jsonResult.number\n };\n const { oldGroup } = yield select((state) =>\n selectors.getGroup(state.groups, group.groupId)\n );\n yield put(actions.failEditingNotificationsConfigurationGroup(oldGroup, error));\n // alerts.showErrorAlertFailChanges({ error });\n }\n }\n } catch (err) {\n const error = {\n errorMessage: err.toString(),\n errorNumber: -1\n };\n\n const { oldUnit } = yield select((state) => selectors.getGroup(state.groups, group.groupId));\n yield put(actions.failEditingNotificationsConfigurationGroup(oldUnit, error));\n // alerts.showErrorAlertFailChanges({ error });\n }\n}\n\nexport function* watchEditConfigurationNotificationsStarted() {\n yield takeEvery(\n types.GROUP_EDIT_NOTIFICATIONS_CONFIGURATION_STARTED,\n editNotificationsConfiguration\n );\n}\n\n/* -------------------------------------------------------------------------- */\n/* REMOVE ENTITIES FROM GROUP */\n/* -------------------------------------------------------------------------- */\nfunction* removeEntitiesFromGroup(action) {\n const group: any = action.payload.group;\n const entityType = action.payload.entityType;\n const entities = action.payload.entities;\n\n const partialEntityUrl =\n entityType === 'users'\n ? 'removeUsersFromGroup'\n : entityType === 'locations'\n ? 'removeLocationsFromGroup'\n : entityType === 'workplans'\n ? 'removeWorkPlansFromGroup'\n : entityType === 'units'\n ? 'removeUnitsFromGroup'\n : entityType === 'geofences'\n ? 'removeGeofencesFromGroup'\n : entityType === 'drivers'\n ? 'removeDriversFromGroup'\n : '';\n try {\n const isAuth = yield select(authSelectors.isAuthenticated);\n\n if (isAuth) {\n const token = yield select(authSelectors.getAuthToken);\n const response = yield call(fetch, `${API_BASE_URL}/group/${partialEntityUrl}`, {\n method: 'POST',\n body: JSON.stringify({ groupId: group.groupId, entities: entities }),\n headers: {\n 'Content-Type': 'application/json',\n Authorization: `Bearer ${token}`\n }\n });\n const jsonResult = yield response.json();\n if (response.status <= 300 && jsonResult.success) {\n yield put(actions.completeRemovingEntitiesFromGroup(group.groupId, entityType, entities));\n alerts.showSuccessRemovedFromGroupMessage({\n object: appIntl().formatMessage({\n id:\n entityType === 'users'\n ? entities.length > 1\n ? 'users.users'\n : 'users.user'\n : entityType === 'locations'\n ? entities.length > 1\n ? 'locations.locations'\n : 'locations.location'\n : entityType === 'workplans'\n ? entities.length > 1\n ? 'workplans.workplans'\n : 'workplans.workplan'\n : entityType === 'units'\n ? entities.length > 1\n ? 'units.units'\n : 'units.unit'\n : entityType === 'geofences'\n ? entities.length > 1\n ? 'geofences.geofences'\n : 'geofences.geofence'\n : entityType === 'drivers'\n ? entities.length > 1\n ? 'drivers.drivers'\n : 'drivers.driver'\n : 'groups.entities'\n }),\n name: group.groupName,\n multiple: entities.length > 1,\n altText:\n entityType === 'locations' || entityType === 'units' || entityType === 'geofences'\n });\n } else {\n const error = {\n errorMessage: jsonResult.message,\n errorNumber: jsonResult.number\n };\n // alerts.showErrorAlertFailChanges({ error });\n }\n }\n } catch (err) {\n const error = {\n errorMessage: err.toString(),\n errorNumber: -1\n };\n\n // alerts.showErrorAlertFailChanges({ error });\n }\n}\n\nexport function* watchRemoveEntitiesFromGroup() {\n yield takeEvery(types.GROUP_REMOVE_ENTITIES_STARTED, removeEntitiesFromGroup);\n}\n\n/* -------------------------------------------------------------------------- */\n/* ADD ENTITIES TO GROUP */\n/* -------------------------------------------------------------------------- */\nfunction* addEntitiesToGroup(action) {\n const group: any = action.payload.group;\n const entityType = action.payload.entityType;\n const entities = action.payload.entities;\n const params = action.payload.params;\n\n const partialEntityUrl =\n entityType === 'users'\n ? 'addUsersToGroup'\n : entityType === 'locations'\n ? 'addLocationsToGroup'\n : entityType === 'workplans'\n ? 'addWorkPlansToGroup'\n : entityType === 'units'\n ? 'addUnitsToGroup'\n : entityType === 'geofences'\n ? 'addGeofencesToGroup'\n : entityType === 'drivers'\n ? 'addDriversToGroup'\n : '';\n try {\n const isAuth = yield select(authSelectors.isAuthenticated);\n\n if (isAuth) {\n const token = yield select(authSelectors.getAuthToken);\n const response = yield call(fetch, `${API_BASE_URL}/group/${partialEntityUrl}`, {\n method: 'POST',\n body: JSON.stringify({\n groupId: group.groupId,\n entities:\n entityType === 'users'\n ? entities.map((entity) => entity.userName)\n : entityType === 'locations'\n ? entities.map((entity) => entity.locationId)\n : entityType === 'workplans'\n ? entities.map((entity) => entity.workPlanId)\n : entityType === 'units'\n ? entities.map((entity) => entity.unitId)\n : entityType === 'geofences'\n ? entities.map((entity) => entity.geofenceId)\n : entityType === 'drivers'\n ? entities.map((entity) => entity.driverId)\n : [],\n ...params\n }),\n headers: {\n 'Content-Type': 'application/json',\n Authorization: `Bearer ${token}`\n }\n });\n const jsonResult = yield response.json();\n if (response.status <= 300 && jsonResult.success) {\n yield put(actions.completeAddingEntitiesToGroup(group, entityType, entities, params));\n alerts.showSuccessAddedToGroupMessage({\n object: appIntl().formatMessage({\n id:\n entityType === 'users'\n ? entities.length > 1\n ? 'users.users'\n : 'users.user'\n : entityType === 'locations'\n ? entities.length > 1\n ? 'locations.locations'\n : 'locations.location'\n : entityType === 'workplans'\n ? entities.length > 1\n ? 'workplans.workplans'\n : 'workplans.workplan'\n : entityType === 'units'\n ? entities.length > 1\n ? 'units.units'\n : 'units.unit'\n : entityType === 'geofences'\n ? entities.length > 1\n ? 'geofences.geofences'\n : 'geofences.geofence'\n : entityType === 'drivers'\n ? entities.length > 1\n ? 'drivers.drivers'\n : 'drivers.driver'\n : 'groups.entities'\n }),\n name: group.groupName,\n multiple: entities.length > 1,\n altText:\n entityType === 'locations' || entityType === 'units' || entityType === 'geofences'\n });\n } else {\n const error = {\n errorMessage: jsonResult.message,\n errorNumber: jsonResult.number\n };\n // alerts.showErrorAlertFailChanges({ error });\n }\n }\n } catch (err) {\n const error = {\n errorMessage: err.toString(),\n errorNumber: -1\n };\n\n // alerts.showErrorAlertFailChanges({ error });\n }\n}\n\nexport function* watchAddEntitiesToGroup() {\n yield takeEvery(types.GROUP_ADD_ENTITIES_STARTED, addEntitiesToGroup);\n}\n\n/* -------------------------------------------------------------------------- */\n/* EDIT USER PROFILE IN GROUP */\n/* -------------------------------------------------------------------------- */\nfunction* editUserPorfileInGroup(action) {\n const { groupId, userName, userNameInSession, profileId } = action.payload;\n\n try {\n const isAuth = yield select(authSelectors.isAuthenticated);\n\n if (isAuth) {\n const token = yield select(authSelectors.getAuthToken);\n const response = yield call(fetch, `${API_BASE_URL}/group/editUsersProfileInGroup`, {\n method: 'POST',\n body: JSON.stringify({ groupId, profileId, users: [userName] }),\n headers: {\n 'Content-Type': 'application/json',\n Authorization: `Bearer ${token}`\n }\n });\n const jsonResult = yield response.json();\n if (response.status <= 300 && jsonResult.success) {\n yield put(\n actions.completeEditingUserProfileInGroup(groupId, userName, userNameInSession, profileId)\n );\n alerts.showSuccessEditedMessage({\n object: appIntl().formatMessage({\n id: 'users.user'\n }),\n name: userName\n });\n } else {\n const error = {\n errorMessage: jsonResult.message,\n errorNumber: jsonResult.number\n };\n // alerts.showErrorAlertFailChanges({ error });\n }\n }\n } catch (err) {\n const error = {\n errorMessage: err.toString(),\n errorNumber: -1\n };\n\n // alerts.showErrorAlertFailChanges({ error });\n }\n}\n\nexport function* watchEditUserProfileInGroup() {\n yield takeEvery(types.GROUP_USER_PROFILE_EDIT_STARTED, editUserPorfileInGroup);\n}\n","/* -------------------------------------------------------------------------- */\n/* Schema Quotations */\n/* -------------------------------------------------------------------------- */\n\nimport { schema } from 'normalizr';\n\nexport const quotation = new schema.Entity('quotations', {}, { idAttribute: 'quotationId' });\nexport const quotations = new schema.Array(quotation);\n","import { call, takeEvery, put, select } from 'redux-saga/effects';\n\nimport { normalize } from 'normalizr';\nimport API_BASE_URL from '../../../../redux/sagas/settings/apibaseurl';\nimport * as actions from '../actions';\nimport * as types from '../types';\nimport * as selectors from '../reducers';\nimport * as schemas from '../schemas';\nimport * as entitySelectors from '../../Entities/reducers';\nimport * as authSelectors from '../../../../redux/reducers/auth';\nimport camelcaseKeys from 'camelcase-keys';\nimport * as alerts from '../../../../redux/utils/alerts';\nimport { appIntl } from '../../../../utility/context/IntlGlobalProvider';\n\n/* -------------------------------------------------------------------------- */\n/* FETCH LIST */\n/* -------------------------------------------------------------------------- */\nfunction* fetchQuotationsList(action) {\n const { operatorId: filterOperatorId, organizationId: filterOrganizationId } = action.payload;\n const { operatorId, organizationId } = yield select(authSelectors.getAuthUserMembershipFilters, {\n filterOperatorId,\n filterOrganizationId\n });\n\n try {\n const isAuth = yield select(authSelectors.isAuthenticated);\n if (isAuth) {\n const token = yield select(authSelectors.getAuthToken);\n const response = yield call(fetch, `${API_BASE_URL}/quotation/get`, {\n method: 'POST',\n body: JSON.stringify({\n operatorId,\n organizationId:\n filterOrganizationId === null || filterOrganizationId === undefined\n ? filterOrganizationId\n : organizationId\n }),\n headers: {\n 'Content-Type': 'application/json',\n Authorization: `Bearer ${token}`\n }\n });\n const jsonResult = yield response.json();\n if (response.status <= 300 && jsonResult.success) {\n const resultData = jsonResult.data.map((result) => camelcaseKeys(result));\n const {\n entities: { quotations },\n result //order\n } = normalize(resultData, schemas.quotations); //normalize data to byId and order\n yield put(\n actions.completeFetchingQuotations(quotations ?? [], result, operatorId, organizationId)\n );\n } else {\n const error = {\n errorMessage: jsonResult.message,\n errorNumber: jsonResult.number\n };\n // alerts.showErrorAlertFailChanges({ error });\n yield put(actions.failFetchingQuotations(error));\n }\n }\n } catch (err) {\n const error = {\n errorMessage: err.toString(),\n errorNumber: -1\n };\n // alerts.showErrorAlertFailChanges({ error });\n yield put(actions.failFetchingQuotations(error));\n }\n}\n\nexport function* watchFetchQuotationsList() {\n yield takeEvery(types.QUOTATIONS_FETCH_STARTED, fetchQuotationsList);\n}\n\n/* -------------------------------------------------------------------------- */\n/* PARTIAL FETCH LIST */\n/* -------------------------------------------------------------------------- */\nfunction* partialFetchQuotationsList(action) {\n try {\n const {\n entityTypeId,\n operatorId: filterOperatorId,\n organizationId: filterOrganizationId\n } = action.payload;\n const date = yield select(entitySelectors.getUserUpdateByEntityDate, entityTypeId);\n const { operatorId, organizationId } = yield select(\n authSelectors.getAuthUserMembershipFilters,\n {\n filterOperatorId,\n filterOrganizationId\n }\n );\n\n const isAuth = yield select(authSelectors.isAuthenticated);\n if (isAuth) {\n const token = yield select(authSelectors.getAuthToken);\n const response = yield call(fetch, `${API_BASE_URL}/quotation/get`, {\n method: 'POST',\n body: JSON.stringify({ userFetchDate: date, operatorId, organizationId }),\n headers: {\n 'Content-Type': 'application/json',\n Authorization: `Bearer ${token}`\n }\n });\n const jsonResult = yield response.json();\n if (response.status <= 300 && jsonResult.success) {\n const resultData = jsonResult.data.map((result) => camelcaseKeys(result));\n const {\n entities: { quotations },\n result //order\n } = normalize(resultData, schemas.quotations); //normalize data to byId and order\n yield put(\n actions.completePartialFetchingQuotations(quotations, result, operatorId, organizationId)\n );\n } else {\n const error = {\n errorMessage: jsonResult.message,\n errorNumber: jsonResult.number\n };\n // alerts.showErrorAlertFailChanges({ error });\n yield put(actions.failPartialFetchingQuotations(error));\n }\n }\n } catch (err) {\n const error = {\n errorMessage: err.toString(),\n errorNumber: -1\n };\n // alerts.showErrorAlertFailChanges({ error });\n yield put(actions.failPartialFetchingQuotations(error));\n }\n}\n\nexport function* watchPartialFetchQuotationsList() {\n yield takeEvery(types.QUOTATIONS_PARTIAL_FETCH_STARTED, partialFetchQuotationsList);\n}\n\n/* -------------------------------------------------------------------------- */\n/* ADD */\n/* -------------------------------------------------------------------------- */\nfunction* addQuotation(action) {\n const { quotation } = action.payload;\n try {\n const isAuth = yield select(authSelectors.isAuthenticated);\n\n if (isAuth) {\n const token = yield select(authSelectors.getAuthToken);\n const response = yield call(fetch, `${API_BASE_URL}/quotation/save`, {\n method: 'POST',\n body: JSON.stringify({ ...quotation, quotationId: null }),\n headers: {\n 'Content-Type': 'application/json',\n Authorization: `Bearer ${token}`\n }\n });\n const jsonResult = yield response.json();\n if (response.status <= 300 && jsonResult.success) {\n const addedQuotation = camelcaseKeys(jsonResult.data);\n yield put(actions.completeAddingQuotation(quotation.quotationId, addedQuotation));\n\n alerts.showSuccessCreatedMessage({\n object: appIntl().formatMessage({\n id: 'quotations.quotation'\n }),\n name: quotation.quotationNumber,\n altText: true\n });\n } else {\n const error = {\n errorMessage: jsonResult.message,\n errorNumber: jsonResult.number\n };\n // alerts.showErrorAlertFailChanges({ error });\n yield put(actions.failAddingQuotation(quotation.quotationId, error));\n }\n }\n } catch (err) {\n const error = {\n errorMessage: err.toString(),\n errorNumber: -1\n };\n // alerts.showErrorAlertFailChanges({ error });\n yield put(actions.failAddingQuotation(quotation.quotationId, error));\n }\n}\n\nexport function* watchAddQuotationsStarted() {\n yield takeEvery(types.QUOTATIONS_ADD_STARTED, addQuotation);\n}\n\n/* -------------------------------------------------------------------------- */\n/* COPY */\n/* -------------------------------------------------------------------------- */\nfunction* copyQuotation(action) {\n const { quotation } = action.payload;\n try {\n const isAuth = yield select(authSelectors.isAuthenticated);\n\n if (isAuth) {\n const token = yield select(authSelectors.getAuthToken);\n const response = yield call(fetch, `${API_BASE_URL}/quotation/copy`, {\n method: 'POST',\n body: JSON.stringify({ ...quotation, fromQuotationId: quotation.quotationId }),\n headers: {\n 'Content-Type': 'application/json',\n Authorization: `Bearer ${token}`\n }\n });\n const jsonResult = yield response.json();\n if (response.status <= 300 && jsonResult.success) {\n const copiedQuotation = camelcaseKeys(jsonResult.data);\n yield put(actions.completeCopyingQuotation(copiedQuotation));\n\n alerts.showSuccessMessage({\n success: appIntl().formatMessage({ id: 'quotations.copyingQuotationSuccess' })\n });\n } else {\n const error = {\n errorMessage: appIntl().formatMessage({ id: 'quotations.copyingQuotationFailure' }),\n errorNumber: jsonResult.number\n };\n alerts.showErrorAlertFailChanges({ error });\n yield put(actions.failCopyingQuotation(quotation.quotationId, error));\n }\n }\n } catch (err) {\n const error = {\n errorMessage: appIntl().formatMessage({ id: 'quotations.copyingQuotationFailure' }),\n errorNumber: -1\n };\n alerts.showErrorAlertFailChanges({ error });\n yield put(actions.failCopyingQuotation(quotation.quotationId, error));\n }\n}\n\nexport function* watchCopyQuotationsStarted() {\n yield takeEvery(types.QUOTATION_COPY_STARTED, copyQuotation);\n}\n\n/* -------------------------------------------------------------------------- */\n/* EDIT */\n/* -------------------------------------------------------------------------- */\nfunction* editQuotation(action) {\n const quotation = action.payload;\n // console.log('payload edit', action.payload);\n try {\n const isAuth = yield select(authSelectors.isAuthenticated);\n\n if (isAuth) {\n const token = yield select(authSelectors.getAuthToken);\n\n const response = yield call(fetch, `${API_BASE_URL}/quotation/save`, {\n method: 'POST',\n body: JSON.stringify(quotation),\n headers: {\n 'Content-Type': 'application/json',\n Authorization: `Bearer ${token}`\n }\n });\n const jsonResult = yield response.json();\n if (response.status <= 300 && jsonResult.success) {\n const editedQuotation = camelcaseKeys(jsonResult.data);\n yield put(actions.completeEditingQuotation(editedQuotation));\n alerts.showSuccessEditedMessage({\n object: appIntl().formatMessage({\n id: 'quotations.quotation'\n }),\n name: editedQuotation.quotationNumber,\n altText: true\n });\n } else {\n const error = {\n errorMessage: jsonResult.message,\n errorNumber: jsonResult.number\n };\n const { oldQuotation } = yield select((state) =>\n selectors.getQuotation(state.quotations, quotation.quotationId)\n );\n yield put(actions.failEditingQuotation(oldQuotation, error));\n // alerts.showErrorAlertFailChanges({ error });\n }\n }\n } catch (err) {\n const error = {\n errorMessage: err.toString(),\n errorNumber: -1\n };\n\n const oldQuotation = yield select((state) =>\n selectors.getQuotation(state, quotation.quotationId)\n );\n // console.log('old', yield select((state) => selectors.getDivision(state, division.divisionId)));\n yield put(actions.failEditingQuotation(oldQuotation, error));\n // alerts.showErrorAlertFailChanges({ error });\n }\n}\n\nexport function* watchEditQuotationsStarted() {\n yield takeEvery(types.QUOTATIONS_EDIT_STARTED, editQuotation);\n}\n\n/* -------------------------------------------------------------------------- */\n/* APPROVE DENY MANAGEMENT */\n/* -------------------------------------------------------------------------- */\nfunction* approveDenyQuotationManagement(action) {\n const quotation = action.payload;\n // console.log('payload edit', action.payload);\n try {\n const isAuth = yield select(authSelectors.isAuthenticated);\n\n if (isAuth) {\n const token = yield select(authSelectors.getAuthToken);\n\n const response = yield call(fetch, `${API_BASE_URL}/quotation/approveManagement`, {\n method: 'POST',\n body: JSON.stringify(quotation),\n headers: {\n 'Content-Type': 'application/json',\n Authorization: `Bearer ${token}`\n }\n });\n const jsonResult = yield response.json();\n if (response.status <= 300 && jsonResult.success) {\n yield put(actions.completeApprovingDenyingQuotationManagement(quotation));\n alerts.showSuccessApprovedDeniedMessage({\n object: appIntl().formatMessage({\n id: 'quotations.quotation'\n }),\n name: quotation.quotationNumber,\n altText: true,\n approve: quotation.approve\n });\n } else {\n const error = {\n errorMessage: appIntl().formatMessage({\n id:\n quotation.approve === 1\n ? 'quotations.approvingQuotationManagementFailure'\n : 'quotations.denyingQuotationManagementFailure'\n }),\n errorNumber: jsonResult.number\n };\n yield put(actions.failApprovingDenyingQuotationManagement(error));\n alerts.showErrorAlertFailChanges({ error });\n }\n }\n } catch (err) {\n const error = {\n errorMessage: appIntl().formatMessage({\n id:\n quotation.approve === 1\n ? 'quotations.approvingQuotationManagementFailure'\n : 'quotations.denyingQuotationManagementFailure'\n }),\n errorNumber: -1\n };\n\n yield put(actions.failApprovingDenyingQuotationManagement(error));\n alerts.showErrorAlertFailChanges({ error });\n }\n}\n\nexport function* watchApproveDenyQuotationManagementStarted() {\n yield takeEvery(types.QUOTATION_APPROVE_DENY_MANAGEMENT_STARTED, approveDenyQuotationManagement);\n}\n\n/* -------------------------------------------------------------------------- */\n/* ACCEPT DENY CUSTOMER */\n/* -------------------------------------------------------------------------- */\nfunction* acceptDenyQuotationCustomer(action) {\n const quotation = action.payload;\n // console.log('payload edit', action.payload);\n try {\n const isAuth = yield select(authSelectors.isAuthenticated);\n\n if (isAuth) {\n const token = yield select(authSelectors.getAuthToken);\n\n const response = yield call(fetch, `${API_BASE_URL}/quotation/acceptCustomer`, {\n method: 'POST',\n body: JSON.stringify(quotation),\n headers: {\n 'Content-Type': 'application/json',\n Authorization: `Bearer ${token}`\n }\n });\n const jsonResult = yield response.json();\n if (response.status <= 300 && jsonResult.success) {\n yield put(actions.completeAcceptingDenyingQuotationCustomer(quotation));\n alerts.showSuccessAcceptedDeniedMessage({\n object: appIntl().formatMessage({\n id: 'quotations.quotation'\n }),\n name: quotation.quotationNumber,\n altText: true,\n accept: quotation.accept\n });\n } else {\n const error = {\n errorMessage: appIntl().formatMessage({\n id:\n quotation.accept === 1\n ? 'quotations.acceptingQuotationCustomerFailure'\n : 'quotations.denyingQuotationCustomerFailure'\n }),\n errorNumber: jsonResult.number\n };\n yield put(actions.failAcceptingDenyingQuotationCustomer(error));\n alerts.showErrorAlertFailChanges({ error });\n }\n }\n } catch (err) {\n const error = {\n errorMessage: appIntl().formatMessage({\n id:\n quotation.accept === 1\n ? 'quotations.acceptingQuotationCustomerFailure'\n : 'quotations.denyingQuotationCustomerFailure'\n }),\n errorNumber: -1\n };\n\n yield put(actions.failAcceptingDenyingQuotationCustomer(error));\n alerts.showErrorAlertFailChanges({ error });\n }\n}\n\nexport function* watchAcceptDenyQuotationCustomerStarted() {\n yield takeEvery(types.QUOTATION_ACCEPT_DENY_CUSTOMER_STARTED, acceptDenyQuotationCustomer);\n}\n\n/* -------------------------------------------------------------------------- */\n/* SCHEDULE */\n/* -------------------------------------------------------------------------- */\nfunction* scheduleQuotation(action) {\n const quotation = action.payload;\n // console.log('payload edit', action.payload);\n try {\n const isAuth = yield select(authSelectors.isAuthenticated);\n\n if (isAuth) {\n const token = yield select(authSelectors.getAuthToken);\n\n const response = yield call(fetch, `${API_BASE_URL}/quotation/scheduleQuotation`, {\n method: 'POST',\n body: JSON.stringify(quotation),\n headers: {\n 'Content-Type': 'application/json',\n Authorization: `Bearer ${token}`\n }\n });\n const jsonResult = yield response.json();\n if (response.status <= 300 && jsonResult.success) {\n yield put(actions.completeSchedulingQuotation(quotation));\n alerts.showSuccessScheduledMessage({\n object: appIntl().formatMessage({\n id: 'quotations.quotation'\n }),\n name: quotation.quotationName,\n altText: true\n });\n } else {\n const error = {\n errorMessage: appIntl().formatMessage({ id: 'quotations.schedulingQuotationFailure' }),\n errorNumber: jsonResult.number\n };\n yield put(actions.failSchedulingQuotation(error));\n alerts.showErrorAlertFailChanges({ error });\n }\n }\n } catch (err) {\n const error = {\n errorMessage: appIntl().formatMessage({ id: 'quotations.schedulingQuotationFailure' }),\n errorNumber: -1\n };\n\n yield put(actions.failSchedulingQuotation(error));\n alerts.showErrorAlertFailChanges({ error });\n }\n}\n\nexport function* watchScheduleQuotationsStarted() {\n yield takeEvery(types.QUOTATIONS_SCHEDULE_STARTED, scheduleQuotation);\n}\n\n/* -------------------------------------------------------------------------- */\n/* CHECK SCHEDULE */\n/* -------------------------------------------------------------------------- */\nfunction* checkQuotationScheduling(action) {\n const { quotationId, quotationLink } = action.payload;\n // console.log('payload edit', action.payload);\n try {\n const isAuth = yield select(authSelectors.isAuthenticated);\n\n if (isAuth) {\n const token = yield select(authSelectors.getAuthToken);\n\n const response = yield call(fetch, `${API_BASE_URL}/quotation/checkScheduling`, {\n method: 'POST',\n body: JSON.stringify({ quotationId, quotationLink }),\n headers: {\n 'Content-Type': 'application/json',\n Authorization: `Bearer ${token}`\n }\n });\n const jsonResult = yield response.json();\n if (response.status <= 300 && jsonResult.success) {\n const quotationScheduled = camelcaseKeys(jsonResult.data);\n yield put(\n actions.completeCheckingQuotationScheduling({\n quotationId,\n quotationIdDB: quotationScheduled?.quotationId,\n isScheduled: quotationScheduled?.isScheduled,\n quotationStatus: quotationScheduled?.quotationStatus,\n isTimesup: quotationScheduled?.isTimesup\n })\n );\n } else {\n const error = {\n errorMessage: appIntl().formatMessage({\n id: 'quotations.checkingQuotationSchedulingFailure'\n }),\n errorNumber: jsonResult.number\n };\n yield put(actions.failCheckingQuotationScheduling(error));\n alerts.showErrorAlertFailChanges({ error });\n }\n }\n } catch (err) {\n const error = {\n errorMessage: appIntl().formatMessage({\n id: 'quotations.checkingQuotationSchedulingFailure'\n }),\n errorNumber: -1\n };\n\n yield put(actions.failCheckingQuotationScheduling(error));\n alerts.showErrorAlertFailChanges({ error });\n }\n}\n\nexport function* watchCheckQuotationSchedulingStarted() {\n yield takeEvery(types.QUOTATIONS_CHECK_SCHEDULING_STARTED, checkQuotationScheduling);\n}\n\n/* -------------------------------------------------------------------------- */\n/* SET TIMESUP */\n/* -------------------------------------------------------------------------- */\nfunction* setTimesupQuotation(action) {\n const { quotation, showAlerts } = action.payload;\n // console.log('payload edit', action.payload);\n try {\n const isAuth = yield select(authSelectors.isAuthenticated);\n\n if (isAuth) {\n const token = yield select(authSelectors.getAuthToken);\n\n const response = yield call(fetch, `${API_BASE_URL}/quotation/setTimesup`, {\n method: 'POST',\n body: JSON.stringify(quotation),\n headers: {\n 'Content-Type': 'application/json',\n Authorization: `Bearer ${token}`\n }\n });\n const jsonResult = yield response.json();\n if (response.status <= 300 && jsonResult.success) {\n yield put(actions.completeSettingTimesupQuotation(quotation));\n if (showAlerts)\n alerts.showSuccessMessage({\n success: appIntl().formatMessage({ id: 'common.changesSuccess' })\n });\n } else {\n const error = {\n errorMessage: appIntl().formatMessage({ id: 'common.changesFailure' }),\n errorNumber: jsonResult.number\n };\n yield put(actions.failSettingTimesupQuotation(error));\n if (showAlerts) alerts.showErrorAlertFailChanges({ error });\n }\n }\n } catch (err) {\n const error = {\n errorMessage: appIntl().formatMessage({ id: 'common.changesFailure' }),\n errorNumber: -1\n };\n\n yield put(actions.failSettingTimesupQuotation(error));\n if (showAlerts) alerts.showErrorAlertFailChanges({ error });\n }\n}\n\nexport function* watchSetTimesupQuotationStarted() {\n yield takeEvery(types.QUOTATIONS_SET_TIMESUP_STARTED, setTimesupQuotation);\n}\n\n/* -------------------------------------------------------------------------- */\n/* REMOVE */\n/* -------------------------------------------------------------------------- */\nfunction* removeQuotation(action) {\n const { quotationId } = action.payload;\n try {\n const isAuth = yield select(authSelectors.isAuthenticated);\n if (isAuth) {\n const token = yield select(authSelectors.getAuthToken);\n const deletedQuotation = yield select((state) => selectors.getQuotation(state, quotationId));\n const response = yield call(fetch, `${API_BASE_URL}/quotation/delete`, {\n method: 'POST',\n body: JSON.stringify({ quotationId }),\n headers: {\n 'Content-Type': 'application/json',\n Authorization: `Bearer ${token}`\n }\n });\n const jsonResult = yield response.json();\n if (response.status <= 300 && jsonResult.success) {\n yield put(actions.completeRemovingQuotation(quotationId));\n alerts.showSuccessDeletedMessage({\n object: appIntl().formatMessage({\n id: 'quotations.quotation'\n }),\n name: deletedQuotation.quotationNumber,\n altText: true\n });\n } else {\n const error = {\n errorMessage: jsonResult.message,\n errorNumber: jsonResult.number\n };\n // alerts.showErrorAlertFailChanges({ error });\n yield put(actions.failRemovingQuotation(quotationId, error));\n }\n }\n } catch (err) {\n // console.log('err', err);\n const error = {\n errorMessage: err.toString(),\n errorNumber: -1\n };\n // alerts.showErrorAlertFailChanges({ error });\n yield put(actions.failRemovingQuotation(quotationId, error));\n }\n}\n\nexport function* watchRemoveQuotationStarted() {\n yield takeEvery(types.QUOTATIONS_REMOVE_STARTED, removeQuotation);\n}\n","/* -------------------------------------------------------------------------- */\n/* Schema Organization Contracts */\n/* -------------------------------------------------------------------------- */\n\nimport { schema } from 'normalizr';\n\nexport const organizationContract = new schema.Entity(\n 'organizationContracts',\n {},\n { idAttribute: 'contractId' }\n);\nexport const organizationContracts = new schema.Array(organizationContract);\n","import { call, takeEvery, put, select } from 'redux-saga/effects';\n\nimport { normalize } from 'normalizr';\nimport API_BASE_URL from '../../../../redux/sagas/settings/apibaseurl';\nimport * as actions from '../actions';\nimport * as types from '../types';\nimport * as selectors from '../reducers';\nimport * as schemas from '../schemas';\nimport * as entitySelectors from '../../Entities/reducers';\nimport * as authSelectors from '../../../../redux/reducers/auth';\nimport camelcaseKeys from 'camelcase-keys';\nimport * as alerts from '../../../../redux/utils/alerts';\nimport { appIntl } from '../../../../utility/context/IntlGlobalProvider';\n\n/* -------------------------------------------------------------------------- */\n/* FETCH LIST */\n/* -------------------------------------------------------------------------- */\nfunction* fetchOrganizationContractsList(action) {\n const { operatorId, organizationId } = action.payload;\n\n try {\n const isAuth = yield select(authSelectors.isAuthenticated);\n if (isAuth) {\n const token = yield select(authSelectors.getAuthToken);\n const response = yield call(fetch, `${API_BASE_URL}/organizationContract/get`, {\n method: 'POST',\n body: JSON.stringify({\n operatorId,\n organizationId\n }),\n headers: {\n 'Content-Type': 'application/json',\n Authorization: `Bearer ${token}`\n }\n });\n const jsonResult = yield response.json();\n if (response.status <= 300 && jsonResult.success) {\n const resultData = jsonResult.data.map((result) => camelcaseKeys(result));\n const {\n entities: { organizationContracts },\n result //order\n } = normalize(resultData, schemas.organizationContracts); //normalize data to byId and order\n yield put(\n actions.completeFetchingOrganizationContracts(\n organizationContracts ?? [],\n result,\n operatorId,\n organizationId\n )\n );\n } else {\n const error = {\n errorMessage: jsonResult.message,\n errorNumber: jsonResult.number\n };\n // alerts.showErrorAlertFailChanges({ error });\n yield put(actions.failFetchingOrganizationContracts(error));\n }\n }\n } catch (err) {\n const error = {\n errorMessage: err?.toString() ?? '',\n errorNumber: -1\n };\n // alerts.showErrorAlertFailChanges({ error });\n yield put(actions.failFetchingOrganizationContracts(error));\n }\n}\n\nexport function* watchFetchOrganizationContractsList() {\n yield takeEvery(types.ORGANIZATION_CONTRACTS_FETCH_STARTED, fetchOrganizationContractsList);\n}\n\n/* -------------------------------------------------------------------------- */\n/* PARTIAL FETCH LIST */\n/* -------------------------------------------------------------------------- */\nfunction* partialFetchOrganizationContractsList(action) {\n try {\n const {\n entityTypeId,\n operatorId: filterOperatorId,\n organizationId: filterOrganizationId\n } = action.payload;\n const date = yield select(entitySelectors.getUserUpdateByEntityDate, entityTypeId);\n const { operatorId, organizationId } = yield select(\n authSelectors.getAuthUserMembershipFilters,\n {\n filterOperatorId,\n filterOrganizationId\n }\n );\n\n const isAuth = yield select(authSelectors.isAuthenticated);\n if (isAuth) {\n const token = yield select(authSelectors.getAuthToken);\n const response = yield call(fetch, `${API_BASE_URL}/organizationContract/get`, {\n method: 'POST',\n body: JSON.stringify({ userFetchDate: date, operatorId, organizationId }),\n headers: {\n 'Content-Type': 'application/json',\n Authorization: `Bearer ${token}`\n }\n });\n const jsonResult = yield response.json();\n if (response.status <= 300 && jsonResult.success) {\n const resultData = jsonResult.data.map((result) => camelcaseKeys(result));\n const {\n entities: { organizationContracts },\n result //order\n } = normalize(resultData, schemas.organizationContracts); //normalize data to byId and order\n yield put(\n actions.completePartialFetchingOrganizationContracts(\n organizationContracts,\n result,\n operatorId,\n organizationId\n )\n );\n } else {\n const error = {\n errorMessage: jsonResult.message,\n errorNumber: jsonResult.number\n };\n // alerts.showErrorAlertFailChanges({ error });\n yield put(actions.failPartialFetchingOrganizationContracts(error));\n }\n }\n } catch (err) {\n const error = {\n errorMessage: err?.toString() ?? '',\n errorNumber: -1\n };\n // alerts.showErrorAlertFailChanges({ error });\n yield put(actions.failPartialFetchingOrganizationContracts(error));\n }\n}\n\nexport function* watchPartialFetchOrganizationContractsList() {\n yield takeEvery(\n types.ORGANIZATION_CONTRACTS_PARTIAL_FETCH_STARTED,\n partialFetchOrganizationContractsList\n );\n}\n\n/* -------------------------------------------------------------------------- */\n/* ADD */\n/* -------------------------------------------------------------------------- */\nfunction* addOrganizationContract(action) {\n const organizationContract = action.payload;\n try {\n const isAuth = yield select(authSelectors.isAuthenticated);\n\n if (isAuth) {\n const token = yield select(authSelectors.getAuthToken);\n const response = yield call(fetch, `${API_BASE_URL}/organizationContract/save`, {\n method: 'POST',\n body: JSON.stringify({ ...organizationContract, contractId: null }),\n headers: {\n 'Content-Type': 'application/json',\n Authorization: `Bearer ${token}`\n }\n });\n const jsonResult = yield response.json();\n if (response.status <= 300 && jsonResult.success) {\n const addedOrganizationContract = camelcaseKeys(jsonResult.data);\n yield put(\n actions.completeAddingOrganizationContract(\n organizationContract.contractId,\n addedOrganizationContract\n )\n );\n\n alerts.showSuccessCreatedMessage({\n object: appIntl().formatMessage({\n id: 'contracts.contract'\n }),\n name: organizationContract.contractNumber\n });\n } else {\n const error = {\n errorMessage: jsonResult.message,\n errorNumber: jsonResult.number\n };\n // alerts.showErrorAlertFailChanges({ error });\n yield put(actions.failAddingOrganizationContract(organizationContract.contractId, error));\n }\n }\n } catch (err) {\n const error = {\n errorMessage: err?.toString(),\n errorNumber: -1\n };\n // alerts.showErrorAlertFailChanges({ error });\n yield put(actions.failAddingOrganizationContract(organizationContract.contractId, error));\n }\n}\n\nexport function* watchAddOrganizationContractsStarted() {\n yield takeEvery(types.ORGANIZATION_CONTRACT_ADD_STARTED, addOrganizationContract);\n}\n\n/* -------------------------------------------------------------------------- */\n/* EDIT */\n/* -------------------------------------------------------------------------- */\nfunction* editOrganizationContract(action) {\n const organizationContract = action.payload;\n try {\n const isAuth = yield select(authSelectors.isAuthenticated);\n\n if (isAuth) {\n const token = yield select(authSelectors.getAuthToken);\n\n const response = yield call(fetch, `${API_BASE_URL}/organizationContract/save`, {\n method: 'POST',\n body: JSON.stringify(organizationContract),\n headers: {\n 'Content-Type': 'application/json',\n Authorization: `Bearer ${token}`\n }\n });\n const jsonResult = yield response.json();\n if (response.status <= 300 && jsonResult.success) {\n const editedOrganizationContract = camelcaseKeys(jsonResult.data);\n yield put(actions.completeEditingOrganizationContract(editedOrganizationContract));\n alerts.showSuccessEditedMessage({\n object: appIntl().formatMessage({\n id: 'contracts.contract'\n }),\n name: editedOrganizationContract.contractNumber\n });\n } else {\n const error = {\n errorMessage: jsonResult.message,\n errorNumber: jsonResult.number\n };\n const { oldOrganizationContract } = yield select((state) =>\n selectors.getOrganizationContract(\n state.organizationContracts,\n organizationContract.contractId\n )\n );\n yield put(actions.failEditingOrganizationContract(oldOrganizationContract, error));\n // alerts.showErrorAlertFailChanges({ error });\n }\n }\n } catch (err) {\n const error = {\n errorMessage: err?.toString(),\n errorNumber: -1\n };\n\n const oldOrganizationContract = yield select((state) =>\n selectors.getOrganizationContract(state, organizationContract.contractId)\n );\n yield put(actions.failEditingOrganizationContract(oldOrganizationContract, error));\n // alerts.showErrorAlertFailChanges({ error });\n }\n}\n\nexport function* watchEditOrganizationContractsStarted() {\n yield takeEvery(types.ORGANIZATION_CONTRACT_EDIT_STARTED, editOrganizationContract);\n}\n\n/* -------------------------------------------------------------------------- */\n/* REMOVE */\n/* -------------------------------------------------------------------------- */\nfunction* removeOrganizationContract(action) {\n const { contractId } = action.payload;\n try {\n const isAuth = yield select(authSelectors.isAuthenticated);\n if (isAuth) {\n const token = yield select(authSelectors.getAuthToken);\n const deletedOrganizationContract = yield select((state) =>\n selectors.getOrganizationContract(state, contractId)\n );\n const response = yield call(fetch, `${API_BASE_URL}/organizationContract/delete`, {\n method: 'POST',\n body: JSON.stringify({ contractId }),\n headers: {\n 'Content-Type': 'application/json',\n Authorization: `Bearer ${token}`\n }\n });\n const jsonResult = yield response.json();\n if (response.status <= 300 && jsonResult.success) {\n yield put(actions.completeRemovingOrganizationContract(contractId));\n alerts.showSuccessDeletedMessage({\n object: appIntl().formatMessage({\n id: 'contracts.contract'\n }),\n name: deletedOrganizationContract.contractNumber\n });\n } else {\n const error = {\n errorMessage: jsonResult.message,\n errorNumber: jsonResult.number\n };\n // alerts.showErrorAlertFailChanges({ error });\n yield put(actions.failRemovingOrganizationContract(contractId, error));\n }\n }\n } catch (err) {\n const error = {\n errorMessage: err?.toString(),\n errorNumber: -1\n };\n // alerts.showErrorAlertFailChanges({ error });\n yield put(actions.failRemovingOrganizationContract(contractId, error));\n }\n}\n\nexport function* watchRemoveOrganizationContractStarted() {\n yield takeEvery(types.ORGANIZATION_CONTRACT_REMOVE_STARTED, removeOrganizationContract);\n}\n","/* -------------------------------------------------------------------------- */\n/* Schema Contract Templates */\n/* -------------------------------------------------------------------------- */\n\nimport { schema } from 'normalizr';\n\nexport const contractTemplate = new schema.Entity(\n 'contractTemplates',\n {},\n { idAttribute: 'templateId' }\n);\nexport const contractTemplates = new schema.Array(contractTemplate);\n","import { call, takeEvery, put, select } from 'redux-saga/effects';\n\nimport { normalize } from 'normalizr';\nimport API_BASE_URL from '../../../../redux/sagas/settings/apibaseurl';\nimport * as actions from '../actions';\nimport * as types from '../types';\nimport * as selectors from '../reducers';\nimport * as schemas from '../schemas';\nimport * as entitySelectors from '../../Entities/reducers';\nimport * as authSelectors from '../../../../redux/reducers/auth';\nimport camelcaseKeys from 'camelcase-keys';\nimport * as alerts from '../../../../redux/utils/alerts';\nimport { appIntl } from '../../../../utility/context/IntlGlobalProvider';\n\n/* -------------------------------------------------------------------------- */\n/* FETCH LIST */\n/* -------------------------------------------------------------------------- */\nfunction* fetchContractTemplatesList(action) {\n const { operatorId, organizationId } = action.payload;\n\n try {\n const isAuth = yield select(authSelectors.isAuthenticated);\n if (isAuth) {\n const token = yield select(authSelectors.getAuthToken);\n const response = yield call(fetch, `${API_BASE_URL}/contractTemplate/get`, {\n method: 'POST',\n body: JSON.stringify({\n operatorId\n }),\n headers: {\n 'Content-Type': 'application/json',\n Authorization: `Bearer ${token}`\n }\n });\n const jsonResult = yield response.json();\n if (response.status <= 300 && jsonResult.success) {\n const resultData = jsonResult.data.map((result) => camelcaseKeys(result));\n const {\n entities: { contractTemplates },\n result //order\n } = normalize(resultData, schemas.contractTemplates); //normalize data to byId and order\n yield put(\n actions.completeFetchingContractTemplates(\n contractTemplates ?? [],\n result,\n operatorId,\n organizationId\n )\n );\n } else {\n const error = {\n errorMessage: jsonResult.message,\n errorNumber: jsonResult.number\n };\n // alerts.showErrorAlertFailChanges({ error });\n yield put(actions.failFetchingContractTemplates(error));\n }\n }\n } catch (err) {\n const error = {\n errorMessage: err.toString(),\n errorNumber: -1\n };\n // alerts.showErrorAlertFailChanges({ error });\n yield put(actions.failFetchingContractTemplates(error));\n }\n}\n\nexport function* watchFetchContractTemplatesList() {\n yield takeEvery(types.CONTRACT_TEMPLATES_FETCH_STARTED, fetchContractTemplatesList);\n}\n\n/* -------------------------------------------------------------------------- */\n/* PARTIAL FETCH LIST */\n/* -------------------------------------------------------------------------- */\nfunction* partialFetchContractTemplatesList(action) {\n try {\n const {\n entityTypeId,\n operatorId: filterOperatorId,\n organizationId: filterOrganizationId\n } = action.payload;\n const date = yield select(entitySelectors.getUserUpdateByEntityDate, entityTypeId);\n const { operatorId, organizationId } = yield select(\n authSelectors.getAuthUserMembershipFilters,\n {\n filterOperatorId,\n filterOrganizationId\n }\n );\n\n const isAuth = yield select(authSelectors.isAuthenticated);\n if (isAuth) {\n const token = yield select(authSelectors.getAuthToken);\n const response = yield call(fetch, `${API_BASE_URL}/contractTemplate/get`, {\n method: 'POST',\n body: JSON.stringify({ userFetchDate: date, operatorId }),\n headers: {\n 'Content-Type': 'application/json',\n Authorization: `Bearer ${token}`\n }\n });\n const jsonResult = yield response.json();\n if (response.status <= 300 && jsonResult.success) {\n const resultData = jsonResult.data.map((result) => camelcaseKeys(result));\n const {\n entities: { contractTemplates },\n result //order\n } = normalize(resultData, schemas.contractTemplates); //normalize data to byId and order\n yield put(\n actions.completePartialFetchingContractTemplates(\n contractTemplates,\n result,\n operatorId,\n organizationId\n )\n );\n } else {\n const error = {\n errorMessage: jsonResult.message,\n errorNumber: jsonResult.number\n };\n // alerts.showErrorAlertFailChanges({ error });\n yield put(actions.failPartialFetchingContractTemplates(error));\n }\n }\n } catch (err) {\n const error = {\n errorMessage: err.toString(),\n errorNumber: -1\n };\n // alerts.showErrorAlertFailChanges({ error });\n yield put(actions.failPartialFetchingContractTemplates(error));\n }\n}\n\nexport function* watchPartialFetchContractTemplatesList() {\n yield takeEvery(\n types.CONTRACT_TEMPLATES_PARTIAL_FETCH_STARTED,\n partialFetchContractTemplatesList\n );\n}\n\n/* -------------------------------------------------------------------------- */\n/* ADD */\n/* -------------------------------------------------------------------------- */\nfunction* addContractTemplate(action) {\n const contractTemplate = action.payload;\n try {\n const isAuth = yield select(authSelectors.isAuthenticated);\n\n if (isAuth) {\n const token = yield select(authSelectors.getAuthToken);\n // console.log('division', division);\n const response = yield call(fetch, `${API_BASE_URL}/contractTemplate/save`, {\n method: 'POST',\n body: JSON.stringify({ ...contractTemplate, templateId: null }),\n headers: {\n 'Content-Type': 'application/json',\n Authorization: `Bearer ${token}`\n }\n });\n const jsonResult = yield response.json();\n if (response.status <= 300 && jsonResult.success) {\n const addedContractTemplate = camelcaseKeys(jsonResult.data);\n yield put(\n actions.completeAddingContractTemplate(contractTemplate.templateId, addedContractTemplate)\n );\n\n alerts.showSuccessCreatedMessage({\n object: appIntl().formatMessage({\n id: 'contractTemplates.contractTemplate'\n }),\n name: contractTemplate.templateName,\n altText: true\n });\n } else {\n const error = {\n errorMessage: jsonResult.message,\n errorNumber: jsonResult.number\n };\n // alerts.showErrorAlertFailChanges({ error });\n yield put(actions.failAddingContractTemplate(contractTemplate.templateId, error));\n }\n }\n } catch (err) {\n const error = {\n errorMessage: err.toString(),\n errorNumber: -1\n };\n // alerts.showErrorAlertFailChanges({ error });\n yield put(actions.failAddingContractTemplate(contractTemplate.templateId, error));\n }\n}\n\nexport function* watchAddContractTemplatesStarted() {\n yield takeEvery(types.CONTRACT_TEMPLATE_ADD_STARTED, addContractTemplate);\n}\n\n/* -------------------------------------------------------------------------- */\n/* EDIT */\n/* -------------------------------------------------------------------------- */\nfunction* editContractTemplate(action) {\n const contractTemplate = action.payload;\n // console.log('payload edit', action.payload);\n try {\n const isAuth = yield select(authSelectors.isAuthenticated);\n\n if (isAuth) {\n const token = yield select(authSelectors.getAuthToken);\n\n const response = yield call(fetch, `${API_BASE_URL}/contractTemplate/save`, {\n method: 'POST',\n body: JSON.stringify(contractTemplate),\n headers: {\n 'Content-Type': 'application/json',\n Authorization: `Bearer ${token}`\n }\n });\n const jsonResult = yield response.json();\n if (response.status <= 300 && jsonResult.success) {\n const editedContractTemplate = camelcaseKeys(jsonResult.data);\n yield put(actions.completeEditingContractTemplate(editedContractTemplate));\n alerts.showSuccessEditedMessage({\n object: appIntl().formatMessage({\n id: 'contractTemplates.contractTemplate'\n }),\n name: editedContractTemplate.templateName,\n altText: true\n });\n } else {\n const error = {\n errorMessage: jsonResult.message,\n errorNumber: jsonResult.number\n };\n const { oldContractTemplate } = yield select((state) =>\n selectors.getContractTemplate(state.contractTemplates, contractTemplate.templateId)\n );\n yield put(actions.failEditingContractTemplate(oldContractTemplate, error));\n // alerts.showErrorAlertFailChanges({ error });\n }\n }\n } catch (err) {\n const error = {\n errorMessage: err.toString(),\n errorNumber: -1\n };\n\n const oldContractTemplate = yield select((state) =>\n selectors.getContractTemplate(state, contractTemplate.templateId)\n );\n // console.log('old', yield select((state) => selectors.getDivision(state, division.divisionId)));\n yield put(actions.failEditingContractTemplate(oldContractTemplate, error));\n // alerts.showErrorAlertFailChanges({ error });\n }\n}\n\nexport function* watchEditContractTemplatesStarted() {\n yield takeEvery(types.CONTRACT_TEMPLATE_EDIT_STARTED, editContractTemplate);\n}\n\n/* -------------------------------------------------------------------------- */\n/* REMOVE */\n/* -------------------------------------------------------------------------- */\nfunction* removeContractTemplate(action) {\n const { templateId } = action.payload;\n try {\n const isAuth = yield select(authSelectors.isAuthenticated);\n if (isAuth) {\n const token = yield select(authSelectors.getAuthToken);\n const deletedContractTemplate = yield select((state) =>\n selectors.getContractTemplate(state, templateId)\n );\n const response = yield call(fetch, `${API_BASE_URL}/contractTemplate/delete`, {\n method: 'POST',\n body: JSON.stringify({ templateId }),\n headers: {\n 'Content-Type': 'application/json',\n Authorization: `Bearer ${token}`\n }\n });\n const jsonResult = yield response.json();\n if (response.status <= 300 && jsonResult.success) {\n yield put(actions.completeRemovingContractTemplate(templateId));\n alerts.showSuccessDeletedMessage({\n object: appIntl().formatMessage({\n id: 'contractTemplates.template'\n }),\n name: deletedContractTemplate.templateName,\n altText: true\n });\n } else {\n const error = {\n errorMessage: jsonResult.message,\n errorNumber: jsonResult.number\n };\n // alerts.showErrorAlertFailChanges({ error });\n yield put(actions.failRemovingContractTemplate(templateId, error));\n }\n }\n } catch (err) {\n // console.log('err', err);\n const error = {\n errorMessage: err.toString(),\n errorNumber: -1\n };\n // alerts.showErrorAlertFailChanges({ error });\n yield put(actions.failRemovingContractTemplate(templateId, error));\n }\n}\n\nexport function* watchRemoveContractTemplateStarted() {\n yield takeEvery(types.CONTRACT_TEMPLATE_REMOVE_STARTED, removeContractTemplate);\n}\n","/* -------------------------------------------------------------------------- */\n/* Schema Customers */\n/* -------------------------------------------------------------------------- */\n\nimport { schema } from 'normalizr';\n\nexport const customer = new schema.Entity('customers', {}, { idAttribute: 'customerId' });\nexport const customers = new schema.Array(customer);\n","import { HttpWebtrack } from 'utility/http';\nimport { ConfigActions } from '../../../../utility/http/http-events';\n\nimport configureInterceptors from 'utility/http/interceptors/configure-interceptors';\nimport { store } from 'redux/storeConfig/store';\n\nexport const baseUrl = '/customer';\n\nexport const getCustomersListService = (request: any, configActions: ConfigActions) => {\n const httpWebtrack = new HttpWebtrack();\n configureInterceptors.ConfigureWebtrackInterceptor(store, httpWebtrack);\n httpWebtrack.setConfigMessage({\n object: 'customers.customer',\n action: 'Get',\n genderType: 'PluralMale'\n });\n httpWebtrack.setConfigActions(configActions);\n return httpWebtrack.post(`${baseUrl}/get`, request);\n};\n\nexport const saveCustomerService = (request: any, configActions: ConfigActions) => {\n const httpWebtrack = new HttpWebtrack();\n configureInterceptors.ConfigureWebtrackInterceptor(store, httpWebtrack);\n httpWebtrack.setConfigMessage({\n object: 'customers.customer',\n action: request.customerId ? 'Edit' : 'Create',\n name: request.customerName,\n genderType: 'SingularMale'\n });\n httpWebtrack.setConfigActions(configActions);\n return httpWebtrack.post(`${baseUrl}/save`, request);\n};\n\nexport const deleteCustomerService = (request: any, configActions: ConfigActions) => {\n const httpWebtrack = new HttpWebtrack();\n configureInterceptors.ConfigureWebtrackInterceptor(store, httpWebtrack);\n httpWebtrack.setConfigMessage({\n name: `${request.customerName}`,\n object: 'customers.customer',\n action: 'Delete',\n genderType: 'SingularMale'\n });\n httpWebtrack.setConfigActions(configActions);\n return httpWebtrack.post(`${baseUrl}/delete`, request);\n};\n","import { call, takeEvery, put, select } from 'redux-saga/effects';\n\nimport { normalize } from 'normalizr';\nimport * as actions from '../actions';\nimport * as types from '../types';\nimport * as selectors from '../reducers';\nimport * as schemas from '../schemas';\nimport * as entitySelectors from '../../Entities/reducers';\nimport * as entityActions from '../../Entities/actions';\nimport * as authSelectors from '../../../../redux/reducers/auth';\nimport camelcaseKeys from 'camelcase-keys';\nimport { getCustomersListService, saveCustomerService, deleteCustomerService } from '../services';\nimport { store } from 'redux/storeConfig/store';\n\n/* -------------------------------------------------------------------------- */\n/* FETCH LIST */\n/* -------------------------------------------------------------------------- */\nfunction* fetchCustomersList(action) {\n const { operatorId: filterOperatorId, organizationId: filterOrganizationId } = action.payload;\n const { operatorId, organizationId } = yield select(authSelectors.getAuthUserMembershipFilters, {\n filterOperatorId,\n filterOrganizationId\n });\n\n getCustomersListService(\n { operatorId, organizationId },\n {\n successAction: (response) => {\n const resultData = response.data.map((result) => camelcaseKeys(result));\n const {\n entities: { customers },\n result //order\n } = normalize(resultData, schemas.customers); //normalize data to byId and order\n store.dispatch(\n actions.completeFetchingCustomers(customers, result, operatorId, organizationId)\n );\n },\n errorAction: (error) => {\n store.dispatch(actions.failFetchingCustomers(error));\n }\n }\n );\n}\n\nexport function* watchFetchCustomersList() {\n yield takeEvery(types.CUSTOMERS_FETCH_STARTED, fetchCustomersList);\n}\n\n/* -------------------------------------------------------------------------- */\n/* PARTIAL FETCH LIST */\n/* -------------------------------------------------------------------------- */\nfunction* partialFetchCustomersList(action) {\n const {\n entityTypeId,\n operatorId: filterOperatorId,\n organizationId: filterOrganizationId\n } = action.payload;\n const date = yield select(entitySelectors.getUserUpdateByEntityDate, entityTypeId);\n const { operatorId, organizationId } = yield select(authSelectors.getAuthUserMembershipFilters, {\n filterOperatorId,\n filterOrganizationId\n });\n\n getCustomersListService(\n { userFetchDate: date, operatorId, organizationId },\n {\n successAction: (response) => {\n const resultData = response.data.map((result) => camelcaseKeys(result));\n const {\n entities: { customers },\n result //order\n } = normalize(resultData, schemas.customers); //normalize data to byId and order\n store.dispatch(\n actions.completePartialFetchingCustomers(customers, result, operatorId, organizationId)\n );\n },\n errorAction: (error) => {\n store.dispatch(actions.failPartialFetchingCustomers(error));\n }\n }\n );\n}\n\nexport function* watchPartialFetchCustomersList() {\n yield takeEvery(types.CUSTOMERS_PARTIAL_FETCH_STARTED, partialFetchCustomersList);\n}\n\n/* -------------------------------------------------------------------------- */\n/* ADD */\n/* -------------------------------------------------------------------------- */\nfunction* addCustomer(action) {\n const customer = action.payload;\n saveCustomerService(\n { ...customer, customerId: null },\n {\n successAction: (response) => {\n const addedCustomer = camelcaseKeys(response.data.customer);\n const addedOffice = camelcaseKeys(response.data.office);\n store.dispatch(\n actions.completeAddingCustomer(customer.customerId, addedCustomer, addedOffice)\n );\n store.dispatch(entityActions.startFetchingEntities());\n },\n errorAction: (error) => {\n store.dispatch(actions.failAddingCustomer(customer.customerId, error));\n }\n }\n );\n}\n\nexport function* watchAddCustomersStarted() {\n yield takeEvery(types.CUSTOMER_ADD_STARTED, addCustomer);\n}\n\n/* -------------------------------------------------------------------------- */\n/* EDIT */\n/* -------------------------------------------------------------------------- */\nfunction* editCustomer(action) {\n const customer = action.payload;\n const { oldCustomer } = yield select((state) =>\n selectors.getCustomer(state, customer.customerId)\n );\n saveCustomerService(\n { ...customer },\n {\n successAction: (response) => {\n const editedCustomer = camelcaseKeys(response.data.customer);\n const editedOffice = camelcaseKeys(response.data.office);\n store.dispatch(actions.completeEditingCustomer(editedCustomer, editedOffice));\n store.dispatch(entityActions.startFetchingEntities());\n },\n errorAction: (error) => {\n store.dispatch(actions.failEditingCustomer(oldCustomer, error));\n }\n }\n );\n}\n\nexport function* watchEditCustomersStarted() {\n yield takeEvery(types.CUSTOMER_EDIT_STARTED, editCustomer);\n}\n\n/* -------------------------------------------------------------------------- */\n/* REMOVE */\n/* -------------------------------------------------------------------------- */\nfunction* removeCustomer(action) {\n const { customerId } = action.payload;\n const customer = yield select((state) => selectors.getCustomer(state, customerId));\n deleteCustomerService(\n { ...customer },\n {\n successAction: (response) => {\n store.dispatch(actions.completeRemovingCustomer(customerId));\n },\n errorAction: (error) => {\n store.dispatch(actions.failRemovingCustomer(customerId, error));\n }\n }\n );\n}\n\nexport function* watchRemoveCustomerStarted() {\n yield takeEvery(types.CUSTOMER_REMOVE_STARTED, removeCustomer);\n}\n","/* -------------------------------------------------------------------------- */\n/* Schema Customers */\n/* -------------------------------------------------------------------------- */\n\nimport { schema } from 'normalizr';\n\nexport const office = new schema.Entity('offices', {}, { idAttribute: 'officeId' });\nexport const offices = new schema.Array(office);\n","import { HttpWebtrack } from 'utility/http';\nimport { ConfigActions } from '../../../../utility/http/http-events';\n\nimport configureInterceptors from 'utility/http/interceptors/configure-interceptors';\nimport { store } from 'redux/storeConfig/store';\n\nexport const baseUrl = '/office';\n\nexport const getOfficesListService = (request: any, configActions: ConfigActions) => {\n const httpWebtrack = new HttpWebtrack();\n configureInterceptors.ConfigureWebtrackInterceptor(store, httpWebtrack);\n httpWebtrack.setConfigMessage({\n object: 'offices.office',\n action: 'Get',\n genderType: 'PluralFemale'\n });\n httpWebtrack.setConfigActions(configActions);\n return httpWebtrack.post(`${baseUrl}/get`, request);\n};\n\nexport const saveOfficeService = (request: any, configActions: ConfigActions) => {\n const httpWebtrack = new HttpWebtrack();\n configureInterceptors.ConfigureWebtrackInterceptor(store, httpWebtrack);\n httpWebtrack.setConfigMessage({\n object: 'offices.office',\n action: request.officeId ? 'Edit' : 'Create',\n name: request.officeName,\n genderType: 'SingularFemale'\n });\n httpWebtrack.setConfigActions(configActions);\n return httpWebtrack.post(`${baseUrl}/save`, request);\n};\n\nexport const deleteOfficeService = (request: any, configActions: ConfigActions) => {\n const httpWebtrack = new HttpWebtrack();\n configureInterceptors.ConfigureWebtrackInterceptor(store, httpWebtrack);\n httpWebtrack.setConfigMessage({\n name: `${request.officeName}`,\n object: 'offices.office',\n action: 'Delete',\n genderType: 'SingularFemale'\n });\n httpWebtrack.setConfigActions(configActions);\n return httpWebtrack.post(`${baseUrl}/delete`, request);\n};\n","import { call, takeEvery, put, select } from 'redux-saga/effects';\n\nimport { normalize } from 'normalizr';\nimport * as actions from '../actions';\nimport * as types from '../types';\nimport * as selectors from '../reducers';\nimport * as schemas from '../schemas';\nimport * as entitySelectors from '../../Entities/reducers';\nimport * as entityActions from '../../Entities/actions';\nimport * as authSelectors from '../../../../redux/reducers/auth';\nimport camelcaseKeys from 'camelcase-keys';\nimport { getOfficesListService, saveOfficeService, deleteOfficeService } from '../services';\nimport { store } from 'redux/storeConfig/store';\n\n/* -------------------------------------------------------------------------- */\n/* FETCH LIST */\n/* -------------------------------------------------------------------------- */\nfunction* fetchOfficesList(action) {\n const { operatorId: filterOperatorId, organizationId: filterOrganizationId } = action.payload;\n const { operatorId, organizationId } = yield select(authSelectors.getAuthUserMembershipFilters, {\n filterOperatorId,\n filterOrganizationId\n });\n\n getOfficesListService(\n { operatorId, organizationId },\n {\n successAction: (response) => {\n const resultData = response.data.map((result) => camelcaseKeys(result));\n const {\n entities: { offices },\n result //order\n } = normalize(resultData, schemas.offices); //normalize data to byId and order\n store.dispatch(\n actions.completeFetchingOffices(offices, result, operatorId, organizationId)\n );\n },\n errorAction: (error) => {\n store.dispatch(actions.failFetchingOffices(error));\n }\n }\n );\n}\n\nexport function* watchFetchOfficesList() {\n yield takeEvery(types.OFFICES_FETCH_STARTED, fetchOfficesList);\n}\n\n/* -------------------------------------------------------------------------- */\n/* PARTIAL FETCH LIST */\n/* -------------------------------------------------------------------------- */\nfunction* partialFetchOfficesList(action) {\n const {\n entityTypeId,\n operatorId: filterOperatorId,\n organizationId: filterOrganizationId\n } = action.payload;\n const date = yield select(entitySelectors.getUserUpdateByEntityDate, entityTypeId);\n const { operatorId, organizationId } = yield select(authSelectors.getAuthUserMembershipFilters, {\n filterOperatorId,\n filterOrganizationId\n });\n\n getOfficesListService(\n { userFetchDate: date, operatorId, organizationId },\n {\n successAction: (response) => {\n const resultData = response.data.map((result) => camelcaseKeys(result));\n const {\n entities: { offices },\n result //order\n } = normalize(resultData, schemas.offices); //normalize data to byId and order\n store.dispatch(\n actions.completePartialFetchingOffices(offices, result, operatorId, organizationId)\n );\n },\n errorAction: (error) => {\n store.dispatch(actions.failPartialFetchingOffices(error));\n }\n }\n );\n}\n\nexport function* watchPartialFetchOfficesList() {\n yield takeEvery(types.OFFICES_PARTIAL_FETCH_STARTED, partialFetchOfficesList);\n}\n\n/* -------------------------------------------------------------------------- */\n/* ADD */\n/* -------------------------------------------------------------------------- */\nfunction* addOffice(action) {\n const office = action.payload;\n saveOfficeService(\n { ...office, officeId: null },\n {\n successAction: (response) => {\n const addedOffice = camelcaseKeys(response.data);\n store.dispatch(actions.completeAddingOffice(office.officeId, addedOffice));\n store.dispatch(entityActions.startFetchingEntities());\n },\n errorAction: (error) => {\n store.dispatch(actions.failAddingOffice(office.officeId, error));\n }\n }\n );\n}\n\nexport function* watchAddOfficesStarted() {\n yield takeEvery(types.OFFICE_ADD_STARTED, addOffice);\n}\n\n/* -------------------------------------------------------------------------- */\n/* EDIT */\n/* -------------------------------------------------------------------------- */\nfunction* editOffice(action) {\n const office = action.payload;\n const { oldOffice } = yield select((state) => selectors.getOffice(state, office.officeId));\n saveOfficeService(\n { ...office },\n {\n successAction: (response) => {\n const editedOffice = camelcaseKeys(response.data);\n store.dispatch(actions.completeEditingOffice(editedOffice));\n store.dispatch(entityActions.startFetchingEntities());\n },\n errorAction: (error) => {\n store.dispatch(actions.failEditingOffice(oldOffice, error));\n }\n }\n );\n}\n\nexport function* watchEditOfficesStarted() {\n yield takeEvery(types.OFFICE_EDIT_STARTED, editOffice);\n}\n\n/* -------------------------------------------------------------------------- */\n/* REMOVE */\n/* -------------------------------------------------------------------------- */\nfunction* removeOffice(action) {\n const { officeId } = action.payload;\n const office = yield select((state) => selectors.getOffice(state, officeId));\n deleteOfficeService(\n { ...office },\n {\n successAction: (response) => {\n store.dispatch(actions.completeRemovingOffice(officeId));\n },\n errorAction: (error) => {\n store.dispatch(actions.failRemovingOffice(officeId, error));\n }\n }\n );\n}\n\nexport function* watchRemoveOfficeStarted() {\n yield takeEvery(types.OFFICE_REMOVE_STARTED, removeOffice);\n}\n","/* -------------------------------------------------------------------------- */\n/* Schema Forms */\n/* -------------------------------------------------------------------------- */\n\nimport { schema } from 'normalizr';\nimport { utils } from 'sortablejs';\nimport * as util from 'utility/Utils';\n\nconst formSchema = new schema.Entity('forms', {}, { idAttribute: 'organizationFormId' });\nexport const forms = new schema.Array(formSchema);\n\nconst sectionSchema = new schema.Entity('sections', {}, { idAttribute: 'sectionId' });\nexport const sections = new schema.Array(sectionSchema);\n\nconst questionSchema = new schema.Entity('questions', {}, { idAttribute: 'questionId' });\nexport const questions = new schema.Array(questionSchema);\n\nconst responseSchema = new schema.Entity(\n 'responses',\n { questionResponse: [questionSchema] },\n {\n idAttribute: 'responseId',\n mergeStrategy: (entityA, entityB) =>\n !util.isIterable(entityA) ? [entityA, entityB] : [...entityA, entityB]\n }\n);\nexport const responses = new schema.Array(responseSchema);\n","import { HttpWebtrack } from 'utility/http';\nimport { ConfigActions } from '../../../../utility/http/http-events';\n\nimport configureInterceptors from 'utility/http/interceptors/configure-interceptors';\nimport { store } from 'redux/storeConfig/store';\nimport { appIntl } from 'utility/context/IntlGlobalProvider';\n\nexport const baseUrl = '/form';\n\ninterface FormFilters {\n userFetchDate?: Date;\n}\n\nexport const getFormsListService = (request: FormFilters, configActions: ConfigActions) => {\n const httpWebtrack = new HttpWebtrack();\n configureInterceptors.ConfigureWebtrackInterceptor(store, httpWebtrack);\n httpWebtrack.setConfigMessage({\n object: 'forms.form',\n action: 'Get',\n genderType: 'PluralMale'\n });\n httpWebtrack.setConfigActions(configActions);\n return httpWebtrack.post(`${baseUrl}/get`, request);\n};\n\nexport const getFormsSectionsListService = (request: any, configActions: ConfigActions) => {\n const httpWebtrack = new HttpWebtrack();\n configureInterceptors.ConfigureWebtrackInterceptor(store, httpWebtrack);\n httpWebtrack.setConfigActions(configActions);\n return httpWebtrack.post(`${baseUrl}/getSections`, request);\n};\n\nexport const getFormsQuestionsListService = (request: any, configActions: ConfigActions) => {\n const httpWebtrack = new HttpWebtrack();\n configureInterceptors.ConfigureWebtrackInterceptor(store, httpWebtrack);\n httpWebtrack.setConfigActions(configActions);\n return httpWebtrack.post(`${baseUrl}/getQuestions`, request);\n};\n\nexport const saveFormService = (request: any, configActions: ConfigActions) => {\n const httpWebtrack = new HttpWebtrack();\n configureInterceptors.ConfigureWebtrackInterceptor(store, httpWebtrack);\n httpWebtrack.setConfigMessage({\n object: 'forms.form',\n action: request.organizationFormId ? 'Edit' : 'Create',\n name: request.formName,\n genderType: 'SingularMale'\n });\n httpWebtrack.setConfigActions(configActions);\n return httpWebtrack.post(`${baseUrl}/save`, request);\n};\n\nexport const saveExternalFormService = (request: any, configActions: ConfigActions) => {\n const httpWebtrack = new HttpWebtrack();\n configureInterceptors.ConfigureWebtrackInterceptor(store, httpWebtrack);\n httpWebtrack.setConfigMessage({\n object: 'forms.form',\n action: request.organizationFormId ? 'Edit' : 'Create',\n name: request.formName,\n genderType: 'SingularMale'\n });\n httpWebtrack.setConfigActions(configActions);\n return httpWebtrack.post(`${baseUrl}/saveExternal`, request);\n};\n\nexport const saveResponseFormService = (request: any, configActions: ConfigActions) => {\n const httpWebtrack = new HttpWebtrack();\n configureInterceptors.ConfigureWebtrackInterceptor(store, httpWebtrack);\n const intl = appIntl();\n httpWebtrack.setConfigMessage({\n object: 'forms.form',\n action: 'Custom',\n customMessage: intl.formatMessage({\n id: 'forms.fillFormMessage'\n }),\n customMessageError: intl.formatMessage({\n id: 'forms.fillFormErrorMessage'\n })\n });\n httpWebtrack.setConfigActions(configActions);\n return httpWebtrack.post(`${baseUrl}/saveResponse`, request);\n};\n\nexport const resendResponseFormService = (request: any, configActions: ConfigActions) => {\n const httpWebtrack = new HttpWebtrack();\n configureInterceptors.ConfigureWebtrackInterceptor(store, httpWebtrack);\n const intl = appIntl();\n httpWebtrack.setConfigMessage({\n object: 'forms.form',\n action: 'Custom',\n customMessage: intl.formatMessage({\n id: 'forms.resendFormResponseMessage'\n }),\n customMessageError: intl.formatMessage({\n id: 'forms.resendFormResponseErrorMessage'\n })\n });\n httpWebtrack.setConfigActions(configActions);\n return httpWebtrack.post(`${baseUrl}/resendResponse`, request);\n};\n\nexport const deleteFormService = (request: any, configActions: ConfigActions, person: any) => {\n const httpWebtrack = new HttpWebtrack();\n configureInterceptors.ConfigureWebtrackInterceptor(store, httpWebtrack);\n httpWebtrack.setConfigMessage({\n name: `${request.formName}`,\n object: person && person === true ? 'people.person' : 'forms.form',\n action: 'Delete',\n genderType: person && person === true ? 'SingularFemale' : 'SingularMale'\n });\n httpWebtrack.setConfigActions(configActions);\n return httpWebtrack.post(`${baseUrl}/delete`, request);\n};\n","import { call, takeEvery, put, select } from 'redux-saga/effects';\n\nimport { normalize } from 'normalizr';\nimport API_BASE_URL from '../../../../redux/sagas/settings/apibaseurl';\nimport * as actions from '../actions';\nimport * as types from '../types';\nimport * as selectors from '../reducers';\nimport * as schemas from '../schemas';\nimport * as authSelectors from '../../../../redux/reducers/auth';\nimport * as entitySelectors from '../../Entities/reducers';\nimport camelcaseKeys from 'camelcase-keys';\nimport * as alerts from '../../../../redux/utils/alerts';\nimport * as utility from '../../../../utility/Utils';\nimport * as interfaces from 'utility/types';\nimport { appIntl } from '../../../../utility/context/IntlGlobalProvider';\nimport { DateTime } from 'luxon';\nimport uniq from 'lodash/uniq';\nimport camelCase from 'lodash/camelCase';\nimport { store } from 'redux/storeConfig/store';\nimport {\n getFormsListService,\n getFormsQuestionsListService,\n getFormsSectionsListService,\n resendResponseFormService,\n saveExternalFormService,\n saveFormService,\n saveResponseFormService\n} from '../services/forms';\nimport { endDateAdjustment } from 'utility/http/interceptors/interceptor-utils';\n\n/* -------------------------------------------------------------------------- */\n/* FETCH LIST */\n/* -------------------------------------------------------------------------- */\nfunction* fetchFormsList(action) {\n getFormsListService(\n {},\n {\n successAction: (response) => {\n const resultData = response.data.map((result) => camelcaseKeys(result));\n const {\n entities: { forms },\n result //order\n } = normalize(resultData, schemas.forms); //normalize data to byId and order\n store.dispatch(actions.completeFetchingForms(forms, result));\n },\n errorAction: (error) => {\n store.dispatch(actions.failFetchingForms(error));\n }\n }\n );\n}\n\nexport function* watchFetchFormsList() {\n yield takeEvery(types.FORMS_FETCH_STARTED, fetchFormsList);\n}\n\n/* -------------------------------------------------------------------------- */\n/* FETCH LIST */\n/* -------------------------------------------------------------------------- */\nfunction* partialFetchFormsList(action) {\n const entityTypeId = action.payload;\n const date = yield select(entitySelectors.getUserUpdateByEntityDate, entityTypeId);\n getFormsListService(\n { userFetchDate: date },\n {\n successAction: (response) => {\n const resultData = response.data.map((result) => camelcaseKeys(result));\n const {\n entities: { forms },\n result //order\n } = normalize(resultData, schemas.forms); //normalize data to byId and order\n store.dispatch(actions.completePartialFetchingForms(forms, result));\n },\n errorAction: (error) => {\n store.dispatch(actions.failPartialFetchingForms(error));\n }\n }\n );\n}\n\nexport function* watchPartialFetchFormsList() {\n yield takeEvery(types.FORMS_PARTIAL_FETCH_STARTED, partialFetchFormsList);\n}\n/* -------------------------------------------------------------------------- */\n/* FETCH SECTIONS */\n/* -------------------------------------------------------------------------- */\nfunction* fetchSections(action) {\n const formId = action.payload;\n\n getFormsSectionsListService(\n { formId },\n {\n successAction: (response) => {\n const resultData = response.data.map((result) => camelcaseKeys(result));\n const {\n entities: { sections },\n result //order\n } = normalize(resultData, schemas.sections); //normalize data to byId and order\n store.dispatch(actions.completeFetchingFormSections(sections, result, formId));\n },\n errorAction: (error) => {\n store.dispatch(actions.failFetchingFormSections(error));\n }\n }\n );\n}\n\nexport function* watchFetchSections() {\n yield takeEvery(types.FORM_SECTIONS_FETCH_STARTED, fetchSections);\n}\n\n/* -------------------------------------------------------------------------- */\n/* FETCH QUESTIONS */\n/* -------------------------------------------------------------------------- */\nfunction* fetchQuestions(action) {\n const formId = action.payload;\n\n getFormsQuestionsListService(\n { formId },\n {\n successAction: (response) => {\n const resultData = response.data.map((result) => camelcaseKeys(result));\n const {\n entities: { questions },\n result //order\n } = normalize(resultData, schemas.questions); //normalize data to byId and order\n store.dispatch(actions.completeFetchingFormQuestions(questions, result, formId));\n },\n errorAction: (error) => {\n store.dispatch(actions.failFetchingFormQuestions(error));\n }\n }\n );\n}\n\nexport function* watchFetchQuestions() {\n yield takeEvery(types.FORM_QUESTIONS_FETCH_STARTED, fetchQuestions);\n}\n\n/* -------------------------------------------------------------------------- */\n/* ADD */\n/* -------------------------------------------------------------------------- */\nfunction* addForm(action) {\n const form = action.payload;\n saveFormService(\n { ...form, organizationFormId: null },\n {\n successAction: (response) => {\n const addedForm = camelcaseKeys(response.data);\n store.dispatch(actions.completeAddingForm(form.organizationFormId, addedForm));\n },\n errorAction: (error) => {\n store.dispatch(actions.failAddingForm(form.organizationFormId, error));\n }\n }\n );\n}\n\nexport function* watchAddFormsStarted() {\n yield takeEvery(types.FORM_ADD_STARTED, addForm);\n}\n\n/* -------------------------------------------------------------------------- */\n/* EDIT */\n/* -------------------------------------------------------------------------- */\nfunction* editForm(action) {\n const form = action.payload;\n const { oldForm } = yield select((state) => selectors.getForm(state, form.organizationFormId));\n saveFormService(\n { ...form },\n {\n successAction: (response) => {\n const editedForm = camelcaseKeys(response?.data);\n store.dispatch(actions.completeEditingForm({ ...editedForm, questions: [] }));\n },\n errorAction: (error) => {\n store.dispatch(actions.failEditingForm(oldForm, error));\n }\n }\n );\n}\n\nexport function* watchEditFormsStarted() {\n yield takeEvery(types.FORM_EDIT_STARTED, editForm);\n}\n\n/* -------------------------------------------------------------------------- */\n/* ADD EXTERNAL */\n/* -------------------------------------------------------------------------- */\nfunction* addFormExternal(action) {\n const form = action.payload;\n saveExternalFormService(\n { ...form, organizationFormId: null },\n {\n successAction: (response) => {\n const addedForm = camelcaseKeys(response.data);\n store.dispatch(actions.completeAddingForm(form.organizationFormId, addedForm));\n },\n errorAction: (error) => {\n store.dispatch(actions.failAddingForm(form.organizationFormId, error));\n }\n }\n );\n}\n\nexport function* watchAddExternalFormsStarted() {\n yield takeEvery(types.FORM_EXTERNAL_ADD_STARTED, addFormExternal);\n}\n\n/* -------------------------------------------------------------------------- */\n/* EDIT EXTERNAL */\n/* -------------------------------------------------------------------------- */\nfunction* editFormExternal(action) {\n const form = action.payload;\n const { oldForm } = yield select((state) => selectors.getForm(state, form.organizationFormId));\n saveExternalFormService(\n { ...form },\n {\n successAction: (response) => {\n const editedForm = camelcaseKeys(response.data);\n store.dispatch(actions.completeEditingForm({ ...editedForm, questions: [] }));\n },\n errorAction: (error) => {\n store.dispatch(actions.failEditingForm(oldForm, error));\n }\n }\n );\n}\n\nexport function* watchEditExternalFormsStarted() {\n yield takeEvery(types.FORM_EXTERNAL_EDIT_STARTED, editFormExternal);\n}\n\n/* -------------------------------------------------------------------------- */\n/* REMOVE */\n/* -------------------------------------------------------------------------- */\nfunction* removeForm(action) {\n const { formId } = action.payload;\n try {\n const isAuth = yield select(authSelectors.isAuthenticated);\n if (isAuth) {\n const token = yield select(authSelectors.getAuthToken);\n const deletedForm = yield select((state) => selectors.getForm(state, formId));\n const response = yield call(fetch, `${API_BASE_URL}/form/delete`, {\n method: 'POST',\n body: JSON.stringify({ formId }),\n headers: {\n 'Content-Type': 'application/json',\n Authorization: `Bearer ${token}`\n }\n });\n const jsonResult = yield response.json();\n if (response.status <= 300 && jsonResult.success) {\n yield put(actions.completeRemovingForm(formId));\n alerts.showSuccessDeletedMessage({\n object: appIntl().formatMessage({\n id: 'forms.form'\n }),\n name: deletedForm.organizationFormName\n });\n } else {\n const error = {\n errorMessage: jsonResult.message,\n errorNumber: jsonResult.number\n };\n // alerts.showErrorAlertFailChanges({ error });\n yield put(actions.failRemovingForm(formId, error));\n }\n }\n } catch (err) {\n const error = {\n errorMessage: err.toString(),\n errorNumber: -1\n };\n // alerts.showErrorAlertFailChanges({ error });\n yield put(actions.failRemovingForm(formId, error));\n }\n}\n\nexport function* watchRemoveFormStarted() {\n yield takeEvery(types.FORM_REMOVE_STARTED, removeForm);\n}\n\n/* -------------------------------------------------------------------------- */\n/* Save responses */\n/* -------------------------------------------------------------------------- */\nfunction* saveResponse(action) {\n const formResponse = action.payload;\n saveResponseFormService(\n { ...formResponse },\n {\n successAction: (response) => {\n store.dispatch(actions.completeAddingResponse());\n },\n errorAction: (error) => {\n store.dispatch(actions.failAddingResponse());\n }\n }\n );\n}\n\nexport function* watchResponseAddedStarted() {\n yield takeEvery(types.FORM_RESPONSE_SAVE_STARTED, saveResponse);\n}\n\n/* -------------------------------------------------------------------------- */\n/* Get responses */\n/* -------------------------------------------------------------------------- */\nfunction* getResponses(action) {\n const payload = action.payload;\n try {\n const isAuth = yield select(authSelectors.isAuthenticated);\n if (isAuth) {\n const token = yield select(authSelectors.getAuthToken);\n\n const response = yield call(fetch, `${API_BASE_URL}/form/getResponses`, {\n method: 'POST',\n body: JSON.stringify(endDateAdjustment({ ...payload })),\n headers: {\n 'Content-Type': 'application/json',\n Authorization: `Bearer ${token}`\n }\n });\n const jsonResult = yield response.json();\n if (response.status <= 300 && jsonResult.success) {\n const {\n success,\n data: { definition, answers }\n } = jsonResult;\n const camelDefinition = camelcaseKeys(definition);\n const {\n entities: { responses },\n result\n }: { entities: any; result: any[] } = normalize(camelDefinition, schemas.responses);\n const finalObject = {};\n uniq(result).forEach((answer) => {\n const {\n entities: { questions },\n result\n }: { entities: any; result: any[] } = normalize(responses[answer], schemas.questions);\n finalObject[answer] = {\n questions: questions,\n result: result\n };\n });\n yield put(\n actions.completeFetchingResponse(finalObject, uniq(result), payload.organizationFormId)\n );\n } else {\n const error = {\n errorMessage: jsonResult.message,\n errorNumber: jsonResult.number\n };\n\n yield put(actions.failFetchingResponse(error));\n }\n }\n } catch (err) {\n const error = {\n errorMessage: err.toString(),\n errorNumber: -1\n };\n\n // yield put(actions.failFetchingForm(error));\n }\n}\n\nexport function* watchResponseFetchStarted() {\n yield takeEvery(types.FORM_RESPONSE_FETCH_STARTED, getResponses);\n}\n\n/* -------------------------------------------------------------------------- */\n/* Resend responses */\n/* -------------------------------------------------------------------------- */\nfunction* resendResponse(action) {\n const { organizationFormId, responseIds } = action.payload;\n resendResponseFormService(\n { organizationFormId, responseIds },\n {\n successAction: (response) => {\n store.dispatch(actions.completeResendingResponse(organizationFormId, responseIds));\n },\n errorAction: (error) => {\n store.dispatch(actions.failResendingResponse(organizationFormId, responseIds));\n }\n }\n );\n}\n\nexport function* watchResponseResendStarted() {\n yield takeEvery(types.FORM_RESPONSE_RESEND_STARTED, resendResponse);\n}\n","/* -------------------------------------------------------------------------- */\n/* Schema Categories */\n/* -------------------------------------------------------------------------- */\n\nimport { schema } from 'normalizr';\n\nexport const category = new schema.Entity('categories', {}, { idAttribute: 'categoryId' });\nexport const categories = new schema.Array(category);\n","import { HttpWebtrack } from 'utility/http';\nimport { SaveCategoryDTO, DeleteCategoryDTO } from '../types';\nimport configureInterceptors from 'utility/http/interceptors/configure-interceptors';\nimport { store } from 'redux/storeConfig/store';\n\nexport const baseUrl = '/catalogs';\n\nexport const saveCategory = (request: SaveCategoryDTO) => {\n const httpWebtrack = new HttpWebtrack();\n configureInterceptors.ConfigureWebtrackInterceptor(store, httpWebtrack);\n httpWebtrack.setConfigMessage({\n name: `${request.categoryName}`,\n object: 'vehicleMaintenance.category',\n action: `${request.categoryId ? 'Edit' : 'Create'}`,\n genderType: 'SingularFemale'\n });\n return httpWebtrack.post(`${baseUrl}/categories`, request);\n};\n\nexport const deleteCategory = (request: DeleteCategoryDTO) => {\n const httpWebtrack = new HttpWebtrack();\n configureInterceptors.ConfigureWebtrackInterceptor(store, httpWebtrack);\n httpWebtrack.setConfigMessage({\n name: `${request.categoryName}`,\n object: 'vehicleMaintenance.category',\n action: 'Delete',\n genderType: 'SingularFemale'\n });\n return httpWebtrack.get(`${baseUrl}/deleteCategory/${request.categoryId}`);\n};\n\nexport const getCategoryList = () => {\n const httpWebtrack = new HttpWebtrack();\n configureInterceptors.ConfigureWebtrackInterceptor(store, httpWebtrack);\n httpWebtrack.setConfigMessage(undefined);\n return httpWebtrack.get(`${baseUrl}/categories`);\n};\n","import { call, takeEvery, put } from 'redux-saga/effects';\nimport { normalize } from 'normalizr';\nimport * as actions from 'views/screens/vehicleMaintenance/actions/catalogs/categories';\nimport * as types from 'views/screens/vehicleMaintenance/types/catalogs/categories';\nimport * as schemas from 'views/screens/vehicleMaintenance/schemas/catalogs/categories';\nimport camelcaseKeys from 'camelcase-keys';\nimport * as alerts from 'redux/utils/alerts';\nimport {\n deleteCategory,\n getCategoryList,\n saveCategory\n} from 'views/screens/vehicleMaintenance/services/categoriesService';\nimport { PayloadAction } from '@reduxjs/toolkit';\nimport { DeleteCategoryDTO, SaveCategoryDTO } from 'views/screens/vehicleMaintenance/types';\n/* -------------------------------------------------------------------------- */\n/* FETCH LIST */\n/* -------------------------------------------------------------------------- */\nfunction* fetchCategoriesList(action) {\n try {\n const jsonResult = yield call(getCategoryList);\n const resultData = jsonResult.map((result) => camelcaseKeys(result));\n const {\n entities: { categories },\n result //order\n } = normalize(resultData, schemas.categories); //normalize data to byId and order\n yield put(actions.completeFetchingCategories(categories, result));\n } catch (err) {\n const error = {\n errorMessage: err.toString(),\n errorNumber: -1\n };\n // alerts.showErrorAlertFailChanges({ error });\n yield put(actions.failFetchingCategories(error));\n }\n}\n\nexport function* watchFetchCategoriesList() {\n yield takeEvery(types.CATEGORIES_FETCH_STARTED, fetchCategoriesList);\n}\n\n/* -------------------------------------------------------------------------- */\n/* PARTIAL FETCH LIST */\n/* -------------------------------------------------------------------------- */\nfunction* partialFetchCategoriesList(action) {}\n\nexport function* watchPartialFetchCategoriesList() {\n yield takeEvery(types.CATEGORIES_PARTIAL_FETCH_STARTED, partialFetchCategoriesList);\n}\n/* -------------------------------------------------------------------------- */\n/* ADD */\n/* -------------------------------------------------------------------------- */\nfunction* addCategory(action: PayloadAction) {\n const request = action.payload;\n try {\n const jsonResult = yield call(saveCategory, request);\n const addedData = camelcaseKeys(jsonResult);\n yield put(\n actions.completeAddingCategory(addedData.categoryId, request.tempId, {\n ...request,\n ...addedData\n })\n );\n } catch (e) {\n yield put(actions.failAddingCategory(request.tempId, e));\n }\n}\n\nexport function* watchAddCategoriesStarted() {\n yield takeEvery(types.CATEGORY_ADD_STARTED, addCategory);\n}\n\n/* -------------------------------------------------------------------------- */\n/* EDIT */\n/* -------------------------------------------------------------------------- */\nfunction* editCategory(action: PayloadAction) {\n const request = action.payload;\n try {\n const jsonResult = yield call(saveCategory, request);\n const addedData = camelcaseKeys(jsonResult);\n yield put(\n actions.completeEditingCategory({\n ...request,\n ...addedData\n })\n );\n } catch (e) {\n yield put(actions.failEditingCategory(request.categoryId, e));\n }\n}\n\nexport function* watchEditCategoriesStarted() {\n yield takeEvery(types.CATEGORY_EDIT_STARTED, editCategory);\n}\n\n/* -------------------------------------------------------------------------- */\n/* REMOVE */\n/* -------------------------------------------------------------------------- */\nfunction* removeCategory(action: PayloadAction) {\n const request = action.payload;\n try {\n yield call(deleteCategory, request);\n yield put(actions.completeRemovingCategory(request.categoryId));\n } catch (e) {\n yield put(actions.failRemovingCategory(request.categoryId, e));\n }\n}\n\nexport function* watchRemoveCategoryStarted() {\n yield takeEvery(types.CATEGORY_REMOVE_STARTED, removeCategory);\n}\n","/* -------------------------------------------------------------------------- */\n/* Schema Subdivisions */\n/* -------------------------------------------------------------------------- */\n\nimport { schema } from 'normalizr';\n\nexport const maintenanceLine = new schema.Entity(\n 'maintenanceLines',\n {},\n { idAttribute: 'maintenanceLineId' }\n);\nexport const maintenanceLines = new schema.Array(maintenanceLine);\n","import { HttpWebtrack } from 'utility/http';\nimport { ConfigActions } from '../../../../utility/http/http-events';\n\nimport configureInterceptors from 'utility/http/interceptors/configure-interceptors';\nimport { store } from 'redux/storeConfig/store';\nimport { appIntl } from 'utility/context/IntlGlobalProvider';\n\nexport const baseUrl = '/maintenanceLine';\n\nexport const getMaintenanceLinesListService = (request: any, configActions: ConfigActions) => {\n const httpWebtrack = new HttpWebtrack();\n configureInterceptors.ConfigureWebtrackInterceptor(store, httpWebtrack);\n httpWebtrack.setConfigMessage({\n object: 'maintenanceLines.maintenanceLine',\n action: 'Get',\n genderType: 'PluralFemale'\n });\n httpWebtrack.setConfigActions(configActions);\n return httpWebtrack.post(`${baseUrl}/get`, request);\n};\n\nexport const saveMaintenanceLineService = (request: any, configActions: ConfigActions) => {\n const httpWebtrack = new HttpWebtrack();\n configureInterceptors.ConfigureWebtrackInterceptor(store, httpWebtrack);\n httpWebtrack.setConfigMessage({\n object: 'maintenanceLines.maintenanceLine',\n action: request.maintenanceLineId ? 'Edit' : 'Create',\n name: request.maintenanceLineName,\n genderType: 'SingularFemale'\n });\n httpWebtrack.setConfigActions(configActions);\n return httpWebtrack.post(`${baseUrl}/save`, request);\n};\n\nexport const deleteMaintenanceLineService = (request: any, configActions: ConfigActions) => {\n const httpWebtrack = new HttpWebtrack();\n configureInterceptors.ConfigureWebtrackInterceptor(store, httpWebtrack);\n httpWebtrack.setConfigMessage({\n name: `${request.maintenanceLineName}`,\n object: 'maintenanceLines.maintenanceLine',\n action: 'Delete',\n genderType: 'SingularFemale'\n });\n httpWebtrack.setConfigActions(configActions);\n return httpWebtrack.post(`${baseUrl}/delete`, request);\n};\n\nexport const copyMaintenanceLineService = (request: any, configActions: ConfigActions) => {\n const httpWebtrack = new HttpWebtrack();\n configureInterceptors.ConfigureWebtrackInterceptor(store, httpWebtrack);\n const intl = appIntl();\n httpWebtrack.setConfigMessage({\n name: `${request.maintenanceLineName}`,\n object: 'maintenanceLines.maintenanceLine',\n action: 'Custom',\n genderType: 'SingularFemale',\n customMessage: intl.formatMessage({\n id: 'maintenanceLines.copySuccessful'\n }),\n customMessageError: intl.formatMessage({\n id: 'maintenanceLines.copyError'\n })\n });\n httpWebtrack.setConfigActions(configActions);\n return httpWebtrack.post(`${baseUrl}/copy`, request);\n};\n\nexport const importMaintenanceLinesService = (request: any, configActions: ConfigActions) => {\n const httpWebtrack = new HttpWebtrack();\n configureInterceptors.ConfigureWebtrackInterceptor(store, httpWebtrack);\n httpWebtrack.setConfigActions(configActions);\n return httpWebtrack.post(`${baseUrl}/importMaintenanceLines`, request);\n};\n","import { call, takeEvery, put, select } from 'redux-saga/effects';\n\nimport { normalize } from 'normalizr';\nimport * as actions from '../actions';\nimport * as types from '../types';\nimport * as selectors from '../reducers';\nimport * as schemas from '../schemas';\nimport * as entitySelectors from '../../Entities/reducers';\nimport * as authSelectors from '../../../../redux/reducers/auth';\nimport camelcaseKeys from 'camelcase-keys';\nimport {\n getMaintenanceLinesListService,\n saveMaintenanceLineService,\n deleteMaintenanceLineService,\n copyMaintenanceLineService,\n importMaintenanceLinesService\n} from '../services';\nimport { store } from 'redux/storeConfig/store';\nimport { MaintenancePlans } from '../types';\n\nconst mapStringToObject = (range: string) => {\n const [odometer, title, description, maintenanceRangeId, maintenanceLineId] = range.split('~');\n return {\n odometer: parseInt(odometer),\n title,\n description,\n maintenanceRangeId: Number(maintenanceLineId),\n maintenanceLineId: Number(maintenanceRangeId)\n };\n};\n\n/* -------------------------------------------------------------------------- */\n/* FETCH LIST */\n/* -------------------------------------------------------------------------- */\nfunction* fetchMaintenanceLinesList(action) {\n const { operatorId: filterOperatorId, organizationId: filterOrganizationId } = action.payload;\n // @ts-ignore\n const { operatorId, organizationId } = yield select(authSelectors.getAuthUserMembershipFilters, {\n filterOperatorId,\n filterOrganizationId\n });\n\n getMaintenanceLinesListService(\n { operatorId, organizationId },\n {\n successAction: (response: { data: MaintenancePlans[] }) => {\n const resultData = response.data.map((result) => {\n const r = camelcaseKeys(result);\n return {\n ...r,\n maintenanceRangesByHourMeter: r.maintenanceRangesByHourMeter\n ?.split('^')\n .map(mapStringToObject),\n maintenanceRangesByOdometer: r.maintenanceRangesByOdometer\n ?.split('^')\n .map(mapStringToObject)\n };\n });\n const {\n entities: { maintenanceLines },\n result //order\n } = normalize(resultData, schemas.maintenanceLines); //normalize data to byId and order\n store.dispatch(\n actions.completeFetchingMaintenanceLines(\n maintenanceLines,\n result,\n operatorId,\n organizationId\n )\n );\n },\n errorAction: (error) => {\n store.dispatch(actions.failFetchingMaintenanceLines(error));\n }\n }\n );\n}\n\nexport function* watchFetchMaintenanceLinesList() {\n yield takeEvery(types.MAINTENANCE_LINES_FETCH_STARTED, fetchMaintenanceLinesList);\n}\n\n/* -------------------------------------------------------------------------- */\n/* PARTIAL FETCH LIST */\n/* -------------------------------------------------------------------------- */\nfunction* partialFetchMaintenanceLinesList(action) {\n const {\n entityTypeId,\n operatorId: filterOperatorId,\n organizationId: filterOrganizationId\n } = action.payload;\n const date = yield select(entitySelectors.getUserUpdateByEntityDate, entityTypeId);\n // @ts-ignore\n const { operatorId, organizationId } = yield select(authSelectors.getAuthUserMembershipFilters, {\n filterOperatorId,\n filterOrganizationId\n });\n\n getMaintenanceLinesListService(\n { userFetchDate: date, operatorId, organizationId },\n {\n successAction: (response: { data: MaintenancePlans[] }) => {\n const resultData = response.data.map((result) => {\n const r = camelcaseKeys(result);\n return {\n ...r,\n maintenanceRangesByHourMeter: r.maintenanceRangesByHourMeter\n ?.split('^')\n .map(mapStringToObject),\n maintenanceRangesByOdometer: r.maintenanceRangesByOdometer\n ?.split('^')\n .map(mapStringToObject)\n };\n });\n const {\n entities: { maintenanceLines },\n result //order\n } = normalize(resultData, schemas.maintenanceLines); //normalize data to byId and order\n store.dispatch(\n actions.completePartialFetchingMaintenanceLines(\n maintenanceLines,\n result,\n operatorId,\n organizationId\n )\n );\n },\n errorAction: (error) => {\n store.dispatch(actions.failPartialFetchingMaintenanceLines(error));\n }\n }\n );\n}\n\nexport function* watchPartialFetchMaintenanceLinesList() {\n yield takeEvery(types.MAINTENANCE_LINES_PARTIAL_FETCH_STARTED, partialFetchMaintenanceLinesList);\n}\n\n/* -------------------------------------------------------------------------- */\n/* ADD */\n/* -------------------------------------------------------------------------- */\nfunction* addMaintenanceLine(action) {\n const maintenanceLine = action.payload;\n saveMaintenanceLineService(\n { ...maintenanceLine, maintenanceLineId: null },\n {\n successAction: (response) => {\n const r = camelcaseKeys(response.data);\n const addedMaintenanceLine = {\n ...r,\n maintenanceRangesByHourMeter: r.maintenanceRangesByHourMeter\n ?.split('^')\n .map(mapStringToObject),\n maintenanceRangesByOdometer: r.maintenanceRangesByOdometer\n ?.split('^')\n .map(mapStringToObject)\n };\n store.dispatch(\n actions.completeAddingMaintenanceLine(\n maintenanceLine.maintenanceLineId,\n addedMaintenanceLine\n )\n );\n },\n errorAction: (error) => {\n store.dispatch(actions.failAddingMaintenanceLine(maintenanceLine.maintenanceLineId, error));\n }\n }\n );\n}\n\nexport function* watchAddMaintenanceLinesStarted() {\n yield takeEvery(types.MAINTENANCE_LINE_ADD_STARTED, addMaintenanceLine);\n}\n\n/* -------------------------------------------------------------------------- */\n/* EDIT */\n/* -------------------------------------------------------------------------- */\nfunction* editMaintenanceLine(action) {\n const maintenanceLine = action.payload;\n const oldMaintenanceLine = yield select((state) =>\n selectors.getMaintenanceLine(state, maintenanceLine.maintenanceLineId)\n );\n saveMaintenanceLineService(\n { ...maintenanceLine },\n {\n successAction: (response) => {\n const r = camelcaseKeys(response.data);\n const editedMaintenanceLine = {\n ...r,\n maintenanceRangesByHourMeter: r.maintenanceRangesByHourMeter\n ?.split('^')\n .map(mapStringToObject),\n maintenanceRangesByOdometer: r.maintenanceRangesByOdometer\n ?.split('^')\n .map(mapStringToObject)\n };\n store.dispatch(actions.completeEditingMaintenanceLine(editedMaintenanceLine));\n },\n errorAction: (error) => {\n store.dispatch(actions.failEditingMaintenanceLine(oldMaintenanceLine, error));\n }\n }\n );\n}\n\nexport function* watchEditMaintenanceLinesStarted() {\n yield takeEvery(types.MAINTENANCE_LINE_EDIT_STARTED, editMaintenanceLine);\n}\n\n/* -------------------------------------------------------------------------- */\n/* REMOVE */\n/* -------------------------------------------------------------------------- */\nfunction* removeMaintenanceLine(action) {\n const { maintenanceLineId } = action.payload;\n const maintenanceLine = yield select((state) =>\n selectors.getMaintenanceLine(state, maintenanceLineId)\n );\n deleteMaintenanceLineService(\n { ...maintenanceLine },\n {\n successAction: (response) => {\n store.dispatch(actions.completeRemovingMaintenanceLine(maintenanceLineId));\n },\n errorAction: (error) => {\n store.dispatch(actions.failRemovingMaintenanceLine(maintenanceLineId, error));\n }\n }\n );\n}\n\nexport function* watchRemoveMaintenanceLineStarted() {\n yield takeEvery(types.MAINTENANCE_LINE_REMOVE_STARTED, removeMaintenanceLine);\n}\n\n/* -------------------------------------------------------------------------- */\n/* COPY */\n/* -------------------------------------------------------------------------- */\nfunction* copyMaintenanceLine(action) {\n const maintenanceLine = action.payload;\n copyMaintenanceLineService(\n { ...maintenanceLine },\n {\n successAction: (response) => {\n const r = camelcaseKeys(response.data);\n const copiedMaintenanceLine = {\n ...r,\n maintenanceRangesByHourMeter: r.maintenanceRangesByHourMeter\n ?.split('^')\n .map(mapStringToObject),\n maintenanceRangesByOdometer: r.maintenanceRangesByOdometer\n ?.split('^')\n .map(mapStringToObject)\n };\n store.dispatch(actions.completeCopyMaintenanceLine(copiedMaintenanceLine));\n },\n errorAction: (error) => {\n store.dispatch(actions.failCopyMaintenanceLine(error));\n }\n }\n );\n}\n\nexport function* watchCopyMaintenanceLineStarted() {\n yield takeEvery(types.MAINTENANCE_LINE_COPY_STARTED, copyMaintenanceLine);\n}\n","/* -------------------------------------------------------------------------- */\n/* Schema Notices */\n/* -------------------------------------------------------------------------- */\n\nimport { schema } from 'normalizr';\n\nexport const notice = new schema.Entity(\n 'notices',\n {},\n { idAttribute: (value) => `${value.unitId}-${value.noticeId}` }\n);\nexport const notices = new schema.Array(notice);\n","import { appIntl } from 'utility/context/IntlGlobalProvider';\nimport { HttpWebtrack } from 'utility/http';\nimport { NoticeByDateRequest, NoticeByHourmeterRequest, NoticeByOdometerRequest } from '../types';\nimport configureInterceptors from 'utility/http/interceptors/configure-interceptors';\nimport { store } from 'redux/storeConfig/store';\nimport { ConfigActions } from 'utility/http/http-events';\n\nexport const baseUrl = '/vehicleMaintenance';\n\nexport const saveNoticeByOdometer = (request: NoticeByOdometerRequest) => {\n const httpWebtrack = new HttpWebtrack();\n configureInterceptors.ConfigureWebtrackInterceptor(store, httpWebtrack);\n if (request.noticeId) {\n httpWebtrack.setConfigMessage({\n name: ``,\n object: 'vehicleMaintenance.notice',\n action: 'Edit',\n genderType: 'SingularMale'\n });\n } else {\n httpWebtrack.setConfigMessage({\n name: ``,\n object: 'vehicleMaintenance.notice',\n action: 'Create',\n genderType: 'SingularMale'\n });\n }\n return httpWebtrack.post(`${baseUrl}/saveNoticeByOdometer`, request);\n};\n\nexport const saveNoticeByHourmeter = (\n request: Partial,\n configActions: ConfigActions\n) => {\n const httpWebtrack = new HttpWebtrack();\n configureInterceptors.ConfigureWebtrackInterceptor(store, httpWebtrack);\n httpWebtrack.setConfigActions(configActions);\n if (request.noticeId) {\n httpWebtrack.setConfigMessage({\n name: ``,\n object: 'vehicleMaintenance.notice',\n action: 'Edit',\n genderType: 'SingularMale'\n });\n } else {\n httpWebtrack.setConfigMessage({\n name: ``,\n object: 'vehicleMaintenance.notice',\n action: 'Create',\n genderType: 'SingularMale'\n });\n }\n return httpWebtrack.post(`${baseUrl}/saveNoticeByHourMeter`, request);\n};\n\nexport const saveNoticeByDate = (request: NoticeByDateRequest) => {\n const httpWebtrack = new HttpWebtrack();\n configureInterceptors.ConfigureWebtrackInterceptor(store, httpWebtrack);\n if (request.noticeId) {\n httpWebtrack.setConfigMessage({\n name: ``,\n object: 'vehicleMaintenance.notice',\n action: 'Edit',\n genderType: 'SingularMale'\n });\n } else {\n httpWebtrack.setConfigMessage({\n name: ``,\n object: 'vehicleMaintenance.notice',\n action: 'Create',\n genderType: 'SingularMale'\n });\n }\n return httpWebtrack.post(`${baseUrl}/saveNoticeByDate`, request);\n};\n\nexport const deleteNotice = (request: { noticeId: number; unitId: number }) => {\n const httpWebtrack = new HttpWebtrack();\n configureInterceptors.ConfigureWebtrackInterceptor(store, httpWebtrack);\n httpWebtrack.setConfigMessage({\n name: ``,\n object: 'vehicleMaintenance.notice',\n action: 'Delete',\n genderType: 'SingularMale'\n });\n return httpWebtrack.get(`${baseUrl}/deleteNotice/${request.noticeId}/${request.unitId}`);\n};\n\nexport const getNoticeByOdometerList = () => {\n const httpWebtrack = new HttpWebtrack();\n configureInterceptors.ConfigureWebtrackInterceptor(store, httpWebtrack);\n httpWebtrack.setConfigMessage(undefined);\n return httpWebtrack.get(`${baseUrl}/scheduledNoticesByOdometer`);\n};\n\nexport const getNoticeByDateList = () => {\n const httpWebtrack = new HttpWebtrack();\n configureInterceptors.ConfigureWebtrackInterceptor(store, httpWebtrack);\n httpWebtrack.setConfigMessage(undefined);\n return httpWebtrack.get(`${baseUrl}/scheduledNoticesByDate`);\n};\n\nexport const getNoticeByHourmeterList = () => {\n const httpWebtrack = new HttpWebtrack();\n configureInterceptors.ConfigureWebtrackInterceptor(store, httpWebtrack);\n httpWebtrack.setConfigMessage(undefined);\n return httpWebtrack.get(`${baseUrl}/scheduledNoticesByHourmeter`);\n};\n\nexport const renewNoticeByOdometer = (request: NoticeByOdometerRequest) => {\n const httpWebtrack = new HttpWebtrack();\n configureInterceptors.ConfigureWebtrackInterceptor(store, httpWebtrack);\n httpWebtrack.setConfigMessage({\n name: ``,\n object: 'vehicleMaintenance.notice',\n action: 'Custom',\n customMessage: appIntl().formatMessage({ id: 'vehicleMaintenance.noticeRenewSuccessMsg' })\n });\n return httpWebtrack.post(`${baseUrl}/renewNoticeByOdometer`, request);\n};\n\nexport const renewNoticeByHourmeter = (request: NoticeByHourmeterRequest) => {\n const httpWebtrack = new HttpWebtrack();\n configureInterceptors.ConfigureWebtrackInterceptor(store, httpWebtrack);\n httpWebtrack.setConfigMessage({\n name: ``,\n object: 'vehicleMaintenance.notice',\n action: 'Custom',\n customMessage: appIntl().formatMessage({ id: 'vehicleMaintenance.noticeRenewSuccessMsg' })\n });\n return httpWebtrack.post(`${baseUrl}/renewNoticeByHourmeter`, request);\n};\n\nexport const renewNoticeByDate = (request: NoticeByOdometerRequest) => {\n const httpWebtrack = new HttpWebtrack();\n configureInterceptors.ConfigureWebtrackInterceptor(store, httpWebtrack);\n httpWebtrack.setConfigMessage({\n name: ``,\n object: 'vehicleMaintenance.notice',\n action: 'Custom',\n customMessage: appIntl().formatMessage({ id: 'vehicleMaintenance.noticeRenewSuccessMsg' })\n });\n return httpWebtrack.post(`${baseUrl}/renewNoticeByDate`, request);\n};\n","import { appIntl } from 'utility/context/IntlGlobalProvider';\nimport { call, takeEvery, put } from 'redux-saga/effects';\nimport { normalize } from 'normalizr';\nimport * as actions from 'views/screens/vehicleMaintenance/actions/preventiveNotices/noticesByOdometer';\nimport * as types from 'views/screens/vehicleMaintenance/types/preventiveNotices/noticesByOdometer';\nimport * as schemas from 'views/screens/vehicleMaintenance/schemas/preventiveNotices/notices';\nimport camelcaseKeys from 'camelcase-keys';\nimport * as alerts from 'redux/utils/alerts';\nimport {\n deleteNotice,\n getNoticeByOdometerList,\n renewNoticeByOdometer,\n saveNoticeByOdometer\n} from 'views/screens/vehicleMaintenance/services/noticeService';\nimport { PayloadAction } from '@reduxjs/toolkit';\nimport { NoticeByOdometerRequest } from 'views/screens/vehicleMaintenance/types';\nimport { getPreventiveNoticesByOdometerFormattedData } from 'views/screens/vehicleMaintenance/utils/getPreventiveNoticesByOdometerIndicators';\n\n/* -------------------------------------------------------------------------- */\n/* FETCH LIST */\n/* -------------------------------------------------------------------------- */\nfunction* fetchNoticesList(action) {\n try {\n const intl = appIntl();\n const jsonResult = yield call(getNoticeByOdometerList);\n const resultData = jsonResult.map((result) => camelcaseKeys(result));\n\n // SE CALCULA EL PROGRESO Y EL LABEL PARA CADA UNO DE LOS AVISOS PREVENTIVOS\n let entitiesCop = getPreventiveNoticesByOdometerFormattedData(resultData, intl);\n\n const {\n entities: { notices },\n result //order\n } = normalize(entitiesCop, schemas.notices); //normalize data to byId and order\n yield put(actions.completeFetchingNotices(notices, result));\n } catch (err) {\n const error = {\n errorMessage: err?.toString() ?? '',\n errorNumber: -1\n };\n // alerts.showErrorAlertFailChanges({ error });\n yield put(actions.failFetchingNotices(error));\n }\n}\n\nexport function* watchFetchNoticesList() {\n yield takeEvery(types.NOTICES_BY_ODOMETER_FETCH_STARTED, fetchNoticesList);\n}\n\n/* -------------------------------------------------------------------------- */\n/* PARTIAL FETCH LIST */\n/* -------------------------------------------------------------------------- */\nfunction* partialFetchNoticesList(action) {}\n\nexport function* watchPartialFetchNoticesList() {\n yield takeEvery(types.NOTICES_BY_ODOMETER_PARTIAL_FETCH_STARTED, partialFetchNoticesList);\n}\n/* -------------------------------------------------------------------------- */\n/* ADD */\n/* -------------------------------------------------------------------------- */\nfunction* addNotice(action: PayloadAction) {\n const request = action.payload;\n try {\n const jsonResult = yield call(saveNoticeByOdometer, request);\n const addedData = camelcaseKeys(jsonResult);\n yield put(\n actions.completeAddingNotice(`${addedData.unitId}-${addedData.noticeId}`, request.tempId, {\n ...request,\n ...addedData\n })\n );\n } catch (e) {\n yield put(actions.failAddingNotice(request.tempId, e));\n }\n}\n\nexport function* watchAddNoticesStarted() {\n yield takeEvery(types.NOTICE_BY_ODOMETER_ADD_STARTED, addNotice);\n}\n\n/* -------------------------------------------------------------------------- */\n/* EDIT */\n/* -------------------------------------------------------------------------- */\nfunction* editNotice(action: PayloadAction) {\n const request = action.payload;\n try {\n const jsonResult = yield call(saveNoticeByOdometer, request);\n const addedData = camelcaseKeys(jsonResult);\n yield put(\n actions.completeEditingNotice({\n ...request,\n ...addedData\n })\n );\n } catch (e) {\n yield put(actions.failEditingNotice(`${request.unitId}-${request.noticeId}`, e));\n }\n}\n\nexport function* watchEditNoticesStarted() {\n yield takeEvery(types.NOTICE_BY_ODOMETER_EDIT_STARTED, editNotice);\n}\n\n/* -------------------------------------------------------------------------- */\n/* RENEW */\n/* -------------------------------------------------------------------------- */\nfunction* renewNotice(action: PayloadAction) {\n const request = action.payload;\n try {\n const jsonResult = yield call(renewNoticeByOdometer, request);\n const addedData = camelcaseKeys(jsonResult);\n yield put(\n actions.completeRenewNotice({\n ...request,\n ...addedData\n })\n );\n } catch (e) {\n yield put(actions.failRenewNotice(`${request.unitId}-${request.noticeId}`, e));\n }\n}\n\nexport function* watchRenewNoticesStarted() {\n yield takeEvery(types.NOTICE_BY_ODOMETER_RENEW_STARTED, renewNotice);\n}\n\n/* -------------------------------------------------------------------------- */\n/* REMOVE */\n/* -------------------------------------------------------------------------- */\nfunction* removeNotice(action: PayloadAction<{ noticeId: number; unitId: number }>) {\n const request = action.payload;\n try {\n yield call(deleteNotice, request);\n yield put(actions.completeRemovingNotice(`${request.unitId}-${request.noticeId}`));\n } catch (e) {\n yield put(actions.failRemovingNotice(`${request.unitId}-${request.noticeId}`, e));\n }\n}\n\nexport function* watchRemoveNoticeStarted() {\n yield takeEvery(types.NOTICE_BY_ODOMETER_REMOVE_STARTED, removeNotice);\n}\n","import { call, takeEvery, put } from 'redux-saga/effects';\nimport { normalize } from 'normalizr';\nimport * as actions from 'views/screens/vehicleMaintenance/actions/preventiveNotices/noticesByDate';\nimport * as types from 'views/screens/vehicleMaintenance/types/preventiveNotices/noticesByDate';\nimport * as schemas from 'views/screens/vehicleMaintenance/schemas/preventiveNotices/notices';\nimport camelcaseKeys from 'camelcase-keys';\nimport * as alerts from 'redux/utils/alerts';\nimport {\n deleteNotice,\n getNoticeByDateList,\n saveNoticeByDate\n} from 'views/screens/vehicleMaintenance/services/noticeService';\nimport { PayloadAction } from '@reduxjs/toolkit';\nimport { NoticeByDateRequest } from 'views/screens/vehicleMaintenance/types';\n\n/* -------------------------------------------------------------------------- */\n/* FETCH LIST */\n/* -------------------------------------------------------------------------- */\nfunction* fetchNoticesList(action) {\n try {\n const jsonResult = yield call(getNoticeByDateList);\n const entitiesCop = jsonResult.map((result) => camelcaseKeys(result));\n\n const {\n entities: { notices },\n result //order\n } = normalize(entitiesCop, schemas.notices); //normalize data to byId and order\n yield put(actions.completeFetchingNotices(notices, result));\n } catch (err) {\n const error = {\n errorMessage: err?.toString() ?? '',\n errorNumber: -1\n };\n // alerts.showErrorAlertFailChanges({ error });\n yield put(actions.failFetchingNotices(error));\n }\n}\n\nexport function* watchFetchNoticesList() {\n yield takeEvery(types.NOTICES_BY_DATE_FETCH_STARTED, fetchNoticesList);\n}\n\n/* -------------------------------------------------------------------------- */\n/* PARTIAL FETCH LIST */\n/* -------------------------------------------------------------------------- */\nfunction* partialFetchNoticesList(action) {}\n\nexport function* watchPartialFetchNoticesList() {\n yield takeEvery(types.NOTICES_BY_DATE_PARTIAL_FETCH_STARTED, partialFetchNoticesList);\n}\n/* -------------------------------------------------------------------------- */\n/* ADD */\n/* -------------------------------------------------------------------------- */\nfunction* addNotice(action: PayloadAction) {\n const request = action.payload;\n try {\n const jsonResult = yield call(saveNoticeByDate, request);\n const addedData = camelcaseKeys(jsonResult);\n yield put(\n actions.completeAddingNotice(`${addedData.unitId}-${addedData.noticeId}`, request.tempId, {\n ...request,\n ...addedData\n })\n );\n } catch (e) {\n yield put(actions.failAddingNotice(request.tempId, e));\n }\n}\n\nexport function* watchAddNoticesStarted() {\n yield takeEvery(types.NOTICE_BY_DATE_ADD_STARTED, addNotice);\n}\n\n/* -------------------------------------------------------------------------- */\n/* EDIT */\n/* -------------------------------------------------------------------------- */\nfunction* editNotice(action: PayloadAction) {\n const request = action.payload;\n try {\n const jsonResult = yield call(saveNoticeByDate, request);\n const addedData = camelcaseKeys(jsonResult);\n yield put(\n actions.completeEditingNotice({\n ...request,\n ...addedData\n })\n );\n } catch (e) {\n yield put(actions.failEditingNotice(`${request.unitId}-${request.noticeId}`, e));\n }\n}\n\nexport function* watchEditNoticesStarted() {\n yield takeEvery(types.NOTICE_BY_DATE_EDIT_STARTED, editNotice);\n}\n\n/* -------------------------------------------------------------------------- */\n/* RENEW */\n/* -------------------------------------------------------------------------- */\nfunction* renewNotice(action: PayloadAction) {\n const request = action.payload;\n try {\n /*\n const jsonResult = yield call(renewNoticeByDate, request);\n const addedData = camelcaseKeys(jsonResult);\n yield put(\n actions.completeRenewNotice({\n ...request,\n ...addedData\n })\n );\n */\n } catch (e) {\n yield put(actions.failRenewNotice(`${request.unitId}-${request.noticeId}`, e));\n }\n}\n\nexport function* watchRenewNoticesStarted() {\n yield takeEvery(types.NOTICE_BY_DATE_RENEW_STARTED, renewNotice);\n}\n\n/* -------------------------------------------------------------------------- */\n/* REMOVE */\n/* -------------------------------------------------------------------------- */\nfunction* removeNotice(action: PayloadAction<{ noticeId: number; unitId: number }>) {\n const request = action.payload;\n try {\n yield call(deleteNotice, request);\n yield put(actions.completeRemovingNotice(`${request.unitId}-${request.noticeId}`));\n } catch (e) {\n yield put(actions.failRemovingNotice(`${request.unitId}-${request.noticeId}`, e));\n }\n}\n\nexport function* watchRemoveNoticeStarted() {\n yield takeEvery(types.NOTICE_BY_DATE_REMOVE_STARTED, removeNotice);\n}\n","import { call, takeEvery, put } from 'redux-saga/effects';\nimport { normalize } from 'normalizr';\nimport * as actions from 'views/screens/vehicleMaintenance/actions/preventiveNotices/noticesByHourmeter';\nimport * as types from 'views/screens/vehicleMaintenance/types/preventiveNotices/noticesByHourmeter';\nimport * as schemas from 'views/screens/vehicleMaintenance/schemas/preventiveNotices/notices';\nimport camelcaseKeys from 'camelcase-keys';\nimport * as alerts from 'redux/utils/alerts';\nimport {\n deleteNotice,\n getNoticeByHourmeterList,\n saveNoticeByHourmeter,\n renewNoticeByHourmeter\n} from 'views/screens/vehicleMaintenance/services/noticeService';\nimport { PayloadAction } from '@reduxjs/toolkit';\nimport {\n NoticeByDateRequest,\n NoticeByHourmeterRequest\n} from 'views/screens/vehicleMaintenance/types';\n\n/* -------------------------------------------------------------------------- */\n/* FETCH LIST */\n/* -------------------------------------------------------------------------- */\nfunction* fetchNoticesList(action) {\n try {\n const jsonResult = yield call(getNoticeByHourmeterList);\n const entitiesCop = jsonResult.map((result) => camelcaseKeys(result));\n\n const {\n entities: { notices },\n result //order\n } = normalize(entitiesCop, schemas.notices); //normalize data to byId and order\n yield put(actions.completeFetchingNotices(notices, result));\n } catch (err) {\n const error = {\n errorMessage: err?.toString() ?? '',\n errorNumber: -1\n };\n // alerts.showErrorAlertFailChanges({ error });\n yield put(actions.failFetchingNotices(error));\n }\n}\n\nexport function* watchFetchNoticesList() {\n yield takeEvery(types.NOTICES_BY_HOURMETER_FETCH_STARTED, fetchNoticesList);\n}\n\n/* -------------------------------------------------------------------------- */\n/* PARTIAL FETCH LIST */\n/* -------------------------------------------------------------------------- */\nfunction* partialFetchNoticesList(action) {}\n\nexport function* watchPartialFetchNoticesList() {\n yield takeEvery(types.NOTICES_BY_HOURMETER_PARTIAL_FETCH_STARTED, partialFetchNoticesList);\n}\n/* -------------------------------------------------------------------------- */\n/* ADD */\n/* -------------------------------------------------------------------------- */\nfunction* addNotice(action: PayloadAction) {\n const request = action.payload;\n try {\n // @ts-ignore\n const jsonResult = yield call(saveNoticeByHourmeter, request);\n const addedData = camelcaseKeys(jsonResult);\n yield put(\n actions.completeAddingNotice(\n `${addedData.unitId}-${addedData.noticeId}`,\n request?.tempId ?? '',\n {\n ...request,\n ...addedData\n }\n )\n );\n yield put(actions.startFetchingNotices());\n } catch (e) {\n yield put(actions.failAddingNotice(request.tempId, e));\n }\n}\n\nexport function* watchAddNoticesStarted() {\n yield takeEvery(types.NOTICE_BY_HOURMETER_ADD_STARTED, addNotice);\n}\n\n/* -------------------------------------------------------------------------- */\n/* EDIT */\n/* -------------------------------------------------------------------------- */\nfunction* editNotice(action: PayloadAction) {\n const request = action.payload;\n try {\n // @ts-ignore\n const jsonResult = yield call(saveNoticeByHourmeter, request);\n const addedData = camelcaseKeys(jsonResult);\n yield put(\n actions.completeEditingNotice({\n ...request,\n ...addedData\n })\n );\n yield put(actions.startFetchingNotices());\n } catch (e) {\n yield put(actions.failEditingNotice(`${request.unitId}-${request.noticeId}`, e));\n }\n}\n\nexport function* watchEditNoticesStarted() {\n yield takeEvery(types.NOTICE_BY_HOURMETER_EDIT_STARTED, editNotice);\n}\n\n/* -------------------------------------------------------------------------- */\n/* RENEW */\n/* -------------------------------------------------------------------------- */\nfunction* renewNotice(action: PayloadAction) {\n const request = action.payload;\n try {\n const jsonResult = yield call(renewNoticeByHourmeter, request);\n const addedData = camelcaseKeys(jsonResult);\n yield put(\n actions.completeRenewNotice({\n ...request,\n ...addedData\n })\n );\n yield put(actions.startFetchingNotices());\n } catch (e) {\n yield put(actions.failRenewNotice(`${request.unitId}-${request.noticeId}`, e));\n }\n}\n\nexport function* watchRenewNoticesStarted() {\n yield takeEvery(types.NOTICE_BY_HOURMETER_RENEW_STARTED, renewNotice);\n}\n\n/* -------------------------------------------------------------------------- */\n/* REMOVE */\n/* -------------------------------------------------------------------------- */\nfunction* removeNotice(action: PayloadAction<{ noticeId: number; unitId: number }>) {\n const request = action.payload;\n try {\n yield call(deleteNotice, request);\n yield put(actions.completeRemovingNotice(`${request.unitId}-${request.noticeId}`));\n } catch (e) {\n yield put(actions.failRemovingNotice(`${request.unitId}-${request.noticeId}`, e));\n }\n}\n\nexport function* watchRemoveNoticeStarted() {\n yield takeEvery(types.NOTICE_BY_HOURMETER_REMOVE_STARTED, removeNotice);\n}\n","/* -------------------------------------------------------------------------- */\n/* Schema Providers */\n/* -------------------------------------------------------------------------- */\n\nimport { schema } from 'normalizr';\n\nexport const provider = new schema.Entity('providers', {}, { idAttribute: 'providerId' });\nexport const providers = new schema.Array(provider);\n","import { HttpWebtrack } from 'utility/http';\nimport { SaveProviderCategoryDTO, DeleteProviderCategoryDTO } from '../types';\n\nimport configureInterceptors from 'utility/http/interceptors/configure-interceptors';\nimport { store } from 'redux/storeConfig/store';\n\nexport const baseUrl = '/catalogs';\n\nexport const saveProviderCategory = (request: SaveProviderCategoryDTO) => {\n const httpWebtrack = new HttpWebtrack();\n configureInterceptors.ConfigureWebtrackInterceptor(store, httpWebtrack);\n httpWebtrack.setConfigMessage({\n name: `${request.providerName}`,\n object: 'vehicleMaintenance.provider',\n action: `${request.providerId ? 'Edit' : 'Create'}`,\n genderType: 'SingularFemale'\n });\n return httpWebtrack.post(`${baseUrl}/providers`, request);\n};\n\nexport const deleteProviderCategory = (request: DeleteProviderCategoryDTO) => {\n const httpWebtrack = new HttpWebtrack();\n configureInterceptors.ConfigureWebtrackInterceptor(store, httpWebtrack);\n httpWebtrack.setConfigMessage({\n name: `${request.providerName}`,\n object: 'vehicleMaintenance.provider',\n action: 'Delete',\n genderType: 'SingularFemale'\n });\n return httpWebtrack.get(`${baseUrl}/deleteProvider/${request.providerId}`);\n};\n\nexport const getProviderList = () => {\n const httpWebtrack = new HttpWebtrack();\n configureInterceptors.ConfigureWebtrackInterceptor(store, httpWebtrack);\n httpWebtrack.setConfigMessage(undefined);\n return httpWebtrack.get(`${baseUrl}/providers`);\n};\n","import { call, takeEvery, put } from 'redux-saga/effects';\nimport { normalize } from 'normalizr';\nimport * as actions from 'views/screens/vehicleMaintenance/actions/catalogs/providers';\nimport * as types from 'views/screens/vehicleMaintenance/types/catalogs/providers';\nimport * as schemas from 'views/screens/vehicleMaintenance/schemas/catalogs/providers';\nimport camelcaseKeys from 'camelcase-keys';\nimport * as alerts from 'redux/utils/alerts';\nimport {\n deleteProviderCategory,\n getProviderList,\n saveProviderCategory\n} from 'views/screens/vehicleMaintenance/services/providersService';\nimport { PayloadAction } from '@reduxjs/toolkit';\nimport {\n DeleteProviderCategoryDTO,\n SaveProviderCategoryDTO\n} from 'views/screens/vehicleMaintenance/types';\n/* -------------------------------------------------------------------------- */\n/* FETCH LIST */\n/* -------------------------------------------------------------------------- */\nfunction* fetchProvidersList(action) {\n try {\n const jsonResult = yield call(getProviderList);\n const resultData = jsonResult.map((result) => camelcaseKeys(result));\n const {\n entities: { providers },\n result //order\n } = normalize(resultData, schemas.providers); //normalize data to byId and order\n yield put(actions.completeFetchingProviders(providers, result));\n } catch (err) {\n const error = {\n errorMessage: err.toString(),\n errorNumber: -1\n };\n // alerts.showErrorAlertFailChanges({ error });\n yield put(actions.failFetchingProviders(error));\n }\n}\n\nexport function* watchFetchProvidersList() {\n yield takeEvery(types.PROVIDERS_FETCH_STARTED2, fetchProvidersList);\n}\n\n/* -------------------------------------------------------------------------- */\n/* PARTIAL FETCH LIST */\n/* -------------------------------------------------------------------------- */\nfunction* partialFetchProvidersList(action) {}\n\nexport function* watchPartialFetchProvidersList() {\n yield takeEvery(types.PROVIDERS_PARTIAL_FETCH_STARTED2, partialFetchProvidersList);\n}\n/* -------------------------------------------------------------------------- */\n/* ADD */\n/* -------------------------------------------------------------------------- */\nfunction* addProvider(action: PayloadAction) {\n const request = action.payload;\n try {\n const jsonResult = yield call(saveProviderCategory, request);\n const addedData = camelcaseKeys(jsonResult);\n yield put(\n actions.completeAddingProvider(addedData.providerId, request.tempId, {\n ...request,\n ...addedData\n })\n );\n } catch (e) {\n yield put(actions.failAddingProvider(request.tempId, e));\n }\n}\n\nexport function* watchAddProvidersStarted() {\n yield takeEvery(types.PROVIDER_ADD_STARTED, addProvider);\n}\n\n/* -------------------------------------------------------------------------- */\n/* EDIT */\n/* -------------------------------------------------------------------------- */\nfunction* editProvider(action: PayloadAction) {\n const request = action.payload;\n try {\n const jsonResult = yield call(saveProviderCategory, request);\n const addedData = camelcaseKeys(jsonResult);\n yield put(\n actions.completeEditingProvider({\n ...request,\n ...addedData\n })\n );\n } catch (e) {\n yield put(actions.failEditingProvider(request.providerId, e));\n }\n}\n\nexport function* watchEditProvidersStarted() {\n yield takeEvery(types.PROVIDER_EDIT_STARTED, editProvider);\n}\n\n/* -------------------------------------------------------------------------- */\n/* REMOVE */\n/* -------------------------------------------------------------------------- */\nfunction* removeProvider(action: PayloadAction) {\n const request = action.payload;\n try {\n yield call(deleteProviderCategory, request);\n yield put(actions.completeRemovingProvider(request.providerId));\n } catch (e) {\n yield put(actions.failRemovingProvider(request.providerId, e));\n }\n}\n\nexport function* watchRemoveProviderStarted() {\n yield takeEvery(types.PROVIDER_REMOVE_STARTED, removeProvider);\n}\n","/* -------------------------------------------------------------------------- */\n/* Schema Workmanships */\n/* -------------------------------------------------------------------------- */\n\nimport { schema } from 'normalizr';\n\nexport const workmanship = new schema.Entity('workmanships', {}, { idAttribute: 'workmanshipId' });\nexport const workmanships = new schema.Array(workmanship);\n","import { HttpWebtrack } from 'utility/http';\nimport { SaveWorkmanshipCategoryDTO, DeleteWorkmanshipCategoryDTO } from '../types';\nimport configureInterceptors from 'utility/http/interceptors/configure-interceptors';\nimport { store } from 'redux/storeConfig/store';\n\nexport const baseUrl = '/catalogs';\n\nexport const saveWorkmanshipCategory = (request: SaveWorkmanshipCategoryDTO) => {\n const httpWebtrack = new HttpWebtrack();\n configureInterceptors.ConfigureWebtrackInterceptor(store, httpWebtrack);\n httpWebtrack.setConfigMessage({\n name: `${request.description}`,\n object: 'vehicleMaintenance.workmanship',\n action: `${request.workmanshipId ? 'Edit' : 'Create'}`,\n genderType: 'SingularFemale'\n });\n return httpWebtrack.post(`${baseUrl}/workmanship`, request);\n};\n\nexport const deleteWorkmanshipCategory = (request: DeleteWorkmanshipCategoryDTO) => {\n const httpWebtrack = new HttpWebtrack();\n configureInterceptors.ConfigureWebtrackInterceptor(store, httpWebtrack);\n httpWebtrack.setConfigMessage({\n name: `${request.description}`,\n object: 'vehicleMaintenance.workmanship',\n action: 'Delete',\n genderType: 'SingularFemale'\n });\n return httpWebtrack.get(`${baseUrl}/deleteWorkmanship/${request.workmanshipId}`);\n};\n\nexport const getWorkmanshipsList = () => {\n const httpWebtrack = new HttpWebtrack();\n configureInterceptors.ConfigureWebtrackInterceptor(store, httpWebtrack);\n httpWebtrack.setConfigMessage(undefined);\n return httpWebtrack.get(`${baseUrl}/workmanship`);\n};\n","import { call, takeEvery, put } from 'redux-saga/effects';\nimport { normalize } from 'normalizr';\nimport * as actions from 'views/screens/vehicleMaintenance/actions/catalogs/workmanship';\nimport * as types from 'views/screens/vehicleMaintenance/types/catalogs/workmanship';\nimport * as schemas from 'views/screens/vehicleMaintenance/schemas/catalogs/workmanship';\nimport camelcaseKeys from 'camelcase-keys';\nimport * as alerts from 'redux/utils/alerts';\nimport {\n deleteWorkmanshipCategory,\n getWorkmanshipsList,\n saveWorkmanshipCategory\n} from 'views/screens/vehicleMaintenance/services/workmanshipService';\nimport { PayloadAction } from '@reduxjs/toolkit';\nimport { SaveWorkmanshipCategoryDTO } from 'views/screens/vehicleMaintenance/types';\n/* -------------------------------------------------------------------------- */\n/* FETCH LIST */\n/* -------------------------------------------------------------------------- */\nfunction* fetchWorkmanshipsList(action) {\n try {\n const jsonResult = yield call(getWorkmanshipsList);\n const resultData = jsonResult.map((result) => camelcaseKeys(result));\n const {\n entities: { workmanships },\n result //order\n } = normalize(resultData, schemas.workmanships); //normalize data to byId and order\n yield put(actions.completeFetchingWorkmanships(workmanships, result));\n } catch (err) {\n const error = {\n errorMessage: err.toString(),\n errorNumber: -1\n };\n // alerts.showErrorAlertFailChanges({ error });\n yield put(actions.failFetchingWorkmanships(error));\n }\n}\n\nexport function* watchFetchWorkmanshipsList() {\n yield takeEvery(types.WORKMANSHIPS_FETCH_STARTED, fetchWorkmanshipsList);\n}\n\n/* -------------------------------------------------------------------------- */\n/* PARTIAL FETCH LIST */\n/* -------------------------------------------------------------------------- */\nfunction* partialFetchWorkmanshipsList(action) {}\n\nexport function* watchPartialFetchWorkmanshipsList() {\n yield takeEvery(types.WORKMANSHIPS_PARTIAL_FETCH_STARTED, partialFetchWorkmanshipsList);\n}\n/* -------------------------------------------------------------------------- */\n/* ADD */\n/* -------------------------------------------------------------------------- */\nfunction* addWorkmanship(action: PayloadAction) {\n const request = action.payload;\n try {\n const jsonResult = yield call(saveWorkmanshipCategory, request);\n const addedData = camelcaseKeys(jsonResult);\n yield put(\n actions.completeAddingWorkmanship(addedData.workmanshipId, request.tempId, {\n ...request,\n ...addedData\n })\n );\n } catch (e) {\n yield put(actions.failAddingWorkmanship(request.tempId, e));\n }\n}\n\nexport function* watchAddWorkmanshipsStarted() {\n yield takeEvery(types.WORKMANSHIP_ADD_STARTED, addWorkmanship);\n}\n\n/* -------------------------------------------------------------------------- */\n/* EDIT */\n/* -------------------------------------------------------------------------- */\nfunction* editWorkmanship(action: PayloadAction) {\n const request = action.payload;\n try {\n const jsonResult = yield call(saveWorkmanshipCategory, request);\n const addedData = camelcaseKeys(jsonResult);\n yield put(\n actions.completeEditingWorkmanship({\n ...request,\n ...addedData\n })\n );\n } catch (e) {\n yield put(actions.failEditingWorkmanship(request.workmanshipId, e));\n }\n}\n\nexport function* watchEditWorkmanshipsStarted() {\n yield takeEvery(types.WORKMANSHIP_EDIT_STARTED, editWorkmanship);\n}\n\n/* -------------------------------------------------------------------------- */\n/* REMOVE */\n/* -------------------------------------------------------------------------- */\nfunction* removeWorkmanship(action: PayloadAction<{ workmanshipId: number; description: string }>) {\n const request = action.payload;\n try {\n yield call(deleteWorkmanshipCategory, request);\n yield put(actions.completeRemovingWorkmanship(request.workmanshipId));\n } catch (e) {\n yield put(actions.failRemovingWorkmanship(request.workmanshipId, e));\n }\n}\n\nexport function* watchRemoveWorkmanshipStarted() {\n yield takeEvery(types.WORKMANSHIP_REMOVE_STARTED, removeWorkmanship);\n}\n","/* -------------------------------------------------------------------------- */\n/* Schema Providers */\n/* -------------------------------------------------------------------------- */\n\nimport { schema } from 'normalizr';\n\nexport const sparePart = new schema.Entity('spareParts', {}, { idAttribute: 'sparePartId' });\nexport const spareParts = new schema.Array(sparePart);\n","import { HttpWebtrack } from 'utility/http';\nimport { SaveSparePartCategoryDTO, DeleteSparePartCategoryDTO } from '../types';\nimport configureInterceptors from 'utility/http/interceptors/configure-interceptors';\nimport { store } from 'redux/storeConfig/store';\n\nexport const baseUrl = '/catalogs';\n\nexport const saveSparePartCategory = (request: SaveSparePartCategoryDTO) => {\n const httpWebtrack = new HttpWebtrack();\n configureInterceptors.ConfigureWebtrackInterceptor(store, httpWebtrack);\n httpWebtrack.setConfigMessage({\n name: `${request.sparePartName}`,\n object: 'vehicleMaintenance.sparepart',\n action: `${request.sparePartId ? 'Edit' : 'Create'}`,\n genderType: 'SingularFemale'\n });\n return httpWebtrack.post(`${baseUrl}/spareParts`, request);\n};\n\nexport const deleteSparePartCategory = (request: DeleteSparePartCategoryDTO) => {\n const httpWebtrack = new HttpWebtrack();\n configureInterceptors.ConfigureWebtrackInterceptor(store, httpWebtrack);\n httpWebtrack.setConfigMessage({\n name: `${request.sparePartName}`,\n object: 'vehicleMaintenance.sparepart',\n action: 'Delete',\n genderType: 'SingularFemale'\n });\n return httpWebtrack.get(`${baseUrl}/deleteSparePart/${request.sparePartId}`);\n};\n\nexport const getSparePartList = () => {\n const httpWebtrack = new HttpWebtrack();\n configureInterceptors.ConfigureWebtrackInterceptor(store, httpWebtrack);\n httpWebtrack.setConfigMessage(undefined);\n return httpWebtrack.get(`${baseUrl}/spareParts`);\n};\n","import { call, takeEvery, put } from 'redux-saga/effects';\nimport { normalize } from 'normalizr';\nimport * as actions from 'views/screens/vehicleMaintenance/actions/catalogs/spareParts';\nimport * as types from 'views/screens/vehicleMaintenance/types/catalogs/spareParts';\nimport * as schemas from 'views/screens/vehicleMaintenance/schemas/catalogs/spareParts';\nimport camelcaseKeys from 'camelcase-keys';\nimport * as alerts from 'redux/utils/alerts';\nimport {\n deleteSparePartCategory,\n getSparePartList,\n saveSparePartCategory\n} from 'views/screens/vehicleMaintenance/services/sparePartsService';\nimport { PayloadAction } from '@reduxjs/toolkit';\nimport {\n DeleteSparePartCategoryDTO,\n SaveSparePartCategoryDTO\n} from 'views/screens/vehicleMaintenance/types';\n/* -------------------------------------------------------------------------- */\n/* FETCH LIST */\n/* -------------------------------------------------------------------------- */\nfunction* fetchSparePartsList(action) {\n try {\n const jsonResult = yield call(getSparePartList);\n const resultData = jsonResult.map((result) => camelcaseKeys(result));\n const {\n entities: { spareParts },\n result //order\n } = normalize(resultData, schemas.spareParts); //normalize data to byId and order\n yield put(actions.completeFetchingSpareParts(spareParts, result));\n } catch (err) {\n const error = {\n errorMessage: err.toString(),\n errorNumber: -1\n };\n // alerts.showErrorAlertFailChanges({ error });\n yield put(actions.failFetchingSpareParts(error));\n }\n}\n\nexport function* watchFetchSparePartsList() {\n yield takeEvery(types.SPAREPARTS_FETCH_STARTED, fetchSparePartsList);\n}\n\n/* -------------------------------------------------------------------------- */\n/* PARTIAL FETCH LIST */\n/* -------------------------------------------------------------------------- */\nfunction* partialFetchSparePartsList(action) {}\n\nexport function* watchPartialFetchSparePartsList() {\n yield takeEvery(types.SPAREPARTS_PARTIAL_FETCH_STARTED, partialFetchSparePartsList);\n}\n/* -------------------------------------------------------------------------- */\n/* ADD */\n/* -------------------------------------------------------------------------- */\nfunction* addSparePart(action: PayloadAction) {\n const request = action.payload;\n try {\n const jsonResult = yield call(saveSparePartCategory, request);\n const addedData = camelcaseKeys(jsonResult);\n yield put(\n actions.completeAddingSparePart(addedData.sparePartId, request.tempId, {\n ...request,\n ...addedData\n })\n );\n } catch (e) {\n yield put(actions.failAddingSparePart(request.tempId, e));\n }\n}\n\nexport function* watchAddSparePartsStarted() {\n yield takeEvery(types.SPAREPART_ADD_STARTED, addSparePart);\n}\n\n/* -------------------------------------------------------------------------- */\n/* EDIT */\n/* -------------------------------------------------------------------------- */\nfunction* editSparePart(action: PayloadAction) {\n const request = action.payload;\n try {\n const jsonResult = yield call(saveSparePartCategory, request);\n const addedData = camelcaseKeys(jsonResult);\n yield put(\n actions.completeEditingSparePart({\n ...request,\n ...addedData\n })\n );\n } catch (e) {\n yield put(actions.failEditingSparePart(request.sparePartId, e));\n }\n}\n\nexport function* watchEditSparePartsStarted() {\n yield takeEvery(types.SPAREPART_EDIT_STARTED, editSparePart);\n}\n\n/* -------------------------------------------------------------------------- */\n/* REMOVE */\n/* -------------------------------------------------------------------------- */\nfunction* removeSparePart(action: PayloadAction) {\n const request = action.payload;\n try {\n yield call(deleteSparePartCategory, request);\n yield put(actions.completeRemovingSparePart(request.sparePartId));\n } catch (e) {\n yield put(actions.failRemovingSparePart(request.sparePartId, e));\n }\n}\n\nexport function* watchRemoveSparePartStarted() {\n yield takeEvery(types.SPAREPART_REMOVE_STARTED, removeSparePart);\n}\n","/* -------------------------------------------------------------------------- */\n/* Schema Locations */\n/* -------------------------------------------------------------------------- */\n\nimport { schema } from 'normalizr';\n\nexport const protocol = new schema.Entity('protocols', {}, { idAttribute: 'protocolId' });\nexport const protocols = new schema.Array(protocol);\n","import { HttpWebtrack } from 'utility/http';\nimport { ConfigActions } from '../../../../utility/http/http-events';\nimport configureInterceptors from 'utility/http/interceptors/configure-interceptors';\nimport { store } from 'redux/storeConfig/store';\n\nexport const baseUrl = '/protocol';\n\ninterface ProtocolAddRequest {\n protocolId: number;\n protocolName: string;\n protocolDescription: string;\n eventTypes: string;\n protocolPriority: number;\n operatorId?: number;\n organizationId?: number;\n divisionId?: number;\n subdivisionId?: number;\n}\n\ninterface ProtocolDeleteRequest {\n protocolId: number;\n protocolName: string;\n}\n\nexport const getProtocolsListService = (request: any, configActions: ConfigActions) => {\n const httpWebtrack = new HttpWebtrack();\n configureInterceptors.ConfigureWebtrackInterceptor(store, httpWebtrack);\n httpWebtrack.setConfigMessage({\n object: 'protocol.protocol',\n action: 'Get',\n genderType: 'PluralMale'\n });\n httpWebtrack.setConfigActions(configActions);\n return httpWebtrack.post(`${baseUrl}/get`, request);\n};\n\nexport const saveProtocolService = (request: ProtocolAddRequest, configActions: ConfigActions) => {\n const httpWebtrack = new HttpWebtrack();\n configureInterceptors.ConfigureWebtrackInterceptor(store, httpWebtrack);\n httpWebtrack.setConfigMessage({\n object: 'protocol.protocol',\n action: request.protocolId ? 'Edit' : 'Create',\n name: request.protocolName,\n genderType: 'PluralMale'\n });\n httpWebtrack.setConfigActions(configActions);\n return httpWebtrack.post(`${baseUrl}/save`, request);\n};\n\nexport const deleteProtocolService = (\n request: ProtocolDeleteRequest,\n configActions: ConfigActions\n) => {\n const httpWebtrack = new HttpWebtrack();\n configureInterceptors.ConfigureWebtrackInterceptor(store, httpWebtrack);\n httpWebtrack.setConfigMessage({\n object: 'protocol.protocol',\n action: 'Delete',\n name: `${request.protocolName}`,\n genderType: 'PluralMale'\n });\n httpWebtrack.setConfigActions(configActions);\n return httpWebtrack.post(`${baseUrl}/delete`, request);\n};\n","import { call, takeEvery, put, select } from 'redux-saga/effects';\n\nimport { normalize } from 'normalizr';\nimport * as actions from '../actions';\nimport * as types from '../types';\nimport * as selectors from '../reducers';\nimport * as schemas from '../schemas';\nimport * as entitySelectors from '../../Entities/reducers';\nimport * as authSelectors from '../../../../redux/reducers/auth';\nimport camelcaseKeys from 'camelcase-keys';\nimport { store } from 'redux/storeConfig/store';\nimport API_BASE_URL from '../../../../redux/sagas/settings/apibaseurl';\nimport * as alerts from '../../../../redux/utils/alerts';\nimport { appIntl } from '../../../../utility/context/IntlGlobalProvider';\nimport {\n deleteProtocolService,\n getProtocolsListService,\n saveProtocolService\n} from '../services/protocols';\n\n/* -------------------------------------------------------------------------- */\n/* FETCH */\n/* -------------------------------------------------------------------------- */\n\nfunction* fetchProtocolsList(action) {\n const { operatorId: filterOperatorId, organizationId: filterOrganizationId } = action.payload;\n const { operatorId, organizationId } = yield select(authSelectors.getAuthUserMembershipFilters, {\n filterOperatorId,\n filterOrganizationId\n });\n getProtocolsListService(\n { operatorId, organizationId },\n {\n successAction: (response) => {\n const resultData = response.data.map((result) => camelcaseKeys(result));\n const {\n entities: { protocols },\n result\n } = normalize(resultData, schemas.protocols);\n store.dispatch(\n actions.completeFetchingProtocols(protocols, result, operatorId, organizationId)\n );\n },\n errorAction: (error) => {\n store.dispatch(actions.failFetchingProtocols(error));\n }\n }\n );\n}\n\nexport function* watchFetchProtocolsList() {\n yield takeEvery(types.PROTOCOLS_FETCH_STARTED, fetchProtocolsList);\n}\n\n/* -------------------------------------------------------------------------- */\n/* PARTIAL FETCH LIST */\n/* -------------------------------------------------------------------------- */\n\nfunction* partialFetchProtocolsList(action) {\n const {\n entityTypeId,\n operatorId: filterOperatorId,\n organizationId: filterOrganizationId\n } = action.payload;\n const date = yield select(entitySelectors.getUserUpdateByEntityDate, entityTypeId);\n const { operatorId, organizationId } = yield select(authSelectors.getAuthUserMembershipFilters, {\n filterOperatorId,\n filterOrganizationId\n });\n\n getProtocolsListService(\n { userFetchDate: date, operatorId, organizationId },\n {\n successAction: (response) => {\n const resultData = response.data.map((result) => camelcaseKeys(result));\n const {\n entities: { protocols },\n result\n } = normalize(resultData, schemas.protocols);\n store.dispatch(\n actions.completePartialFetchingProtocols(protocols, result, operatorId, organizationId)\n );\n },\n errorAction: (error) => {\n store.dispatch(actions.failPartialFetchingProtocols(error));\n }\n }\n );\n}\n\nexport function* watchPartialFetchProtocolsList() {\n yield takeEvery(types.PROTOCOLS_PARTIAL_FETCH_STARTED, partialFetchProtocolsList);\n}\n/* -------------------------------------------------------------------------- */\n/* ADD */\n/* -------------------------------------------------------------------------- */\n\nfunction* addProtocol(action) {\n const protocol = action.payload;\n saveProtocolService(\n {\n ...protocol,\n protocolId: null\n },\n {\n successAction: (response) => {\n const addedProtocol = camelcaseKeys(response?.data[0]);\n console.log('addedProtocol', addedProtocol);\n store.dispatch(actions.completeAddingProtocol(protocol.protocolId, addedProtocol));\n },\n errorAction: (error) => {\n store.dispatch(actions.failAddingProtocol(protocol.protocolId, error));\n }\n }\n );\n}\n\nexport function* watchAddProtocolStarted() {\n yield takeEvery(types.PROTOCOLS_ADD_STARTED, addProtocol);\n}\n\n/* -------------------------------------------------------------------------- */\n/* EDIT */\n/* -------------------------------------------------------------------------- */\n\nfunction* editProtocol(action) {\n const protocol = action.payload;\n const oldProtocol = yield select((state) => selectors.getProtocol(state, protocol.protocolId));\n saveProtocolService(\n {\n ...protocol\n },\n {\n successAction: (response) => {\n const editedProtocol = camelcaseKeys(response?.data[0]);\n store.dispatch(actions.completeEditingProtocol(editedProtocol));\n },\n errorAction: (error) => {\n store.dispatch(actions.failEditingProtocol(oldProtocol, error));\n }\n }\n );\n}\n\nexport function* watchEditProtocolStarted() {\n yield takeEvery(types.PROTOCOLS_EDIT_STARTED, editProtocol);\n}\n\n/* -------------------------------------------------------------------------- */\n/* REMOVE */\n/* -------------------------------------------------------------------------- */\nfunction* removeProtocol(action) {\n const { protocolId } = action.payload;\n const protocol = yield select((state) => selectors.getProtocol(state, protocolId));\n deleteProtocolService(\n { ...protocol },\n {\n successAction: (response) => {\n store.dispatch(actions.completeRemovingProtocol(protocolId));\n },\n errorAction: (error) => {\n store.dispatch(actions.failRemovingProtocol(protocolId, error));\n }\n }\n );\n}\n\nexport function* watchRemoveProtocolStarted() {\n yield takeEvery(types.PROTOCOLS_REMOVE_STARTED, removeProtocol);\n}\n","import { all, fork } from 'redux-saga/effects';\nimport {\n watchAddAgentsStarted,\n watchAgentFetchStarted,\n watchEditAgentsStarted,\n watchFetchAgentsList,\n watchPartialFetchAgentsList,\n watchRemoveAgentStarted\n} from '../../views/screens/Agents/sagas';\nimport {\n watchAddDivisionsStarted,\n watchEditDivisionsStarted,\n watchFetchDivisionsList,\n watchPartialFetchDivisionsList,\n watchRemoveDivisionStarted\n} from '../../views/screens/Divisions/sagas';\nimport { watchFetchEntitiesList, watchUpdateEntities } from '../../views/screens/Entities/sagas';\nimport {\n watchAddGeofencesStarted,\n watchAssignGeofenceUnit,\n watchEditGeofenceAssignation,\n watchEditGeofencesStarted,\n watchFetchGeofencesList,\n watchPartialFetchGeofencesList,\n watchRemoveAllAssignmentsByGeofences,\n watchRemoveAllAssignmentsByUnits,\n watchRemoveGeofenceAssignation,\n watchRemoveGeofenceStarted\n} from '../../views/screens/Geofences/sagas';\nimport {\n watchAddModulesStarted,\n watchEditModulesStarted,\n watchFetchModulesList,\n watchModuleFetchStarted,\n watchPartialFetchModulesList,\n watchRemoveModuleStarted\n} from '../../views/screens/Modules/sagas';\nimport {\n watchAddOperatorsStarted,\n watchEditOperatorStandardPricesStarted,\n watchEditOperatorsStarted,\n watchFetchOperatorsList,\n watchPartialFetchOperatorsList,\n watchRemoveOperatorStarted\n} from '../../views/screens/Operators/sagas';\nimport {\n watchAddOrganizationDowntimeReasonsStarted,\n watchAddOrganizationsStarted,\n watchCodeAssignStarted,\n watchEditOrganizationDowntimeReasonsStarted,\n watchEditOrganizationsStarted,\n watchFetchOrganizationsList,\n watchPartialFetchOrganizationsList,\n watchRegistrationCodeStarted,\n watchRemoveOrganizationDowntimeReasonsStarted,\n watchRemoveOrganizationStarted,\n watchSaveConsolidableEventsStarted\n} from '../../views/screens/Organizations/sagas';\nimport {\n watchAddServiceClassesStarted,\n watchEditServiceClassesStarted,\n watchFetchServiceClassesList,\n watchRemoveServiceClassStarted,\n watchServiceClassFetchStarted\n} from '../../views/screens/ServiceClasses/sagas';\nimport {\n watchAddSubdivisionsStarted,\n watchEditSubdivisionsStarted,\n watchFetchSubdivisionsList,\n watchPartialFetchSubdivisionsList,\n watchRemoveSubdivisionStarted\n} from '../../views/screens/Subdivisions/sagas';\nimport {\n watchAcknowledgeUnitEvent,\n watchActiveUnits,\n watchAddUnitsStarted,\n watchAssignDriverUnitsStarted,\n watchCreateSharedLinkUnitStarted,\n watchEditUnitsStarted,\n watchEndUnitDowntimeStarted,\n watchExecuteDeviceAction,\n watchFetchUnitHistoricalPositionsStarted,\n watchFetchUnitInformationStarted,\n watchFetchUnitsList,\n watchFetchUnitsLiveStatusList,\n watchPartialFetchUnitsList,\n watchRemoveUnitStarted,\n watchStartUnitDowntimeStarted,\n watchUpdateSim\n} from '../../views/screens/Units/sagas';\nimport {\n watchAddSchedulesStarted,\n watchAddShiftStarted,\n watchEditSchedulesShiftStarted,\n watchEditSchedulesStarted,\n watchFetchSchedulesList,\n watchPartialFetchSchedulesList,\n watchRemoveScheduleStarted\n} from './../../views/screens/Schedules/sagas';\nimport {\n watchChangeProductStarted,\n watchFetchUserBookmarksStarted,\n watchForceRefreshToken,\n watchLoginStarted,\n watchRefreshTokenStarted,\n watchUpdateMapProfileSettingsStarted,\n watchUpdateProfileGeneralInformationStarted,\n watchUpdateProfileHomeScreenStarted,\n watchUpdateProfileMapOptionsStarted,\n watchUpdateProfilePasswordStarted,\n watchUpdateUserBookmarkssStarted,\n watchUserInformationRequest\n} from './auth';\n\nimport {\n watchAddRoutesStarted,\n watchCopyRouteStarted,\n watchEditRoutesStarted,\n watchFetchRoutesList,\n watchPartialFetchRoutesList,\n watchRemoveRouteStarted,\n watchRemoveRoutesStarted\n} from '../../views/screens/Routes/sagas/routes';\n\nimport {\n watchAddContactsStarted,\n watchEditContactsStarted,\n watchFetchContactsList,\n watchRemoveContactsStarted\n} from 'views/screens/Contacts/sagas';\nimport { watchFetchRouteCheckpointsList } from '../../views/screens/Routes/sagas/routeCheckpoints';\nimport {\n watchEditAssignmentsStarted,\n watchFetchAssignmentsList,\n watchImportRouteAssignments,\n watchRemoveAssignmentStarted\n} from '../../views/screens/Routes/sagas/routesAssignments';\nimport {\n watchAddCommentsStarted,\n watchEditCommentsStarted,\n watchFetchCommentsList,\n watchRemoveCommentStarted\n} from '../../views/screens/Routes/sagas/routesComments';\nimport {\n watchAsignRouteExecutionUnit,\n watchCancelRouteExecution,\n watchChangeToAlternateRouteStarted,\n watchCompleteRouteExecution,\n watchEditRouteExecutionStarted,\n watchFetchRoutesExecutions,\n watchFinalizeRouteExecution,\n watchManualTransitRouteExecution,\n watchPauseRouteExecution,\n watchRemoveRouteExecution,\n watchShareRouteExecution,\n watchStartRouteExecution\n} from '../../views/screens/Routes/sagas/routesExecutions';\nimport { watchFetchRoutesReport } from '../../views/screens/Routes/sagas/routesReport';\nimport {\n watchAddMonitoringUsersStarted,\n watchAssignScheduleUsersStarted,\n watchEditMonitoringUsersStarted,\n watchFetchMonitoringUsersList,\n watchPartialFetchMonitoringUsersList,\n watchRemoveMonitoringUserStarted,\n watchSaveMonitoringUserRolesAndPermissionsStarted,\n watchUnassignScheduleUsersStarted,\n watchUpdateMonitoringUserPasswordStarted\n} from '../../views/screens/Users/sagas';\nimport {\n watchAddWorkplansStarted,\n watchAssignDestinationGeofenceStarted,\n watchAssignOriginGeofenceStarted,\n watchAssignWorkGeofenceStarted,\n watchCopyWorkplanStarted,\n watchEditWorkplansStarted,\n watchFetchWorkplanLocationsList,\n watchFetchWorkplansList,\n watchPartialFetchWorkplansList,\n watchRemoveWorkplanStarted\n} from '../../views/screens/Workplans/sagas/workplans';\nimport {\n watchEditWorkplanAssignmentByDateTimeStarted,\n watchEditWorkplanAssignmentByScheduleStarted,\n watchFetchWorkplansAssignmentsList,\n watchRemoveWorkplanAssignmentStarted\n} from '../../views/screens/Workplans/sagas/workplansAssignments';\nimport {\n watchAddWorkplansCommentStarted,\n watchFetchWorkplansCommentsList,\n watchRemoveWorkplansCommentStarted\n} from '../../views/screens/Workplans/sagas/workplansComments';\nimport {\n watchAddWorkplanExecutionLocationsStarted,\n watchEditWorkplanExecutionLocationsStarted,\n watchRemoveWorkplanExecutionLocationStarted\n} from '../../views/screens/Workplans/sagas/workplansExecutionLocations';\nimport {\n watchAsignWorkplanExecutionUnit,\n watchCancelWorkplanExecution,\n watchChangeWorkplanExecutionUnit,\n watchFetchWorkplanExecution,\n watchFetchWorkplansExecutions,\n watchFinalizeWorkplanExecution,\n watchManualTransitWorkplanExecution\n} from '../../views/screens/Workplans/sagas/workplansExecutions';\nimport { watchFetchWorkplansReport } from '../../views/screens/Workplans/sagas/workplansReport';\nimport {\n watchFetchWorkplansAllVisits,\n watchFetchWorkplansVisits\n} from '../../views/screens/Workplans/sagas/workplansVisits';\nimport { watchFetchConfigurationsList } from './configurations';\nimport { watchFetchModelsList } from './models';\nimport { watchFetchBrandsList } from './static-catalogs/brands';\n\nimport {\n watchFetchCountriesList,\n watchFetchCurrenciesList,\n watchFetchInsuranceAgentsList,\n watchFetchInsuranceCompaniesList,\n watchFetchLocationClassesList,\n watchFetchPaymentMethodsList,\n watchFetchProvidersList,\n watchFetchSensorBrandsList,\n watchFetchSensorMeasuresList,\n watchFetchSensorModelsList,\n watchFetchTimeZonesList,\n watchFetchVehicleMakersList,\n watchFetchVehicleModelsList\n} from './static-catalogs';\n\nimport {\n watchAddSimsStarted,\n watchEditSimsStarted,\n watchFetchSimsList,\n watchPartialFetchSimsList,\n watchRemoveSimStarted\n} from '../../views/screens/SIMs/sagas';\n\nimport {\n watchAddVehiclesStarted,\n watchEditVehiclesStarted,\n watchFetchVehiclesList,\n watchLicenseCheckStarted,\n watchPartialFetchVehiclesList,\n watchRemoveVehicleStarted\n} from '../../views/screens/Vehicles/sagas';\n\nimport {\n watchAddAssetsStarted,\n watchEditAssetsStarted,\n watchFetchAssetsList,\n watchIdentifierCheckStarted,\n watchPartialFetchAssetsList,\n watchRemoveAssetStarted,\n watchSecuritySealCodeCheckStarted\n} from '../../views/screens/Assets/sagas';\n\nimport {\n watchAddSensorsStarted,\n watchEditSensorsStarted,\n watchFetchSensorsList,\n watchPartialFetchSensorsList,\n watchRemoveSensorStarted,\n watchSensorCalibrationFinalizeStarted,\n watchSensorCalibrationStartStarted,\n watchSensorIdentifierCheckStarted\n} from '../../views/screens/Sensors/sagas';\n\nimport {\n watchAddLocationsStarted,\n watchEditLocationsStarted,\n watchFetchLocationsList,\n watchImportLocationsStarted,\n watchPartialFetchLocationsList,\n watchRemoveLocationStarted\n} from '../../views/screens/Locations/sagas';\n\nimport {\n watchAddDriversStarted,\n watchAssignDriversToUnits,\n watchAssignSensor,\n watchEditDriversStarted,\n watchFetchDriversList,\n watchPartialFetchDriversList,\n watchRemoveDriverStarted,\n watchStartImportDriverAndUnit,\n watchUnassignSensor\n} from '../../views/screens/Drivers/sagas';\n\nimport {\n watchAddJobsBacklogStarted,\n watchAssignFilesJobsBacklogStarted,\n watchAssignFormsJobsBacklogStarted,\n watchAssignUsersJobsBacklogStarted,\n watchChangeDueDateJobsBacklogStarted,\n watchChangeMinMaxTimeJobsBacklogStarted,\n watchChangePriorityJobsBacklogStarted,\n watchChangeStartDateJobsBacklogStarted,\n watchChangeStatusJobsBacklogStarted,\n watchChangeStatusJobsBoardStarted,\n watchEditJobsBacklogStarted,\n watchFetchJob,\n watchFetchJobsBacklogList,\n watchFetchJobsBoardList,\n watchFetchJobsReportList,\n watchImportJobsStarted,\n watchPartialFetchJobsBacklogList,\n watchRemoveJobsBacklogStarted,\n watchRescheduleJobsStarted\n} from '../../views/screens/Jobs/sagas';\n\nimport {\n watchAddEntitiesToGroup,\n watchAddGroupStarted,\n watchAddGroupWithEntitiesStarted,\n watchEditConfigurationNotificationsStarted,\n watchEditGroupsStarted,\n watchEditUserProfileInGroup,\n watchFetchAllEntitiesInGroup,\n watchFetchGroupsList,\n watchLeaveGroupStarted,\n watchPartialFetchGroupsList,\n watchRemoveEntitiesFromGroup,\n watchRemoveGroupStarted\n} from '../../views/screens/Groups/sagas';\n\nimport {\n watchAcceptDenyQuotationCustomerStarted,\n watchAddQuotationsStarted,\n watchApproveDenyQuotationManagementStarted,\n watchCheckQuotationSchedulingStarted,\n watchCopyQuotationsStarted,\n watchEditQuotationsStarted,\n watchFetchQuotationsList,\n watchPartialFetchQuotationsList,\n watchRemoveQuotationStarted,\n watchScheduleQuotationsStarted,\n watchSetTimesupQuotationStarted\n} from '../../views/screens/Quotations/sagas';\n\nimport {\n watchAddOrganizationContractsStarted,\n watchEditOrganizationContractsStarted,\n watchFetchOrganizationContractsList,\n watchPartialFetchOrganizationContractsList,\n watchRemoveOrganizationContractStarted\n} from '../../views/screens/Contracts/sagas';\n\nimport {\n watchAddContractTemplatesStarted,\n watchEditContractTemplatesStarted,\n watchFetchContractTemplatesList,\n watchPartialFetchContractTemplatesList,\n watchRemoveContractTemplateStarted\n} from '../../views/screens/ContractTemplates/sagas';\n\nimport {\n watchAddCustomersStarted,\n watchEditCustomersStarted,\n watchFetchCustomersList,\n watchPartialFetchCustomersList,\n watchRemoveCustomerStarted\n} from '../../views/screens/Customers/sagas';\n\nimport {\n watchAddOfficesStarted,\n watchEditOfficesStarted,\n watchFetchOfficesList,\n watchPartialFetchOfficesList,\n watchRemoveOfficeStarted\n} from '../../views/screens/Offices/sagas';\n\nimport {\n watchAddExternalFormsStarted,\n watchAddFormsStarted,\n watchEditExternalFormsStarted,\n watchEditFormsStarted,\n watchFetchFormsList,\n watchFetchQuestions,\n watchFetchSections,\n watchPartialFetchFormsList,\n watchRemoveFormStarted,\n watchResponseAddedStarted,\n watchResponseFetchStarted,\n watchResponseResendStarted\n} from '../../views/screens/Forms/sagas';\n\nimport {\n watchAddCategoriesStarted,\n watchEditCategoriesStarted,\n watchFetchCategoriesList,\n watchPartialFetchCategoriesList,\n watchRemoveCategoryStarted\n} from '../../views/screens/vehicleMaintenance/sagas/catalogs/categories';\n\nimport {\n watchAddMaintenanceLinesStarted,\n watchCopyMaintenanceLineStarted,\n watchEditMaintenanceLinesStarted,\n watchFetchMaintenanceLinesList,\n watchPartialFetchMaintenanceLinesList,\n watchRemoveMaintenanceLineStarted\n} from '../../views/screens/MaintenanceLines/sagas';\n\nimport {\n watchAddNoticesStarted,\n watchEditNoticesStarted,\n watchFetchNoticesList,\n watchPartialFetchNoticesList,\n watchRemoveNoticeStarted,\n watchRenewNoticesStarted\n} from '../../views/screens/vehicleMaintenance/sagas/preventiveNotices/noticesByOdometer';\n\nimport {\n watchAddNoticesStarted as watchAddNoticesStarted2,\n watchEditNoticesStarted as watchEditNoticesStarted2,\n watchFetchNoticesList as watchFetchNoticesList2,\n watchPartialFetchNoticesList as watchPartialFetchNoticesList2,\n watchRemoveNoticeStarted as watchRemoveNoticeStarted2,\n watchRenewNoticesStarted as watchRenewNoticesStarted2\n} from '../../views/screens/vehicleMaintenance/sagas/preventiveNotices/noticesByDate';\n\nimport {\n watchAddNoticesStarted as watchAddNoticesStarted3,\n watchEditNoticesStarted as watchEditNoticesStarted3,\n watchFetchNoticesList as watchFetchNoticesList3,\n watchPartialFetchNoticesList as watchPartialFetchNoticesList3,\n watchRemoveNoticeStarted as watchRemoveNoticeStarted3,\n watchRenewNoticesStarted as watchRenewNoticesStarted3\n} from '../../views/screens/vehicleMaintenance/sagas/preventiveNotices/noticesByHourmeter';\n\nimport {\n watchAddProvidersStarted,\n watchEditProvidersStarted,\n watchFetchProvidersList as watchFetchProvidersList2,\n watchPartialFetchProvidersList,\n watchRemoveProviderStarted\n} from '../../views/screens/vehicleMaintenance/sagas/catalogs/providers';\n\nimport {\n watchAddWorkmanshipsStarted,\n watchEditWorkmanshipsStarted,\n watchFetchWorkmanshipsList,\n watchPartialFetchWorkmanshipsList,\n watchRemoveWorkmanshipStarted\n} from '../../views/screens/vehicleMaintenance/sagas/catalogs/workmanship';\n\nimport {\n watchAddSparePartsStarted,\n watchEditSparePartsStarted,\n watchFetchSparePartsList,\n watchPartialFetchSparePartsList,\n watchRemoveSparePartStarted\n} from '../../views/screens/vehicleMaintenance/sagas/catalogs/spareParts';\n\nimport {\n watchFetchProtocolsList,\n watchPartialFetchProtocolsList,\n watchAddProtocolStarted,\n watchEditProtocolStarted,\n watchRemoveProtocolStarted\n} from '../../views/screens/Protocols/sagas';\n\nfunction* mainSaga() {\n yield all([\n //Login\n fork(watchLoginStarted),\n fork(watchUserInformationRequest),\n fork(watchRefreshTokenStarted),\n\n //UserSettings\n fork(watchFetchUserBookmarksStarted),\n fork(watchUpdateUserBookmarkssStarted),\n\n //Profile\n fork(watchUpdateProfileGeneralInformationStarted),\n fork(watchUpdateProfileMapOptionsStarted),\n fork(watchUpdateProfilePasswordStarted),\n fork(watchForceRefreshToken),\n fork(watchUpdateMapProfileSettingsStarted),\n fork(watchUpdateProfileHomeScreenStarted),\n fork(watchChangeProductStarted),\n\n //Entities\n fork(watchFetchEntitiesList),\n fork(watchUpdateEntities),\n\n //Operators\n fork(watchFetchOperatorsList),\n fork(watchPartialFetchOperatorsList),\n fork(watchAddOperatorsStarted),\n fork(watchEditOperatorsStarted),\n fork(watchEditOperatorStandardPricesStarted),\n fork(watchRemoveOperatorStarted),\n\n //Organizations\n fork(watchFetchOrganizationsList),\n fork(watchPartialFetchOrganizationsList),\n fork(watchAddOrganizationsStarted),\n fork(watchEditOrganizationsStarted),\n fork(watchRemoveOrganizationStarted),\n fork(watchRegistrationCodeStarted),\n fork(watchCodeAssignStarted),\n fork(watchSaveConsolidableEventsStarted),\n fork(watchAddOrganizationDowntimeReasonsStarted),\n fork(watchEditOrganizationDowntimeReasonsStarted),\n fork(watchRemoveOrganizationDowntimeReasonsStarted),\n\n //Divisions\n fork(watchFetchDivisionsList),\n fork(watchPartialFetchDivisionsList),\n fork(watchAddDivisionsStarted),\n fork(watchEditDivisionsStarted),\n fork(watchRemoveDivisionStarted),\n\n //Subdivisions\n fork(watchFetchSubdivisionsList),\n fork(watchPartialFetchSubdivisionsList),\n fork(watchAddSubdivisionsStarted),\n fork(watchEditSubdivisionsStarted),\n fork(watchRemoveSubdivisionStarted),\n\n //Units\n fork(watchFetchUnitsList),\n fork(watchPartialFetchUnitsList),\n fork(watchFetchUnitsLiveStatusList),\n fork(watchFetchUnitInformationStarted),\n fork(watchAddUnitsStarted),\n fork(watchEditUnitsStarted),\n fork(watchRemoveUnitStarted),\n fork(watchFetchUnitHistoricalPositionsStarted),\n fork(watchExecuteDeviceAction),\n fork(watchActiveUnits),\n fork(watchAcknowledgeUnitEvent),\n fork(watchAssignDriverUnitsStarted),\n fork(watchCreateSharedLinkUnitStarted),\n fork(watchEndUnitDowntimeStarted),\n fork(watchStartUnitDowntimeStarted),\n // fork(watchUpdateDevice),\n fork(watchUpdateSim),\n\n //Geofences\n fork(watchFetchGeofencesList),\n fork(watchPartialFetchGeofencesList),\n fork(watchAddGeofencesStarted),\n fork(watchEditGeofencesStarted),\n fork(watchRemoveGeofenceStarted),\n fork(watchAssignGeofenceUnit),\n fork(watchRemoveGeofenceAssignation),\n fork(watchRemoveAllAssignmentsByGeofences),\n fork(watchRemoveAllAssignmentsByUnits),\n fork(watchEditGeofenceAssignation),\n\n //Locations\n fork(watchFetchLocationsList),\n fork(watchPartialFetchLocationsList),\n fork(watchAddLocationsStarted),\n fork(watchEditLocationsStarted),\n fork(watchRemoveLocationStarted),\n fork(watchImportLocationsStarted),\n\n //Drivers\n fork(watchFetchDriversList),\n fork(watchPartialFetchDriversList),\n fork(watchAddDriversStarted),\n fork(watchEditDriversStarted),\n fork(watchRemoveDriverStarted),\n fork(watchAssignSensor),\n fork(watchUnassignSensor),\n fork(watchStartImportDriverAndUnit),\n fork(watchAssignDriversToUnits),\n\n //JobsBacklog\n fork(watchFetchJobsBacklogList),\n fork(watchFetchJob),\n fork(watchAddJobsBacklogStarted),\n fork(watchEditJobsBacklogStarted),\n fork(watchPartialFetchJobsBacklogList),\n fork(watchAssignFilesJobsBacklogStarted),\n fork(watchAssignFormsJobsBacklogStarted),\n fork(watchAssignUsersJobsBacklogStarted),\n fork(watchChangeDueDateJobsBacklogStarted),\n fork(watchChangeMinMaxTimeJobsBacklogStarted),\n fork(watchChangePriorityJobsBacklogStarted),\n fork(watchChangeStartDateJobsBacklogStarted),\n fork(watchChangeStatusJobsBacklogStarted),\n fork(watchRemoveJobsBacklogStarted),\n fork(watchRescheduleJobsStarted),\n fork(watchFetchJobsBoardList),\n fork(watchChangeStatusJobsBoardStarted),\n fork(watchFetchJobsReportList),\n fork(watchImportJobsStarted),\n\n //Groups\n fork(watchFetchGroupsList),\n fork(watchPartialFetchGroupsList),\n fork(watchFetchAllEntitiesInGroup),\n fork(watchEditGroupsStarted),\n fork(watchEditConfigurationNotificationsStarted),\n fork(watchRemoveEntitiesFromGroup),\n fork(watchAddEntitiesToGroup),\n fork(watchEditUserProfileInGroup),\n fork(watchAddGroupStarted),\n fork(watchAddGroupWithEntitiesStarted),\n fork(watchRemoveGroupStarted),\n fork(watchLeaveGroupStarted),\n\n //Quotations\n fork(watchFetchQuotationsList),\n fork(watchPartialFetchQuotationsList),\n fork(watchAddQuotationsStarted),\n fork(watchEditQuotationsStarted),\n fork(watchRemoveQuotationStarted),\n fork(watchCheckQuotationSchedulingStarted),\n fork(watchScheduleQuotationsStarted),\n fork(watchSetTimesupQuotationStarted),\n fork(watchApproveDenyQuotationManagementStarted),\n fork(watchAcceptDenyQuotationCustomerStarted),\n fork(watchCopyQuotationsStarted),\n\n //Organization Contracts\n fork(watchFetchOrganizationContractsList),\n fork(watchPartialFetchOrganizationContractsList),\n fork(watchAddOrganizationContractsStarted),\n fork(watchEditOrganizationContractsStarted),\n fork(watchRemoveOrganizationContractStarted),\n\n //Contract Templates\n fork(watchFetchContractTemplatesList),\n fork(watchPartialFetchContractTemplatesList),\n fork(watchAddContractTemplatesStarted),\n fork(watchEditContractTemplatesStarted),\n fork(watchRemoveContractTemplateStarted),\n\n //Customers\n fork(watchFetchCustomersList),\n fork(watchPartialFetchCustomersList),\n fork(watchAddCustomersStarted),\n fork(watchEditCustomersStarted),\n fork(watchRemoveCustomerStarted),\n\n //Offices\n fork(watchFetchOfficesList),\n fork(watchPartialFetchOfficesList),\n fork(watchAddOfficesStarted),\n fork(watchEditOfficesStarted),\n fork(watchRemoveOfficeStarted),\n\n //Categories\n fork(watchFetchCategoriesList),\n fork(watchPartialFetchCategoriesList),\n fork(watchAddCategoriesStarted),\n fork(watchEditCategoriesStarted),\n fork(watchRemoveCategoryStarted),\n\n //MaintenanceLines\n fork(watchFetchMaintenanceLinesList),\n fork(watchPartialFetchMaintenanceLinesList),\n fork(watchAddMaintenanceLinesStarted),\n fork(watchEditMaintenanceLinesStarted),\n fork(watchRemoveMaintenanceLineStarted),\n fork(watchCopyMaintenanceLineStarted),\n\n //Notices by Odometer\n fork(watchFetchNoticesList),\n fork(watchPartialFetchNoticesList),\n fork(watchAddNoticesStarted),\n fork(watchEditNoticesStarted),\n fork(watchRemoveNoticeStarted),\n fork(watchRenewNoticesStarted),\n\n //Notices by Date\n fork(watchFetchNoticesList2),\n fork(watchPartialFetchNoticesList2),\n fork(watchAddNoticesStarted2),\n fork(watchEditNoticesStarted2),\n fork(watchRemoveNoticeStarted2),\n fork(watchRenewNoticesStarted2),\n\n //Notices by hour meter\n fork(watchFetchNoticesList3),\n fork(watchPartialFetchNoticesList3),\n fork(watchAddNoticesStarted3),\n fork(watchEditNoticesStarted3),\n fork(watchRemoveNoticeStarted3),\n fork(watchRenewNoticesStarted3),\n\n //Provider\n fork(watchFetchProvidersList2),\n fork(watchPartialFetchProvidersList),\n fork(watchAddProvidersStarted),\n fork(watchEditProvidersStarted),\n fork(watchRemoveProviderStarted),\n\n //SpareParts\n fork(watchFetchSparePartsList),\n fork(watchPartialFetchSparePartsList),\n fork(watchAddSparePartsStarted),\n fork(watchEditSparePartsStarted),\n fork(watchRemoveSparePartStarted),\n\n //Workshops\n fork(watchFetchWorkmanshipsList),\n fork(watchPartialFetchWorkmanshipsList),\n fork(watchAddWorkmanshipsStarted),\n fork(watchEditWorkmanshipsStarted),\n fork(watchRemoveWorkmanshipStarted),\n\n //Routes\n fork(watchFetchRoutesList),\n fork(watchAddRoutesStarted),\n fork(watchEditRoutesStarted),\n fork(watchPartialFetchRoutesList),\n fork(watchRemoveRouteStarted),\n fork(watchRemoveRoutesStarted),\n fork(watchCopyRouteStarted),\n\n //Routes Checkponts\n fork(watchFetchRouteCheckpointsList),\n\n //Routes Executions\n fork(watchFetchRoutesExecutions),\n fork(watchCancelRouteExecution),\n fork(watchFinalizeRouteExecution),\n fork(watchCompleteRouteExecution),\n fork(watchRemoveRouteExecution),\n fork(watchPauseRouteExecution),\n fork(watchStartRouteExecution),\n fork(watchManualTransitRouteExecution),\n fork(watchShareRouteExecution),\n fork(watchAsignRouteExecutionUnit),\n fork(watchEditRouteExecutionStarted),\n fork(watchChangeToAlternateRouteStarted),\n\n //Routes Assignments\n fork(watchFetchAssignmentsList),\n fork(watchEditAssignmentsStarted),\n fork(watchRemoveAssignmentStarted),\n fork(watchImportRouteAssignments),\n\n //Routes Comments\n fork(watchFetchCommentsList),\n fork(watchAddCommentsStarted),\n fork(watchEditCommentsStarted),\n fork(watchRemoveCommentStarted),\n\n //Routes Report\n fork(watchFetchRoutesReport),\n\n //Schedules\n fork(watchFetchSchedulesList),\n fork(watchPartialFetchSchedulesList),\n fork(watchAddSchedulesStarted),\n fork(watchEditSchedulesStarted),\n fork(watchRemoveScheduleStarted),\n fork(watchEditSchedulesShiftStarted),\n fork(watchAddShiftStarted),\n\n //Service classes\n fork(watchFetchServiceClassesList),\n fork(watchAddServiceClassesStarted),\n fork(watchEditServiceClassesStarted),\n fork(watchServiceClassFetchStarted),\n fork(watchRemoveServiceClassStarted),\n\n //Agents\n fork(watchFetchAgentsList),\n fork(watchPartialFetchAgentsList),\n fork(watchAddAgentsStarted),\n fork(watchEditAgentsStarted),\n fork(watchAgentFetchStarted),\n fork(watchRemoveAgentStarted),\n\n //Modules\n fork(watchFetchModulesList),\n fork(watchPartialFetchModulesList),\n fork(watchAddModulesStarted),\n fork(watchEditModulesStarted),\n fork(watchModuleFetchStarted),\n fork(watchRemoveModuleStarted),\n\n //Brands\n fork(watchFetchBrandsList),\n\n //Workplans\n fork(watchFetchWorkplansList),\n fork(watchPartialFetchWorkplansList),\n fork(watchFetchWorkplanLocationsList),\n fork(watchAddWorkplansStarted),\n fork(watchEditWorkplansStarted),\n fork(watchRemoveWorkplanStarted),\n fork(watchCopyWorkplanStarted),\n fork(watchAssignOriginGeofenceStarted),\n fork(watchAssignWorkGeofenceStarted),\n fork(watchAssignDestinationGeofenceStarted),\n\n //Workplans Executions\n fork(watchFetchWorkplansExecutions),\n fork(watchFetchWorkplanExecution),\n fork(watchCancelWorkplanExecution),\n fork(watchFinalizeWorkplanExecution),\n fork(watchManualTransitWorkplanExecution),\n fork(watchChangeWorkplanExecutionUnit),\n fork(watchAsignWorkplanExecutionUnit),\n\n //Workplan Execution Locations\n fork(watchAddWorkplanExecutionLocationsStarted),\n fork(watchEditWorkplanExecutionLocationsStarted),\n fork(watchRemoveWorkplanExecutionLocationStarted),\n\n //Workplan Comments\n fork(watchFetchWorkplansCommentsList),\n fork(watchAddWorkplansCommentStarted),\n fork(watchRemoveWorkplansCommentStarted),\n\n //Workplan Assignments\n fork(watchFetchWorkplansAssignmentsList),\n fork(watchEditWorkplanAssignmentByScheduleStarted),\n fork(watchEditWorkplanAssignmentByDateTimeStarted),\n fork(watchRemoveWorkplanAssignmentStarted),\n\n //Workplans Visits\n fork(watchFetchWorkplansVisits),\n fork(watchFetchWorkplansAllVisits),\n\n //Workplans Report\n fork(watchFetchWorkplansReport),\n\n //Models\n fork(watchFetchModelsList),\n\n //Configurations\n fork(watchFetchConfigurationsList),\n\n //Contacts\n fork(watchFetchContactsList),\n fork(watchAddContactsStarted),\n fork(watchEditContactsStarted),\n fork(watchRemoveContactsStarted),\n\n //Monitoring Users\n fork(watchFetchMonitoringUsersList),\n fork(watchPartialFetchMonitoringUsersList),\n fork(watchAddMonitoringUsersStarted),\n fork(watchEditMonitoringUsersStarted),\n fork(watchRemoveMonitoringUserStarted),\n fork(watchUpdateMonitoringUserPasswordStarted),\n fork(watchSaveMonitoringUserRolesAndPermissionsStarted),\n fork(watchAssignScheduleUsersStarted),\n fork(watchUnassignScheduleUsersStarted),\n\n //Static Catalogs\n fork(watchFetchCurrenciesList),\n fork(watchFetchPaymentMethodsList),\n fork(watchFetchTimeZonesList),\n fork(watchFetchProvidersList),\n fork(watchFetchLocationClassesList),\n fork(watchFetchSensorMeasuresList),\n\n //Sims\n fork(watchFetchSimsList),\n fork(watchPartialFetchSimsList),\n fork(watchAddSimsStarted),\n fork(watchEditSimsStarted),\n fork(watchRemoveSimStarted),\n\n //Countries\n fork(watchFetchCountriesList),\n\n //Vehicles\n fork(watchFetchVehiclesList),\n fork(watchPartialFetchVehiclesList),\n fork(watchAddVehiclesStarted),\n fork(watchEditVehiclesStarted),\n fork(watchLicenseCheckStarted),\n fork(watchFetchVehicleMakersList),\n fork(watchFetchVehicleModelsList),\n fork(watchFetchInsuranceCompaniesList),\n fork(watchFetchInsuranceAgentsList),\n fork(watchRemoveVehicleStarted),\n\n //Assets\n fork(watchFetchAssetsList),\n fork(watchPartialFetchAssetsList),\n fork(watchEditAssetsStarted),\n fork(watchIdentifierCheckStarted),\n fork(watchAddAssetsStarted),\n fork(watchRemoveAssetStarted),\n fork(watchSecuritySealCodeCheckStarted),\n\n //Sensors\n fork(watchFetchSensorsList),\n fork(watchPartialFetchSensorsList),\n fork(watchFetchSensorBrandsList),\n fork(watchFetchSensorModelsList),\n fork(watchSensorIdentifierCheckStarted),\n fork(watchAddSensorsStarted),\n fork(watchEditSensorsStarted),\n fork(watchRemoveSensorStarted),\n fork(watchSensorCalibrationStartStarted),\n fork(watchSensorCalibrationFinalizeStarted),\n\n //Forms\n fork(watchFetchFormsList),\n fork(watchPartialFetchFormsList),\n fork(watchFetchSections),\n fork(watchFetchQuestions),\n fork(watchAddFormsStarted),\n fork(watchEditFormsStarted),\n fork(watchAddExternalFormsStarted),\n fork(watchEditExternalFormsStarted),\n fork(watchRemoveFormStarted),\n fork(watchResponseAddedStarted),\n fork(watchResponseResendStarted),\n fork(watchResponseFetchStarted),\n\n //Protocols\n fork(watchFetchProtocolsList),\n fork(watchPartialFetchProtocolsList),\n fork(watchAddProtocolStarted),\n fork(watchEditProtocolStarted),\n fork(watchRemoveProtocolStarted)\n ]);\n}\n\nexport default mainSaga;\n","/* eslint-disable semi */\r\nimport { applyMiddleware, compose, createStore } from 'redux';\r\nimport { createInjectorsEnhancer } from 'redux-injectors';\r\nimport { persistReducer, persistStore } from 'redux-persist';\r\nimport autoMergeLevel2 from 'redux-persist/lib/stateReconciler/autoMergeLevel2';\r\nimport localforage from 'localforage';\r\nimport createSagaMiddleware from 'redux-saga';\r\nimport reducer from '../reducers';\r\nimport mainSaga from '../sagas';\r\n\r\nconst sagaMiddleware = createSagaMiddleware();\r\nconst persistConfig = {\r\n key: 'root',\r\n storage: localforage,\r\n stateReconciler: autoMergeLevel2,\r\n blacklist: [\r\n 'auth',\r\n 'entities',\r\n 'workplans',\r\n 'routes',\r\n 'locations',\r\n 'drivers',\r\n 'geofences',\r\n 'jobsBacklog',\r\n 'groups',\r\n 'jobsBoard',\r\n 'jobsReport',\r\n 'units'\r\n ],\r\n //auth is a nested blacklist, check auth reducer for blacklist details\r\n //blacklist no guarda\r\n //whitelist sĆ­ guarda\r\n // There is an issue in the source code of redux-persist (default setTimeout does not cleaning)\r\n timeout: null\r\n};\r\n\r\nconst persistedReducer = persistReducer(persistConfig, reducer);\r\n\r\nlet composeEnhancers = compose;\r\n\r\n// if (process.env.NODE_ENV === \"development\") {\r\ncomposeEnhancers =\r\n (window.__REDUX_DEVTOOLS_EXTENSION_COMPOSE__ &&\r\n window.__REDUX_DEVTOOLS_EXTENSION_COMPOSE__({\r\n trace: true,\r\n traceLimit: 15\r\n })) ||\r\n compose;\r\n// }\r\n\r\nconst runSaga = sagaMiddleware.run;\r\nconst injectEnhancer = createInjectorsEnhancer({\r\n createReducer: reducer,\r\n runSaga\r\n});\r\n\r\n// const store = composeEnhancers(applyMiddleware(sagaMiddleware))(createStore)(persistedReducer);\r\nconst store = createStore(\r\n persistedReducer,\r\n composeEnhancers(applyMiddleware(sagaMiddleware), injectEnhancer)\r\n);\r\n\r\nconst persistor = persistStore(store);\r\n\r\nsagaMiddleware.run(mainSaga);\r\n\r\nexport { persistor, store };\r\n","export const FORMS_FETCH_STARTED = 'FORMS_FETCH_STARTED';\nexport const FORMS_FETCH_COMPLETED = 'FORMS_FETCH_COMPLETED';\nexport const FORMS_FETCH_FAILED = 'FORMS_FETCH_FAILED';\n\nexport const FORMS_PARTIAL_FETCH_STARTED = 'FORMS_PARTIAL_FETCH_STARTED';\nexport const FORMS_PARTIAL_FETCH_COMPLETED = 'FORMS_PARTIAL_FETCH_COMPLETED';\nexport const FORMS_PARTIAL_FETCH_FAILED = 'FORMS_PARTIAL_FETCH_FAILED';\n\nexport const FORM_SECTIONS_FETCH_STARTED = 'FORM_SECTIONS_FETCH_STARTED';\nexport const FORM_SECTIONS_FETCH_COMPLETED = 'FORM_SECTIONS_FETCH_COMPLETED';\nexport const FORM_SECTIONS_FETCH_FAILED = 'FORM_SECTIONS_FETCH_FAILED';\n\nexport const FORM_QUESTIONS_FETCH_STARTED = 'FORM_QUESTIONS_FETCH_STARTED';\nexport const FORM_QUESTIONS_FETCH_COMPLETED = 'FORM_QUESTIONS_FETCH_COMPLETED';\nexport const FORM_QUESTIONS_FETCH_FAILED = 'FORM_QUESTIONS_FETCH_FAILED';\n\nexport const FORM_ADD_STARTED = 'FORM_ADD_STARTED';\nexport const FORM_ADD_COMPLETED = 'FORM_ADD_COMPLETED';\nexport const FORM_ADD_FAILED = 'FORM_ADD_FAILED';\n\nexport const FORM_SECTION_ADD_STARTED = 'FORM_SECTION_ADD_STARTED';\nexport const FORM_SECTION_ADD_COMPLETED = 'FORM_SECTION_ADD_COMPLETED';\nexport const FORM_SECTION_ADD_FAILED = 'FORM_SECTION_ADD_FAILED';\n\nexport const FORM_EDIT_STARTED = 'FORM_EDIT_STARTED';\nexport const FORM_EDIT_COMPLETED = 'FORM_EDIT_COMPLETED';\nexport const FORM_EDIT_FAILED = 'FORM_EDIT_FAILED';\n\nexport const FORM_EXTERNAL_ADD_STARTED = 'FORM_EXTERNAL_ADD_STARTED';\n\nexport const FORM_EXTERNAL_EDIT_STARTED = 'FORM_EXTERNAL_EDIT_STARTED';\n\nexport const FORM_REMOVE_STARTED = 'FORM_REMOVE_STARTED';\nexport const FORM_REMOVE_COMPLETED = 'FORM_REMOVE_COMPLETED';\nexport const FORM_REMOVE_FAILED = 'FORM_REMOVE_FAILED';\n\nexport const FORM_RESPONSE_SAVE_STARTED = 'FORM_RESPONSE_SAVE_STARTED';\nexport const FORM_RESPONSE_SAVE_COMPLETED = 'FORM_RESPONSE_SAVE_COMPLETED';\nexport const FORM_RESPONSE_SAVE_FAILED = 'FORM_RESPONSE_SAVE_FAILED';\n\nexport const FORM_SELECTED = 'FORM_SELECTED';\nexport const FORMS_ALL_SELECTED = 'FORMS_ALL_SELECTED';\nexport const FORM_DESELECTED = 'FORM_DESELECTED';\nexport const FORMS_ALL_DESELECTED = 'FORMS_ALL_DESELECTED';\nexport const FORMS_ALL_QUESTIONS_CLEARED = 'FORMS_ALL_QUESTIONS_CLEARED';\n\nexport const FORM_SECTION_ADDED = 'FORM_SECTION_ADDED';\nexport const FORM_SECTION_DELETED = 'FORM_SECTION_DELETED';\nexport const FORM_SECTION_MOVED = 'FORM_SECTION_MOVED';\nexport const FORM_SECTION_NAME_EDITED = 'FORM_SECTION_NAME_EDITED';\nexport const FORM_SECTION_COPIED = 'FORM_SECTION_COPIED';\nexport const FORM_SECTION_CHANGE_COLLAPSED = 'FORM_SECTION_CHANGE_COLLAPSED';\n\nexport const FORM_SECTIONS_SET = 'FORM_SECTIONS_SET';\n\nexport const FORM_ROW_ADDED = 'FORM_ROW_ADDED';\nexport const FORM_ROW_DELETED = 'FORM_ROW_DELETED';\nexport const FORM_ROW_MOVED = 'FORM_ROW_MOVED';\nexport const FORM_ROW_NAME_EDITED = 'FORM_ROW_NAME_EDITED';\n\nexport const FORM_QUESTION_ADDED = 'FORM_QUESTION_ADDED';\nexport const FORM_QUESTION_DELETED = 'FORM_QUESTION_DELETED';\nexport const FORM_QUESTION_MOVED = 'FORM_QUESTION_MOVED';\nexport const FORM_QUESTION_COPIED = 'FORM_QUESTION_COPIED';\n\nexport const FORM_QUESTION_SET = 'FORM_QUESTIONS_SET';\nexport const FORM_QUESTION_NAME_EDITED = 'FORM_QUESTION_NAME_EDITED';\nexport const FORM_QUESTION_HEIGHT_EDITED = 'FORM_QUESTION_HEIGHT_EDITED';\nexport const FORM_QUESTION_CHANGE_COLLAPSED = 'FORM_QUESTION_CHANGE_COLLAPSED';\n\nexport const FORM_OPTION_ADDED = 'FORM_OPTION_ADDED';\nexport const FORM_OPTION_DELETED = 'FORM_OPTION_DELETED';\nexport const FORM_OPTION_MOVED = 'FORM_OPTION_MOVED';\n\nexport const FORM_RESPONSE_FETCH_STARTED = 'FORM_RESPONSE_FETCH_STARTED';\nexport const FORM_RESPONSE_FETCH_COMPLETED = 'FORM_RESPONSE_FETCH_COMPLETED';\nexport const FORM_RESPONSE_FETCH_FAILED = 'FORM_RESPONSE_FETCH_FAILED';\n\nexport const FORM_RESPONSE_RESEND_STARTED = 'FORM_RESPONSE_RESEND_STARTED';\nexport const FORM_RESPONSE_RESEND_COMPLETED = 'FORM_RESPONSE_RESEND_COMPLETED';\nexport const FORM_RESPONSE_RESEND_FAILED = 'FORM_RESPONSE_RESEND_FAILED';\n\nexport const FORM_ANSWER_ADDED = 'FORM_ANSWER_ADDED';\nexport const FORM_ANSWER_MOVED = 'FORM_ANSWER_MOVED';\nexport const FORM_ANSWER_EDITED = 'FORM_ANSWER_EDITED';\nexport const FORM_ANSWER_DELETED = 'FORM_ANSWER_DELETED';\nexport const FORM_ANSWER_SELECTED = 'FORM_ANSWER_SELECTED';\nexport const FORM_ANSWER_DESELECTED = 'FORM_ANSWER_DESELECTED';\n\nexport const FORM_RESPONSES_CLEARED = 'FORM_RESPONSES_CLEARED';\nexport const FORM_QUESTIONS_CLEARED = 'FORM_QUESTIONS_CLEARED';\n","export const GROUPS_FETCH_STARTED = 'GROUPS_FETCH_STARTED';\nexport const GROUPS_FETCH_COMPLETED = 'GROUPS_FETCH_COMPLETED';\nexport const GROUPS_FETCH_FAILED = 'GROUPS_FETCH_FAILED';\n\nexport const GROUPS_PARTIAL_FETCH_STARTED = 'GROUPS_PARTIAL_FETCH_STARTED';\nexport const GROUPS_PARTIAL_FETCH_COMPLETED = 'GROUPS_PARTIAL_FETCH_COMPLETED';\nexport const GROUPS_PARTIAL_FETCH_FAILED = 'GROUPS_PARTIAL_FETCH_FAILED';\n\nexport const GROUPS_ALL_ENTITIES_FETCH_STARTED = 'GROUPS_ALL_ENTITIES_FETCH_STARTED';\nexport const GROUPS_ALL_ENTITIES_FETCH_COMPLETED = 'GROUPS_ALL_ENTITIES_FETCH_COMPLETED';\nexport const GROUPS_ALL_ENTITIES_FETCH_FAILED = 'GROUPS_ALL_ENTITIES_FETCH_FAILED';\n\nexport const GROUP_EDIT_STARTED = 'GROUP_EDIT_STARTED';\nexport const GROUP_EDIT_COMPLETED = 'GROUP_EDIT_COMPLETED';\nexport const GROUP_EDIT_FAILED = 'GROUP_EDIT_FAILED';\n\nexport const GROUP_ADD_STARTED = 'GROUP_ADD_STARTED';\nexport const GROUP_ADD_COMPLETED = 'GROUP_ADD_COMPLETED';\nexport const GROUP_ADD_FAILED = 'GROUP_ADD_FAILED';\n\nexport const GROUP_ADD_WITH_ENTITIES_STARTED = 'GROUP_ADD_WITH_ENTITIES_STARTED';\nexport const GROUP_ADD_WITH_ENTITIES_COMPLETED = 'GROUP_ADD_WITH_ENTITIES_COMPLETED';\nexport const GROUP_ADD_WITH_ENTITIES_FAILED = 'GROUP_ADD_WITH_ENTITIES_FAILED';\n\nexport const GROUP_REMOVE_STARTED = 'GROUP_REMOVE_STARTED';\nexport const GROUP_REMOVE_COMPLETED = 'GROUP_REMOVE_COMPLETED';\nexport const GROUP_REMOVE_FAILED = 'GROUP_REMOVE_FAILED';\n\nexport const GROUP_LEAVE_STARTED = 'GROUP_LEAVE_STARTED';\nexport const GROUP_LEAVE_COMPLETED = 'GROUP_LEAVE_COMPLETED';\nexport const GROUP_LEAVE_FAILED = 'GROUP_LEAVE_FAILED';\n\nexport const GROUP_EDIT_NOTIFICATIONS_CONFIGURATION_STARTED =\n 'GROUP_EDIT_NOTIFICATIONS_CONFIGURATION_STARTED';\nexport const GROUP_EDIT_NOTIFICATIONS_CONFIGURATION_COMPLETED =\n 'GROUP_EDIT_NOTIFICATIONS_CONFIGURATION_COMPLETED';\nexport const GROUP_EDIT_NOTIFICATIONS_CONFIGURATION_FAILED =\n 'GROUP_EDIT_NOTIFICATIONS_CONFIGURATION_FAILED';\n\nexport const GROUP_REMOVE_ENTITIES_STARTED = 'GROUP_REMOVE_ENTITIES_STARTED';\nexport const GROUP_REMOVE_ENTITIES_COMPLETED = 'GROUP_REMOVE_ENTITIES_COMPLETED';\n\nexport const GROUP_ADD_ENTITIES_STARTED = 'GROUP_ADD_ENTITIES_STARTED';\nexport const GROUP_ADD_ENTITIES_COMPLETED = 'GROUP_ADD_ENTITIES_COMPLETED';\n\nexport const GROUP_USER_PROFILE_EDIT_STARTED = 'GROUP_USER_PROFILE_EDIT_STARTED';\nexport const GROUP_USER_PROFILE_EDIT_COMPLETED = 'GROUP_USER_PROFILE_EDIT_COMPLETED';\n\nexport const GROUP_SELECTED = 'GROUP_SELECTED';\nexport const GROUPS_ALL_SELECTED = 'GROUPS_ALL_SELECTED';\nexport const GROUP_DESELECTED = 'GROUP_DESELECTED';\nexport const GROUPS_ALL_DESELECTED = 'GROUPS_ALL_DESELECTED';\n\nexport interface ReduxGroup {\n isSelected: boolean;\n users: any;\n locations: { [key: string]: any };\n workplans: { [key: string]: any };\n units: { [key: string]: any };\n geofences: { [key: string]: any };\n drivers: { [key: string]: any };\n groupId: number;\n groupName: string;\n groupStatus: number;\n profileId: number;\n isInGroup: number;\n locationsCount: number;\n workPlansCount: number;\n userCount: number;\n unitCount: number;\n geofenceCount: number;\n driverCount: number;\n permanenceTimeUnauthorizedMeeting: number;\n notifyUnauthorizedMeeting: number;\n notifyMemberAdded: number;\n notifyMemberDeleted: number;\n notifyAdminMemberAdded: number;\n notifyAdminMemberLeave: number;\n notifyAdminMemberDeleted: number;\n notifyAdminGroupDeleted: number;\n safeDriverSpeedLimit: number;\n notifyAdminSpeedEvent: number;\n notifyAdminPhoneEvent: number;\n notifyOwnerSpeedEvent: number;\n notifyOwnerPhoneEvent: number;\n notifyRiskyDriving: number;\n notifyMemberAlertsSac: number;\n notifyAdminAlertsSac: number;\n notifyOwnerAlertsSac: number;\n applicationIdentities: any;\n}\n","export const JOBS_BACKLOG_FETCH_STARTED = 'JOBS_BACKLOG_FETCH_STARTED';\nexport const JOBS_BACKLOG_FETCH_COMPLETED = 'JOBS_BACKLOG_FETCH_COMPLETED';\nexport const JOBS_BACKLOG_FETCH_FAILED = 'JOBS_BACKLOG_FETCH_FAILED';\n\nexport const JOBS_BACKLOG_PARTIAL_FETCH_STARTED = 'JOBS_BACKLOG_PARTIAL_FETCH_STARTED';\nexport const JOBS_BACKLOG_PARTIAL_FETCH_COMPLETED = 'JOBS_BACKLOG_PARTIAL_FETCH_COMPLETED';\nexport const JOBS_BACKLOG_PARTIAL_FETCH_FAILED = 'JOBS_BACKLOG_PARTIAL_FETCH_FAILED';\n\nexport const JOB_BACKLOG_ADD_STARTED = 'JOB_BACKLOG_ADD_STARTED';\nexport const JOB_BACKLOG_ADD_COMPLETED = 'JOB_BACKLOG_ADD_COMPLETED';\nexport const JOB_BACKLOG_ADD_FAILED = 'JOB_BACKLOG_ADD_FAILED';\n\nexport const JOB_BACKLOG_EDIT_STARTED = 'JOB_BACKLOG_EDIT_STARTED';\nexport const JOB_BACKLOG_EDIT_COMPLETED = 'JOB_BACKLOG_EDIT_COMPLETED';\nexport const JOB_BACKLOG_EDIT_FAILED = 'JOB_BACKLOG_EDIT_FAILED';\n\nexport const JOB_BACKLOG_SELECTED = 'JOB_BACKLOG_SELECTED';\nexport const JOBS_BACKLOG_ALL_SELECTED = 'JOBS_BACKLOG_ALL_SELECTED';\nexport const JOB_BACKLOG_DESELECTED = 'JOB_BACKLOG_DESELECTED';\nexport const JOBS_BACKLOG_ALL_DESELECTED = 'JOBS_BACKLOG_ALL_DESELECTED';\n\nexport const JOBS_BACKLOG_REMOVE_STARTED = 'JOBS_BACKLOG_REMOVE_STARTED';\nexport const JOBS_BACKLOG_REMOVE_COMPLETED = 'JOBS_BACKLOG_REMOVE_COMPLETED';\nexport const JOBS_BACKLOG_REMOVE_FAILED = 'JOBS_BACKLOG_REMOVE_FAILED';\n\nexport const JOBS_BACKLOG_CHANGE_STATUS_STARTED = 'JOBS_BACKLOG_CHANGE_STATUS_STARTED';\nexport const JOBS_BACKLOG_CHANGE_STATUS_COMPLETED = 'JOBS_BACKLOG_CHANGE_STATUS_COMPLETED';\nexport const JOBS_BACKLOG_CHANGE_STATUS_FAILED = 'JOBS_BACKLOG_CHANGE_STATUS_FAILED';\n\nexport const JOBS_BACKLOG_CHANGE_PRIORITY_STARTED = 'JOBS_BACKLOG_CHANGE_PRIORITY_STARTED';\nexport const JOBS_BACKLOG_CHANGE_PRIORITY_COMPLETED = 'JOBS_BACKLOG_CHANGE_PRIORITY_COMPLETED';\nexport const JOBS_BACKLOG_CHANGE_PRIORITY_FAILED = 'JOBS_BACKLOG_CHANGE_PRIORITY_FAILED';\n\nexport const JOBS_BACKLOG_CHANGE_JOB_TYPE_STARTED = 'JOBS_BACKLOG_CHANGE_JOB_TYPE_STARTED';\nexport const JOBS_BACKLOG_CHANGE_JOB_TYPE_COMPLETED = 'JOBS_BACKLOG_CHANGE_JOB_TYPE_COMPLETED';\nexport const JOBS_BACKLOG_CHANGE_JOB_TYPE_FAILED = 'JOBS_BACKLOG_CHANGE_JOB_TYPE_FAILED';\n\nexport const JOBS_BACKLOG_CHANGE_START_DATE_STARTED = 'JOBS_BACKLOG_CHANGE_START_DATE_STARTED';\nexport const JOBS_BACKLOG_CHANGE_START_DATE_COMPLETED = 'JOBS_BACKLOG_CHANGE_START_DATE_COMPLETED';\nexport const JOBS_BACKLOG_CHANGE_START_DATE_FAILED = 'JOBS_BACKLOG_CHANGE_START_DATE_FAILED';\n\nexport const JOBS_BACKLOG_CHANGE_DUE_DATE_STARTED = 'JOBS_BACKLOG_CHANGE_DUE_DATE_STARTED';\nexport const JOBS_BACKLOG_CHANGE_DUE_DATE_COMPLETED = 'JOBS_BACKLOG_CHANGE_DUE_DATE_COMPLETED';\nexport const JOBS_BACKLOG_CHANGE_DUE_DATE_FAILED = 'JOBS_BACKLOG_CHANGE_DUE_DATE_FAILED';\n\nexport const JOBS_BACKLOG_CHANGE_MIN_MAX_TIME_STARTED = 'JOBS_BACKLOG_CHANGE_MIN_MAX_TIME_STARTED';\nexport const JOBS_BACKLOG_CHANGE_MIN_MAX_TIME_COMPLETED =\n 'JOBS_BACKLOG_CHANGE_MIN_MAX_TIME_COMPLETED';\nexport const JOBS_BACKLOG_CHANGE_MIN_MAX_TIME_FAILED = 'JOBS_BACKLOG_CHANGE_MIN_MAX_TIME_FAILED';\n\nexport const JOBS_BACKLOG_ASSIGN_USERS_STARTED = 'JOBS_BACKLOG_ASSIGN_USERS_STARTED';\nexport const JOBS_BACKLOG_ASSIGN_USERS_COMPLETED = 'JOBS_BACKLOG_ASSIGN_USERS_COMPLETED';\nexport const JOBS_BACKLOG_ASSIGN_USERS_FAILED = 'JOBS_BACKLOG_ASSIGN_USERS_FAILED';\n\nexport const JOBS_BACKLOG_ASSIGN_FORMS_STARTED = 'JOBS_BACKLOG_ASSIGN_FORMS_STARTED';\nexport const JOBS_BACKLOG_ASSIGN_FORMS_COMPLETED = 'JOBS_BACKLOG_ASSIGN_FORMS_COMPLETED';\nexport const JOBS_BACKLOG_ASSIGN_FORMS_FAILED = 'JOBS_BACKLOG_ASSIGN_FORMS_FAILED';\n\nexport const JOBS_BACKLOG_ASSIGN_FILES_STARTED = 'JOBS_BACKLOG_ASSIGN_FILES_STARTED';\nexport const JOBS_BACKLOG_ASSIGN_FILES_COMPLETED = 'JOBS_BACKLOG_ASSIGN_FILES_COMPLETED';\nexport const JOBS_BACKLOG_ASSIGN_FILES_FAILED = 'JOBS_BACKLOG_ASSIGN_FILES_FAILED';\n\nexport const JOBS_BACKLOG_RESCHEDULE_JOBS_STARTED = 'JOBS_BACKLOG_RESCHEDULE_JOBS_STARTED';\nexport const JOBS_BACKLOG_RESCHEDULE_JOBS_COMPLETED = 'JOBS_BACKLOG_RESCHEDULE_JOBS_COMPLETED';\nexport const JOBS_BACKLOG_RESCHEDULE_JOBS_FAILED = 'JOBS_BACKLOG_RESCHEDULE_JOBS_FAILED';\n\nexport const JOBS_BACKLOG_IMPORT_STARTED = 'JOBS_BACKLOG_IMPORT_STARTED';\nexport const JOBS_BACKLOG_IMPORT_COMPLETED = 'JOBS_BACKLOG_IMPORT_COMPLETED';\nexport const JOBS_BACKLOG_IMPORT_FAILED = 'JOBS_BACKLOG_IMPORT_FAILED';\n","export const WORKPLANS_FETCH_STARTED = 'WORKPLANS_FETCH_STARTED';\nexport const WORKPLANS_FETCH_COMPLETED = 'WORKPLANS_FETCH_COMPLETED';\nexport const WORKPLANS_FETCH_FAILED = 'WORKPLANS_FETCH_FAILED';\n\nexport const WORKPLANS_PARTIAL_FETCH_STARTED = 'WORKPLANS_PARTIAL_FETCH_STARTED';\nexport const WORKPLANS_PARTIAL_FETCH_COMPLETED = 'WORKPLANS_PARTIAL_FETCH_COMPLETED';\nexport const WORKPLANS_PARTIAL_FETCH_FAILED = 'WORKPLANS_PARTIAL_FETCH_FAILED';\n\nexport const WORKPLAN_LOCATIONS_FETCH_COMPLETED = 'WORKPLAN_LOCATIONS_FETCH_COMPLETED';\nexport const WORKPLAN_LOCATIONS_FETCH_FAILED = 'WORKPLAN_LOCATIONS_FETCH_FAILED';\n\nexport const WORKPLAN_ADD_STARTED = 'WORKPLAN_ADD_STARTED';\nexport const WORKPLAN_ADD_COMPLETED = 'WORKPLAN_ADD_COMPLETED';\nexport const WORKPLAN_ADD_FAILED = 'WORKPLAN_ADD_FAILED';\n\nexport const WORKPLAN_EDIT_STARTED = 'WORKPLAN_EDIT_STARTED';\nexport const WORKPLAN_EDIT_COMPLETED = 'WORKPLAN_EDIT_COMPLETED';\nexport const WORKPLAN_EDIT_FAILED = 'WORKPLAN_EDIT_FAILED';\n\nexport const WORKPLAN_REMOVE_STARTED = 'WORKPLAN_REMOVE_STARTED';\nexport const WORKPLAN_REMOVE_COMPLETED = 'WORKPLAN_REMOVE_COMPLETED';\nexport const WORKPLAN_REMOVE_FAILED = 'WORKPLAN_REMOVE_FAILED';\n\nexport const WORKPLAN_SELECTED = 'WORKPLAN_SELECTED';\nexport const WORKPLANS_ALL_SELECTED = 'WORKPLANS_ALL_SELECTED';\nexport const WORKPLAN_DESELECTED = 'WORKPLAN_DESELECTED';\nexport const WORKPLANS_ALL_DESELECTED = 'WORKPLANS_ALL_DESELECTED';\n\nexport const WORKPLAN_COPY_STARTED = 'WORKPLAN_COPY_STARTED';\nexport const WORKPLAN_COPY_COMPLETED = 'WORKPLAN_COPY_COMPLETED';\nexport const WORKPLAN_COPY_FAILED = 'WORKPLAN_COPY_FAILED';\n\nexport const WORKPLANS_ASSIGN_ORIGIN_GEOFENCE_STARTED = 'WORKPLANS_ASSIGN_ORIGIN_GEOFENCE_STARTED';\nexport const WORKPLANS_ASSIGN_ORIGIN_GEOFENCE_COMPLETED =\n 'WORKPLANS_ASSIGN_ORIGIN_GEOFENCE_COMPLETED';\nexport const WORKPLANS_ASSIGN_ORIGIN_GEOFENCE_FAILED = 'WORKPLANS_ASSIGN_ORIGIN_GEOFENCE_FAILED';\n\nexport const WORKPLANS_ASSIGN_WORK_AREA_GEOFENCE_STARTED =\n 'WORKPLANS_ASSIGN_WORK_AREA_GEOFENCE_STARTED';\nexport const WORKPLANS_ASSIGN_WORK_AREA_GEOFENCE_COMPLETED =\n 'WORKPLANS_ASSIGN_WORK_AREA_GEOFENCE_COMPLETED';\nexport const WORKPLANS_ASSIGN_WORK_AREA_GEOFENCE_FAILED =\n 'WORKPLANS_ASSIGN_WORK_AREA_GEOFENCE_FAILED';\n\nexport const WORKPLANS_ASSIGN_DESTINATION_GEOFENCE_STARTED =\n 'WORKPLANS_ASSIGN_DESTINATION_GEOFENCE_STARTED';\nexport const WORKPLANS_ASSIGN_DESTINATION_GEOFENCE_COMPLETED =\n 'WORKPLANS_ASSIGN_DESTINATION_GEOFENCE_COMPLETED';\nexport const WORKPLANS_ASSIGN_DESTINATION_GEOFENCE_FAILED =\n 'WORKPLANS_ASSIGN_DESTINATION_GEOFENCE_FAILED';\n","// -------------------------------------------\n// | entityTypeId | Entity |\n// -------------------------------------------\n// | 1 |\tUnidad de Rastreo |\n// | 2 |\tSubdivision |\n// | 3 |\tVehiculo |\n// | 4 |\tSIM |\n// | 5 |\tModulo |\n// | 6 |\tPiloto |\n// | 7 |\tTransportista |\n// | 8 |\tNotificacion |\n// | 9 |\tAsesores |\n// | 12 |\tClases de Servicio |\n// | 13 |\tComponentes de Vehiculos |\n// | 14 |\tServicios de Vehiculos |\n// | 15 |\tMensajes de Sistema |\n// | 16 |\tLogin |\n// | 17 |\tUsuarios |\n// | 18 |\tOperador |\n// | 19 |\tDivisiĆ³n |\n// | 20 | Formularios |\n// | 30 |\tOrganizaciones |\n// | 31 |\tUsuarios |\n// | 32 |\tContactos |\n// | 33 | Planes de Trabajo |\n// | 34 | Geocercas |\n// | 35 | Horarios |\n// | 37 | Rutas |\n// | 40 |\tMarcas |\n// | 41 |\tModelos |\n// | 42 |\tConfiguraciones |\n// | 43 |\tSims |\n// | 44 |\tPaĆ­ses |\n// | 45 |\tReferencias |\n// | 46 |\tActivos |\n// | 47 |\tSensores |\n// | 48 |\tJobs |\n// | 49 |\tGrupos |\n// | 50 |\tContratos |\n// | 51 |\tClientes |\n// | 52 |\tLinea de Mantenimiento |\n// | 53 |\tPlantillas de Contratos |\n// | 54 |\tCotizaciones |\n// | 56 | Protocolos |\n// -------------------------------------------\n\n//For more information in sql\n// select * from dbo.EntityTypes\n\nexport const ENTITY_UNITS = 1;\nexport const ENTITY_SUBDIVISONS = 2;\nexport const ENTITY_VEHICLES = 3;\nexport const ENTITY_SIM_CARDS = 4;\nexport const ENTITY_MODULES = 5;\nexport const ENTITY_DRIVERS = 6;\n// 7,8 MISSING\n// export const ENTITY_NONE = 7;\n// export const ENTITY_NONE = 8;\nexport const ENTITY_AGENTS = 9;\n// 10,11 MISSING\n// export const ENTITY_NONE = 10;\n// export const ENTITY_NONE = 11;\nexport const ENTITY_SERVICE_CLASSES = 12;\n// 13,14,15,16 MISSING\n// export const ENTITY_NONE = 13;\n// export const ENTITY_NONE = 14;\n// export const ENTITY_NONE = 15;\n// export const ENTITY_NONE = 16;\nexport const ENTITY_USERS = 17;\nexport const ENTITY_OPERATORS = 18;\nexport const ENTITY_DIVISIONS = 19;\n// 20,21,22,23,24,25,26,27,28,29 MISSING\n// export const ENTITY_NONE = 20;\n// export const ENTITY_NONE = 21;\n// export const ENTITY_NONE = 22;\n// export const ENTITY_NONE = 23;\n// export const ENTITY_NONE = 24;\n// export const ENTITY_NONE = 25;\n// export const ENTITY_NONE = 26;\n// export const ENTITY_NONE = 27;\n// export const ENTITY_NONE = 28;\n// export const ENTITY_NONE = 29;\nexport const ENTITY_ORGANIZATIONS = 30;\n// 31 MISSING\n// export const ENTITY_NONE = 31;\nexport const ENTITY_CONTACTS = 32;\nexport const ENTITY_WORKPLANS = 33;\nexport const ENTITY_GEOFENCES = 34;\nexport const ENTITY_SCHEDULES = 35;\nexport const ENTITY_FORMS = 36;\nexport const ENTITY_ROUTES = 37;\n// 38,39,40,41,42,43 MISSING\n// export const ENTITY_NONE = 38;\n// export const ENTITY_NONE = 39;\n// export const ENTITY_NONE = 40;\n// export const ENTITY_NONE = 41;\n// export const ENTITY_NONE = 42;\n// export const ENTITY_NONE = 43;\nexport const ENTITY_COUNTRIES = 44;\nexport const ENTITY_LOCATIONS = 45;\nexport const ENTITY_ASSETS = 46;\nexport const ENTITY_SENSORS = 47;\nexport const ENTITY_JOBS_BACKLOG = 48;\nexport const ENTITY_GROUPS = 49;\nexport const ENTITY_ORGANIZATION_CONTRACTS = 50;\nexport const ENTITY_CUSTOMERS = 51;\nexport const ENTITY_MAINTENANCE_LINES = 52;\nexport const ENTITY_CONTRACT_TEMPLATES = 53;\nexport const ENTITY_QUOTATIONS = 54;\nexport const ENTITY_OFFICES = 55;\nexport const ENTITY_PROTOCOLS = 56;\n\nexport const defaultEntitiesToFetchAftetLogin = [];\n\n// Audit Entities Lookups\nexport const AUDIT_ENTITY_UNIT_MAIN_STATE_TYPE_ID_LOOKUP = 'UnitMainStateTypeId';\nexport const AUDIT_ENTITY_UNIT_STATUS_LOOKUP = 'UnitStatus';\nexport const AUDIT_ENTITY_UNIT_THEME_ID_LOOKUP = 'UnitThemeId';\nexport const AUDIT_ENTITY_UNIT_TYPE_ID_LOOKUP = 'UnitTypeId';\n","export const QUOTATIONS_FETCH_STARTED = 'QUOTATIONS_FETCH_STARTED';\nexport const QUOTATIONS_FETCH_COMPLETED = 'QUOTATIONS_FETCH_COMPLETED';\nexport const QUOTATIONS_FETCH_FAILED = 'QUOTATIONS_FETCH_FAILED';\n\nexport const QUOTATIONS_PARTIAL_FETCH_STARTED = 'QUOTATIONS_PARTIAL_FETCH_STARTED';\nexport const QUOTATIONS_PARTIAL_FETCH_COMPLETED = 'QUOTATIONS_PARTIAL_FETCH_COMPLETED';\nexport const QUOTATIONS_PARTIAL_FETCH_FAILED = 'QUOTATIONS_PARTIAL_FETCH_FAILED';\n\nexport const QUOTATIONS_ADD_STARTED = 'QUOTATIONS_ADD_STARTED';\nexport const QUOTATIONS_ADD_COMPLETED = 'QUOTATIONS_ADD_COMPLETED';\nexport const QUOTATIONS_ADD_FAILED = 'QUOTATIONS_ADD_FAILED';\n\nexport const QUOTATIONS_EDIT_STARTED = 'QUOTATIONS_EDIT_STARTED';\nexport const QUOTATIONS_EDIT_COMPLETED = 'QUOTATIONS_EDIT_COMPLETED';\nexport const QUOTATIONS_EDIT_FAILED = 'QUOTATIONS_EDIT_FAILED';\n\nexport const QUOTATIONS_REMOVE_STARTED = 'QUOTATIONS_REMOVE_STARTED';\nexport const QUOTATIONS_REMOVE_COMPLETED = 'QUOTATIONS_REMOVE_COMPLETED';\nexport const QUOTATIONS_REMOVE_FAILED = 'QUOTATIONS_REMOVE_FAILED';\n\nexport const QUOTATIONS_SCHEDULE_STARTED = 'QUOTATIONS_SCHEDULE_STARTED';\nexport const QUOTATIONS_SCHEDULE_COMPLETED = 'QUOTATIONS_SCHEDULE_COMPLETED';\nexport const QUOTATIONS_SCHEDULE_FAILED = 'QUOTATIONS_SCHEDULE_FAILED';\n\nexport const QUOTATIONS_CHECK_SCHEDULING_STARTED = 'QUOTATIONS_CHECK_SCHEDULING_STARTED';\nexport const QUOTATIONS_CHECK_SCHEDULING_COMPLETED = 'QUOTATIONS_CHECK_SCHEDULING_COMPLETED';\nexport const QUOTATIONS_CHECK_SCHEDULING_FAILED = 'QUOTATIONS_CHECK_SCHEDULING_FAILED';\n\nexport const QUOTATIONS_SET_TIMESUP_STARTED = 'QUOTATIONS_SET_TIMESUP_STARTED';\nexport const QUOTATIONS_SET_TIMESUP_COMPLETED = 'QUOTATIONS_SET_TIMESUP_COMPLETED';\nexport const QUOTATIONS_SET_TIMESUP_FAILED = 'QUOTATIONS_SET_TIMESUP_FAILED';\n\nexport const QUOTATIONS_SELECTED = 'QUOTATIONS_SELECTED';\nexport const QUOTATIONS_ALL_SELECTED = 'QUOTATIONS_ALL_SELECTED';\nexport const QUOTATIONS_DESELECTED = 'QUOTATIONS_DESELECTED';\nexport const QUOTATIONS_ALL_DESELECTED = 'QUOTATIONS_ALL_DESELECTED';\n\nexport const QUOTATION_APPROVE_DENY_MANAGEMENT_STARTED =\n 'QUOTATION_APPROVE_DENY_MANAGEMENT_STARTED';\nexport const QUOTATION_APPROVE_DENY_MANAGEMENT_FAILED = 'QUOTATION_APPROVE_DENY_MANAGEMENT_FAILED';\nexport const QUOTATION_APPROVE_DENY_MANAGEMENT_COMPLETED =\n 'QUOTATION_APPROVE_DENY_MANAGEMENT_COMPLETED';\n\nexport const QUOTATION_ACCEPT_DENY_CUSTOMER_STARTED = 'QUOTATION_ACCEPT_DENY_CUSTOMER_STARTED';\nexport const QUOTATION_ACCEPT_DENY_CUSTOMER_FAILED = 'QUOTATION_ACCEPT_DENY_CUSTOMER_FAILED';\nexport const QUOTATION_ACCEPT_DENY_CUSTOMER_COMPLETED = 'QUOTATION_ACCEPT_DENY_CUSTOMER_COMPLETED';\n\nexport const QUOTATION_COPY_STARTED = 'QUOTATION_COPY_STARTED';\nexport const QUOTATION_COPY_FAILED = 'QUOTATION_COPY_FAILED';\nexport const QUOTATION_COPY_COMPLETED = 'QUOTATION_COPY_COMPLETED';\n\nexport const QUOTATION_CHANGE_ORGANIZATION = 'QUOTATION_CHANGE_ORGANIZATION';\n","export const ORGANIZATIONS_FETCH_STARTED = 'ORGANIZATIONS_FETCH_STARTED';\nexport const ORGANIZATIONS_FETCH_COMPLETED = 'ORGANIZATIONS_FETCH_COMPLETED';\nexport const ORGANIZATIONS_FETCH_FAILED = 'ORGANIZATIONS_FETCH_FAILED';\n\nexport const ORGANIZATIONS_PARTIAL_FETCH_STARTED = 'ORGANIZATIONS_PARTIAL_FETCH_STARTED';\nexport const ORGANIZATIONS_PARTIAL_FETCH_COMPLETED = 'ORGANIZATIONS_PARTIAL_FETCH_COMPLETED';\nexport const ORGANIZATIONS_PARTIAL_FETCH_FAILED = 'ORGANIZATIONS_PARTIAL_FETCH_FAILED';\n\nexport const ORGANIZATION_ADD_STARTED = 'ORGANIZATION_ADD_STARTED';\nexport const ORGANIZATION_ADD_COMPLETED = 'ORGANIZATION_ADD_COMPLETED';\nexport const ORGANIZATION_ADD_FAILED = 'ORGANIZATION_ADD_FAILED';\n\nexport const ORGANIZATION_EDIT_STARTED = 'ORGANIZATION_EDIT_STARTED';\nexport const ORGANIZATION_EDIT_COMPLETED = 'ORGANIZATION_EDIT_COMPLETED';\nexport const ORGANIZATION_EDIT_FAILED = 'ORGANIZATION_EDIT_FAILED';\n\nexport const ORGANIZATION_REMOVE_STARTED = 'ORGANIZATION_REMOVE_STARTED';\nexport const ORGANIZATION_REMOVE_COMPLETED = 'ORGANIZATION_REMOVE_COMPLETED';\nexport const ORGANIZATION_REMOVE_FAILED = 'ORGANIZATION_REMOVE_FAILED';\n\nexport const ORGANIZATION_SELECTED = 'ORGANIZATION_SELECTED';\nexport const ORGANIZATIONS_ALL_SELECTED = 'ORGANIZATIONS_ALL_SELECTED';\nexport const ORGANIZATION_DESELECTED = 'ORGANIZATION_DESELECTED';\nexport const ORGANIZATIONS_ALL_DESELECTED = 'ORGANIZATIONS_ALL_DESELECTED';\n\nexport const ORGANIZATION_CODE_CHECK_STARTED = 'ORGANIZATION_CODE_CHECK_STARTED';\nexport const ORGANIZATION_CODE_CHECK_COMPLETED = 'ORGANIZATION_CODE_CHECK_COMPLETED';\nexport const ORGANIZATION_CODE_CHECK_FAILED = 'ORGANIZATION_CODE_CHECK_FAILED';\n\nexport const ORGANIZATION_CODE_ASSIGN_STARTED = 'ORGANIZATION_CODE_ASSIGN_STARTED';\nexport const ORGANIZATION_CODE_ASSIGN_COMPLETED = 'ORGANIZATION_CODE_ASSIGN_COMPLETED';\nexport const ORGANIZATION_CODE_ASSIGN_FAILED = 'ORGANIZATION_CODE_ASSIGN_FAILED';\n\nexport const ORGANIZATION_SAVE_CONSOLIDABLE_EVENTS_STARTED =\n 'ORGANIZATION_SAVE_CONSOLIDABLE_EVENTS_STARTED';\nexport const ORGANIZATION_SAVE_CONSOLIDABLE_EVENTS_COMPLETED =\n 'ORGANIZATION_SAVE_CONSOLIDABLE_EVENTS_COMPLETED';\nexport const ORGANIZATION_SAVE_CONSOLIDABLE_EVENTS_FAILED =\n 'ORGANIZATION_SAVE_CONSOLIDABLE_EVENTS_FAILED';\n\nexport const ORGANIZATION_DOWNTIME_REASON_ADD_STARTED = 'ORGANIZATION_DOWNTIME_REASON_ADD_STARTED';\nexport const ORGANIZATION_DOWNTIME_REASON_ADD_COMPLETED =\n 'ORGANIZATION_DOWNTIME_REASON_ADD_COMPLETED';\nexport const ORGANIZATION_DOWNTIME_REASON_ADD_FAILED = 'ORGANIZATION_DOWNTIME_REASON_ADD_FAILED';\n\nexport const ORGANIZATION_DOWNTIME_REASON_EDIT_STARTED =\n 'ORGANIZATION_DOWNTIME_REASON_EDIT_STARTED';\nexport const ORGANIZATION_DOWNTIME_REASON_EDIT_COMPLETED =\n 'ORGANIZATION_DOWNTIME_REASON_EDIT_COMPLETED';\nexport const ORGANIZATION_DOWNTIME_REASON_EDIT_FAILED = 'ORGANIZATION_DOWNTIME_REASON_EDIT_FAILED';\n\nexport const ORGANIZATION_DOWNTIME_REASON_REMOVE_STARTED =\n 'ORGANIZATION_DOWNTIME_REASON_REMOVE_STARTED';\nexport const ORGANIZATION_DOWNTIME_REASON_REMOVE_COMPLETED =\n 'ORGANIZATION_DOWNTIME_REASON_REMOVE_COMPLETED';\nexport const ORGANIZATION_DOWNTIME_REASON_REMOVE_FAILED =\n 'ORGANIZATION_DOWNTIME_REASON_REMOVE_FAILED';\n\nexport interface ReduxOrganization {\n isSelected: boolean;\n organizationId: number;\n organizationName: string;\n contactPhone?: string;\n organizationAddress: string;\n contactName?: string;\n userLicense?: number;\n organizationStatus: number;\n contactEmail?: string;\n privateCode?: string;\n operatorId: number;\n agentId: number;\n operatorName: string;\n themeId?: number;\n alertConsoleActive: number;\n showUsersOnChat: number;\n registrationCode?: string;\n registrationDivisionId?: number;\n registrationSubdivisionId?: number;\n registrationNotificationMails?: string;\n tradeName?: string;\n taxNumber: string;\n allowedApplications?: number;\n currentApplications: number;\n legalRepresentativeId?: number;\n legalRepresentativeName?: string;\n legalRepresentativeIdentification?: string;\n legalRepresentativeAge: number;\n legalRepresentativeNacionality?: string;\n legalRepresentativeAddress: string;\n utcZoneId?: number;\n organizationType: number;\n sacUsers: SacUser[];\n isConfirmed: boolean;\n}\n\nexport interface SacUser {\n userId: number;\n userName: string;\n completeName: string;\n chatUserTypeId: number;\n organizationId: number;\n}\n","export const ROUTES_EXECUTIONS_FETCH_STARTED = 'ROUTES_EXECUTIONS_FETCH_STARTED';\nexport const ROUTES_EXECUTIONS_FETCH_COMPLETED = 'ROUTES_EXECUTIONS_FETCH_COMPLETED';\nexport const ROUTES_EXECUTIONS_FETCH_FAILED = 'ROUTES_EXECUTIONS_FETCH_FAILED';\n\nexport const ROUTE_EXECUTION_EDIT_STARTED = 'ROUTE_EXECUTION_EDIT_STARTED';\nexport const ROUTE_EXECUTION_EDIT_COMPLETED = 'ROUTE_EXECUTION_EDIT_COMPLETED';\nexport const ROUTE_EXECUTION_EDIT_FAILED = 'ROUTE_EXECUTION_EDIT_FAILED';\n\nexport const ROUTES_EXECUTION_CANCEL_STARTED = 'ROUTES_EXECUTION_CANCEL_STARTED';\nexport const ROUTES_EXECUTION_CANCEL_COMPLETED = 'ROUTES_EXECUTION_CANCEL_COMPLETED';\nexport const ROUTES_EXECUTION_CANCEL_FAILED = 'ROUTES_EXECUTION_CANCEL_FAILED';\n\nexport const ROUTES_EXECUTION_FINALIZE_STARTED = 'ROUTES_EXECUTION_FINALIZE_STARTED';\nexport const ROUTES_EXECUTION_FINALIZE_COMPLETED = 'ROUTES_EXECUTION_FINALIZE_COMPLETED';\nexport const ROUTES_EXECUTION_FINALIZE_FAILED = 'ROUTES_EXECUTION_FINALIZE_FAILED';\n\nexport const ROUTES_EXECUTION_REMOVE_STARTED = 'ROUTES_EXECUTION_REMOVE_STARTED';\nexport const ROUTES_EXECUTION_REMOVE_COMPLETED = 'ROUTES_EXECUTION_REMOVE_COMPLETED';\nexport const ROUTES_EXECUTION_REMOVE_FAILED = 'ROUTES_EXECUTION_REMOVE_FAILED';\n\nexport const ROUTES_EXECUTION_COMPLETE_STARTED = 'ROUTES_EXECUTION_COMPLETE_STARTED';\nexport const ROUTES_EXECUTION_COMPLETE_COMPLETED = 'ROUTES_EXECUTION_COMPLETE_COMPLETED';\nexport const ROUTES_EXECUTION_COMPLETE_FAILED = 'ROUTES_EXECUTION_COMPLETE_FAILED';\n\nexport const ROUTES_EXECUTION_PAUSE_STARTED = 'ROUTES_EXECUTION_PAUSE_STARTED';\nexport const ROUTES_EXECUTION_PAUSE_COMPLETED = 'ROUTES_EXECUTION_PAUSE_COMPLETED';\nexport const ROUTES_EXECUTION_PAUSE_FAILED = 'ROUTES_EXECUTION_PAUSE_FAILED';\n\nexport const ROUTES_EXECUTION_START_STARTED = 'ROUTES_EXECUTION_START_STARTED';\nexport const ROUTES_EXECUTION_START_COMPLETED = 'ROUTES_EXECUTION_START_COMPLETED';\nexport const ROUTES_EXECUTION_START_FAILED = 'ROUTES_EXECUTION_START_FAILED';\n\nexport const ROUTES_EXECUTION_MANUAL_TRANSIT_STARTED = 'ROUTES_EXECUTION_MANUAL_TRANSIT_STARTED';\nexport const ROUTES_EXECUTION_MANUAL_TRANSIT_COMPLETED =\n 'ROUTES_EXECUTION_MANUAL_TRANSIT_COMPLETED';\nexport const ROUTES_EXECUTION_MANUAL_TRANSIT_FAILED = 'ROUTES_EXECUTION_MANUAL_TRANSIT_FAILED';\n\nexport const ROUTE_CHANGE_TO_ALTERNATE_ROUTE_STARTED = 'ROUTE_CHANGE_TO_ALTERNATE_ROUTE_STARTED';\nexport const ROUTE_CHANGE_TO_ALTERNATE_ROUTE_COMPLETED =\n 'ROUTE_CHANGE_TO_ALTERNATE_ROUTE_COMPLETED';\nexport const ROUTE_CHANGE_TO_ALTERNATE_ROUTE_FAILED = 'ROUTE_CHANGE_TO_ALTERNATE_ROUTE_FAILED';\n\nexport const ROUTES_EXECUTION_SHARE_STARTED = 'ROUTES_EXECUTION_SHARE_STARTED';\nexport const ROUTES_EXECUTION_SHARE_COMPLETED = 'ROUTES_EXECUTION_SHARE_COMPLETED';\nexport const ROUTES_EXECUTION_SHARE_FAILED = 'ROUTES_EXECUTION_SHARE_FAILED';\n\nexport const ROUTES_EXECUTION_ASSIGN_UNIT_STARTED = 'ROUTES_EXECUTION_ASSIGN_UNIT_STARTED';\nexport const ROUTES_EXECUTION_ASSIGN_UNIT_COMPLETED = 'ROUTES_EXECUTION_ASSIGN_UNIT_COMPLETED';\nexport const ROUTES_EXECUTION_ASSIGN_UNIT_FAILED = 'ROUTES_EXECUTION_ASSIGN_UNIT_FAILED';\n\nexport interface RouteExecution {\n routeAssignmentId: number;\n routeId: number;\n routeName: string;\n distance: number;\n privateCode: null | string;\n sourceName: string;\n targetName: string;\n unitId: number;\n unitOrganizationId: number;\n organizationId: number;\n unitName: string;\n unitLocation: string;\n routeStatus: number;\n routeProgress: number;\n speed: number;\n odometer: number;\n gpsDate: string;\n auditDate: string;\n assignmentDate: string;\n finalizedDate: null | string;\n completionDate: null | string;\n cancelDate: null | string;\n stopDate: null | string;\n startDate: null | string;\n transitDate: null | string;\n cancelReason: null | string;\n distanceToCheckpoint: number;\n locationName: string;\n correlative: number;\n assignNotificationEmails: null | string;\n notificationEvents: null | string;\n globalNotificationEmails: null | string;\n globalNotificationFrec: string;\n useSharedLink: boolean;\n routeNotificationEmails: string;\n requiredStartAtOrigin: boolean;\n completionType: number;\n isSpecialCargo: boolean;\n customField1: null | string;\n customField2: null | string;\n customField3: null | string;\n customField4: null | string;\n customField5: null | string;\n customField6: null | string;\n customerId: number;\n customerName: string;\n onTimeStatus: number;\n speedStatus: number;\n stopStatus: boolean;\n driverId: null | number;\n driverName: null | string;\n driverPhoto: null | string;\n driverPhoneNumber: null | string;\n driverBloodType: null | string;\n driverLicenseNumber: null | string;\n driverLicenseType: null | string;\n driverLicenseExpireDate: null | string;\n driverUseGlasses: null | boolean | number;\n driverBloodSugarProblems: null | boolean | number;\n routeStatusLabel: string;\n routeStatusLabelInfo: string;\n isDeviceOpenLabel: string;\n speedLabel: number;\n routeProgressLabel: string;\n distanceToCheckpointLabel: string;\n distanceLabel: string;\n fuelConsumption: number;\n expectedPerformance: number;\n performanceOnRoute: number;\n distanceProgress: number;\n hasFuelPerformance: boolean | number;\n}\n","export const ROUTES_FETCH_STARTED = 'ROUTES_FETCH_STARTED';\nexport const ROUTES_FETCH_COMPLETED = 'ROUTES_FETCH_COMPLETED';\nexport const ROUTES_FETCH_FAILED = 'ROUTES_FETCH_FAILED';\n\nexport const ROUTES_PARTIAL_FETCH_STARTED = 'ROUTES_PARTIAL_FETCH_STARTED';\nexport const ROUTES_PARTIAL_FETCH_COMPLETED = 'ROUTES_PARTIAL_FETCH_COMPLETED';\nexport const ROUTES_PARTIAL_FETCH_FAILED = 'ROUTES_PARTIAL_FETCH_FAILED';\n\nexport const ROUTE_ADD_STARTED = 'ROUTE_ADD_STARTED';\nexport const ROUTE_ADD_COMPLETED = 'ROUTE_ADD_COMPLETED';\nexport const ROUTE_ADD_FAILED = 'ROUTE_ADD_FAILED';\n\nexport const ROUTE_EDIT_STARTED = 'ROUTE_EDIT_STARTED';\nexport const ROUTE_EDIT_COMPLETED = 'ROUTE_EDIT_COMPLETED';\nexport const ROUTE_EDIT_FAILED = 'ROUTE_EDIT_FAILED';\n\nexport const ROUTE_REMOVE_STARTED = 'ROUTE_REMOVE_STARTED';\nexport const ROUTE_REMOVE_COMPLETED = 'ROUTE_REMOVE_COMPLETED';\nexport const ROUTE_REMOVE_FAILED = 'ROUTE_REMOVE_FAILED';\n\nexport const ROUTES_REMOVE_STARTED = 'ROUTES_REMOVE_STARTED';\nexport const ROUTES_REMOVE_COMPLETED = 'ROUTES_REMOVE_COMPLETED';\nexport const ROUTES_REMOVE_FAILED = 'ROUTES_REMOVE_FAILED';\n\nexport const ROUTE_SELECTED = 'ROUTE_SELECTED';\nexport const ROUTES_ALL_SELECTED = 'ROUTES_ALL_SELECTED';\nexport const ROUTE_DESELECTED = 'ROUTE_DESELECTED';\nexport const ROUTES_ALL_DESELECTED = 'ROUTES_ALL_DESELECTED';\n\nexport const ROUTE_COPY_STARTED = 'ROUTE_COPY_STARTED';\nexport const ROUTE_COPY_COMPLETED = 'ROUTE_COPY_COMPLETED';\nexport const ROUTE_COPY_FAILED = 'ROUTE_COPY_FAILED';\n\nexport const ROUTE_SHOW_IN_MAP = 'ROUTE_SHOW_IN_MAP';\nexport const ROUTE_HIDE_IN_MAP = 'ROUTE_HIDE_IN_MAP';\nexport const ROUTES_ALL_SHOW_IN_MAP = 'ROUTES_ALL_SHOW_IN_MAP';\nexport const ROUTES_ALL_HIDE_IN_MAP = 'ROUTES_ALL_HIDE_IN_MAP';\n\nexport interface Route {\n isShownInMap: boolean;\n isSelected: boolean;\n routeId: number;\n routeName: string;\n abbreviation: string;\n distance: number;\n sourceName: string;\n targetName: string;\n privateCode: null | string;\n globalNotificationEmails: null | string;\n globalNotificationFrec: null | string;\n notificationEmails: null | string;\n notificationEvents: null | string;\n operatorId: number;\n organizationId: number;\n organizationName: string;\n divisionId: number | null;\n divisionName: string | null;\n subdivisionId: number | null;\n subdivisionName: string | null;\n completionTimeByUser: number;\n speedLimit: number | null;\n startTimeWindow: number | null;\n routeGroupId: number | null;\n checkPoints: number;\n routeStatus: number;\n customerId: number | null;\n customerName: null | string;\n isConfirmed: boolean;\n checkpoints: any[];\n distanceFormat: string;\n speedLimitFormat: number;\n}\n","export const DASHBOARD = 1;\nexport const MAP = 2;\nexport const REPORTS = 3;\nexport const TRACKING_UNITS = 4;\nexport const GEOFENCES_CATALOG = 5;\nexport const ASSIGNED_GEOFENCES = 6;\nexport const LOCATIONS_CATALOG = 7;\nexport const IMPORT_LOCATIONS = 8;\nexport const BACKLOG_JOBS = 9;\nexport const JOBS_BOARD = 10;\nexport const JOBS_REPORT = 11;\nexport const JOBS_WORK_ACTIVITY = 12;\nexport const SAFE_DRIVER = 13;\nexport const LOGISTIC_ROUTE_CATALOG = 14;\nexport const LOGISTIC_ROUTE_MONITOR = 15;\nexport const LOGISTIC_ROUTE_REPORT = 16;\nexport const ASSIGN_LOGISTIC_ROUTE = 17;\nexport const WORK_PLAN_CATALOG = 18;\nexport const WORK_PLAN_MONITOR = 19;\nexport const WORK_PLAN_REPORT = 20;\nexport const ASSIGN_WORK_PLAN = 21;\nexport const TEMPERATURE_TELEMETRY = 22;\nexport const FUEL_TELEMETRY_MONITOR = 23;\nexport const PREVENTIVE_NOTICES = 24;\nexport const SPAREPARTS_CATALOG = 25;\nexport const WORKMANSHIPS_CATALOG = 26;\nexport const SPAREPARTS_CATEGORIES_CATALOG = 27;\nexport const SPAREPARTS_PROVIDERS_CATALOG = 28;\nexport const GENERAL_MAINTENANCE_REPORT = 29;\nexport const BY_CATEGORY_REPORT = 30;\nexport const BY_UNIT_REPORT = 31;\nexport const BY_WORKSHOP_REPORT = 32;\nexport const IMPORT_MAINTENANCE_TICKETS = 33;\nexport const NEW_TICKET = 34;\nexport const IMPORT_FUEL_TICKETS = 35;\nexport const FUEL_TICKETS_CONSOLIDATED_REPORT = 36;\nexport const FUEL_TICKETS_REPORT_BY_UNIT = 37;\nexport const OPERATOR = 38;\nexport const ORGANIZATION = 39;\nexport const DIVISION = 40;\nexport const SUBDIVISION = 41;\nexport const SERVICE_CLASSES = 42;\nexport const AGENT = 43;\nexport const GROUPS = 44;\nexport const SHIFT = 45;\nexport const TRIGGER = 46;\nexport const USERS = 47;\nexport const DRIVERS = 48;\nexport const PEOPLE = 49;\nexport const FORMS_CATALOG = 50;\nexport const ANSWERS_FORMS = 51;\nexport const DEVICES = 52;\nexport const SIMS = 53;\nexport const SENSORS = 54;\nexport const ASSETS = 55;\nexport const VEHICLES = 56;\nexport const EMAIL_NOTIFICATIONS = 57;\nexport const CONSOLE_NOTIFICATIONS = 58;\nexport const WEB_SERVICE_NOTIFICATIONS = 59;\nexport const IMPORT_JOBS = 60;\nexport const SCHEDULED_WORKPLANS = 61;\nexport const FUEL_TELEMETRY_REPORT = 62;\nexport const CONTRACTS = 63;\nexport const FLEET = 64;\nexport const CUSTOMERS = 65;\nexport const CONTACTS = 66;\nexport const MAINTENANCE_RANGES = 67;\nexport const CONTRACT_TEMPLATES = 68;\nexport const QUOTATIONS = 69;\nexport const OPTIMIZATIONS = 70;\nexport const IMPORT_ROUTE_ASSIGNMENTS = 72;\nexport const RECORD_MULTIPLE_TICKETS = 73;\nexport const BUSINESS_PARTNERS = 74;\nexport const WEB_SERVICE_RATES = 75;\nexport const WORKPLAN_IMPORT = 76;\nexport const TELEMETRY_UNITS = 77;\nexport const WORKSHOP_ADD_ORDER = 78;\nexport const AUTOMATIZATIONS = 79;\nexport const TELEMETRY_OBD2 = 80;\nexport const FUEL_TELEMETRY_REPORT_BY_VEHICLES = 81;\nexport const PROTOCOL_CATALOG = 82;\n","import { ReduxUnit } from 'views/screens/Units/types';\n\nexport const GEOFENCES_FETCH_STARTED = 'GEOFENCES_FETCH_STARTED';\nexport const GEOFENCES_FETCH_COMPLETED = 'GEOFENCES_FETCH_COMPLETED';\nexport const GEOFENCES_FETCH_FAILED = 'GEOFENCES_FETCH_FAILED';\n\nexport const GEOFENCES_PARTIAL_FETCH_STARTED = 'GEOFENCES_PARTIAL_FETCH_STARTED';\nexport const GEOFENCES_PARTIAL_FETCH_COMPLETED = 'GEOFENCES_PARTIAL_FETCH_COMPLETED';\nexport const GEOFENCES_PARTIAL_FETCH_FAILED = 'GEOFENCES_PARTIAL_FETCH_FAILED';\n\nexport const GEOFENCE_ADD_STARTED = 'GEOFENCE_ADD_STARTED';\nexport const GEOFENCE_ADD_COMPLETED = 'GEOFENCE_ADD_COMPLETED';\nexport const GEOFENCE_ADD_FAILED = 'GEOFENCE_ADD_FAILED';\n\nexport const GEOFENCE_EDIT_STARTED = 'GEOFENCE_EDIT_STARTED';\nexport const GEOFENCE_EDIT_COMPLETED = 'GEOFENCE_EDIT_COMPLETED';\nexport const GEOFENCE_EDIT_FAILED = 'GEOFENCE_EDIT_FAILED';\n\nexport const GEOFENCE_REMOVE_STARTED = 'GEOFENCE_REMOVE_STARTED';\nexport const GEOFENCE_REMOVE_COMPLETED = 'GEOFENCE_REMOVE_COMPLETED';\nexport const GEOFENCE_REMOVE_FAILED = 'GEOFENCE_REMOVE_FAILED';\n\nexport const GEOFENCE_SELECTED = 'GEOFENCE_SELECTED';\nexport const GEOFENCES_ALL_SELECTED = 'GEOFENCES_ALL_SELECTED';\nexport const GEOFENCE_DESELECTED = 'GEOFENCE_DESELECTED';\nexport const GEOFENCES_ALL_DESELECTED = 'GEOFENCES_ALL_DESELECTED';\n\nexport const GEOFENCE_SHOW_IN_MAP = 'GEOFENCE_SHOW_IN_MAP';\nexport const GEOFENCES_ALL_SHOW_IN_MAP = 'GEOFENCES_ALL_SHOW_IN_MAP';\nexport const GEOFENCE_HIDE_IN_MAP = 'GEOFENCE_HIDE_IN_MAP';\nexport const GEOFENCES_ALL_HIDE_IN_MAP = 'GEOFENCES_ALL_HIDE_IN_MAP';\n\nexport const GEOFENCE_ASSIGN_UNIT_STARTED = 'GEOFENCE_ASSIGN_UNIT_STARTED';\nexport const GEOFENCE_ASSIGN_UNIT_COMPLETED = 'GEOFENCE_ASSIGN_UNIT_COMPLETED';\nexport const GEOFENCE_ASSIGN_UNIT_FAILED = 'GEOFENCE_ASSIGN_UNIT_FAILED';\n\nexport const GEOFENCE_ASSIGNATION_REMOVE_STARTED = 'GEOFENCE_ASSIGNATION_REMOVE_STARTED';\nexport const GEOFENCE_ASSIGNATION_REMOVE_COMPLETED = 'GEOFENCE_ASSIGNATION_REMOVE_COMPLETED';\nexport const GEOFENCE_ASSIGNATION_REMOVE_FAILED = 'GEOFENCE_ASSIGNATION_REMOVE_FAILED';\n\nexport const GEOFENCE_ASSIGNATION_REMOVE_BY_GEOFENCES_STARTED =\n 'GEOFENCE_ASSIGNATION_REMOVE_BY_GEOFENCES_STARTED';\nexport const GEOFENCE_ASSIGNATION_REMOVE_BY_GEOFENCES_COMPLETED =\n 'GEOFENCE_ASSIGNATION_REMOVE_BY_GEOFENCES_COMPLETED';\nexport const GEOFENCE_ASSIGNATION_REMOVE_BY_GEOFENCES_FAILED =\n 'GEOFENCE_ASSIGNATION_REMOVE_BY_GEOFENCES_FAILED';\n\nexport const GEOFENCE_ASSIGNATION_REMOVE_BY_UNITS_STARTED =\n 'GEOFENCE_ASSIGNATION_REMOVE_BY_UNITS_STARTED';\nexport const GEOFENCE_ASSIGNATION_REMOVE_BY_UNITS_COMPLETED =\n 'GEOFENCE_ASSIGNATION_REMOVE_BY_UNIT_COMPLETED';\nexport const GEOFENCE_ASSIGNATION_REMOVE_BY_UNITS_FAILED =\n 'GEOFENCE_ASSIGNATION_REMOVE_BY_UNIT_FAILED';\n\nexport const GEOFENCE_ASSIGNATION_EDIT_STARTED = 'GEOFENCE_ASSIGNATION_EDIT_STARTED';\nexport const GEOFENCE_ASSIGNATION_EDIT_COMPLETED = 'GEOFENCE_ASSIGNATION_EDIT_COMPLETED';\nexport const GEOFENCE_ASSIGNATION_EDIT_FAILED = 'GEOFENCE_ASSIGNATION_EDIT_FAILED';\n\nexport interface ReduxGeofence {\n isSelected: boolean;\n isShowInMap: boolean;\n geofenceId: number;\n geofenceStatus: number;\n geofenceAddress: string;\n shape: string;\n privateCode: string;\n geofenceName: string;\n operatorId: number;\n organizationId: number;\n organizationName: string;\n divisionId?: number;\n subdivisionId?: number;\n vertexCount: number;\n color: string;\n radius: number;\n latitude: number;\n latitude2?: number;\n longitude: number;\n longitude2?: number;\n isParentGeofence?: boolean;\n isActivationGeofence: boolean;\n parentGeofenceId?: number;\n geofenceWktString: string;\n isConfirmed: boolean;\n isShownInMap: boolean;\n divisionName: string;\n subdivisionName: string;\n}\n\nexport interface Assignment extends ReduxGeofence, ReduxUnit {\n operatorName: string;\n notify: number;\n consoles: string;\n notificationEmails: string;\n}\n","export const MONITORING_USERS_FETCH_STARTED = 'MONITORING_USERS_FETCH_STARTED';\nexport const MONITORING_USERS_FETCH_COMPLETED = 'MONITORING_USERS_FETCH_COMPLETED';\nexport const MONITORING_USERS_FETCH_FAILED = 'MONITORING_USERS_FETCH_FAILED';\n\nexport const MONITORING_USERS_PARTIAL_FETCH_STARTED = 'MONITORING_USERS_PARTIAL_FETCH_STARTED';\nexport const MONITORING_USERS_PARTIAL_FETCH_COMPLETED = 'MONITORING_USERS_PARTIAL_FETCH_COMPLETED';\nexport const MONITORING_USERS_PARTIAL_FETCH_FAILED = 'MONITORING_USERS_PARTIAL_FETCH_FAILED';\n\nexport const MONITORING_USER_ADD_STARTED = 'MONITORING_USER_ADD_STARTED';\nexport const MONITORING_USER_ADD_COMPLETED = 'MONITORING_USER_ADD_COMPLETED';\nexport const MONITORING_USER_ADD_FAILED = 'MONITORING_USER_ADD_FAILED';\n\nexport const MONITORING_USER_EDIT_STARTED = 'MONITORING_USER_EDIT_STARTED';\nexport const MONITORING_USER_EDIT_COMPLETED = 'MONITORING_USER_EDIT_COMPLETED';\nexport const MONITORING_USER_EDIT_FAILED = 'MONITORING_USER_EDIT_FAILED';\n\nexport const MONITORING_USER_REMOVE_STARTED = 'MONITORING_USER_REMOVE_STARTED';\nexport const MONITORING_USER_REMOVE_COMPLETED = 'MONITORING_USER_REMOVE_COMPLETED';\nexport const MONITORING_USER_REMOVE_FAILED = 'MONITORING_USER_REMOVE_FAILED';\n\nexport const MONITORING_USER_FETCH_STARTED = 'MONITORING_USER_FETCH_STARTED';\nexport const MONITORING_USER_FETCH_COMPLETED = 'MONITORING_USER_FETCH_COMPLETED';\nexport const MONITORING_USER_FETCH_FAILED = 'MONITORING_USER_FETCH_FAILED';\n\nexport const MONITORING_USER_SELECTED = 'MONITORING_USER_SELECTED';\nexport const MONITORING_USERS_ALL_SELECTED = 'MONITORING_USERS_ALL_SELECTED';\nexport const MONITORING_USER_DESELECTED = 'MONITORING_USER_DESELECTED';\nexport const MONITORING_USERS_ALL_DESELECTED = 'MONITORING_USERS_ALL_DESELECTED';\n\nexport const MONITORING_USER_UPDATE_PASSWORD_STARTED = 'MONITORING_USER_UPDATE_PASSWORD_STARTED';\nexport const MONITORING_USER_UPDATE_PASSWORD_COMPLETED =\n 'MONITORING_USER_UPDATE_PASSWORD_COMPLETED';\nexport const MONITORING_USER_UPDATE_PASSWORD_FAILED = 'MONITORING_USER_UPDATE_PASSWORD_FAILED';\n\nexport const MONITORING_USER_SAVE_ROLES_PERMISSIONS_STARTED =\n 'MONITORING_USER_SAVE_ROLES_PERMISSIONS_STARTED';\nexport const MONITORING_USER_SAVE_ROLES_PERMISSIONS_COMPLETED =\n 'MONITORING_USER_SAVE_ROLES_PERMISSIONS_COMPLETED';\n\nexport const USERS_ASSIGN_SCHEDULE_STARTED = 'USERS_ASSIGN_SCHEDULE_STARTED';\nexport const USERS_ASSIGN_SCHEDULE_COMPLETED = 'USERS_ASSIGN_SCHEDULE_COMPLETED';\n\nexport const USERS_UNASSIGN_SCHEDULE_STARTED = 'USERS_UNASSIGN_SCHEDULE_STARTED';\nexport const USERS_UNASSIGN_SCHEDULE_COMPLETED = 'USERS_UNASSIGN_SCHEDULE_COMPLETED';\n\nexport interface MonitoringUser {\n isSelected: boolean;\n userId: number;\n userName: string;\n brandId?: number | null;\n imageName: null | string;\n userImageUrl: null | string;\n accessLevelId: number;\n accessLevelName: string;\n divisionId: number;\n divisionName: string;\n email: string;\n emailConfirmed: boolean;\n completeName: string;\n organizationId: number;\n organizationName: string;\n phoneNumber: null | string | number;\n subdivisionId: number;\n subdivisionName: string;\n operatorId: number;\n agentId: number | null;\n operatorName: string;\n groupId: number | string;\n utcZoneId: number;\n metricSystemId: number | null;\n currencyId: number | null;\n driverId: number | null;\n driverName: null | string;\n userStatus: number;\n lastLoginDate: string | null;\n enableLocationClustering: boolean | null;\n locationMapLabelAlwaysOn: boolean | null;\n activateUnitTrackMode: boolean | null;\n unitMapLabelAlwaysOn: boolean | null;\n useGoogleMaps: boolean | null;\n useBingMaps: boolean | null;\n useHereMaps: boolean | null;\n unitsLabelContent: null | string;\n roleId: number | null;\n homeScreenId: number | null;\n scheduleId: number | null;\n scheduleName: null | string;\n isConfirmed: boolean;\n}\n\nexport interface AssignedUnit {\n unitId: number;\n unitName: string;\n privateCode?: string;\n}\n","export const LOCATIONS_FETCH_STARTED = 'LOCATIONS_FETCH_STARTED';\nexport const LOCATIONS_FETCH_COMPLETED = 'LOCATIONS_FETCH_COMPLETED';\nexport const LOCATIONS_FETCH_FAILED = 'LOCATIONS_FETCH_FAILED';\n\nexport const LOCATIONS_PARTIAL_FETCH_STARTED = 'LOCATIONS_PARTIAL_FETCH_STARTED';\nexport const LOCATIONS_PARTIAL_FETCH_COMPLETED = 'LOCATIONS_PARTIAL_FETCH_COMPLETED';\nexport const LOCATIONS_PARTIAL_FETCH_FAILED = 'LOCATIONS_PARTIAL_FETCH_FAILED';\n\nexport const LOCATION_ADD_STARTED = 'LOCATION_ADD_STARTED';\nexport const LOCATION_ADD_COMPLETED = 'LOCATION_ADD_COMPLETED';\nexport const LOCATION_ADD_FAILED = 'LOCATION_ADD_FAILED';\n\nexport const LOCATION_EDIT_STARTED = 'LOCATION_EDIT_STARTED';\nexport const LOCATION_EDIT_COMPLETED = 'LOCATION_EDIT_COMPLETED';\nexport const LOCATION_EDIT_FAILED = 'LOCATION_EDIT_FAILED';\n\nexport const LOCATION_REMOVE_STARTED = 'LOCATION_REMOVE_STARTED';\nexport const LOCATION_REMOVE_COMPLETED = 'LOCATION_REMOVE_COMPLETED';\nexport const LOCATION_REMOVE_FAILED = 'LOCATION_REMOVE_FAILED';\n\nexport const LOCATIONS_IMPORT_STARTED = 'LOCATIONS_IMPORT_STARTED';\nexport const LOCATIONS_IMPORT_COMPLETED = 'LOCATIONS_IMPORT_COMPLETED';\nexport const LOCATIONS_IMPORT_FAILED = 'LOCATIONS_IMPORT_FAILED';\n\nexport const LOCATION_SELECTED = 'LOCATION_SELECTED';\nexport const LOCATIONS_ALL_SELECTED = 'LOCATIONS_ALL_SELECTED';\nexport const LOCATION_DESELECTED = 'LOCATION_DESELECTED';\nexport const LOCATIONS_ALL_DESELECTED = 'LOCATIONS_ALL_DESELECTED';\n\nexport const LOCATION_SHOW_IN_MAP = 'LOCATION_SHOW_IN_MAP';\nexport const LOCATIONS_ALL_SHOW_IN_MAP = 'LOCATIONS_ALL_SHOW_IN_MAP';\nexport const LOCATION_HIDE_IN_MAP = 'LOCATION_HIDE_IN_MAP';\nexport const LOCATIONS_ALL_HIDE_IN_MAP = 'LOCATIONS_ALL_HIDE_IN_MAP';\n\nexport interface NewReduxLocation {\n isSelected: boolean;\n isShownInMap: boolean;\n locationId: number;\n locationAddress: string;\n dispatchCompletionType: number | null;\n dispatchEmails: string;\n dispatchNotificationFreq: number;\n enableDispatch: boolean;\n icon: string;\n latitude: number;\n locationName: string;\n locationTypeId: number;\n longitude: number;\n operatorId: number;\n organizationId: number;\n organizationName: string;\n divisionId: number | null;\n divisionName: string | null;\n subdivisionId: number | null;\n subdivisionName: string | null;\n customerId: number | null;\n officeId: number | null;\n privateCode: null | string;\n radius: number;\n locationClassId: number;\n locationClassName: string;\n locationClassIconName: string;\n locationClassDefaultColor: string | null;\n locationStatus: number;\n fullImageUrl: null | string;\n imageUrl: null | string;\n imageTypeId: number | null;\n imageCount: number;\n isConfirmed: boolean;\n}\n","export const DRIVERS_FETCH_STARTED = 'DRIVERS_FETCH_STARTED';\nexport const DRIVERS_FETCH_COMPLETED = 'DRIVERS_FETCH_COMPLETED';\nexport const DRIVERS_FETCH_FAILED = 'DRIVERS_FETCH_FAILED';\n\nexport const DRIVERS_PARTIAL_FETCH_STARTED = 'DRIVERS_PARTIAL_FETCH_STARTED';\nexport const DRIVERS_PARTIAL_FETCH_COMPLETED = 'DRIVERS_PARTIAL_FETCH_COMPLETED';\nexport const DRIVERS_PARTIAL_FETCH_FAILED = 'DRIVERS_PARTIAL_FETCH_FAILED';\n\nexport const DRIVER_ADD_STARTED = 'DRIVER_ADD_STARTED';\nexport const DRIVER_ADD_COMPLETED = 'DRIVER_ADD_COMPLETED';\nexport const DRIVER_ADD_FAILED = 'DRIVER_ADD_FAILED';\n\nexport const DRIVER_EDIT_STARTED = 'DRIVER_EDIT_STARTED';\nexport const DRIVER_EDIT_COMPLETED = 'DRIVER_EDIT_COMPLETED';\nexport const DRIVER_EDIT_FAILED = 'DRIVER_EDIT_FAILED';\n\nexport const DRIVER_REMOVE_STARTED = 'DRIVER_REMOVE_STARTED';\nexport const DRIVER_REMOVE_COMPLETED = 'DRIVER_REMOVE_COMPLETED';\nexport const DRIVER_REMOVE_FAILED = 'DRIVER_REMOVE_FAILED';\n\nexport const DRIVER_SELECTED = 'DRIVER_SELECTED';\nexport const DRIVERS_ALL_SELECTED = 'DRIVERS_ALL_SELECTED';\nexport const DRIVER_DESELECTED = 'DRIVER_DESELECTED';\nexport const DRIVERS_ALL_DESELECTED = 'DRIVERS_ALL_DESELECTED';\n\nexport const START_IMPORT_DRIVERS_UNITS_IMPORT = 'START_IMPORT_DRIVERS_UNITS_IMPORT';\nexport const COMPLETE_IMPORT_DRIVERS_UNITS_IMPORT = 'COMPLETE_IMPORT_DRIVERS_UNITS_IMPORT';\n\nexport const START_MASSIVE_DRIVERS_ASSIGNMENT = 'START_MASSIVE_DRIVERS_ASSIGNMENT';\nexport const COMPLETE_MASSIVE_DRIVERS_ASSIGNMENT = 'COMPLETE_MASSIVE_DRIVERS_ASSIGNMENT';\n\nexport const DRIVER_ASSIGN_SENSOR_STARTED = 'DRIVER_ASSIGN_SENSOR_STARTED';\nexport const DRIVER_ASSIGN_SENSOR_COMPLETED = 'DRIVER_ASSIGN_SENSOR_COMPLETED';\n\nexport const DRIVER_UNASSIGN_SENSOR_STARTED = 'DRIVER_UNASSIGN_SENSOR_STARTED';\nexport const DRIVER_UNASSIGN_SENSOR_COMPLETED = 'DRIVER_UNASSIGN_SENSOR_COMPLETED';\n\nexport interface Driver {\n isSelected: boolean;\n isShownInMap: boolean;\n driverId: number;\n driverName: string;\n driverPhotoUrl: string;\n driverPhoto: null | string;\n driverStatus: number;\n birthDate: string | null;\n identificationNumber: null | string;\n licenseExpireDate: string | null;\n privateCode: null | string;\n licenseType: null | string;\n licenseNumber: null | string;\n dallasKey: null | string;\n bloodType: null | string;\n phoneNumber: null | string;\n useGlasses: number | null;\n bloodSugarProblems: number | null;\n experience: null | string;\n gender: number | null;\n workDate: string | null;\n operatorId: number;\n operatorName: string;\n organizationId: number;\n organizationName: string;\n divisionId: number | null;\n divisionName: string | null;\n subdivisionId: number | null;\n subdivisionName: string | null;\n sensorId: null | number;\n sensorName: null | string;\n totalFiles: number;\n isConfirmed: boolean;\n}\n","export const SENSORS_FETCH_STARTED = 'SENSORS_FETCH_STARTED';\nexport const SENSORS_FETCH_COMPLETED = 'SENSORS_FETCH_COMPLETED';\nexport const SENSORS_FETCH_FAILED = 'SENSORS_FETCH_FAILED';\n\nexport const SENSORS_PARTIAL_FETCH_STARTED = 'SENSORS_PARTIAL_FETCH_STARTED';\nexport const SENSORS_PARTIAL_FETCH_COMPLETED = 'SENSORS_PARTIAL_FETCH_COMPLETED';\nexport const SENSORS_PARTIAL_FETCH_FAILED = 'SENSORS_PARTIAL_FETCH_FAILED';\n\nexport const SENSOR_FETCH_STARTED = 'SENSOR_FETCH_STARTED';\nexport const SENSOR_FETCH_COMPLETED = 'SENSOR_FETCH_COMPLETED';\nexport const SENSOR_FETCH_FAILED = 'SENSOR_FETCH_FAILED';\n\nexport const SENSOR_ADD_STARTED = 'SENSOR_ADD_STARTED';\nexport const SENSOR_ADD_COMPLETED = 'SENSOR_ADD_COMPLETED';\nexport const SENSOR_ADD_FAILED = 'SENSOR_ADD_FAILED';\n\nexport const SENSOR_EDIT_STARTED = 'SENSOR_EDIT_STARTED';\nexport const SENSOR_EDIT_COMPLETED = 'SENSOR_EDIT_COMPLETED';\nexport const SENSOR_EDIT_FAILED = 'SENSOR_EDIT_FAILED';\n\nexport const SENSOR_REMOVE_STARTED = 'SENSOR_REMOVE_STARTED';\nexport const SENSOR_REMOVE_COMPLETED = 'SENSOR_REMOVE_COMPLETED';\nexport const SENSOR_REMOVE_FAILED = 'SENSOR_REMOVE_FAILED';\n\nexport const SENSOR_SELECTED = 'SENSOR_SELECTED';\nexport const SENSORS_ALL_SELECTED = 'SENSORS_ALL_SELECTED';\nexport const SENSOR_DESELECTED = 'SENSOR_DESELECTED';\nexport const SENSORS_ALL_DESELECTED = 'SENSORS_ALL_DESELECTED';\n\nexport const IDENTIFIER_CHECK_STARTED = 'IDENTIFIER_CHECK_STARTED';\nexport const IDENTIFIER_CHECK_COMPLETED = 'IDENTIFIER_CHECK_COMPLETED';\nexport const IDENTIFIER_CHECK_FAILED = 'IDENTIFIER_CHECK_FAILED';\n\nexport const START_SENSOR_CALIBRATION_STARTED = 'START_SENSOR_CALIBRATION_STARTED';\nexport const START_SENSOR_CALIBRATION_COMPLETED = 'START_SENSOR_CALIBRATION_COMPLETED';\nexport const START_SENSOR_CALIBRATION_FAILED = 'START_SENSOR_CALIBRATION_FAILED';\n\nexport const FINALIZE_SENSOR_CALIBRATION_STARTED = 'FINALIZE_SENSOR_CALIBRATION_STARTED';\nexport const FINALIZE_SENSOR_CALIBRATION_COMPLETED = 'FINALIZE_SENSOR_CALIBRATION_COMPLETED';\nexport const FINALIZE_SENSOR_CALIBRATION_FAILED = 'FINALIZE_SENSOR_CALIBRATION_FAILED';\n","export const SCHEDULES_FETCH_STARTED = 'SCHEDULES_FETCH_STARTED';\nexport const SCHEDULES_FETCH_COMPLETED = 'SCHEDULES_FETCH_COMPLETED';\nexport const SCHEDULES_FETCH_FAILED = 'SCHEDULES_FETCH_FAILED';\n\nexport const SCHEDULES_PARTIAL_FETCH_STARTED = 'SCHEDULES_PARTIAL_FETCH_STARTED';\nexport const SCHEDULES_PARTIAL_FETCH_COMPLETED = 'SCHEDULES_PARTIAL_FETCH_COMPLETED';\nexport const SCHEDULES_PARTIAL_FETCH_FAILED = 'SCHEDULES_PARTIAL_FETCH_FAILED';\n\nexport const SCHEDULE_ADD_STARTED = 'SCHEDULE_ADD_STARTED';\nexport const SCHEDULE_ADD_COMPLETED = 'SCHEDULE_ADD_COMPLETED';\nexport const SCHEDULE_ADD_FAILED = 'SCHEDULE_ADD_FAILED';\n\nexport const SCHEDULE_SHIFT_ADD_STARTED = 'SCHEDULE_SHIFT_ADD_STARTED';\nexport const SCHEDULE_SHIFT_ADD_COMPLETED = 'SCHEDULE_SHIFT_ADD_COMPLETED';\nexport const SCHEDULE_SHIFT_ADD_FAILED = 'SCHEDULE_SHIFT_ADD_FAILED';\n\nexport const SCHEDULE_EDIT_STARTED = 'SCHEDULE_EDIT_STARTED';\nexport const SCHEDULE_EDIT_COMPLETED = 'SCHEDULE_EDIT_COMPLETED';\nexport const SCHEDULE_EDIT_FAILED = 'SCHEDULE_EDIT_FAILED';\n\nexport const SCHEDULE_SHIFT_EDIT_STARTED = 'SCHEDULE_SHIFT_EDIT_STARTED';\nexport const SCHEDULE_SHIFT_EDIT_COMPLETED = 'SCHEDULE_SHIFT_EDIT_COMPLETED';\nexport const SCHEDULE_SHIFT_EDIT_FAILED = 'SCHEDULE_SHIFT_EDIT_FAILED';\n\nexport const SCHEDULE_REMOVE_STARTED = 'SCHEDULE_REMOVE_STARTED';\nexport const SCHEDULE_REMOVE_COMPLETED = 'SCHEDULE_REMOVE_COMPLETED';\nexport const SCHEDULE_REMOVE_FAILED = 'SCHEDULE_REMOVE_FAILED';\n\nexport const SCHEDULE_SELECTED = 'SCHEDULE_SELECTED';\nexport const SCHEDULES_ALL_SELECTED = 'SCHEDULES_ALL_SELECTED';\nexport const SCHEDULE_DESELECTED = 'SCHEDULE_DESELECTED';\nexport const SCHEDULES_ALL_DESELECTED = 'SCHEDULES_ALL_DESELECTED';\n","export const ASSETS_FETCH_STARTED = 'ASSETS_FETCH_STARTED';\nexport const ASSETS_FETCH_COMPLETED = 'ASSETS_FETCH_COMPLETED';\nexport const ASSETS_FETCH_FAILED = 'ASSETS_FETCH_FAILED';\n\nexport const ASSETS_PARTIAL_FETCH_STARTED = 'ASSETS_PARTIAL_FETCH_STARTED';\nexport const ASSETS_PARTIAL_FETCH_COMPLETED = 'ASSETS_PARTIAL_FETCH_COMPLETED';\nexport const ASSETS_PARTIAL_FETCH_FAILED = 'ASSETS_PARTIAL_FETCH_FAILED';\n\nexport const ASSET_ADD_STARTED = 'ASSET_ADD_STARTED';\nexport const ASSET_ADD_COMPLETED = 'ASSET_ADD_COMPLETED';\nexport const ASSET_ADD_FAILED = 'ASSET_ADD_FAILED';\n\nexport const ASSET_EDIT_STARTED = 'ASSET_EDIT_STARTED';\nexport const ASSET_EDIT_COMPLETED = 'ASSET_EDIT_COMPLETED';\nexport const ASSET_EDIT_FAILED = 'ASSET_EDIT_FAILED';\n\nexport const ASSET_REMOVE_STARTED = 'ASSET_REMOVE_STARTED';\nexport const ASSET_REMOVE_COMPLETED = 'ASSET_REMOVE_COMPLETED';\nexport const ASSET_REMOVE_FAILED = 'ASSET_REMOVE_FAILED';\n\nexport const ASSET_SELECTED = 'ASSET_SELECTED';\nexport const ASSETS_ALL_SELECTED = 'ASSETS_ALL_SELECTED';\nexport const ASSET_DESELECTED = 'ASSET_DESELECTED';\nexport const ASSETS_ALL_DESELECTED = 'ASSETS_ALL_DESELECTED';\n\nexport const ASSET_IDENTIFIER_CHECK_STARTED = 'ASSET_IDENTIFIER_CHECK_STARTED';\nexport const ASSET_IDENTIFIER_CHECK_COMPLETED = 'ASSET_IDENTIFIER_CHECK_COMPLETED';\nexport const ASSET_IDENTIFIER_CHECK_FAILED = 'ASSET_IDENTIFIER_CHECK_FAILED';\n\nexport const ASSET_SECURITY_SEAL_CODE_CHECK_STARTED = 'ASSET_SECURITY_SEAL_CODE_CHECK_STARTED';\nexport const ASSET_SECURITY_SEAL_CODE_CHECK_COMPLETED = 'ASSET_SECURITY_SEAL_CODE_CHECK_COMPLETED';\nexport const ASSET_SECURITY_SEAL_CODE_CHECK_FAILED = 'ASSET_SECURITY_SEAL_CODE_CHECK_FAILED';\n","export const MODULES_FETCH_STARTED = 'MODULES_FETCH_STARTED';\nexport const MODULES_FETCH_COMPLETED = 'MODULES_FETCH_COMPLETED';\nexport const MODULES_FETCH_FAILED = 'MODULES_FETCH_FAILED';\n\nexport const MODULES_PARTIAL_FETCH_STARTED = 'MODULES_PARTIAL_FETCH_STARTED';\nexport const MODULES_PARTIAL_FETCH_COMPLETED = 'MODULES_PARTIAL_FETCH_COMPLETED';\nexport const MODULES_PARTIAL_FETCH_FAILED = 'MODULES_PARTIAL_FETCH_FAILED';\n\nexport const MODULE_FETCH_STARTED = 'MODULE_FETCH_STARTED';\nexport const MODULE_FETCH_COMPLETED = 'MODULE_FETCH_COMPLETED';\nexport const MODULE_FETCH_FAILED = 'MODULE_FETCH_FAILED';\n\nexport const MODULE_ADD_STARTED = 'MODULE_ADD_STARTED';\nexport const MODULE_ADD_COMPLETED = 'MODULE_ADD_COMPLETED';\nexport const MODULE_ADD_FAILED = 'MODULE_ADD_FAILED';\n\nexport const MODULE_EDIT_STARTED = 'MODULE_EDIT_STARTED';\nexport const MODULE_EDIT_COMPLETED = 'MODULE_EDIT_COMPLETED';\nexport const MODULE_EDIT_FAILED = 'MODULE_EDIT_FAILED';\n\nexport const MODULE_REMOVE_STARTED = 'MODULE_REMOVE_STARTED';\nexport const MODULE_REMOVE_COMPLETED = 'MODULE_REMOVE_COMPLETED';\nexport const MODULE_REMOVE_FAILED = 'MODULE_REMOVE_FAILED';\n\nexport const MODULE_SELECTED = 'MODULE_SELECTED';\nexport const MODULES_ALL_SELECTED = 'MODULES_ALL_SELECTED';\nexport const MODULE_DESELECTED = 'MODULE_DESELECTED';\nexport const MODULES_ALL_DESELECTED = 'MODULES_ALL_DESELECTED';\n\nexport const MODULE_DIRTY = 'MODULE_DIRTY';\nexport const MODULE_UNDIRTY = 'MODULE_UNDIRTY';\n\nexport interface Module {\n isSelected: boolean;\n deviceId: number;\n identifier: string;\n devicePublicId: string;\n serialNumber: null | string;\n imei: null | string;\n propertyTypeId: number;\n brandId: number;\n brandName: string;\n deviceModelId: number;\n deviceModelName: string;\n deviceConfigurationId: number;\n deviceConfigurationName: string;\n deviceStatus: number;\n locationStatus: number;\n operatorPublicId: string;\n operatorId: number;\n operatorName: string;\n organizationId: number;\n divisionId: number | null;\n subdivisionId: number | null;\n unitId: number;\n unitPublicId: string;\n unitName: string;\n devicePassword: null | string;\n warrantyProviderTypeId: number;\n warrantyProviderId: number | null;\n warrantyProviderName: string | null;\n warrantyProviderOperatorId: number | null;\n warrantyProviderOrganizationId: number | null;\n warrantyProviderDivisionId: number | null;\n isConfirmed: boolean;\n locationStatusText?: string;\n locationStatusDescription?: string;\n deviceStatusText?: string;\n deviceStatusDescription?: string;\n propertyTypeText?: string;\n propertyTypeDescription?: string;\n warrantyProviderText?: string;\n warrantyProviderDescription?: string;\n}\n\nexport interface PartialModule extends Partial {}\n","export const OPERATORS_FETCH_STARTED = 'OPERATORS_FETCH_STARTED';\nexport const OPERATORS_FETCH_COMPLETED = 'OPERATORS_FETCH_COMPLETED';\nexport const OPERATORS_FETCH_FAILED = 'OPERATORS_FETCH_FAILED';\n\nexport const OPERATORS_PARTIAL_FETCH_STARTED = 'OPERATORS_PARTIAL_FETCH_STARTED';\nexport const OPERATORS_PARTIAL_FETCH_COMPLETED = 'OPERATORS_PARTIAL_FETCH_COMPLETED';\nexport const OPERATORS_PARTIAL_FETCH_FAILED = 'OPERATORS_PARTIAL_FETCH_FAILED';\n\nexport const OPERATOR_ADD_STARTED = 'OPERATOR_ADD_STARTED';\nexport const OPERATOR_ADD_COMPLETED = 'OPERATOR_ADD_COMPLETED';\nexport const OPERATOR_ADD_FAILED = 'OPERATOR_ADD_FAILED';\n\nexport const OPERATOR_EDIT_STARTED = 'OPERATOR_EDIT_STARTED';\nexport const OPERATOR_EDIT_COMPLETED = 'OPERATOR_EDIT_COMPLETED';\nexport const OPERATOR_EDIT_FAILED = 'OPERATOR_EDIT_FAILED';\n\nexport const OPERATOR_REMOVE_STARTED = 'OPERATOR_REMOVE_STARTED';\nexport const OPERATOR_REMOVE_COMPLETED = 'OPERATOR_REMOVE_COMPLETED';\nexport const OPERATOR_REMOVE_FAILED = 'OPERATOR_REMOVE_FAILED';\n\nexport const OPERATOR_SELECTED = 'OPERATOR_SELECTED';\nexport const OPERATOR_DESELECTED = 'OPERATOR_DESELECTED';\nexport const OPERATORS_ALL_SELECTED = 'OPERATORS_ALL_SELECTED';\nexport const OPERATORS_ALL_DESELECTED = 'OPERATORS_ALL_DESELECTED';\n\nexport const OPERATOR_EDIT_STANDARD_PRICES_STARTED = 'OPERATOR_EDIT_STANDARD_PRICES_STARTED';\nexport const OPERATOR_EDIT_STANDARD_PRICES_FAILED = 'OPERATOR_EDIT_STANDARD_PRICES_FAILED';\nexport const OPERATOR_EDIT_STANDARD_PRICES_COMPLETED = 'OPERATOR_EDIT_STANDARD_PRICES_COMPLETED';\n\nexport interface ReduxOperator {\n isSelected: boolean;\n operatorId: number;\n operatorName: string;\n operatorPhone: string;\n operatorAddress: string;\n comments?: string;\n contactName?: string;\n contactPhone?: string;\n taxNumber?: string;\n contractNumber?: number;\n operatorStatus: number;\n legalRepresentativeId?: number;\n legalRepresentativeName?: string;\n legalRepresentativeIdentification?: string;\n legalRepresentativeAge: number;\n legalRepresentativeNacionality?: string;\n legalRepresentativeAddress?: string;\n recordNumber?: number;\n recordSheet?: number;\n recordBook?: number;\n recordDate?: string;\n utcZoneId?: number;\n quotationValidity?: number;\n isConfirmed: boolean;\n}\n","export const MAINTENANCE_LINES_FETCH_STARTED = 'MAINTENANCE_LINES_FETCH_STARTED';\nexport const MAINTENANCE_LINES_FETCH_COMPLETED = 'MAINTENANCE_LINES_FETCH_COMPLETED';\nexport const MAINTENANCE_LINES_FETCH_FAILED = 'MAINTENANCE_LINES_FETCH_FAILED';\n\nexport const MAINTENANCE_LINES_PARTIAL_FETCH_STARTED = 'MAINTENANCE_LINES_PARTIAL_FETCH_STARTED';\nexport const MAINTENANCE_LINES_PARTIAL_FETCH_COMPLETED =\n 'MAINTENANCE_LINES_PARTIAL_FETCH_COMPLETED';\nexport const MAINTENANCE_LINES_PARTIAL_FETCH_FAILED = 'MAINTENANCE_LINES_PARTIAL_FETCH_FAILED';\n\nexport const MAINTENANCE_LINE_ADD_STARTED = 'MAINTENANCE_LINE_ADD_STARTED';\nexport const MAINTENANCE_LINE_ADD_COMPLETED = 'MAINTENANCE_LINE_ADD_COMPLETED';\nexport const MAINTENANCE_LINE_ADD_FAILED = 'MAINTENANCE_LINE_ADD_FAILED';\n\nexport const MAINTENANCE_LINE_EDIT_STARTED = 'MAINTENANCE_LINE_EDIT_STARTED';\nexport const MAINTENANCE_LINE_EDIT_COMPLETED = 'MAINTENANCE_LINE_EDIT_COMPLETED';\nexport const MAINTENANCE_LINE_EDIT_FAILED = 'MAINTENANCE_LINE_EDIT_FAILED';\n\nexport const MAINTENANCE_LINE_REMOVE_STARTED = 'MAINTENANCE_LINE_REMOVE_STARTED';\nexport const MAINTENANCE_LINE_REMOVE_COMPLETED = 'MAINTENANCE_LINE_REMOVE_COMPLETED';\nexport const MAINTENANCE_LINE_REMOVE_FAILED = 'MAINTENANCE_LINE_REMOVE_FAILED';\n\nexport const MAINTENANCE_LINE_COPY_STARTED = 'MAINTENANCE_LINE_COPY_STARTED';\nexport const MAINTENANCE_LINE_COPY_COMPLETED = 'MAINTENANCE_LINE_COPY_COMPLETED';\nexport const MAINTENANCE_LINE_COPY_FAILED = 'MAINTENANCE_LINE_COPY_FAILED';\n\nexport const MAINTENANCE_LINE_SELECTED = 'MAINTENANCE_LINE_SELECTED';\nexport const MAINTENANCE_LINES_ALL_SELECTED = 'MAINTENANCE_LINES_ALL_SELECTED';\nexport const MAINTENANCE_LINE_DESELECTED = 'MAINTENANCE_LINE_DESELECTED';\nexport const MAINTENANCE_LINES_ALL_DESELECTED = 'MAINTENANCE_LINES_ALL_DESELECTED';\n\nexport interface MaintenancePlans {\n isSelected: boolean;\n maintenanceLineId: number;\n maintenanceLineName: string;\n isCycle: boolean;\n operatorId: number;\n operatorName: string;\n organizationId: number;\n organizationName: string;\n divisionId: number | null;\n divisionName: null | string;\n subdivisionId: number | null;\n subdivisionName: null | string;\n maintenanceRangesByOdometer: null | string;\n maintenanceRangesByHourMeter: null | string;\n maintenanceLineStatus: number;\n maintenanceNoticeTypeId: number;\n isConfirmed: boolean;\n}\n\nexport enum MaintenanceNoticeTypes {\n Odometer = 1,\n Date = 2,\n HoursOfWork = 3,\n MaintenanceLinesByOdometer = 4,\n MaintenanceLinesByHourmeter = 5\n}\n","export const AGENTS_FETCH_STARTED = 'AGENTS_FETCH_STARTED';\nexport const AGENTS_FETCH_COMPLETED = 'AGENTS_FETCH_COMPLETED';\nexport const AGENTS_FETCH_FAILED = 'AGENTS_FETCH_FAILED';\n\nexport const AGENTS_PARTIAL_FETCH_STARTED = 'AGENTS_PARTIAL_FETCH_STARTED';\nexport const AGENTS_PARTIAL_FETCH_COMPLETED = 'AGENTS_PARTIAL_FETCH_COMPLETED';\nexport const AGENTS_PARTIAL_FETCH_FAILED = 'AGENTS_PARTIAL_FETCH_FAILED';\n\nexport const AGENT_FETCH_STARTED = 'AGENT_FETCH_STARTED';\nexport const AGENT_FETCH_COMPLETED = 'AGENT_FETCH_COMPLETED';\nexport const AGENT_FETCH_FAILED = 'AGENT_FETCH_FAILED';\n\nexport const AGENT_ADD_STARTED = 'AGENT_ADD_STARTED';\nexport const AGENT_ADD_COMPLETED = 'AGENT_ADD_COMPLETED';\nexport const AGENT_ADD_FAILED = 'AGENT_ADD_FAILED';\n\nexport const AGENT_EDIT_STARTED = 'AGENT_EDIT_STARTED';\nexport const AGENT_EDIT_COMPLETED = 'AGENT_EDIT_COMPLETED';\nexport const AGENT_EDIT_FAILED = 'AGENT_EDIT_FAILED';\n\nexport const AGENT_REMOVE_STARTED = 'AGENT_REMOVE_STARTED';\nexport const AGENT_REMOVE_COMPLETED = 'AGENT_REMOVE_COMPLETED';\nexport const AGENT_REMOVE_FAILED = 'AGENT_REMOVE_FAILED';\n\nexport const AGENT_SELECTED = 'AGENT_SELECTED';\nexport const AGENTS_ALL_SELECTED = 'AGENTS_ALL_SELECTED';\nexport const AGENT_DESELECTED = 'AGENT_DESELECTED';\nexport const AGENTS_ALL_DESELECTED = 'AGENTS_ALL_DESELECTED';\n","export const VEHICLES_FETCH_STARTED = 'VEHICLES_FETCH_STARTED';\nexport const VEHICLES_FETCH_COMPLETED = 'VEHICLES_FETCH_COMPLETED';\nexport const VEHICLES_FETCH_FAILED = 'VEHICLES_FETCH_FAILED';\n\nexport const VEHICLES_PARTIAL_FETCH_STARTED = 'VEHICLES_PARTIAL_FETCH_STARTED';\nexport const VEHICLES_PARTIAL_FETCH_COMPLETED = 'VEHICLES_PARTIAL_FETCH_COMPLETED';\nexport const VEHICLES_PARTIAL_FETCH_FAILED = 'VEHICLES_PARTIAL_FETCH_FAILED';\n\nexport const VEHICLE_ADD_STARTED = 'VEHICLE_ADD_STARTED';\nexport const VEHICLE_ADD_COMPLETED = 'VEHICLE_ADD_COMPLETED';\nexport const VEHICLE_ADD_FAILED = 'VEHICLE_ADD_FAILED';\n\nexport const VEHICLE_EDIT_STARTED = 'VEHICLE_EDIT_STARTED';\nexport const VEHICLE_EDIT_COMPLETED = 'VEHICLE_EDIT_COMPLETED';\nexport const VEHICLE_EDIT_FAILED = 'VEHICLE_EDIT_FAILED';\n\nexport const VEHICLE_REMOVE_STARTED = 'VEHICLE_REMOVE_STARTED';\nexport const VEHICLE_REMOVE_COMPLETED = 'VEHICLE_REMOVE_COMPLETED';\nexport const VEHICLE_REMOVE_FAILED = 'VEHICLE_REMOVE_FAILED';\n\nexport const VEHICLE_SELECTED = 'VEHICLE_SELECTED';\nexport const VEHICLES_ALL_SELECTED = 'VEHICLES_ALL_SELECTED';\nexport const VEHICLE_DESELECTED = 'VEHICLE_DESELECTED';\nexport const VEHICLES_ALL_DESELECTED = 'VEHICLES_ALL_DESELECTED';\n\nexport const VEHICLE_LICENSE_PLATE_CHECK_STARTED = 'VEHICLE_LICENSE_PLATE_CHECK_STARTED';\nexport const VEHICLE_LICENSE_PLATE_CHECK_COMPLETED = 'VEHICLE_LICENSE_PLATE_CHECK_COMPLETED';\nexport const VEHICLE_LICENSE_PLATE_CHECK_FAILED = 'VEHICLE_LICENSE_PLATE_CHECK_FAILED';\n","export const CUSTOMERS_FETCH_STARTED = 'CUSTOMERS_FETCH_STARTED';\nexport const CUSTOMERS_FETCH_COMPLETED = 'CUSTOMERS_FETCH_COMPLETED';\nexport const CUSTOMERS_FETCH_FAILED = 'CUSTOMERS_FETCH_FAILED';\n\nexport const CUSTOMERS_PARTIAL_FETCH_STARTED = 'CUSTOMERS_PARTIAL_FETCH_STARTED';\nexport const CUSTOMERS_PARTIAL_FETCH_COMPLETED = 'CUSTOMERS_PARTIAL_FETCH_COMPLETED';\nexport const CUSTOMERS_PARTIAL_FETCH_FAILED = 'CUSTOMERS_PARTIAL_FETCH_FAILED';\n\nexport const CUSTOMER_ADD_STARTED = 'CUSTOMER_ADD_STARTED';\nexport const CUSTOMER_ADD_COMPLETED = 'CUSTOMER_ADD_COMPLETED';\nexport const CUSTOMER_ADD_FAILED = 'CUSTOMER_ADD_FAILED';\n\nexport const CUSTOMER_EDIT_STARTED = 'CUSTOMER_EDIT_STARTED';\nexport const CUSTOMER_EDIT_COMPLETED = 'CUSTOMER_EDIT_COMPLETED';\nexport const CUSTOMER_EDIT_FAILED = 'CUSTOMER_EDIT_FAILED';\n\nexport const CUSTOMER_REMOVE_STARTED = 'CUSTOMER_REMOVE_STARTED';\nexport const CUSTOMER_REMOVE_COMPLETED = 'CUSTOMER_REMOVE_COMPLETED';\nexport const CUSTOMER_REMOVE_FAILED = 'CUSTOMER_REMOVE_FAILED';\n\nexport const CUSTOMER_SELECTED = 'CUSTOMER_SELECTED';\nexport const CUSTOMERS_ALL_SELECTED = 'CUSTOMERS_ALL_SELECTED';\nexport const CUSTOMER_DESELECTED = 'CUSTOMER_DESELECTED';\nexport const CUSTOMERS_ALL_DESELECTED = 'CUSTOMERS_ALL_DESELECTED';\n\nexport interface Customer {\n isSelected: boolean;\n customerId: number;\n customerName: string;\n businessName: null | string;\n taxId: null | string;\n privateCode: null | string;\n customerStatus: number;\n organizationId: number;\n organizationName: string;\n divisionId: null | number;\n divisionName: null | string;\n subdivisionId: null | number;\n subdivisionName: null | string;\n customerAddress: null | string;\n phone1: null | string;\n phone2: null | string;\n phone3: null | string;\n contactName1: null | string;\n contactName2: null | string;\n contactName3: null | string;\n comments: null | string;\n customerEmails: null | string;\n officeId: number;\n isConfirmed: boolean;\n}\n","export const SERVICECLASSES_FETCH_STARTED = 'SERVICECLASSES_FETCH_STARTED';\nexport const SERVICECLASSES_FETCH_COMPLETED = 'SERVICECLASSES_FETCH_COMPLETED';\nexport const SERVICECLASSES_FETCH_FAILED = 'SERVICECLASSES_FETCH_FAILED';\n\nexport const SERVICECLASSES_PARTIAL_FETCH_STARTED = 'SERVICECLASSES_PARTIAL_FETCH_STARTED';\nexport const SERVICECLASSES_PARTIAL_FETCH_COMPLETED = 'SERVICECLASSES_PARTIAL_FETCH_COMPLETED';\nexport const SERVICECLASSES_PARTIAL_FETCH_FAILED = 'SERVICECLASSES_PARTIAL_FETCH_FAILED';\n\nexport const SERVICECLASS_FETCH_STARTED = 'SERVICECLASS_FETCH_STARTED';\nexport const SERVICECLASS_FETCH_COMPLETED = 'SERVICECLASS_FETCH_COMPLETED';\nexport const SERVICECLASS_FETCH_FAILED = 'SERVICECLASS_FETCH_FAILED';\n\nexport const SERVICECLASS_ADD_STARTED = 'SERVICECLASS_ADD_STARTED';\nexport const SERVICECLASS_ADD_COMPLETED = 'SERVICECLASS_ADD_COMPLETED';\nexport const SERVICECLASS_ADD_FAILED = 'SERVICECLASS_ADD_FAILED';\n\nexport const SERVICECLASS_EDIT_STARTED = 'SERVICECLASS_EDIT_STARTED';\nexport const SERVICECLASS_EDIT_COMPLETED = 'SERVICECLASS_EDIT_COMPLETED';\nexport const SERVICECLASS_EDIT_FAILED = 'SERVICECLASS_EDIT_FAILED';\n\nexport const SERVICECLASS_REMOVE_STARTED = 'SERVICECLASS_REMOVE_STARTED';\nexport const SERVICECLASS_REMOVE_COMPLETED = 'SERVICECLASS_REMOVE_COMPLETED';\nexport const SERVICECLASS_REMOVE_FAILED = 'SERVICECLASS_REMOVE_FAILED';\n\nexport const SERVICECLASS_SELECTED = 'SERVICECLASS_SELECTED';\nexport const SERVICECLASSES_ALL_SELECTED = 'SERVICECLASSES_ALL_SELECTED';\nexport const SERVICECLASS_DESELECTED = 'SERVICECLASS_DESELECTED';\nexport const SERVICECLASSES_ALL_DESELECTED = 'SERVICECLASSES_ALL_DESELECTED';\n","export const DIVISIONS_FETCH_STARTED = \"DIVISIONS_FETCH_STARTED\";\nexport const DIVISIONS_FETCH_COMPLETED = \"DIVISIONS_FETCH_COMPLETED\";\nexport const DIVISIONS_FETCH_FAILED = \"DIVISIONS_FETCH_FAILED\";\n\nexport const DIVISIONS_PARTIAL_FETCH_STARTED =\n \"DIVISIONS_PARTIAL_FETCH_STARTED\";\nexport const DIVISIONS_PARTIAL_FETCH_COMPLETED =\n \"DIVISIONS_PARTIAL_FETCH_COMPLETED\";\nexport const DIVISIONS_PARTIAL_FETCH_FAILED = \"DIVISIONS_PARTIAL_FETCH_FAILED\";\n\nexport const DIVISION_ADD_STARTED = \"DIVISION_ADD_STARTED\";\nexport const DIVISION_ADD_COMPLETED = \"DIVISION_ADD_COMPLETED\";\nexport const DIVISION_ADD_FAILED = \"DIVISION_ADD_FAILED\";\n\nexport const DIVISION_EDIT_STARTED = \"DIVISION_EDIT_STARTED\";\nexport const DIVISION_EDIT_COMPLETED = \"DIVISION_EDIT_COMPLETED\";\nexport const DIVISION_EDIT_FAILED = \"DIVISION_EDIT_FAILED\";\n\nexport const DIVISION_REMOVE_STARTED = \"DIVISION_REMOVE_STARTED\";\nexport const DIVISION_REMOVE_COMPLETED = \"DIVISION_REMOVE_COMPLETED\";\nexport const DIVISION_REMOVE_FAILED = \"DIVISION_REMOVE_FAILED\";\n\nexport const DIVISION_SELECTED = \"DIVISION_SELECTED\";\nexport const DIVISIONS_ALL_SELECTED = \"DIVISIONS_ALL_SELECTED\";\nexport const DIVISION_DESELECTED = \"DIVISION_DESELECTED\";\nexport const DIVISIONS_ALL_DESELECTED = \"DIVISIONS_ALL_DESELECTED\";\n","export const SUBDIVISIONS_FETCH_STARTED = \"SUBDIVISIONS_FETCH_STARTED\";\nexport const SUBDIVISIONS_FETCH_COMPLETED = \"SUBDIVISIONS_FETCH_COMPLETED\";\nexport const SUBDIVISIONS_FETCH_FAILED = \"SUBDIVISIONS_FETCH_FAILED\";\n\nexport const SUBDIVISIONS_PARTIAL_FETCH_STARTED =\n \"SUBDIVISIONS_PARTIAL_FETCH_STARTED\";\nexport const SUBDIVISIONS_PARTIAL_FETCH_COMPLETED =\n \"SUBDIVISIONS_PARTIAL_FETCH_COMPLETED\";\nexport const SUBDIVISIONS_PARTIAL_FETCH_FAILED =\n \"SUBDIVISIONS_PARTIAL_FETCH_FAILED\";\n\nexport const SUBDIVISION_ADD_STARTED = \"SUBDIVISION_ADD_STARTED\";\nexport const SUBDIVISION_ADD_COMPLETED = \"SUBDIVISION_ADD_COMPLETED\";\nexport const SUBDIVISION_ADD_FAILED = \"SUBDIVISION_ADD_FAILED\";\n\nexport const SUBDIVISION_EDIT_STARTED = \"SUBDIVISION_EDIT_STARTED\";\nexport const SUBDIVISION_EDIT_COMPLETED = \"SUBDIVISION_EDIT_COMPLETED\";\nexport const SUBDIVISION_EDIT_FAILED = \"SUBDIVISION_EDIT_FAILED\";\n\nexport const SUBDIVISION_REMOVE_STARTED = \"SUBDIVISION_REMOVE_STARTED\";\nexport const SUBDIVISION_REMOVE_COMPLETED = \"SUBDIVISION_REMOVE_COMPLETED\";\nexport const SUBDIVISION_REMOVE_FAILED = \"SUBDIVISION_REMOVE_FAILED\";\n\nexport const SUBDIVISION_SELECTED = \"SUBDIVISION_SELECTED\";\nexport const SUBDIVISIONS_ALL_SELECTED = \"SUBDIVISIONS_ALL_SELECTED\";\nexport const SUBDIVISION_DESELECTED = \"SUBDIVISION_DESELECTED\";\nexport const SUBDIVISIONS_ALL_DESELECTED = \"SUBDIVISIONS_ALL_DESELECTED\";\n","export const OFFICES_FETCH_STARTED = 'OFFICES_FETCH_STARTED';\nexport const OFFICES_FETCH_COMPLETED = 'OFFICES_FETCH_COMPLETED';\nexport const OFFICES_FETCH_FAILED = 'OFFICES_FETCH_FAILED';\n\nexport const OFFICES_PARTIAL_FETCH_STARTED = 'OFFICES_PARTIAL_FETCH_STARTED';\nexport const OFFICES_PARTIAL_FETCH_COMPLETED = 'OFFICES_PARTIAL_FETCH_COMPLETED';\nexport const OFFICES_PARTIAL_FETCH_FAILED = 'OFFICES_PARTIAL_FETCH_FAILED';\n\nexport const OFFICE_ADD_STARTED = 'OFFICE_ADD_STARTED';\nexport const OFFICE_ADD_COMPLETED = 'OFFICE_ADD_COMPLETED';\nexport const OFFICE_ADD_FAILED = 'OFFICE_ADD_FAILED';\n\nexport const OFFICE_EDIT_STARTED = 'OFFICE_EDIT_STARTED';\nexport const OFFICE_EDIT_COMPLETED = 'OFFICE_EDIT_COMPLETED';\nexport const OFFICE_EDIT_FAILED = 'OFFICE_EDIT_FAILED';\n\nexport const OFFICE_REMOVE_STARTED = 'OFFICE_REMOVE_STARTED';\nexport const OFFICE_REMOVE_COMPLETED = 'OFFICE_REMOVE_COMPLETED';\nexport const OFFICE_REMOVE_FAILED = 'OFFICE_REMOVE_FAILED';\n\nexport const OFFICE_SELECTED = 'OFFICE_SELECTED';\nexport const OFFICES_ALL_SELECTED = 'OFFICES_ALL_SELECTED';\nexport const OFFICE_DESELECTED = 'OFFICE_DESELECTED';\nexport const OFFICES_ALL_DESELECTED = 'OFFICES_ALL_DESELECTED';\n","export const SIMS_FETCH_STARTED = 'SIMS_FETCH_STARTED';\nexport const SIMS_FETCH_COMPLETED = 'SIMS_FETCH_COMPLETED';\nexport const SIMS_FETCH_FAILED = 'SIMS_FETCH_FAILED';\n\nexport const SIMS_PARTIAL_FETCH_STARTED = 'SIMS_PARTIAL_FETCH_STARTED';\nexport const SIMS_PARTIAL_FETCH_COMPLETED = 'SIMS_PARTIAL_FETCH_COMPLETED';\nexport const SIMS_PARTIAL_FETCH_FAILED = 'SIMS_PARTIAL_FETCH_FAILED';\n\nexport const SIM_ADD_STARTED = 'SIM_ADD_STARTED';\nexport const SIM_ADD_COMPLETED = 'SIM_ADD_COMPLETED';\nexport const SIM_ADD_FAILED = 'SIM_ADD_FAILED';\n\nexport const SIM_EDIT_STARTED = 'SIM_EDIT_STARTED';\nexport const SIM_EDIT_COMPLETED = 'SIM_EDIT_COMPLETED';\nexport const SIM_EDIT_FAILED = 'SIM_EDIT_FAILED';\n\nexport const SIM_REMOVE_STARTED = 'SIM_REMOVE_STARTED';\nexport const SIM_REMOVE_COMPLETED = 'SIM_REMOVE_COMPLETED';\nexport const SIM_REMOVE_FAILED = 'SIM_REMOVE_FAILED';\n\nexport const SIM_SELECTED = 'SIM_SELECTED';\nexport const SIMS_ALL_SELECTED = 'SIMS_ALL_SELECTED';\nexport const SIM_DESELECTED = 'SIM_DESELECTED';\nexport const SIMS_ALL_DESELECTED = 'SIMS_ALL_DESELECTED';\n","export const ORGANIZATION_CONTRACTS_FETCH_STARTED = 'ORGANIZATION_CONTRACTS_FETCH_STARTED';\nexport const ORGANIZATION_CONTRACTS_FETCH_COMPLETED = 'ORGANIZATION_CONTRACTS_FETCH_COMPLETED';\nexport const ORGANIZATION_CONTRACTS_FETCH_FAILED = 'ORGANIZATION_CONTRACTS_FETCH_FAILED';\n\nexport const ORGANIZATION_CONTRACTS_PARTIAL_FETCH_STARTED =\n 'ORGANIZATION_CONTRACTS_PARTIAL_FETCH_STARTED';\nexport const ORGANIZATION_CONTRACTS_PARTIAL_FETCH_COMPLETED =\n 'ORGANIZATION_CONTRACTS_PARTIAL_FETCH_COMPLETED';\nexport const ORGANIZATION_CONTRACTS_PARTIAL_FETCH_FAILED =\n 'ORGANIZATION_CONTRACTS_PARTIAL_FETCH_FAILED';\n\nexport const ORGANIZATION_CONTRACT_ADD_STARTED = 'ORGANIZATION_CONTRACT_ADD_STARTED';\nexport const ORGANIZATION_CONTRACT_ADD_COMPLETED = 'ORGANIZATION_CONTRACT_ADD_COMPLETED';\nexport const ORGANIZATION_CONTRACT_ADD_FAILED = 'ORGANIZATION_CONTRACT_ADD_FAILED';\n\nexport const ORGANIZATION_CONTRACT_EDIT_STARTED = 'ORGANIZATION_CONTRACT_EDIT_STARTED';\nexport const ORGANIZATION_CONTRACT_EDIT_COMPLETED = 'ORGANIZATION_CONTRACT_EDIT_COMPLETED';\nexport const ORGANIZATION_CONTRACT_EDIT_FAILED = 'ORGANIZATION_CONTRACT_EDIT_FAILED';\n\nexport const ORGANIZATION_CONTRACT_REMOVE_STARTED = 'ORGANIZATION_CONTRACT_REMOVE_STARTED';\nexport const ORGANIZATION_CONTRACT_REMOVE_COMPLETED = 'ORGANIZATION_CONTRACT_REMOVE_COMPLETED';\nexport const ORGANIZATION_CONTRACT_REMOVE_FAILED = 'ORGANIZATION_CONTRACT_REMOVE_FAILED';\n\nexport const ORGANIZATION_CONTRACT_SELECTED = 'ORGANIZATION_CONTRACT_SELECTED';\nexport const ORGANIZATION_CONTRACTS_ALL_SELECTED = 'ORGANIZATION_CONTRACTS_ALL_SELECTED';\nexport const ORGANIZATION_CONTRACT_DESELECTED = 'ORGANIZATION_CONTRACT_DESELECTED';\nexport const ORGANIZATION_CONTRACTS_ALL_DESELECTED = 'ORGANIZATION_CONTRACTS_ALL_DESELECTED';\n","export const CONTRACT_TEMPLATES_FETCH_STARTED = 'CONTRACT_TEMPLATES_FETCH_STARTED';\nexport const CONTRACT_TEMPLATES_FETCH_COMPLETED = 'CONTRACT_TEMPLATES_FETCH_COMPLETED';\nexport const CONTRACT_TEMPLATES_FETCH_FAILED = 'CONTRACT_TEMPLATES_FETCH_FAILED';\n\nexport const CONTRACT_TEMPLATES_PARTIAL_FETCH_STARTED = 'CONTRACT_TEMPLATES_PARTIAL_FETCH_STARTED';\nexport const CONTRACT_TEMPLATES_PARTIAL_FETCH_COMPLETED =\n 'CONTRACT_TEMPLATES_PARTIAL_FETCH_COMPLETED';\nexport const CONTRACT_TEMPLATES_PARTIAL_FETCH_FAILED = 'CONTRACT_TEMPLATES_PARTIAL_FETCH_FAILED';\n\nexport const CONTRACT_TEMPLATE_ADD_STARTED = 'CONTRACT_TEMPLATE_ADD_STARTED';\nexport const CONTRACT_TEMPLATE_ADD_COMPLETED = 'CONTRACT_TEMPLATE_ADD_COMPLETED';\nexport const CONTRACT_TEMPLATE_ADD_FAILED = 'CONTRACT_TEMPLATE_ADD_FAILED';\n\nexport const CONTRACT_TEMPLATE_EDIT_STARTED = 'CONTRACT_TEMPLATE_EDIT_STARTED';\nexport const CONTRACT_TEMPLATE_EDIT_COMPLETED = 'CONTRACT_TEMPLATE_EDIT_COMPLETED';\nexport const CONTRACT_TEMPLATE_EDIT_FAILED = 'CONTRACT_TEMPLATE_EDIT_FAILED';\n\nexport const CONTRACT_TEMPLATE_REMOVE_STARTED = 'CONTRACT_TEMPLATE_REMOVE_STARTED';\nexport const CONTRACT_TEMPLATE_REMOVE_COMPLETED = 'CONTRACT_TEMPLATE_REMOVE_COMPLETED';\nexport const CONTRACT_TEMPLATE_REMOVE_FAILED = 'CONTRACT_TEMPLATE_REMOVE_FAILED';\n\nexport const CONTRACT_TEMPLATE_SELECTED = 'CONTRACT_TEMPLATE_SELECTED';\nexport const CONTRACT_TEMPLATES_ALL_SELECTED = 'CONTRACT_TEMPLATES_ALL_SELECTED';\nexport const CONTRACT_TEMPLATE_DESELECTED = 'CONTRACT_TEMPLATE_DESELECTED';\nexport const CONTRACT_TEMPLATES_ALL_DESELECTED = 'CONTRACT_TEMPLATES_ALL_DESELECTED';\n","export const WORKPLANS_EXECUTIONS_FETCH_STARTED = 'WORKPLANS_EXECUTIONS_FETCH_STARTED';\nexport const WORKPLANS_EXECUTIONS_FETCH_COMPLETED = 'WORKPLANS_EXECUTIONS_FETCH_COMPLETED';\nexport const WORKPLANS_EXECUTIONS_FETCH_FAILED = 'WORKPLANS_EXECUTIONS_FETCH_FAILED';\n\nexport const WORKPLAN_EXECUTION_FETCH_STARTED = 'WORKPLAN_EXECUTION_FETCH_STARTED';\nexport const WORKPLAN_EXECUTION_FETCH_COMPLETED = 'WORKPLAN_EXECUTION_FETCH_COMPLETED';\nexport const WORKPLAN_EXECUTION_FETCH_FAILED = 'WORKPLAN_EXECUTION_FETCH_FAILED';\n\nexport const WORKPLANS_EXECUTION_CANCEL_STARTED = 'WORKPLANS_EXECUTION_CANCEL_STARTED';\nexport const WORKPLANS_EXECUTION_CANCEL_COMPLETED = 'WORKPLANS_EXECUTION_CANCEL_COMPLETED';\nexport const WORKPLANS_EXECUTION_CANCEL_FAILED = 'WORKPLANS_EXECUTION_CANCEL_FAILED';\n\nexport const WORKPLANS_EXECUTION_FINALIZE_STARTED = 'WORKPLANS_EXECUTION_FINALIZE_STARTED';\nexport const WORKPLANS_EXECUTION_FINALIZE_COMPLETED = 'WORKPLANS_EXECUTION_FINALIZE_COMPLETED';\nexport const WORKPLANS_EXECUTION_FINALIZE_FAILED = 'WORKPLANS_EXECUTION_FINALIZE_FAILED';\n\nexport const WORKPLANS_EXECUTION_MANUAL_TRANSIT_STARTED =\n 'WORKPLANS_EXECUTION_MANUAL_TRANSIT_STARTED';\nexport const WORKPLANS_EXECUTION_MANUAL_TRANSIT_COMPLETED =\n 'WORKPLANS_EXECUTION_MANUAL_TRANSIT_COMPLETED';\nexport const WORKPLANS_EXECUTION_MANUAL_TRANSIT_FAILED =\n 'WORKPLANS_EXECUTION_MANUAL_TRANSIT_FAILED';\n\nexport const WORKPLANS_EXECUTION_CHANGE_UNIT_STARTED = 'WORKPLANS_EXECUTION_CHANGE_UNIT_STARTED';\nexport const WORKPLANS_EXECUTION_CHANGE_UNIT_COMPLETED =\n 'WORKPLANS_EXECUTION_CHANGE_UNIT_COMPLETED';\nexport const WORKPLANS_EXECUTION_CHANGE_UNIT_FAILED = 'WORKPLANS_EXECUTION_CHANGE_UNIT_FAILED';\n\nexport const WORKPLANS_EXECUTION_ASSIGN_UNIT_STARTED = 'WORKPLANS_EXECUTION_ASSIGN_UNIT_STARTED';\nexport const WORKPLANS_EXECUTION_ASSIGN_UNIT_COMPLETED =\n 'WORKPLANS_EXECUTION_ASSIGN_UNIT_COMPLETED';\nexport const WORKPLANS_EXECUTION_ASSIGN_UNIT_FAILED = 'WORKPLANS_EXECUTION_ASSIGN_UNIT_FAILED';\n\nexport enum COLORS {\n Visited = '#1e90ff',\n Confirmed = '#2ed573',\n NotVisited = '#ff4757',\n Pending = '#ACACAC',\n ArrivalOnTime = '#2ed573',\n ArrivalEarly = '#1e90ff',\n ArrivalLate = '#FFA502',\n PermanenceNormal = '#2ed573',\n PermanenceShort = '#1e90ff',\n PermanenceLong = '#FFA502'\n}\n","export const CONTACTS_FETCH_STARTED = 'CONTACTS_FETCH_STARTED';\nexport const CONTACTS_FETCH_COMPLETED = 'CONTACTS_FETCH_COMPLETED';\nexport const CONTACTS_FETCH_FAILED = 'CONTACTS_FETCH_FAILED';\n\nexport const CONTACTS_PARTIAL_FETCH_STARTED = 'CONTACTS_PARTIAL_FETCH_STARTED';\nexport const CONTACTS_PARTIAL_FETCH_COMPLETED = 'CONTACTS_PARTIAL_FETCH_COMPLETED';\nexport const CONTACTS_PARTIAL_FETCH_FAILED = 'CONTACTS_PARTIAL_FETCH_FAILED';\n\nexport const CONTACT_ADD_STARTED = 'CONTACT_ADD_STARTED';\nexport const CONTACT_ADD_COMPLETED = 'CONTACT_ADD_COMPLETED';\nexport const CONTACT_ADD_FAILED = 'CONTACT_ADD_FAILED';\n\nexport const CONTACT_EDIT_STARTED = 'CONTACT_EDIT_STARTED';\nexport const CONTACT_EDIT_COMPLETED = 'CONTACT_EDIT_COMPLETED';\nexport const CONTACT_EDIT_FAILED = 'CONTACT_EDIT_FAILED';\n\nexport const CONTACT_REMOVE_STARTED = 'CONTACT_REMOVE_STARTED';\nexport const CONTACT_REMOVE_COMPLETED = 'CONTACT_REMOVE_COMPLETED';\nexport const CONTACT_REMOVE_FAILED = 'CONTACT_REMOVE_FAILED';\n\nexport const CONTACT_FETCH_STARTED = 'CONTACT_FETCH_STARTED';\nexport const CONTACT_FETCH_COMPLETED = 'CONTACT_FETCH_COMPLETED';\nexport const CONTACT_FETCH_FAILED = 'CONTACT_FETCH_FAILED';\n\nexport const CONTACT_SELECTED = 'CONTACT_SELECTED';\nexport const CONTACTS_ALL_SELECTED = 'CONTACTS_ALL_SELECTED';\nexport const CONTACT_DESELECTED = 'CONTACT_DESELECTED';\nexport const CONTACTS_ALL_DESELECTED = 'CONTACTS_ALL_DESELECTED';\n","export const PROTOCOLS_FETCH_STARTED = 'PROTOCOLS_FETCH_STARTED';\nexport const PROTOCOLS_FETCH_COMPLETED = 'PROTOCOLS_FETCH_COMPLETED';\nexport const PROTOCOLS_FETCH_FAILED = 'PROTOCOLS_FETCH_FAILED';\n\nexport const PROTOCOLS_PARTIAL_FETCH_STARTED = 'PROTOCOLS_PARTIAL_FETCH_STARTED';\nexport const PROTOCOLS_PARTIAL_FETCH_COMPLETED = 'PROTOCOLS_PARTIAL_FETCH_COMPLETED';\nexport const PROTOCOLS_PARTIAL_FETCH_FAILED = 'PROTOCOLS_PARTIAL_FETCH_FAILED';\n\nexport const PROTOCOLS_ADD_STARTED = 'PROTOCOLS_ADD_STARTED';\nexport const PROTOCOLS_ADD_COMPLETED = 'PROTOCOLS_ADD_COMPLETED';\nexport const PROTOCOLS_ADD_FAILED = 'PROTOCOLS_ADD_FAILED';\n\nexport const PROTOCOLS_EDIT_STARTED = 'PROTOCOLS_EDIT_STARTED';\nexport const PROTOCOLS_EDIT_COMPLETED = 'PROTOCOLS_EDIT_COMPLETED';\nexport const PROTOCOLS_EDIT_FAILED = 'PROTOCOLS_EDIT_FAILED';\n\nexport const PROTOCOLS_REMOVE_STARTED = 'PROTOCOLS_REMOVE_STARTED';\nexport const PROTOCOLS_REMOVE_COMPLETED = 'PROTOCOLS_REMOVE_COMPLETED';\nexport const PROTOCOLS_REMOVE_FAILED = 'PROTOCOLS_REMOVE_FAILED';\n\nexport const PROTOCOLS_SELECTED = 'PROTOCOLS_SELECTED';\nexport const PROTOCOLS_ALL_SELECTED = 'PROTOCOLS_ALL_SELECTED';\nexport const PROTOCOLS_DESELECTED = 'PROTOCOLS_DESELECTED';\nexport const PROTOCOLS_ALL_DESELECTED = 'PROTOCOLS_ALL_DESELECTED';\n\nexport interface Protocol {\n isSelected: boolean;\n protocolId: number;\n protocolName: string;\n protocolDescription: string;\n protocolEvents: string;\n protocolPriority: number;\n operatorId: number;\n operatorName: string;\n organizationId: number;\n organizationName: string;\n divisionId: number | null;\n divisionName: string | null;\n subdivisionId: number | null;\n subdivisionName: string | null;\n isConfirmed: boolean;\n}\n","export const NOTICES_BY_ODOMETER_FETCH_STARTED = 'NOTICES_BY_ODOMETER_FETCH_STARTED';\nexport const NOTICES_BY_ODOMETER_FETCH_COMPLETED = 'NOTICES_BY_ODOMETER_FETCH_COMPLETED';\nexport const NOTICES_BY_ODOMETER_FETCH_FAILED = 'NOTICES_BY_ODOMETER_FETCH_FAILED';\n\nexport const NOTICES_BY_ODOMETER_PARTIAL_FETCH_STARTED =\n 'NOTICES_BY_ODOMETER_PARTIAL_FETCH_STARTED';\nexport const NOTICES_BY_ODOMETER_PARTIAL_FETCH_COMPLETED =\n 'NOTICES_BY_ODOMETER_PARTIAL_FETCH_COMPLETED';\nexport const NOTICES_BY_ODOMETER_PARTIAL_FETCH_FAILED = 'NOTICES_BY_ODOMETER_PARTIAL_FETCH_FAILED';\n\nexport const NOTICE_BY_ODOMETER_ADD_STARTED = 'NOTICE_BY_ODOMETER_ADD_STARTED';\nexport const NOTICE_BY_ODOMETER_ADD_COMPLETED = 'NOTICE_BY_ODOMETER_ADD_COMPLETED';\nexport const NOTICE_BY_ODOMETER_ADD_FAILED = 'NOTICE_BY_ODOMETER_ADD_FAILED';\n\nexport const NOTICE_BY_ODOMETER_EDIT_STARTED = 'NOTICE_BY_ODOMETER_EDIT_STARTED';\nexport const NOTICE_BY_ODOMETER_EDIT_COMPLETED = 'NOTICE_BY_ODOMETER_EDIT_COMPLETED';\nexport const NOTICE_BY_ODOMETER_EDIT_FAILED = 'NOTICE_BY_ODOMETER_EDIT_FAILED';\n\nexport const NOTICE_BY_ODOMETER_RENEW_STARTED = 'NOTICE_BY_ODOMETER_RENEW_STARTED';\nexport const NOTICE_BY_ODOMETER_RENEW_COMPLETED = 'NOTICE_BY_ODOMETER_RENEW_COMPLETED';\nexport const NOTICE_BY_ODOMETER_RENEW_FAILED = 'NOTICE_BY_ODOMETER_RENEW_FAILED';\n\nexport const NOTICE_BY_ODOMETER_REMOVE_STARTED = 'NOTICE_BY_ODOMETER_REMOVE_STARTED';\nexport const NOTICE_BY_ODOMETER_REMOVE_COMPLETED = 'NOTICE_BY_ODOMETER_REMOVE_COMPLETED';\nexport const NOTICE_BY_ODOMETER_REMOVE_FAILED = 'NOTICE_BY_ODOMETER_REMOVE_FAILED';\n","import * as types from '../types';\n\nexport const startFetchingUnits = (filters = {}) => ({\n type: types.UNITS_FETCH_STARTED,\n payload: filters\n});\n\nexport const completeFetchingUnits = (entities, order, operatorId, organizationId) => ({\n type: types.UNITS_FETCH_COMPLETED,\n payload: {\n entities,\n order,\n operatorId,\n organizationId\n }\n});\n\nexport const failFetchingUnits = (error = { errorMessage: 'Error', errorNumber: 404 }) => ({\n type: types.UNITS_FETCH_FAILED,\n payload: {\n error //error:{errorMessage:'Error', errorNumber:400}\n }\n});\n\nexport const startPartialFetchingUnits = (\n entityTypeId,\n operatorId = null,\n organizationId = null\n) => ({\n type: types.UNITS_PARTIAL_FETCH_STARTED,\n payload: { entityTypeId, operatorId, organizationId }\n});\nexport const completePartialFetchingUnits = (entities, order, operatorId, organizationId) => ({\n type: types.UNITS_PARTIAL_FETCH_COMPLETED,\n payload: {\n entities,\n order,\n operatorId,\n organizationId\n }\n});\nexport const failPartialFetchingUnits = (error = { errorMessage: 'Error', errorNumber: 404 }) => ({\n type: types.UNITS_PARTIAL_FETCH_FAILED,\n payload: {\n error //error:{errorMessage:'Error', errorNumber:400}\n }\n});\n\nexport const addingUnitToState = (unit) => ({\n type: types.UNIT_ADD_TO_STATE,\n payload: unit\n});\n\nexport const startFetchingUnitsLiveStatus = () => ({\n type: types.UNITS_LIVE_STATUS_FETCH_STARTED,\n payload: {}\n});\n\nexport const completeFetchingUnitsLiveStatus = (entities, order, organizationId) => ({\n type: types.UNITS_LIVE_STATUS_FETCH_COMPLETED,\n payload: {\n entities,\n order,\n organizationId\n }\n});\n\nexport const failFetchingUnitsLiveStatus = (\n error = { errorMessage: 'Error', errorNumber: 404 }\n) => ({\n type: types.UNITS_LIVE_STATUS_FETCH_FAILED,\n payload: {\n error //error:{errorMessage:'Error', errorNumber:400}\n }\n});\n\nexport const startFetchingUnitInformation = (unitId) => ({\n type: types.UNIT_INFORMATION_FETCH_STARTED,\n payload: { unitId }\n});\n\nexport const completeFetchingUnitInformation = (\n unitId,\n unitData,\n deviceMetricsEntities,\n deviceMetricsOrder,\n deviceActionsEntities,\n deviceActionsOrder,\n groupsEntities,\n groupsOrder,\n reportsEntities,\n reportsOrder,\n imagesEntities,\n imagesOrder,\n sensorsEntities,\n sensorsOrder\n) => ({\n type: types.UNIT_INFORMATION_FETCH_COMPLETED,\n payload: {\n unitId,\n unitData,\n deviceMetricsEntities,\n deviceMetricsOrder,\n deviceActionsEntities,\n deviceActionsOrder,\n groupsEntities,\n groupsOrder,\n reportsEntities,\n reportsOrder,\n imagesEntities,\n imagesOrder,\n sensorsEntities,\n sensorsOrder\n }\n});\n\nexport const failFetchingUnitInformation = (\n error = { errorMessage: 'Error', errorNumber: 404 }\n) => ({\n type: types.UNIT_INFORMATION_FETCH_FAILED,\n payload: {\n error //error:{errorMessage:'Error', errorNumber:400}\n }\n});\n\nexport const startFetchingUnitPositions = (unitId, reportType, startDate, endDate, idleSpeed) => ({\n type: types.UNIT_POSITIONS_FETCH_STARTED,\n payload: { unitId, reportType, startDate, endDate, idleSpeed }\n});\n\nexport const completeFetchingUnitPositions = (\n unitId,\n distance,\n parkedPositions,\n polyline,\n positions\n) => ({\n type: types.UNIT_POSITIONS_FETCH_COMPLETED,\n payload: {\n unitId,\n distance,\n parkedPositions,\n polyline,\n positions\n }\n});\n\nexport const failFetchingUnitPositions = (error = { errorMessage: 'Error', errorNumber: 404 }) => ({\n type: types.UNIT_POSITIONS_FETCH_FAILED,\n payload: {\n error //error:{errorMessage:'Error', errorNumber:400}\n }\n});\n\nexport const resetIsFetchedUnitPosition = () => ({\n type: types.UNIT_POSITIONS_RESET_IS_FETCHED,\n payload: {}\n});\n\nexport const executeDeviceAction = (unitId, deviceActionId, parameters = null) => ({\n type: types.UNIT_EXECUTE_DEVICE_ACTION,\n payload: {\n unitId,\n deviceActionId,\n parameters\n }\n});\n\nexport const startAddingUnit = (unit) => ({\n type: types.UNIT_ADD_STARTED,\n payload: unit\n});\nexport const completeAddingUnit = (oldId, unit) => ({\n type: types.UNIT_ADD_COMPLETED,\n payload: { oldId, unit }\n});\nexport const failAddingUnit = (oldId, error) => ({\n type: types.UNIT_ADD_FAILED,\n payload: {\n oldId,\n error\n }\n});\n\nexport type UpdateUnitDeviceRequest = { unitId: number; deviceId: number | null };\ntype UpdateUnitResponse = {\n unitId: number;\n deviceId: number | null;\n};\nexport const startUpdateDevice = (\n data: UpdateUnitDeviceRequest & { additionalOnSuccess?: (() => void) | undefined }\n) => ({\n type: types.UNIT_UPDATE_DEVICE_STARTED,\n payload: data\n});\nexport const completeUpdateDevice = (data: UpdateUnitResponse) => ({\n type: types.UNIT_UPDATE_DEVICE_COMPLETED,\n payload: data\n});\nexport const failUpdateDevice = (oldId: number, error: Error) => ({\n type: types.UNIT_UPDATE_DEVICE_FAILED,\n payload: {\n oldId,\n error\n }\n});\n\nexport const startEditingUnit = (unit) => ({\n type: types.UNIT_EDIT_STARTED,\n payload: unit\n});\nexport const completeEditingUnit = (unit) => ({\n type: types.UNIT_EDIT_COMPLETED,\n payload: unit\n});\nexport const failEditingUnit = (oldUnit, error) => ({\n type: types.UNIT_EDIT_FAILED,\n payload: {\n oldUnit,\n error\n }\n});\n\nexport const startAcknowledgeUnitEvent = (unitId) => ({\n type: types.UNIT_ACKNOWLEDGE_STARTED,\n payload: { unitId }\n});\nexport const completeAcknowledgeUnitEvent = (unitId) => ({\n type: types.UNIT_ACKNOWLEDGE_COMPLETED,\n payload: { unitId }\n});\nexport const failAcknowledgeUnitEvent = (error) => ({\n type: types.UNIT_ACKNOWLEDGE_FAILED,\n payload: {\n error\n }\n});\n\nexport const startAssigningDriverUnits = (units) => ({\n type: types.UNITS_ASSIGN_DRIVER_STARTED,\n payload: units\n});\nexport const completeAssigningDriverUnits = (units) => ({\n type: types.UNITS_ASSIGN_DRIVER_COMPLETED,\n payload: units\n});\n\nexport const startEndDowntimeUnit = (unitId) => ({\n type: types.UNIT_END_DOWNTIME_STARTED,\n payload: {\n unitId\n }\n});\nexport const completeEndDowntimeUnit = (unitId, mainStateId, mainStateDate) => ({\n type: types.UNIT_END_DOWNTIME_COMPLETED,\n payload: {\n unitId,\n mainStateId,\n mainStateDate\n }\n});\nexport const failEndDowntimeUnit = (error = { errorMessage: 'Error', errorNumber: 404 }) => ({\n type: types.UNIT_END_DOWNTIME_FAILED,\n payload: {\n error\n }\n});\n\nexport const startStartDowntimeUnit = (unitId, reasonId) => ({\n type: types.UNIT_START_DOWNTIME_STARTED,\n payload: {\n unitId,\n reasonId\n }\n});\nexport const completeStartDowntimeUnit = (unitId, reasonId, reasonDescription) => ({\n type: types.UNIT_START_DOWNTIME_COMPLETED,\n payload: {\n unitId,\n reasonId,\n reasonDescription\n }\n});\nexport const failStartDowntimeUnit = (error = { errorMessage: 'Error', errorNumber: 404 }) => ({\n type: types.UNIT_START_DOWNTIME_FAILED,\n payload: {\n error\n }\n});\n\nexport const startActivingUnits = (units) => ({\n type: types.UNITS_ACTIVE_STARTED,\n payload: units\n});\n\nexport const completeActivingUnits = (units) => ({\n type: types.UNITS_ACTIVE_COMPLETED,\n payload: units\n});\nexport const failActivingUnits = (error = { errorMessage: 'Error', errorNumber: 404 }) => ({\n type: types.UNITS_ACTIVE_FAILED,\n payload: {\n error //error:{errorMessage:'Error', errorNumber:400}\n }\n});\n\nexport const startRemovingUnit = (units, unitsName) => ({\n type: types.UNIT_REMOVE_STARTED,\n payload: {\n units,\n unitsName\n }\n});\nexport const completeRemovingUnit = (units, unitsName) => ({\n type: types.UNIT_REMOVE_COMPLETED,\n payload: {\n units,\n unitsName\n }\n});\nexport const failRemovingUnit = (units, error) => ({\n type: types.UNIT_REMOVE_FAILED,\n payload: {\n units,\n error\n }\n});\n\nexport const setDateRange = (unitId, dateRange) => ({\n type: types.SET_DATE_RANGE,\n payload: { unitId, dateRange }\n});\n\nexport const selectUnit = (unitId) => ({\n type: types.UNIT_SELECTED,\n payload: unitId\n});\n\nexport const selectAllUnits = (\n unitIds: any[] = [] //List of UnitIds\n) => ({\n type: types.UNITS_ALL_SELECTED,\n payload: unitIds\n});\n\nexport const deselectUnit = (unitId) => ({\n type: types.UNIT_DESELECTED,\n payload: unitId\n});\n\nexport const deselectAllUnits = (\n unitIds: any[] = [] //List of UnitIds\n) => ({\n type: types.UNITS_ALL_DESELECTED,\n payload: unitIds\n});\n\nexport const showUnitInMap = (unitId) => ({\n type: types.UNIT_SHOW_IN_MAP,\n payload: unitId\n});\n\nexport const showAllUnitsInMap = (\n unitIds: any[] = [] //List of UnitIds\n) => ({\n type: types.UNITS_ALL_SHOW_IN_MAP,\n payload: unitIds\n});\n\nexport const hideUnitInMap = (unitId) => ({\n type: types.UNIT_HIDE_IN_MAP,\n payload: unitId\n});\n\nexport const hideAllUnitsInMap = (\n unitIds: any[] = [] //List of UnitIds\n) => ({\n type: types.UNITS_ALL_HIDE_IN_MAP,\n payload: unitIds\n});\n\nexport const startCreatingShareLink = (unitId, unitName, emails, ttl) => ({\n type: types.UNIT_CREATE_SHARE_LINK_STARTED,\n payload: {\n unitId,\n unitName,\n emails,\n ttl\n }\n});\nexport const completeCreatingShareLink = (result) => ({\n type: types.UNIT_CREATE_SHARE_LINK_COMPLETED,\n payload: result\n});\nexport const failCreatingShareLink = (error) => ({\n type: types.UNIT_CREATE_SHARE_LINK_FAILED,\n payload: {\n error\n }\n});\n\nexport const clearSharedLink = () => ({\n type: types.UNIT_CLEAR_SHARE_LINK,\n payload: {}\n});\n\nexport const startUpdateSim = ({\n unitId,\n simCardId\n}: {\n unitId: number;\n simCardId: number | null;\n additionalOnSuccess?: () => void;\n}) => ({\n type: types.UNIT_UPDATE_SIM_STARTED,\n payload: { unitId, simCardId }\n});\n\nexport const failUpdateSim = (oldUnitId: number, error: string) => ({\n type: types.UNIT_UPDATE_SIM_FAILED,\n payload: { error }\n});\n\nexport const completeUpdateSim = (changes: Partial) => ({\n type: types.UNIT_UPDATE_SIM_COMPLETED,\n payload: { changes }\n});\n","export * from './time-zones';\nexport * from './currencies';\nexport * from './countries';\nexport * from './vehicle-makers';\nexport * from './vehicle-models';\nexport * from './insurance-companies';\nexport * from './insurance-agents';\nexport * from './sensor-brands';\nexport * from './sensor-models';\nexport * from './sensor-measures';\nexport * from './payment-methods';\nexport * from './location-classes';\n","export const NOTICES_BY_DATE_FETCH_STARTED = 'NOTICES_BY_DATE_FETCH_STARTED';\nexport const NOTICES_BY_DATE_FETCH_COMPLETED = 'NOTICES_BY_DATE_FETCH_COMPLETED';\nexport const NOTICES_BY_DATE_FETCH_FAILED = 'NOTICES_BY_DATE_FETCH_FAILED';\n\nexport const NOTICES_BY_DATE_PARTIAL_FETCH_STARTED = 'NOTICES_BY_DATE_PARTIAL_FETCH_STARTED';\nexport const NOTICES_BY_DATE_PARTIAL_FETCH_COMPLETED = 'NOTICES_BY_DATE_PARTIAL_FETCH_COMPLETED';\nexport const NOTICES_BY_DATE_PARTIAL_FETCH_FAILED = 'NOTICES_BY_DATE_PARTIAL_FETCH_FAILED';\n\nexport const NOTICE_BY_DATE_ADD_STARTED = 'NOTICE_BY_DATE_ADD_STARTED';\nexport const NOTICE_BY_DATE_ADD_COMPLETED = 'NOTICE_BY_DATE_ADD_COMPLETED';\nexport const NOTICE_BY_DATE_ADD_FAILED = 'NOTICE_BY_DATE_ADD_FAILED';\n\nexport const NOTICE_BY_DATE_EDIT_STARTED = 'NOTICE_BY_DATE_EDIT_STARTED';\nexport const NOTICE_BY_DATE_EDIT_COMPLETED = 'NOTICE_BY_DATE_EDIT_COMPLETED';\nexport const NOTICE_BY_DATE_EDIT_FAILED = 'NOTICE_BY_DATE_EDIT_FAILED';\n\nexport const NOTICE_BY_DATE_RENEW_STARTED = 'NOTICE_BY_DATE_RENEW_STARTED';\nexport const NOTICE_BY_DATE_RENEW_COMPLETED = 'NOTICE_BY_DATE_RENEW_COMPLETED';\nexport const NOTICE_BY_DATE_RENEW_FAILED = 'NOTICE_BY_DATE_RENEW_FAILED';\n\nexport const NOTICE_BY_DATE_REMOVE_STARTED = 'NOTICE_BY_DATE_REMOVE_STARTED';\nexport const NOTICE_BY_DATE_REMOVE_COMPLETED = 'NOTICE_BY_DATE_REMOVE_COMPLETED';\nexport const NOTICE_BY_DATE_REMOVE_FAILED = 'NOTICE_BY_DATE_REMOVE_FAILED';\n","export const NOTICES_BY_HOURMETER_FETCH_STARTED = 'NOTICES_BY_HOURMETER_FETCH_STARTED';\nexport const NOTICES_BY_HOURMETER_FETCH_COMPLETED = 'NOTICES_BY_HOURMETER_FETCH_COMPLETED';\nexport const NOTICES_BY_HOURMETER_FETCH_FAILED = 'NOTICES_BY_HOURMETER_FETCH_FAILED';\n\nexport const NOTICES_BY_HOURMETER_PARTIAL_FETCH_STARTED =\n 'NOTICES_BY_HOURMETER_PARTIAL_FETCH_STARTED';\nexport const NOTICES_BY_HOURMETER_PARTIAL_FETCH_COMPLETED =\n 'NOTICES_BY_HOURMETER_PARTIAL_FETCH_COMPLETED';\nexport const NOTICES_BY_HOURMETER_PARTIAL_FETCH_FAILED =\n 'NOTICES_BY_HOURMETER_PARTIAL_FETCH_FAILED';\n\nexport const NOTICE_BY_HOURMETER_ADD_STARTED = 'NOTICE_BY_HOURMETER_ADD_STARTED';\nexport const NOTICE_BY_HOURMETER_ADD_COMPLETED = 'NOTICE_BY_HOURMETER_ADD_COMPLETED';\nexport const NOTICE_BY_HOURMETER_ADD_FAILED = 'NOTICE_BY_HOURMETER_ADD_FAILED';\n\nexport const NOTICE_BY_HOURMETER_EDIT_STARTED = 'NOTICE_BY_HOURMETER_EDIT_STARTED';\nexport const NOTICE_BY_HOURMETER_EDIT_COMPLETED = 'NOTICE_BY_HOURMETER_EDIT_COMPLETED';\nexport const NOTICE_BY_HOURMETER_EDIT_FAILED = 'NOTICE_BY_HOURMETER_EDIT_FAILED';\n\nexport const NOTICE_BY_HOURMETER_RENEW_STARTED = 'NOTICE_BY_HOURMETER_RENEW_STARTED';\nexport const NOTICE_BY_HOURMETER_RENEW_COMPLETED = 'NOTICE_BY_HOURMETER_RENEW_COMPLETED';\nexport const NOTICE_BY_HOURMETER_RENEW_FAILED = 'NOTICE_BY_HOURMETER_RENEW_FAILED';\n\nexport const NOTICE_BY_HOURMETER_REMOVE_STARTED = 'NOTICE_BY_HOURMETER_REMOVE_STARTED';\nexport const NOTICE_BY_HOURMETER_REMOVE_COMPLETED = 'NOTICE_BY_HOURMETER_REMOVE_COMPLETED';\nexport const NOTICE_BY_HOURMETER_REMOVE_FAILED = 'NOTICE_BY_HOURMETER_REMOVE_FAILED';\n","export interface Redirect {\n push: (path: string) => void;\n path?: string;\n}\n\nexport interface WithRedirectMeta {\n redirectMeta: Redirect;\n}\n\nexport interface WithCallback {\n action: Function;\n}\n\nexport interface TableRow {\n rowId: string;\n name: string;\n}\nexport interface Question {\n questionId: string;\n name: string;\n type: number;\n isRequired: boolean;\n isPrivate: boolean;\n isCollapsed: boolean;\n answers?: any[];\n}\nexport interface Section {\n sectionId: string;\n name: string;\n questions: Question[];\n rows: TableRow[];\n type: number;\n useDropDownRows: boolean;\n isCollapsed: boolean;\n}\n\nexport interface Form {\n formId?: number;\n name?: string;\n description?: string;\n sections: Section[];\n}\n\nexport interface MovableTypes {\n sourceId: String;\n sourceIndex: number;\n destinationId: String;\n destinationIndex: number;\n type: String;\n draggableId: String;\n source: any;\n destination: any;\n}\n\n/**\n * @description\n * This interface is used to define the properties of the columns of the table\n * Used types in order to dynamically type depending on the values\n * @example\n * if the header text is defined, the static text should not be defined\n */\nexport type TableColumn =\n | ({\n fieldName?: string;\n type?: 'dateTime' | 'number' | 'string' | 'boolean' | undefined;\n editType?: 'numericedit' | 'booleanedit' | 'datetimeedit' | 'stringedit' | undefined;\n headerTemplate?: string;\n allowEditing?: boolean;\n formatColumn?: string | undefined;\n metric?: string;\n customKey?: string;\n textAlign?: string;\n hide?: boolean;\n template?: (d: any) => JSX.Element | string;\n columns?: TableColumn[];\n edit?: any;\n editTemplate?: (params: any) => JSX.Element;\n maxWidth?: number;\n } & ( // header text or static text\n | {\n headerText?: string;\n }\n | {\n staticText?: string;\n }\n ) & // if tooltip is false must define a tooltip column\n (\n | {\n hasTooltip?: false;\n tooltipColumn?: never;\n }\n | {\n hasTooltip: true;\n tooltipColumn: string;\n }\n ))\n | undefined;\n\n// number: VALUE\nexport interface NDict {\n [key: number]: T;\n}\n\n// string: VALUE\nexport interface SDict {\n [key: string]: T;\n}\n\nexport type Dict = NDict | SDict;\n\nexport type NDictionary = { [key: number]: T };\nexport type SDictionary = { [key: string]: T };\nexport type Dictionary = NDictionary | SDictionary;\n\nexport interface AuthUser {\n username: string;\n permissions: string;\n authUserId: string;\n accessLevelId: string;\n rotateUnitMarkers: string;\n completeName: string;\n subdivisionId: string;\n subdivisionName: string;\n divisionId: string;\n divisionName: string;\n organizationId: string;\n organizationName: string;\n agentId: string;\n agentName: string;\n operatorId: string;\n operatorName: string;\n email: string;\n homeLatitude: string;\n homeLayer: string;\n homeLongitude: string;\n homeZoom: string;\n homeScreenId: string;\n currencyId: string;\n loadUnitsOnMap: string;\n loadGeofencesOnMap: string;\n activateUnitTrackMode: string;\n unitMapLabelAlwaysOn: string;\n locationMapLabelAlwaysOn: string;\n enableLocationClustering: string;\n useBingMaps: string;\n useHereMaps: string;\n useGoogleMaps: string;\n useMapquestMaps: string;\n metricSystemId: string;\n distanceSystem: string;\n capacitySystem: string;\n temperatureSystem: string;\n distance2System: string;\n speedSystem: string;\n fuelSystem: string;\n fuel2System: string;\n volumeSystem: string;\n utcZoneId: string;\n zoneName: string;\n utcOffset: string;\n bingMapsApiKey: string;\n googleMapsApiKey: string;\n hereMapsAppCode: string;\n hereMapsAppId: string;\n mapquestConsumerKey: string;\n imagesUrl: string;\n consoleDefaultSoundId: string;\n exp: number;\n}\n\nexport type Char =\n | 'a'\n | 'b'\n | 'c'\n | 'd'\n | 'e'\n | 'f'\n | 'g'\n | 'h'\n | 'i'\n | 'j'\n | 'k'\n | 'l'\n | 'm'\n | 'n'\n | 'o'\n | 'p'\n | 'q'\n | 'r'\n | 's'\n | 't'\n | 'u'\n | 'v'\n | 'w'\n | 'x'\n | 'y'\n | 'z';\n\nexport enum OperatingSystem {\n Windows = 'Windows',\n MacOS = 'Mac OS',\n Linux = 'Linux',\n IOS = 'iOS',\n Android = 'Android',\n Unknown = 'Unknown OS'\n}\n\nexport enum Browser {\n Chrome = 'Chrome',\n Firefox = 'Firefox',\n Safari = 'Safari',\n Unknown = 'Unknown Browser'\n}\n\nexport enum DeviceType {\n Mobile = 'Mobile',\n Desktop = 'Desktop'\n}\n\nexport interface DeviceInfo {\n os: OperatingSystem;\n browser: Browser;\n deviceType: DeviceType;\n}\n\nexport interface KeyboardModifiers {\n ctrl: boolean;\n alt: boolean;\n shift: boolean;\n parsedKey: string | undefined;\n}\n\nexport const optionKeySpecialCharacters: Record = {\n Ć„: 'a',\n 'āˆ«': 'b',\n Ƨ: 'c',\n 'āˆ‚': 'd',\n 'Ā“': 'e',\n ʒ: 'f',\n 'Ā©': 'g',\n 'Ė™': 'h',\n Ė†: 'i',\n 'āˆ†': 'j',\n 'Ėš': 'k',\n 'Ā¬': 'l',\n Āµ: 'm',\n 'Ėœ': 'n',\n Ćø: 'o',\n Ļ€: 'p',\n œ: 'q',\n 'Ā®': 'r',\n Ɵ: 's',\n 'ā€ ': 't',\n 'ĀØ': 'u',\n 'āˆš': 'v',\n 'āˆ‘': 'w',\n 'ā‰ˆ': 'x',\n 'Ā„': 'y',\n 'Āø': 'z'\n};\n\nexport const optionShiftSpecialCombinations: Record = {\n ƅ: 'a',\n ı: 'b',\n Ƈ: 'c',\n Ǝ: 'd',\n 'Ā“': 'e',\n Ə: 'f',\n 'Ė': 'g',\n Ɠ: 'h',\n Ė†: 'i',\n Ɣ: 'j',\n 'ļ£æ': 'k',\n ƒ: 'l',\n Ƃ: 'm',\n 'Ėœ': 'n',\n Ƙ: 'o',\n '\"': 'p',\n Œ: 'q',\n 'ā€°': 'r',\n ƍ: 's',\n Ė‡: 't',\n 'ĀØ': 'u',\n 'ā—Š': 'v',\n 'ā€ž': 'w',\n 'Ė›': 'x',\n Ɓ: 'y',\n 'Āø': 'z'\n};\n\nexport enum PacketType {\n FuelCalibration = 1,\n FuelCalibrationCommand = 2\n}\n\nexport enum FuelCalibrationCommand {\n SetMinValue = 1,\n SetMaxValue = 2\n}\n\nexport interface DeviceProgrammerDTO {\n PacketType: PacketType;\n DeviceIdentifier: string;\n PacketData: T;\n}\n\nexport interface FuelCalibrationValuesPacket {\n Voltage: number;\n IsStable: boolean;\n}\n\nexport interface FuelCalibrationCommandPacket {\n Command: FuelCalibrationCommand;\n Message?: string;\n}\n","import { env } from 'env';\r\nimport { DateTime } from 'luxon';\r\nimport { appIntl } from 'utility/context/IntlGlobalProvider';\r\nimport { htmlToText } from 'html-to-text';\r\nimport moment, { Moment } from 'moment';\r\nimport _ from 'lodash';\r\nimport { transform, isObject, isArray, camelCase, isDate } from 'lodash';\r\nimport { FormatListOptions, IntlShape } from 'react-intl';\r\nimport {\r\n Browser,\r\n DeviceInfo,\r\n DeviceType,\r\n KeyboardModifiers,\r\n OperatingSystem,\r\n optionKeySpecialCharacters,\r\n optionShiftSpecialCombinations\r\n} from './types';\r\nimport exceldate from 'exceldate';\r\n\r\nexport const imageFormatsForReports = ['png', 'jpg', 'jpeg'];\r\n\r\n// Parse HTML to text to use en tooltips\r\nexport const formatHtmlToText = (htmlStr) => {\r\n return htmlStr ? htmlToText(htmlStr, { wordwrap: 130 }) : 'N/A';\r\n};\r\n\r\n// ** Checks if an object is empty (returns boolean)\r\nexport const isObjEmpty = (obj) => Object.keys(obj).length === 0;\r\n\r\n// ** Date minus TimezoneOffset\r\nexport const getDateWithoutTimezoneOffset = (date) =>\r\n date\r\n ? typeof date.getTime === 'function'\r\n ? new Date(date.getTime() - date.getTimezoneOffset() * 60000).toISOString().slice(0, -1)\r\n : date\r\n : null;\r\n\r\n// etiqueta con formato HH : MM para indicadores\r\nexport const generateHourMinuteLabel = (seconds: number, round: boolean = false) => {\r\n let hours = 0;\r\n let minutes = 0;\r\n\r\n if (round === true) {\r\n seconds += 60;\r\n }\r\n\r\n if (seconds >= 3600) {\r\n hours = Math.floor(seconds / 3600);\r\n seconds -= hours * 3600;\r\n }\r\n\r\n if (seconds >= 60) {\r\n minutes = Math.floor(seconds / 60) % 60;\r\n seconds -= minutes * 60;\r\n }\r\n\r\n return `${hours > 9 ? hours : '0' + hours} Hrs : ${minutes > 9 ? minutes : '0' + minutes} Mins`;\r\n};\r\n\r\n// etiqueta con formato D : HH : MM : SS para indicadores\r\nexport const generateDayHourMinuteSecondLabel = (seconds, round = false) => {\r\n let days = 0;\r\n let hours = 0;\r\n let minutes = 0;\r\n\r\n if (round === true) {\r\n seconds += 60;\r\n }\r\n\r\n if (seconds >= 86400) {\r\n days = Math.floor(seconds / 86400);\r\n seconds -= days * 86400;\r\n }\r\n\r\n if (seconds >= 3600) {\r\n hours = Math.floor(seconds / 3600);\r\n seconds -= hours * 3600;\r\n }\r\n\r\n if (seconds >= 60) {\r\n minutes = Math.floor(seconds / 60) % 60;\r\n seconds -= minutes * 60;\r\n }\r\n\r\n seconds = Math.floor(seconds);\r\n\r\n return `${days > 0 ? days + 'D ' : ''}${hours > 9 ? hours : '0' + hours} Hrs : ${\r\n minutes > 9 ? minutes : '0' + minutes\r\n } Mins : ${seconds > 9 ? seconds : '0' + seconds} S`;\r\n};\r\n\r\n// etiqueta con formato HH:MM:SS\r\nexport const generateHourMinuteSecondStr = (seconds) => {\r\n seconds = parseInt(seconds.toFixed(0));\r\n let hours = 0;\r\n let minutes = 0;\r\n\r\n if (seconds >= 3600) {\r\n hours = Math.floor(seconds / 3600);\r\n seconds -= hours * 3600;\r\n }\r\n\r\n if (seconds >= 60) {\r\n minutes = Math.floor(seconds / 60) % 60;\r\n seconds -= minutes * 60;\r\n }\r\n\r\n return `${hours > 9 ? hours : '0' + hours}:${minutes > 9 ? minutes : '0' + minutes}:${\r\n seconds > 9 ? seconds : '0' + seconds\r\n }`;\r\n};\r\n\r\n// ** Returns K format from a number\r\nexport const kFormatter = (num) => (num > 999 ? `${(num / 1000).toFixed(1)}k` : num);\r\n\r\n// ** Converts HTML to string\r\nexport const htmlToString = (html) => html.replace(/<\\/?[^>]+(>|$)/g, '');\r\n\r\n// funciĆ³n que retorna DateTime.now() con offset de usuario\r\nexport const todayWithUtcOffset = (utcOffset?: number) =>\r\n utcOffset ? DateTime.utc().plus({ minutes: +utcOffset }) : DateTime.now();\r\n\r\n// funciĆ³n que retorna la cantidad de horas transcurridas en un rango de fechas\r\n// si el rango incluye el dĆ­a de hoy entonces las horas transcurridas son hasta DateTime.now()\r\n// -- si endDate es > a DateTime.now() siempre se usarĆ” DateTime.now() como fecha fin\r\n\r\nexport const elapsedHoursInDateRange = (\r\n startDate: string | Date | DateTime,\r\n endDate: string | Date | DateTime,\r\n utcOffset?: number\r\n) => {\r\n const today = todayWithUtcOffset(utcOffset);\r\n\r\n const dtStart: DateTime =\r\n typeof startDate === 'string'\r\n ? DateTime.fromISO(startDate)\r\n : startDate instanceof DateTime\r\n ? startDate\r\n : DateTime.fromJSDate(startDate);\r\n\r\n const dtEnd: DateTime =\r\n typeof endDate === 'string'\r\n ? DateTime.fromISO(endDate)\r\n : endDate instanceof DateTime\r\n ? endDate\r\n : DateTime.fromJSDate(endDate);\r\n\r\n return dtStart.diff(DateTime.min(today, dtEnd), 'hours').toObject().hours;\r\n};\r\n\r\n// funciĆ³n que retorna la cantidad de horas transcurridas en un dĆ­a\r\n// si ese dĆ­a es hoy entonces las horas transcurridas son hasta DateTime.now()\r\nexport const elapsedHoursInDate = (date: string | Date | DateTime, utcOffset?: number) => {\r\n const today = todayWithUtcOffset(utcOffset);\r\n\r\n const dt: DateTime =\r\n typeof date === 'string'\r\n ? DateTime.fromISO(date)\r\n : date instanceof DateTime\r\n ? date\r\n : DateTime.fromJSDate(date);\r\n\r\n return isToday(dt, utcOffset) ? today.diff(dt, 'hours').toObject().hours : 24.0;\r\n};\r\n\r\n// ** Checks if the passed date is today\r\nexport const isToday = (date: string | Date | DateTime, utcOffset?: number) => {\r\n const today = todayWithUtcOffset(utcOffset);\r\n\r\n const dt: DateTime =\r\n typeof date === 'string'\r\n ? DateTime.fromISO(date)\r\n : date instanceof DateTime\r\n ? date\r\n : DateTime.fromJSDate(date);\r\n\r\n return (\r\n /* eslint-disable operator-linebreak */\r\n dt.get('day') === today.get('day') &&\r\n dt.get('month') === today.get('month') &&\r\n dt.get('year') === today.get('year')\r\n /* eslint-enable */\r\n );\r\n};\r\n\r\n/**\r\n ** Format and return date in Humanize format\r\n ** Intl docs: https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Intl/DateTimeFormat/format\r\n ** Intl Constructor: https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Intl/DateTimeFormat/DateTimeFormat\r\n * @param {String} value date to format\r\n * @param {Object} formatting Intl object to format with\r\n */\r\nexport const formatDate = (\r\n value,\r\n formatting: Intl.DateTimeFormatOptions = { month: 'short', day: 'numeric', year: 'numeric' }\r\n) => {\r\n if (!value) return value;\r\n return new Intl.DateTimeFormat('en-US', formatting).format(new Date(value));\r\n};\r\n\r\n// ** Returns short month of passed date\r\nexport const formatDateToMonthShort = (value, toTimeForCurrentDay = true) => {\r\n const date = new Date(value);\r\n let formatting: Intl.DateTimeFormatOptions = { month: 'short', day: 'numeric' };\r\n\r\n if (toTimeForCurrentDay && isToday(date)) {\r\n formatting = { hour: 'numeric', minute: 'numeric' };\r\n }\r\n\r\n return new Intl.DateTimeFormat('en-US', formatting).format(new Date(value));\r\n};\r\n\r\n/**\r\n ** Return if user is logged in\r\n ** This is completely up to you and how you want to store the token in your frontend application\r\n * ? e.g. If you are using cookies to store the application please update this function\r\n */\r\nexport const isUserLoggedIn = () => {\r\n let token = localStorage.getItem('auth');\r\n let userData = getUserData();\r\n return token && userData && userData.exp > Date.now() / 1000;\r\n};\r\nexport const getUserData = () => JSON.parse(localStorage?.getItem('userData') || '{}');\r\n/**\r\n ** This function is used for demo purpose route navigation\r\n ** In real app you won't need this function because your app will navigate to same route for each users regardless of ability\r\n ** Please note role field is just for showing purpose it's not used by anything in frontend\r\n ** We are checking role just for ease\r\n * ? NOTE: If you have different pages to navigate based on user ability then this function can be useful. However, you need to update it.\r\n * @param {String} userRole Role of user\r\n */\r\nexport const getHomeRouteForLoggedInUser = (userRole) => {\r\n if (userRole === 'admin') return '/';\r\n if (userRole === 'client') return '/access-control';\r\n return '/login';\r\n};\r\n\r\n// ** React Select Theme Colors\r\nexport const selectThemeColors = (theme) => ({\r\n ...theme,\r\n colors: {\r\n ...theme.colors,\r\n primary25: '#7367f01a', // for option hover bg-color\r\n primary: '#7367f0', // for selected option bg-color\r\n neutral10: '#7367f0', // for tags bg-color\r\n neutral20: '#ededed', // for input border-color\r\n neutral30: '#ededed' // for input hover border-color\r\n }\r\n});\r\n\r\n// Checks if given strings is a valid email\r\n// return bool\r\nexport const isValidEmail = (email) => {\r\n const emailRe =\r\n /^(([^<>()[\\]\\\\.,;:\\s@\\\"]+(\\.[^<>()[\\]\\\\.,;:\\s@\\\"]+)*)|(\\\".+\\\"))@((\\[[0-9]{1,3}\\.[0-9]{1,3}\\.[0-9]{1,3}\\.[0-9]{1,3}\\])|(([a-zA-Z\\-0-9]+\\.)+[a-zA-Z]{2,}))$/;\r\n return emailRe.test(String(email).toLowerCase());\r\n};\r\n\r\n// Checks if given strings is a valid email\r\n// returns bool\r\nexport const isNumber = (stringToCheck) => {\r\n const numberRe = /^\\d+$/;\r\n return numberRe.test(stringToCheck);\r\n};\r\n\r\nexport function numberWithCommas(x) {\r\n if (!x) return '0';\r\n //Trunco el nĆŗmero a 2 decimales\r\n x = trunc(x, 2);\r\n return x.toString().replace(/\\B(?=(\\d{3})+(?!\\d))/g, ',');\r\n}\r\n\r\nexport function formatAmount(n: number | string) {\r\n if (!isValidNumber(n).test) return Number('0').toFixed(2);\r\n\r\n return Number(n)\r\n .toFixed(2)\r\n .replace(/\\B(?=(\\d{3})+(?!\\d))/g, ',');\r\n}\r\n\r\nfunction trunc(x, posiciones = 0) {\r\n if (!x.toString().includes('.')) {\r\n return x.toString();\r\n }\r\n var decimalLength = x.toString().indexOf('.') + 1;\r\n var numStr = x.toString().substr(0, decimalLength + posiciones);\r\n return numStr;\r\n}\r\n\r\nexport const isBitSet = (b, pos) => (b & (1 << pos)) !== 0;\r\n\r\nexport const convertTime = (time) => ({\r\n ...time,\r\n startTime: DateTime.local(\r\n 2000,\r\n 1,\r\n 2,\r\n ...time.startTime.split(':').map((time) => +time)\r\n ).toString(),\r\n endTime: DateTime.local(2000, 1, 2, ...time.endTime.split(':').map((time) => +time)).toString()\r\n});\r\n\r\nexport const isIterable = (obj) => obj != null && typeof obj[Symbol.iterator] === 'function';\r\n\r\nexport const imagesLink = 'https://pictures.webtrack.online/partner/desarrollo/FormsFiles/';\r\n\r\n/**\r\n * Get days between date and today\r\n * @param date\r\n * @returns Days between date and today\r\n */\r\nexport const getDaysBetweenDateAndToday = (date) => {\r\n const intl: IntlShape = appIntl();\r\n const startDate = new Date(date);\r\n const endDate = new Date();\r\n var seconds = Math.abs(endDate?.getTime() - startDate?.getTime()) / 1000;\r\n\r\n if (seconds <= 60) {\r\n return intl.formatMessage({ id: 'units.aFewSecondsAgo' });\r\n }\r\n\r\n var startYear = startDate?.getFullYear();\r\n var february = (startYear % 4 === 0 && startYear % 100 !== 0) || startYear % 400 === 0 ? 29 : 28;\r\n var daysInMonth = [31, february, 31, 30, 31, 30, 31, 31, 30, 31, 30, 31];\r\n var yearDiff = endDate?.getFullYear() - startYear;\r\n var monthDiff = endDate?.getMonth() - startDate?.getMonth();\r\n if (monthDiff < 0) {\r\n yearDiff--;\r\n monthDiff += 12;\r\n }\r\n var dayDiff = endDate?.getDate() - startDate?.getDate();\r\n if (dayDiff < 0) {\r\n if (monthDiff > 0) {\r\n monthDiff--;\r\n } else {\r\n yearDiff--;\r\n monthDiff = 11;\r\n }\r\n dayDiff += daysInMonth[startDate?.getMonth()];\r\n }\r\n\r\n var weekDiff = dayDiff >= 7 ? Math.floor(dayDiff / 7) : 0;\r\n dayDiff -= 7 * weekDiff;\r\n\r\n var hourDiff = 0;\r\n var minuteDiff = 0;\r\n\r\n if (seconds >= 60 && seconds < 3600) {\r\n minuteDiff = Math.round(seconds / 60);\r\n } else if (seconds >= 3600 && seconds < 86400) {\r\n hourDiff = Math.round(seconds / 3600);\r\n dayDiff = 0;\r\n }\r\n\r\n return yearDiff > 0\r\n ? yearDiff > 1\r\n ? `${intl.formatMessage({ id: 'units.yearsAgo' }, { value: yearDiff })}`\r\n : `${intl.formatMessage({ id: 'units.aYearAgo' })}`\r\n : monthDiff > 0\r\n ? monthDiff > 1\r\n ? `${intl.formatMessage({ id: 'units.monthsAgo' }, { value: monthDiff })}`\r\n : `${intl.formatMessage({ id: 'units.aMonthAgo' })}`\r\n : weekDiff > 0\r\n ? weekDiff > 1\r\n ? `${intl.formatMessage({ id: 'units.weeksAgo' }, { value: weekDiff })}`\r\n : `${intl.formatMessage({ id: 'units.aWeekAgo' })}`\r\n : dayDiff > 0\r\n ? dayDiff > 1\r\n ? `${intl.formatMessage({ id: 'units.daysAgo' }, { value: dayDiff })}`\r\n : `${intl.formatMessage({ id: 'units.aDayAgo' })}`\r\n : hourDiff > 0\r\n ? hourDiff > 1\r\n ? `${intl.formatMessage({ id: 'units.hoursAgo' }, { value: hourDiff })}`\r\n : `${intl.formatMessage({ id: 'units.anHourAgo' })}`\r\n : minuteDiff > 0\r\n ? minuteDiff > 1\r\n ? `${intl.formatMessage({ id: 'units.minutesAgo' }, { value: minuteDiff })}`\r\n : `${intl.formatMessage({ id: 'units.aMinuteAgo' })}`\r\n : '';\r\n};\r\n\r\n//Genera el listado de fechas en un rango de fechas establecido en el DateInput\r\nexport const getDateColumnsInDateRange = (intl, dateRange: string[], stacked: boolean = false) => {\r\n if (dateRange && dateRange.length > 0) {\r\n let startDate = new Date(dateRange[0]);\r\n let endDate = new Date(dateRange[1]);\r\n let dateArray: any = [];\r\n\r\n while (startDate <= endDate) {\r\n dateArray.push(new Date(startDate));\r\n startDate.setDate(startDate.getDate() + 1);\r\n }\r\n return dateArray.map((date) => {\r\n const dateTitle =\r\n date.getFullYear() +\r\n '-' +\r\n (date.getMonth() + 1 < 10 ? '0' : '') +\r\n (date.getMonth() + 1) +\r\n '-' +\r\n (date.getDate() < 10 ? '0' : '') +\r\n date.getDate();\r\n\r\n return {\r\n fieldName: stacked ? undefined : dateTitle,\r\n customKey: stacked ? dateTitle : undefined,\r\n staticText:\r\n date.getDay() === 0\r\n ? `${intl.formatMessage({ id: 'common.sun' })} ${date.getDate()}`\r\n : date.getDay() === 1\r\n ? `${intl.formatMessage({ id: 'common.mon' })} ${date.getDate()}`\r\n : date.getDay() === 2\r\n ? `${intl.formatMessage({ id: 'common.tue' })} ${date.getDate()}`\r\n : date.getDay() === 3\r\n ? `${intl.formatMessage({ id: 'common.wed' })} ${date.getDate()}`\r\n : date.getDay() === 4\r\n ? `${intl.formatMessage({ id: 'common.thu' })} ${date.getDate()}`\r\n : date.getDay() === 5\r\n ? `${intl.formatMessage({ id: 'common.fri' })} ${date.getDate()}`\r\n : date.getDay() === 6\r\n ? `${intl.formatMessage({ id: 'common.sat' })} ${date.getDate()}`\r\n : ''\r\n };\r\n });\r\n } else {\r\n return [];\r\n }\r\n};\r\n\r\nexport const getWeekColumns = (intl, data: Array, stacked: boolean = false) => {\r\n const weeks = [];\r\n\r\n if (data) {\r\n data.forEach((item: any) => {\r\n if (item.weekNumber && !weeks.includes(item.weekNumber)) {\r\n weeks.push(item.weekNumber);\r\n }\r\n });\r\n\r\n const columns = weeks.map((week) => {\r\n const startWeekDate = DateTime.fromISO(\r\n data?.find((d) => d.weekNumber === week).startWeekDate\r\n ).toFormat('yyyy-MM-dd');\r\n\r\n const endWeekDate = DateTime.fromISO(\r\n data?.find((d) => d.weekNumber === week).endWeekDate\r\n ).toFormat('yyyy-MM-dd');\r\n\r\n const weekColumns = [\r\n {\r\n fieldName: `performance-week${week}`,\r\n headerText: 'jobs.reports.performance',\r\n customAttributes: { class: 'side-borders-columns-subColumns' }\r\n },\r\n {\r\n fieldName: `travel-week${week}`,\r\n headerText: 'jobs.reports.travel',\r\n customAttributes: { class: 'side-borders-columns-subColumns' }\r\n },\r\n {\r\n fieldName: `consumption-week${week}`,\r\n headerText: 'jobs.reports.workTime',\r\n customAttributes: { class: 'side-borders-columns-subColumns' }\r\n },\r\n {\r\n fieldName: `total-week${week}`,\r\n headerText: 'jobs.reports.workTime',\r\n customAttributes: { class: 'side-borders-columns-subColumns' }\r\n }\r\n ];\r\n\r\n return {\r\n customKey: `week${week}`,\r\n staticText: `${\r\n intl.formatMessage({ id: 'common.week' }) + ` ${week}`\r\n } | ${startWeekDate} -> ${endWeekDate}`,\r\n customAttributes: { class: 'side-borders-columns-header' },\r\n columns: weekColumns\r\n };\r\n });\r\n\r\n return columns;\r\n } else {\r\n return [];\r\n }\r\n};\r\n\r\nconst userTimezoneOffset = new Date().getTimezoneOffset() * 60000;\r\nexport const convertExcelDateToSystemDate = (excelDate) => {\r\n if (typeof excelDate === 'string') {\r\n return excelDate;\r\n } else {\r\n let systemDate = moment(\r\n new Date(Math.round((excelDate - 25569) * 86400 * 1000) + userTimezoneOffset)\r\n ).format('YYYY-MM-DD HH:mm');\r\n return systemDate;\r\n }\r\n};\r\n\r\nexport interface ValidatorsReturn {\r\n test: boolean;\r\n errorMessage?: string;\r\n}\r\n\r\n/**\r\n * Is Alpha Numeric Or Empty\r\n * @name isAlphaNumericOrEmpty\r\n * @description Test if value is valid or empty\r\n * @param value Unknown value to test or empty\r\n * @returns ValidatorsReturn\r\n */\r\nexport const isAlphaNumericOrEmpty = (value: unknown): ValidatorsReturn => {\r\n if (!isNotNullOrUndefined(value)) {\r\n return {\r\n test: true,\r\n errorMessage: undefined\r\n };\r\n }\r\n\r\n // Additional verification for empty values (spaces)\r\n if (typeof value === 'string') {\r\n const valueToValidate = String(value).trim();\r\n if (valueToValidate.length === 0) {\r\n return {\r\n test: true,\r\n errorMessage: undefined\r\n };\r\n }\r\n }\r\n\r\n return isAlphaNumeric(value);\r\n};\r\n\r\n/**\r\n * Is Alpha Numeric\r\n * @name isAlphaNumeric\r\n * @description Test if value is valid\r\n * @param value Unknown value to test\r\n * @returns ValidatorsReturn\r\n */\r\nexport const isAlphaNumeric = (value: unknown): ValidatorsReturn => {\r\n const alpha = /^.+$/;\r\n switch (typeof value) {\r\n case 'string': {\r\n const valueToValidate = String(value).trim();\r\n const test = isNotNullOrUndefined(value) ? alpha.test(valueToValidate) : false;\r\n\r\n if (valueToValidate.length === 0) {\r\n return {\r\n test: false,\r\n errorMessage: appIntl().formatMessage({ id: 'validators.alphaNumeric' })\r\n };\r\n }\r\n\r\n return {\r\n test: test,\r\n errorMessage: test ? undefined : appIntl().formatMessage({ id: 'validators.alphaNumeric' })\r\n };\r\n }\r\n case 'number': {\r\n const test = isNotNullOrUndefined(value) ? alpha.test(String(value)) : false;\r\n return {\r\n test: test,\r\n errorMessage: test ? undefined : appIntl().formatMessage({ id: 'validators.alphaNumeric' })\r\n };\r\n }\r\n case 'boolean': {\r\n const test = isNotNullOrUndefined(value) ? alpha.test(String(value)) : false;\r\n return {\r\n test: test,\r\n errorMessage: test ? undefined : appIntl().formatMessage({ id: 'validators.alphaNumeric' })\r\n };\r\n }\r\n case 'object': {\r\n const test = isNotNullOrUndefined(value) ? alpha.test(String(value)) : false;\r\n return {\r\n test: test,\r\n errorMessage: test ? undefined : appIntl().formatMessage({ id: 'validators.alphaNumeric' })\r\n };\r\n }\r\n case 'undefined': {\r\n return {\r\n test: false,\r\n errorMessage: appIntl().formatMessage({ id: 'validators.alphaNumeric' })\r\n };\r\n }\r\n case 'function': {\r\n return {\r\n test: false,\r\n errorMessage: appIntl().formatMessage({ id: 'validators.alphaNumeric' })\r\n };\r\n }\r\n case 'symbol': {\r\n return {\r\n test: false,\r\n errorMessage: appIntl().formatMessage({ id: 'validators.alphaNumeric' })\r\n };\r\n }\r\n case 'bigint': {\r\n const test = isNotNullOrUndefined(value) ? alpha.test(String(value)) : false;\r\n return {\r\n test: test,\r\n errorMessage: test ? undefined : appIntl().formatMessage({ id: 'validators.alphaNumeric' })\r\n };\r\n }\r\n\r\n default: {\r\n const test = isNotNullOrUndefined(value) ? alpha.test(String(value)) : false;\r\n return {\r\n test: test,\r\n errorMessage: test ? undefined : appIntl().formatMessage({ id: 'validators.alphaNumeric' })\r\n };\r\n }\r\n }\r\n};\r\n\r\n/**\r\n * Is Valid Number Or Empty\r\n * @name isValidNumberOrEmpty\r\n * @description Test if value is valid or empty\r\n * @param value Unknown value to test or empty\r\n * @returns ValidatorsReturn\r\n */\r\nexport const isValidNumberOrEmpty = (value: unknown): ValidatorsReturn => {\r\n if (!isNotNullOrUndefined(value)) {\r\n return {\r\n test: true,\r\n errorMessage: undefined\r\n };\r\n }\r\n\r\n return isValidNumber(value);\r\n};\r\n\r\n/**\r\n * Is Valid Number\r\n * @name isValidNumber\r\n * @description Test if value is valid\r\n * @param value Unknown value to test\r\n * @returns ValidatorsReturn\r\n */\r\nexport const isValidNumber = (value: unknown): ValidatorsReturn => {\r\n let numeric = /^\\d*\\.?\\d*$/;\r\n let test = numeric.test(String(value));\r\n\r\n // Test if value is a number\r\n if (test) {\r\n return { test: test, errorMessage: undefined };\r\n } else {\r\n return { test: test, errorMessage: appIntl().formatMessage({ id: 'validators.number' }) };\r\n }\r\n};\r\n\r\n/**\r\n * Validate last 4 digits of a card\r\n * @name validLast4Digits\r\n * @description Test if value is valid\r\n * @param value {Unknown} value to test\r\n * @returns {ValidatorsReturn}\r\n */\r\nexport const validLast4Digits = (value: unknown): ValidatorsReturn => {\r\n try {\r\n // Check if the value is a number\r\n const isNumber = isValidNumber(value);\r\n // Check if the number is a 4 digits number\r\n const is4Digits = String(value).length === 4;\r\n // Check if the number is a 4 digits number and a number\r\n const is4DigitsNumber = isNumber && is4Digits;\r\n // Return the validation\r\n return {\r\n test: is4DigitsNumber,\r\n errorMessage: is4DigitsNumber\r\n ? undefined\r\n : appIntl().formatMessage({ id: 'validators.last4' })\r\n };\r\n } catch (e) {\r\n return {\r\n test: false,\r\n errorMessage: appIntl().formatMessage({ id: 'validators.last4' })\r\n };\r\n }\r\n};\r\n\r\n/**\r\n * Validate provided date\r\n * @name isValidDate\r\n * @description Test if value is valid\r\n * @param date {Unknown} value to test\r\n * @returns {ValidatorsReturn}\r\n * @example\r\n * isValidDate('2020-01-01') // true\r\n * isValidDate('2020-01-01 00:00:00') // true\r\n * isValidDate('2020-01-01 00:00:00.000') // true\r\n * isValidDate('2020-01-01 00:00:00.000Z') // true\r\n * isValidDate('2020-01-01 00:00:00.000+00:00') // true\r\n */\r\nexport const isValidDate = (date): ValidatorsReturn => {\r\n if (isNullOrUndefined(date) || date === '' || /^\\s+$/.test(String(date))) {\r\n return { test: false, errorMessage: appIntl().formatMessage({ id: 'validators.date' }) };\r\n }\r\n\r\n const isValid = moment(date, 'YYYY-MM-DD').isValid();\r\n return {\r\n test: isValid,\r\n errorMessage: isValid ? undefined : appIntl().formatMessage({ id: 'validators.date' })\r\n };\r\n};\r\nexport const isValidExcelDate = (excelDate) => {\r\n const date = convertExcelDateToSystemDate(excelDate);\r\n const test = moment(date, 'YYYY-MM-DD').isValid();\r\n return {\r\n test: test,\r\n errorMessage: test ? undefined : appIntl().formatMessage({ id: 'validators.date' })\r\n };\r\n};\r\n\r\nexport const validateColumns = (dataInfo, columnDefinitions) => {\r\n const rules = columnDefinitions.map((cd) => cd.rules);\r\n const newData = dataInfo.map((row, rowIndex) => {\r\n let invalidColumns = new Array();\r\n const rowValues = Object.values(row);\r\n //validar que las columnas esten completas\r\n\r\n rowValues.forEach((colValue, colIndex) => {\r\n const required = rules[colIndex] ? rules[colIndex]?.required : false;\r\n const validation = rules[colIndex]\r\n ? rules[colIndex].validator(colValue)\r\n : { test: true, errorMessage: '' };\r\n\r\n if (colValue === '') {\r\n if (required) {\r\n invalidColumns.push({\r\n column: colIndex,\r\n value: colValue,\r\n error: `Es requerido`\r\n });\r\n }\r\n } else {\r\n if (validation.test) {\r\n return;\r\n } else {\r\n invalidColumns.push({\r\n column: colIndex,\r\n value: colValue,\r\n error: validation.errorMessage\r\n });\r\n }\r\n }\r\n });\r\n\r\n return {\r\n ...row,\r\n originalRowId: rowIndex + 1,\r\n invalidColumns: invalidColumns,\r\n rowIsValid: invalidColumns.length > 0 ? false : true\r\n };\r\n });\r\n\r\n return newData;\r\n};\r\n\r\n/**\r\n * Validate provided required value\r\n * @name validateRequiredValue\r\n * @description Test if value is valid\r\n * @param value {Unknown} value to test\r\n * @returns {ValidatorsReturn}\r\n * @example\r\n * validateRequiredValue('') // false\r\n * validateRequiredValue(null) // false\r\n * validateRequiredValue('undefined') // false\r\n * validateRequiredValue('null') // false\r\n * validateRequiredValue('NaN') // false\r\n * validateRequiredValue(undefined) // false\r\n * validateRequiredValue(0) // true\r\n * validateRequiredValue(1) // true\r\n * validateRequiredValue('0') // true\r\n */\r\nconst validateRequiredValue = (value: unknown): ValidatorsReturn => {\r\n const test = value !== null && value !== undefined;\r\n\r\n if (test) {\r\n return { test: true, errorMessage: undefined };\r\n } else {\r\n return {\r\n test: false,\r\n errorMessage: appIntl().formatMessage({ id: 'validators.requiredValue' })\r\n };\r\n }\r\n};\r\n\r\nexport const isValidDayOfTheWeek = (value: unknown): ValidatorsReturn => {\r\n const intl: IntlShape = appIntl();\r\n if (typeof value === 'number') {\r\n return {\r\n test: value >= 1 && value <= 7,\r\n errorMessage: intl.formatMessage({ id: 'validators.dayOfTheWeek' })\r\n };\r\n }\r\n\r\n if (typeof value === 'string') {\r\n const formattedDayOfTheWeek = intl.formatDate(new Date(value), { weekday: 'long' });\r\n\r\n const dayOfTheWeekMoment = moment(formattedDayOfTheWeek, 'dddd', intl.locale);\r\n\r\n if (dayOfTheWeekMoment.isValid()) {\r\n return {\r\n test: true,\r\n errorMessage: undefined\r\n };\r\n }\r\n }\r\n\r\n return {\r\n test: false,\r\n errorMessage: intl.formatMessage({ id: 'validators.requiredValue' })\r\n };\r\n};\r\n\r\n/**\r\n * Is valid boolean\r\n * @param value - Value to test\r\n * @description Test if value is valid\r\n * @returns {ValidatorsReturn}\r\n */\r\nexport const isValidBoolean = (value: unknown): ValidatorsReturn => {\r\n if (typeof value === 'boolean') {\r\n // value is a boolean, which is a valid type for a boolean field\r\n return { test: true, errorMessage: undefined };\r\n } else if (typeof value === 'string') {\r\n const toValidate = value.toLowerCase().trim();\r\n if (toValidate === 'true' || toValidate === 'false') {\r\n // value is a string with a valid value for a boolean field\r\n return { test: true, errorMessage: undefined };\r\n }\r\n } else if (typeof value === 'number') {\r\n if (value === 0 || value === 1) {\r\n // value is a number with a valid value for a boolean field\r\n return { test: true, errorMessage: undefined };\r\n }\r\n }\r\n\r\n return {\r\n test: false,\r\n errorMessage: appIntl().formatMessage({ id: 'validators.requiredValue' })\r\n };\r\n};\r\n\r\nexport const isValidBit = (value: unknown): ValidatorsReturn => {\r\n if (typeof value === 'string') {\r\n const toValidate = value.toLowerCase().trim();\r\n if (toValidate === '1' || toValidate === '0') {\r\n // value is a string with a valid value for a boolean field\r\n return { test: true, errorMessage: undefined };\r\n }\r\n } else if (typeof value === 'number') {\r\n if (value === 0 || value === 1) {\r\n // value is a number with a valid value for a boolean field\r\n return { test: true, errorMessage: undefined };\r\n }\r\n }\r\n\r\n return {\r\n test: false,\r\n errorMessage: appIntl().formatMessage({ id: 'validators.requiredValue' })\r\n };\r\n};\r\n\r\nexport const isValidLatitude = (value: unknown): ValidatorsReturn => {\r\n switch (typeof value) {\r\n case 'number':\r\n const test: boolean = value >= -90 && value <= 90;\r\n return {\r\n test,\r\n errorMessage: !test ? undefined : appIntl().formatMessage({ id: 'validators.latitude' })\r\n };\r\n case 'string': {\r\n const parsedValue = parseFloat(value);\r\n const test: boolean = !isNaN(parsedValue) && parsedValue >= -90 && parsedValue <= 90;\r\n return {\r\n test,\r\n errorMessage: !test ? undefined : appIntl().formatMessage({ id: 'validators.latitude' })\r\n };\r\n }\r\n }\r\n\r\n return {\r\n test: false,\r\n errorMessage: appIntl().formatMessage({ id: 'validators.bit' })\r\n };\r\n};\r\n\r\nexport const isValidLongitude = (value: unknown): ValidatorsReturn => {\r\n switch (typeof value) {\r\n case 'number':\r\n const test: boolean = value >= -180 && value <= 180;\r\n return {\r\n test,\r\n errorMessage: !test ? undefined : appIntl().formatMessage({ id: 'validators.longitude' })\r\n };\r\n case 'string': {\r\n const parsedValue = parseFloat(value);\r\n const test: boolean = !isNaN(parsedValue) && parsedValue >= -180 && parsedValue <= 180;\r\n return {\r\n test,\r\n errorMessage: !test ? undefined : appIntl().formatMessage({ id: 'validators.longitude' })\r\n };\r\n }\r\n }\r\n\r\n return {\r\n test: false,\r\n errorMessage: appIntl().formatMessage({ id: 'validators.requiredValue' })\r\n };\r\n};\r\n\r\nexport const validators = {\r\n isAlphaNumericOrEmpty,\r\n isAlphaNumeric,\r\n isValidNumberOrEmpty,\r\n isValidNumber,\r\n isValidEmail,\r\n validLast4Digits,\r\n isValidDate,\r\n isValidExcelDate,\r\n validateRequiredValue,\r\n isValidDayOfTheWeek,\r\n isValidBoolean,\r\n isValidLatitude,\r\n isValidLongitude,\r\n isValidBit\r\n};\r\n\r\nexport const normalizeString = (value: string): string => {\r\n return value\r\n .normalize('NFD')\r\n .replace(/[\\u0300-\\u036f]/g, '')\r\n .trim();\r\n};\r\n\r\n/**\r\n * Normalize input texts\r\n * @param data string from an input\r\n * @returns normalized strings allowing spaces after words\r\n */\r\nexport const normalizeInputText = (data: string): string => {\r\n // Allow clear input\r\n if (typeof data === 'string' && data.trim().length === 0) {\r\n return '';\r\n }\r\n\r\n // Allow only letters and spaces\r\n const validInputRegex = /^(\\w+\\s?)+$/;\r\n if (validInputRegex.test(data)) {\r\n return data;\r\n }\r\n\r\n // Allow only letters, numbers and spaces after words (not before)\r\n return normalizeString(data);\r\n};\r\n\r\nexport const parseToString = (data: unknown): string | undefined => {\r\n switch (typeof data) {\r\n case 'string':\r\n if (data.trim().length === 0 || data.trim() === '') {\r\n return undefined;\r\n }\r\n return data;\r\n case 'number':\r\n return normalizeString(data.toString());\r\n case 'boolean':\r\n return normalizeString(data.toString());\r\n case 'object':\r\n if (isNullOrUndefined(data)) {\r\n return undefined;\r\n }\r\n if (isDate(data)) {\r\n return normalizeString(data.toString());\r\n }\r\n }\r\n\r\n return undefined;\r\n};\r\n\r\n/**\r\n * get any date and set todays day, month and year\r\n */\r\n\r\nexport const setTodaysDate = (date: Date): Date => {\r\n const today = new Date();\r\n const newDate = new Date(\r\n today.getFullYear(),\r\n today.getMonth(),\r\n today.getDate(),\r\n date.getHours(),\r\n date.getMinutes(),\r\n date.getSeconds()\r\n );\r\n\r\n return newDate;\r\n};\r\n\r\n/**\r\n * Excel date to JS Date\r\n * @param serial Date saved as number from excel\r\n * @returns {Date} parsed number\r\n */\r\nexport const excelDateToJSDate = (serial: number): Date => {\r\n const utcDays = Math.floor(serial - 25569);\r\n const utcValue = utcDays * 86400;\r\n const dateInfo = new Date(utcValue * 1000);\r\n\r\n const fractionalDay = serial - Math.floor(serial) + 0.0000001;\r\n\r\n let totalSeconds = Math.floor(86400 * fractionalDay);\r\n\r\n const seconds = totalSeconds % 60;\r\n\r\n totalSeconds -= seconds;\r\n\r\n const hours = Math.floor(totalSeconds / (60 * 60));\r\n const minutes = Math.floor(totalSeconds / 60) % 60;\r\n\r\n return new Date(\r\n dateInfo.getFullYear(),\r\n dateInfo.getMonth(),\r\n dateInfo.getDate(),\r\n hours,\r\n minutes,\r\n seconds\r\n );\r\n};\r\n\r\n/**\r\n * function that receives an excel date and returns a date object\r\n * @param date {number} excel date\r\n * @returns {Date | undefined}\r\n * @example\r\n * parseToDate(0.20833333333333334) // 2023-03-31T00:17:57.000Z\r\n */\r\nconst parseToDate = (excelDate: unknown): Date | undefined => {\r\n if (typeof excelDate === 'number') {\r\n return excelDateToJSDate(excelDate);\r\n } else if (typeof excelDate === 'string') {\r\n const dateObj = new Date(excelDate);\r\n return dateObj;\r\n } else if (isDate(excelDate)) {\r\n return excelDate;\r\n }\r\n\r\n return undefined;\r\n};\r\n\r\nexport const parseToDateTime = (excelDate: unknown): Date | undefined => {\r\n if (typeof excelDate === 'number') {\r\n return DateTime.fromISO(exceldate(excelDate).toISOString(), { zone: 'utc' })\r\n .setZone('system', { keepLocalTime: true })\r\n .toJSDate();\r\n } else if (typeof excelDate === 'string') {\r\n const dateObj = new Date(excelDate);\r\n return dateObj;\r\n } else if (isDate(excelDate)) {\r\n return excelDate;\r\n }\r\n\r\n return undefined;\r\n};\r\n\r\nexport const parseToNumber = (data: unknown): number | undefined => {\r\n if (typeof data === 'number') {\r\n return data ?? 0;\r\n }\r\n\r\n if (typeof data === 'string') {\r\n const value = Number(data);\r\n\r\n return isNaNOrNullable(value) ? 0 : value;\r\n }\r\n\r\n return undefined;\r\n};\r\n\r\n/**\r\n * @name dateFormatter\r\n * @description date formatter function with moment js library\r\n * @param dateFormat default 'DD/MM/AAAA HH:mm:ss'\r\n * @returns date formatter function\r\n */\r\nexport const dateFormatter = (dateFormat: string = 'DD/MM/YYYY HH:mm:ss') => {\r\n return (d: Date) => {\r\n const m = moment(d);\r\n if (!m.isValid()) {\r\n console.warn(d, 'is not a valid date');\r\n return '';\r\n }\r\n return m.format(dateFormat);\r\n };\r\n};\r\n\r\nexport const parseToBoolean = (data: unknown): boolean | undefined => {\r\n switch (typeof data) {\r\n case 'boolean':\r\n return data;\r\n case 'string':\r\n switch (data.toLowerCase().trim()) {\r\n case 'true':\r\n return true;\r\n case 'false':\r\n return false;\r\n case '1':\r\n return true;\r\n case '0':\r\n return false;\r\n }\r\n break;\r\n case 'number':\r\n return data === 1;\r\n default:\r\n return undefined;\r\n }\r\n};\r\n\r\nexport const parseToBit = (data: unknown): 0 | 1 | undefined => {\r\n const result = parseToBoolean(data);\r\n if (result === undefined) {\r\n return result;\r\n }\r\n\r\n return result ? 1 : 0;\r\n};\r\n\r\nexport const parsers = {\r\n parseToString,\r\n parseToDate,\r\n parseToNumber,\r\n parseToBoolean,\r\n parseToBit,\r\n parseToDateTime\r\n};\r\n\r\nexport const timeToSeconds = (time: Date): number => {\r\n return time.getHours() * 3600 + time.getMinutes() * 60 + time.getSeconds();\r\n};\r\n\r\nexport const timeToMinutes = (time: Date): number => {\r\n return time.getHours() * 60 + time.getMinutes();\r\n};\r\n\r\nexport const getValueFromTryCatch = (handleTry: Function, handleCatch: Function) => {\r\n let value: any;\r\n try {\r\n value = handleTry();\r\n } catch (err) {\r\n console.error(err);\r\n value = handleCatch(err);\r\n }\r\n return value;\r\n};\r\n\r\nexport const compareObjectValues = (obj1: object, obj2: object): boolean =>\r\n JSON.stringify(obj1) === JSON.stringify(obj2);\r\n\r\nexport const getSecondsFromDateHours = (date: Date) => {\r\n return typeof date?.getHours === 'function' ? date?.getHours() * 60 * 60 ?? 0 : 0;\r\n};\r\n\r\nexport const getSecondsFromDateMinutes = (date: Date) => {\r\n return typeof date?.getMinutes === 'function' ? date?.getMinutes() * 60 ?? 0 : 0;\r\n};\r\n\r\nexport const getSecondsFromDate = (date: Date) => {\r\n return typeof date?.getSeconds === 'function' ? date?.getSeconds() ?? 0 : 0;\r\n};\r\n\r\nexport const getMinutesFromDate = (date: Date) => {\r\n return typeof date?.getMinutes === 'function' ? date?.getMinutes() ?? 0 : 0;\r\n};\r\n\r\nexport const getTotalSecondsFromDate = (date: Date) => {\r\n const hoursInSeconds = getSecondsFromDateHours(date);\r\n const minutesInSeconds = getSecondsFromDateMinutes(date);\r\n const seconds = getSecondsFromDate(date);\r\n\r\n const totalSeconds = hoursInSeconds + minutesInSeconds + seconds;\r\n return totalSeconds;\r\n};\r\n\r\nexport interface keysAndParsers {\r\n key: string;\r\n parse: Function;\r\n}\r\n\r\n/**\r\n * Map formatted string to array\r\n * @param data string formatted like \"1~39~n...^1~28~n...\"\r\n * @param keys array of key to map data to object\r\n * [{key: 'name', parse: () => {}},\r\n * {key: 'lastname', parse: () => {}},\r\n * ...]\r\n * @returns Array\r\n */\r\nexport const mapFormattedStringToArray = (\r\n data: string,\r\n keysAndValidator: Array\r\n): Array => {\r\n // First split to get every object as string\r\n const newArray: Array = data.split('^').map((objectAsString: string) => {\r\n // Second split to get object as array\r\n const objectAsArray: Array = objectAsString.split('~');\r\n\r\n // mapped object with provided keys\r\n const newObject = keysAndValidator.reduce(\r\n (object: any, { key, parse }: keysAndParsers, index: number): any => {\r\n const newOjectAcum = { ...object };\r\n // validates index is contained into array\r\n // in order to avoid access to undefined values\r\n if (objectAsArray.length > index) {\r\n try {\r\n // new attribute = Value from array located in index\r\n newOjectAcum[key] = parse(objectAsArray[index]);\r\n } catch (error) {\r\n newOjectAcum[key] = undefined;\r\n }\r\n }\r\n return newOjectAcum;\r\n },\r\n {}\r\n );\r\n\r\n return newObject;\r\n });\r\n return newArray ?? [];\r\n};\r\n\r\n/**\r\n * Create a Date with provided minutes and hours\r\n * @param hours Number of hours\r\n * @param minutes Number of minutes\r\n * @returns new date with provided minutes and hours\r\n */\r\nexport const createDateWithHoursAndMinutes = (hours: number, minutes: number): Date => {\r\n const newDate: Date = new Date();\r\n newDate.setHours(hours);\r\n newDate.setMinutes(minutes);\r\n newDate.setSeconds(0);\r\n newDate.setMilliseconds(0);\r\n return newDate;\r\n};\r\n\r\nexport const secondsToMilliseconds = (seconds: number): number => seconds * 1000;\r\n\r\n//Genera la etiqueta de fecha en el formato YYYY-MM-DD\r\nexport const generateDateLabelByDate = (date) => {\r\n return (\r\n date.getFullYear() +\r\n '-' +\r\n (date.getMonth() + 1 < 10 ? '0' : '') +\r\n (date.getMonth() + 1) +\r\n '-' +\r\n (date.getDate() < 10 ? '0' : '') +\r\n date.getDate()\r\n );\r\n};\r\n\r\n//Calcula la diferencia de horas que existe en un rango de fechas ingresado en el DateInput\r\nexport const getDaysHoursInDateRange = (dateRange: Array): number => {\r\n if (dateRange && dateRange.length > 0) {\r\n let startDate = new Date(dateRange[0]);\r\n let endDate = new Date(dateRange[1]);\r\n let difference = endDate.getTime() - startDate.getTime();\r\n return Math.ceil(difference / (1000 * 3600 * 24)) * 24 * 3600;\r\n } else {\r\n return 0;\r\n }\r\n};\r\n\r\n/**\r\n * Generate date array\r\n * @param dateRange Date range provided by date range input\r\n * @returns Array in range of the date\r\n */\r\nexport const generateDateArray = (dateRange: Array): Array => {\r\n const dateArray: Array = [];\r\n if (dateRange && dateRange.length > 0) {\r\n let startDate = new Date(dateRange[0]);\r\n let endDate = new Date(dateRange[1]);\r\n while (startDate <= endDate) {\r\n dateArray.push(new Date(startDate));\r\n startDate.setDate(startDate.getDate() + 1);\r\n }\r\n }\r\n return dateArray;\r\n};\r\n\r\n/**\r\n * Get date as string\r\n * @param date Date to get as string\r\n * @description Returns date as string in format YYYY-MM-DD\r\n * @returns Date as string\r\n */\r\nexport const getDateAsString = (date: Date): string => {\r\n return date.toISOString().substring(0, 10);\r\n};\r\n\r\n/**\r\n * Generate day label by date\r\n * @param date Date to generate label\r\n * @returns Label generated\r\n */\r\nexport const generateDayLabelByDate = (date: Date): string => {\r\n const intl = appIntl();\r\n return date.getDay() === 0\r\n ? `${intl.formatMessage({ id: 'common.sun' })} ${date.getDate()}`\r\n : date.getDay() === 1\r\n ? `${intl.formatMessage({ id: 'common.mon' })} ${date.getDate()}`\r\n : date.getDay() === 2\r\n ? `${intl.formatMessage({ id: 'common.tue' })} ${date.getDate()}`\r\n : date.getDay() === 3\r\n ? `${intl.formatMessage({ id: 'common.wed' })} ${date.getDate()}`\r\n : date.getDay() === 4\r\n ? `${intl.formatMessage({ id: 'common.thu' })} ${date.getDate()}`\r\n : date.getDay() === 5\r\n ? `${intl.formatMessage({ id: 'common.fri' })} ${date.getDate()}`\r\n : date.getDay() === 6\r\n ? `${intl.formatMessage({ id: 'common.sat' })} ${date.getDate()}`\r\n : '';\r\n};\r\n\r\n/**\r\n * Get date string from date item date range\r\n * @param date Date to generate string\r\n * @returns String of the date\r\n */\r\nexport const getDateStringFromDateItemDateRange = (date: any): string => {\r\n return date.toISOString().substr(0, 10);\r\n};\r\n\r\n/**\r\n * Safe Access to nullable prop\r\n * @param obj Object to validate\r\n * @param key Key to validate in the object\r\n * @param defaultValue Default value provided\r\n * @returns Value in the object of default\r\n */\r\nexport const safeAccessToNullProp = (obj: any, key: string, defaultValue: any = undefined): any => {\r\n let value = undefined;\r\n try {\r\n // Access to value in object, catch if error\r\n value = obj[key];\r\n // if value is undefined throw controlled error\r\n if (isNullOrUndefined(value)) throw new Error('Undefined value');\r\n } catch (error) {\r\n // Catch any error and assign default value as value\r\n value = defaultValue;\r\n }\r\n // Return value or default value\r\n return value;\r\n};\r\n\r\n/**\r\n * Is in object\r\n * validates if a prop is in an object\r\n * @param obj: Object to validate\r\n * @param key: string to validate value is in the object\r\n * @returns: boolean\r\n */\r\nexport const isInObject = (obj: any, key: string): boolean => {\r\n let isInObject: boolean;\r\n try {\r\n isInObject = obj[key] !== undefined && obj[key] !== null;\r\n } catch (error) {\r\n isInObject = false;\r\n }\r\n return isInObject;\r\n};\r\n\r\n/**\r\n * Is not in object\r\n * validates if a prop is not in an object\r\n * @param obj: Object to validate\r\n * @param key: string to validate value is in the object\r\n * @returns: boolean\r\n */\r\nexport const isNotInObject = (obj: any, key: string): boolean => !isInObject(obj, key);\r\n\r\n/**\r\n * Is null or undefined\r\n * @param value Get any value to validate\r\n * @returns true if is null or undefined, else false\r\n */\r\nexport const isNullOrUndefined = (value: any): boolean => value === null || value === undefined;\r\n\r\n/**\r\n * Is not null or undefined\r\n * @param value Get any value to validate\r\n * @returns false if is null or undefined, else true\r\n */\r\nexport const isNotNullOrUndefined = (value: any) => !isNullOrUndefined(value);\r\n\r\nexport const isNaNOrNullable = (n: number | null | undefined) => {\r\n return n === null || n === undefined || isNaN(n);\r\n};\r\n\r\nexport const isNotNaNOrNullable = (n: number | null | undefined) => !isNaNOrNullable(n);\r\n\r\n/**\r\n * Check if every element is not null or undefined\r\n * return true if there are not null or undefined values\r\n */\r\nexport const areNotNullOrUndefined = (...arr: any[]) => {\r\n return !arr.some((item) => isNullOrUndefined(item));\r\n};\r\n\r\n/**\r\n * Round time for data report\r\n * @param time: number\r\n * @returns: number\r\n */\r\nexport const parseSecondsToHours = (time: number): number => {\r\n if (isNaNOrNullable(time)) return 0;\r\n\r\n return Math.round((time / 3600) * 100) / 100;\r\n};\r\n\r\nexport const parseHoursToSeconds = (time: number): number => {\r\n if (isNaNOrNullable(time)) return 0;\r\n return time * 3600;\r\n};\r\n\r\n/**\r\n * Round time for report witht epsilon\r\n * @param time : number time in seconds\r\n * @returns time: number rounded\r\n */\r\nexport const parseSecondsToHoursWithEpsilon = (time: number): number => {\r\n if (isNaNOrNullable(time)) return 0;\r\n return Math.round((time / 3600 + Number.EPSILON) * 100) / 100;\r\n};\r\n\r\nexport const getTimeInSeconds = (date: Date) => date.getTime() / 1000;\r\n\r\nexport const getTimeInMinutes = (date: Date) => getTimeInSeconds(date) / 60;\r\n\r\n/**\r\n * Get previous element in array\r\n * @param array : T[]\r\n * @param currentIdx number, idx of current interation\r\n * @returns : T next element or undefined\r\n */\r\nexport function getNextElementInArray(array: Array, currentIdx: number): T | undefined {\r\n if (array.length < 1) return;\r\n let nextElement: T | undefined;\r\n try {\r\n nextElement = array[currentIdx + 1];\r\n } catch (error) {\r\n console.error(new Error('index out of array'));\r\n return undefined;\r\n }\r\n return nextElement;\r\n}\r\n\r\n/**\r\n * Get previous element in array\r\n * @param array : T[]\r\n * @param currentIdx number, idx of current interation\r\n * @returns : T previous element or undefined\r\n */\r\nexport function getPreviousElementInArray(array: Array, currentIdx: number): T | undefined {\r\n if (array.length < 1) return;\r\n let nextElement: T | undefined;\r\n try {\r\n nextElement = array[currentIdx - 1];\r\n } catch (error) {\r\n console.error(new Error('index out of array'));\r\n return undefined;\r\n }\r\n return nextElement;\r\n}\r\n\r\n/**\r\n * Return hour with left zero\r\n * @param n number\r\n * @returns if 9 ? 09 if 10 ? 10\r\n */\r\nexport const addLeftZeroToHours = (n: number): string => {\r\n return (n < 10 && n > -1 ? '0' : '') + n;\r\n};\r\n\r\n/**\r\n * Get difference between dates\r\n * @param a Date end\r\n * @param b Date start\r\n * @returns Time difference as string HH:mm:ss\r\n */\r\nexport const getDifferenceBetweenDatesHHMMSS = (a: Date, b: Date): string => {\r\n // difference in ms\r\n const duration = a.getTime() - b.getTime();\r\n\r\n // minutes and seconds from utc moment date\r\n const minutesSeconds = moment.utc(duration).format('mm:ss');\r\n\r\n // Math floor in order to avoid floats and get only hours\r\n const hours = Math.floor(moment.duration(duration).asHours());\r\n\r\n return `${addLeftZeroToHours(hours)}:${minutesSeconds}`;\r\n};\r\n\r\n/**\r\n * Function that returns number of values\r\n * validates most of the cases of types\r\n * @param obj Object to get number of values\r\n * @returns Return number of values of 0 as default\r\n */\r\nexport const getNumberOfValues = (obj: unknown) => {\r\n // Validate array\r\n if (Array.isArray(obj)) return obj.length;\r\n\r\n // validate null or undefined\r\n if (isNullOrUndefined(obj)) return 0;\r\n\r\n // case object\r\n if (typeof obj == 'object') return Object.values(obj ?? {}).length;\r\n\r\n return 0;\r\n};\r\n\r\nexport const hasTheSameStructure = (objs: Array): boolean => {\r\n if (isNullOrUndefined(objs)) return false;\r\n if (objs.length <= 0) return false;\r\n const keys: Array = Object.keys(objs[0]);\r\n return objs.every((current) => _.isEqual(Object.keys(current), keys));\r\n};\r\n\r\n/**\r\n * Get Days between date and today\r\n * @param date : string | date\r\n * @returns : string indicating difference between date and today\r\n */\r\nexport const getDaysBetweenDateAndTodayRef = (date: Date | string): string => {\r\n const intl = appIntl();\r\n const startDate = new Date(new Date().toISOString().substr(0, 10));\r\n const endDate: Date = date instanceof Date ? date : new Date(date);\r\n var startYear = startDate.getFullYear();\r\n var february = (startYear % 4 === 0 && startYear % 100 !== 0) || startYear % 400 === 0 ? 29 : 28;\r\n var daysInMonth = [31, february, 31, 30, 31, 30, 31, 31, 30, 31, 30, 31];\r\n var yearDiff = endDate.getFullYear() - startYear;\r\n var monthDiff = endDate.getMonth() - startDate.getMonth();\r\n if (monthDiff < 0) {\r\n yearDiff--;\r\n monthDiff += 12;\r\n }\r\n var dayDiff = endDate.getDate() - startDate.getDate();\r\n if (dayDiff < 0) {\r\n if (monthDiff > 0) {\r\n monthDiff--;\r\n } else {\r\n yearDiff--;\r\n monthDiff = 11;\r\n }\r\n dayDiff += daysInMonth[startDate.getMonth()];\r\n }\r\n\r\n var weekDiff = dayDiff >= 7 ? Math.floor(dayDiff / 7) : 0;\r\n dayDiff -= 7 * weekDiff;\r\n\r\n return (\r\n (yearDiff > 0\r\n ? yearDiff > 1\r\n ? `${yearDiff} ${intl.formatMessage({ id: 'common.years' })}`\r\n : `${yearDiff} ${intl.formatMessage({ id: 'common.year' })}`\r\n : '') +\r\n (monthDiff > 0\r\n ? monthDiff > 1\r\n ? ` ${monthDiff} ${intl.formatMessage({ id: 'common.months' })}`\r\n : ` ${monthDiff} ${intl.formatMessage({ id: 'common.month' })}`\r\n : '') +\r\n (weekDiff > 0\r\n ? weekDiff > 1\r\n ? ` ${weekDiff} ${intl.formatMessage({ id: 'common.weeks' })}`\r\n : ` ${weekDiff} ${intl.formatMessage({ id: 'common.week' })}`\r\n : '') +\r\n (dayDiff > 0\r\n ? dayDiff > 1\r\n ? ` ${dayDiff} ${intl.formatMessage({ id: 'common.days2' })}`\r\n : ` ${dayDiff} ${intl.formatMessage({ id: 'common.day' })}`\r\n : '')\r\n );\r\n};\r\n\r\nexport const isHex = (hex: string) => /^#([A-Fa-f0-9]{3}){1,2}$/.test(hex);\r\n\r\nexport const hexToRgbA = (hex: string) => {\r\n if (!isHex(hex)) return 'rgba(0 ,0 ,0 ,0)';\r\n\r\n let c;\r\n c = hex.substring(1).split('');\r\n if (c.length == 3) {\r\n c = [c[0], c[0], c[1], c[1], c[2], c[2]];\r\n }\r\n c = '0x' + c.join('');\r\n return 'rgba(' + [(c >> 16) & 255, (c >> 8) & 255, c & 255].join(',') + ',1)';\r\n};\r\n\r\nexport const getZeroIfNaNOrNullable = (n?: number | undefined): number =>\r\n isNaNOrNullable(n) ? 0 : n ?? 0;\r\n\r\n/**\r\n * Has Database date format\r\n * @param date date as string\r\n * @returns bolean true if has format\r\n */\r\nexport const hasDBDateFormat = (date: string | undefined): boolean => {\r\n if (isNullOrUndefined(date)) return false;\r\n const regex = /[0-9]{4,4}-[0-9]{2,2}-[0-9]{2,2}T[0-9]{2,2}:[0-9]{2,2}:[0-9]{2,2}/;\r\n if (typeof date === 'string') return regex.test(date);\r\n return false;\r\n};\r\n\r\n/**\r\n * Get Date String formatted\r\n * @param date : undefined | null | string | Date | Moment date\r\n * @returns : date YYYY-MM-DD HH:mm or empty string\r\n */\r\nexport const getDateStrFormatted = (date: unknown): string => {\r\n if (isNullOrUndefined(date)) return '';\r\n\r\n // Format for date\r\n const dateFormat = 'YYYY-MM-DD HH:mm';\r\n if (typeof date === 'string' && hasDBDateFormat(date)) return moment(date).format(dateFormat);\r\n if (typeof date === 'string' && date.length > 0) return date;\r\n if (date instanceof Date) return moment(date).format(dateFormat);\r\n if (moment.isMoment(date)) return date.format(dateFormat);\r\n\r\n return '';\r\n};\r\n\r\nexport const getDateAsKey = (date: Date | Moment | undefined | null | string): string => {\r\n const format = 'YYYY-MM-DD';\r\n if (isNullOrUndefined(date)) return '';\r\n if (typeof date === 'string') return moment(date).format(format);\r\n if (date instanceof Date) return moment(date).format(format);\r\n if (moment.isMoment(date)) return date.format(format);\r\n return '';\r\n};\r\n\r\nexport const getIsMobile = (navigator) => /iPhone|iPad|iPod|Android/i?.test(navigator?.userAgent);\r\n\r\nexport const getShortDate = (date: string | Date | Moment | undefined | null): string => {\r\n if (isNullOrUndefined(date)) return '';\r\n if (typeof date === 'string') return moment(new Date(date)).format('MMM DD');\r\n if (date instanceof Date) return moment(date).format('MMM DD');\r\n if (moment.isMoment(date)) return date.format('MMM DD');\r\n return '';\r\n};\r\n\r\n/**\r\n * Recursively transforms object to camel case format\r\n * @param obj Object to transform\r\n * @returns Camel case keys of the object\r\n */\r\nexport const camelize = (obj: any) =>\r\n transform(obj, (acc: any, value, key: string, target) => {\r\n const camelKey = isArray(target) ? key : camelCase(key);\r\n\r\n acc[camelKey] = isObject(value) ? camelize(value) : value;\r\n });\r\n\r\nexport function truncateStr(text: string, limit: number) {\r\n if (text.length > limit) {\r\n for (let i = limit; i > 0; i--) {\r\n if (\r\n text.charAt(i) === ' ' &&\r\n (text.charAt(i - 1) != ',' || text.charAt(i - 1) != '.' || text.charAt(i - 1) != ';')\r\n ) {\r\n return text.substring(0, i) + '...';\r\n }\r\n }\r\n return text.substring(0, limit) + '...';\r\n } else {\r\n return text;\r\n }\r\n}\r\n\r\n/**\r\n * Format number 1234.2334 => 1,234.2334\r\n * @param n number\r\n * @param useSelectedLocale boolean in order to use app intl locale or default\r\n * @returns formatted number\r\n */\r\nexport const formatNumber = (n: number | string, useSelectedLocale: boolean = false): string => {\r\n let numberToValidate = Number(n);\r\n\r\n if (isNaNOrNullable(numberToValidate)) return '0';\r\n // validateNumber\r\n if (typeof n === 'string') {\r\n const regexIsNumber = /^\\d+(\\.\\d+)?$/;\r\n const isNumber = regexIsNumber.test(n);\r\n if (!isNumber) return '0';\r\n }\r\n\r\n const localeToUse = useSelectedLocale ? appIntl().locale : 'en-US';\r\n const newNumberFormatted = numberToValidate.toLocaleString(localeToUse);\r\n return newNumberFormatted;\r\n};\r\n\r\nexport const testIsNumber = (n: unknown) => {\r\n // create regex that test if the string is number\r\n // can be negative and have decimals\r\n // const regexIsNumber = /^-?\\d+\\.?\\d*$/;\r\n const regexIsNumber = /^\\d+(\\.\\d+)?$/;\r\n\r\n switch (typeof n) {\r\n case 'number':\r\n return true;\r\n case 'string':\r\n return regexIsNumber.test(n);\r\n default:\r\n return false;\r\n }\r\n};\r\n\r\nexport const getUseCRM = () => !!parseInt(env.REACT_APP_PRODUCT_CRM ?? '0');\r\n\r\nexport const getUseConsole = () => !!parseInt(env.REACT_APP_PRODUCT_CONSOLE ?? '0');\r\n\r\nexport const getIsWebtrackUser = (user): boolean => {\r\n const { userName, email } = user;\r\n const webtrackEmail = '@webtrackgps.net';\r\n return (\r\n (typeof userName === 'string' && userName.includes(webtrackEmail)) ||\r\n (typeof email === 'string' && email.includes(webtrackEmail))\r\n );\r\n};\r\n\r\n// function that get time as string with this format '09-00' and return the hour as number 9\r\nexport function getHourFromStringTime(time: string): number {\r\n // validate time\r\n if (isNullOrUndefined(time)) return 0;\r\n\r\n // validate with regex that time has the format '09-00'\r\n const regex = /^[0-9]{2,2}-[0-9]{2,2}$/;\r\n if (!regex.test(time)) return 0;\r\n\r\n const hour = time.split('-')[0];\r\n return parseInt(hour);\r\n}\r\n\r\n// function that get time as string with this format '09-00' and return the minutes as number 0\r\nexport function getMinutesFromStringTime(time: string): number {\r\n // validate time\r\n if (isNullOrUndefined(time)) return 0;\r\n\r\n // validate with regex that time has the format '09-00'\r\n const regex = /^[0-9]{2,2}-[0-9]{2,2}$/;\r\n if (!regex.test(time)) return 0;\r\n\r\n const minutes = time.split('-')[1];\r\n return parseInt(minutes);\r\n}\r\nexport const isEmptyData = (data: unknown) => {\r\n switch (typeof data) {\r\n case 'string':\r\n return data.trim().length === 0;\r\n case 'number':\r\n return isNaNOrNullable(data);\r\n case 'boolean':\r\n return false;\r\n case 'undefined':\r\n return true;\r\n case 'symbol':\r\n return isNotNullOrUndefined(data);\r\n case 'function':\r\n return false;\r\n case 'object':\r\n if (Array.isArray(data)) {\r\n return data.length === 0;\r\n }\r\n if (isNullOrUndefined(data)) {\r\n return true;\r\n }\r\n\r\n // @ts-ignore\r\n // by this line the code has validated if the data is null or undefined\r\n return compareObjectValues(data, {});\r\n default:\r\n isNullOrUndefined(data);\r\n }\r\n};\r\n\r\nexport const isNotEmptyData = (data: unknown) => !isEmptyData(data);\r\n\r\n/**\r\n * generate json without backslash\r\n * @param json\r\n * @returns\r\n */\r\nexport function jsonWithoutBackslash(data: any): string {\r\n const json = JSON.stringify(data ?? {});\r\n return json.replace(/\\\\/g, '');\r\n}\r\n\r\nexport function safeStringify(obj: object) {\r\n const cache = new Set();\r\n const parsed = Object.entries(obj).reduce((acc, [key, value]) => {\r\n if (typeof value === 'object' && value !== null) {\r\n if (cache.has(key)) {\r\n return acc;\r\n }\r\n\r\n acc[key] = value;\r\n cache.add(key);\r\n }\r\n\r\n return acc;\r\n }, {});\r\n\r\n console.log({ parsed });\r\n const data = JSON.stringify(parsed);\r\n\r\n return data;\r\n}\r\n\r\nexport function safeStringifyWithoutBackslash(data: object): string {\r\n const json = safeStringify(data);\r\n return json.replace(/\\\\/g, '');\r\n}\r\n\r\nexport type JoinOptions = 'conjunction' | 'disjunction' | 'unit';\r\nexport const joinTexts = (items: string[], by: JoinOptions = 'conjunction') => {\r\n const intl: IntlShape = appIntl();\r\n return intl.formatList(items, { type: by });\r\n};\r\n\r\nexport const stripHtml = (html: string): string => {\r\n const temp = document.createElement('div');\r\n temp.innerHTML = html;\r\n return temp.textContent ?? '';\r\n};\r\n\r\nexport const roundWithEpsilon = (n?: number) => {\r\n if (!n) {\r\n return null;\r\n }\r\n return Math.round((n + Number.EPSILON) * 100) / 100;\r\n};\r\n\r\nexport const formatHourMeter = (hourMeter?: number | null | undefined) =>\r\n // @ts-ignore unreachable error because of validation\r\n isNotNaNOrNullable(hourMeter) ? parseSecondsToHours(hourMeter) + ' H' : 'N/A';\r\n\r\nexport const getSecondsBetweenDates = ([startDate, endDate]: [string, string]) => {\r\n if (isNullOrUndefined(startDate) || isNullOrUndefined(endDate)) return 0;\r\n const start = moment(startDate);\r\n const end = moment(endDate);\r\n return end.diff(start, 'seconds');\r\n};\r\n\r\nexport const getDeviceInfo = (): DeviceInfo => {\r\n const userAgent = navigator.userAgent;\r\n const isMobile = /Mobile/.test(userAgent);\r\n const isBrowserMobile = /Android|webOS|iPhone|iPad|iPod|BlackBerry|IEMobile|Opera Mini/i.test(\r\n userAgent\r\n );\r\n\r\n const platform = navigator.platform;\r\n let os: OperatingSystem = OperatingSystem.Unknown;\r\n\r\n if (platform.startsWith('Win')) {\r\n os = OperatingSystem.Windows;\r\n } else if (platform.startsWith('Mac')) {\r\n os = OperatingSystem.MacOS;\r\n } else if (platform.startsWith('Linux')) {\r\n os = OperatingSystem.Linux;\r\n } else if (\r\n platform.includes('iPhone') ||\r\n platform.includes('iPad') ||\r\n platform.includes('iPod')\r\n ) {\r\n os = OperatingSystem.IOS;\r\n } else if (platform.includes('Android')) {\r\n os = OperatingSystem.Android;\r\n }\r\n\r\n const isBrowserChrome = /Chrome/i.test(userAgent);\r\n const isBrowserFirefox = /Firefox/i.test(userAgent);\r\n const isBrowserSafari = /Safari/i.test(userAgent) && !isBrowserChrome;\r\n\r\n let browser: Browser = Browser.Unknown;\r\n\r\n if (isBrowserChrome) {\r\n browser = Browser.Chrome;\r\n } else if (isBrowserFirefox) {\r\n browser = Browser.Firefox;\r\n } else if (isBrowserSafari) {\r\n browser = Browser.Safari;\r\n }\r\n\r\n const deviceType: DeviceType =\r\n isMobile || isBrowserMobile ? DeviceType.Mobile : DeviceType.Desktop;\r\n\r\n return {\r\n os,\r\n browser,\r\n deviceType\r\n };\r\n};\r\n\r\nexport const getKeyboardModifiers = (event: KeyboardEvent): KeyboardModifiers => {\r\n const deviceInfo = getDeviceInfo();\r\n\r\n let ctrl = false;\r\n let alt = false;\r\n let shift = false;\r\n let parsedKey: string | undefined = undefined;\r\n\r\n if (deviceInfo.os === OperatingSystem.MacOS) {\r\n if (event.shiftKey) {\r\n shift = true;\r\n }\r\n if (event.metaKey) {\r\n ctrl = true;\r\n }\r\n\r\n if (\r\n event.altKey ||\r\n (event.key === 'Alt' && event.location === KeyboardEvent.DOM_KEY_LOCATION_RIGHT)\r\n ) {\r\n alt = true;\r\n }\r\n\r\n if (event.key in optionKeySpecialCharacters || event.key in optionShiftSpecialCombinations) {\r\n alt = true;\r\n // if shift is also pressed check the values\r\n parsedKey = shift\r\n ? optionShiftSpecialCombinations[event.key]\r\n : optionKeySpecialCharacters[event.key];\r\n }\r\n } else {\r\n if (event.ctrlKey) {\r\n ctrl = true;\r\n }\r\n if (event.altKey) {\r\n alt = true;\r\n }\r\n }\r\n\r\n return {\r\n ctrl,\r\n alt,\r\n shift,\r\n parsedKey\r\n };\r\n};\r\n\r\nexport const toBit = (data: unknown): 1 | 0 => {\r\n return !!data ? 1 : 0;\r\n};\r\n","export const CATEGORIES_FETCH_STARTED = 'CATEGORIES_FETCH_STARTED';\nexport const CATEGORIES_FETCH_COMPLETED = 'CATEGORIES_FETCH_COMPLETED';\nexport const CATEGORIES_FETCH_FAILED = 'CATEGORIES_FETCH_FAILED';\n\nexport const CATEGORIES_PARTIAL_FETCH_STARTED = 'CATEGORIES_PARTIAL_FETCH_STARTED';\nexport const CATEGORIES_PARTIAL_FETCH_COMPLETED = 'CATEGORIES_PARTIAL_FETCH_COMPLETED';\nexport const CATEGORIES_PARTIAL_FETCH_FAILED = 'CATEGORIES_PARTIAL_FETCH_FAILED';\n\nexport const CATEGORY_ADD_STARTED = 'CATEGORY_ADD_STARTED';\nexport const CATEGORY_ADD_COMPLETED = 'CATEGORY_ADD_COMPLETED';\nexport const CATEGORY_ADD_FAILED = 'CATEGORY_ADD_FAILED';\n\nexport const CATEGORY_EDIT_STARTED = 'CATEGORY_EDIT_STARTED';\nexport const CATEGORY_EDIT_COMPLETED = 'CATEGORY_EDIT_COMPLETED';\nexport const CATEGORY_EDIT_FAILED = 'CATEGORY_EDIT_FAILED';\n\nexport const CATEGORY_REMOVE_STARTED = 'CATEGORY_REMOVE_STARTED';\nexport const CATEGORY_REMOVE_COMPLETED = 'CATEGORY_REMOVE_COMPLETED';\nexport const CATEGORY_REMOVE_FAILED = 'CATEGORY_REMOVE_FAILED';\n","export const WORKMANSHIPS_FETCH_STARTED = 'WORKMANSHIPS_FETCH_STARTED';\nexport const WORKMANSHIPS_FETCH_COMPLETED = 'WORKMANSHIPS_FETCH_COMPLETED';\nexport const WORKMANSHIPS_FETCH_FAILED = 'WORKMANSHIPS_FETCH_FAILED';\n\nexport const WORKMANSHIPS_PARTIAL_FETCH_STARTED = 'WORKMANSHIPS_PARTIAL_FETCH_STARTED';\nexport const WORKMANSHIPS_PARTIAL_FETCH_COMPLETED = 'WORKMANSHIPS_PARTIAL_FETCH_COMPLETED';\nexport const WORKMANSHIPS_PARTIAL_FETCH_FAILED = 'WORKMANSHIPS_PARTIAL_FETCH_FAILED';\n\nexport const WORKMANSHIP_ADD_STARTED = 'WORKMANSHIP_ADD_STARTED';\nexport const WORKMANSHIP_ADD_COMPLETED = 'WORKMANSHIP_ADD_COMPLETED';\nexport const WORKMANSHIP_ADD_FAILED = 'WORKMANSHIP_ADD_FAILED';\n\nexport const WORKMANSHIP_EDIT_STARTED = 'WORKMANSHIP_EDIT_STARTED';\nexport const WORKMANSHIP_EDIT_COMPLETED = 'WORKMANSHIP_EDIT_COMPLETED';\nexport const WORKMANSHIP_EDIT_FAILED = 'WORKMANSHIP_EDIT_FAILED';\n\nexport const WORKMANSHIP_REMOVE_STARTED = 'WORKMANSHIP_REMOVE_STARTED';\nexport const WORKMANSHIP_REMOVE_COMPLETED = 'WORKMANSHIP_REMOVE_COMPLETED';\nexport const WORKMANSHIP_REMOVE_FAILED = 'WORKMANSHIP_REMOVE_FAILED';\n\nexport interface Workmanship {\n isSelected: boolean;\n workmanshipId: number;\n description: string;\n organizationId: number;\n organizationName: string;\n divisionId: number | null;\n divisionName: null | string;\n subdivisionId: number | null;\n subdivisionName: null | string;\n isConfirmed: boolean;\n tempId?: string;\n}\n","export const PROVIDERS_FETCH_STARTED2 = 'PROVIDERS_FETCH_STARTED2';\nexport const PROVIDERS_FETCH_COMPLETED2 = 'PROVIDERS_FETCH_COMPLETED2';\nexport const PROVIDERS_FETCH_FAILED2 = 'PROVIDERS_FETCH_FAILED2';\n\nexport const PROVIDERS_PARTIAL_FETCH_STARTED2 = 'PROVIDERS_PARTIAL_FETCH_STARTED2';\nexport const PROVIDERS_PARTIAL_FETCH_COMPLETED2 = 'PROVIDERS_PARTIAL_FETCH_COMPLETED2';\nexport const PROVIDERS_PARTIAL_FETCH_FAILED2 = 'PROVIDERS_PARTIAL_FETCH_FAILED2';\n\nexport const PROVIDER_ADD_STARTED = 'PROVIDER_ADD_STARTED';\nexport const PROVIDER_ADD_COMPLETED = 'PROVIDER_ADD_COMPLETED';\nexport const PROVIDER_ADD_FAILED = 'PROVIDER_ADD_FAILED';\n\nexport const PROVIDER_EDIT_STARTED = 'PROVIDER_EDIT_STARTED';\nexport const PROVIDER_EDIT_COMPLETED = 'PROVIDER_EDIT_COMPLETED';\nexport const PROVIDER_EDIT_FAILED = 'PROVIDER_EDIT_FAILED';\n\nexport const PROVIDER_REMOVE_STARTED = 'PROVIDER_REMOVE_STARTED';\nexport const PROVIDER_REMOVE_COMPLETED = 'PROVIDER_REMOVE_COMPLETED';\nexport const PROVIDER_REMOVE_FAILED = 'PROVIDER_REMOVE_FAILED';\n","export const SPAREPARTS_FETCH_STARTED = 'SPAREPARTS_FETCH_STARTED';\nexport const SPAREPARTS_FETCH_COMPLETED = 'SPAREPARTS_FETCH_COMPLETED';\nexport const SPAREPARTS_FETCH_FAILED = 'SPAREPARTS_FETCH_FAILED';\n\nexport const SPAREPARTS_PARTIAL_FETCH_STARTED = 'SPAREPARTS_PARTIAL_FETCH_STARTED';\nexport const SPAREPARTS_PARTIAL_FETCH_COMPLETED = 'SPAREPARTS_PARTIAL_FETCH_COMPLETED';\nexport const SPAREPARTS_PARTIAL_FETCH_FAILED = 'SPAREPARTS_PARTIAL_FETCH_FAILED';\n\nexport const SPAREPART_ADD_STARTED = 'SPAREPART_ADD_STARTED';\nexport const SPAREPART_ADD_COMPLETED = 'SPAREPART_ADD_COMPLETED';\nexport const SPAREPART_ADD_FAILED = 'SPAREPART_ADD_FAILED';\n\nexport const SPAREPART_EDIT_STARTED = 'SPAREPART_EDIT_STARTED';\nexport const SPAREPART_EDIT_COMPLETED = 'SPAREPART_EDIT_COMPLETED';\nexport const SPAREPART_EDIT_FAILED = 'SPAREPART_EDIT_FAILED';\n\nexport const SPAREPART_REMOVE_STARTED = 'SPAREPART_REMOVE_STARTED';\nexport const SPAREPART_REMOVE_COMPLETED = 'SPAREPART_REMOVE_COMPLETED';\nexport const SPAREPART_REMOVE_FAILED = 'SPAREPART_REMOVE_FAILED';\n\nexport interface SpareParts {\n isSelected: boolean;\n sparePartId: number;\n sparePartName: string;\n organizationId: number;\n organizationName: string;\n divisionId: number | null;\n divisionName: string | null;\n subdivisionId: number | null;\n subdivisionName: null | string;\n categoryName: string;\n categoryId: number;\n categoryIcon: string;\n isConfirmed: boolean;\n}\n","/* -------------------------------------------------------------------------- */\n/* Reductor de Entities */\n/* -------------------------------------------------------------------------- */\n\nimport { combineReducers } from 'redux';\nimport { persistReducer } from 'redux-persist';\nimport union from 'lodash/union';\nimport * as authSelectors from '../../../../redux/reducers/auth';\nimport * as authTypes from '../../../../redux/types/auth';\nimport * as entityTypes from '../../../screens/Entities/constants';\nimport * as types from '../types';\nimport * as operatorsTypes from '../../Operators/types';\nimport * as organizationsTypes from '../../Organizations/types';\nimport * as divisionsTypes from '../../Divisions/types';\nimport * as subdivisionsTypes from '../../Subdivisions/types';\nimport * as maintenanceLinesTypes from '../../MaintenanceLines/types';\nimport * as unitsTypes from '../../Units/types';\nimport * as brandsTypes from '../../../../redux/types/static-catalogs/brands';\nimport * as modelsTypes from '../../../../redux/types/models';\nimport * as geofencesTypes from '../../Geofences/types';\nimport * as workplansTypes from '../../Workplans/types/workplans';\n\nimport * as routesTypes from '../../Routes/types/routes';\nimport * as schedulesTypes from '../../Schedules/types';\nimport * as agentsTypes from '../../Agents/types';\nimport * as serviceClassesTypes from '../../ServiceClasses/types';\nimport * as monitoringUsersTypes from '../../Users/types';\nimport * as contactsActions from 'views/screens/Contacts/types';\nimport * as vehicleTypes from '../../Vehicles/types';\nimport * as assetsTypes from '../../Assets/types';\nimport * as locationTypes from '../../Locations/types';\nimport * as officeTypes from '../../Offices/types';\nimport * as driverTypes from '../../Drivers/types';\nimport * as modulesTypes from '../../Modules/types';\nimport * as sensorsTypes from '../../Sensors/types';\nimport * as simsTypes from 'views/screens/SIMs/types';\nimport * as formsTypes from 'views/screens/Forms/types';\nimport * as jobsTypes from 'views/screens/Jobs/types';\nimport * as groupsTypes from 'views/screens/Groups/types';\nimport * as customersTypes from 'views/screens/Customers/types';\nimport * as contractsTypes from 'views/screens/Contracts/types';\nimport * as contractTemplatesTypes from 'views/screens/ContractTemplates/types';\nimport localforage from 'localforage';\nimport autoMergeLevel2 from 'redux-persist/es/stateReconciler/autoMergeLevel2';\n\nconst byId = (state = {}, action) => {\n switch (action.type) {\n case authTypes.AUTHENTICATION_IDENTITY_CLEARED: {\n return {};\n }\n\n case types.ENTITIES_FETCH_COMPLETED: {\n const { entities, order } = action.payload;\n const newState = { ...state };\n order.forEach((entityTypeId) => {\n newState[entityTypeId] = {\n ...state[entityTypeId],\n ...entities[entityTypeId],\n timestamp: Date.parse(entities[entityTypeId].auditDate + 'z') / 1000\n };\n });\n return newState;\n }\n\n //DEFAULT\n default: {\n return state;\n }\n }\n};\n\nconst order = (state = [], action) => {\n switch (action.type) {\n case authTypes.AUTHENTICATION_IDENTITY_CLEARED: {\n return [];\n }\n //CASE COMPLETED FETCH, ADD AND REMOVE\n case types.ENTITIES_FETCH_COMPLETED: {\n const { order } = action.payload;\n return union(order);\n }\n\n //DEFAULT\n default: {\n return state;\n }\n }\n};\n\nconst userUpdateByEntity = (state = {}, action) => {\n switch (action.type) {\n case authTypes.AUTHENTICATION_IDENTITY_CLEARED: {\n return {};\n }\n //USER DATETIME UPDATE BY ENTITIES FETCH\n case unitsTypes.UNITS_FETCH_COMPLETED:\n case unitsTypes.UNITS_PARTIAL_FETCH_COMPLETED: {\n const { operatorId, organizationId } = action.payload;\n const newState = { ...state };\n const date = new Date();\n date.setMinutes(date.getMinutes() - 1);\n newState[entityTypes.ENTITY_UNITS] = {\n entityTypeId: entityTypes.ENTITY_UNITS,\n timestamp: Date.now() / 1000 - 60,\n date: date.toISOString(),\n operatorId,\n organizationId\n };\n return newState;\n }\n case subdivisionsTypes.SUBDIVISIONS_FETCH_COMPLETED:\n case subdivisionsTypes.SUBDIVISIONS_PARTIAL_FETCH_COMPLETED: {\n const { operatorId, organizationId } = action.payload;\n const newState = { ...state };\n const date = new Date();\n date.setMinutes(date.getMinutes() - 1);\n newState[entityTypes.ENTITY_SUBDIVISONS] = {\n entityTypeId: entityTypes.ENTITY_SUBDIVISONS,\n timestamp: Date.now() / 1000 - 60,\n date: date.toISOString(),\n operatorId,\n organizationId\n };\n return newState;\n }\n case maintenanceLinesTypes.MAINTENANCE_LINES_FETCH_COMPLETED:\n case maintenanceLinesTypes.MAINTENANCE_LINES_PARTIAL_FETCH_COMPLETED: {\n const { operatorId, organizationId } = action.payload;\n const newState = { ...state };\n const date = new Date();\n date.setMinutes(date.getMinutes() - 1);\n newState[entityTypes.ENTITY_MAINTENANCE_LINES] = {\n entityTypeId: entityTypes.ENTITY_MAINTENANCE_LINES,\n timestamp: Date.now() / 1000 - 60,\n date: date.toISOString(),\n operatorId,\n organizationId\n };\n return newState;\n }\n case vehicleTypes.VEHICLES_FETCH_COMPLETED:\n case vehicleTypes.VEHICLES_PARTIAL_FETCH_COMPLETED: {\n const { operatorId, organizationId } = action.payload;\n const newState = { ...state };\n const date = new Date();\n date.setMinutes(date.getMinutes() - 1);\n newState[entityTypes.ENTITY_VEHICLES] = {\n entityTypeId: entityTypes.ENTITY_VEHICLES,\n timestamp: Date.now() / 1000 - 60,\n date: date.toISOString(),\n operatorId,\n organizationId\n };\n return newState;\n }\n case modulesTypes.MODULES_FETCH_COMPLETED:\n case modulesTypes.MODULES_PARTIAL_FETCH_COMPLETED: {\n const { operatorId, organizationId } = action.payload;\n const newState = { ...state };\n const date = new Date();\n date.setMinutes(date.getMinutes() - 1);\n newState[entityTypes.ENTITY_MODULES] = {\n entityTypeId: entityTypes.ENTITY_MODULES,\n timestamp: Date.now() / 1000 - 60,\n date: date.toISOString(),\n operatorId,\n organizationId\n };\n return newState;\n }\n case agentsTypes.AGENTS_FETCH_COMPLETED:\n case agentsTypes.AGENTS_PARTIAL_FETCH_COMPLETED: {\n const newState = { ...state };\n const date = new Date();\n date.setMinutes(date.getMinutes() - 1);\n newState[entityTypes.ENTITY_AGENTS] = {\n entityTypeId: entityTypes.ENTITY_AGENTS,\n timestamp: Date.now() / 1000 - 60,\n date: date.toISOString()\n };\n return newState;\n }\n case serviceClassesTypes.SERVICECLASSES_FETCH_COMPLETED:\n case serviceClassesTypes.SERVICECLASSES_PARTIAL_FETCH_COMPLETED: {\n const newState = { ...state };\n const date = new Date();\n date.setMinutes(date.getMinutes() - 1);\n newState[entityTypes.ENTITY_SERVICE_CLASSES] = {\n entityTypeId: entityTypes.ENTITY_SERVICE_CLASSES,\n timestamp: Date.now() / 1000 - 60,\n date: date.toISOString()\n };\n return newState;\n }\n case operatorsTypes.OPERATORS_FETCH_COMPLETED:\n case operatorsTypes.OPERATORS_PARTIAL_FETCH_COMPLETED: {\n const newState = { ...state };\n const date = new Date();\n date.setMinutes(date.getMinutes() - 1);\n newState[entityTypes.ENTITY_OPERATORS] = {\n entityTypeId: entityTypes.ENTITY_OPERATORS,\n timestamp: Date.now() / 1000 - 60,\n date: date.toISOString()\n };\n return newState;\n }\n case divisionsTypes.DIVISIONS_FETCH_COMPLETED:\n case divisionsTypes.DIVISIONS_PARTIAL_FETCH_COMPLETED: {\n const { operatorId, organizationId } = action.payload;\n const newState = { ...state };\n const date = new Date();\n date.setMinutes(date.getMinutes() - 1);\n newState[entityTypes.ENTITY_DIVISIONS] = {\n entityTypeId: entityTypes.ENTITY_DIVISIONS,\n timestamp: Date.now() / 1000 - 60,\n date: date.toISOString(),\n operatorId,\n organizationId\n };\n return newState;\n }\n case formsTypes.FORMS_FETCH_COMPLETED:\n case formsTypes.FORMS_PARTIAL_FETCH_COMPLETED: {\n const newState = { ...state };\n const date = new Date();\n date.setMinutes(date.getMinutes() - 1);\n newState[entityTypes.ENTITY_FORMS] = {\n entityTypeId: entityTypes.ENTITY_FORMS,\n timestamp: Date.now() / 1000 - 60,\n date: date.toISOString()\n };\n return newState;\n }\n case organizationsTypes.ORGANIZATIONS_FETCH_COMPLETED:\n case organizationsTypes.ORGANIZATIONS_PARTIAL_FETCH_COMPLETED: {\n const newState = { ...state };\n const date = new Date();\n date.setMinutes(date.getMinutes() - 1);\n newState[entityTypes.ENTITY_ORGANIZATIONS] = {\n entityTypeId: entityTypes.ENTITY_ORGANIZATIONS,\n timestamp: Date.now() / 1000 - 60,\n date: date.toISOString()\n };\n return newState;\n }\n case monitoringUsersTypes.MONITORING_USERS_FETCH_COMPLETED:\n case monitoringUsersTypes.MONITORING_USERS_PARTIAL_FETCH_COMPLETED: {\n const { operatorId, organizationId } = action.payload;\n const newState = { ...state };\n const date = new Date();\n date.setMinutes(date.getMinutes() - 1);\n newState[entityTypes.ENTITY_USERS] = {\n entityTypeId: entityTypes.ENTITY_USERS,\n timestamp: Date.now() / 1000 - 60,\n date: date.toISOString(),\n operatorId,\n organizationId\n };\n return newState;\n }\n case contactsActions.CONTACTS_FETCH_COMPLETED:\n case contactsActions.CONTACTS_PARTIAL_FETCH_COMPLETED: {\n const newState = { ...state };\n const date = new Date();\n date.setMinutes(date.getMinutes() - 1);\n newState[entityTypes.ENTITY_CONTACTS] = {\n entityTypeId: entityTypes.ENTITY_CONTACTS,\n timestamp: Date.now() / 1000 - 60,\n date: date.toISOString()\n };\n return newState;\n }\n case workplansTypes.WORKPLANS_FETCH_COMPLETED:\n case workplansTypes.WORKPLANS_PARTIAL_FETCH_COMPLETED: {\n const { operatorId, organizationId } = action.payload;\n const newState = { ...state };\n const date = new Date();\n date.setMinutes(date.getMinutes() - 1);\n newState[entityTypes.ENTITY_WORKPLANS] = {\n entityTypeId: entityTypes.ENTITY_WORKPLANS,\n timestamp: Date.now() / 1000 - 60,\n date: date.toISOString(),\n operatorId,\n organizationId\n };\n return newState;\n }\n case geofencesTypes.GEOFENCES_FETCH_COMPLETED:\n case geofencesTypes.GEOFENCES_PARTIAL_FETCH_COMPLETED: {\n const { operatorId, organizationId } = action.payload;\n const newState = { ...state };\n const date = new Date();\n date.setMinutes(date.getMinutes() - 1);\n newState[entityTypes.ENTITY_GEOFENCES] = {\n entityTypeId: entityTypes.ENTITY_GEOFENCES,\n timestamp: Date.now() / 1000 - 60,\n date: date.toISOString(),\n operatorId,\n organizationId\n };\n return newState;\n }\n case schedulesTypes.SCHEDULES_FETCH_COMPLETED:\n case schedulesTypes.SCHEDULES_PARTIAL_FETCH_COMPLETED: {\n const newState = { ...state };\n const date = new Date();\n date.setMinutes(date.getMinutes() - 1);\n newState[entityTypes.ENTITY_SCHEDULES] = {\n entityTypeId: entityTypes.ENTITY_SCHEDULES,\n timestamp: Date.now() / 1000 - 60,\n date: date.toISOString()\n };\n return newState;\n }\n case routesTypes.ROUTES_FETCH_COMPLETED:\n case routesTypes.ROUTES_PARTIAL_FETCH_COMPLETED: {\n const { operatorId, organizationId } = action.payload;\n const newState = { ...state };\n const date = new Date();\n date.setMinutes(date.getMinutes() - 1);\n newState[entityTypes.ENTITY_ROUTES] = {\n entityTypeId: entityTypes.ENTITY_ROUTES,\n timestamp: Date.now() / 1000 - 60,\n date: date.toISOString(),\n operatorId,\n organizationId\n };\n return newState;\n }\n case simsTypes.SIMS_FETCH_COMPLETED:\n case simsTypes.SIMS_PARTIAL_FETCH_COMPLETED: {\n const { operatorId, organizationId } = action.payload;\n const newState = { ...state };\n const date = new Date();\n date.setMinutes(date.getMinutes() - 1);\n newState[entityTypes.ENTITY_SIM_CARDS] = {\n entityTypeId: entityTypes.ENTITY_SIM_CARDS,\n timestamp: Date.now() / 1000 - 60,\n date: date.toISOString(),\n operatorId,\n organizationId\n };\n return newState;\n }\n case locationTypes.LOCATIONS_FETCH_COMPLETED:\n case locationTypes.LOCATIONS_PARTIAL_FETCH_COMPLETED: {\n const { operatorId, organizationId } = action.payload;\n const newState = { ...state };\n const date = new Date();\n date.setMinutes(date.getMinutes() - 1);\n newState[entityTypes.ENTITY_LOCATIONS] = {\n entityTypeId: entityTypes.ENTITY_LOCATIONS,\n timestamp: Date.now() / 1000 - 60,\n date: date.toISOString(),\n operatorId,\n organizationId\n };\n return newState;\n }\n case officeTypes.OFFICES_FETCH_COMPLETED:\n case officeTypes.OFFICES_PARTIAL_FETCH_COMPLETED: {\n const { operatorId, organizationId } = action.payload;\n const newState = { ...state };\n const date = new Date();\n date.setMinutes(date.getMinutes() - 1);\n newState[entityTypes.ENTITY_OFFICES] = {\n entityTypeId: entityTypes.ENTITY_OFFICES,\n timestamp: Date.now() / 1000 - 60,\n date: date.toISOString(),\n operatorId,\n organizationId\n };\n return newState;\n }\n case driverTypes.DRIVERS_FETCH_COMPLETED:\n case driverTypes.DRIVERS_PARTIAL_FETCH_COMPLETED: {\n const { operatorId, organizationId } = action.payload;\n const newState = { ...state };\n const date = new Date();\n date.setMinutes(date.getMinutes() - 1);\n newState[entityTypes.ENTITY_DRIVERS] = {\n entityTypeId: entityTypes.ENTITY_DRIVERS,\n timestamp: Date.now() / 1000 - 60,\n date: date.toISOString(),\n operatorId,\n organizationId\n };\n return newState;\n }\n case assetsTypes.ASSETS_FETCH_COMPLETED:\n case assetsTypes.ASSETS_PARTIAL_FETCH_COMPLETED: {\n const { operatorId, organizationId } = action.payload;\n const newState = { ...state };\n const date = new Date();\n date.setMinutes(date.getMinutes() - 1);\n newState[entityTypes.ENTITY_ASSETS] = {\n entityTypeId: entityTypes.ENTITY_ASSETS,\n timestamp: Date.now() / 1000 - 60,\n date: date.toISOString(),\n operatorId,\n organizationId\n };\n return newState;\n }\n case sensorsTypes.SENSORS_FETCH_COMPLETED:\n case sensorsTypes.SENSORS_PARTIAL_FETCH_COMPLETED: {\n const newState = { ...state };\n const date = new Date();\n date.setMinutes(date.getMinutes() - 1);\n newState[entityTypes.ENTITY_SENSORS] = {\n entityTypeId: entityTypes.ENTITY_SENSORS,\n timestamp: Date.now() / 1000 - 60,\n date: date.toISOString()\n };\n return newState;\n }\n\n case jobsTypes.JOBS_BACKLOG_FETCH_COMPLETED:\n case jobsTypes.JOBS_BACKLOG_PARTIAL_FETCH_COMPLETED: {\n const newState = { ...state };\n const date = new Date();\n date.setMinutes(date.getMinutes() - 1);\n newState[entityTypes.ENTITY_JOBS_BACKLOG] = {\n entityTypeId: entityTypes.ENTITY_JOBS_BACKLOG,\n timestamp: Date.now() / 1000 - 60,\n date: date.toISOString()\n };\n return newState;\n }\n\n case groupsTypes.GROUPS_FETCH_COMPLETED:\n case groupsTypes.GROUPS_PARTIAL_FETCH_COMPLETED: {\n const { operatorId, organizationId } = action.payload;\n const newState = { ...state };\n const date = new Date();\n date.setMinutes(date.getMinutes() - 1);\n newState[entityTypes.ENTITY_GROUPS] = {\n entityTypeId: entityTypes.ENTITY_GROUPS,\n timestamp: Date.now() / 1000 - 60,\n date: date.toISOString(),\n operatorId,\n organizationId\n };\n return newState;\n }\n\n case customersTypes.CUSTOMERS_FETCH_COMPLETED:\n case customersTypes.CUSTOMERS_PARTIAL_FETCH_COMPLETED: {\n const { operatorId, organizationId } = action.payload;\n const newState = { ...state };\n const date = new Date();\n date.setMinutes(date.getMinutes() - 1);\n newState[entityTypes.ENTITY_CUSTOMERS] = {\n entityTypeId: entityTypes.ENTITY_CUSTOMERS,\n timestamp: Date.now() / 1000 - 60,\n date: date.toISOString(),\n operatorId,\n organizationId\n };\n return newState;\n }\n\n case contractsTypes.ORGANIZATION_CONTRACTS_FETCH_COMPLETED:\n case contractsTypes.ORGANIZATION_CONTRACTS_PARTIAL_FETCH_COMPLETED: {\n const newState = { ...state };\n const date = new Date();\n date.setMinutes(date.getMinutes() - 1);\n newState[entityTypes.ENTITY_ORGANIZATION_CONTRACTS] = {\n entityTypeId: entityTypes.ENTITY_ORGANIZATION_CONTRACTS,\n timestamp: Date.now() / 1000 - 60,\n date: date.toISOString()\n };\n return newState;\n }\n\n case contractTemplatesTypes.CONTRACT_TEMPLATES_FETCH_COMPLETED:\n case contractTemplatesTypes.CONTRACT_TEMPLATES_PARTIAL_FETCH_COMPLETED: {\n const newState = { ...state };\n newState[entityTypes.ENTITY_CONTRACT_TEMPLATES] = {\n entityTypeId: entityTypes.ENTITY_CONTRACT_TEMPLATES,\n timestamp: Date.now() / 1000 - 60,\n date: new Date().toUTCString()\n };\n return newState;\n }\n\n //DEFAULT\n default: {\n return state;\n }\n }\n};\n\n// STATES TO KNOW IF IT IS FETCHING OR UPDATING\nconst isFetchingList = (state = false, action) => {\n switch (action.type) {\n case authTypes.AUTHENTICATION_IDENTITY_CLEARED: {\n return false;\n }\n case types.ENTITIES_FETCH_STARTED: {\n return true;\n }\n case types.ENTITIES_FETCH_COMPLETED:\n case types.ENTITIES_FETCH_FAILED: {\n return false;\n }\n default: {\n return state;\n }\n }\n};\n\nconst isFetchedList = (state = false, action) => {\n switch (action.type) {\n case authTypes.AUTHENTICATION_IDENTITY_CLEARED: {\n return false;\n }\n case types.ENTITIES_RESET_IS_FETCHED:\n case types.ENTITIES_FETCH_STARTED: {\n return false;\n }\n case types.ENTITIES_FETCH_COMPLETED:\n case types.ENTITIES_FETCH_FAILED: {\n return true;\n }\n default: {\n return state;\n }\n }\n};\n\n//ERRORS FETCHING OR UPDATING\nconst errorFetchingList = (state = null, action) => {\n switch (action.type) {\n case authTypes.AUTHENTICATION_IDENTITY_CLEARED: {\n return null;\n }\n case types.ENTITIES_FETCH_FAILED: {\n const { error } = action.payload;\n return error;\n }\n case types.ENTITIES_FETCH_STARTED:\n case types.ENTITIES_FETCH_COMPLETED: {\n return null;\n }\n default: {\n return state;\n }\n }\n};\n\nconst entities: any = combineReducers({\n byId,\n order,\n userUpdateByEntity,\n isFetchingList,\n isFetchedList,\n errorFetchingList\n});\n\nconst entitiesPersistConfig = {\n key: 'entities',\n storage: localforage,\n stateReconciler: autoMergeLevel2,\n blacklist: ['isFetchingList', 'isFetchedList', 'errorFetchingList']\n // blackList: [],\n // whiteList: [],\n};\n\nexport default persistReducer(entitiesPersistConfig, entities);\n\n//Own state\nexport const getOwnState = (state) => state.entities;\n\n//Information\nexport const getEntity = (state, entityTypeId) => getOwnState(state).byId[entityTypeId];\nexport const getUserUpdateByEntityTimestamp = (state, entityTypeId) =>\n getOwnState(state).userUpdateByEntity[entityTypeId]\n ? getOwnState(state).userUpdateByEntity[entityTypeId].timestamp\n : null;\nexport const getUserUpdateByEntityDate = (state, entityTypeId) =>\n getOwnState(state).userUpdateByEntity[entityTypeId]\n ? getOwnState(state).userUpdateByEntity[entityTypeId].date\n : null;\nexport const getUserUpdateByEntityOperatorId = (state, entityTypeId) =>\n getOwnState(state).userUpdateByEntity[entityTypeId]\n ? getOwnState(state).userUpdateByEntity[entityTypeId]?.operatorId\n : null;\nexport const getUserUpdateByEntityOrganizationId = (state, entityTypeId) =>\n getOwnState(state).userUpdateByEntity[entityTypeId]\n ? getOwnState(state).userUpdateByEntity[entityTypeId]?.organizationId\n : null;\nexport const getEntitiesList = (state) =>\n getOwnState(state).order.map((id) => getEntity(state, id));\n\n/**\n * Is Entity updated\n * @param state Redux State\n * @returns True if is updated, false or null if is not updated\n */\nexport const isEntityUpdated = (state) => (entitiesToUpdate) => {\n return entitiesToUpdate.map((entity) => {\n if (!entity?.entityTypeId) {\n const userUpdateByEntity = getUserUpdateByEntityTimestamp(state, entity);\n if (userUpdateByEntity == null) return null;\n if (userUpdateByEntity < getEntity(state, entity).timestamp) return false;\n return true;\n } else {\n // Vars to validate\n const { operatorId, organizationId, allowNullOrganizationId } =\n authSelectors.getAuthUserMembershipFilters(state, {\n filterOperatorId: entity.operatorId,\n filterOrganizationId: entity.organizationId\n });\n const updateEntityByTimestamp = getUserUpdateByEntityTimestamp(state, entity.entityTypeId);\n const entityTimestamp = getEntity(state, entity.entityTypeId).timestamp;\n const userUpdateEntityOperatorId = getUserUpdateByEntityOperatorId(\n state,\n entity.entityTypeId\n );\n const userUpdateEntityOrganizationId = getUserUpdateByEntityOrganizationId(\n state,\n entity.entityTypeId\n );\n // end Vars to validate\n\n // Entity type is sim\n if (entity.entityTypeId == 4) {\n }\n\n // Return entity as updated because of does not allow organization null\n // Return true in order to don't fetch entity\n if (!entity.allowNullOrganizationId && !allowNullOrganizationId && !organizationId) {\n return true;\n }\n\n // Entity first update, return null in order to update\n if (updateEntityByTimestamp == null) {\n return null;\n }\n\n // Entity is not updated, and return false in order to update\n if (\n updateEntityByTimestamp < entityTimestamp &&\n userUpdateEntityOperatorId === operatorId &&\n userUpdateEntityOrganizationId === organizationId\n ) {\n return false;\n }\n\n // Actualize entity\n if (\n userUpdateEntityOperatorId !== operatorId ||\n userUpdateEntityOrganizationId !== organizationId\n ) {\n return null;\n }\n // Default, does not fetch entity\n return true;\n }\n });\n};\n\nexport const areAllEntitiesUpdated = (state, entitiesToUpdate) => {\n var areUpdated = true;\n entitiesToUpdate.map((entityTypeId) => {\n const timestamp = getUserUpdateByEntityTimestamp(state, entityTypeId);\n if (timestamp == null) areUpdated = false;\n else if (timestamp + 60 < getEntity(state, entityTypeId)?.timestamp) areUpdated = false;\n });\n return areUpdated;\n};\n\n//Status of sagas\nexport const isFetchingListEntities = (state) => getOwnState(state).isFetchingList;\nexport const isFetchedListEntities = (state) => getOwnState(state).isFetchedList;\n\n//Errors\nexport const getFetchingListEntitiesErrors = (state) => getOwnState(state).errorFetchingList;\n","export const WORKPLAN_ASSIGNMENT_FETCH_STARTED = 'WORKPLAN_ASSIGNMENT_FETCH_STARTED';\nexport const WORKPLAN_ASSIGNMENT_FETCH_COMPLETED = 'WORKPLAN_ASSIGNMENT_FETCH_COMPLETED';\nexport const WORKPLAN_ASSIGNMENT_FETCH_FAILED = 'WORKPLAN_ASSIGNMENT_FETCH_FAILED';\n\nexport const WORKPLAN_ASSIGNMENT_BY_SCHEDULE_FETCH_COMPLETED =\n 'WORKPLAN_ASSIGNMENT_BY_SCHEDULE_FETCH_COMPLETED';\n\nexport const WORKPLAN_ASSIGNMENT_BY_DATETIME_FETCH_COMPLETED =\n 'WORKPLAN_ASSIGNMENT_BY_DATETIME_FETCH_COMPLETED';\n\nexport const WORKPLAN_ASSIGNMENT_REMOVE_STARTED = 'WORKPLAN_ASSIGNMENT_REMOVE_STARTED';\nexport const WORKPLAN_ASSIGNMENT_REMOVE_COMPLETED = 'WORKPLAN_ASSIGNMENT_REMOVE_COMPLETED';\nexport const WORKPLAN_ASSIGNMENT_REMOVE_FAILED = 'WORKPLAN_ASSIGNMENT_REMOVE_FAILED';\n\nexport const WORKPLAN_ASSIGNMENT_BY_SCHEDULE_REMOVE_STARTED =\n 'WORKPLAN_ASSIGNMENT_BY_SCHEDULE_REMOVE_STARTED';\nexport const WORKPLAN_ASSIGNMENT_BY_SCHEDULE_REMOVE_COMPLETED =\n 'WORKPLAN_ASSIGNMENT_BY_SCHEDULE_REMOVE_COMPLETED';\nexport const WORKPLAN_ASSIGNMENT_BY_SCHEDULE_REMOVE_FAILED =\n 'WORKPLAN_ASSIGNMENT_BY_SCHEDULE_REMOVE_FAILED';\n\nexport const WORKPLAN_ASSIGNMENT_BY_DATETIME_REMOVE_STARTED =\n 'WORKPLAN_ASSIGNMENT_BY_DATETIME_REMOVE_STARTED';\nexport const WORKPLAN_ASSIGNMENT_BY_DATETIME_REMOVE_COMPLETED =\n 'WORKPLAN_ASSIGNMENT_BY_DATETIME_REMOVE_COMPLETED';\nexport const WORKPLAN_ASSIGNMENT_BY_DATETIME_REMOVE_FAILED =\n 'WORKPLAN_ASSIGNMENT_BY_DATETIME_REMOVE_FAILED';\n\nexport const WORKPLAN_ASSIGNMENT_BY_SCHEDULE_EDIT_STARTED =\n 'WORKPLAN_ASSIGNMENT_BY_SCHEDULE_EDIT_STARTED';\nexport const WORKPLAN_ASSIGNMENT_BY_SCHEDULE_EDIT_COMPLETED =\n 'WORKPLAN_ASSIGNMENT_BY_SCHEDULE_EDIT_COMPLETED';\nexport const WORKPLAN_ASSIGNMENT_BY_SCHEDULE_EDIT_FAILED =\n 'WORKPLAN_ASSIGNMENT_BY_SCHEDULE_EDIT_FAILED';\n\nexport const WORKPLAN_ASSIGNMENT_BY_DATETIME_EDIT_STARTED =\n 'WORKPLAN_ASSIGNMENT_BY_DATETIME_EDIT_STARTED';\nexport const WORKPLAN_ASSIGNMENT_BY_DATETIME_EDIT_COMPLETED =\n 'WORKPLAN_ASSIGNMENT_BY_DATETIME_EDIT_COMPLETED';\nexport const WORKPLAN_ASSIGNMENT_BY_DATETIME_EDIT_FAILED =\n 'WORKPLAN_ASSIGNMENT_BY_DATETIME_EDIT_FAILED';\n","import { combineReducers } from 'redux';\n\nimport omit from 'lodash/omit';\nimport union from 'lodash/union';\nimport forEach from 'lodash/forEach';\nimport uniq from 'lodash/uniq';\nimport flattenDeep from 'lodash/flattenDeep';\nimport { DateTime } from 'luxon';\nimport { appIntl } from '../../../../utility/context/IntlGlobalProvider';\n\nimport * as types from '../types';\nimport * as geofenceSelectors from '../../Geofences/reducers';\nimport * as organizationSelectors from 'views/screens/Organizations/reducers';\nimport * as divisionSelectors from 'views/screens/Divisions/reducers';\nimport * as subdivisionSelectors from 'views/screens/Subdivisions/reducers';\nimport { DefaultFilters } from 'views/screens/Entities/views/FetchEntities';\n\nconst byId = (state = {}, action) => {\n switch (action.type) {\n //TYPES COMPLETED FETCH, ADD AND EDIT\n case types.SCHEDULES_FETCH_COMPLETED:\n case types.SCHEDULES_PARTIAL_FETCH_COMPLETED: {\n const { entities, order } = action.payload;\n const newState = { ...state };\n order.forEach((scheduleId) => {\n newState[scheduleId] = {\n isSelected: false,\n ...state[scheduleId],\n ...entities[scheduleId],\n isConfirmed: true\n };\n });\n return newState;\n }\n\n case types.SCHEDULE_SHIFT_ADD_COMPLETED:\n case types.SCHEDULE_ADD_COMPLETED: {\n const { oldId, schedule } = action.payload;\n const newState = omit(state, oldId);\n newState[schedule.scheduleId] = {\n ...state[oldId],\n ...schedule,\n isConfirmed: true\n };\n return newState;\n }\n\n case types.SCHEDULE_SHIFT_EDIT_COMPLETED:\n case types.SCHEDULE_EDIT_COMPLETED: {\n const schedule = action.payload;\n return {\n ...state,\n [schedule.scheduleId]: {\n ...omit(state[schedule.scheduleId], ['oldSchedule']),\n ...omit(schedule, ['oldSchedule']),\n isConfirmed: true\n }\n };\n }\n\n //TYPES STARTED ADD AND EDIT\n case types.SCHEDULE_SHIFT_ADD_STARTED:\n case types.SCHEDULE_ADD_STARTED: {\n const schedule = action.payload;\n const newState = { ...state };\n newState[schedule.scheduleId] = {\n isSelected: false,\n ...schedule,\n isConfirmed: false\n };\n return newState;\n }\n case types.SCHEDULE_SHIFT_EDIT_STARTED:\n case types.SCHEDULE_EDIT_STARTED: {\n const schedule = action.payload;\n return {\n ...state,\n [schedule.scheduleId]: {\n ...state[schedule.scheduleId],\n oldSchedule: state[schedule.scheduleId],\n ...schedule,\n isConfirmed: false\n }\n };\n }\n\n //TYPES FAILED ADD AND EDIT\n case types.SCHEDULE_SHIFT_ADD_FAILED:\n case types.SCHEDULE_ADD_FAILED: {\n const { oldId } = action.payload;\n if (state[oldId]) {\n return omit(state, oldId);\n }\n return state;\n }\n case types.SCHEDULE_SHIFT_EDIT_FAILED:\n case types.SCHEDULE_EDIT_FAILED: {\n const { oldSchedule } = action.payload;\n return {\n ...state,\n [oldSchedule.scheduleId]: {\n ...omit(state[oldSchedule.scheduleId], ['oldSchedule']),\n ...oldSchedule,\n isConfirmed: true\n }\n };\n }\n\n //TYPES REMOVE COMPLETED\n case types.SCHEDULE_REMOVE_COMPLETED: {\n const { scheduleId } = action.payload;\n return omit(state, scheduleId);\n }\n\n //TYPES SELECTED AND DESELECTED\n case types.SCHEDULE_SELECTED: {\n const scheduleId = action.payload;\n const newState = {\n ...state,\n [scheduleId]: {\n ...state[scheduleId],\n isSelected: true\n }\n };\n return newState;\n }\n\n case types.SCHEDULE_DESELECTED: {\n const scheduleId = action.payload;\n return {\n ...state,\n [scheduleId]: {\n ...state[scheduleId],\n isSelected: false\n }\n };\n }\n\n case types.SCHEDULES_ALL_SELECTED: {\n const scheduleIds = action.payload;\n const newState = { ...state };\n if (scheduleIds.length == 0) {\n forEach(state, (schedule: any, scheduleId) => {\n newState[scheduleId] = {\n ...schedule,\n isSelected: true\n };\n });\n } else {\n scheduleIds.forEach((scheduleId) => {\n newState[scheduleId] = {\n ...state[scheduleId],\n isSelected: true\n };\n });\n }\n\n return newState;\n }\n\n case types.SCHEDULES_ALL_DESELECTED: {\n const scheduleIds = action.payload;\n const newState = { ...state };\n if (scheduleIds.length == 0) {\n forEach(state, (schedule: any, scheduleId) => {\n newState[scheduleId] = {\n ...schedule,\n isSelected: false\n };\n });\n } else {\n scheduleIds.forEach((scheduleId) => {\n newState[scheduleId] = {\n ...state[scheduleId],\n isSelected: false\n };\n });\n }\n\n return newState;\n }\n\n //DEFAULT\n default: {\n return state;\n }\n }\n};\n\nconst order = (state = [], action) => {\n switch (action.type) {\n //CASE COMPLETED FETCH, ADD AND REMOVE\n case types.SCHEDULES_FETCH_COMPLETED: {\n const { order } = action.payload;\n return union(order);\n }\n\n case types.SCHEDULES_PARTIAL_FETCH_COMPLETED: {\n const { order } = action.payload;\n return uniq([...state, ...order]);\n }\n\n case types.SCHEDULE_SHIFT_ADD_COMPLETED:\n case types.SCHEDULE_ADD_COMPLETED: {\n const { oldId, schedule } = action.payload;\n return state.map((scheduleId) => (scheduleId === oldId ? schedule.scheduleId : scheduleId));\n }\n\n case types.SCHEDULE_REMOVE_COMPLETED: {\n const { scheduleId } = action.payload;\n return state.filter((scheduleIdState) => scheduleIdState !== scheduleId);\n }\n\n //CASE ADD STARTED\n case types.SCHEDULE_SHIFT_ADD_STARTED:\n case types.SCHEDULE_ADD_STARTED: {\n const schedule = action.payload;\n return [...state, schedule.scheduleId];\n }\n\n //CASE ADD FAILED\n case types.SCHEDULE_SHIFT_ADD_FAILED:\n case types.SCHEDULE_ADD_FAILED: {\n const { oldId } = action.payload;\n return state.filter((scheduleIdState) => scheduleIdState !== oldId);\n }\n\n //DEFAULT\n default: {\n return state;\n }\n }\n};\n\n// STATES TO KNOW IF IT IS FETCHING, ADDING OR EDITING\nconst isFetchingList = (state = false, action) => {\n switch (action.type) {\n case types.SCHEDULES_FETCH_STARTED: {\n return true;\n }\n case types.SCHEDULES_FETCH_COMPLETED:\n case types.SCHEDULES_FETCH_FAILED: {\n return false;\n }\n default: {\n return state;\n }\n }\n};\n\nconst isPartialFetchingList = (state = false, action) => {\n switch (action.type) {\n case types.SCHEDULES_PARTIAL_FETCH_STARTED: {\n return true;\n }\n case types.SCHEDULES_PARTIAL_FETCH_COMPLETED:\n case types.SCHEDULES_PARTIAL_FETCH_FAILED: {\n return false;\n }\n default: {\n return state;\n }\n }\n};\n\nconst isAdding = (state = false, action) => {\n switch (action.type) {\n case types.SCHEDULE_ADD_STARTED: {\n return true;\n }\n case types.SCHEDULE_ADD_COMPLETED:\n case types.SCHEDULE_ADD_FAILED: {\n return false;\n }\n default: {\n return state;\n }\n }\n};\n\nconst isEditing = (state = false, action) => {\n switch (action.type) {\n case types.SCHEDULE_EDIT_STARTED: {\n return true;\n }\n case types.SCHEDULE_EDIT_COMPLETED:\n case types.SCHEDULE_EDIT_FAILED: {\n return false;\n }\n default: {\n return state;\n }\n }\n};\n\nconst isRemoving = (state = false, action) => {\n switch (action.type) {\n case types.SCHEDULE_REMOVE_STARTED: {\n return true;\n }\n case types.SCHEDULE_REMOVE_COMPLETED:\n case types.SCHEDULE_REMOVE_FAILED: {\n return false;\n }\n default: {\n return state;\n }\n }\n};\n\nconst errorFetchingList = (state = null, action) => {\n switch (action.type) {\n case types.SCHEDULES_FETCH_FAILED: {\n const { error } = action.payload;\n return error;\n }\n case types.SCHEDULES_FETCH_STARTED:\n case types.SCHEDULES_FETCH_COMPLETED: {\n return null;\n }\n default: {\n return state;\n }\n }\n};\n\nconst errorPartialFetchingList = (state = null, action) => {\n switch (action.type) {\n case types.SCHEDULES_PARTIAL_FETCH_FAILED: {\n const { error } = action.payload;\n return error;\n }\n case types.SCHEDULES_PARTIAL_FETCH_STARTED:\n case types.SCHEDULES_PARTIAL_FETCH_COMPLETED: {\n return null;\n }\n default: {\n return state;\n }\n }\n};\n\nconst errorAdding = (state = null, action) => {\n switch (action.type) {\n case types.SCHEDULE_ADD_FAILED: {\n const { error } = action.payload;\n return error;\n }\n case types.SCHEDULE_ADD_STARTED:\n case types.SCHEDULE_ADD_COMPLETED: {\n return null;\n }\n default: {\n return state;\n }\n }\n};\n\nconst errorEditing = (state = null, action) => {\n switch (action.type) {\n case types.SCHEDULE_EDIT_FAILED: {\n const { error } = action.payload;\n return error;\n }\n case types.SCHEDULE_EDIT_STARTED:\n case types.SCHEDULE_EDIT_COMPLETED: {\n return null;\n }\n default: {\n return state;\n }\n }\n};\n\nconst errorRemoving = (state = null, action) => {\n switch (action.type) {\n case types.SCHEDULE_REMOVE_FAILED: {\n const { error } = action.payload;\n return error;\n }\n case types.SCHEDULE_REMOVE_STARTED:\n case types.SCHEDULE_REMOVE_COMPLETED: {\n return null;\n }\n default: {\n return state;\n }\n }\n};\n\nconst schedules = combineReducers({\n byId,\n order,\n isPartialFetchingList,\n isFetchingList,\n isAdding,\n isEditing,\n isRemoving,\n errorPartialFetchingList,\n errorFetchingList,\n errorAdding,\n errorEditing,\n errorRemoving\n});\n\nexport default schedules;\n\n//Own state\nexport const getOwnState = (state) => state.schedules;\n\n//Information\nexport const getSchedule = (state, scheduleId) => {\n const intl = appIntl();\n const schedule = getOwnState(state).byId[scheduleId];\n if (schedule) {\n const originGeofence = schedule.originGeofenceId\n ? geofenceSelectors.getGeofence(state, schedule.originGeofenceId)\n : undefined;\n const workGeofence = schedule.workGeofenceId\n ? geofenceSelectors.getGeofence(state, schedule.workGeofenceId)\n : undefined;\n const destinationGeofence = schedule.destinationGeofenceId\n ? geofenceSelectors.getGeofence(state, schedule.destinationGeofenceId)\n : undefined;\n const organization = schedule.organizationId\n ? organizationSelectors.getOrganization(state, schedule.organizationId)\n : undefined;\n const division = schedule.divisionId\n ? divisionSelectors.getDivision(state, schedule.divisionId)\n : undefined;\n const subdivision = schedule.subdivisionId\n ? subdivisionSelectors.getSubdivision(state, schedule.subdivisionId)\n : undefined;\n return {\n ...schedule,\n originGeofenceName: originGeofence?.geofenceName || '',\n workGeofenceName: workGeofence?.geofenceName || '',\n destinationGeofenceName: destinationGeofence?.geofenceName || '',\n organizationName: organization?.organizationName || '',\n divisionName: division?.divisionName || '',\n subdivisionName: subdivision?.subdivisionName || '',\n comments: schedule.comments || '',\n checkSequenceLabel: intl.formatMessage({\n id: schedule.checkSequence ? 'common.yes' : 'common.no'\n })\n };\n } else return undefined;\n};\n\nexport const getScheduleByPrivateCode = (state, privateCode) => {\n const intl = appIntl();\n const schedules = getSchedulesList(state);\n const schedule = schedules.find((schedule) => schedule.privateCode === privateCode);\n if (schedule) {\n const originGeofence = schedule.originGeofenceId\n ? geofenceSelectors.getGeofence(state, schedule.originGeofenceId)\n : undefined;\n const workGeofence = schedule.workGeofenceId\n ? geofenceSelectors.getGeofence(state, schedule.workGeofenceId)\n : undefined;\n const destinationGeofence = schedule.destinationGeofenceId\n ? geofenceSelectors.getGeofence(state, schedule.destinationGeofenceId)\n : undefined;\n const organization = schedule.organizationId\n ? organizationSelectors.getOrganization(state, schedule.organizationId)\n : undefined;\n const division = schedule.divisionId\n ? divisionSelectors.getDivision(state, schedule.divisionId)\n : undefined;\n const subdivision = schedule.subdivisionId\n ? subdivisionSelectors.getSubdivision(state, schedule.subdivisionId)\n : undefined;\n return {\n ...schedule,\n originGeofenceName: originGeofence?.geofenceName || '',\n workGeofenceName: workGeofence?.geofenceName || '',\n destinationGeofenceName: destinationGeofence?.geofenceName || '',\n organizationName: organization?.organizationName || '',\n divisionName: division?.divisionName || '',\n subdivisionName: subdivision?.subdivisionName || '',\n comments: schedule.comments || '',\n checkSequenceLabel: intl.formatMessage({\n id: schedule.checkSequence ? 'common.yes' : 'common.no'\n })\n };\n } else return undefined;\n};\n\nexport const getScheduleByPrivateCodeByMembership = (\n state,\n privateCode: string,\n membership: DefaultFilters\n) => {\n const intl = appIntl();\n const schedules = getScheduleListByMembership(state, membership);\n const schedule = schedules.find((schedule) => schedule.privateCode === privateCode);\n\n if (!schedule) return undefined;\n\n const originGeofence = schedule.originGeofenceId\n ? geofenceSelectors.getGeofence(state, schedule.originGeofenceId)\n : undefined;\n const workGeofence = schedule.workGeofenceId\n ? geofenceSelectors.getGeofence(state, schedule.workGeofenceId)\n : undefined;\n const destinationGeofence = schedule.destinationGeofenceId\n ? geofenceSelectors.getGeofence(state, schedule.destinationGeofenceId)\n : undefined;\n const organization = schedule.organizationId\n ? organizationSelectors.getOrganization(state, schedule.organizationId)\n : undefined;\n const division = schedule.divisionId\n ? divisionSelectors.getDivision(state, schedule.divisionId)\n : undefined;\n const subdivision = schedule.subdivisionId\n ? subdivisionSelectors.getSubdivision(state, schedule.subdivisionId)\n : undefined;\n return {\n ...schedule,\n originGeofenceName: originGeofence?.geofenceName || '',\n workGeofenceName: workGeofence?.geofenceName || '',\n destinationGeofenceName: destinationGeofence?.geofenceName || '',\n organizationName: organization?.organizationName || '',\n divisionName: division?.divisionName || '',\n subdivisionName: subdivision?.subdivisionName || '',\n comments: schedule.comments || '',\n checkSequenceLabel: intl.formatMessage({\n id: schedule.checkSequence ? 'common.yes' : 'common.no'\n })\n };\n};\n\nexport const getSchedulesList = (state) =>\n getOwnState(state)\n .order.map((id) => getSchedule(state, id))\n .filter((schedule) => schedule.scheduleStatus > 0);\n\nexport const getScheduleListByMembership = (state, membership: DefaultFilters) =>\n getSchedulesList(state).filter(\n (schedule) =>\n membership &&\n (!membership.operatorId || membership.operatorId === schedule.operatorId) &&\n (!membership.organizationId || membership.organizationId === schedule.organizationId) &&\n (!membership.divisionId || membership.divisionId === schedule.divisionId) &&\n (!membership.subdivisionId || membership.subdivisionId === schedule.subdivisionId)\n );\n\nexport const getSelectedSchedules = (state) => {\n const selectedSchedules = getSchedulesList(state).filter((schedule) => schedule.isSelected);\n //Si no se selecciona ninguno devuelve null\n if (selectedSchedules.length === 0) return null;\n //Si se selecciona mĆ”s de cero se devuelve el arreglo de los seleccionados\n if (selectedSchedules.length > 0) return selectedSchedules;\n};\nexport const getTriggersList = (state) =>\n getSchedulesList(state).filter((schedule) => schedule.scheduleType === 1);\nexport const getTriggersListByMembership = (state, membership) =>\n getTriggersList(state).filter(\n (schedule) =>\n membership &&\n (!membership.operatorId || membership.operatorId === schedule.operatorId) &&\n (!membership.organizationId || membership.organizationId === schedule.organizationId) &&\n (!membership.divisionId || membership.divisionId === schedule.divisionId) &&\n (!membership.subdivisionId || membership.subdivisionId === schedule.subdivisionId)\n );\n\nexport const getShiftsList = (state) =>\n getSchedulesList(state).filter((schedule) => schedule.scheduleType === 2);\n\nexport const getShiftsListByMembership = (state, membership) =>\n getShiftsList(state).filter(\n (schedule) =>\n membership &&\n (!membership.operatorId || membership.operatorId === schedule.operatorId) &&\n (!membership.organizationId || membership.organizationId === schedule.organizationId) &&\n (!membership.divisionId || membership.divisionId === schedule.divisionId) &&\n (!membership.subdivisionId || membership.subdivisionId === schedule.subdivisionId)\n );\n\nexport const getShiftListByMembershipDetail = (state, membership) =>\n getShiftsListByMembership(state, membership).map((shift) => {\n const shiftTimes = flattenDeep(\n ['sunday', 'monday', 'tuesday', 'wednesday', 'thursday', 'friday', 'saturday'].map(\n (day, index) =>\n shift[day]\n ?.split(' | ')\n .map((time) => ({\n day: index,\n startTime: time.split('-')[0],\n endTime: time.split('-')[1]\n }))\n .filter((day) => day.endTime)\n )\n );\n return { ...shift, shiftTimes };\n });\n\nexport const getSelectedSchedule = (state) => {\n const selectedSchedules = getSchedulesList(state).filter((schedule) => schedule.isSelected);\n //Si se selecciona solo uno devuelve solo el seleccionado\n if (selectedSchedules.length === 1) return selectedSchedules[0];\n //De lo contrario se devuelve null\n else return null;\n};\n\n//Status of sagas\nexport const isPartialFetchingListSchedules = (state) => getOwnState(state).isPartialFetchingList;\nexport const isFetchingListSchedules = (state) => getOwnState(state).isFetchingList;\nexport const isAddingSchedule = (state) => getOwnState(state).isAdding;\nexport const isEditingSchedule = (state) => getOwnState(state).isEditing;\nexport const isRemovingSchedule = (state) => getOwnState(state).isRemoving;\n\n//Errors\nexport const getPartialFetchingListSchedulesErrors = (state) =>\n getOwnState(state).errorPartialFetchingList;\nexport const getFetchingListSchedulesErrors = (state) => getOwnState(state).errorFetchingList;\nexport const getAddingScheduleErrors = (state) => getOwnState(state).errorAdding;\nexport const getEditingScheduleErrors = (state) => getOwnState(state).errorEditing;\nexport const getRemovingScheduleErrors = (state) => getOwnState(state).errorRemoving;\n","export const ROUTES_EXECUTION_COMMENTS_FETCH_STARTED = 'ROUTES_EXECUTION_COMMENTS_FETCH_STARTED';\nexport const ROUTES_EXECUTION_COMMENTS_FETCH_COMPLETED =\n 'ROUTES_EXECUTION_COMMENTS_FETCH_COMPLETED';\nexport const ROUTES_EXECUTION_COMMENTS_FETCH_FAILED = 'ROUTES_EXECUTION_COMMENTS_FETCH_FAILED';\n\nexport const ROUTES_EXECUTION_COMMENT_ADD_STARTED = 'ROUTES_EXECUTION_COMMENT_ADD_STARTED';\nexport const ROUTES_EXECUTION_COMMENT_ADD_COMPLETED = 'ROUTES_EXECUTION_COMMENT_ADD_COMPLETED';\nexport const ROUTES_EXECUTION_COMMENT_ADD_FAILED = 'ROUTES_EXECUTION_COMMENT_ADD_FAILED';\n\nexport const ROUTES_EXECUTION_COMMENT_EDIT_STARTED = 'ROUTES_EXECUTION_COMMENT_EDIT_STARTED';\nexport const ROUTES_EXECUTION_COMMENT_EDIT_COMPLETED = 'ROUTES_EXECUTION_COMMENT_EDIT_COMPLETED';\nexport const ROUTES_EXECUTION_COMMENT_EDIT_FAILED = 'ROUTES_EXECUTION_COMMENT_EDIT_FAILED';\n\nexport const ROUTES_EXECUTION_COMMENT_REMOVE_STARTED = 'ROUTES_EXECUTION_COMMENT_REMOVE_STARTED';\nexport const ROUTES_EXECUTION_COMMENT_REMOVE_COMPLETED =\n 'ROUTES_EXECUTION_COMMENT_REMOVE_COMPLETED';\nexport const ROUTES_EXECUTION_COMMENT_REMOVE_FAILED = 'ROUTES_EXECUTION_COMMENT_REMOVE_FAILED';\n","/* -------------------------------------------------------------------------- */\n/* Componente DropdownInput */\n/* -------------------------------------------------------------------------- */\n// Este componente contiene un DropdownInput genĆ©rico que se utiliza en muchas pantallas de la aplicaciĆ³n.\n\nimport _ from 'lodash';\nimport { CSSProperties, Component, FC, useEffect } from 'react';\nimport { Control, ControllerFieldState, ControllerRenderProps, Field } from 'react-hook-form';\nimport { FormattedMessage, IntlShape } from 'react-intl';\nimport Select, { components, GroupBase, Props as SelectProps } from 'react-select';\nimport { AutoSizer, CellMeasurer, CellMeasurerCache, List } from 'react-virtualized';\nimport { FormGroup, InputGroup, InputGroupAddon, Label } from 'reactstrap';\nimport { isNotNullOrUndefined } from 'utility/Utils';\nimport { appIntl } from 'utility/context/IntlGlobalProvider';\n\nconst { Option, SingleValue, NoOptionsMessage } = components;\n//Filter option needed to work with formatted messages\nconst filterOption = (candidate, input) => {\n let showOptionFilter = false;\n try {\n showOptionFilter =\n showOptionFilter ||\n (candidate.data.label &&\n _.deburr(candidate.data.label.toLowerCase()).includes(_.deburr(input.toLowerCase())));\n } catch (err) {}\n try {\n showOptionFilter =\n showOptionFilter ||\n (candidate.data.label_intl &&\n _.deburr(candidate.data.label_intl.toLowerCase()).includes(_.deburr(input.toLowerCase())));\n } catch (err) {}\n\n return showOptionFilter;\n};\n\nconst IconOption = (props) => {\n return (\n \n );\n};\nconst IconSingleValue = (props) => {\n return (\n \n
\n {props.data.icon != null &&
{props.data.icon}
}\n {props.data.iconSVG && (\n \n )}\n {props.data.label}\n
\n
\n );\n};\n\nconst cache = new CellMeasurerCache({\n defaultHeight: 60,\n fixedWidth: true\n});\n\nconst MenuList = (props) => {\n const rows = props.children;\n const rowRenderer = ({ key, index, parent, style }) => (\n \n {({ measure, registerChild }) => (\n
\n {rows[index]}\n
\n )}\n
\n );\n\n return rows.length > 0 ? (\n \n {({ height }) => (\n {\n const height = cache.rowHeight(ref);\n return height + height * 0.2;\n }}\n />\n )}\n \n ) : (\n \n );\n};\n\nexport type Options = {\n value: string | number;\n id?: string | number;\n label_intl?: string;\n label?: string | JSX.Element;\n}[];\ninterface Props extends SelectProps {\n id: string;\n field: ControllerRenderProps | any;\n fieldstate: ControllerFieldState | any;\n hasPlaceholder?: boolean;\n options: Options;\n disabled?: boolean;\n label?: string | JSX.Element | null;\n placeholder?: string | Element | JSX.Element;\n isClearable?: boolean;\n intl?: IntlShape;\n isInModal?: boolean;\n errorMessage?: string;\n required?: boolean;\n forceinitialvalue?: string | number | null;\n onClear?: () => void;\n onSelect?: (event) => void;\n additionalonchangefunction?: (value) => void;\n isDisabled?: boolean;\n menuIsOpen?: boolean;\n onInputChange?: (value) => void;\n minWidth?: number;\n prependcomponent?: string | JSX.Element;\n appendcomponent?: string | JSX.Element;\n style?: CSSProperties;\n onFocus?: () => void;\n isLoading?: boolean;\n}\n\nexport type DropdownProps = Props;\n\nconst DropdownInput: FC = (props) => {\n //const [touched, setTouched] = useState(false);\n const {\n field,\n fieldstate,\n hasPlaceholder = true,\n options = [],\n intl,\n isInModal = false,\n errorMessage,\n required,\n forceinitialvalue,\n onClear,\n additionalonchangefunction = (value) => null,\n isDisabled = false,\n menuIsOpen,\n onInputChange,\n minWidth,\n onFocus,\n ...inputProps\n } = props;\n const style = getComputedStyle(document.body);\n const primary = process.env.REACT_APP_PRIMARY_COLOR;\n\n useEffect(() => {\n if (forceinitialvalue !== undefined) onChangeFinal(forceinitialvalue);\n }, [forceinitialvalue]);\n\n useEffect(() => {\n // if options are not an array, return void\n if (!Array.isArray(options)) {\n return;\n }\n const isInArray = options.find((o) => o?.value == forceinitialvalue);\n\n // if element is found in array\n // set as initial value, this code only excecutes itself when\n if (isNotNullOrUndefined(isInArray)) {\n if (forceinitialvalue !== undefined) onChangeFinal(forceinitialvalue);\n return;\n }\n\n // forceinitialvalue has a value\n // is not in the array and is defined\n if (isNotNullOrUndefined(forceinitialvalue)) {\n onChangeFinal(null);\n }\n }, [options?.length]);\n\n const onChangeFinal = (value) => {\n field.onChange(value);\n\n if (additionalonchangefunction) {\n additionalonchangefunction(value);\n }\n };\n return (\n \n {inputProps.label && (\n \n )}\n \n {props.prependcomponent}\n ({ ...styles, zIndex: 91000 }),\n input: (provided, state) => ({\n minWidth: minWidth\n }),\n control: (provided, state) => {\n return {\n ...provided,\n\n boxShadow: state.isFocused ? 'none!important' : 'none!important',\n border: state.isFocused\n ? `1px solid ${primary} !important`\n : '1px solid #d8d6de !important'\n };\n },\n singleValue: (provided, state) => {\n return {\n ...provided,\n fontWeight: 400,\n fontSize: '1rem',\n lineHeight: 1.45,\n color: '#6e6b7b',\n transition: 'border-color 0.15s ease-in-out, box-shadow 0.15s ease-in-out'\n };\n },\n menuList: (provided, state) => {\n return {\n ...provided,\n\n fontWeight: 400,\n fontSize: '1rem',\n lineHeight: 1.45,\n color: '#6e6b7b',\n transition: 'border-color 0.15s ease-in-out, box-shadow 0.15s ease-in-out'\n };\n }\n }}\n id={inputProps.id}\n components={{ Option: IconOption, SingleValue: IconSingleValue, MenuList }}\n placeholder={\n inputProps.placeholder ?? appIntl().formatMessage({ id: 'common.selectOption' })\n }\n className={\n fieldstate.error != null ? 'has-error custom-dropdown-input' : 'custom-dropdown-input'\n }\n onChange={(event, triggeredAction) => {\n if (triggeredAction.action === 'clear' && onClear) onClear();\n onChangeFinal(event ? event.value : null);\n if (inputProps.onSelect) inputProps.onSelect(event);\n }}\n onBlur={field.onBlur}\n onFocus={onFocus}\n options={options}\n filterOption={filterOption}\n isClearable={inputProps.isClearable}\n isDisabled={isDisabled}\n value={\n options.filter((option) => {\n const fieldValue = String(field.value);\n const optValue = String(option.value);\n const selectedValue = /^\\d+$/.test(fieldValue) ? parseInt(field.value) : field.value;\n const optionValue = /^\\d+$/.test(optValue) ? parseInt(optValue) : option.value;\n return optionValue === selectedValue;\n })[0] || null\n }\n menuIsOpen={menuIsOpen}\n noOptionsMessage={() => appIntl().formatMessage({ id: 'common.noOptions' })}\n maxMenuHeight={250}\n menuPortalTarget={isInModal ? undefined : document.querySelector('body')} // fix issue https://github.com/JedWatson/react-select/issues/3263\n />\n {props.appendcomponent}\n \n {fieldstate.error && (\n
\n {fieldstate.error?.message || errorMessage || (\n \n )}\n
\n )}\n
\n );\n};\n\nexport default DropdownInput;\n","export const ROUTES_ASSIGNMENTS_FETCH_STARTED = 'ROUTES_ASSIGNMENTS_FETCH_STARTED';\nexport const ROUTES_ASSIGNMENTS_FETCH_COMPLETED = 'ROUTES_ASSIGNMENTS_FETCH_COMPLETED';\nexport const ROUTES_ASSIGNMENTS_FETCH_FAILED = 'ROUTES_ASSIGNMENTS_FETCH_FAILED';\n\nexport const ROUTES_ASSIGNMENT_EDIT_STARTED = 'ROUTES_ASSIGNMENT_EDIT_STARTED';\nexport const ROUTES_ASSIGNMENT_EDIT_COMPLETED = 'ROUTES_ASSIGNMENT_EDIT_COMPLETED';\nexport const ROUTES_ASSIGNMENT_EDIT_FAILED = 'ROUTES_ASSIGNMENT_EDIT_FAILED';\n\nexport const ROUTES_ASSIGNMENT_REMOVE_STARTED = 'ROUTES_ASSIGNMENT_REMOVE_STARTED';\nexport const ROUTES_ASSIGNMENT_REMOVE_COMPLETED = 'ROUTES_ASSIGNMENT_REMOVE_COMPLETED';\nexport const ROUTES_ASSIGNMENT_REMOVE_FAILED = 'ROUTES_ASSIGNMENT_REMOVE_FAILED';\n\nexport const ROUTES_ASSIGNMENTS_IMPORT_STARTED = 'ROUTES_ASSIGNMENTS_IMPORT_STARTED';\nexport const ROUTES_ASSIGNMENTS_IMPORT_COMPLETED = 'ROUTES_ASSIGNMENTS_IMPORT_COMPLETED';\nexport const ROUTES_ASSIGNMENTS_IMPORT_FAILED = 'ROUTES_ASSIGNMENTS_IMPORT_FAILED';\n","/* -------------------------------------------------------------------------- */\n/* Componente TextInput */\n/* -------------------------------------------------------------------------- */\n// Este componente contiene un textfield genĆ©rico que se utiliza en muchas pantallas de la aplicaciĆ³n.\n\nimport React, { useEffect, useState } from 'react';\nimport {\n Label,\n Input,\n FormFeedback,\n FormGroup,\n InputGroup,\n InputGroupAddon,\n InputGroupText\n} from 'reactstrap';\nimport _ from 'lodash';\nimport { FormattedMessage } from 'react-intl';\n\ninterface Props {\n id: any;\n label?: any;\n field: any;\n fieldstate: any;\n type?: any;\n required?: any;\n placeholder?: string;\n errorMessage?: any;\n errorinvalidmessage?: any;\n errorvalidatemessage?: any;\n autocompleteinput?: string;\n topRightComponent?: any;\n prependcomponent?: any;\n appendcomponent?: any;\n forceinitialvalue?: string;\n disabled?: boolean;\n additionalonchangefunction?: Function;\n onFocus?: () => void;\n}\n\nconst TextInput = (props: Props) => {\n const {\n id,\n label,\n required,\n placeholder,\n field,\n fieldstate,\n type = 'text',\n autocompleteinput = 'off',\n topRightComponent,\n prependcomponent,\n appendcomponent,\n disabled,\n errorMessage,\n errorinvalidmessage,\n errorvalidatemessage,\n forceinitialvalue,\n additionalonchangefunction\n } = props;\n\n useEffect(() => {\n if (forceinitialvalue != null) onChangeFinal(forceinitialvalue);\n }, [forceinitialvalue]);\n\n const onChangeFinal = (value) => {\n field.onChange(value);\n if (additionalonchangefunction) {\n additionalonchangefunction(value);\n }\n };\n\n return (\n \n {label && (\n \n )}\n \n {prependcomponent && (\n \n {prependcomponent}\n \n )}\n {\n onChangeFinal(event.target.value);\n }}\n onFocus={props.onFocus}\n id={id}\n placeholder={placeholder}\n autoComplete={autocompleteinput}\n type={type}\n invalid={fieldstate.error != null}\n disabled={disabled}\n />\n {appendcomponent && (\n \n {appendcomponent}\n \n )}\n \n {fieldstate.error && fieldstate.error.type === 'required' ? (\n
\n {fieldstate.error?.message || errorMessage || (\n \n )}\n
\n ) : fieldstate.error && fieldstate.error.type === 'pattern' ? (\n
\n {fieldstate.error?.message || errorinvalidmessage || (\n \n )}\n
\n ) : fieldstate.error && fieldstate.error.type === 'validate' ? (\n
\n {fieldstate.error?.message || errorvalidatemessage || (\n \n )}\n
\n ) : (\n ''\n )}\n
\n );\n};\n\nTextInput.defaultProps = {};\n\nexport default TextInput;\n","import * as types from '../types';\n\nexport const startFetchingGeofences = (filters = {}) => ({\n type: types.GEOFENCES_FETCH_STARTED,\n payload: filters\n});\nexport const completeFetchingGeofences = (entities, order, operatorId, organizationId) => ({\n type: types.GEOFENCES_FETCH_COMPLETED,\n payload: {\n entities,\n order,\n operatorId,\n organizationId\n }\n});\nexport const failFetchingGeofences = (error = { errorMessage: 'Error', errorNumber: 404 }) => ({\n type: types.GEOFENCES_FETCH_FAILED,\n payload: {\n error //error:{errorMessage:'Error', errorNumber:400}\n }\n});\n\nexport const startPartialFetchingGeofences = (\n entityTypeId,\n operatorId = null,\n organizationId = null\n) => ({\n type: types.GEOFENCES_PARTIAL_FETCH_STARTED,\n payload: { entityTypeId, operatorId, organizationId }\n});\nexport const completePartialFetchingGeofences = (entities, order, operatorId, organizationId) => ({\n type: types.GEOFENCES_PARTIAL_FETCH_COMPLETED,\n payload: {\n entities,\n order,\n operatorId,\n organizationId\n }\n});\nexport const failPartialFetchingGeofences = (\n error = { errorMessage: 'Error', errorNumber: 404 }\n) => ({\n type: types.GEOFENCES_PARTIAL_FETCH_FAILED,\n payload: {\n error //error:{errorMessage:'Error', errorNumber:400}\n }\n});\n\nexport const startAddingGeofence = (geofence) => ({\n type: types.GEOFENCE_ADD_STARTED,\n payload: geofence\n});\nexport const completeAddingGeofence = (oldId, geofence) => ({\n type: types.GEOFENCE_ADD_COMPLETED,\n payload: { oldId, geofence }\n});\nexport const failAddingGeofence = (oldId, error) => ({\n type: types.GEOFENCE_ADD_FAILED,\n payload: {\n oldId,\n error\n }\n});\n\nexport const startEditingGeofence = (geofence) => ({\n type: types.GEOFENCE_EDIT_STARTED,\n payload: geofence\n});\nexport const completeEditingGeofence = (geofence) => ({\n type: types.GEOFENCE_EDIT_COMPLETED,\n payload: geofence\n});\nexport const failEditingGeofence = (oldGeofence, error) => ({\n type: types.GEOFENCE_EDIT_FAILED,\n payload: {\n oldGeofence,\n error\n }\n});\n\nexport const startRemovingGeofence = (geofenceId) => ({\n type: types.GEOFENCE_REMOVE_STARTED,\n payload: {\n geofenceId\n }\n});\nexport const completeRemovingGeofence = (geofenceId) => ({\n type: types.GEOFENCE_REMOVE_COMPLETED,\n payload: {\n geofenceId\n }\n});\nexport const failRemovingGeofence = (geofenceId, error) => ({\n type: types.GEOFENCE_REMOVE_FAILED,\n payload: {\n geofenceId,\n error\n }\n});\n\nexport const startRemovingGeofenceAssignation = (unitGeofences) => ({\n type: types.GEOFENCE_ASSIGNATION_REMOVE_STARTED,\n payload: {\n unitGeofences\n }\n});\n\nexport const startRemovingAllAssignmentsByGeofences = (geofences) => {\n return {\n type: types.GEOFENCE_ASSIGNATION_REMOVE_BY_GEOFENCES_STARTED,\n payload: {\n geofences\n }\n };\n};\n\nexport const startRemovingAllAssignmentsByUnits = (units) => {\n return {\n type: types.GEOFENCE_ASSIGNATION_REMOVE_BY_UNITS_STARTED,\n payload: {\n units\n }\n };\n};\n\nexport const completeRemovingGeofenceAssignation = (unitGeofences) => ({\n type: types.GEOFENCE_ASSIGNATION_REMOVE_COMPLETED,\n payload: {\n unitGeofences\n }\n});\nexport const failRemovingGeofenceAssignation = (\n error = { errorMessage: 'Error', errorNumber: 404 }\n) => ({\n type: types.GEOFENCE_ASSIGNATION_REMOVE_FAILED,\n payload: {\n error //error:{errorMessage:'Error', errorNumber:400}\n }\n});\n\nexport const startEditingGeofenceAssignation = (unitGeofenceInfo) => ({\n type: types.GEOFENCE_ASSIGNATION_EDIT_STARTED,\n payload: {\n unitGeofenceInfo\n }\n});\nexport const completeEditingGeofenceAssignation = (unitGeofenceInfo) => ({\n type: types.GEOFENCE_ASSIGNATION_EDIT_COMPLETED,\n payload: {\n unitGeofenceInfo\n }\n});\nexport const failEditingGeofenceAssignation = (\n error = { errorMessage: 'Error', errorNumber: 404 }\n) => ({\n type: types.GEOFENCE_ASSIGNATION_EDIT_FAILED,\n payload: {\n error //error:{errorMessage:'Error', errorNumber:400}\n }\n});\n\nexport const selectGeofence = (geofenceId) => ({\n type: types.GEOFENCE_SELECTED,\n payload: geofenceId\n});\n\nexport const selectAllGeofences = (\n geofenceIds: any[] = [] //List of GeofenceIds\n) => ({\n type: types.GEOFENCES_ALL_SELECTED,\n payload: geofenceIds\n});\n\nexport const deselectGeofence = (geofenceId) => ({\n type: types.GEOFENCE_DESELECTED,\n payload: geofenceId\n});\n\nexport const deselectAllGeofences = (\n geofenceIds: any[] = [] //List of GeofenceIds\n) => ({\n type: types.GEOFENCES_ALL_DESELECTED,\n payload: geofenceIds\n});\n\nexport const showGeofenceInMap = (geofenceId) => ({\n type: types.GEOFENCE_SHOW_IN_MAP,\n payload: geofenceId\n});\n\nexport const showAllGeofencesInMap = (\n geofenceIds: any[] = [] //List of GeofenceIds\n) => ({\n type: types.GEOFENCES_ALL_SHOW_IN_MAP,\n payload: geofenceIds\n});\n\nexport const hideGeofenceInMap = (geofenceId) => ({\n type: types.GEOFENCE_HIDE_IN_MAP,\n payload: geofenceId\n});\n\nexport const hideAllGeofencesInMap = (\n geofenceIds: any[] = [] //List of GeofenceIds\n) => ({\n type: types.GEOFENCES_ALL_HIDE_IN_MAP,\n payload: geofenceIds\n});\n\nexport const startAssignUnitsGeofences = (assignation) => ({\n type: types.GEOFENCE_ASSIGN_UNIT_STARTED,\n payload: assignation\n});\nexport const completeAssignUnitsGeofences = (assignation) => ({\n type: types.GEOFENCE_ASSIGN_UNIT_COMPLETED,\n payload: assignation\n});\nexport const failAssignUnitsGeofences = (error = { errorMessage: 'Error', errorNumber: 404 }) => ({\n type: types.GEOFENCE_ASSIGN_UNIT_FAILED,\n payload: {\n error //error:{errorMessage:'Error', errorNumber:400}\n }\n});\n","export const WORKPLANS_EXECUTION_LOCATION_ADD_STARTED = 'WORKPLANS_EXECUTION_LOCATION_ADD_STARTED';\nexport const WORKPLANS_EXECUTION_LOCATION_ADD_COMPLETED =\n 'WORKPLANS_EXECUTION_LOCATION_ADD_COMPLETED';\nexport const WORKPLANS_EXECUTION_LOCATION_ADD_FAILED = 'WORKPLANS_EXECUTION_LOCATION_ADD_FAILED';\n\nexport const WORKPLANS_EXECUTION_LOCATION_EDIT_STARTED =\n 'WORKPLANS_EXECUTION_LOCATION_EDIT_STARTED';\nexport const WORKPLANS_EXECUTION_LOCATION_EDIT_COMPLETED =\n 'WORKPLANS_EXECUTION_LOCATION_EDIT_COMPLETED';\nexport const WORKPLANS_EXECUTION_LOCATION_EDIT_FAILED = 'WORKPLANS_EXECUTION_LOCATION_EDIT_FAILED';\n\nexport const WORKPLANS_EXECUTION_LOCATION_REMOVE_STARTED =\n 'WORKPLANS_EXECUTION_LOCATION_REMOVE_STARTED';\nexport const WORKPLANS_EXECUTION_LOCATION_REMOVE_COMPLETED =\n 'WORKPLANS_EXECUTION_LOCATION_REMOVE_COMPLETED';\nexport const WORKPLANS_EXECUTION_LOCATION_REMOVE_FAILED =\n 'WORKPLANS_EXECUTION_LOCATION_REMOVE_FAILED';\n","export const WORKPLAN_COMMENTS_FETCH_STARTED = 'WORKPLAN_COMMENTS_FETCH_STARTED';\nexport const WORKPLAN_COMMENTS_FETCH_COMPLETED = 'WORKPLAN_COMMENTS_FETCH_COMPLETED';\nexport const WORKPLAN_COMMENTS_FETCH_FAILED = 'WORKPLAN_COMMENTS_FETCH_FAILED';\n\nexport const WORKPLAN_COMMENT_ADD_STARTED = 'WORKPLAN_COMMENT_ADD_STARTED';\nexport const WORKPLAN_COMMENT_ADD_COMPLETED = 'WORKPLAN_COMMENT_ADD_COMPLETED';\nexport const WORKPLAN_COMMENT_ADD_FAILED = 'WORKPLAN_COMMENT_ADD_FAILED';\n\nexport const WORKPLAN_COMMENT_REMOVE_STARTED = 'WORKPLAN_COMMENT_REMOVE_STARTED';\nexport const WORKPLAN_COMMENT_REMOVE_COMPLETED = 'WORKPLAN_COMMENT_REMOVE_COMPLETED';\nexport const WORKPLAN_COMMENT_REMOVE_FAILED = 'WORKPLAN_COMMENT_REMOVE_FAILED';\n","import { combineReducers } from 'redux';\n\nimport omit from 'lodash/omit';\nimport union from 'lodash/union';\nimport forEach from 'lodash/forEach';\nimport uniq from 'lodash/uniq';\n\nimport * as authTypes from '../../../../redux/types/auth';\nimport * as types from '../types';\nimport * as organizationSelectors from 'views/screens/Organizations/reducers';\nimport * as divisionSelectors from 'views/screens/Divisions/reducers';\nimport * as subdivisionSelectors from 'views/screens/Subdivisions/reducers';\nimport localforage from 'localforage';\nimport autoMergeLevel2 from 'redux-persist/lib/stateReconciler/autoMergeLevel2';\nimport { persistReducer } from 'redux-persist';\nimport { DefaultFilters } from 'views/screens/Entities/views/FetchEntities';\n\nconst byId = (state = {}, action) => {\n switch (action.type) {\n case authTypes.AUTHENTICATION_IDENTITY_CLEARED: {\n return {};\n }\n //TYPES COMPLETED FETCH, ADD AND EDIT\n case types.GEOFENCES_FETCH_COMPLETED: {\n const { entities, order } = action.payload;\n const newState = {};\n order.forEach((geofenceId) => {\n newState[geofenceId] = {\n isSelected: false,\n isShowInMap: false,\n ...state[geofenceId],\n ...entities[geofenceId],\n isConfirmed: true\n };\n });\n return newState;\n }\n\n case types.GEOFENCES_PARTIAL_FETCH_COMPLETED: {\n const { entities, order } = action.payload;\n const newState = { ...state };\n order.forEach((geofenceId) => {\n newState[geofenceId] = {\n isSelected: false,\n isShowInMap: false,\n ...state[geofenceId],\n ...entities[geofenceId],\n isConfirmed: true\n };\n });\n return newState;\n }\n\n case types.GEOFENCE_ADD_COMPLETED: {\n const { oldId, geofence } = action.payload;\n const newState = omit(state, oldId);\n newState[geofence.geofenceId] = {\n isShowInMap: false,\n ...state[oldId],\n ...geofence,\n isConfirmed: true\n };\n return newState;\n }\n\n case types.GEOFENCE_EDIT_COMPLETED: {\n const geofence = action.payload;\n return {\n ...state,\n [geofence.geofenceId]: {\n isShowInMap: false,\n ...omit(state[geofence.geofenceId], ['oldGeofence']),\n ...omit(geofence, ['oldGeofence']),\n isConfirmed: true\n }\n };\n }\n\n //TYPES STARTED ADD AND EDIT\n case types.GEOFENCE_ADD_STARTED: {\n const geofence = action.payload;\n const newState = { ...state };\n newState[geofence.geofenceId] = {\n isShowInMap: false,\n isSelected: false,\n ...geofence,\n isConfirmed: false\n };\n return newState;\n }\n case types.GEOFENCE_EDIT_STARTED: {\n const geofence = action.payload;\n return {\n ...state,\n [geofence.geofenceId]: {\n isShowInMap: false,\n ...state[geofence.geofenceId],\n oldGeofence: state[geofence.geofenceId],\n ...geofence,\n isConfirmed: false\n }\n };\n }\n\n //TYPES FAILED ADD AND EDIT\n case types.GEOFENCE_ADD_FAILED: {\n const { oldId } = action.payload;\n if (state[oldId]) {\n return omit(state, oldId);\n }\n return state;\n }\n case types.GEOFENCE_EDIT_FAILED: {\n const { oldGeofence } = action.payload;\n return {\n ...state,\n [oldGeofence.geofenceId]: {\n isShowInMap: false,\n ...omit(state[oldGeofence.geofenceId], ['oldGeofence']),\n ...oldGeofence,\n isConfirmed: true\n }\n };\n }\n\n //TYPES REMOVE COMPLETED\n case types.GEOFENCE_REMOVE_COMPLETED: {\n const { geofenceId } = action.payload;\n return omit(state, geofenceId);\n }\n\n //TYPES SHOW AND HIDE GEOFENCES IN MAP\n case types.GEOFENCE_SHOW_IN_MAP: {\n const geofenceId = action.payload;\n const newState = {\n ...state,\n [geofenceId]: {\n ...state[geofenceId],\n isShownInMap: true\n }\n };\n return newState;\n }\n\n case types.GEOFENCE_HIDE_IN_MAP: {\n const geofenceId = action.payload;\n return {\n ...state,\n [geofenceId]: {\n ...state[geofenceId],\n isShownInMap: false\n }\n };\n }\n\n case types.GEOFENCES_ALL_SHOW_IN_MAP: {\n const geofenceIds = action.payload;\n const newState = { ...state };\n if (geofenceIds.length == 0) {\n forEach(state, (geofence: any, geofenceId) => {\n newState[geofenceId] = {\n ...geofence,\n isShownInMap: true\n };\n });\n } else {\n geofenceIds.forEach((geofenceId) => {\n newState[geofenceId] = {\n ...state[geofenceId],\n isShownInMap: true\n };\n });\n }\n\n return newState;\n }\n\n case types.GEOFENCES_ALL_HIDE_IN_MAP: {\n const geofenceIds = action.payload;\n const newState = { ...state };\n if (geofenceIds.length == 0) {\n forEach(state, (geofence: any, geofenceId) => {\n newState[geofenceId] = {\n ...geofence,\n isShownInMap: false\n };\n });\n } else {\n geofenceIds.forEach((geofenceId) => {\n newState[geofenceId] = {\n ...state[geofenceId],\n isShownInMap: false\n };\n });\n }\n\n return newState;\n }\n\n //TYPES SELECTED AND DESELECTED\n case types.GEOFENCE_SELECTED: {\n const geofenceId = action.payload;\n const newState = {\n ...state,\n [geofenceId]: {\n ...state[geofenceId],\n isSelected: true\n }\n };\n return newState;\n }\n\n case types.GEOFENCE_DESELECTED: {\n const geofenceId = action.payload;\n return {\n ...state,\n [geofenceId]: {\n ...state[geofenceId],\n isSelected: false\n }\n };\n }\n\n case types.GEOFENCES_ALL_SELECTED: {\n const geofenceIds = action.payload;\n const newState = { ...state };\n if (geofenceIds.length == 0) {\n forEach(state, (geofence: any, geofenceId) => {\n newState[geofenceId] = {\n ...geofence,\n isSelected: true\n };\n });\n } else {\n geofenceIds.forEach((geofenceId) => {\n newState[geofenceId] = {\n ...state[geofenceId],\n isSelected: true\n };\n });\n }\n\n return newState;\n }\n\n case types.GEOFENCES_ALL_DESELECTED: {\n const geofenceIds = action.payload;\n const newState = { ...state };\n if (geofenceIds.length == 0) {\n forEach(state, (geofence: any, geofenceId) => {\n newState[geofenceId] = {\n ...geofence,\n isSelected: false\n };\n });\n } else {\n geofenceIds.forEach((geofenceId) => {\n newState[geofenceId] = {\n ...state[geofenceId],\n isSelected: false\n };\n });\n }\n\n return newState;\n }\n\n //DEFAULT\n default: {\n return state;\n }\n }\n};\n\nconst order = (state = [], action) => {\n switch (action.type) {\n case authTypes.AUTHENTICATION_IDENTITY_CLEARED: {\n return [];\n }\n //CASE COMPLETED FETCH, ADD AND REMOVE\n case types.GEOFENCES_FETCH_COMPLETED: {\n const { order } = action.payload;\n return union(order);\n }\n\n case types.GEOFENCES_PARTIAL_FETCH_COMPLETED: {\n const { order } = action.payload;\n return uniq([...state, ...order]);\n }\n\n case types.GEOFENCE_ADD_COMPLETED: {\n const { oldId, geofence } = action.payload;\n return state.map((geofenceId) => (geofenceId === oldId ? geofence.geofenceId : geofenceId));\n }\n\n case types.GEOFENCE_ADD_STARTED: {\n const geofence = action.payload;\n return [...state, geofence.geofenceId];\n }\n\n case types.GEOFENCE_REMOVE_COMPLETED: {\n const { geofenceId } = action.payload;\n return state.filter((geofenceIdState) => geofenceIdState !== geofenceId);\n }\n\n //CASE ADD STARTED\n case types.GEOFENCE_ADD_STARTED: {\n const geofence = action.payload;\n return [...state, geofence.geofenceId];\n }\n\n //CASE ADD FAILED\n case types.GEOFENCE_ADD_FAILED: {\n const { oldId } = action.payload;\n return state.filter((geofenceIdState) => geofenceIdState !== oldId);\n }\n\n //DEFAULT\n default: {\n return state;\n }\n }\n};\n\n// STATES TO KNOW IF IT IS FETCHING, ADDING OR EDITING\nconst isFetchingList = (state = false, action) => {\n switch (action.type) {\n case authTypes.AUTHENTICATION_IDENTITY_CLEARED: {\n return false;\n }\n case types.GEOFENCES_FETCH_STARTED: {\n return true;\n }\n case types.GEOFENCES_FETCH_COMPLETED:\n case types.GEOFENCES_FETCH_FAILED: {\n return false;\n }\n default: {\n return state;\n }\n }\n};\n\nconst isPartialFetchingList = (state = false, action) => {\n switch (action.type) {\n case authTypes.AUTHENTICATION_IDENTITY_CLEARED: {\n return false;\n }\n case types.GEOFENCES_PARTIAL_FETCH_STARTED: {\n return true;\n }\n case types.GEOFENCES_PARTIAL_FETCH_COMPLETED:\n case types.GEOFENCES_PARTIAL_FETCH_FAILED: {\n return false;\n }\n default: {\n return state;\n }\n }\n};\n\nconst isAdding = (state = false, action) => {\n switch (action.type) {\n case authTypes.AUTHENTICATION_IDENTITY_CLEARED: {\n return false;\n }\n case types.GEOFENCE_ADD_STARTED: {\n return true;\n }\n case types.GEOFENCE_ADD_COMPLETED:\n case types.GEOFENCE_ADD_FAILED: {\n return false;\n }\n default: {\n return state;\n }\n }\n};\n\nconst isEditing = (state = false, action) => {\n switch (action.type) {\n case authTypes.AUTHENTICATION_IDENTITY_CLEARED: {\n return false;\n }\n case types.GEOFENCE_ASSIGNATION_EDIT_STARTED:\n case types.GEOFENCE_EDIT_STARTED: {\n return true;\n }\n case types.GEOFENCE_EDIT_COMPLETED:\n case types.GEOFENCE_ASSIGNATION_EDIT_COMPLETED:\n case types.GEOFENCE_ASSIGNATION_EDIT_FAILED:\n case types.GEOFENCE_EDIT_FAILED: {\n return false;\n }\n default: {\n return state;\n }\n }\n};\n\nconst isRemoving = (state = false, action) => {\n switch (action.type) {\n case authTypes.AUTHENTICATION_IDENTITY_CLEARED: {\n return false;\n }\n case types.GEOFENCE_ASSIGNATION_REMOVE_STARTED:\n case types.GEOFENCE_ASSIGNATION_REMOVE_BY_GEOFENCES_STARTED:\n case types.GEOFENCE_ASSIGNATION_REMOVE_BY_UNITS_STARTED:\n case types.GEOFENCE_REMOVE_STARTED: {\n return true;\n }\n case types.GEOFENCE_ASSIGNATION_REMOVE_COMPLETED:\n case types.GEOFENCE_REMOVE_COMPLETED:\n case types.GEOFENCE_ASSIGNATION_REMOVE_FAILED:\n case types.GEOFENCE_REMOVE_FAILED: {\n return false;\n }\n default: {\n return state;\n }\n }\n};\n\nconst errorFetchingList = (state = null, action) => {\n switch (action.type) {\n case authTypes.AUTHENTICATION_IDENTITY_CLEARED: {\n return null;\n }\n case types.GEOFENCES_FETCH_FAILED: {\n const { error } = action.payload;\n return error;\n }\n case types.GEOFENCES_FETCH_STARTED:\n case types.GEOFENCES_FETCH_COMPLETED: {\n return null;\n }\n default: {\n return state;\n }\n }\n};\n\nconst errorPartialFetchingList = (state = null, action) => {\n switch (action.type) {\n case authTypes.AUTHENTICATION_IDENTITY_CLEARED: {\n return null;\n }\n case types.GEOFENCES_PARTIAL_FETCH_FAILED: {\n const { error } = action.payload;\n return error;\n }\n case types.GEOFENCES_PARTIAL_FETCH_STARTED:\n case types.GEOFENCES_PARTIAL_FETCH_COMPLETED: {\n return null;\n }\n default: {\n return state;\n }\n }\n};\n\nconst errorAdding = (state = null, action) => {\n switch (action.type) {\n case authTypes.AUTHENTICATION_IDENTITY_CLEARED: {\n return null;\n }\n case types.GEOFENCE_ADD_FAILED: {\n const { error } = action.payload;\n return error;\n }\n case types.GEOFENCE_ADD_STARTED:\n case types.GEOFENCE_ADD_COMPLETED: {\n return null;\n }\n default: {\n return state;\n }\n }\n};\n\nconst errorEditing = (state = null, action) => {\n switch (action.type) {\n case authTypes.AUTHENTICATION_IDENTITY_CLEARED: {\n return null;\n }\n case types.GEOFENCE_EDIT_FAILED: {\n const { error } = action.payload;\n return error;\n }\n case types.GEOFENCE_EDIT_STARTED:\n case types.GEOFENCE_EDIT_COMPLETED: {\n return null;\n }\n default: {\n return state;\n }\n }\n};\n\nconst errorRemoving = (state = null, action) => {\n switch (action.type) {\n case authTypes.AUTHENTICATION_IDENTITY_CLEARED: {\n return null;\n }\n case types.GEOFENCE_REMOVE_FAILED: {\n const { error } = action.payload;\n return error;\n }\n case types.GEOFENCE_REMOVE_STARTED:\n case types.GEOFENCE_REMOVE_COMPLETED: {\n return null;\n }\n default: {\n return state;\n }\n }\n};\n\nconst geofences: any = combineReducers({\n byId,\n order,\n isPartialFetchingList,\n isFetchingList,\n isAdding,\n isEditing,\n isRemoving,\n errorPartialFetchingList,\n errorFetchingList,\n errorAdding,\n errorEditing,\n errorRemoving\n});\n\nconst geofencesPersistedConfig = {\n key: 'geofences',\n storage: localforage,\n stateReconciler: autoMergeLevel2,\n blacklist: ['isAdding', 'isEditing', 'isRemoving', 'isFetchingList', 'isPartialFetchingList'],\n whitelist: ['byId', 'order']\n};\n\nexport default persistReducer(geofencesPersistedConfig, geofences);\n\n//Own state\nexport const getOwnState = (state) => state.geofences;\n\n//Information\nexport const getGeofence = (state, geofenceId) => {\n const geofence = getOwnState(state).byId[geofenceId];\n if (geofence) {\n const organization = geofence.organizationId\n ? organizationSelectors.getOrganization(state, geofence.organizationId)\n : undefined;\n const division = geofence.divisionId\n ? divisionSelectors.getDivision(state, geofence.divisionId)\n : undefined;\n const subdivision = geofence.subdivisionId\n ? subdivisionSelectors.getSubdivision(state, geofence.subdivisionId)\n : undefined;\n return {\n ...geofence,\n organizationName: organization ? organization.organizationName : '',\n divisionName: division ? division.divisionName : '',\n subdivisionName: subdivision ? subdivision.subdivisionName : ''\n };\n } else return undefined;\n};\n\nexport const getGeofencesList = (state) =>\n getOwnState(state)\n .order.map((id) => getGeofence(state, id))\n .filter((geofence) => geofence.geofenceStatus > 0);\nexport const getParentGeofencesList = (state) =>\n getOwnState(state)\n .order.map((id) => getGeofence(state, id))\n .filter((geofence) => geofence.isParentGeofence);\nexport const getSubGeofencesList = (state) =>\n getOwnState(state)\n .order.map((id) => getGeofence(state, id))\n .filter((geofence) => geofence.isParentGeofence === false && geofence.parentGeofenceId != null);\n\nexport const getGeofenceByPrivateCode = (satate, privateCode) => {\n return getGeofencesList(satate).find((geofence) => geofence.privateCode === privateCode);\n};\nexport const getGeofencesListByMembership = (state, membership, geofencesList: any = null) => {\n if (!geofencesList) geofencesList = getGeofencesList(state);\n return geofencesList.filter(\n (geofence) =>\n membership &&\n (!membership.operatorId || membership.operatorId === geofence.operatorId) &&\n (!membership.organizationId || membership.organizationId === geofence.organizationId) &&\n (!membership.divisionId || membership.divisionId === geofence.divisionId) &&\n (!membership.subdivisionId || membership.subdivisionId === geofence.subdivisionId) &&\n (!membership.groupId ||\n geofence.groups?.split(',').includes(String(membership.groupId)) ||\n membership.groupId + '' === geofence.groups)\n );\n};\nexport const getGeofenceByPrivateCodeByMembership = (\n state,\n privateCode: string,\n membership: DefaultFilters\n) => {\n return getGeofencesListByMembership(state, membership).find(\n (geofence) => geofence.privateCode === privateCode\n );\n};\nexport const getParentGeofencesListByMembership = (state, membership) =>\n getGeofencesListByMembership(state, membership, getParentGeofencesList(state));\nexport const getSubGeofencesListByMembership = (state, membership) =>\n getGeofencesListByMembership(state, membership, getSubGeofencesList(state));\nexport const getSelectedGeofences = (state) => {\n const selectedGeofences = getGeofencesList(state).filter((geofence) => geofence.isSelected);\n //Si no se selecciona ninguno devuelve null\n if (selectedGeofences.length === 0) return null;\n //Si se selecciona mĆ”s de cero se devuelve el arreglo de los seleccionados\n if (selectedGeofences.length > 0) return selectedGeofences;\n};\n\nexport const getSelectedGeofence = (state) => {\n const selectedGeofences = getGeofencesList(state).filter((geofence) => geofence.isSelected);\n //Si se selecciona solo uno devuelve solo el seleccionado\n if (selectedGeofences.length === 1) return selectedGeofences[0];\n //De lo contrario se devuelve null\n else return null;\n};\n\n//Status of sagas\nexport const isPartialFetchingListGeofences = (state) => getOwnState(state).isPartialFetchingList;\nexport const isFetchingListGeofences = (state) => getOwnState(state).isFetchingList;\nexport const isAddingGeofence = (state) => getOwnState(state).isAdding;\nexport const isEditingGeofence = (state) => getOwnState(state).isEditing;\nexport const isRemovingGeofence = (state) => getOwnState(state).isRemoving;\n\n//Errors\nexport const getPartialFetchingListGeofencesErrors = (state) =>\n getOwnState(state).errorPartialFetchingList;\nexport const getFetchingListGeofencesErrors = (state) => getOwnState(state).errorFetchingList;\nexport const getAddingGeofenceErrors = (state) => getOwnState(state).errorAdding;\nexport const getEditingGeofenceErrors = (state) => getOwnState(state).errorEditing;\nexport const getRemovingGeofenceErrors = (state) => getOwnState(state).errorRemoving;\n","//filtrar data de vehiculos por performanceStatus segun rango seleccionado por del usuario\nimport { useMemo } from 'react';\nimport camelcaseKeys from \"camelcase-keys\";\nimport moment from \"moment\"\nimport { all } from \"redux-saga/effects\"\nimport { isNullOrUndefined } from \"utility/Utils\"\n\nexport const performanceColors = ['#FF4757', '#ffa437', '#2ED573', '#1E90FF', '#7d39f6'];\n\nconst vehiclePerformanceTitle = {\n Deficient : 'common.deficient',\n Regular : 'common.regular',\n Efficient : 'common.efficient',\n Top : 'common.top'\n}\n\n/**\n * Get translated title based on performance status\n * @param {number} status\n * @param {[number, number, number, number]} rangePerformance \n * @returns {string | null} Translated title\n */\nexport const getPerformanceTitle = (status, rangePerformance) => {\n const performanceStatus = Math.round(status)\n\n const isDeficient = performanceStatus <= rangePerformance[1] - 1;\n const isRegular = performanceStatus >= rangePerformance[1] && performanceStatus <= rangePerformance[2] - 1;\n const isEfficient = performanceStatus >= rangePerformance[2] && performanceStatus <= rangePerformance[3];\n const isTop = performanceStatus > rangePerformance[3] && performanceStatus < 200;\n\n let vehiclePerformance = null;\n\n if (isTop) {\n vehiclePerformance = vehiclePerformanceTitle.Top;\n } else if (isEfficient) {\n vehiclePerformance = vehiclePerformanceTitle.Efficient;\n } else if (isRegular) {\n vehiclePerformance = vehiclePerformanceTitle.Regular;\n } else if (isDeficient) {\n vehiclePerformance = vehiclePerformanceTitle.Deficient;\n }\n\n return vehiclePerformance;\n}\n\n/**\n * Get color based on performance status\n * @param {number} status \n * @param {number | undefined} expectedPerformance \n * @param {number[]} rangePerformance \n * @returns {string} Hex color\n */\nexport const getPerformanceColor = (status, expectedPerformance, rangePerformance) => {\n\n const performanceStatus = Math.round(status)\n\n return (!performanceStatus || ((performanceStatus <= rangePerformance[1] - 1))\n ? performanceColors[0]\n : performanceStatus >= rangePerformance[1] && performanceStatus <= rangePerformance[2] - 1\n ? performanceColors[1]\n : performanceStatus >= rangePerformance[2] && performanceStatus <= rangePerformance[3]\n ? performanceColors[2]\n : performanceStatus > rangePerformance[3] && performanceStatus < 200\n ? performanceColors[3]\n : performanceColors[4])\n};\n\nconst getAllFilteredData = (byVehicles,ranges = [0,79,80,89,90,110]) =>{\n \n\n const unitsWithRecentData = byVehicles.filter(v => {\n\n console.log('vehicle',v)\n\n const diff = moment().diff(v.systemDate, 'days');\n const hasRecentData = diff <= 7;\n const hasNoDowntimeReasonId = isNullOrUndefined(v.downTimeReasonId);\n const hasPerformance = (parseFloat(v.expectedfuelEconomyByVehicles) > 0 &&\n (parseFloat(v.travel) >= parseFloat(v.expectedfuelEconomyByVehicles) && \n parseFloat(v.travel) >= (parseFloat(v.expectedfuelEconomyByVehicles) * parseFloat(v.loadThreshold)) && \n parseFloat(v.consumption) > 1) || v.historicalFuelEconomy > 0)\n \n return hasRecentData && hasNoDowntimeReasonId && hasPerformance;\n });\n\n const unitsWithoutRecentData = byVehicles.filter(v => {\n const diff = moment().diff(v.systemDate, 'days');\n const hasNoRecentData = diff > 7;\n const hasNoDowntimeReasonId = isNullOrUndefined(v.downTimeReasonId);\n\n return (hasNoRecentData && hasNoDowntimeReasonId) || isNullOrUndefined(v.gpsDate);\n });\n\n const unitsWithoutPerformance = byVehicles.filter(v => {\n const diff = moment().diff(v.systemDate, 'days');\n const hasRecentData = diff <= 7;\n const hasNoDowntimeReasonId = isNullOrUndefined(v.downTimeReasonId);\n const hasNoPerformance = parseFloat(v.expectedfuelEconomyByVehicles) <= 0 || parseFloat(v.travel) < parseFloat(v.expectedfuelEconomyByVehicles) || parseFloat(v.consumption) < 1\n \n return hasRecentData && hasNoDowntimeReasonId && (hasNoPerformance && v.historicalFuelEconomy <= 0);\n });\n\n \n\n const dowtimeUnits = byVehicles.filter((u)=>u.downTimeReasonId)\n\n\n\n\n\n //0,80,90,110,200\n const allFilters = {\n poorPerformance: filterTelemetryData(ranges[0],ranges[1]-1, unitsWithRecentData),\n regularPerformance: filterTelemetryData(ranges[1], ranges[2]-1, unitsWithRecentData),\n goodPerformance: filterTelemetryData(ranges[2], ranges[3], unitsWithRecentData),\n overPerformance: filterTelemetryData(ranges[3]+1, 0, unitsWithRecentData),\n excessivePerformance: filterTelemetryData(200, 0, unitsWithRecentData),\n unitsWithDischarges: filterTelemetryData(0.1, 0, unitsWithRecentData, 'unloaded'),\n unitsWithoutDischarges: filterTelemetryData(0, 0, unitsWithRecentData, 'unloaded'),\n unitsWithRecentData:unitsWithRecentData,\n unitsWithoutRecentData:unitsWithoutRecentData,\n dowtimeUnits: dowtimeUnits,\n unitsWithoutPerformance: unitsWithoutPerformance\n }\n\n return {...allFilters,goodUnitsPercent: (allFilters.goodPerformance.length * 100) / unitsWithRecentData.length}\n}\n\n\n/* \nmin: 0 max:0 condition: property=== \"0.00\"\nmin: 80 max:0 condition: property >= min\nmin: 10 max:50 condition: property <= max && property >= min\n*/\nconst filterTelemetryData = (min = 0, max = 0, vehiclesData, property = 'performanceStatus') => {\nif(min === 0 && max === 0) {\n const filtered = vehiclesData.filter((v) => v[property] === \"0.00\");\n \n return filtered\n}else{\n const filtered = max !== 0 \n ? vehiclesData.filter((v) => v.[property] <= max && v[property] >= min) \n : vehiclesData.filter((v) => v[property] >= min);\n return filtered;\n}\n};\n\nconst dec2bin = (dec) => {\n var binary = '';\n while (dec > 0) {\n binary = (dec % 2) + binary;\n dec = Math.floor(dec / 2);\n }\n while (binary.length < 32) {\n binary = '0' + binary;\n }\n return binary;\n }\n\n\n const reverseBinary = (binary) => {\n var reversedBinary = '';\n for (var i = binary.length - 1; i >= 0; i--) {\n reversedBinary += binary[i];\n }\n return reversedBinary;\n };\n\n\n const dec2binReverse = (dec) => {\n const binary = dec2bin(dec);\n return reverseBinary(binary);\n };\n\n const searchUseMetric = (metricsMask, bitNumber)=>{\n\n return (metricsMask & (2 ** bitNumber)) == 2 ** bitNumber\n\n }\n\nconst Metrics = {\n ACCState: {\n MetricId: 1,\n MetricName: \"ACCState\",\n BitNumber: 0,\n UseInVehicles: 1,\n UseInAssets: 1,\n UseInPeople: 0,\n OrderNumber: 1\n },\n ACCX: {\n MetricId: 2,\n MetricName: \"ACCX\",\n BitNumber: 1,\n UseInVehicles: 0,\n UseInAssets: 0,\n UseInPeople: 0,\n OrderNumber: 0\n },\n ACCY: {\n MetricId: 3,\n MetricName: \"ACCY\",\n BitNumber: 2,\n UseInVehicles: 0,\n UseInAssets: 0,\n UseInPeople: 0,\n OrderNumber: 0\n },\n ACCZ: {\n MetricId: 4,\n MetricName: \"ACCZ\",\n BitNumber: 3,\n UseInVehicles: 0,\n UseInAssets: 0,\n UseInPeople: 0,\n OrderNumber: 0\n },\n AD1: {\n MetricId: 5,\n MetricName: \"AD1\",\n BitNumber: 4,\n UseInVehicles: 0,\n UseInAssets: 0,\n UseInPeople: 0,\n OrderNumber: 0\n },\n AD2: {\n MetricId: 6,\n MetricName: \"AD2\",\n BitNumber: 5,\n UseInVehicles: 0,\n UseInAssets: 0,\n UseInPeople: 0,\n OrderNumber: 0\n },\n AppVersion: {\n MetricId: 7,\n MetricName: \"AppVersion\",\n BitNumber: 6,\n UseInVehicles: 0,\n UseInAssets: 0,\n UseInPeople: 1,\n OrderNumber: 10\n },\n BackupBattery: {\n MetricId: 8,\n MetricName: \"BackupBattery\",\n BitNumber: 7,\n UseInVehicles: 1,\n UseInAssets: 1,\n UseInPeople: 0,\n OrderNumber: 5\n },\n Battery: {\n MetricId: 9,\n MetricName: \"Battery\",\n BitNumber: 8,\n UseInVehicles: 0,\n UseInAssets: 1,\n UseInPeople: 1,\n OrderNumber: 2\n },\n CellNumber: {\n MetricId: 10,\n MetricName: \"CellNumber\",\n BitNumber: 9,\n UseInVehicles: 1,\n UseInAssets: 1,\n UseInPeople: 0,\n OrderNumber: 15\n },\n CoverTamperState: {\n MetricId: 11,\n MetricName: \"CoverTamperState\",\n BitNumber: 10,\n UseInVehicles: 0,\n UseInAssets: 1,\n UseInPeople: 0,\n OrderNumber: 7\n },\n DoorState: {\n MetricId: 12,\n MetricName: \"DoorState\",\n BitNumber: 11,\n UseInVehicles: 1,\n UseInAssets: 1,\n UseInPeople: 0,\n OrderNumber: 6\n },\n FirmwareVersion: {\n MetricId: 13,\n MetricName: \"FirmwareVersion\",\n BitNumber: 12,\n UseInVehicles: 0,\n UseInAssets: 0,\n UseInPeople: 0,\n OrderNumber: 0\n },\n GSMSignalLevel: {\n MetricId: 14,\n MetricName: \"GSMSignalLevel\",\n BitNumber: 13,\n UseInVehicles: 0,\n UseInAssets: 0,\n UseInPeople: 0,\n OrderNumber: 0\n },\n HardwareVersion: {\n MetricId: 15,\n MetricName: \"HardwareVersion\",\n BitNumber: 14,\n UseInVehicles: 0,\n UseInAssets: 0,\n UseInPeople: 0,\n OrderNumber: 0\n },\n ICCID: {\n MetricId: 16,\n MetricName: \"ICCID\",\n BitNumber: 15,\n UseInVehicles: 1,\n UseInAssets: 1,\n UseInPeople: 0,\n OrderNumber: 18\n },\n IsCharging: {\n MetricId: 17,\n MetricName: \"IsCharging\",\n BitNumber: 16,\n UseInVehicles: 0,\n UseInAssets: 1,\n UseInPeople: 0,\n OrderNumber: 3\n },\n MainVoltage: {\n MetricId: 18,\n MetricName: \"MainVoltage\",\n BitNumber: 17,\n UseInVehicles: 1,\n UseInAssets: 0,\n UseInPeople: 0,\n OrderNumber: 4\n },\n MCC: {\n MetricId: 19,\n MetricName: \"MCC\",\n BitNumber: 18,\n UseInVehicles: 1,\n UseInAssets: 1,\n UseInPeople: 0,\n OrderNumber: 13\n },\n MNC: {\n MetricId: 20,\n MetricName: \"MNC\",\n BitNumber: 19,\n UseInVehicles: 1,\n UseInAssets: 1,\n UseInPeople: 0,\n OrderNumber: 14\n },\n OverSpeedState: {\n MetricId: 21,\n MetricName: \"OverSpeedState\",\n BitNumber: 20,\n UseInVehicles: 0,\n UseInAssets: 0,\n UseInPeople: 0,\n OrderNumber: 0\n },\n PadlockAuthorizationType: {\n MetricId: 22,\n MetricName: \"PadlockAuthorizationType\",\n BitNumber: 21,\n UseInVehicles: 0,\n UseInAssets: 1,\n UseInPeople: 0,\n OrderNumber: 8\n },\n PadlockState: {\n MetricId: 23,\n MetricName: \"PadlockState\",\n BitNumber: 22,\n UseInVehicles: 0,\n UseInAssets: 1,\n UseInPeople: 0,\n OrderNumber: 9\n },\n PLMN: {\n MetricId: 24,\n MetricName: \"PLMN\",\n BitNumber: 23,\n UseInVehicles: 1,\n UseInAssets: 1,\n UseInPeople: 0,\n OrderNumber: 12\n },\n Satellites: {\n MetricId: 25,\n MetricName: \"Satellites\",\n BitNumber: 24,\n UseInVehicles: 1,\n UseInAssets: 1,\n UseInPeople: 0,\n OrderNumber: 11\n },\n ShockSensorState: {\n MetricId: 26,\n MetricName: \"ShockSensorState\",\n BitNumber: 25,\n UseInVehicles: 0,\n UseInAssets: 0,\n UseInPeople: 0,\n OrderNumber: 0\n },\n TrailerID: {\n MetricId: 27,\n MetricName: \"TrailerID\",\n BitNumber: 26,\n UseInVehicles: 1,\n UseInAssets: 0,\n UseInPeople: 0,\n OrderNumber: 17\n },\n DriverId: {\n MetricId: 28,\n MetricName: \"DriverId\",\n BitNumber: 27,\n UseInVehicles: 1,\n UseInAssets: 0,\n UseInPeople: 0,\n OrderNumber: 16\n }\n \n };\n\n\n const getSummaryDataForDynamicTable = (performanceSummary,intl)=>{\n\n\n if (performanceSummary?.length > 0) {\n const statuses = ['efficient', 'top', 'regular', 'deficient'];\n\n // Initialize an object to store the results\n const result = {};\n\n // Iterate through the data\n performanceSummary?.forEach((row) => {\n const weekNumber = row.weekNumber;\n // Iterate through the statuses\n statuses.forEach((status) => {\n const statusLowerCase = status.toLowerCase();\n // Create or update the status object\n if (!result[statusLowerCase]) {\n result[statusLowerCase] = {};\n }\n // Creamos un nuevo campo con el total del estado en la semana de la iteracion\n result[statusLowerCase][`totalWeek${weekNumber}`] = `${row[statusLowerCase]} - ${(\n (row[statusLowerCase] / row.total) *\n 100\n ).toFixed(0)} %`;\n });\n });\n\n // Convert the result object to an array of objects\n const newConsolidatedInfo = Object.keys(result).map((status) => ({\n status: intl.formatMessage({ id: `common.${status}` }),\n ...result[status]\n }));\n\n\n return newConsolidatedInfo\n } \n\n return []\n\n }\n\n\n\n\n\n function useCombinedFuelHistory(data, samples, fuelEvents, sensors, selectedSensor) {\n const combinedData = useMemo(() => {\n return data?.fuelHistory?.map((result) => {\n const resultFinal = camelcaseKeys(result);\n const match = fuelEvents.find(\n (event) => event.unitPositionLogId === resultFinal.unitPositionLogId\n );\n const isSensorValid =\n sensors?.length === 1 ||\n (match !== undefined && selectedSensor?.sensorId === 0 && sensors?.length > 0);\n \n if (isSensorValid) {\n const sampleMatch = samples?.fuelSamples?.find(\n (sample) =>\n sample.unitPositionLogId === resultFinal.unitPositionLogId &&\n resultFinal.eventId !== 332 &&\n resultFinal.eventId !== 331\n );\n return {\n ...resultFinal,\n ...(match || sampleMatch)\n };\n }\n \n return resultFinal;\n });\n }, [data, samples, fuelEvents, sensors, selectedSensor]);\n \n return combinedData;\n }\n \n \n\nexport { filterTelemetryData,getAllFilteredData,Metrics,dec2binReverse,searchUseMetric,getSummaryDataForDynamicTable,useCombinedFuelHistory };\n","/* -------------------------------------------------------------------------- */\n/* Acciones del reductor Auth */\n/* -------------------------------------------------------------------------- */\n\nimport * as types from '../../types/auth';\n\nexport const startLogin = ({ username, password }) => ({\n type: types.AUTHENTICATION_STARTED,\n payload: { username, password }\n});\n\nexport const completeLogin = (token) => ({\n type: types.AUTHENTICATION_COMPLETED,\n payload: { token }\n});\n\nexport const failLogin = (error) => ({\n type: types.AUTHENTICATION_FAILED,\n payload: { error }\n});\n\nexport const clearLoginError = () => ({\n type: types.AUTHENTICATION_FAILED_CLEAR\n});\n\nexport const logout = () => ({\n type: types.AUTHENTICATION_IDENTITY_CLEARED\n});\n\nexport const setSessionMembership = (membership = {}) => ({\n type: types.AUTHENTICATION_SET_MEMBERSHIP,\n payload: membership\n});\n\nexport const authenticationUserInformationStarted = () => ({\n type: types.AUTHENTICATION_USER_INFORMATION_STARTED\n});\n\nexport const authenticationUserInformationCompleted = (user) => ({\n type: types.AUTHENTICATION_USER_INFORMATION_COMPLETED,\n payload: { user }\n});\n\nexport const startRefreshToken = () => ({\n type: types.TOKEN_REFRESH_STARTED\n});\n\nexport const startForceRefreshToken = () => ({\n type: types.TOKEN_REFRESH_FORCE_STARTED\n});\n\nexport const completeRefreshToken = (newToken) => ({\n type: types.TOKEN_REFRESH_COMPLETED,\n payload: { newToken }\n});\n\nexport const failRefreshToken = (error) => ({\n type: types.TOKEN_REFRESH_FAILED,\n payload: { error }\n});\n\nexport const startUpdatingProfileGeneralInformation = (values) => ({\n type: types.PROFILE_UPDATE_GENERAL_INFORMATION_STARTED,\n payload: values\n});\n\nexport const completeUpdatingProfileGeneralInformation = (values) => ({\n type: types.PROFILE_UPDATE_GENERAL_INFORMATION_COMPLETED,\n payload: values\n});\n\nexport const failUpdatingProfileGeneralInformation = (error) => ({\n type: types.PROFILE_UPDATE_GENERAL_INFORMATION_FAILED,\n payload: { error }\n});\n\nexport const startUpdatingProfilePassword = (values) => ({\n type: types.PROFILE_UPDATE_PASSWORD_STARTED,\n payload: values\n});\n\nexport const completeUpdatingProfilePassword = (values) => ({\n type: types.PROFILE_UPDATE_PASSWORD_COMPLETED,\n payload: values\n});\n\nexport const failUpdatingProfilePassword = (error) => ({\n type: types.PROFILE_UPDATE_PASSWORD_FAILED,\n payload: { error }\n});\n\nexport const startUpdatingProfilePicture = (values) => ({\n type: types.PROFILE_UPDATE_PICTURE_STARTED,\n payload: values\n});\n\nexport const completeUpdatingProfilePicture = (values) => ({\n type: types.PROFILE_UPDATE_PICTURE_COMPLETED,\n payload: values\n});\n\nexport const failUpdatingProfilePicture = (error) => ({\n type: types.PROFILE_UPDATE_PICTURE_FAILED,\n payload: { error }\n});\n\nexport const startUpdatingProfileHomeScreen = (homeScreenId) => ({\n type: types.PROFILE_UPDATE_HOME_SCREEN_STARTED,\n payload: homeScreenId\n});\n\nexport const completeUpdatingProfileHomeScreen = (homeScreenId) => ({\n type: types.PROFILE_UPDATE_HOME_SCREEN_COMPLETED,\n payload: homeScreenId\n});\n\nexport const failUpdatingProfileHomeScreen = (error) => ({\n type: types.PROFILE_UPDATE_HOME_SCREEN_FAILED,\n payload: { error }\n});\n\nexport const startChangingProduct = (productId) => ({\n type: types.PROFILE_CHANGE_PRODUCT_STARTED,\n payload: productId\n});\n\nexport const completeChangingProduct = (productId) => ({\n type: types.PROFILE_CHANGE_PRODUCT_COMPLETED,\n payload: productId\n});\n\nexport const failChangingProduct = (error) => ({\n type: types.PROFILE_CHANGE_PRODUCT_FAILED,\n payload: { error }\n});\n\nexport const startUpdatingProfileMapOptions = (values) => ({\n type: types.PROFILE_UPDATE_MAP_OPTIONS_STARTED,\n payload: values\n});\n\nexport const completeUpdatingProfileMapOptions = (values) => ({\n type: types.PROFILE_UPDATE_MAP_OPTIONS_COMPLETED,\n payload: values\n});\n\nexport const failUpdatingProfileMapOptions = (error) => ({\n type: types.PROFILE_UPDATE_MAP_OPTIONS_FAILED,\n payload: { error }\n});\n\nexport const startUpdatingMapSettingsConfiguration = (values) => ({\n type: types.PROFILE_UPDATE_MAP_SETTINGS_CONFIGURATION_STARTED,\n payload: values\n});\n\nexport const completeUpdatingMapSettingsConfiguration = (values) => ({\n type: types.PROFILE_UPDATE_MAP_SETTINGS_CONFIGURATION_COMPLETED,\n payload: values\n});\n\nexport const failUpdatingMapSettingsConfiguration = (error) => ({\n type: types.PROFILE_UPDATE_MAP_SETTINGS_CONFIGURATION_FAILED,\n payload: { error }\n});\n","import * as types from '../types';\n\nexport const startFetchingQuotations = (filters = {}) => ({\n type: types.QUOTATIONS_FETCH_STARTED,\n payload: filters\n});\nexport const completeFetchingQuotations = (entities, order, operatorId, organizationId) => ({\n type: types.QUOTATIONS_FETCH_COMPLETED,\n payload: {\n entities,\n order,\n operatorId,\n organizationId\n }\n});\nexport const failFetchingQuotations = (error = { errorMessage: 'Error', errorNumber: 404 }) => ({\n type: types.QUOTATIONS_FETCH_FAILED,\n payload: {\n error //error:{errorMessage:'Error', errorNumber:400}\n }\n});\n\nexport const startPartialFetchingQuotations = (\n entityTypeId,\n operatorId = null,\n organizationId = null,\n allowNullOrganizationId\n) => ({\n type: types.QUOTATIONS_PARTIAL_FETCH_STARTED,\n payload: { entityTypeId, operatorId, organizationId, allowNullOrganizationId }\n});\nexport const completePartialFetchingQuotations = (entities, order, operatorId, organizationId) => ({\n type: types.QUOTATIONS_PARTIAL_FETCH_COMPLETED,\n payload: {\n entities,\n order,\n operatorId,\n organizationId\n }\n});\nexport const failPartialFetchingQuotations = (\n error = { errorMessage: 'Error', errorNumber: 404 }\n) => ({\n type: types.QUOTATIONS_PARTIAL_FETCH_FAILED,\n payload: {\n error //error:{errorMessage:'Error', errorNumber:400}\n }\n});\n\nexport const startAddingQuotation = (quotation, isSelected = false) => ({\n type: types.QUOTATIONS_ADD_STARTED,\n payload: { quotation, isSelected }\n});\nexport const completeAddingQuotation = (oldId, quotation) => ({\n type: types.QUOTATIONS_ADD_COMPLETED,\n payload: { oldId, quotation }\n});\nexport const failAddingQuotation = (oldId, error) => ({\n type: types.QUOTATIONS_ADD_FAILED,\n payload: {\n oldId,\n error\n }\n});\n\nexport const startEditingQuotation = (quotation) => ({\n type: types.QUOTATIONS_EDIT_STARTED,\n payload: quotation\n});\nexport const completeEditingQuotation = (quotation) => ({\n type: types.QUOTATIONS_EDIT_COMPLETED,\n payload: quotation\n});\nexport const failEditingQuotation = (oldQuotation, error) => ({\n type: types.QUOTATIONS_EDIT_FAILED,\n payload: {\n oldQuotation,\n error\n }\n});\n\nexport const startSchedulingQuotation = (quotation) => ({\n type: types.QUOTATIONS_SCHEDULE_STARTED,\n payload: quotation\n});\nexport const completeSchedulingQuotation = (quotation) => ({\n type: types.QUOTATIONS_SCHEDULE_COMPLETED,\n payload: quotation\n});\nexport const failSchedulingQuotation = (error) => ({\n type: types.QUOTATIONS_EDIT_FAILED,\n payload: {\n error\n }\n});\n\nexport const startCheckingQuotationScheduling = (quotationId, quotationLink) => ({\n type: types.QUOTATIONS_CHECK_SCHEDULING_STARTED,\n payload: { quotationId, quotationLink }\n});\nexport const completeCheckingQuotationScheduling = (quotation) => ({\n type: types.QUOTATIONS_CHECK_SCHEDULING_COMPLETED,\n payload: quotation\n});\nexport const failCheckingQuotationScheduling = (error) => ({\n type: types.QUOTATIONS_CHECK_SCHEDULING_FAILED,\n payload: { error }\n});\n\nexport const startApprovingDenyingQuotationManagement = (quotation) => ({\n type: types.QUOTATION_APPROVE_DENY_MANAGEMENT_STARTED,\n payload: quotation\n});\nexport const completeApprovingDenyingQuotationManagement = (quotation) => ({\n type: types.QUOTATION_APPROVE_DENY_MANAGEMENT_COMPLETED,\n payload: quotation\n});\nexport const failApprovingDenyingQuotationManagement = (error) => ({\n type: types.QUOTATION_APPROVE_DENY_MANAGEMENT_FAILED,\n payload: {\n error\n }\n});\n\nexport const startAcceptingDenyingQuotationCustomer = (quotation) => ({\n type: types.QUOTATION_ACCEPT_DENY_CUSTOMER_STARTED,\n payload: quotation\n});\nexport const completeAcceptingDenyingQuotationCustomer = (quotation) => ({\n type: types.QUOTATION_ACCEPT_DENY_CUSTOMER_COMPLETED,\n payload: quotation\n});\nexport const failAcceptingDenyingQuotationCustomer = (error) => ({\n type: types.QUOTATION_ACCEPT_DENY_CUSTOMER_FAILED,\n payload: {\n error\n }\n});\n\nexport const startSettingTimesupQuotation = (quotation, showAlerts = true) => ({\n type: types.QUOTATIONS_SET_TIMESUP_STARTED,\n payload: { quotation, showAlerts }\n});\nexport const completeSettingTimesupQuotation = (quotation) => ({\n type: types.QUOTATIONS_SET_TIMESUP_COMPLETED,\n payload: quotation\n});\nexport const failSettingTimesupQuotation = (error) => ({\n type: types.QUOTATIONS_SET_TIMESUP_FAILED,\n payload: {\n error\n }\n});\n\nexport const startRemovingQuotation = (quotationId) => ({\n type: types.QUOTATIONS_REMOVE_STARTED,\n payload: {\n quotationId\n }\n});\nexport const completeRemovingQuotation = (quotationId) => ({\n type: types.QUOTATIONS_REMOVE_COMPLETED,\n payload: {\n quotationId\n }\n});\nexport const failRemovingQuotation = (quotationId, error) => ({\n type: types.QUOTATIONS_REMOVE_FAILED,\n payload: {\n quotationId,\n error\n }\n});\n\nexport const changeQuotationOrganization = (quotation, organization) => ({\n type: types.QUOTATIONS_SELECTED,\n payload: { quotation, organization }\n});\n\nexport const selectQuotation = (quotationId) => ({\n type: types.QUOTATIONS_SELECTED,\n payload: quotationId\n});\n\nexport const selectAllQuotations = (\n quotationIds = [] //List of quotationIds\n) => ({\n type: types.QUOTATIONS_ALL_SELECTED,\n payload: quotationIds\n});\n\nexport const deselectQuotation = (quotationId) => ({\n type: types.QUOTATIONS_DESELECTED,\n payload: quotationId\n});\n\nexport const deselectAllQuotations = (\n quotationIds = [] //List of quotationIds\n) => ({\n type: types.QUOTATIONS_ALL_DESELECTED,\n payload: quotationIds\n});\n\nexport const startCopyingQuotation = (quotation) => ({\n type: types.QUOTATION_COPY_STARTED,\n payload: { quotation }\n});\nexport const completeCopyingQuotation = (quotation) => ({\n type: types.QUOTATION_COPY_COMPLETED,\n payload: { quotation }\n});\nexport const failCopyingQuotation = (quotationId, error) => ({\n type: types.QUOTATION_COPY_FAILED,\n payload: {\n quotationId,\n error\n }\n});\n","import * as types from '../types';\n\nexport const startFetchingSchedules = (filters = {}) => ({\n type: types.SCHEDULES_FETCH_STARTED,\n payload: filters\n});\nexport const completeFetchingSchedules = (entities, order) => ({\n type: types.SCHEDULES_FETCH_COMPLETED,\n payload: {\n entities,\n order\n }\n});\nexport const failFetchingSchedules = (error = { errorMessage: 'Error', errorNumber: 404 }) => ({\n type: types.SCHEDULES_FETCH_FAILED,\n payload: {\n error //error:{errorMessage:'Error', errorNumber:400}\n }\n});\n\nexport const startPartialFetchingSchedules = (entityTypeId) => ({\n type: types.SCHEDULES_PARTIAL_FETCH_STARTED,\n payload: entityTypeId\n});\nexport const completePartialFetchingSchedules = (entities, order) => ({\n type: types.SCHEDULES_PARTIAL_FETCH_COMPLETED,\n payload: {\n entities,\n order\n }\n});\nexport const failPartialFetchingSchedules = (\n error = { errorMessage: 'Error', errorNumber: 404 }\n) => ({\n type: types.SCHEDULES_PARTIAL_FETCH_FAILED,\n payload: {\n error //error:{errorMessage:'Error', errorNumber:400}\n }\n});\n\nexport const startAddingSchedule = (schedule) => ({\n type: types.SCHEDULE_ADD_STARTED,\n payload: schedule\n});\nexport const completeAddingSchedule = (oldId, schedule) => ({\n type: types.SCHEDULE_ADD_COMPLETED,\n payload: { oldId, schedule }\n});\nexport const failAddingSchedule = (oldId, error) => ({\n type: types.SCHEDULE_ADD_FAILED,\n payload: {\n oldId,\n error\n }\n});\n\nexport const startAddingShift = (schedule) => ({\n type: types.SCHEDULE_SHIFT_ADD_STARTED,\n payload: schedule\n});\nexport const completeAddingShift = (oldId, schedule) => ({\n type: types.SCHEDULE_SHIFT_ADD_COMPLETED,\n payload: { oldId, schedule }\n});\nexport const failAddingShift = (oldId, error) => ({\n type: types.SCHEDULE_SHIFT_ADD_FAILED,\n payload: {\n oldId,\n error\n }\n});\n\nexport const startEditingSchedule = (schedule) => ({\n type: types.SCHEDULE_EDIT_STARTED,\n payload: schedule\n});\nexport const completeEditingSchedule = (schedule) => ({\n type: types.SCHEDULE_EDIT_COMPLETED,\n payload: schedule\n});\nexport const failEditingSchedule = (oldSchedule, error) => ({\n type: types.SCHEDULE_EDIT_FAILED,\n payload: {\n oldSchedule,\n error\n }\n});\nexport const startEditingShift = (schedule) => ({\n type: types.SCHEDULE_SHIFT_EDIT_STARTED,\n payload: schedule\n});\nexport const completeEditingShift = (schedule) => ({\n type: types.SCHEDULE_SHIFT_EDIT_COMPLETED,\n payload: schedule\n});\nexport const failEditingShift = (oldSchedule, error) => ({\n type: types.SCHEDULE_SHIFT_EDIT_FAILED,\n payload: {\n oldSchedule,\n error\n }\n});\n\nexport const startRemovingSchedule = (scheduleId) => ({\n type: types.SCHEDULE_REMOVE_STARTED,\n payload: {\n scheduleId\n }\n});\nexport const completeRemovingSchedule = (scheduleId) => ({\n type: types.SCHEDULE_REMOVE_COMPLETED,\n payload: {\n scheduleId\n }\n});\nexport const failRemovingSchedule = (scheduleId, error) => ({\n type: types.SCHEDULE_REMOVE_FAILED,\n payload: {\n scheduleId,\n error\n }\n});\n\nexport const selectSchedule = (scheduleId) => ({\n type: types.SCHEDULE_SELECTED,\n payload: scheduleId\n});\n\nexport const selectAllSchedules = (\n scheduleIds = [] //List of ScheduleIds\n) => ({\n type: types.SCHEDULES_ALL_SELECTED,\n payload: scheduleIds\n});\n\nexport const deselectSchedule = (scheduleId) => ({\n type: types.SCHEDULE_DESELECTED,\n payload: scheduleId\n});\n\nexport const deselectAllSchedules = (\n scheduleIds = [] //List of ScheduleIds\n) => ({\n type: types.SCHEDULES_ALL_DESELECTED,\n payload: scheduleIds\n});\n","import { combineReducers } from 'redux';\nimport uniq from 'lodash/uniq';\nimport * as authTypes from '../../../../../redux/types/auth';\nimport * as types from '../../types';\nimport { appIntl } from 'utility/context/IntlGlobalProvider';\n\nconst byId = (state = {}, action) => {\n switch (action.type) {\n case authTypes.AUTHENTICATION_IDENTITY_CLEARED: {\n return {};\n }\n //TYPES UNIT_INFORMATION_FETCH_COMPLETED\n case types.UNIT_INFORMATION_FETCH_COMPLETED: {\n const { deviceMetricsEntities, deviceMetricsOrder } = action.payload;\n const newState = { ...state };\n deviceMetricsOrder.forEach((deviceMetricId) => {\n newState[deviceMetricId] = {\n ...state[deviceMetricId],\n ...deviceMetricsEntities[deviceMetricId]\n };\n });\n return newState;\n }\n //DEFAULT\n default: {\n return state;\n }\n }\n};\n\nconst order = (state = [], action) => {\n switch (action.type) {\n case authTypes.AUTHENTICATION_IDENTITY_CLEARED: {\n return [];\n }\n //CASE UNIT_INFORMATION_FETCH_COMPLETED\n case types.UNIT_INFORMATION_FETCH_COMPLETED: {\n const { deviceMetricsOrder } = action.payload;\n return uniq([...state, ...deviceMetricsOrder]);\n }\n //DEFAULT\n default: {\n return state;\n }\n }\n};\n\nconst deviceMetrics = combineReducers({\n byId,\n order\n});\n\nexport default deviceMetrics;\n\n//Own state\nexport const getOwnState = (state) => state.units.deviceMetrics;\n\n//Information\nexport const getDeviceMetric = (state, deviceMetricId) => {\n const deviceMetric = getOwnState(state).byId[deviceMetricId];\n if (deviceMetric) {\n return {\n ...deviceMetric\n };\n } else return undefined;\n};\nexport const getDeviceMetricsList = (state) =>\n getOwnState(state).order.map((id) => getDeviceMetric(state, id));\n","import { combineReducers } from 'redux';\nimport uniq from 'lodash/uniq';\nimport * as authTypes from '../../../../../redux/types/auth';\nimport * as types from '../../types';\nimport { appIntl } from 'utility/context/IntlGlobalProvider';\n\nconst byId = (state = {}, action) => {\n switch (action.type) {\n case authTypes.AUTHENTICATION_IDENTITY_CLEARED: {\n return {};\n }\n //TYPES UNIT_INFORMATION_FETCH_COMPLETED\n case types.UNIT_INFORMATION_FETCH_COMPLETED: {\n const { deviceActionsEntities, deviceActionsOrder } = action.payload;\n const newState = { ...state };\n deviceActionsOrder.forEach((deviceActionId) => {\n newState[deviceActionId] = {\n ...state[deviceActionId],\n ...deviceActionsEntities[deviceActionId]\n };\n });\n return newState;\n }\n //DEFAULT\n default: {\n return state;\n }\n }\n};\n\nconst order = (state = [], action) => {\n switch (action.type) {\n case authTypes.AUTHENTICATION_IDENTITY_CLEARED: {\n return [];\n }\n //CASE UNIT_INFORMATION_FETCH_COMPLETED\n case types.UNIT_INFORMATION_FETCH_COMPLETED: {\n const { deviceActionsOrder } = action.payload;\n return uniq([...state, ...deviceActionsOrder]);\n }\n //DEFAULT\n default: {\n return state;\n }\n }\n};\n\nconst deviceActions = combineReducers({\n byId,\n order\n});\n\nexport default deviceActions;\n\n//Own state\nexport const getOwnState = (state) => state.units.deviceActions;\n\n//Information\nexport const getDeviceAction = (state, deviceActionId) => {\n const deviceAction = getOwnState(state).byId[deviceActionId];\n if (deviceAction) {\n return {\n ...deviceAction\n };\n } else return undefined;\n};\nexport const getDeviceActionsList = (state) =>\n getOwnState(state).order.map((id) => getDeviceAction(state, id));\n","import { combineReducers } from 'redux';\nimport uniq from 'lodash/uniq';\nimport * as authTypes from '../../../../../redux/types/auth';\nimport * as types from '../../types';\nimport { appIntl } from 'utility/context/IntlGlobalProvider';\n\nconst byId = (state = {}, action) => {\n switch (action.type) {\n case authTypes.AUTHENTICATION_IDENTITY_CLEARED: {\n return {};\n }\n //TYPES UNIT_INFORMATION_FETCH_COMPLETED\n case types.UNIT_INFORMATION_FETCH_COMPLETED: {\n const { groupsEntities, groupsOrder } = action.payload;\n const newState = { ...state };\n groupsOrder.forEach((groupId) => {\n newState[groupId] = {\n ...state[groupId],\n ...groupsEntities[groupId]\n };\n });\n return newState;\n }\n //DEFAULT\n default: {\n return state;\n }\n }\n};\n\nconst order = (state = [], action) => {\n switch (action.type) {\n case authTypes.AUTHENTICATION_IDENTITY_CLEARED: {\n return [];\n }\n //CASE UNIT_INFORMATION_FETCH_COMPLETED\n case types.UNIT_INFORMATION_FETCH_COMPLETED: {\n const { groupsOrder } = action.payload;\n return uniq([...state, ...groupsOrder]);\n }\n //DEFAULT\n default: {\n return state;\n }\n }\n};\n\nconst groups = combineReducers({\n byId,\n order\n});\n\nexport default groups;\n\n//Own state\nexport const getOwnState = (state) => state.units.groups;\n\n//Information\nexport const getGroup = (state, groupId) => {\n const group = getOwnState(state).byId[groupId];\n if (group) {\n return {\n ...group\n };\n } else return undefined;\n};\nexport const getGroupsList = (state) => getOwnState(state).order.map((id) => getGroup(state, id));\n","import { combineReducers } from 'redux';\nimport uniq from 'lodash/uniq';\nimport * as authTypes from '../../../../../redux/types/auth';\nimport * as types from '../../types';\nimport { appIntl } from 'utility/context/IntlGlobalProvider';\n\nconst byId = (state = {}, action) => {\n switch (action.type) {\n case authTypes.AUTHENTICATION_IDENTITY_CLEARED: {\n return {};\n }\n //TYPES UNIT_INFORMATION_FETCH_COMPLETED\n case types.UNIT_INFORMATION_FETCH_COMPLETED: {\n const { reportsEntities, reportsOrder } = action.payload;\n const newState = { ...state };\n reportsOrder.forEach((reportId) => {\n newState[reportId] = {\n ...state[reportId],\n ...reportsEntities[reportId]\n };\n });\n return newState;\n }\n //DEFAULT\n default: {\n return state;\n }\n }\n};\n\nconst order = (state = [], action) => {\n switch (action.type) {\n case authTypes.AUTHENTICATION_IDENTITY_CLEARED: {\n return [];\n }\n //CASE UNIT_INFORMATION_FETCH_COMPLETED\n case types.UNIT_INFORMATION_FETCH_COMPLETED: {\n const { reportsOrder } = action.payload;\n return uniq([...state, ...reportsOrder]);\n }\n //DEFAULT\n default: {\n return state;\n }\n }\n};\n\nconst reports = combineReducers({\n byId,\n order\n});\n\nexport default reports;\n\n//Own state\nexport const getOwnState = (state) => state.units.reports;\n\n//Information\nexport const getReport = (state, reportId) => {\n const report = getOwnState(state).byId[reportId];\n if (report) {\n return {\n ...report\n };\n } else return undefined;\n};\nexport const getReportsList = (state) => getOwnState(state).order.map((id) => getReport(state, id));\n","import { combineReducers } from 'redux';\nimport uniq from 'lodash/uniq';\nimport * as authTypes from '../../../../../redux/types/auth';\nimport * as types from '../../types';\nimport { appIntl } from 'utility/context/IntlGlobalProvider';\n\nconst byId = (state = {}, action) => {\n switch (action.type) {\n case authTypes.AUTHENTICATION_IDENTITY_CLEARED: {\n return {};\n }\n //TYPES UNIT_INFORMATION_FETCH_COMPLETED\n case types.UNIT_INFORMATION_FETCH_COMPLETED: {\n const { imagesEntities, imagesOrder } = action.payload;\n const newState = { ...state };\n imagesOrder.forEach((imageId) => {\n newState[imageId] = {\n ...state[imageId],\n ...imagesEntities[imageId]\n };\n });\n return newState;\n }\n //DEFAULT\n default: {\n return state;\n }\n }\n};\n\nconst order = (state = [], action) => {\n switch (action.type) {\n case authTypes.AUTHENTICATION_IDENTITY_CLEARED: {\n return [];\n }\n //CASE UNIT_INFORMATION_FETCH_COMPLETED\n case types.UNIT_INFORMATION_FETCH_COMPLETED: {\n const { imagesOrder } = action.payload;\n return uniq([...state, ...imagesOrder]);\n }\n //DEFAULT\n default: {\n return state;\n }\n }\n};\n\nconst images = combineReducers({\n byId,\n order\n});\n\nexport default images;\n\n//Own state\nexport const getOwnState = (state) => state.units.images;\n\n//Information\nexport const getImage = (state, imageId) => {\n const image = getOwnState(state).byId[imageId];\n if (image) {\n return {\n ...image\n };\n } else return undefined;\n};\nexport const getImagesList = (state) => getOwnState(state).order.map((id) => getImage(state, id));\n","import { combineReducers } from 'redux';\nimport uniq from 'lodash/uniq';\nimport * as authTypes from '../../../../../redux/types/auth';\nimport * as types from '../../types';\nimport { appIntl } from 'utility/context/IntlGlobalProvider';\n\nconst byId = (state = {}, action) => {\n switch (action.type) {\n case authTypes.AUTHENTICATION_IDENTITY_CLEARED: {\n return {};\n }\n //TYPES UNIT_INFORMATION_FETCH_COMPLETED\n case types.UNIT_INFORMATION_FETCH_COMPLETED: {\n const { sensorsEntities, sensorsOrder } = action.payload;\n const newState = { ...state };\n sensorsOrder.forEach((sensorId) => {\n newState[sensorId] = {\n ...state[sensorId],\n ...sensorsEntities[sensorId]\n };\n });\n return newState;\n }\n //DEFAULT\n default: {\n return state;\n }\n }\n};\n\nconst order = (state = [], action) => {\n switch (action.type) {\n case authTypes.AUTHENTICATION_IDENTITY_CLEARED: {\n return [];\n }\n //CASE UNIT_INFORMATION_FETCH_COMPLETED\n case types.UNIT_INFORMATION_FETCH_COMPLETED: {\n const { sensorsOrder } = action.payload;\n return uniq([...state, ...sensorsOrder]);\n }\n //DEFAULT\n default: {\n return state;\n }\n }\n};\n\nconst sensors = combineReducers({\n byId,\n order\n});\n\nexport default sensors;\n\n//Own state\nexport const getOwnState = (state) => state.units.sensors;\n\n//Information\nexport const getSensor = (state, sensorId) => {\n const sensor = getOwnState(state).byId[sensorId];\n if (sensor) {\n return {\n ...sensor\n };\n } else return undefined;\n};\nexport const getSensorsList = (state) => getOwnState(state).order.map((id) => getSensor(state, id));\n","import { combineReducers } from 'redux';\nimport moment from 'moment';\nimport uniq from 'lodash/uniq';\nimport * as authTypes from '../../../../../redux/types/auth';\nimport * as authSelectors from '../../../../../redux/reducers/auth';\nimport * as deviceMetricsSelectors from '../deviceMetrics';\nimport * as deviceActionsSelectors from '../deviceActions';\nimport * as groupsSelectors from '../groups';\nimport * as reportsSelectors from '../reports';\nimport * as imagesSelectors from '../images';\nimport * as sensorsSelectors from '../sensors';\nimport * as types from '../../types';\nimport { appIntl } from 'utility/context/IntlGlobalProvider';\nimport { getUnitHeadingFormat } from '../../utils';\nimport { GetMainStateById, GetMainStateName } from 'views/screens/Units/utils';\nimport { UnitLiveStatus } from '../../types/UnitLiveStatusTypes';\nimport { formatHourMeter, numberWithCommas, roundWithEpsilon } from 'utility/Utils';\n\nconst fetchDate = (state = null, action) => {\n switch (action.type) {\n case authTypes.AUTHENTICATION_IDENTITY_CLEARED: {\n return null;\n }\n case types.UNITS_LIVE_STATUS_FETCH_COMPLETED: {\n const date = new Date();\n date.setMinutes(date.getMinutes() - 1);\n return date.toISOString();\n }\n default: {\n return state;\n }\n }\n};\n\nconst organizationId = (state = null, action) => {\n switch (action.type) {\n case authTypes.AUTHENTICATION_IDENTITY_CLEARED: {\n return null;\n }\n case types.UNITS_LIVE_STATUS_FETCH_COMPLETED: {\n const { organizationId } = action.payload;\n return organizationId;\n }\n default: {\n return state;\n }\n }\n};\n\nconst byId = (state = {}, action) => {\n switch (action.type) {\n case authTypes.AUTHENTICATION_IDENTITY_CLEARED: {\n return {};\n }\n //TYPES UNITS_LIVE_STATUS_FETCH_COMPLETED\n case types.UNITS_LIVE_STATUS_FETCH_COMPLETED: {\n const { entities, order } = action.payload;\n const newState = { ...state };\n order.forEach((unitId) => {\n newState[unitId] = {\n ...state[unitId],\n ...entities[unitId]\n };\n });\n return newState;\n }\n case types.UNIT_INFORMATION_FETCH_COMPLETED: {\n const {\n unitId,\n unitData,\n deviceMetricsOrder,\n deviceActionsOrder,\n groupsOrder,\n reportsOrder,\n imagesOrder,\n sensorsOrder\n } = action.payload;\n const newState = { ...state };\n newState[unitId] = {\n ...state[unitId],\n ...unitData,\n deviceMetricsOrder,\n deviceActionsOrder,\n groupsOrder,\n reportsOrder,\n imagesOrder,\n sensorsOrder\n };\n return newState;\n }\n case types.UNIT_POSITIONS_FETCH_COMPLETED: {\n const { unitId, distance, parkedPositions, polyline, positions } = action.payload;\n const newState = { ...state };\n newState[unitId] = {\n ...state[unitId],\n historicalPositions: {\n allPositions: [...(positions || []), ...(parkedPositions || [])],\n distance,\n parkedPositions,\n polyline,\n positions\n }\n };\n return newState;\n }\n case types.UNIT_ACKNOWLEDGE_COMPLETED: {\n const { unitId } = action.payload;\n const newState = { ...state };\n newState[unitId] = {\n ...state[unitId],\n eventId: 0,\n eventName: 'Normal',\n eventParam: null,\n eventTextColor: null,\n eventColor: 'BBFFAA'\n };\n return newState;\n }\n\n case types.UNIT_EDIT_COMPLETED: {\n const unit = action.payload;\n const oldUnit = state[unit.unitId];\n return {\n ...state,\n [unit.unitId]: {\n ...oldUnit,\n unitName: unit?.unitName ?? oldUnit?.unitName,\n themeId: unit?.themeId ?? oldUnit?.themeId\n }\n };\n }\n //DEFAULT\n default: {\n return state;\n }\n }\n};\n\nconst order = (state = [], action) => {\n switch (action.type) {\n case authTypes.AUTHENTICATION_IDENTITY_CLEARED: {\n return [];\n }\n //CASE UNITS_LIVE_STATUS_FETCH_COMPLETED\n case types.UNITS_LIVE_STATUS_FETCH_COMPLETED: {\n const { order } = action.payload;\n return uniq([...state, ...order]);\n }\n case types.UNIT_INFORMATION_FETCH_COMPLETED: {\n const { unitId } = action.payload;\n return uniq([...state, unitId]);\n }\n //DEFAULT\n default: {\n return state;\n }\n }\n};\n\n// STATES TO KNOW IF IT IS FETCHING\nconst isFetchingLiveStatusList = (state = false, action) => {\n switch (action.type) {\n case authTypes.AUTHENTICATION_IDENTITY_CLEARED: {\n return false;\n }\n case types.UNITS_LIVE_STATUS_FETCH_STARTED: {\n return true;\n }\n case types.UNITS_LIVE_STATUS_FETCH_COMPLETED:\n case types.UNITS_LIVE_STATUS_FETCH_FAILED: {\n return false;\n }\n default: {\n return state;\n }\n }\n};\n\nconst isFetchingInformation = (state = false, action) => {\n switch (action.type) {\n case authTypes.AUTHENTICATION_IDENTITY_CLEARED: {\n return false;\n }\n case types.UNIT_INFORMATION_FETCH_STARTED: {\n return true;\n }\n case types.UNIT_INFORMATION_FETCH_COMPLETED:\n case types.UNIT_INFORMATION_FETCH_FAILED: {\n return false;\n }\n default: {\n return state;\n }\n }\n};\n\nconst isFetchingPositions = (state = false, action) => {\n switch (action.type) {\n case authTypes.AUTHENTICATION_IDENTITY_CLEARED: {\n return false;\n }\n case types.UNIT_POSITIONS_FETCH_STARTED: {\n return true;\n }\n case types.UNIT_POSITIONS_FETCH_COMPLETED:\n case types.UNIT_POSITIONS_FETCH_FAILED: {\n return false;\n }\n default: {\n return state;\n }\n }\n};\n\nconst isAcknowledgeEvent = (state = false, action) => {\n switch (action.type) {\n case authTypes.AUTHENTICATION_IDENTITY_CLEARED: {\n return false;\n }\n case types.UNIT_ACKNOWLEDGE_STARTED: {\n return true;\n }\n case types.UNIT_ACKNOWLEDGE_COMPLETED:\n case types.UNIT_ACKNOWLEDGE_FAILED: {\n return false;\n }\n default: {\n return state;\n }\n }\n};\n\nconst isFetchedPosition = (state = {}, action) => {\n switch (action.type) {\n case authTypes.AUTHENTICATION_IDENTITY_CLEARED: {\n return {};\n }\n case types.UNIT_POSITIONS_FETCH_STARTED: {\n const { unitId } = action.payload;\n const newState = { ...state };\n return { [unitId]: newState[unitId] ?? false };\n }\n case types.UNIT_POSITIONS_FETCH_COMPLETED: {\n const { unitId } = action.payload;\n return { [unitId]: true };\n }\n case types.UNIT_POSITIONS_FETCH_FAILED:\n case types.UNIT_POSITIONS_RESET_IS_FETCHED: {\n return {};\n }\n default: {\n return state;\n }\n }\n};\n\nconst errorFetchingLiveStatusList = (state = null, action) => {\n switch (action.type) {\n case authTypes.AUTHENTICATION_IDENTITY_CLEARED: {\n return null;\n }\n case types.UNITS_LIVE_STATUS_FETCH_FAILED: {\n const { error } = action.payload;\n return error;\n }\n case types.UNITS_LIVE_STATUS_FETCH_STARTED:\n case types.UNITS_LIVE_STATUS_FETCH_COMPLETED: {\n return null;\n }\n default: {\n return state;\n }\n }\n};\n\nconst errorFetchingInformation = (state = null, action) => {\n switch (action.type) {\n case authTypes.AUTHENTICATION_IDENTITY_CLEARED: {\n return null;\n }\n case types.UNIT_INFORMATION_FETCH_FAILED: {\n const { error } = action.payload;\n return error;\n }\n case types.UNIT_INFORMATION_FETCH_STARTED:\n case types.UNIT_INFORMATION_FETCH_COMPLETED: {\n return null;\n }\n default: {\n return state;\n }\n }\n};\n\nconst isEditingInformation = (state = false, action) => {\n switch (action.type) {\n case authTypes.AUTHENTICATION_IDENTITY_CLEARED: {\n return false;\n }\n case types.UNITS_ACTIVE_STARTED:\n case types.UNITS_ASSIGN_DRIVER_STARTED:\n case types.UNIT_EDIT_STARTED: {\n return true;\n }\n case types.UNITS_ACTIVE_COMPLETED:\n case types.UNIT_EDIT_COMPLETED:\n case types.UNITS_ASSIGN_DRIVER_COMPLETED:\n case types.UNITS_ACTIVE_FAILED:\n case types.UNIT_EDIT_FAILED: {\n return false;\n }\n default: {\n return state;\n }\n }\n};\n\nconst errorEditingInformation = (state = null, action) => {\n switch (action.type) {\n case authTypes.AUTHENTICATION_IDENTITY_CLEARED: {\n return null;\n }\n case types.UNIT_EDIT_FAILED: {\n const { error } = action.payload;\n return error;\n }\n case types.UNIT_EDIT_STARTED:\n case types.UNIT_EDIT_COMPLETED: {\n return null;\n }\n default: {\n return state;\n }\n }\n};\n\nconst unitLiveStatus = combineReducers({\n fetchDate,\n organizationId,\n byId,\n order,\n isFetchingLiveStatusList,\n isFetchingInformation,\n isFetchingPositions,\n isAcknowledgeEvent,\n isFetchedPosition,\n errorFetchingLiveStatusList,\n errorFetchingInformation,\n errorEditingInformation\n});\n\nexport default unitLiveStatus;\n\n//Own state\nexport const getOwnState = (state) => state.units.unitLiveStatus;\n\n//Information\nexport const getFetchDate = (state, organizationId) =>\n getOwnState(state).organizationId === organizationId ? getOwnState(state).fetchDate : undefined;\nexport const getUnit = (state, unitId): UnitLiveStatus | null => {\n const intl = appIntl();\n const unit = getOwnState(state).byId[unitId];\n if (unit) {\n const {\n deviceMetricsOrder,\n deviceActionsOrder,\n groupsOrder,\n reportsOrder,\n imagesOrder,\n sensorsOrder,\n ...unitLiveStatus\n } = unit;\n const speedFormat =\n authSelectors\n .getParsers(state)\n .convertKilometersPerHourToAuthUserSpeedSystem(\n unitLiveStatus.speed < 0 ? 0 : unitLiveStatus.speed\n )\n .toFixed(2) +\n ' ' +\n authSelectors.getAuthSystems(state).speed;\n\n const odometerFormat =\n authSelectors\n .getParsers(state)\n .convertKilometersToAuthUserDistanceSystem(unitLiveStatus.odometer)\n .toFixed(2) +\n ' ' +\n authSelectors.getAuthSystems(state).distance;\n return {\n ...unitLiveStatus,\n speedLimit: authSelectors.getParsers(state).convertKilometersToAuthUserDistanceSystem(240),\n odometerFormat,\n hourMeterFormat: formatHourMeter(unitLiveStatus.hourMeter),\n mainStateId: unitLiveStatus.mainStateId || 0,\n mainState: GetMainStateById(unitLiveStatus.mainStateId),\n mainStateName: GetMainStateName(\n GetMainStateById(unitLiveStatus.mainStateId),\n intl.formatMessage({ id: GetMainStateById(unitLiveStatus.mainStateId).intl }),\n unitLiveStatus.mainStateDate,\n speedFormat,\n unitLiveStatus.downtimeReasonDescription,\n moment(unitLiveStatus.mainStateDate).fromNow()\n ),\n speed: unitLiveStatus.speed < 0 ? 0 : unitLiveStatus.speed,\n speedFormat,\n headingFormat: intl.formatMessage({\n id: getUnitHeadingFormat(unitLiveStatus.heading)\n }),\n historicalPositions: {\n allPositions: unitLiveStatus?.historicalPositions?.allPositions || [],\n distance: unitLiveStatus?.historicalPositions?.distance || 0,\n parkedPositions: unitLiveStatus?.historicalPositions?.parkedPositions || [],\n polyline: unitLiveStatus?.historicalPositions?.polyline || [],\n positions: unitLiveStatus?.historicalPositions?.positions || [],\n distanceFormat:\n authSelectors\n .getParsers(state)\n .convertKilometersToAuthUserDistanceSystem(\n unitLiveStatus?.historicalPositions?.distance || 0\n )\n .toFixed(2) +\n ' ' +\n authSelectors.getAuthSystems(state).distance\n },\n deviceMetrics: deviceMetricsOrder\n ? deviceMetricsOrder.map((id) => deviceMetricsSelectors.getDeviceMetric(state, id))\n : [],\n deviceActions: deviceActionsOrder\n ? deviceActionsOrder.map((id) => deviceActionsSelectors.getDeviceAction(state, id))\n : [],\n groups: groupsOrder ? groupsOrder.map((id) => groupsSelectors.getGroup(state, id)) : [],\n reports: reportsOrder ? reportsOrder.map((id) => reportsSelectors.getReport(state, id)) : [],\n images: imagesOrder ? imagesOrder.map((id) => imagesSelectors.getImage(state, id)) : [],\n sensors: sensorsOrder ? sensorsOrder.map((id) => sensorsSelectors.getSensor(state, id)) : []\n };\n } else return null;\n};\nexport const getUnitsList = (state): UnitLiveStatus[] =>\n getOwnState(state).order.map((id) => getUnit(state, id));\n\n//Status of sagas\nexport const isFetchingListUnitsLiveStatus = (state) => getOwnState(state).isFetchingLiveStatusList;\nexport const isFetchingUnitInformation = (state) => getOwnState(state).isFetchingInformation;\nexport const isFetchingUnitPositions = (state) => getOwnState(state).isFetchingPositions;\nexport const isAcknowledgeUnitEvent = (state) => getOwnState(state).isAcknowledgeEvent;\nexport const isFetchedUnitPosition = (state, unitId) =>\n getOwnState(state).isFetchedPosition[unitId] ?? false;\n\n//Errors\nexport const getFetchingListUnitsLiveStatusErrors = (state) =>\n getOwnState(state).errorFetchingLiveStatusList;\nexport const getFetchingUnitInformationErrors = (state) =>\n getOwnState(state).errorFetchingInformation;\n","import forEach from 'lodash/forEach';\nimport omit from 'lodash/omit';\nimport union from 'lodash/union';\nimport uniq from 'lodash/uniq';\nimport { combineReducers } from 'redux';\nimport { persistReducer } from 'redux-persist';\nimport autoMergeLevel2 from 'redux-persist/lib/stateReconciler/autoMergeLevel2';\nimport localforage from 'localforage';\nimport * as divisionSelectors from 'views/screens/Divisions/reducers';\nimport * as operatorSelectors from 'views/screens/Operators/reducers';\nimport * as organizationSelectors from 'views/screens/Organizations/reducers';\nimport * as subdivisionSelectors from 'views/screens/Subdivisions/reducers';\nimport * as authTypes from '../../../../redux/types/auth';\nimport * as types from '../types';\nimport unitLiveStatus, * as selectorsUnitLiveStatus from './unitLiveStatus';\nimport deviceMetrics from './deviceMetrics';\nimport deviceActions from './deviceActions';\nimport groups from './groups';\nimport reports from './reports';\nimport images from './images';\nimport sensors from './sensors';\nimport { DefaultFilters } from 'views/screens/Entities/views/FetchEntities';\nimport { areNotNullOrUndefined } from 'utility/Utils';\n\nconst byId = (state = {}, action) => {\n switch (action.type) {\n case authTypes.AUTHENTICATION_IDENTITY_CLEARED: {\n return {};\n }\n //TYPES COMPLETED FETCH, ADD AND EDIT\n case types.UNITS_FETCH_COMPLETED: {\n const { entities, order } = action.payload;\n const newState = {};\n order.forEach((unitId) => {\n newState[unitId] = {\n isSelected: false,\n isShownInMap: false,\n ...state[unitId],\n ...entities[unitId],\n isConfirmed: true\n };\n });\n return newState;\n }\n\n case types.UNITS_PARTIAL_FETCH_COMPLETED: {\n const { entities, order } = action.payload;\n const newState = { ...state };\n order.forEach((unitId) => {\n newState[unitId] = {\n isSelected: false,\n isShownInMap: false,\n ...state[unitId],\n ...entities[unitId],\n isConfirmed: true\n };\n });\n return newState;\n }\n\n case types.UNIT_ADD_COMPLETED: {\n const { oldId, unit } = action.payload;\n const newState = omit(state, oldId);\n newState[unit.unitId] = {\n isShownInMap: false,\n ...state[oldId],\n ...unit,\n isConfirmed: true\n };\n return newState;\n }\n\n case types.UNITS_ACTIVE_COMPLETED: {\n const units = action.payload;\n const newState = { ...state };\n units.forEach((unit) => {\n newState[unit.unitId] = {\n isShownInMap: false,\n isSelected: false,\n ...unit,\n isConfirmed: false\n };\n });\n return newState;\n }\n\n case types.UNIT_EDIT_COMPLETED: {\n const unit = action.payload;\n return {\n ...state,\n [unit.unitId]: {\n isShownInMap: false,\n ...omit(state[unit.unitId], ['oldUnit']),\n ...omit(unit, ['oldUnit']),\n isConfirmed: true\n }\n };\n }\n\n case types.UNITS_ASSIGN_DRIVER_COMPLETED: {\n const units = action.payload;\n const newState = { ...state };\n units.forEach((unit) => {\n newState[unit.unitId] = {\n ...state[unit.unitId],\n driverId: unit.driverId\n };\n });\n return newState;\n }\n\n case types.UNIT_START_DOWNTIME_COMPLETED: {\n const { unitId, reasonId, reasonDescription } = action.payload;\n return {\n ...state,\n [unitId]: {\n ...state[unitId],\n downtimeReasonId: reasonId,\n downtimeReasonDescription: reasonDescription\n }\n };\n }\n\n case types.UNIT_END_DOWNTIME_COMPLETED: {\n const { unitId, mainStateId } = action.payload;\n return {\n ...state,\n [unitId]: {\n ...state[unitId],\n downtimeReasonId: null,\n downtimeReasonDescription: null\n }\n };\n }\n\n //TYPES STARTED ADD AND EDIT\n case types.UNIT_ADD_TO_STATE: {\n const unit = action.payload;\n const newState = { ...state };\n newState[unit.unitId] = {\n isShownInMap: false,\n isSelected: false,\n ...newState[unit.unitId],\n ...unit,\n isConfirmed: true\n };\n return newState;\n }\n case types.UNIT_ADD_STARTED: {\n const unit = action.payload;\n const newState = { ...state };\n newState[unit.unitId] = {\n isShownInMap: false,\n isSelected: false,\n ...unit,\n isConfirmed: false\n };\n return newState;\n }\n case types.UNIT_EDIT_STARTED: {\n const unit = action.payload;\n return {\n ...state,\n [unit.unitId]: {\n isShownInMap: false,\n ...state[unit.unitId],\n oldUnit: state[unit.unitId],\n ...unit,\n isConfirmed: false\n }\n };\n }\n\n //TYPES FAILED ADD AND EDIT\n case types.UNIT_ADD_FAILED: {\n const { oldId } = action.payload;\n if (state[oldId]) {\n return omit(state, oldId);\n }\n return state;\n }\n case types.UNIT_EDIT_FAILED: {\n const { oldUnit } = action.payload;\n return {\n ...state,\n [oldUnit.unitId]: {\n isShownInMap: false,\n ...omit(state[oldUnit.unitId], ['oldUnit']),\n ...oldUnit,\n isConfirmed: true\n }\n };\n }\n\n // EDIT DEVICE\n case types.UNIT_UPDATE_DEVICE_STARTED: {\n const { unitId } = action.payload;\n\n return {\n ...state,\n [unitId]: {\n ...state[unitId],\n oldUnit: state[unitId],\n isConfirmed: false\n }\n };\n }\n\n case types.UNIT_UPDATE_DEVICE_COMPLETED: {\n const { unitId, deviceId, deviceModelName, deviceIdentifier, brandName } = action.payload;\n\n return {\n ...state,\n [unitId]: {\n ...state[unitId],\n deviceModelName: deviceModelName,\n deviceIdentifier: deviceIdentifier,\n brandName: brandName,\n deviceId,\n isConfirmed: true\n }\n };\n }\n\n case types.UNIT_UPDATE_DEVICE_FAILED: {\n const { oldUnit } = action.payload;\n return {\n ...state,\n [oldUnit.unitId]: {\n isShownInMap: false,\n ...omit(state[oldUnit.unitId], ['oldUnit']),\n ...oldUnit,\n isConfirmed: true\n }\n };\n }\n\n // update sim\n case types.UNIT_UPDATE_SIM_STARTED: {\n const { unitId, simId } = action.payload;\n\n const newUnit: types.ReduxUnit = {\n ...state[unitId],\n oldUnit: state[unitId],\n simCardId: simId,\n isConfirmed: false\n };\n\n return {\n ...state,\n [unitId]: newUnit\n };\n }\n\n case types.UNIT_UPDATE_SIM_COMPLETED: {\n const changes = action.payload?.changes;\n\n const unitId = changes?.unitId ?? null;\n const unitPublicId = changes?.unitPublicId ?? null;\n const simCardId = changes?.simCardId;\n const imsi = changes?.imsi ?? null;\n const cellularNumber = changes?.cellularNumber ?? null;\n const mobileOperatorId = changes?.mobileOperatorId ?? null;\n const mobileOperatorName = changes?.mobileOperatorName ?? null;\n\n if (unitId === null) {\n return {\n ...state\n };\n }\n\n return {\n ...state,\n [unitId]: {\n ...state[unitId],\n unitPublicId,\n simCardId,\n imsi,\n cellularNumber,\n mobileOperatorId,\n mobileOperatorName,\n isConfirmed: true\n }\n };\n }\n\n case types.UNIT_UPDATE_SIM_FAILED: {\n const { oldUnit } = action.payload;\n return {\n ...state,\n [oldUnit.unitId]: {\n isShownInMap: false,\n ...omit(state[oldUnit.unitId], ['oldUnit']),\n ...oldUnit,\n isConfirmed: true\n }\n };\n }\n\n //TYPES REMOVE COMPLETED\n case types.UNIT_REMOVE_COMPLETED: {\n const unitBody = action.payload;\n const newState = { ...state };\n unitBody?.units?.forEach((unitId) => {\n newState[unitId] = {\n ...state[unitId],\n unitStatus: 0,\n unitStatusName: 'Desactivado'\n };\n });\n return newState;\n }\n\n //TYPES SHOW AND HIDE UNITS IN MAP\n case types.UNIT_SHOW_IN_MAP: {\n const unitId = action.payload;\n const newState = {\n ...state,\n [unitId]: {\n ...state[unitId],\n isShownInMap: true\n }\n };\n return newState;\n }\n\n case types.UNIT_HIDE_IN_MAP: {\n const unitId = action.payload;\n return {\n ...state,\n [unitId]: {\n ...state[unitId],\n isShownInMap: false\n }\n };\n }\n\n case types.UNITS_ALL_SHOW_IN_MAP: {\n const unitIds = action.payload;\n const newState = { ...state };\n if (unitIds.length == 0) {\n forEach(state, (unit: any, unitId) => {\n newState[unitId] = {\n ...unit,\n isShownInMap: true\n };\n });\n } else {\n unitIds.forEach((unitId) => {\n newState[unitId] = {\n ...state[unitId],\n isShownInMap: true\n };\n });\n }\n\n return newState;\n }\n\n case types.UNITS_ALL_HIDE_IN_MAP: {\n const unitIds = action.payload;\n const newState = { ...state };\n if (unitIds.length == 0) {\n forEach(state, (unit: any, unitId) => {\n newState[unitId] = {\n ...unit,\n isShownInMap: false\n };\n });\n } else {\n unitIds.forEach((unitId) => {\n newState[unitId] = {\n ...state[unitId],\n isShownInMap: false\n };\n });\n }\n\n return newState;\n }\n\n case types.SET_DATE_RANGE: {\n const { unitId, dateRange } = action.payload;\n const newState = {\n ...state,\n [unitId]: {\n ...state[unitId],\n dateRange: dateRange\n }\n };\n return newState;\n }\n\n //TYPES SELECTED AND DESELECTED\n case types.UNIT_SELECTED: {\n const unitId = action.payload;\n const newState = {\n ...state,\n [unitId]: {\n ...state[unitId],\n isSelected: true\n }\n };\n return newState;\n }\n\n case types.UNIT_DESELECTED: {\n const unitId = action.payload;\n return {\n ...state,\n [unitId]: {\n ...state[unitId],\n isSelected: false\n }\n };\n }\n\n case types.UNITS_ALL_SELECTED: {\n const unitIds = action.payload;\n const newState = { ...state };\n if (unitIds.length == 0) {\n forEach(state, (unit: any, unitId) => {\n newState[unitId] = {\n ...unit,\n isSelected: true\n };\n });\n } else {\n unitIds.forEach((unitId) => {\n newState[unitId] = {\n ...state[unitId],\n isSelected: true\n };\n });\n }\n\n return newState;\n }\n\n case types.UNITS_ALL_DESELECTED: {\n const unitIds = action.payload;\n const newState = { ...state };\n if (unitIds.length == 0) {\n forEach(state, (unit: any, unitId) => {\n newState[unitId] = {\n ...unit,\n isSelected: false\n };\n });\n } else {\n unitIds.forEach((unitId) => {\n newState[unitId] = {\n ...state[unitId],\n isSelected: false\n };\n });\n }\n\n return newState;\n }\n\n //DEFAULT\n default: {\n return state;\n }\n }\n};\n\nconst order = (state = [], action) => {\n switch (action.type) {\n case authTypes.AUTHENTICATION_IDENTITY_CLEARED: {\n return [];\n }\n //CASE COMPLETED FETCH, ADD AND REMOVE\n case types.UNITS_FETCH_COMPLETED: {\n const { order } = action.payload;\n return union(order);\n }\n\n case types.UNITS_PARTIAL_FETCH_COMPLETED: {\n const { order } = action.payload;\n return uniq([...state, ...order]);\n }\n\n case types.UNIT_ADD_COMPLETED: {\n const { oldId, unit } = action.payload;\n return state\n .map((unitId) => (unitId === oldId ? unit.unitId : unitId))\n .filter((unitId) => unitId !== null);\n }\n\n case types.UNITS_ACTIVE_COMPLETED: {\n const units = action.payload;\n return [...state, ...units.map((unit) => unit.unitId)];\n }\n\n case types.UNIT_REMOVE_COMPLETED: {\n const unitBody = action.payload;\n //return state.filter((unitIdState) => unitBody.units.map((unitId) => unitIdState !== unitId));\n return state;\n }\n\n case types.UNIT_ADD_TO_STATE: {\n const unit = action.payload;\n return [...state.filter((unitId) => unitId !== unit.unitId), unit.unitId];\n }\n\n //CASE ADD STARTED\n case types.UNIT_ADD_STARTED: {\n const unit = action.payload;\n return [...state, unit.unitId];\n }\n\n //CASE ADD FAILED\n case types.UNIT_ADD_FAILED: {\n const { oldId } = action.payload;\n return state.filter((unitIdState) => unitIdState !== oldId);\n }\n\n //DEFAULT\n default: {\n return state;\n }\n }\n};\n\n// STATES TO KNOW IF IT IS FETCHING, ADDING OR EDITING\nconst isFetchingList = (state = false, action) => {\n switch (action.type) {\n case authTypes.AUTHENTICATION_IDENTITY_CLEARED: {\n return false;\n }\n case types.UNITS_FETCH_STARTED: {\n return true;\n }\n case types.UNITS_FETCH_COMPLETED:\n case types.UNITS_FETCH_FAILED: {\n return false;\n }\n default: {\n return state;\n }\n }\n};\n\nconst isPartialFetchingList = (state = false, action) => {\n switch (action.type) {\n case authTypes.AUTHENTICATION_IDENTITY_CLEARED: {\n return false;\n }\n case types.UNITS_PARTIAL_FETCH_STARTED: {\n return true;\n }\n case types.UNITS_PARTIAL_FETCH_COMPLETED:\n case types.UNITS_PARTIAL_FETCH_FAILED: {\n return false;\n }\n default: {\n return state;\n }\n }\n};\n\nconst hasAlreadyFetched = (state = false, action) => {\n switch (action.type) {\n case authTypes.AUTHENTICATION_IDENTITY_CLEARED: {\n return false;\n }\n case types.UNITS_FETCH_COMPLETED: {\n return true;\n }\n default: {\n return state;\n }\n }\n};\n\nconst isAdding = (state = false, action) => {\n switch (action.type) {\n case authTypes.AUTHENTICATION_IDENTITY_CLEARED: {\n return false;\n }\n case types.UNIT_ADD_STARTED: {\n return true;\n }\n case types.UNIT_ADD_COMPLETED:\n case types.UNIT_ADD_FAILED: {\n return false;\n }\n default: {\n return state;\n }\n }\n};\n\nconst isUpdatingDevice = (state = false, action) => {\n switch (action.type) {\n case authTypes.AUTHENTICATION_IDENTITY_CLEARED: {\n return false;\n }\n case types.UNIT_UPDATE_DEVICE_STARTED: {\n return true;\n }\n case types.UNIT_UPDATE_DEVICE_COMPLETED:\n case types.UNIT_UPDATE_DEVICE_FAILED: {\n return false;\n }\n default: {\n return state;\n }\n }\n};\n\nconst isEditing = (state = false, action) => {\n switch (action.type) {\n case authTypes.AUTHENTICATION_IDENTITY_CLEARED: {\n return false;\n }\n case types.UNITS_ACTIVE_STARTED:\n case types.UNITS_ASSIGN_DRIVER_STARTED:\n case types.UNIT_EDIT_STARTED: {\n return true;\n }\n case types.UNITS_ACTIVE_COMPLETED:\n case types.UNIT_EDIT_COMPLETED:\n case types.UNITS_ASSIGN_DRIVER_COMPLETED:\n case types.UNITS_ACTIVE_FAILED:\n case types.UNIT_EDIT_FAILED: {\n return false;\n }\n default: {\n return state;\n }\n }\n};\n\nconst isEditingDowntime = (state = false, action) => {\n switch (action.type) {\n case authTypes.AUTHENTICATION_IDENTITY_CLEARED: {\n return false;\n }\n case types.UNIT_START_DOWNTIME_STARTED:\n case types.UNIT_END_DOWNTIME_STARTED: {\n return true;\n }\n case types.UNIT_START_DOWNTIME_COMPLETED:\n case types.UNIT_START_DOWNTIME_FAILED:\n case types.UNIT_END_DOWNTIME_COMPLETED:\n case types.UNIT_END_DOWNTIME_FAILED: {\n return false;\n }\n default: {\n return state;\n }\n }\n};\n\nconst isRemoving = (state = false, action) => {\n switch (action.type) {\n case authTypes.AUTHENTICATION_IDENTITY_CLEARED: {\n return false;\n }\n case types.UNIT_REMOVE_STARTED: {\n return true;\n }\n case types.UNIT_REMOVE_COMPLETED:\n case types.UNIT_REMOVE_FAILED: {\n return false;\n }\n default: {\n return state;\n }\n }\n};\n\nconst isCreatingSharedLink = (state = false, action) => {\n switch (action.type) {\n case types.UNIT_CREATE_SHARE_LINK_STARTED: {\n return true;\n }\n case types.UNIT_CREATE_SHARE_LINK_COMPLETED:\n case types.UNIT_CREATE_SHARE_LINK_FAILED: {\n return false;\n }\n default: {\n return state;\n }\n }\n};\n\nconst sharedLink = (state = '', action) => {\n switch (action.type) {\n case types.UNIT_CLEAR_SHARE_LINK:\n case types.UNIT_CREATE_SHARE_LINK_FAILED:\n case types.UNIT_CREATE_SHARE_LINK_STARTED: {\n return '';\n }\n case types.UNIT_CREATE_SHARE_LINK_COMPLETED: {\n return action.payload;\n }\n default: {\n return state;\n }\n }\n};\n\nconst oldMainStateIds = (state = [], action) => {\n switch (action.type) {\n case types.UNIT_END_DOWNTIME_FAILED:\n case types.UNIT_END_DOWNTIME_STARTED: {\n return [];\n }\n case types.UNIT_END_DOWNTIME_COMPLETED: {\n return [\n {\n unitId: action.payload?.unitId,\n mainStateId: action.payload?.mainStateId,\n mainStateDate: action.payload?.mainStateDate\n }\n ];\n }\n default: {\n return state;\n }\n }\n};\n\nconst errorFetchingList = (state = null, action) => {\n switch (action.type) {\n case authTypes.AUTHENTICATION_IDENTITY_CLEARED: {\n return null;\n }\n case types.UNITS_FETCH_FAILED: {\n const { error } = action.payload;\n return error;\n }\n case types.UNITS_FETCH_STARTED:\n case types.UNITS_FETCH_COMPLETED: {\n return null;\n }\n default: {\n return state;\n }\n }\n};\n\nconst errorPartialFetchingList = (state = null, action) => {\n switch (action.type) {\n case authTypes.AUTHENTICATION_IDENTITY_CLEARED: {\n return null;\n }\n case types.UNITS_PARTIAL_FETCH_FAILED: {\n const { error } = action.payload;\n return error;\n }\n case types.UNITS_PARTIAL_FETCH_STARTED:\n case types.UNITS_PARTIAL_FETCH_COMPLETED: {\n return null;\n }\n default: {\n return state;\n }\n }\n};\n\nconst errorAdding = (state = null, action) => {\n switch (action.type) {\n case authTypes.AUTHENTICATION_IDENTITY_CLEARED: {\n return null;\n }\n case types.UNIT_ADD_FAILED: {\n const { error } = action.payload;\n return error;\n }\n case types.UNIT_ADD_STARTED:\n case types.UNIT_ADD_COMPLETED: {\n return null;\n }\n default: {\n return state;\n }\n }\n};\n\nconst errorUpdatingDevice = (state = null, action) => {\n switch (action.type) {\n case authTypes.AUTHENTICATION_IDENTITY_CLEARED: {\n return null;\n }\n case types.UNIT_UPDATE_DEVICE_FAILED: {\n const { error } = action.payload;\n return error;\n }\n case types.UNIT_UPDATE_DEVICE_STARTED:\n case types.UNIT_UPDATE_DEVICE_COMPLETED: {\n return null;\n }\n default: {\n return state;\n }\n }\n};\n\nconst errorEditing = (state = null, action) => {\n switch (action.type) {\n case authTypes.AUTHENTICATION_IDENTITY_CLEARED: {\n return null;\n }\n case types.UNIT_EDIT_FAILED: {\n const { error } = action.payload;\n return error;\n }\n case types.UNIT_EDIT_STARTED:\n case types.UNIT_EDIT_COMPLETED: {\n return null;\n }\n default: {\n return state;\n }\n }\n};\n\nconst errorRemoving = (state = null, action) => {\n switch (action.type) {\n case authTypes.AUTHENTICATION_IDENTITY_CLEARED: {\n return null;\n }\n case types.UNIT_REMOVE_FAILED: {\n const { error } = action.payload;\n return error;\n }\n case types.UNIT_REMOVE_STARTED:\n case types.UNIT_REMOVE_COMPLETED: {\n return null;\n }\n default: {\n return state;\n }\n }\n};\n\nconst units: any = combineReducers({\n byId,\n order,\n unitLiveStatus,\n deviceMetrics,\n deviceActions,\n groups,\n reports,\n images,\n sensors,\n isPartialFetchingList,\n isFetchingList,\n isAdding,\n isEditing,\n isEditingDowntime,\n isRemoving,\n isCreatingSharedLink,\n sharedLink,\n oldMainStateIds,\n errorPartialFetchingList,\n errorFetchingList,\n errorAdding,\n errorEditing,\n errorRemoving,\n hasAlreadyFetched,\n errorUpdatingDevice,\n isUpdatingDevice\n});\n\nconst unitsPersistedConfig = {\n key: 'units',\n storage: localforage,\n stateReconciler: autoMergeLevel2,\n blacklist: [\n 'deviceMetrics',\n 'deviceActions',\n 'groups',\n 'reports',\n 'images',\n 'sensors',\n 'isPartialFetchingList',\n 'isFetchingList',\n 'isAdding',\n 'isEditing',\n 'isRemoving',\n 'isCreatingSharedLink',\n 'sharedLink',\n 'errorPartialFetchingList',\n 'errorFetchingList',\n 'errorAdding',\n 'errorEditing',\n 'errorRemoving',\n 'hasAlreadyFetched'\n ],\n whitelist: ['byId', 'order', 'unitLiveStatus']\n // blackList: [],\n};\nexport default persistReducer(unitsPersistedConfig, units);\n\n//Own state\nexport const getOwnState = (state) => state.units;\n\nexport const isCreatingSharedLinkUnit = (state) => getOwnState(state).isCreatingSharedLink;\n\nexport const sharedLinkUnit = (state) => getOwnState(state).sharedLink;\n\nexport const oldUnitMainStateIds = (state) => getOwnState(state).oldMainStateIds;\n\n//Information\nexport const getUnit = (state, unitId): types.ReduxUnit | undefined => {\n const unit = getOwnState(state).byId[unitId];\n if (unit) {\n const operator = unit.operatorId\n ? operatorSelectors.getOperator(state, unit.operatorId)\n : undefined;\n const organization = unit.organizationId\n ? organizationSelectors.getOrganization(state, unit.organizationId)\n : undefined;\n const division = unit.divisionId\n ? divisionSelectors.getDivision(state, unit.divisionId)\n : undefined;\n const subdivision = unit.subdivisionId\n ? subdivisionSelectors.getSubdivision(state, unit.subdivisionId)\n : undefined;\n const unitLiveStatus = unit.unitId ? getUnitLiveStatus(state, unit.unitId) : {};\n return {\n ...unit,\n ...unitLiveStatus,\n operatorName: operator ? operator.operatorName : '',\n organizationName: organization ? organization.organizationName : '',\n divisionName: division ? division.divisionName : '',\n subdivisionName: subdivision ? subdivision.subdivisionName : ''\n };\n } else return undefined;\n};\n\nexport const getUnitsList = (state): types.ReduxUnit[] =>\n getOwnState(state).order.map((id) => getUnit(state, id));\nexport const getUnitsSpecificList = (state, list) => list.map((id) => getUnit(state, id));\nexport const getActiveUnitsList = (state) =>\n getOwnState(state)\n .order.map((id) => getUnit(state, id))\n .filter((unit) => unit.unitStatus > 0);\nexport const getActiveUnitsListByMembership = (state, membership) => {\n return getUnitsList(state).filter(\n (unit) =>\n membership &&\n (!membership.operatorId || membership.operatorId === unit.operatorId) &&\n (!membership.organizationId || membership.organizationId === unit.organizationId) &&\n (!membership.divisionId || membership.divisionId === unit.divisionId) &&\n (!membership.subdivisionId || membership.subdivisionId === unit.subdivisionId) &&\n unit.unitStatus > 0\n );\n};\nexport const getActiveUnitsListByPartialMembership = (state, membership: DefaultFilters) => {\n if (Object.values(membership).length < 0 || areNotNullOrUndefined(...Object.values(membership))) {\n return [];\n }\n\n const useOperator = !!membership.operatorId;\n const useOrganization = !!membership?.organizationId;\n const useDivision = !!membership.divisionId;\n const useSubdivision = !!membership.subdivisionId;\n\n const filterUnit = (unit: types.ReduxUnit) => {\n if (useOperator) {\n const validOrganization = unit.operatorId === membership.operatorId;\n if (!validOrganization) return false;\n }\n\n if (useOrganization) {\n const validOrganization = unit.organizationId === membership.organizationId;\n if (!validOrganization) return false;\n }\n\n if (useDivision) {\n const validDivision = unit.divisionId === membership.divisionId;\n if (!validDivision) return false;\n }\n\n if (useSubdivision) {\n const validSubdivision = unit.subdivisionId === membership.subdivisionId;\n if (!validSubdivision) return false;\n }\n\n const isActive = unit.unitStatus > 0;\n\n return isActive;\n };\n\n return getUnitsList(state).filter(filterUnit);\n};\nexport const getSelectedUnits = (state) => {\n const selectedUnits = getUnitsList(state).filter((unit) => unit.isSelected);\n //Si no se selecciona ninguno devuelve null\n if (selectedUnits.length === 0) return null;\n //Si se selecciona mĆ”s de cero se devuelve el arreglo de los seleccionados\n if (selectedUnits.length > 0) return selectedUnits;\n};\nexport const getUnitByPrivateCode = (state: any, privateCode: string) => {\n const unit = getUnitsList(state).find((unit) => unit?.privateCode === privateCode);\n if (unit) {\n const operator = unit.operatorId\n ? operatorSelectors.getOperator(state, unit.operatorId)\n : undefined;\n const organization = unit.organizationId\n ? organizationSelectors.getOrganization(state, unit.organizationId)\n : undefined;\n const division = unit.divisionId\n ? divisionSelectors.getDivision(state, unit.divisionId)\n : undefined;\n const subdivision = unit.subdivisionId\n ? subdivisionSelectors.getSubdivision(state, unit.subdivisionId)\n : undefined;\n const unitLiveStatus = unit.unitId ? getUnitLiveStatus(state, unit.unitId) : {};\n return {\n ...unit,\n ...unitLiveStatus,\n operatorName: operator ? operator.operatorName : '',\n organizationName: organization ? organization.organizationName : '',\n divisionName: division ? division.divisionName : '',\n subdivisionName: subdivision ? subdivision.subdivisionName : ''\n };\n } else return undefined;\n};\n\nexport const getUnitByIdOrPrivateCode = (state: any, unitId: number, privateCode: string) => {\n if (unitId !== null && unitId !== undefined) {\n const unit = getUnit(state, unitId);\n if (unit) return { ...unit, privateCode: unit?.privateCode ?? '' };\n }\n\n if (\n privateCode !== null &&\n privateCode !== undefined &&\n privateCode !== '' &&\n !/^\\s*$/.test(privateCode)\n ) {\n const unit = getUnitByPrivateCode(state, privateCode);\n if (unit) return { ...unit };\n }\n};\n\nexport const getSelectedUnit = (state) => {\n const selectedUnits = getUnitsList(state).filter((unit) => unit.isSelected);\n //Si se selecciona solo uno devuelve solo el seleccionado\n if (selectedUnits.length === 1) return selectedUnits[0];\n //De lo contrario se devuelve null\n else return null;\n};\n\n//Status of sagas\nexport const isPartialFetchingListUnits = (state) => getOwnState(state).isPartialFetchingList;\nexport const isFetchingListUnits = (state) => getOwnState(state).isFetchingList;\nexport const haveUnitsBeenFetched = (state) => getOwnState(state).hasAlreadyFetched;\nexport const isAddingUnit = (state) => getOwnState(state).isAdding;\nexport const isEditingUnit = (state) => getOwnState(state).isEditing;\nexport const isEditingUnitDowntime = (state) => getOwnState(state).isEditingDowntime;\nexport const isRemovingUnit = (state) => getOwnState(state).isRemoving;\n\n//Errors\nexport const getPartialFetchingListUnitsErrors = (state) =>\n getOwnState(state).errorPartialFetchingList;\nexport const getFetchingListUnitsErrors = (state) => getOwnState(state).errorFetchingList;\nexport const getAddingUnitErrors = (state) => getOwnState(state).errorAdding;\nexport const getEditingUnitErrors = (state) => getOwnState(state).errorEditing;\nexport const getRemovingUnitErrors = (state) => getOwnState(state).errorRemoving;\n\n/* -------------------------------------------------------------------------- */\n/* UNIT LIVE STATUS */\n/* -------------------------------------------------------------------------- */\n//Information\nexport const getUnitLiveFetchDate = (state, organizationId) =>\n selectorsUnitLiveStatus.getFetchDate(state, organizationId);\nexport const getUnitLiveStatus = (state, unitId) => selectorsUnitLiveStatus.getUnit(state, unitId);\nexport const getUnitsLiveStatusList = (state) => selectorsUnitLiveStatus.getUnitsList(state);\n\n//Status of sagas\nexport const isFetchingListUnitsLiveStatus = (state) =>\n selectorsUnitLiveStatus.isFetchingListUnitsLiveStatus(state);\nexport const isFetchingUnitInformation = (state) =>\n selectorsUnitLiveStatus.isFetchingUnitInformation(state);\nexport const isFetchingUnitPositions = (state) =>\n selectorsUnitLiveStatus.isFetchingUnitPositions(state);\nexport const isAcknowledgeUnitEvent = (state) =>\n selectorsUnitLiveStatus.isAcknowledgeUnitEvent(state);\nexport const isFetchedUnitPosition = (state, unitId) =>\n selectorsUnitLiveStatus.isFetchedUnitPosition(state, unitId);\n\n//Errors\nexport const getFetchingListUnitsLiveStatusErrors = (state) =>\n selectorsUnitLiveStatus.getFetchingListUnitsLiveStatusErrors(state);\nexport const getFetchingUnitInformationErrors = (state) =>\n selectorsUnitLiveStatus.getFetchingUnitInformationErrors(state);\n","const permissions = {\n //permisos catalogos\n sparepartsCatalog: 'MV006',\n workshopCatalog: 'MV005',\n categoriesCatalog: 'MV024',\n providersCatalog: 'MV020',\n\n //permisos add\n addSpareparts: 'MV012',\n addWorkshop: 'MV015',\n addCategories: 'MV025',\n addProviders: 'MV021',\n\n //permisos edit\n editSpareparts: 'MV013',\n editWorkshop: 'MV016',\n editCategories: 'MV026',\n editProviders: 'MV022',\n\n //permisos remove\n removeSpareparts: 'MV014',\n removeWorkshop: 'MV017',\n removeCategories: 'MV027',\n removeProviders: 'MV023',\n\n //reportes\n generalReport: 'MV003',\n byCategoryReport: 'MV006',\n byUnitReport: 'MV006',\n byWorkShopReport: 'MV006',\n\n //tickets\n importTicket: 'MV002',\n addTickets: 'MV032',\n\n //maintenanceLines\n maintenanceLines: 'MV028',\n maintenanceLineAdd: 'MV029',\n maintenanceLineEdit: 'MV030',\n maintenanceLineRemove: 'MV031',\n\n //preventiveNotices\n preventiveNotices: 'MV007',\n addPreventiveNotices: 'MV008',\n editPreventiveNotices: 'MV009',\n removePreventiveNotices: 'MV011',\n reschedulePreventiveNotice: 'MV010',\n totalNotices: 'MV006',\n expiredNotices: 'MV006',\n activeNotices: 'MV006'\n};\n\nexport default permissions;\n","export const COUNTRIES_FETCH_STARTED = 'COUNTRIES_FETCH_STARTED';\nexport const COUNTRIES_FETCH_COMPLETED = 'COUNTRIES_FETCH_COMPLETED';\nexport const COUNTRIES_FETCH_FAILED = 'COUNTRIES_FETCH_FAILED';\n\nexport const COUNTRIES_PARTIAL_FETCH_STARTED = 'COUNTRIES_PARTIAL_FETCH_STARTED';\nexport const COUNTRIES_PARTIAL_FETCH_COMPLETED = 'COUNTRIES_PARTIAL_FETCH_COMPLETED';\nexport const COUNTRIES_PARTIAL_FETCH_FAILED = 'COUNTRIES_PARTIAL_FETCH_FAILED';\n\nexport const COUNTRY_FETCH_STARTED = 'COUNTRY_FETCH_STARTED';\nexport const COUNTRY_FETCH_COMPLETED = 'COUNTRY_FETCH_COMPLETED';\nexport const COUNTRY_FETCH_FAILED = 'COUNTRY_FETCH_FAILED';\n\nexport const COUNTRY_SELECTED = 'COUNTRY_SELECTED';\nexport const COUNTRIES_ALL_SELECTED = 'COUNTRIES_ALL_SELECTED';\nexport const COUNTRY_DESELECTED = 'COUNTRY_DESELECTED';\nexport const COUNTRIES_ALL_DESELECTED = 'COUNTRIES_ALL_DESELECTED';\n","import * as types from '../../types/routesExecutions';\n\nexport const startFetchingRoutesExecutions = (filters = {}) => ({\n type: types.ROUTES_EXECUTIONS_FETCH_STARTED,\n payload: filters\n});\nexport const completeFetchingRoutesExecutions = (entities, order, indicators) => ({\n type: types.ROUTES_EXECUTIONS_FETCH_COMPLETED,\n payload: {\n entities,\n order,\n indicators\n }\n});\nexport const failFetchingRoutesExecutions = (\n error = { errorMessage: 'Error', errorNumber: 404 }\n) => ({\n type: types.ROUTES_EXECUTIONS_FETCH_FAILED,\n payload: {\n error //error:{errorMessage:'Error', errorNumber:400}\n }\n});\n\nexport const startCancelRoutesExecutions = (routes: any[]) => ({\n type: types.ROUTES_EXECUTION_CANCEL_STARTED,\n payload: { routes }\n});\nexport const completeCancelRoutesExecutions = (routes: any[]) => ({\n type: types.ROUTES_EXECUTION_CANCEL_COMPLETED,\n payload: { routes }\n});\nexport const failCancelRoutesExecutions = (\n error = { errorMessage: 'Error', errorNumber: 404 }\n) => ({\n type: types.ROUTES_EXECUTION_CANCEL_FAILED,\n payload: {\n error //error:{errorMessage:'Error', errorNumber:400}\n }\n});\n\nexport const startEditRouteExecution = (routeExecution) => ({\n type: types.ROUTE_EXECUTION_EDIT_STARTED,\n payload: routeExecution\n});\nexport const completeEditRouteExecution = (routeExecution) => ({\n type: types.ROUTE_EXECUTION_EDIT_COMPLETED,\n payload: routeExecution\n});\nexport const failEditRouteExecution = (error = { errorMessage: 'Error', errorNumber: 404 }) => ({\n type: types.ROUTE_EXECUTION_EDIT_FAILED,\n payload: {\n error //error:{errorMessage:'Error', errorNumber:400}\n }\n});\n\nexport const startFinalizeRoutesExecutions = (routes: any[]) => ({\n type: types.ROUTES_EXECUTION_FINALIZE_STARTED,\n payload: { routes }\n});\nexport const completeFinalizeRoutesExecutions = (routes: any[]) => ({\n type: types.ROUTES_EXECUTION_FINALIZE_COMPLETED,\n payload: { routes }\n});\nexport const failFinalizeRoutesExecutions = (\n error = { errorMessage: 'Error', errorNumber: 404 }\n) => ({\n type: types.ROUTES_EXECUTION_FINALIZE_FAILED,\n payload: {\n error //error:{errorMessage:'Error', errorNumber:400}\n }\n});\n\nexport const startCompleteRoutesExecutions = (routes: any[]) => ({\n type: types.ROUTES_EXECUTION_COMPLETE_STARTED,\n payload: { routes }\n});\nexport const completeCompleteRoutesExecutions = (routes: any[]) => ({\n type: types.ROUTES_EXECUTION_COMPLETE_COMPLETED,\n payload: { routes }\n});\nexport const failCompleteRoutesExecutions = (\n error = { errorMessage: 'Error', errorNumber: 404 }\n) => ({\n type: types.ROUTES_EXECUTION_COMPLETE_FAILED,\n payload: {\n error //error:{errorMessage:'Error', errorNumber:400}\n }\n});\n\nexport const startRemoveRoutesExecutions = (routes: any[]) => ({\n type: types.ROUTES_EXECUTION_REMOVE_STARTED,\n payload: { routes }\n});\nexport const completeRemoveRoutesExecutions = (routes: any[]) => ({\n type: types.ROUTES_EXECUTION_REMOVE_COMPLETED,\n payload: { routes }\n});\nexport const failRemoveRoutesExecutions = (\n error = { errorMessage: 'Error', errorNumber: 404 }\n) => ({\n type: types.ROUTES_EXECUTION_REMOVE_FAILED,\n payload: {\n error //error:{errorMessage:'Error', errorNumber:400}\n }\n});\n\nexport const startPauseRoutesExecutions = (routes: any[]) => ({\n type: types.ROUTES_EXECUTION_PAUSE_STARTED,\n payload: { routes }\n});\nexport const completePauseRoutesExecutions = (routes: any[]) => ({\n type: types.ROUTES_EXECUTION_PAUSE_COMPLETED,\n payload: { routes }\n});\nexport const failPauseRoutesExecutions = (error = { errorMessage: 'Error', errorNumber: 404 }) => ({\n type: types.ROUTES_EXECUTION_PAUSE_FAILED,\n payload: {\n error //error:{errorMessage:'Error', errorNumber:400}\n }\n});\n\nexport const startStartRoutesExecutions = (routes: any[]) => ({\n type: types.ROUTES_EXECUTION_START_STARTED,\n payload: { routes }\n});\nexport const completeStartRoutesExecutions = (routes: any[]) => ({\n type: types.ROUTES_EXECUTION_START_COMPLETED,\n payload: { routes }\n});\nexport const failStartRoutesExecutions = (error = { errorMessage: 'Error', errorNumber: 404 }) => ({\n type: types.ROUTES_EXECUTION_START_FAILED,\n payload: {\n error //error:{errorMessage:'Error', errorNumber:400}\n }\n});\n\nexport const startManualTransitRoutesExecutions = (routes: any[]) => ({\n type: types.ROUTES_EXECUTION_MANUAL_TRANSIT_STARTED,\n payload: { routes }\n});\nexport const completeManualTransitRoutesExecutions = (routes: any[]) => ({\n type: types.ROUTES_EXECUTION_MANUAL_TRANSIT_COMPLETED,\n payload: { routes }\n});\nexport const failManualTransitRoutesExecutions = (\n error = { errorMessage: 'Error', errorNumber: 404 }\n) => ({\n type: types.ROUTES_EXECUTION_MANUAL_TRANSIT_FAILED,\n payload: {\n error //error:{errorMessage:'Error', errorNumber:400}\n }\n});\n\nexport const startChangeToAlternateRoute = (routeAssignmentId, routeId, reason) => ({\n type: types.ROUTE_CHANGE_TO_ALTERNATE_ROUTE_STARTED,\n payload: { routeAssignmentId, routeId, reason }\n});\nexport const completeChangeToAlternateRoute = (routeAssignmentId, routeId, reason) => ({\n type: types.ROUTE_CHANGE_TO_ALTERNATE_ROUTE_COMPLETED,\n payload: { routeAssignmentId, routeId, reason }\n});\nexport const failChangeToAlternateRoute = (\n error = { errorMessage: 'Error', errorNumber: 404 }\n) => ({\n type: types.ROUTE_CHANGE_TO_ALTERNATE_ROUTE_FAILED,\n payload: {\n error //error:{errorMessage:'Error', errorNumber:400}\n }\n});\n\nexport const startShareRoutesExecutions = (routeAssignments: string, emailList: string) => ({\n type: types.ROUTES_EXECUTION_SHARE_STARTED,\n payload: { routeAssignments, emailList }\n});\nexport const completeShareRoutesExecutions = (routeAssignments: string, emailList: string) => ({\n type: types.ROUTES_EXECUTION_SHARE_COMPLETED,\n payload: { routeAssignments, emailList }\n});\nexport const failShareRoutesExecutions = (error = { errorMessage: 'Error', errorNumber: 404 }) => ({\n type: types.ROUTES_EXECUTION_SHARE_FAILED,\n payload: {\n error //error:{errorMessage:'Error', errorNumber:400}\n }\n});\n\nexport const startAssignUnitRoutesExecutions = (assignation) => ({\n type: types.ROUTES_EXECUTION_ASSIGN_UNIT_STARTED,\n payload: assignation\n});\nexport const completeAssignUnitRoutesExecutions = (assignation) => ({\n type: types.ROUTES_EXECUTION_ASSIGN_UNIT_COMPLETED,\n payload: assignation\n});\nexport const failAssignUnitRoutesExecutions = (\n error = { errorMessage: 'Error', errorNumber: 404 }\n) => ({\n type: types.ROUTES_EXECUTION_ASSIGN_UNIT_FAILED,\n payload: {\n error //error:{errorMessage:'Error', errorNumber:400}\n }\n});\n","import { combineReducers } from 'redux';\n\nimport omit from 'lodash/omit';\nimport union from 'lodash/union';\nimport forEach from 'lodash/forEach';\nimport uniq from 'lodash/uniq';\n\nimport * as types from '../types';\n\nconst byId = (state = {}, action) => {\n switch (action.type) {\n //TYPES COMPLETED FETCH, ADD AND EDIT\n case types.ORGANIZATIONS_FETCH_COMPLETED:\n case types.ORGANIZATIONS_PARTIAL_FETCH_COMPLETED: {\n const { entities, order } = action.payload;\n const newState = { ...state };\n order.forEach((organizationId) => {\n newState[organizationId] = {\n isSelected: false,\n ...state[organizationId],\n ...entities[organizationId],\n isConfirmed: true\n };\n });\n return newState;\n }\n\n case types.ORGANIZATION_ADD_COMPLETED: {\n const { oldId, organization } = action.payload;\n const newState = omit(state, oldId);\n newState[organization.organizationId] = {\n ...state[oldId],\n ...organization,\n isConfirmed: true\n };\n return newState;\n }\n\n case types.ORGANIZATION_EDIT_COMPLETED: {\n const organization = action.payload;\n return {\n ...state,\n [organization.organizationId]: {\n ...omit(state[organization.organizationId], ['oldOrganization']),\n ...omit(organization, ['oldOrganization']),\n isConfirmed: true\n }\n };\n }\n\n //TYPES STARTED ADD AND EDIT\n case types.ORGANIZATION_ADD_STARTED: {\n const { organization, isSelected } = action.payload;\n const newState = { ...state };\n newState[organization.organizationId] = {\n isSelected,\n ...omit(organization, ['quotationId', 'baseQuotationId', 'membership']),\n isConfirmed: false\n };\n return newState;\n }\n case types.ORGANIZATION_EDIT_STARTED: {\n const organization = action.payload;\n return {\n ...state,\n [organization.organizationId]: {\n ...state[organization.organizationId],\n oldOrganization: state[organization.organizationId],\n ...organization,\n isConfirmed: false\n }\n };\n }\n\n case types.ORGANIZATION_CODE_ASSIGN_COMPLETED: {\n const {\n organizationId,\n registrationCode,\n allowedApplications,\n registrationDivisionId,\n registrationSubdivisionId\n } = action.payload;\n return {\n ...state,\n [organizationId]: {\n ...state[organizationId],\n registrationCode,\n allowedApplications,\n registrationDivisionId,\n registrationSubdivisionId\n }\n };\n }\n\n //TYPES FAILED ADD AND EDIT\n case types.ORGANIZATION_ADD_FAILED: {\n const { oldId } = action.payload;\n if (state[oldId]) {\n return omit(state, oldId);\n }\n return state;\n }\n case types.ORGANIZATION_EDIT_FAILED: {\n const { oldOrganization } = action.payload;\n return {\n ...state,\n [oldOrganization.organizationId]: {\n ...omit(state[oldOrganization.organizationId], ['oldOrganization']),\n ...oldOrganization,\n isConfirmed: true\n }\n };\n }\n\n //TYPES REMOVE COMPLETED\n case types.ORGANIZATION_REMOVE_COMPLETED: {\n const { organizationId } = action.payload;\n return omit(state, organizationId);\n }\n\n //TYPES SELECTED AND DESELECTED\n case types.ORGANIZATION_SELECTED: {\n const organizationId = action.payload;\n const newState = {\n ...state,\n [organizationId]: {\n ...state[organizationId],\n isSelected: true\n }\n };\n return newState;\n }\n\n case types.ORGANIZATION_DESELECTED: {\n const organizationId = action.payload;\n return {\n ...state,\n [organizationId]: {\n ...state[organizationId],\n isSelected: false\n }\n };\n }\n\n case types.ORGANIZATIONS_ALL_SELECTED: {\n const organizationIds = action.payload;\n const newState = { ...state };\n if (organizationIds.length == 0) {\n forEach(state, (organization: any, organizationId) => {\n newState[organizationId] = {\n ...organization,\n isSelected: true\n };\n });\n } else {\n organizationIds.forEach((organizationId) => {\n newState[organizationId] = {\n ...state[organizationId],\n isSelected: true\n };\n });\n }\n\n return newState;\n }\n\n case types.ORGANIZATIONS_ALL_DESELECTED: {\n const organizationIds = action.payload;\n const newState = { ...state };\n if (organizationIds.length == 0) {\n forEach(state, (organization: any, organizationId) => {\n newState[organizationId] = {\n ...organization,\n isSelected: false\n };\n });\n } else {\n organizationIds.forEach((organizationId) => {\n newState[organizationId] = {\n ...state[organizationId],\n isSelected: false\n };\n });\n }\n\n return newState;\n }\n\n //DEFAULT\n default: {\n return state;\n }\n }\n};\n\nconst order = (state = [], action) => {\n switch (action.type) {\n //CASE COMPLETED FETCH, ADD AND REMOVE\n case types.ORGANIZATIONS_FETCH_COMPLETED: {\n const { order } = action.payload;\n return union(state, order);\n }\n\n case types.ORGANIZATIONS_PARTIAL_FETCH_COMPLETED: {\n const { order } = action.payload;\n return uniq([...state, ...order]);\n }\n\n case types.ORGANIZATION_ADD_COMPLETED: {\n const { oldId, organization } = action.payload;\n return state.map((organizationId) =>\n organizationId === oldId ? organization.organizationId : organizationId\n );\n }\n\n case types.ORGANIZATION_REMOVE_COMPLETED: {\n const { organizationId } = action.payload;\n return state.filter((organizationIdState) => organizationIdState !== organizationId);\n }\n\n //CASE ADD STARTED\n case types.ORGANIZATION_ADD_STARTED: {\n const { organization } = action.payload;\n return [...state, organization.organizationId];\n }\n\n //CASE ADD FAILED\n case types.ORGANIZATION_ADD_FAILED: {\n const { oldId } = action.payload;\n return state.filter((organizationIdState) => organizationIdState !== oldId);\n }\n\n //DEFAULT\n default: {\n return state;\n }\n }\n};\n\n// STATES TO KNOW IF IT IS FETCHING, ADDING OR EDITING\nconst isFetchingList = (state = false, action) => {\n switch (action.type) {\n case types.ORGANIZATIONS_FETCH_STARTED: {\n return true;\n }\n case types.ORGANIZATIONS_FETCH_COMPLETED:\n case types.ORGANIZATIONS_FETCH_FAILED: {\n return false;\n }\n default: {\n return state;\n }\n }\n};\n\nconst isPartialFetchingList = (state = false, action) => {\n switch (action.type) {\n case types.ORGANIZATIONS_PARTIAL_FETCH_STARTED: {\n return true;\n }\n case types.ORGANIZATIONS_PARTIAL_FETCH_COMPLETED:\n case types.ORGANIZATIONS_PARTIAL_FETCH_FAILED: {\n return false;\n }\n default: {\n return state;\n }\n }\n};\n\nconst isAdding = (state = false, action) => {\n switch (action.type) {\n case types.ORGANIZATION_ADD_STARTED: {\n return true;\n }\n case types.ORGANIZATION_ADD_COMPLETED:\n case types.ORGANIZATION_ADD_FAILED: {\n return false;\n }\n default: {\n return state;\n }\n }\n};\n\nconst isAddingDowntimeReason = (state = false, action) => {\n switch (action.type) {\n case types.ORGANIZATION_DOWNTIME_REASON_ADD_STARTED: {\n return true;\n }\n case types.ORGANIZATION_DOWNTIME_REASON_ADD_COMPLETED:\n case types.ORGANIZATION_DOWNTIME_REASON_ADD_FAILED: {\n return false;\n }\n default: {\n return state;\n }\n }\n};\n\nconst isEditing = (state = false, action) => {\n switch (action.type) {\n case types.ORGANIZATION_EDIT_STARTED: {\n return true;\n }\n case types.ORGANIZATION_EDIT_COMPLETED:\n case types.ORGANIZATION_EDIT_FAILED: {\n return false;\n }\n default: {\n return state;\n }\n }\n};\n\nconst isEditingDowntimeReason = (state = false, action) => {\n switch (action.type) {\n case types.ORGANIZATION_DOWNTIME_REASON_EDIT_STARTED: {\n return true;\n }\n case types.ORGANIZATION_DOWNTIME_REASON_EDIT_COMPLETED:\n case types.ORGANIZATION_DOWNTIME_REASON_EDIT_FAILED: {\n return false;\n }\n default: {\n return state;\n }\n }\n};\n\nconst isRemoving = (state = false, action) => {\n switch (action.type) {\n case types.ORGANIZATION_REMOVE_STARTED: {\n return true;\n }\n case types.ORGANIZATION_REMOVE_COMPLETED:\n case types.ORGANIZATION_REMOVE_FAILED: {\n return false;\n }\n default: {\n return state;\n }\n }\n};\n\nconst isRemovingDowntimeReason = (state = false, action) => {\n switch (action.type) {\n case types.ORGANIZATION_DOWNTIME_REASON_REMOVE_STARTED: {\n return true;\n }\n case types.ORGANIZATION_DOWNTIME_REASON_REMOVE_COMPLETED:\n case types.ORGANIZATION_DOWNTIME_REASON_REMOVE_FAILED: {\n return false;\n }\n default: {\n return state;\n }\n }\n};\n\nconst errorFetchingList = (state = null, action) => {\n switch (action.type) {\n case types.ORGANIZATIONS_FETCH_FAILED: {\n const { error } = action.payload;\n return error;\n }\n case types.ORGANIZATIONS_FETCH_STARTED:\n case types.ORGANIZATIONS_FETCH_COMPLETED: {\n return null;\n }\n default: {\n return state;\n }\n }\n};\n\nconst errorPartialFetchingList = (state = null, action) => {\n switch (action.type) {\n case types.ORGANIZATIONS_PARTIAL_FETCH_FAILED: {\n const { error } = action.payload;\n return error;\n }\n case types.ORGANIZATIONS_PARTIAL_FETCH_STARTED:\n case types.ORGANIZATIONS_PARTIAL_FETCH_COMPLETED: {\n return null;\n }\n default: {\n return state;\n }\n }\n};\n\nconst errorAdding = (state = null, action) => {\n switch (action.type) {\n case types.ORGANIZATION_ADD_FAILED: {\n const { error } = action.payload;\n return error;\n }\n case types.ORGANIZATION_ADD_STARTED:\n case types.ORGANIZATION_ADD_COMPLETED: {\n return null;\n }\n default: {\n return state;\n }\n }\n};\n\nconst errorAddingDowntimeReason = (state = null, action) => {\n switch (action.type) {\n case types.ORGANIZATION_DOWNTIME_REASON_ADD_FAILED: {\n const { error } = action.payload;\n return error;\n }\n case types.ORGANIZATION_DOWNTIME_REASON_ADD_STARTED:\n case types.ORGANIZATION_DOWNTIME_REASON_ADD_COMPLETED: {\n return null;\n }\n default: {\n return state;\n }\n }\n};\n\nconst errorEditing = (state = null, action) => {\n switch (action.type) {\n case types.ORGANIZATION_EDIT_FAILED: {\n const { error } = action.payload;\n return error;\n }\n case types.ORGANIZATION_EDIT_STARTED:\n case types.ORGANIZATION_EDIT_COMPLETED: {\n return null;\n }\n default: {\n return state;\n }\n }\n};\n\nconst errorEditingDowntimeReason = (state = null, action) => {\n switch (action.type) {\n case types.ORGANIZATION_DOWNTIME_REASON_EDIT_FAILED: {\n const { error } = action.payload;\n return error;\n }\n case types.ORGANIZATION_DOWNTIME_REASON_EDIT_STARTED:\n case types.ORGANIZATION_DOWNTIME_REASON_EDIT_COMPLETED: {\n return null;\n }\n default: {\n return state;\n }\n }\n};\n\nconst errorRemoving = (state = null, action) => {\n switch (action.type) {\n case types.ORGANIZATION_REMOVE_FAILED: {\n const { error } = action.payload;\n return error;\n }\n case types.ORGANIZATION_REMOVE_STARTED:\n case types.ORGANIZATION_REMOVE_COMPLETED: {\n return null;\n }\n default: {\n return state;\n }\n }\n};\n\nconst errorRemovingDowntimeReason = (state = null, action) => {\n switch (action.type) {\n case types.ORGANIZATION_DOWNTIME_REASON_REMOVE_FAILED: {\n const { error } = action.payload;\n return error;\n }\n case types.ORGANIZATION_DOWNTIME_REASON_REMOVE_STARTED:\n case types.ORGANIZATION_DOWNTIME_REASON_REMOVE_COMPLETED: {\n return null;\n }\n default: {\n return state;\n }\n }\n};\n\nconst validCode = (state = true, action) => {\n switch (action.type) {\n case types.ORGANIZATION_CODE_CHECK_COMPLETED: {\n return action.payload;\n }\n case types.ORGANIZATION_CODE_CHECK_FAILED: {\n return false;\n }\n default: {\n return state;\n }\n }\n};\n\nconst organizations = combineReducers({\n byId,\n order,\n isPartialFetchingList,\n isFetchingList,\n isAdding,\n isAddingDowntimeReason,\n isEditing,\n isEditingDowntimeReason,\n isRemoving,\n isRemovingDowntimeReason,\n errorPartialFetchingList,\n errorFetchingList,\n errorAdding,\n errorAddingDowntimeReason,\n errorEditing,\n errorEditingDowntimeReason,\n errorRemoving,\n errorRemovingDowntimeReason,\n validCode\n});\n\nexport default organizations;\n\n//Own state\nexport const getOwnState = (state) => state.organizations;\n\n//Information\nexport const getOrganizationOperator = (state, organizationId) =>\n getOwnState(state).byId[organizationId]?.operatorId;\nexport const getOrganizationOperatorName = (state, organizationId) =>\n getOwnState(state).byId[organizationId]?.operatorName;\nexport const getOrganization = (state, organizationId) => getOwnState(state).byId[organizationId];\nexport const getOrganizationName = (state, organizationId) =>\n getOrganization(state, organizationId)?.organizationName;\nexport const getOrganizationsList = (state) =>\n getOwnState(state)\n .order.map((id) => getOrganization(state, id))\n .filter((organization) => organization.organizationStatus > 0);\nexport const getOrganizationsListByMembership = (state, membership) => {\n //Se filtra por operatorId\n if (membership.operatorId)\n return getOrganizationsList(state).filter(\n (organization) => organization.operatorId === membership.operatorId\n );\n //Si no se ha seleccionado un operador se devuelvela lista completa\n return getOrganizationsList(state);\n};\nexport const getOrganizationsListBySelectedOperator = (state, membership) => {\n //Se filtra por operatorId\n if (membership.operatorId)\n return getOrganizationsList(state).filter(\n (organization) => organization.operatorId === membership.operatorId\n );\n //Si no se ha seleccionado un operador se devuelve una lista vacia\n else return [];\n};\n\nexport const getSelectedOrganizations = (state) => {\n const selectedOrganizations = getOrganizationsList(state).filter(\n (organization) => organization.isSelected\n );\n //Si no se selecciona ninguno devuelve null\n if (selectedOrganizations.length === 0) return null;\n //Si se selecciona mĆ”s de cero se devuelve el arreglo de los seleccionados\n if (selectedOrganizations.length > 0) return selectedOrganizations;\n};\n\nexport const getSelectedOrganization = (state) => {\n const selectedOrganizations = getOrganizationsList(state).filter(\n (organization) => organization.isSelected\n );\n //Si se selecciona solo uno devuelve solo el seleccionado\n if (selectedOrganizations.length === 1) return selectedOrganizations[0];\n //De lo contrario se devuelve null\n else return null;\n};\n\n//Status of sagas\nexport const isPartialFetchingListOrganizations = (state) =>\n getOwnState(state).isPartialFetchingList;\nexport const isFetchingListOrganizations = (state) => getOwnState(state).isFetchingList;\nexport const isAddingOrganization = (state) => getOwnState(state).isAdding;\nexport const isEditingOrganization = (state) => getOwnState(state).isEditing;\nexport const isRemovingOrganization = (state) => getOwnState(state).isRemoving;\n\nexport const isAddingOrganizationDowntimeReason = (state) =>\n getOwnState(state).isAddingDowntimeReason;\nexport const isEditingOrganizationDowntimeReason = (state) =>\n getOwnState(state).isEditingDowntimeReason;\nexport const isRemovingOrganizationDowntimeReason = (state) =>\n getOwnState(state).isRemovingDowntimeReason;\n\n//Errors\nexport const getPartialFetchingListOrganizationsErrors = (state) =>\n getOwnState(state).errorPartialFetchingList;\nexport const getFetchingListOrganizationsErrors = (state) => getOwnState(state).errorFetchingList;\nexport const getAddingOrganizationErrors = (state) => getOwnState(state).errorAdding;\nexport const getEditingOrganizationErrors = (state) => getOwnState(state).errorEditing;\nexport const getRemovingOrganizationErrors = (state) => getOwnState(state).errorRemoving;\n\nexport const getAddingOrganizationDowntimeReasonErrors = (state) =>\n getOwnState(state).errorAddingDowntimeReason;\nexport const getEditingOrganizationDowntimeReasonErrors = (state) =>\n getOwnState(state).errorEditingDowntimeReason;\nexport const getRemovingOrganizationDowntimeReasonErrors = (state) =>\n getOwnState(state).errorRemovingDowntimeReason;\n\n//Valid code\nexport const isValidCode = (state) => getOwnState(state).validCode;\n","import { combineReducers } from 'redux';\n\nimport union from 'lodash/union';\nimport * as types from '../../types';\nimport { appIntl } from 'utility/context/IntlGlobalProvider';\n\nconst byId = (state = {}, action) => {\n switch (action.type) {\n //TYPES COMPLETED IMPORT\n case types.LOCATIONS_IMPORT_COMPLETED: {\n const { entities, order } = action.payload;\n const newState = {};\n order.forEach((id) => {\n newState[id] = {\n isSelected: false,\n isShownInMap: false,\n ...state[id],\n ...entities[id],\n isConfirmed: true\n };\n });\n return newState;\n }\n\n //DEFAULT\n default: {\n return state;\n }\n }\n};\n\nconst order = (state = [], action) => {\n switch (action.type) {\n //CASE COMPLETED IMPORT\n case types.LOCATIONS_IMPORT_COMPLETED: {\n const { order } = action.payload;\n return union(order);\n }\n\n //DEFAULT\n default: {\n return state;\n }\n }\n};\n\nconst isImporting = (state = false, action) => {\n switch (action.type) {\n case types.LOCATIONS_IMPORT_STARTED: {\n return true;\n }\n case types.LOCATIONS_IMPORT_COMPLETED:\n case types.LOCATIONS_IMPORT_FAILED: {\n return false;\n }\n default: {\n return state;\n }\n }\n};\n\nconst errorImporting = (state = null, action) => {\n switch (action.type) {\n case types.LOCATIONS_IMPORT_FAILED: {\n const { error } = action.payload;\n return error;\n }\n case types.LOCATIONS_IMPORT_STARTED:\n case types.LOCATIONS_IMPORT_COMPLETED: {\n return null;\n }\n default: {\n return state;\n }\n }\n};\n\nconst importedLocations = combineReducers({\n byId,\n order,\n isImporting,\n errorImporting\n});\n\nexport default importedLocations;\n// export default locations;\n\n//Own state\nexport const getOwnState = (state) => state.locations.importedLocations;\n\n//Information\nexport const getLocation = (state, id) => getOwnState(state).byId[id];\n\nexport const getLocationsList = (state) =>\n getOwnState(state).order.map((id) => getLocation(state, id));\n\n//Status of sagas\nexport const isImportingLocations = (state) => getOwnState(state).isImporting;\n\n//Errors\nexport const getImportingLocationsErrors = (state) => getOwnState(state).errorImporting;\n","import { combineReducers } from 'redux';\n\nimport omit from 'lodash/omit';\nimport union from 'lodash/union';\nimport forEach from 'lodash/forEach';\nimport uniq from 'lodash/uniq';\nimport { appIntl } from '../../../../utility/context/IntlGlobalProvider';\nimport { persistReducer } from 'redux-persist';\nimport localforage from 'localforage';\nimport autoMergeLevel2 from 'redux-persist/lib/stateReconciler/autoMergeLevel2';\nimport importedLocations, * as importedLocationsSelectors from './importedLocations';\nimport * as officeSelectors from 'views/screens/Offices/reducers';\nimport * as authTypes from '../../../../redux/types/auth';\nimport * as types from '../types';\nimport { DefaultFilters } from 'views/screens/Entities/views/FetchEntities';\n\nconst byId = (state = {}, action) => {\n switch (action.type) {\n case authTypes.AUTHENTICATION_IDENTITY_CLEARED: {\n return {};\n }\n //TYPES COMPLETED FETCH, ADD AND EDIT\n case types.LOCATIONS_FETCH_COMPLETED: {\n const { entities, order } = action.payload;\n const newState = {};\n order.forEach((locationId) => {\n newState[locationId] = {\n isSelected: false,\n isShownInMap: false,\n ...state[locationId],\n ...entities[locationId],\n isConfirmed: true\n };\n });\n return newState;\n }\n\n case types.LOCATIONS_PARTIAL_FETCH_COMPLETED: {\n const { entities, order } = action.payload;\n const newState = { ...state };\n order.forEach((locationId) => {\n newState[locationId] = {\n isSelected: false,\n isShownInMap: false,\n ...state[locationId],\n ...entities[locationId],\n isConfirmed: true\n };\n });\n return newState;\n }\n\n case types.LOCATION_ADD_COMPLETED: {\n const { oldId, location } = action.payload;\n const newState = omit(state, oldId);\n newState[location.locationId] = {\n isShownInMap: false,\n ...state[oldId],\n ...location,\n isConfirmed: true\n };\n return newState;\n }\n\n case types.LOCATION_EDIT_COMPLETED: {\n const location = action.payload;\n return {\n ...state,\n [location.locationId]: {\n isShownInMap: false,\n ...omit(state[location.locationId], ['oldLocation']),\n ...omit(location, ['oldLocation']),\n isConfirmed: true\n }\n };\n }\n\n //TYPES STARTED ADD AND EDIT\n case types.LOCATION_ADD_STARTED: {\n const location = action.payload;\n const newState = { ...state };\n newState[location.locationId] = {\n isShownInMap: false,\n isSelected: false,\n ...location,\n isConfirmed: false\n };\n return newState;\n }\n case types.LOCATION_EDIT_STARTED: {\n const location = action.payload;\n return {\n ...state,\n [location.locationId]: {\n isShownInMap: false,\n ...state[location.locationId],\n oldLocation: state[location.locationId],\n ...omit(location, 'isShownInMap'),\n isConfirmed: false\n }\n };\n }\n\n //TYPES FAILED ADD AND EDIT\n case types.LOCATION_ADD_FAILED: {\n const { oldId } = action.payload;\n if (state[oldId]) {\n return omit(state, oldId);\n }\n return state;\n }\n case types.LOCATION_EDIT_FAILED: {\n const { oldLocation } = action.payload;\n return {\n ...state,\n [oldLocation.locationId]: {\n isShownInMap: false,\n ...omit(state[oldLocation.locationId], ['oldLocation']),\n ...oldLocation,\n isConfirmed: true\n }\n };\n }\n\n //TYPES REMOVE COMPLETED\n case types.LOCATION_REMOVE_COMPLETED: {\n const { locationId } = action.payload;\n return omit(state, locationId);\n }\n\n //TYPES SHOW AND HIDE LOCATIONS IN MAP\n case types.LOCATION_SHOW_IN_MAP: {\n const locationId = action.payload;\n const newState = {\n ...state,\n [locationId]: {\n ...state[locationId],\n isShownInMap: true\n }\n };\n return newState;\n }\n\n case types.LOCATION_HIDE_IN_MAP: {\n const locationId = action.payload;\n return {\n ...state,\n [locationId]: {\n ...state[locationId],\n isShownInMap: false\n }\n };\n }\n\n case types.LOCATIONS_ALL_SHOW_IN_MAP: {\n const locationIds = action.payload;\n const newState = { ...state };\n if (locationIds.length == 0) {\n forEach(state, (location: any, locationId) => {\n newState[locationId] = {\n ...location,\n isShownInMap: true\n };\n });\n } else {\n locationIds.forEach((locationId) => {\n newState[locationId] = {\n ...state[locationId],\n isShownInMap: true\n };\n });\n }\n\n return newState;\n }\n\n case types.LOCATIONS_ALL_HIDE_IN_MAP: {\n const locationIds = action.payload;\n const newState = { ...state };\n if (locationIds.length == 0) {\n forEach(state, (location: any, locationId) => {\n newState[locationId] = {\n ...location,\n isShownInMap: false\n };\n });\n } else {\n locationIds.forEach((locationId) => {\n newState[locationId] = {\n ...state[locationId],\n isShownInMap: false\n };\n });\n }\n\n return newState;\n }\n\n //TYPES SELECTED AND DESELECTED\n case types.LOCATION_SELECTED: {\n const locationId = action.payload;\n const newState = {\n ...state,\n [locationId]: {\n ...state[locationId],\n isSelected: true\n }\n };\n return newState;\n }\n\n case types.LOCATION_DESELECTED: {\n const locationId = action.payload;\n return {\n ...state,\n [locationId]: {\n ...state[locationId],\n isSelected: false\n }\n };\n }\n\n case types.LOCATIONS_ALL_SELECTED: {\n const locationIds = action.payload;\n const newState = { ...state };\n if (locationIds.length == 0) {\n forEach(state, (location: any, locationId) => {\n newState[locationId] = {\n ...location,\n isSelected: true\n };\n });\n } else {\n locationIds.forEach((locationId) => {\n newState[locationId] = {\n ...state[locationId],\n isSelected: true\n };\n });\n }\n\n return newState;\n }\n\n case types.LOCATIONS_ALL_DESELECTED: {\n const locationIds = action.payload;\n const newState = { ...state };\n if (locationIds.length == 0) {\n forEach(state, (location: any, locationId) => {\n newState[locationId] = {\n ...location,\n isSelected: false\n };\n });\n } else {\n locationIds.forEach((locationId) => {\n newState[locationId] = {\n ...state[locationId],\n isSelected: false\n };\n });\n }\n\n return newState;\n }\n\n //DEFAULT\n default: {\n return state;\n }\n }\n};\n\nconst order = (state = [], action) => {\n switch (action.type) {\n case authTypes.AUTHENTICATION_IDENTITY_CLEARED: {\n return [];\n }\n //CASE COMPLETED FETCH, ADD AND REMOVE\n case types.LOCATIONS_FETCH_COMPLETED: {\n const { order } = action.payload;\n return union(order);\n }\n\n case types.LOCATIONS_PARTIAL_FETCH_COMPLETED: {\n const { order } = action.payload;\n return uniq([...state, ...order]);\n }\n\n case types.LOCATION_ADD_COMPLETED: {\n const { oldId, location } = action.payload;\n return state.map((locationId) => (locationId === oldId ? location.locationId : locationId));\n }\n\n case types.LOCATION_REMOVE_COMPLETED: {\n const { locationId } = action.payload;\n return state.filter((locationIdState) => locationIdState !== locationId);\n }\n\n //CASE ADD STARTED\n case types.LOCATION_ADD_STARTED: {\n const location = action.payload;\n return [...state, location.locationId];\n }\n\n //CASE ADD FAILED\n case types.LOCATION_ADD_FAILED: {\n const { oldId } = action.payload;\n return state.filter((locationIdState) => locationIdState !== oldId);\n }\n\n //DEFAULT\n default: {\n return state;\n }\n }\n};\n\n// STATES TO KNOW IF IT IS FETCHING, ADDING OR EDITING\nconst isFetchingList = (state = false, action) => {\n switch (action.type) {\n case authTypes.AUTHENTICATION_IDENTITY_CLEARED: {\n return false;\n }\n case types.LOCATIONS_FETCH_STARTED: {\n return true;\n }\n case types.LOCATIONS_FETCH_COMPLETED:\n case types.LOCATIONS_FETCH_FAILED: {\n return false;\n }\n default: {\n return state;\n }\n }\n};\n\nconst isPartialFetchingList = (state = false, action) => {\n switch (action.type) {\n case authTypes.AUTHENTICATION_IDENTITY_CLEARED: {\n return false;\n }\n case types.LOCATIONS_PARTIAL_FETCH_STARTED: {\n return true;\n }\n case types.LOCATIONS_PARTIAL_FETCH_COMPLETED:\n case types.LOCATIONS_PARTIAL_FETCH_FAILED: {\n return false;\n }\n default: {\n return state;\n }\n }\n};\n\nconst isAdding = (state = false, action) => {\n switch (action.type) {\n case authTypes.AUTHENTICATION_IDENTITY_CLEARED: {\n return false;\n }\n case types.LOCATION_ADD_STARTED: {\n return true;\n }\n case types.LOCATION_ADD_COMPLETED:\n case types.LOCATION_ADD_FAILED: {\n return false;\n }\n default: {\n return state;\n }\n }\n};\n\nconst isEditing = (state = false, action) => {\n switch (action.type) {\n case authTypes.AUTHENTICATION_IDENTITY_CLEARED: {\n return false;\n }\n case types.LOCATION_EDIT_STARTED: {\n return true;\n }\n case types.LOCATION_EDIT_COMPLETED:\n case types.LOCATION_EDIT_FAILED: {\n return false;\n }\n default: {\n return state;\n }\n }\n};\n\nconst isRemoving = (state = false, action) => {\n switch (action.type) {\n case authTypes.AUTHENTICATION_IDENTITY_CLEARED: {\n return false;\n }\n case types.LOCATION_REMOVE_STARTED: {\n return true;\n }\n case types.LOCATION_REMOVE_COMPLETED:\n case types.LOCATION_REMOVE_FAILED: {\n return false;\n }\n default: {\n return state;\n }\n }\n};\n\nconst errorFetchingList = (state = null, action) => {\n switch (action.type) {\n case authTypes.AUTHENTICATION_IDENTITY_CLEARED: {\n return null;\n }\n case types.LOCATIONS_FETCH_FAILED: {\n const { error } = action.payload;\n return error;\n }\n case types.LOCATIONS_FETCH_STARTED:\n case types.LOCATIONS_FETCH_COMPLETED: {\n return null;\n }\n default: {\n return state;\n }\n }\n};\n\nconst errorPartialFetchingList = (state = null, action) => {\n switch (action.type) {\n case authTypes.AUTHENTICATION_IDENTITY_CLEARED: {\n return null;\n }\n case types.LOCATIONS_PARTIAL_FETCH_FAILED: {\n const { error } = action.payload;\n return error;\n }\n case types.LOCATIONS_PARTIAL_FETCH_STARTED:\n case types.LOCATIONS_PARTIAL_FETCH_COMPLETED: {\n return null;\n }\n default: {\n return state;\n }\n }\n};\n\nconst errorAdding = (state = null, action) => {\n switch (action.type) {\n case authTypes.AUTHENTICATION_IDENTITY_CLEARED: {\n return null;\n }\n case types.LOCATION_ADD_FAILED: {\n const { error } = action.payload;\n return error;\n }\n case types.LOCATION_ADD_STARTED:\n case types.LOCATION_ADD_COMPLETED: {\n return null;\n }\n default: {\n return state;\n }\n }\n};\n\nconst errorEditing = (state = null, action) => {\n switch (action.type) {\n case authTypes.AUTHENTICATION_IDENTITY_CLEARED: {\n return null;\n }\n case types.LOCATION_EDIT_FAILED: {\n const { error } = action.payload;\n return error;\n }\n case types.LOCATION_EDIT_STARTED:\n case types.LOCATION_EDIT_COMPLETED: {\n return null;\n }\n default: {\n return state;\n }\n }\n};\n\nconst errorRemoving = (state = null, action) => {\n switch (action.type) {\n case authTypes.AUTHENTICATION_IDENTITY_CLEARED: {\n return null;\n }\n case types.LOCATION_REMOVE_FAILED: {\n const { error } = action.payload;\n return error;\n }\n case types.LOCATION_REMOVE_STARTED:\n case types.LOCATION_REMOVE_COMPLETED: {\n return null;\n }\n default: {\n return state;\n }\n }\n};\n\nconst hasAlreadyFetched = (state = false, action) => {\n switch (action.type) {\n case authTypes.AUTHENTICATION_IDENTITY_CLEARED: {\n return false;\n }\n case types.LOCATIONS_FETCH_COMPLETED: {\n return true;\n }\n default: {\n return state;\n }\n }\n};\n\nconst locations: any = combineReducers({\n byId,\n order,\n importedLocations,\n isPartialFetchingList,\n isFetchingList,\n isAdding,\n isEditing,\n isRemoving,\n errorPartialFetchingList,\n errorFetchingList,\n errorAdding,\n errorEditing,\n errorRemoving,\n hasAlreadyFetched\n});\n\nconst locationsPersistedConfig = {\n key: 'locations',\n storage: localforage,\n stateReconciler: autoMergeLevel2,\n blacklist: [\n 'importedLocations',\n 'isAdding',\n 'isEditing',\n 'isRemoving',\n 'isFetchingList',\n 'isPartialFetchingList'\n ],\n whitelist: ['byId', 'order']\n // blackList: [],\n};\n\nexport default persistReducer(locationsPersistedConfig, locations);\n// export default locations;\n\n//Own state\nexport const getOwnState = (state) => state.locations;\n\n//Information\nexport const getLocation = (state, locationId) => {\n return getOwnState(state).byId[locationId];\n};\n\nexport const getLocationsList = (state) =>\n getOwnState(state)\n .order.map((id) => getLocation(state, id))\n .filter((location) => location.locationStatus > 0);\n\nexport const getLocationByPrivateCode = (state, privateCode) => {\n const location = getOwnState(state)\n .order.map((id) => getLocation(state, id))\n .find((location) => location.privateCode === privateCode);\n\n return location || undefined;\n};\n\nexport const getLocationByPrivateCodeByMembership = (\n state,\n privateCode: string,\n membership: DefaultFilters\n) => {\n return getLocationsListByMembership(state, membership).find(\n (location) => location?.privateCode === privateCode\n );\n};\n\nexport const getLocationByGooglePlaceId = (state, googlePlaceId) => {\n if (googlePlaceId) {\n const locationsList = getLocationsList(state).filter(\n (location) => location?.googleLocation?.googlePlaceId == googlePlaceId\n );\n if (locationsList.length === 1) return locationsList[0];\n }\n return undefined;\n};\n\nexport const getLocationsListByOrganization = (state, organizationId) =>\n organizationId != null\n ? getLocationsList(state).filter((location) => location.organizationId == organizationId)\n : getLocationsList(state);\n\nexport const getLocationsListByLocationClassId = (state, locationClassId) =>\n locationClassId != null\n ? getLocationsList(state).filter((location) => location.locationClassId == locationClassId)\n : getLocationsList(state);\n\nexport const getLocationsListByMembership = (state, membership) => {\n //Se filtra por membership\n return getLocationsList(state).filter(\n (location) =>\n membership &&\n (!membership.operatorId || membership.operatorId === location.operatorId) &&\n (!membership.organizationId || membership.organizationId === location.organizationId) &&\n (!membership.divisionId || membership.divisionId === location.divisionId) &&\n (!membership.subdivisionId || membership.subdivisionId === location.subdivisionId) &&\n (!membership.groupId ||\n location.groups?.split(',').includes(String(membership.groupId)) ||\n membership.groupId + '' === location.groups)\n );\n};\n\nexport const getLocationOffice = (state, locationId, useOnlyOffices) => {\n const location = getOwnState(state).byId[locationId];\n if (location) {\n const office = officeSelectors.getOffice(state, location.officeId) ?? {};\n if (!useOnlyOffices || office?.officeId)\n return {\n ...location,\n ...omit(office, ['privateCode', 'isConfirmed', 'isSelected']),\n officePrivateCode: office?.privateCode\n };\n } else return undefined;\n};\n\nexport const getLocationsOfficesList = (state, useOnlyOffices) =>\n getOwnState(state)\n .order.map((id) => getLocationOffice(state, id, useOnlyOffices))\n .filter((location) => location && location.locationStatus > 0);\n\nexport const getLocationsOfficesListByMembership = (state, membership, useOnlyOffices) => {\n //Se filtra por membership\n return getLocationsOfficesList(state, useOnlyOffices).filter(\n (location) =>\n membership &&\n (!membership.operatorId || membership.operatorId === location.operatorId) &&\n (!membership.organizationId || membership.organizationId === location.organizationId) &&\n (!membership.divisionId || membership.divisionId === location.divisionId) &&\n (!membership.subdivisionId || membership.subdivisionId === location.subdivisionId)\n );\n};\nexport const getSelectedLocations = (state) => {\n const selectedLocations = getLocationsList(state).filter((location) => location.isSelected);\n //Si no se selecciona ninguno devuelve null\n if (selectedLocations.length === 0) return null;\n //Si se selecciona mĆ”s de cero se devuelve el arreglo de los seleccionados\n if (selectedLocations.length > 0) return selectedLocations;\n};\n\nexport const getSelectedLocation = (state) => {\n const selectedLocations = getLocationsList(state).filter((location) => location.isSelected);\n //Si se selecciona solo uno devuelve solo el seleccionado\n if (selectedLocations.length === 1) return selectedLocations[0];\n //De lo contrario se devuelve null\n else return null;\n};\n\n//Status of sagas\nexport const isPartialFetchingListLocations = (state) => getOwnState(state).isPartialFetchingList;\nexport const isFetchingListLocations = (state) => getOwnState(state).isFetchingList;\nexport const haveLocationsBeenFetched = (state) => getOwnState(state).hasAlreadyFetched;\nexport const isAddingLocation = (state) => getOwnState(state).isAdding;\nexport const isEditingLocation = (state) => getOwnState(state).isEditing;\nexport const isRemovingLocation = (state) => getOwnState(state).isRemoving;\nexport const isCopyingLocation = (state) => getOwnState(state).isCopying;\nexport const isAssigningGeofenceLocation = (state) => getOwnState(state).isAssigningGeofence;\n\n//Errors\nexport const getPartialFetchingListLocationsErrors = (state) =>\n getOwnState(state).errorPartialFetchingList;\nexport const getFetchingListLocationsErrors = (state) => getOwnState(state).errorFetchingList;\nexport const getAddingLocationErrors = (state) => getOwnState(state).errorAdding;\nexport const getEditingLocationErrors = (state) => getOwnState(state).errorEditing;\nexport const getRemovingLocationErrors = (state) => getOwnState(state).errorRemoving;\n\n/* -------------------------------------------------------------------------- */\n/* IMPORTED LOCATIONS */\n/* -------------------------------------------------------------------------- */\n//Information\nexport const getImportedLocationsList = (state) =>\n importedLocationsSelectors.getLocationsList(state);\n\nexport const getImportedLocation = (state, locationId) =>\n importedLocationsSelectors.getLocation(state, locationId);\n\nexport const getImportedLocationsByPrivateCode = (state, privateCode) => {\n const importedLocations = getImportedLocationsList(state);\n return importedLocations.find((location) => location?.privateCode === privateCode);\n};\n\n//Status of sagas\nexport const isImportingLocations = (state) =>\n importedLocationsSelectors.isImportingLocations(state);\n\n//Errors\nexport const getImportingLocationsErrors = (state) =>\n importedLocationsSelectors.getImportingLocationsErrors(state);\n","import * as types from '../../types/backlog';\n\nexport const startFetchingJobsBacklog = (filters = {}) => ({\n type: types.JOBS_BACKLOG_FETCH_STARTED,\n payload: filters\n});\nexport const completeFetchingJobsBacklog = (entities, order) => ({\n type: types.JOBS_BACKLOG_FETCH_COMPLETED,\n payload: {\n entities,\n order\n }\n});\nexport const failFetchingJobsBacklog = (error = { errorMessage: 'Error', errorNumber: 404 }) => ({\n type: types.JOBS_BACKLOG_FETCH_FAILED,\n payload: {\n error //error:{errorMessage:'Error', errorNumber:400}\n }\n});\n\nexport const startPartialFetchingJobsBacklog = (entityTypeId) => ({\n type: types.JOBS_BACKLOG_PARTIAL_FETCH_STARTED,\n payload: entityTypeId\n});\nexport const completePartialFetchingJobsBacklog = (entities, order) => ({\n type: types.JOBS_BACKLOG_PARTIAL_FETCH_COMPLETED,\n payload: {\n entities,\n order\n }\n});\nexport const failPartialFetchingJobsBacklog = (\n error = { errorMessage: 'Error', errorNumber: 404 }\n) => ({\n type: types.JOBS_BACKLOG_PARTIAL_FETCH_FAILED,\n payload: {\n error //error:{errorMessage:'Error', errorNumber:400}\n }\n});\n\nexport const startAddingJobBacklog = (jobBacklog) => ({\n type: types.JOB_BACKLOG_ADD_STARTED,\n payload: jobBacklog\n});\nexport const completeAddingJobBacklog = (oldId, jobBacklog) => ({\n type: types.JOB_BACKLOG_ADD_COMPLETED,\n payload: { oldId, jobBacklog }\n});\nexport const failAddingJobBacklog = (oldId, error) => ({\n type: types.JOB_BACKLOG_ADD_FAILED,\n payload: {\n oldId,\n error\n }\n});\n\nexport const startEditingJobBacklog = (jobBacklog) => ({\n type: types.JOB_BACKLOG_EDIT_STARTED,\n payload: jobBacklog\n});\nexport const completeEditingJobBacklog = (jobBacklog) => ({\n type: types.JOB_BACKLOG_EDIT_COMPLETED,\n payload: jobBacklog\n});\nexport const failEditingJobBacklog = (oldJobBacklog, error) => ({\n type: types.JOB_BACKLOG_EDIT_FAILED,\n payload: {\n oldJobBacklog,\n error\n }\n});\n\nexport const selectJobBacklog = (jobId) => ({\n type: types.JOB_BACKLOG_SELECTED,\n payload: jobId\n});\n\nexport const selectAllJobsBacklog = (\n jobIds = [] //List of JobBacklogIds\n) => ({\n type: types.JOBS_BACKLOG_ALL_SELECTED,\n payload: jobIds\n});\n\nexport const deselectJobBacklog = (jobId) => ({\n type: types.JOB_BACKLOG_DESELECTED,\n payload: jobId\n});\n\nexport const deselectAllJobsBacklog = (\n jobIds = [] //List of JobBacklogIds\n) => ({\n type: types.JOBS_BACKLOG_ALL_DESELECTED,\n payload: jobIds\n});\n\nexport const startRemovingJobsBacklog = (jobs) => ({\n type: types.JOBS_BACKLOG_REMOVE_STARTED,\n payload: {\n jobs\n }\n});\n\nexport const completeRemovingJobsBacklog = (jobs) => ({\n type: types.JOBS_BACKLOG_REMOVE_COMPLETED,\n payload: {\n jobs\n }\n});\n\nexport const failRemovingJobsBacklog = (jobs, error) => ({\n type: types.JOBS_BACKLOG_REMOVE_FAILED,\n payload: {\n jobs,\n error\n }\n});\n\nexport const startChangeStatusJobs = (jobs, jobStatus, comment) => ({\n type: types.JOBS_BACKLOG_CHANGE_STATUS_STARTED,\n payload: { jobs, jobStatus, comment }\n});\nexport const completeChangeStatusJobs = (jobs, jobStatus, comment) => ({\n type: types.JOBS_BACKLOG_CHANGE_STATUS_COMPLETED,\n payload: { jobs, jobStatus, comment }\n});\nexport const failChangeStatusJobs = (oldJobs, error) => ({\n type: types.JOBS_BACKLOG_CHANGE_STATUS_FAILED,\n payload: {\n oldJobs,\n error\n }\n});\n\nexport const startChangeJobTypeJobs = (jobs, jobTypeId) => ({\n type: types.JOBS_BACKLOG_CHANGE_STATUS_STARTED,\n payload: { jobs, jobTypeId }\n});\nexport const completeChangeJobTypeJobs = (jobs, jobTypeId) => ({\n type: types.JOBS_BACKLOG_CHANGE_STATUS_COMPLETED,\n payload: { jobs, jobTypeId }\n});\nexport const failChangeJobTypeJobs = (oldJobs, error) => ({\n type: types.JOBS_BACKLOG_CHANGE_STATUS_FAILED,\n payload: {\n oldJobs,\n error\n }\n});\n\nexport const startChangePriorityJobs = (jobs, jobPriority) => ({\n type: types.JOBS_BACKLOG_CHANGE_PRIORITY_STARTED,\n payload: { jobs, jobPriority }\n});\nexport const completeChangePriorityJobs = (jobs, jobPriority) => ({\n type: types.JOBS_BACKLOG_CHANGE_PRIORITY_COMPLETED,\n payload: { jobs, jobPriority }\n});\nexport const failChangePriorityJobs = (oldJobs, error) => ({\n type: types.JOBS_BACKLOG_CHANGE_PRIORITY_FAILED,\n payload: {\n oldJobs,\n error\n }\n});\n\nexport const startChangeStartDateJobs = (jobs, startDate) => ({\n type: types.JOBS_BACKLOG_CHANGE_START_DATE_STARTED,\n payload: { jobs, startDate }\n});\nexport const completeChangeStartDateJobs = (jobs, startDate) => ({\n type: types.JOBS_BACKLOG_CHANGE_START_DATE_COMPLETED,\n payload: { jobs, startDate }\n});\nexport const failChangeStartDateJobs = (oldJobs, error) => ({\n type: types.JOBS_BACKLOG_CHANGE_START_DATE_FAILED,\n payload: {\n oldJobs,\n error\n }\n});\n\nexport const startChangeDueDateJobs = (jobs, dueDate) => ({\n type: types.JOBS_BACKLOG_CHANGE_DUE_DATE_STARTED,\n payload: { jobs, dueDate }\n});\nexport const completeChangeDueDateJobs = (jobs, dueDate) => ({\n type: types.JOBS_BACKLOG_CHANGE_DUE_DATE_COMPLETED,\n payload: { jobs, dueDate }\n});\nexport const failChangeDueDateJobs = (oldJobs, error) => ({\n type: types.JOBS_BACKLOG_CHANGE_DUE_DATE_FAILED,\n payload: {\n oldJobs,\n error\n }\n});\n\nexport const startChangeMinMaxTimeJobs = (jobs, maxTime) => ({\n type: types.JOBS_BACKLOG_CHANGE_MIN_MAX_TIME_STARTED,\n payload: { jobs, maxTime }\n});\nexport const completeChangeMinMaxTimeJobs = (jobs, maxTime) => ({\n type: types.JOBS_BACKLOG_CHANGE_MIN_MAX_TIME_COMPLETED,\n payload: { jobs, maxTime }\n});\nexport const failChangeMinMaxTimeJobs = (oldJobs, error) => ({\n type: types.JOBS_BACKLOG_CHANGE_MIN_MAX_TIME_FAILED,\n payload: {\n oldJobs,\n error\n }\n});\n\nexport const startAssignUsersJobs = (jobs, userNames, users) => ({\n type: types.JOBS_BACKLOG_ASSIGN_USERS_STARTED,\n payload: { jobs, userNames, users }\n});\nexport const completeAssignUsersJobs = (jobs, userNames, users) => ({\n type: types.JOBS_BACKLOG_ASSIGN_USERS_COMPLETED,\n payload: { jobs, userNames, users }\n});\nexport const failAssignUsersJobs = (oldJobs, error) => ({\n type: types.JOBS_BACKLOG_ASSIGN_USERS_FAILED,\n payload: {\n oldJobs,\n error\n }\n});\n\nexport const startAssignFormsJobs = (jobs, formIds, forms) => ({\n type: types.JOBS_BACKLOG_ASSIGN_FORMS_STARTED,\n payload: { jobs, formIds, forms }\n});\nexport const completeAssignFormsJobs = (jobs, formIds, forms) => ({\n type: types.JOBS_BACKLOG_ASSIGN_FORMS_COMPLETED,\n payload: { jobs, formIds, forms }\n});\nexport const failAssignFormsJobs = (oldJobs, error) => ({\n type: types.JOBS_BACKLOG_ASSIGN_FORMS_FAILED,\n payload: {\n oldJobs,\n error\n }\n});\n\nexport const startAssignFilesJobs = (jobs, fileIds) => ({\n type: types.JOBS_BACKLOG_ASSIGN_FILES_STARTED,\n payload: { jobs, fileIds }\n});\nexport const completeAssignFilesJobs = (jobs, order) => ({\n type: types.JOBS_BACKLOG_ASSIGN_FILES_COMPLETED,\n payload: { jobs, order }\n});\nexport const failAssignFilesJobs = (oldJobs, error) => ({\n type: types.JOBS_BACKLOG_ASSIGN_FILES_FAILED,\n payload: {\n oldJobs,\n error\n }\n});\n\nexport const startRescheduleJobs = (jobs, startDate, dueDate, comment) => ({\n type: types.JOBS_BACKLOG_RESCHEDULE_JOBS_STARTED,\n payload: { jobs, startDate, dueDate, comment }\n});\nexport const completeRescheduleJobs = (jobs, startDate, dueDate, comment) => ({\n type: types.JOBS_BACKLOG_RESCHEDULE_JOBS_COMPLETED,\n payload: { jobs, startDate, dueDate, comment }\n});\nexport const failRescheduleJobs = (oldJobs, error) => ({\n type: types.JOBS_BACKLOG_RESCHEDULE_JOBS_FAILED,\n payload: {\n oldJobs,\n error\n }\n});\n\nexport const startImportingJobs = (organizationId, divisionId, subdivisionId, jobs) => ({\n type: types.JOBS_BACKLOG_IMPORT_STARTED,\n payload: {\n organizationId,\n divisionId,\n subdivisionId,\n jobs\n }\n});\nexport const completeImportingJobs = (entities, order) => ({\n type: types.JOBS_BACKLOG_IMPORT_COMPLETED,\n payload: {\n entities,\n order\n }\n});\nexport const failImportingJobs = (error) => ({\n type: types.JOBS_BACKLOG_IMPORT_FAILED,\n payload: {\n error\n }\n});\n","import { useState } from 'react';\nimport { useSelector } from 'react-redux';\nimport { Button, Tooltip, Spinner } from 'reactstrap';\nimport Icon from 'utility/icomoon';\nimport * as authSelectors from '../../../redux/reducers/auth';\n\ninterface Props {\n id: string;\n icon: string;\n permissions?: any[];\n isDisabled?: boolean;\n handleClick: any;\n className?: string;\n tooltipMessage?: any;\n visible?: boolean;\n color?: string;\n iconSize?: number;\n isLoading?: boolean;\n}\n\nconst DefaultButton = (props: Props) => {\n const store = useSelector((state) => state);\n const {\n isDisabled,\n isLoading = false,\n handleClick,\n tooltipMessage,\n icon,\n id,\n permissions,\n color,\n className,\n iconSize = 16,\n visible = true\n } = props;\n const [tooltipOpen, setTooltipOpen] = useState(false);\n const toggle = () => setTooltipOpen(!tooltipOpen);\n return (!permissions || authSelectors.getAuthUserHasPermissionsAny(store, permissions)) &&\n visible ? (\n \n {isLoading ? (\n <>\n \n \n ) : (\n \n )}\n\n {!isDisabled && tooltipMessage && (\n \n {tooltipMessage}\n \n )}\n \n ) : null;\n};\n\nDefaultButton.defaultProps = {\n id: 'DefaultButton',\n icon: 'Plus',\n isDisabled: false,\n className: ''\n};\n\nexport default DefaultButton;\n","import * as types from 'views/screens/Contacts/types';\n\nexport const startFetchingContacts = (query: any = {}) => ({\n type: types.CONTACTS_FETCH_STARTED,\n payload: { query }\n});\nexport const completeFetchingContacts = (entities, order) => ({\n type: types.CONTACTS_FETCH_COMPLETED,\n payload: {\n entities,\n order\n }\n});\nexport const failFetchingContacts = (error = { errorMessage: 'Error', errorNumber: 404 }) => ({\n type: types.CONTACTS_FETCH_FAILED,\n payload: {\n error //error:{errorMessage:'Error', errorNumber:400}\n }\n});\n\nexport const startPartialFetchingContacts = (entityTypeId) => ({\n type: types.CONTACTS_PARTIAL_FETCH_STARTED,\n payload: { entityTypeId }\n});\nexport const completePartialFetchingContacts = (entities, order) => ({\n type: types.CONTACTS_PARTIAL_FETCH_COMPLETED,\n payload: {\n entities,\n order\n }\n});\nexport const failPartialFetchingContacts = (\n error = { errorMessage: 'Error', errorNumber: 404 }\n) => ({\n type: types.CONTACTS_PARTIAL_FETCH_FAILED,\n payload: {\n error //error:{errorMessage:'Error', errorNumber:400}\n }\n});\n\nexport const startAddingContact = (contact) => ({\n type: types.CONTACT_ADD_STARTED,\n payload: contact\n});\nexport const completeAddingContact = (oldId, contact) => ({\n type: types.CONTACT_ADD_COMPLETED,\n payload: { oldId, contact }\n});\nexport const failAddingContact = (oldId, error) => ({\n type: types.CONTACT_ADD_FAILED,\n payload: {\n oldId,\n error\n }\n});\n\nexport const startEditingContact = (contact) => ({\n type: types.CONTACT_EDIT_STARTED,\n payload: contact\n});\nexport const completeEditingContact = (contact) => ({\n type: types.CONTACT_EDIT_COMPLETED,\n payload: contact\n});\nexport const failEditingContact = (oldContact, error) => ({\n type: types.CONTACT_EDIT_FAILED,\n payload: {\n oldContact,\n error\n }\n});\n\nexport const startRemovingContact = (contacts, contactsName) => ({\n type: types.CONTACT_REMOVE_STARTED,\n payload: {\n contacts,\n contactsName\n }\n});\nexport const completeRemovingContact = (contacts, contactsName) => ({\n type: types.CONTACT_REMOVE_COMPLETED,\n payload: {\n contacts,\n contactsName\n }\n});\nexport const failRemovingContact = (contacts, error) => ({\n type: types.CONTACT_REMOVE_FAILED,\n payload: {\n contacts,\n error\n }\n});\n\nexport const selectContact = (contactId) => ({\n type: types.CONTACT_SELECTED,\n payload: contactId\n});\n\nexport const deselectContact = (contactId) => ({\n type: types.CONTACT_DESELECTED,\n payload: contactId\n});\n\nexport const deselectAllContacts = (\n contactIds = [] //List of ContactIds\n) => ({\n type: types.CONTACTS_ALL_DESELECTED,\n payload: contactIds\n});\n","import * as types from '../types';\n\nexport const startFetchingOrganizations = (filters = {}) => ({\n type: types.ORGANIZATIONS_FETCH_STARTED,\n payload: filters\n});\nexport const completeFetchingOrganizations = (entities, order) => ({\n type: types.ORGANIZATIONS_FETCH_COMPLETED,\n payload: {\n entities,\n order\n }\n});\nexport const failFetchingOrganizations = (error = { errorMessage: 'Error', errorNumber: 404 }) => ({\n type: types.ORGANIZATIONS_FETCH_FAILED,\n payload: {\n error //error:{errorMessage:'Error', errorNumber:400}\n }\n});\n\nexport const startPartialFetchingOrganizations = (entityTypeId) => ({\n type: types.ORGANIZATIONS_PARTIAL_FETCH_STARTED,\n payload: entityTypeId\n});\nexport const completePartialFetchingOrganizations = (entities, order) => ({\n type: types.ORGANIZATIONS_PARTIAL_FETCH_COMPLETED,\n payload: {\n entities,\n order\n }\n});\nexport const failPartialFetchingOrganizations = (\n error = { errorMessage: 'Error', errorNumber: 404 }\n) => ({\n type: types.ORGANIZATIONS_PARTIAL_FETCH_FAILED,\n payload: {\n error //error:{errorMessage:'Error', errorNumber:400}\n }\n});\n\nexport const startAddingOrganization = (organization, isSelected = false) => ({\n type: types.ORGANIZATION_ADD_STARTED,\n payload: { organization, isSelected }\n});\nexport const completeAddingOrganization = (oldId, organization) => ({\n type: types.ORGANIZATION_ADD_COMPLETED,\n payload: { oldId, organization }\n});\nexport const failAddingOrganization = (oldId, error) => ({\n type: types.ORGANIZATION_ADD_FAILED,\n payload: {\n oldId,\n error\n }\n});\n\nexport const startEditingOrganization = (organization) => ({\n type: types.ORGANIZATION_EDIT_STARTED,\n payload: organization\n});\nexport const completeEditingOrganization = (organization) => ({\n type: types.ORGANIZATION_EDIT_COMPLETED,\n payload: organization\n});\nexport const failEditingOrganization = (oldOrganization, error) => ({\n type: types.ORGANIZATION_EDIT_FAILED,\n payload: {\n oldOrganization,\n error\n }\n});\n\nexport const startSavingConsolidableEvents = (organization, consolidableEvents) => ({\n type: types.ORGANIZATION_SAVE_CONSOLIDABLE_EVENTS_STARTED,\n payload: { organization, consolidableEvents }\n});\nexport const completeSavingConsolidableEvents = (organizationId, consolidableEvents) => ({\n type: types.ORGANIZATION_SAVE_CONSOLIDABLE_EVENTS_COMPLETED,\n payload: { organizationId, consolidableEvents }\n});\nexport const failSavingConsolidableEvents = (oldOrganization, error) => ({\n type: types.ORGANIZATION_SAVE_CONSOLIDABLE_EVENTS_FAILED,\n payload: {\n oldOrganization,\n error\n }\n});\n\nexport const startRemovingOrganization = (organizationId) => ({\n type: types.ORGANIZATION_REMOVE_STARTED,\n payload: {\n organizationId\n }\n});\nexport const completeRemovingOrganization = (organizationId) => ({\n type: types.ORGANIZATION_REMOVE_COMPLETED,\n payload: {\n organizationId\n }\n});\nexport const failRemovingOrganization = (organizationId, error) => ({\n type: types.ORGANIZATION_REMOVE_FAILED,\n payload: {\n organizationId,\n error\n }\n});\n\nexport const selectOrganization = (organizationId) => ({\n type: types.ORGANIZATION_SELECTED,\n payload: organizationId\n});\n\nexport const selectAllOrganizations = (\n organizationIds = [] //List of OrganizationIds\n) => ({\n type: types.ORGANIZATIONS_ALL_SELECTED,\n payload: organizationIds\n});\n\nexport const deselectOrganization = (organizationId) => ({\n type: types.ORGANIZATION_DESELECTED,\n payload: organizationId\n});\n\nexport const deselectAllOrganizations = (\n organizationIds = [] //List of OrganizationIds\n) => ({\n type: types.ORGANIZATIONS_ALL_DESELECTED,\n payload: organizationIds\n});\n\nexport const startCheckingCode = (organizationId, code) => ({\n type: types.ORGANIZATION_CODE_CHECK_STARTED,\n payload: {\n organizationId,\n code\n }\n});\nexport const completeCheckingCode = (result) => ({\n type: types.ORGANIZATION_CODE_CHECK_COMPLETED,\n payload: result\n});\nexport const failCheckingCode = (error) => ({\n type: types.ORGANIZATION_CODE_CHECK_FAILED,\n payload: {\n error\n }\n});\n\nexport const startAssigningCode = (\n operatorId,\n organizationId,\n organizationName,\n registrationCode,\n registrationMails,\n registrationDivisionId,\n registrationSubdivisionId,\n allowedApplications\n) => ({\n type: types.ORGANIZATION_CODE_ASSIGN_STARTED,\n payload: {\n operatorId,\n organizationId,\n organizationName,\n registrationCode,\n registrationMails,\n registrationDivisionId,\n registrationSubdivisionId,\n allowedApplications\n }\n});\nexport const completeAssigningCode = (\n organizationId,\n registrationCode,\n allowedApplications,\n registrationDivisionId,\n registrationSubdivisionId\n) => ({\n type: types.ORGANIZATION_CODE_ASSIGN_COMPLETED,\n payload: {\n organizationId,\n registrationCode,\n allowedApplications,\n registrationDivisionId,\n registrationSubdivisionId\n }\n});\nexport const failAssigningCode = (error) => ({\n type: types.ORGANIZATION_CODE_ASSIGN_FAILED,\n payload: {\n error\n }\n});\n\nexport const startAddingOrganizationDowntimeReason = (downtimeReason) => ({\n type: types.ORGANIZATION_DOWNTIME_REASON_ADD_STARTED,\n payload: downtimeReason\n});\nexport const completeAddingOrganizationDowntimeReason = (oldId, downtimeReason) => ({\n type: types.ORGANIZATION_DOWNTIME_REASON_ADD_COMPLETED,\n payload: { oldId, downtimeReason }\n});\nexport const failAddingOrganizationDowntimeReason = (oldId, error) => ({\n type: types.ORGANIZATION_DOWNTIME_REASON_ADD_FAILED,\n payload: {\n oldId,\n error\n }\n});\n\nexport const startEditingOrganizationDowntimeReason = (downtimeReason) => ({\n type: types.ORGANIZATION_DOWNTIME_REASON_EDIT_STARTED,\n payload: downtimeReason\n});\nexport const completeEditingOrganizationDowntimeReason = (downtimeReason) => ({\n type: types.ORGANIZATION_DOWNTIME_REASON_EDIT_COMPLETED,\n payload: downtimeReason\n});\nexport const failEditingOrganizationDowntimeReason = (oldDowntimeReason, error) => ({\n type: types.ORGANIZATION_DOWNTIME_REASON_EDIT_FAILED,\n payload: {\n oldDowntimeReason,\n error\n }\n});\n\nexport const startRemovingOrganizationDowntimeReason = (downtimeReason) => ({\n type: types.ORGANIZATION_DOWNTIME_REASON_REMOVE_STARTED,\n payload: downtimeReason\n});\nexport const completeRemovingOrganizationDowntimeReason = (reasonId) => ({\n type: types.ORGANIZATION_DOWNTIME_REASON_REMOVE_COMPLETED,\n payload: {\n reasonId\n }\n});\nexport const failRemovingOrganizationDowntimeReason = (reasonId, error) => ({\n type: types.ORGANIZATION_DOWNTIME_REASON_REMOVE_FAILED,\n payload: {\n reasonId,\n error\n }\n});\n","/* -------------------------------------------------------------------------- */\n/* Componente NumericInput */\n/* -------------------------------------------------------------------------- */\n// Este componente contiene un NumericInput genĆ©rico que se utiliza en muchas pantallas de la aplicaciĆ³n.\n// Incluye fechas para aumentar la cantidad en incrementos de 1\n\nimport { useState, useEffect, FC } from 'react';\nimport { useSelector } from 'react-redux';\nimport { FormattedMessage } from 'react-intl';\nimport { Label, FormGroup, InputGroup, InputGroupAddon, Input } from 'reactstrap';\nimport * as authSelectors from '../../../redux/reducers/auth';\nimport { isNotNullOrUndefined, isNullOrUndefined, testIsNumber } from 'utility/Utils';\nimport { ControllerFieldState, ControllerRenderProps } from 'react-hook-form';\n\ninterface Props {\n id: string | number | symbol;\n label?: string | JSX.Element;\n field: ControllerRenderProps | any;\n fieldstate: ControllerFieldState | any;\n required?: boolean;\n errorMessage?: string;\n placeholder?: string;\n autoCompleteInput?: any;\n prependcomponent?: string | any;\n appendcomponent?: string | any;\n metric?:\n | 'distance'\n | 'distance2'\n | 'fuel'\n | 'fuel2'\n | 'speed'\n | 'temperature'\n | 'capacity'\n | 'volume';\n min?: number;\n max?: number;\n step?: number;\n allowUndefined?: boolean;\n useNumberSpinner?: boolean;\n disabled?: boolean;\n allowDecimals?: boolean;\n decimalsPrecision?: number;\n additionalonchangefunction?: (value: number | undefined) => void;\n forceinitialvalue?: number;\n topRightComponent?: any;\n style?: any;\n allowZero?: boolean;\n forceShowDecimals?: boolean;\n onFocus?: (event) => void;\n readonly?: boolean;\n}\n\nconst NumericalInput: FC = ({\n id,\n label,\n required,\n field,\n fieldstate,\n errorMessage,\n min,\n max,\n step = '1',\n useNumberSpinner,\n allowUndefined = true,\n metric,\n prependcomponent,\n appendcomponent,\n placeholder,\n allowDecimals,\n decimalsPrecision = 10,\n additionalonchangefunction,\n forceinitialvalue,\n autoCompleteInput,\n topRightComponent,\n disabled = false,\n style = {},\n allowZero,\n forceShowDecimals,\n onFocus\n}) => {\n const [fieldValue, setInputValue] = useState(field.value);\n\n const { authSystems } = useSelector((state) => ({\n authSystems: authSelectors.getAuthSystems(state)\n }));\n\n const handleChangeNumber = (newValue) => {\n const validate = () => {\n const isEmptyString =\n typeof newValue === 'string' && // is a string\n newValue === '';\n const isNumber = !isNaN(Number(newValue));\n const hasNumberFormat = testIsNumber(newValue);\n\n return (\n isEmptyString || // regex that test number\n isNumber || // is not NaN\n hasNumberFormat // is a number\n );\n };\n\n if (validate()) {\n setInputValue(newValue);\n }\n };\n\n const onChangeFinal = (value) => {\n if (value) {\n let newValue: number | string = Math.max(Number(min), Math.min(Number(max), Number(value)));\n if (!allowDecimals) {\n newValue = Math.round(newValue);\n } else if (allowDecimals && forceShowDecimals) {\n newValue = Number(newValue).toFixed(decimalsPrecision);\n } else {\n newValue = Number(newValue.toFixed(decimalsPrecision));\n }\n handleChangeNumber(newValue);\n field.onChange(newValue);\n if (additionalonchangefunction) {\n additionalonchangefunction(Number(newValue));\n }\n } else if ((value === 0 || value === '0') && allowZero) {\n let newValue: string | number = Math.max(Number(min), Math.min(Number(max), Number(value)));\n if (!allowDecimals) {\n newValue = Math.round(newValue);\n } else if (allowDecimals && forceShowDecimals) {\n newValue = Number(newValue).toFixed(decimalsPrecision);\n } else {\n newValue = Number(newValue.toFixed(decimalsPrecision));\n }\n handleChangeNumber(newValue);\n field.onChange(newValue);\n if (additionalonchangefunction) {\n additionalonchangefunction(Number(newValue));\n }\n } else {\n field.onChange(undefined);\n if (additionalonchangefunction) {\n additionalonchangefunction(undefined);\n }\n }\n };\n\n const handleKeyDown = (event) => {\n if (allowDecimals) {\n if (event.key === '+' || event.key === 'e' || event.key === 'E') {\n event.preventDefault();\n }\n } else {\n if (event.key === '+' || event.key === 'e' || event.key === 'E' || event.key === '.') {\n event.preventDefault();\n }\n }\n\n if (event.key === '-' && min && min > 0) {\n event.preventDefault();\n }\n\n // avoid double dash\n if (event.target.value.length == 0 && event?.key === '-') {\n event.target.value = '';\n }\n if (event.target.value.length > 0 && event?.key === '-') {\n event.preventDefault();\n }\n // avoid double dash\n };\n\n useEffect(() => {\n handleChangeNumber(field.value);\n onChangeFinal(field.value);\n }, [field.value]);\n\n useEffect(() => {\n if (forceinitialvalue) handleChangeNumber(forceinitialvalue);\n if (forceinitialvalue) onChangeFinal(forceinitialvalue);\n }, [forceinitialvalue]);\n return (\n \n \n\n \n {prependcomponent && (\n {prependcomponent}\n )}\n\n {\n onChangeFinal(fieldValue);\n }}\n min={min}\n max={max}\n invalid={fieldstate.error != null}\n type=\"number\"\n step={allowDecimals ? 'any' : step}\n onKeyDown={handleKeyDown}\n onChange={(event) => {\n handleChangeNumber(event.target.value);\n }}\n value={fieldValue ?? ''}\n placeholder={placeholder}\n autoComplete={autoCompleteInput}\n onFocus={onFocus}\n />\n {(appendcomponent || metric) && (\n \n {metric ? authSystems[metric] : appendcomponent}\n \n )}\n \n {fieldstate.error && (\n
\n {fieldstate.error?.message || errorMessage || (\n \n )}\n
\n )}\n
\n );\n};\n\nNumericalInput.defaultProps = {\n min: -10000000000,\n max: 100000000000,\n step: 1,\n allowDecimals: false,\n decimalsPrecision: 2,\n useNumberSpinner: false,\n readonly: false\n};\n\nexport default NumericalInput;\n","import * as types from '../types';\n\nexport const startFetchingLocations = (filters = {}) => ({\n type: types.LOCATIONS_FETCH_STARTED,\n payload: filters\n});\nexport const completeFetchingLocations = (entities, order, operatorId, organizationId) => ({\n type: types.LOCATIONS_FETCH_COMPLETED,\n payload: {\n entities,\n order,\n operatorId,\n organizationId\n }\n});\nexport const failFetchingLocations = (error = { errorMessage: 'Error', errorNumber: 404 }) => ({\n type: types.LOCATIONS_FETCH_FAILED,\n payload: {\n error //error:{errorMessage:'Error', errorNumber:400}\n }\n});\n\nexport const startPartialFetchingLocations = (\n entityTypeId,\n operatorId = null,\n organizationId = null\n) => ({\n type: types.LOCATIONS_PARTIAL_FETCH_STARTED,\n payload: { entityTypeId, operatorId, organizationId }\n});\nexport const completePartialFetchingLocations = (entities, order, operatorId, organizationId) => ({\n type: types.LOCATIONS_PARTIAL_FETCH_COMPLETED,\n payload: {\n entities,\n order,\n operatorId,\n organizationId\n }\n});\nexport const failPartialFetchingLocations = (\n error = { errorMessage: 'Error', errorNumber: 404 }\n) => ({\n type: types.LOCATIONS_PARTIAL_FETCH_FAILED,\n payload: {\n error //error:{errorMessage:'Error', errorNumber:400}\n }\n});\n\nexport const startAddingLocation = (location) => ({\n type: types.LOCATION_ADD_STARTED,\n payload: location\n});\nexport const completeAddingLocation = (oldId, location) => ({\n type: types.LOCATION_ADD_COMPLETED,\n payload: { oldId, location }\n});\nexport const failAddingLocation = (oldId, error) => ({\n type: types.LOCATION_ADD_FAILED,\n payload: {\n oldId,\n error\n }\n});\n\nexport const startEditingLocation = (location) => ({\n type: types.LOCATION_EDIT_STARTED,\n payload: location\n});\nexport const completeEditingLocation = (location) => ({\n type: types.LOCATION_EDIT_COMPLETED,\n payload: location\n});\nexport const failEditingLocation = (oldLocation, error) => ({\n type: types.LOCATION_EDIT_FAILED,\n payload: {\n oldLocation,\n error\n }\n});\n\nexport const startRemovingLocation = (locationId) => ({\n type: types.LOCATION_REMOVE_STARTED,\n payload: {\n locationId\n }\n});\nexport const completeRemovingLocation = (locationId) => ({\n type: types.LOCATION_REMOVE_COMPLETED,\n payload: {\n locationId\n }\n});\nexport const failRemovingLocation = (locationId, error) => ({\n type: types.LOCATION_REMOVE_FAILED,\n payload: {\n locationId,\n error\n }\n});\n\nexport const startImportingLocations = (organizationId, divisionId, subdivisionId, locations) => ({\n type: types.LOCATIONS_IMPORT_STARTED,\n payload: {\n organizationId,\n divisionId,\n subdivisionId,\n locations\n }\n});\nexport const completeImportingLocations = (entities, order) => ({\n type: types.LOCATIONS_IMPORT_COMPLETED,\n payload: {\n entities,\n order\n }\n});\nexport const failImportingLocations = (error) => ({\n type: types.LOCATIONS_IMPORT_FAILED,\n payload: {\n error\n }\n});\n\nexport const selectLocation = (locationId) => ({\n type: types.LOCATION_SELECTED,\n payload: locationId\n});\n\nexport const selectAllLocations = (\n locationIds: any[] = [] //List of LocationIds\n) => ({\n type: types.LOCATIONS_ALL_SELECTED,\n payload: locationIds\n});\n\nexport const deselectLocation = (locationId) => ({\n type: types.LOCATION_DESELECTED,\n payload: locationId\n});\n\nexport const deselectAllLocations = (\n locationIds: any[] = [] //List of LocationIds\n) => ({\n type: types.LOCATIONS_ALL_DESELECTED,\n payload: locationIds\n});\n\nexport const showLocationInMap = (locationId) => ({\n type: types.LOCATION_SHOW_IN_MAP,\n payload: locationId\n});\n\nexport const showAllLocationsInMap = (\n locationIds: any[] = [] //List of LocationIds\n) => ({\n type: types.LOCATIONS_ALL_SHOW_IN_MAP,\n payload: locationIds\n});\n\nexport const hideLocationInMap = (locationId) => ({\n type: types.LOCATION_HIDE_IN_MAP,\n payload: locationId\n});\n\nexport const hideAllLocationsInMap = (\n locationIds: any[] = [] //List of LocationIds\n) => ({\n type: types.LOCATIONS_ALL_HIDE_IN_MAP,\n payload: locationIds\n});\n","import * as types from '../types';\n\nexport const startFetchingGroups = (filters = {}) => ({\n type: types.GROUPS_FETCH_STARTED,\n payload: filters\n});\nexport const completeFetchingGroups = (entities, order, operatorId, organizationId) => ({\n type: types.GROUPS_FETCH_COMPLETED,\n payload: {\n entities,\n order,\n operatorId,\n organizationId\n }\n});\nexport const failFetchingGroups = (error = { errorMessage: 'Error', errorNumber: 404 }) => ({\n type: types.GROUPS_FETCH_FAILED,\n payload: {\n error //error:{errorMessage:'Error', errorNumber:400}\n }\n});\n\nexport const startPartialFetchingGroups = (\n entityTypeId,\n operatorId = null,\n organizationId = null\n) => ({\n type: types.GROUPS_PARTIAL_FETCH_STARTED,\n payload: { entityTypeId, operatorId, organizationId }\n});\nexport const completePartialFetchingGroups = (entities, order, operatorId, organizationId) => ({\n type: types.GROUPS_PARTIAL_FETCH_COMPLETED,\n payload: {\n entities,\n order,\n operatorId,\n organizationId\n }\n});\nexport const failPartialFetchingGroups = (error = { errorMessage: 'Error', errorNumber: 404 }) => ({\n type: types.GROUPS_PARTIAL_FETCH_FAILED,\n payload: {\n error //error:{errorMessage:'Error', errorNumber:400}\n }\n});\n\nexport const startFetchingAllEntitiesGroups = (groupId) => ({\n type: types.GROUPS_ALL_ENTITIES_FETCH_STARTED,\n payload: groupId\n});\nexport const completeFetchingAllEntitiesGroups = (entities, groupId) => ({\n type: types.GROUPS_ALL_ENTITIES_FETCH_COMPLETED,\n payload: {\n entities,\n groupId\n }\n});\nexport const failFetchingAllEntitiesGroups = (\n error = { errorMessage: 'Error', errorNumber: 404 }\n) => ({\n type: types.GROUPS_ALL_ENTITIES_FETCH_FAILED,\n payload: {\n error //error:{errorMessage:'Error', errorNumber:400}\n }\n});\n\nexport const startAddingGroup = (group, users, userInSession, additionalOnSave?: () => void) => ({\n type: types.GROUP_ADD_STARTED,\n payload: { group, users, additionalOnSave }\n});\nexport const completeAddingGroup = (oldId, group) => ({\n type: types.GROUP_ADD_COMPLETED,\n payload: { oldId, group }\n});\nexport const failAddingGroup = (oldId, error) => ({\n type: types.GROUP_ADD_FAILED,\n payload: {\n oldId,\n error\n }\n});\n\nexport const startAddingGroupWithEntities = (\n group,\n userInSession,\n entityType,\n entities,\n params\n) => ({\n type: types.GROUP_ADD_WITH_ENTITIES_STARTED,\n payload: { group, userInSession, entityType, entities, params }\n});\nexport const completeAddingGroupWithEntities = (oldId, group) => ({\n type: types.GROUP_ADD_WITH_ENTITIES_COMPLETED,\n payload: { oldId, group }\n});\nexport const failAddingGroupWithEntities = (oldId, error) => ({\n type: types.GROUP_ADD_WITH_ENTITIES_FAILED,\n payload: {\n oldId,\n error\n }\n});\n\nexport const startEditingGroup = (group) => ({\n type: types.GROUP_EDIT_STARTED,\n payload: group\n});\nexport const completeEditingGroup = (group) => ({\n type: types.GROUP_EDIT_COMPLETED,\n payload: group\n});\nexport const failEditingGroup = (oldGroup, error) => ({\n type: types.GROUP_EDIT_FAILED,\n payload: {\n oldGroup,\n error\n }\n});\n\nexport const startRemovingGroup = (groupId) => ({\n type: types.GROUP_REMOVE_STARTED,\n payload: {\n groupId\n }\n});\nexport const completeRemovingGroup = (groupId) => ({\n type: types.GROUP_REMOVE_COMPLETED,\n payload: {\n groupId\n }\n});\nexport const failRemovingGroup = (groupId, error) => ({\n type: types.GROUP_REMOVE_FAILED,\n payload: {\n groupId,\n error\n }\n});\n\nexport const startLeavingGroup = (groupId, isAsesor, asesorUsername) => ({\n type: types.GROUP_LEAVE_STARTED,\n payload: {\n groupId,\n isAsesor,\n asesorUsername\n }\n});\nexport const completeLeavingGroup = (groupId, isAsesor, asesorUsername) => ({\n type: types.GROUP_LEAVE_COMPLETED,\n payload: {\n groupId,\n isAsesor,\n asesorUsername\n }\n});\nexport const failLeavingGroup = (groupId, error) => ({\n type: types.GROUP_LEAVE_FAILED,\n payload: {\n groupId,\n error\n }\n});\n\nexport const startEditingNotificationsConfigurationGroup = (group) => ({\n type: types.GROUP_EDIT_NOTIFICATIONS_CONFIGURATION_STARTED,\n payload: group\n});\nexport const completeEditingNotificationsConfigurationGroup = (group) => ({\n type: types.GROUP_EDIT_NOTIFICATIONS_CONFIGURATION_COMPLETED,\n payload: group\n});\nexport const failEditingNotificationsConfigurationGroup = (oldGroup, error) => ({\n type: types.GROUP_EDIT_NOTIFICATIONS_CONFIGURATION_FAILED,\n payload: {\n oldGroup,\n error\n }\n});\n\nexport const startRemovingEntitiesFromGroup = (group, entityType, entities) => ({\n type: types.GROUP_REMOVE_ENTITIES_STARTED,\n payload: { group, entityType, entities }\n});\nexport const completeRemovingEntitiesFromGroup = (groupId, entityType, entities) => ({\n type: types.GROUP_REMOVE_ENTITIES_COMPLETED,\n payload: { groupId, entityType, entities }\n});\n\nexport const startAddingEntitiesToGroup = (group, entityType, entities, params) => ({\n type: types.GROUP_ADD_ENTITIES_STARTED,\n payload: { group, entityType, entities, params }\n});\nexport const completeAddingEntitiesToGroup = (group, entityType, entities, params) => ({\n type: types.GROUP_ADD_ENTITIES_COMPLETED,\n payload: { group, entityType, entities, params }\n});\n\nexport const startEditingUserProfileInGroup = (\n groupId,\n userName,\n userNameInSession,\n profileId\n) => ({\n type: types.GROUP_USER_PROFILE_EDIT_STARTED,\n payload: { groupId, userName, userNameInSession, profileId }\n});\nexport const completeEditingUserProfileInGroup = (\n groupId,\n userName,\n userNameInSession,\n profileId\n) => ({\n type: types.GROUP_USER_PROFILE_EDIT_COMPLETED,\n payload: { groupId, userName, userNameInSession, profileId }\n});\n\nexport const selectGroup = (groupId) => ({\n type: types.GROUP_SELECTED,\n payload: groupId\n});\n\nexport const selectAllGroups = (\n groupIds = [] //List of GroupIds\n) => ({\n type: types.GROUPS_ALL_SELECTED,\n payload: groupIds\n});\n\nexport const deselectGroup = (groupId) => ({\n type: types.GROUP_DESELECTED,\n payload: groupId\n});\n\nexport const deselectAllGroups = (\n groupIds = [] //List of GroupIds\n) => ({\n type: types.GROUPS_ALL_DESELECTED,\n payload: groupIds\n});\n","import * as types from '../../types/workplans';\n\nexport const startFetchingWorkplans = (filters = {}) => ({\n type: types.WORKPLANS_FETCH_STARTED,\n payload: filters\n});\nexport const completeFetchingWorkplans = (entities, order, operatorId, organizationId) => ({\n type: types.WORKPLANS_FETCH_COMPLETED,\n payload: {\n entities,\n order,\n operatorId,\n organizationId\n }\n});\nexport const failFetchingWorkplans = (error = { errorMessage: 'Error', errorNumber: 404 }) => ({\n type: types.WORKPLANS_FETCH_FAILED,\n payload: {\n error //error:{errorMessage:'Error', errorNumber:400}\n }\n});\n\nexport const startPartialFetchingWorkplans = (\n entityTypeId,\n operatorId = null,\n organizationId = null\n) => ({\n type: types.WORKPLANS_PARTIAL_FETCH_STARTED,\n payload: { entityTypeId, operatorId, organizationId }\n});\nexport const completePartialFetchingWorkplans = (entities, order, operatorId, organizationId) => ({\n type: types.WORKPLANS_PARTIAL_FETCH_COMPLETED,\n payload: {\n entities,\n order,\n operatorId,\n organizationId\n }\n});\nexport const failPartialFetchingWorkplans = (\n error = { errorMessage: 'Error', errorNumber: 404 }\n) => ({\n type: types.WORKPLANS_PARTIAL_FETCH_FAILED,\n payload: {\n error //error:{errorMessage:'Error', errorNumber:400}\n }\n});\n\nexport const completeFetchingWorkplanLocations = (workplanId, locations) => ({\n type: types.WORKPLAN_LOCATIONS_FETCH_COMPLETED,\n payload: {\n workplanId,\n locations\n }\n});\nexport const failFetchingWorkplanLocations = (\n error = { errorMessage: 'Error', errorNumber: 404 }\n) => ({\n type: types.WORKPLAN_LOCATIONS_FETCH_FAILED,\n payload: {\n error //error:{errorMessage:'Error', errorNumber:400}\n }\n});\n\nexport const startAddingWorkplan = (workplan) => ({\n type: types.WORKPLAN_ADD_STARTED,\n payload: workplan\n});\nexport const completeAddingWorkplan = (oldId, workplan) => ({\n type: types.WORKPLAN_ADD_COMPLETED,\n payload: { oldId, workplan }\n});\nexport const failAddingWorkplan = (oldId, error) => ({\n type: types.WORKPLAN_ADD_FAILED,\n payload: {\n oldId,\n error\n }\n});\n\nexport const startEditingWorkplan = (workplan) => ({\n type: types.WORKPLAN_EDIT_STARTED,\n payload: workplan\n});\nexport const completeEditingWorkplan = (workplan) => ({\n type: types.WORKPLAN_EDIT_COMPLETED,\n payload: workplan\n});\nexport const failEditingWorkplan = (oldWorkplan, error) => ({\n type: types.WORKPLAN_EDIT_FAILED,\n payload: {\n oldWorkplan,\n error\n }\n});\n\nexport const startRemovingWorkplan = (workplanId) => ({\n type: types.WORKPLAN_REMOVE_STARTED,\n payload: {\n workplanId\n }\n});\nexport const completeRemovingWorkplan = (workplanId) => ({\n type: types.WORKPLAN_REMOVE_COMPLETED,\n payload: {\n workplanId\n }\n});\nexport const failRemovingWorkplan = (workplanId, error) => ({\n type: types.WORKPLAN_REMOVE_FAILED,\n payload: {\n workplanId,\n error\n }\n});\n\nexport const selectWorkplan = (workplanId) => ({\n type: types.WORKPLAN_SELECTED,\n payload: workplanId\n});\n\nexport const selectAllWorkplans = (\n workplanIds = [] //List of WorkplanIds\n) => ({\n type: types.WORKPLANS_ALL_SELECTED,\n payload: workplanIds\n});\n\nexport const deselectWorkplan = (workplanId) => ({\n type: types.WORKPLAN_DESELECTED,\n payload: workplanId\n});\n\nexport const deselectAllWorkplans = (\n workplanIds = [] //List of WorkplanIds\n) => ({\n type: types.WORKPLANS_ALL_DESELECTED,\n payload: workplanIds\n});\n\nexport const startCopyWorkplan = (\n workplanId,\n newWorkplanName,\n organizationId,\n divisionId,\n subdivisionId\n) => ({\n type: types.WORKPLAN_COPY_STARTED,\n payload: { workplanId, newWorkplanName, organizationId, divisionId, subdivisionId }\n});\nexport const completeCopyWorkplan = (\n workplanId,\n newWorkplanId,\n newWorkplanName,\n organizationId,\n divisionId,\n subdivisionId\n) => ({\n type: types.WORKPLAN_COPY_COMPLETED,\n payload: { workplanId, newWorkplanId, newWorkplanName, organizationId, divisionId, subdivisionId }\n});\nexport const failCopyWorkplan = (error = { errorMessage: 'Error', errorNumber: 404 }) => ({\n type: types.WORKPLAN_COPY_FAILED,\n payload: {\n error //error:{errorMessage:'Error', errorNumber:400}\n }\n});\n\nexport const startAssignOriginGeofenceWorkplan = (\n workplanIds,\n originGeofenceId,\n originExitWindow,\n originValidationWindow\n) => ({\n type: types.WORKPLANS_ASSIGN_ORIGIN_GEOFENCE_STARTED,\n payload: { workplanIds, originGeofenceId, originExitWindow, originValidationWindow }\n});\nexport const completeAssignOriginGeofenceWorkplan = (\n workplanIds,\n originGeofenceId,\n originGeofenceName,\n originExitWindow,\n originValidationWindow\n) => ({\n type: types.WORKPLANS_ASSIGN_ORIGIN_GEOFENCE_COMPLETED,\n payload: {\n workplanIds,\n originGeofenceId,\n originGeofenceName,\n originExitWindow,\n originValidationWindow\n }\n});\nexport const failAssignOriginGeofenceWorkplan = (\n error = { errorMessage: 'Error', errorNumber: 404 }\n) => ({\n type: types.WORKPLANS_ASSIGN_ORIGIN_GEOFENCE_FAILED,\n payload: {\n error //error:{errorMessage:'Error', errorNumber:400}\n }\n});\n\nexport const startAssignWorkGeofenceWorkplan = (\n workplanIds,\n workGeofenceId,\n workGeofenceArriveWindow,\n workGeofenceMaxTime\n) => ({\n type: types.WORKPLANS_ASSIGN_WORK_AREA_GEOFENCE_STARTED,\n payload: {\n workplanIds,\n workGeofenceId,\n workGeofenceArriveWindow,\n workGeofenceMaxTime\n }\n});\nexport const completeAssignWorkGeofenceWorkplan = (\n workplanIds,\n workGeofenceId,\n workGeofenceName,\n workGeofenceArriveWindow,\n workGeofenceMaxTime\n) => ({\n type: types.WORKPLANS_ASSIGN_WORK_AREA_GEOFENCE_COMPLETED,\n payload: {\n workplanIds,\n workGeofenceId,\n workGeofenceName,\n workGeofenceArriveWindow,\n workGeofenceMaxTime\n }\n});\nexport const failAssignWorkGeofenceWorkplan = (\n error = { errorMessage: 'Error', errorNumber: 404 }\n) => ({\n type: types.WORKPLANS_ASSIGN_WORK_AREA_GEOFENCE_FAILED,\n payload: {\n error //error:{errorMessage:'Error', errorNumber:400}\n }\n});\n\nexport const startAssignDestinationGeofenceWorkplan = (workplanIds, destinationGeofenceId) => ({\n type: types.WORKPLANS_ASSIGN_DESTINATION_GEOFENCE_STARTED,\n payload: { workplanIds, destinationGeofenceId }\n});\nexport const completeAssignDestinationGeofenceWorkplan = (\n workplanIds,\n destinationGeofenceId,\n destinationGeofenceName\n) => ({\n type: types.WORKPLANS_ASSIGN_DESTINATION_GEOFENCE_COMPLETED,\n payload: { workplanIds, destinationGeofenceId, destinationGeofenceName }\n});\nexport const failAssignDestinationGeofenceWorkplan = (\n error = { errorMessage: 'Error', errorNumber: 404 }\n) => ({\n type: types.WORKPLANS_ASSIGN_DESTINATION_GEOFENCE_FAILED,\n payload: {\n error //error:{errorMessage:'Error', errorNumber:400}\n }\n});\n","import * as types from '../types';\n\nexport const startFetchingForms = (filters = {}) => ({\n type: types.FORMS_FETCH_STARTED,\n payload: filters\n});\nexport const completeFetchingForms = (entities, order) => ({\n type: types.FORMS_FETCH_COMPLETED,\n payload: {\n entities,\n order\n }\n});\nexport const failFetchingForms = (error = { errorMessage: 'Error', errorNumber: 404 }) => ({\n type: types.FORMS_FETCH_FAILED,\n payload: {\n error //error:{errorMessage:'Error', errorNumber:400}\n }\n});\n\nexport const startPartialFetchingForms = (filters = {}) => ({\n type: types.FORMS_PARTIAL_FETCH_STARTED,\n payload: filters\n});\nexport const completePartialFetchingForms = (entities, order) => ({\n type: types.FORMS_PARTIAL_FETCH_COMPLETED,\n payload: {\n entities,\n order\n }\n});\nexport const failPartialFetchingForms = (error = { errorMessage: 'Error', errorNumber: 404 }) => ({\n type: types.FORMS_PARTIAL_FETCH_FAILED,\n payload: {\n error //error:{errorMessage:'Error', errorNumber:400}\n }\n});\n\nexport const startFetchingFormSections = (formId) => ({\n type: types.FORM_SECTIONS_FETCH_STARTED,\n payload: formId\n});\n\nexport const completeFetchingFormSections = (entities, order, formId) => ({\n type: types.FORM_SECTIONS_FETCH_COMPLETED,\n payload: { entities, order, formId }\n});\n\nexport const failFetchingFormSections = (error = { errorMessage: 'Error', errorNumber: 404 }) => ({\n type: types.FORM_SECTIONS_FETCH_FAILED,\n payload: {\n error //error:{errorMessage:'Error', errorNumber:400}\n }\n});\n\nexport const startFetchingFormQuestions = (formId) => ({\n type: types.FORM_QUESTIONS_FETCH_STARTED,\n payload: formId\n});\n\nexport const completeFetchingFormQuestions = (entities, order, formId) => ({\n type: types.FORM_QUESTIONS_FETCH_COMPLETED,\n payload: { entities, order, formId }\n});\n\nexport const failFetchingFormQuestions = (error = { errorMessage: 'Error', errorNumber: 404 }) => ({\n type: types.FORM_QUESTIONS_FETCH_FAILED,\n payload: {\n error //error:{errorMessage:'Error', errorNumber:400}\n }\n});\n\nexport const startAddingForm = (\n formName: string,\n formDescription: string,\n organizationFormCategoryId: number,\n useBarCodes: boolean = false,\n requireSignature: boolean = false,\n copyToCustomer: boolean = false,\n formTypeId: number,\n organizationId: number,\n sections: any[],\n formUrl: string = '',\n organizationFormId?: number,\n divisionId?: number,\n subdivisionId?: number,\n notificationEmails?: string\n) => ({\n type: types.FORM_ADD_STARTED,\n payload: {\n organizationFormId,\n organizationId,\n divisionId,\n subdivisionId,\n formName,\n formDescription,\n notificationEmails,\n organizationFormCategoryId,\n formUrl,\n useBarCodes,\n requireSignature,\n copyToCustomer,\n formTypeId,\n sections\n }\n});\nexport const completeAddingForm = (oldId, form) => ({\n type: types.FORM_ADD_COMPLETED,\n payload: { oldId, form }\n});\nexport const failAddingForm = (oldId, error) => ({\n type: types.FORM_ADD_FAILED,\n payload: {\n oldId,\n error\n }\n});\n\nexport const startAddingExternal = (\n formName: string,\n formDescription: string,\n organizationFormCategoryId: number,\n useBarCodes: boolean = false,\n requireSignature: boolean = false,\n copyToCustomer: boolean,\n formTypeId: number,\n organizationId: number,\n sections?: any[],\n formUrl: string = '',\n organizationFormId?: any,\n divisionId?: number,\n subdivisionId?: number,\n notificationEmails?: string\n) => ({\n type: types.FORM_EXTERNAL_ADD_STARTED,\n payload: {\n organizationFormId,\n organizationId,\n divisionId,\n subdivisionId,\n formName,\n formDescription,\n notificationEmails,\n organizationFormCategoryId,\n formUrl,\n useBarCodes,\n requireSignature,\n copyToCustomer,\n formTypeId,\n sections\n }\n});\n\nexport const startEditingExternal = (\n formName: string,\n formDescription: string,\n organizationFormCategoryId: number,\n useBarCodes: boolean = false,\n requireSignature: boolean = false,\n copyToCustomer: boolean,\n formTypeId: number,\n organizationId: number,\n sections?: any[],\n formUrl: string = '',\n organizationFormId?: number,\n divisionId?: number,\n subdivisionId?: number,\n notificationEmails?: string\n) => ({\n type: types.FORM_EXTERNAL_EDIT_STARTED,\n payload: {\n organizationFormId,\n organizationId,\n divisionId,\n subdivisionId,\n formName,\n formDescription,\n notificationEmails,\n organizationFormCategoryId,\n formUrl,\n useBarCodes,\n requireSignature,\n copyToCustomer,\n formTypeId,\n sections\n }\n});\n\nexport const startEditingForm = (\n formName: string,\n formDescription: string,\n organizationFormCategoryId: number,\n useBarCodes: boolean = false,\n requireSignature: boolean = false,\n copyToCustomer: boolean = false,\n formTypeId: number,\n organizationId: number,\n sections: any[],\n formUrl: string = '',\n organizationFormId?: number,\n divisionId?: number,\n subdivisionId?: number,\n notificationEmails?: string\n) => ({\n type: types.FORM_EDIT_STARTED,\n payload: {\n organizationFormId,\n organizationId,\n divisionId,\n subdivisionId,\n formName,\n formDescription,\n notificationEmails,\n organizationFormCategoryId,\n formUrl,\n useBarCodes,\n requireSignature,\n copyToCustomer,\n formTypeId,\n sections\n }\n});\nexport const completeEditingForm = (form) => ({\n type: types.FORM_EDIT_COMPLETED,\n payload: form\n});\nexport const failEditingForm = (oldForm, error) => ({\n type: types.FORM_EDIT_FAILED,\n payload: {\n oldForm,\n error\n }\n});\n\nexport const startAddingSection = (sections: any[]) => ({\n type: types.FORM_SECTION_ADD_STARTED,\n payload: { sections }\n});\n\nexport const startRemovingForm = (formId) => ({\n type: types.FORM_REMOVE_STARTED,\n payload: {\n formId\n }\n});\nexport const completeRemovingForm = (formId) => ({\n type: types.FORM_REMOVE_COMPLETED,\n payload: {\n formId\n }\n});\nexport const failRemovingForm = (formId, error) => ({\n type: types.FORM_REMOVE_FAILED,\n payload: {\n formId,\n error\n }\n});\n\nexport const selectForm = (formId) => ({\n type: types.FORM_SELECTED,\n payload: formId\n});\n\nexport const selectAllForms = (\n formIds = [] //List of FormIds\n) => ({\n type: types.FORMS_ALL_SELECTED,\n payload: formIds\n});\n\nexport const deselectForm = (formId) => ({\n type: types.FORM_DESELECTED,\n payload: formId\n});\n\nexport const deselectAllForms = (\n formIds = [] //List of FormIds\n) => ({\n type: types.FORMS_ALL_DESELECTED,\n payload: formIds\n});\n\nexport const startAddingResponse = (\n organizationFormId,\n responses,\n tableResponses,\n responseDate\n) => ({\n type: types.FORM_RESPONSE_SAVE_STARTED,\n payload: {\n organizationFormId,\n responses,\n tableResponses,\n responseDate\n }\n});\n\nexport const completeAddingResponse = () => ({\n type: types.FORM_RESPONSE_SAVE_COMPLETED,\n payload: {}\n});\n\nexport const failAddingResponse = () => ({\n type: types.FORM_RESPONSE_SAVE_FAILED,\n payload: {}\n});\n\nexport const addSection = (sectionType, position, sectionId) => ({\n type: types.FORM_SECTION_ADDED,\n payload: { sectionType, position, sectionId }\n});\n\nexport const changeSectionCollapsed = (sectionId) => ({\n type: types.FORM_SECTION_CHANGE_COLLAPSED,\n payload: { sectionId }\n});\n\nexport const moveSection = (startingPosition, endingPosition) => ({\n type: types.FORM_SECTION_MOVED,\n payload: { startingPosition, endingPosition }\n});\n\nexport const editSectionName = (sectionId, sectionName) => ({\n type: types.FORM_SECTION_NAME_EDITED,\n payload: { sectionId, sectionName }\n});\n\nexport const deleteSection = (sectionId) => ({\n type: types.FORM_SECTION_DELETED,\n payload: sectionId\n});\n\nexport const copySection = (sectionId, newSectionId, newSection) => ({\n type: types.FORM_SECTION_COPIED,\n payload: { sectionId, newSectionId, newSection }\n});\n\nexport const setSections = (sectionsOrder, sectionsId) => ({\n type: types.FORM_SECTIONS_SET,\n payload: { sectionsOrder, sectionsId }\n});\n\nexport const addRow = (sectionId, rowId, name) => ({\n type: types.FORM_ROW_ADDED,\n payload: { sectionId, rowId, name }\n});\n\nexport const moveRow = (sectionId, startingPosition, endingPosition) => ({\n type: types.FORM_ROW_MOVED,\n payload: { sectionId, startingPosition, endingPosition }\n});\n\nexport const editRowName = (sectionId, rowId, name) => ({\n type: types.FORM_ROW_NAME_EDITED,\n payload: { sectionId, rowId, name }\n});\n\nexport const deleteRow = (sectionId, rowId) => ({\n type: types.FORM_ROW_DELETED,\n payload: { sectionId, rowId }\n});\n\nexport const addQuestion = (sectionId, position, questionType, questionId) => ({\n type: types.FORM_QUESTION_ADDED,\n payload: { sectionId, position, questionType, questionId }\n});\n\nexport const moveQuestion = (sectionId, startingPosition, endingPosition) => ({\n type: types.FORM_QUESTION_MOVED,\n payload: { sectionId, startingPosition, endingPosition }\n});\n\nexport const deleteQuestion = (sectionId, questionId) => ({\n type: types.FORM_QUESTION_DELETED,\n payload: { sectionId, questionId }\n});\n\nexport const copyQuestion = (sectionId, questionId, newQuestion) => ({\n type: types.FORM_QUESTION_COPIED,\n payload: { sectionId, questionId, newQuestion }\n});\n\nexport const setQuestion = (sectionId, question) => ({\n type: types.FORM_QUESTION_SET,\n payload: { sectionId, question }\n});\n\nexport const editQuestionName = (sectionId, questionId, questionName) => ({\n type: types.FORM_QUESTION_NAME_EDITED,\n payload: { sectionId, questionId, questionName }\n});\n\nexport const editQuestionHeight = (sectionId, questionId, height) => ({\n type: types.FORM_QUESTION_HEIGHT_EDITED,\n payload: { sectionId, questionId, height }\n});\n\nexport const changeQuestionCollapsed = (sectionId, questionId) => ({\n type: types.FORM_QUESTION_CHANGE_COLLAPSED,\n payload: { sectionId, questionId }\n});\n\nexport const startFetchingResponse = (organizationFormId, startDate, endDate) => ({\n type: types.FORM_RESPONSE_FETCH_STARTED,\n payload: { organizationFormId, startDate, endDate }\n});\n\nexport const completeFetchingResponse = (entities, order, formId) => ({\n type: types.FORM_RESPONSE_FETCH_COMPLETED,\n payload: { entities, order, formId }\n});\n\nexport const failFetchingResponse = (formId) => ({\n type: types.FORM_RESPONSE_FETCH_FAILED,\n payload: formId\n});\n\nexport const startResendingResponse = (organizationFormId, responseIds) => ({\n type: types.FORM_RESPONSE_RESEND_STARTED,\n payload: { organizationFormId, responseIds }\n});\n\nexport const completeResendingResponse = (organizationFormId, responseIds) => ({\n type: types.FORM_RESPONSE_RESEND_COMPLETED,\n payload: { organizationFormId, responseIds }\n});\n\nexport const failResendingResponse = (organizationFormId, responseIds) => ({\n type: types.FORM_RESPONSE_RESEND_FAILED,\n payload: { organizationFormId, responseIds }\n});\n\nexport const selectAnswer = (responseId) => ({\n type: types.FORM_ANSWER_SELECTED,\n payload: responseId\n});\n\nexport const deselectAnswer = () => ({\n type: types.FORM_ANSWER_DESELECTED,\n payload: {}\n});\n\nexport const moveAnswer = (sectionId, questionId, startingPosition, endingPosition) => ({\n type: types.FORM_ANSWER_MOVED,\n payload: { sectionId, questionId, startingPosition, endingPosition }\n});\n\nexport const addAnswer = (sectionId, questionId, answerId, answer) => ({\n type: types.FORM_ANSWER_ADDED,\n payload: { sectionId, questionId, answerId, answer }\n});\n\nexport const deleteAnswer = (sectionId, questionId, position) => ({\n type: types.FORM_ANSWER_DELETED,\n payload: { sectionId, questionId, position }\n});\n\nexport const editAnswer = (sectionId, questionId, position, answer) => ({\n type: types.FORM_ANSWER_EDITED,\n payload: { sectionId, questionId, position, answer }\n});\n\nexport const clearResponses = (formId) => ({\n type: types.FORM_RESPONSES_CLEARED,\n payload: formId\n});\n\nexport const clearQuestions = (formId) => ({\n type: types.FORM_QUESTIONS_CLEARED,\n payload: formId\n});\n\nexport const clearAllFormQuestions = (\n formIds = [] //List of FormIds\n) => ({\n type: types.FORMS_ALL_QUESTIONS_CLEARED,\n payload: formIds\n});\n","import { combineReducers } from 'redux';\n\nimport union from 'lodash/union';\nimport omit from 'lodash/omit';\nimport { appIntl } from '../../../../../utility/context/IntlGlobalProvider';\n\nimport routesComments from '../routesComments';\nimport * as authTypes from '../../../../../redux/types/auth';\nimport * as types from '../../types/routesExecutions';\nimport permissions from '../../permissions';\nimport { getRouteExecutionInformation } from '../../utils';\n\nconst byId = (state = {}, action) => {\n switch (action.type) {\n case authTypes.AUTHENTICATION_IDENTITY_CLEARED: {\n return {};\n }\n //TYPES COMPLETED FETCH\n case types.ROUTES_EXECUTIONS_FETCH_COMPLETED: {\n const { entities, order } = action.payload;\n const newState = { ...state };\n order.forEach((visitId) => {\n newState[visitId] = {\n isSelected: false,\n ...state[visitId],\n ...entities[visitId],\n isConfirmed: true\n };\n });\n return newState;\n }\n case types.ROUTE_EXECUTION_EDIT_COMPLETED: {\n const routeExecution = action.payload;\n const newState = { ...state };\n newState[routeExecution.routeAssignmentId] = {\n isSelected: false,\n ...state[routeExecution.routeAssignmentId],\n ...routeExecution,\n isConfirmed: true\n };\n return newState;\n }\n case types.ROUTES_EXECUTION_CANCEL_COMPLETED: {\n const { visitId } = action.payload;\n return omit(state, visitId);\n }\n case types.ROUTES_EXECUTION_FINALIZE_COMPLETED: {\n const { visitId } = action.payload;\n const newState = { ...state };\n newState[visitId] = {\n isSelected: false,\n ...state[visitId],\n executionStatus: 5,\n isConfirmed: true\n };\n return newState;\n }\n\n //DEFAULT\n default: {\n return state;\n }\n }\n};\n\nconst order = (state = [], action) => {\n switch (action.type) {\n case authTypes.AUTHENTICATION_IDENTITY_CLEARED: {\n return [];\n }\n //CASE COMPLETED FETCH\n case types.ROUTES_EXECUTIONS_FETCH_COMPLETED: {\n const { order } = action.payload;\n return union(order);\n }\n case types.ROUTES_EXECUTION_CANCEL_COMPLETED: {\n const { visitId } = action.payload;\n return state.filter((id) => id !== visitId);\n }\n //DEFAULT\n default: {\n return state;\n }\n }\n};\n\nconst indicators = (state = {}, action) => {\n switch (action.type) {\n case authTypes.AUTHENTICATION_IDENTITY_CLEARED: {\n return {};\n }\n //TYPES COMPLETED FETCH\n case types.ROUTES_EXECUTIONS_FETCH_COMPLETED: {\n const { indicators } = action.payload;\n const newState = { ...indicators };\n return newState;\n }\n\n //DEFAULT\n default: {\n return state;\n }\n }\n};\n\n// STATES TO KNOW IF IT IS FETCHING\nconst isFetchingExecutions = (state = false, action) => {\n switch (action.type) {\n case authTypes.AUTHENTICATION_IDENTITY_CLEARED: {\n return false;\n }\n case types.ROUTES_EXECUTIONS_FETCH_STARTED: {\n return true;\n }\n case types.ROUTES_EXECUTIONS_FETCH_COMPLETED:\n case types.ROUTES_EXECUTIONS_FETCH_FAILED: {\n return false;\n }\n default: {\n return state;\n }\n }\n};\n\nconst isCancelingExecution = (state = false, action) => {\n switch (action.type) {\n case authTypes.AUTHENTICATION_IDENTITY_CLEARED: {\n return false;\n }\n case types.ROUTES_EXECUTION_CANCEL_STARTED: {\n return true;\n }\n case types.ROUTES_EXECUTION_CANCEL_COMPLETED:\n case types.ROUTES_EXECUTION_CANCEL_FAILED: {\n return false;\n }\n default: {\n return state;\n }\n }\n};\n\nconst isEditingExecution = (state = false, action) => {\n switch (action.type) {\n case authTypes.AUTHENTICATION_IDENTITY_CLEARED: {\n return false;\n }\n case types.ROUTE_EXECUTION_EDIT_STARTED: {\n return true;\n }\n case types.ROUTE_EXECUTION_EDIT_COMPLETED:\n case types.ROUTE_EXECUTION_EDIT_FAILED: {\n return false;\n }\n default: {\n return state;\n }\n }\n};\n\nconst isFinalizingExecution = (state = false, action) => {\n switch (action.type) {\n case authTypes.AUTHENTICATION_IDENTITY_CLEARED: {\n return false;\n }\n case types.ROUTES_EXECUTION_FINALIZE_STARTED: {\n return true;\n }\n case types.ROUTES_EXECUTION_FINALIZE_COMPLETED:\n case types.ROUTES_EXECUTION_FINALIZE_FAILED: {\n return false;\n }\n default: {\n return state;\n }\n }\n};\n\nconst isCompletingExecution = (state = false, action) => {\n switch (action.type) {\n case authTypes.AUTHENTICATION_IDENTITY_CLEARED: {\n return false;\n }\n case types.ROUTES_EXECUTION_COMPLETE_STARTED: {\n return true;\n }\n case types.ROUTES_EXECUTION_COMPLETE_COMPLETED:\n case types.ROUTES_EXECUTION_COMPLETE_FAILED: {\n return false;\n }\n default: {\n return state;\n }\n }\n};\n\nconst isRemovingExecution = (state = false, action) => {\n switch (action.type) {\n case authTypes.AUTHENTICATION_IDENTITY_CLEARED: {\n return false;\n }\n case types.ROUTES_EXECUTION_REMOVE_STARTED: {\n return true;\n }\n case types.ROUTES_EXECUTION_REMOVE_COMPLETED:\n case types.ROUTES_EXECUTION_REMOVE_FAILED: {\n return false;\n }\n default: {\n return state;\n }\n }\n};\n\nconst isPausingExecution = (state = false, action) => {\n switch (action.type) {\n case authTypes.AUTHENTICATION_IDENTITY_CLEARED: {\n return false;\n }\n case types.ROUTES_EXECUTION_PAUSE_STARTED: {\n return true;\n }\n case types.ROUTES_EXECUTION_PAUSE_COMPLETED:\n case types.ROUTES_EXECUTION_PAUSE_FAILED: {\n return false;\n }\n default: {\n return state;\n }\n }\n};\n\nconst isStartingExecution = (state = false, action) => {\n switch (action.type) {\n case authTypes.AUTHENTICATION_IDENTITY_CLEARED: {\n return false;\n }\n case types.ROUTES_EXECUTION_START_STARTED: {\n return true;\n }\n case types.ROUTES_EXECUTION_START_COMPLETED:\n case types.ROUTES_EXECUTION_START_FAILED: {\n return false;\n }\n default: {\n return state;\n }\n }\n};\n\nconst isUpdatingManualTransitExecution = (state = false, action) => {\n switch (action.type) {\n case authTypes.AUTHENTICATION_IDENTITY_CLEARED: {\n return false;\n }\n case types.ROUTES_EXECUTION_MANUAL_TRANSIT_STARTED: {\n return true;\n }\n case types.ROUTES_EXECUTION_MANUAL_TRANSIT_COMPLETED:\n case types.ROUTES_EXECUTION_MANUAL_TRANSIT_FAILED: {\n return false;\n }\n default: {\n return state;\n }\n }\n};\n\nconst isSharingExecution = (state = false, action) => {\n switch (action.type) {\n case authTypes.AUTHENTICATION_IDENTITY_CLEARED: {\n return false;\n }\n case types.ROUTES_EXECUTION_SHARE_STARTED: {\n return true;\n }\n case types.ROUTES_EXECUTION_SHARE_COMPLETED:\n case types.ROUTES_EXECUTION_SHARE_FAILED: {\n return false;\n }\n default: {\n return state;\n }\n }\n};\n\nconst isChangingToAlternateRoute = (state = false, action) => {\n switch (action.type) {\n case authTypes.AUTHENTICATION_IDENTITY_CLEARED: {\n return false;\n }\n case types.ROUTE_CHANGE_TO_ALTERNATE_ROUTE_STARTED: {\n return true;\n }\n case types.ROUTE_CHANGE_TO_ALTERNATE_ROUTE_COMPLETED:\n case types.ROUTE_CHANGE_TO_ALTERNATE_ROUTE_FAILED: {\n return false;\n }\n default: {\n return state;\n }\n }\n};\n\nconst errorFetchingExecutions = (state = null, action) => {\n switch (action.type) {\n case authTypes.AUTHENTICATION_IDENTITY_CLEARED: {\n return null;\n }\n case types.ROUTES_EXECUTIONS_FETCH_FAILED: {\n const { error } = action.payload;\n return error;\n }\n case types.ROUTES_EXECUTIONS_FETCH_STARTED:\n case types.ROUTES_EXECUTIONS_FETCH_COMPLETED: {\n return null;\n }\n default: {\n return state;\n }\n }\n};\n\nconst errorEditingExecution = (state = null, action) => {\n switch (action.type) {\n case authTypes.AUTHENTICATION_IDENTITY_CLEARED: {\n return null;\n }\n case types.ROUTE_EXECUTION_EDIT_FAILED: {\n const { error } = action.payload;\n return error;\n }\n case types.ROUTE_EXECUTION_EDIT_STARTED:\n case types.ROUTE_EXECUTION_EDIT_COMPLETED: {\n return null;\n }\n default: {\n return state;\n }\n }\n};\n\nconst errorCancelingExecution = (state = null, action) => {\n switch (action.type) {\n case authTypes.AUTHENTICATION_IDENTITY_CLEARED: {\n return null;\n }\n case types.ROUTES_EXECUTION_CANCEL_FAILED: {\n const { error } = action.payload;\n return error;\n }\n case types.ROUTES_EXECUTION_CANCEL_STARTED:\n case types.ROUTES_EXECUTION_CANCEL_COMPLETED: {\n return null;\n }\n default: {\n return state;\n }\n }\n};\n\nconst errorFinalizingExecution = (state = null, action) => {\n switch (action.type) {\n case authTypes.AUTHENTICATION_IDENTITY_CLEARED: {\n return null;\n }\n case types.ROUTES_EXECUTION_FINALIZE_FAILED: {\n const { error } = action.payload;\n return error;\n }\n case types.ROUTES_EXECUTION_FINALIZE_STARTED:\n case types.ROUTES_EXECUTION_FINALIZE_COMPLETED: {\n return null;\n }\n default: {\n return state;\n }\n }\n};\n\nconst errorCompletingExecution = (state = null, action) => {\n switch (action.type) {\n case authTypes.AUTHENTICATION_IDENTITY_CLEARED: {\n return null;\n }\n case types.ROUTES_EXECUTION_COMPLETE_FAILED: {\n const { error } = action.payload;\n return error;\n }\n case types.ROUTES_EXECUTION_COMPLETE_STARTED:\n case types.ROUTES_EXECUTION_COMPLETE_COMPLETED: {\n return null;\n }\n default: {\n return state;\n }\n }\n};\n\nconst errorRemovingExecution = (state = null, action) => {\n switch (action.type) {\n case authTypes.AUTHENTICATION_IDENTITY_CLEARED: {\n return null;\n }\n case types.ROUTES_EXECUTION_REMOVE_FAILED: {\n const { error } = action.payload;\n return error;\n }\n case types.ROUTES_EXECUTION_REMOVE_STARTED:\n case types.ROUTES_EXECUTION_REMOVE_COMPLETED: {\n return null;\n }\n default: {\n return state;\n }\n }\n};\n\nconst errorPausingExecution = (state = null, action) => {\n switch (action.type) {\n case authTypes.AUTHENTICATION_IDENTITY_CLEARED: {\n return null;\n }\n case types.ROUTES_EXECUTION_PAUSE_FAILED: {\n const { error } = action.payload;\n return error;\n }\n case types.ROUTES_EXECUTION_PAUSE_STARTED:\n case types.ROUTES_EXECUTION_PAUSE_COMPLETED: {\n return null;\n }\n default: {\n return state;\n }\n }\n};\n\nconst errorStartingExecution = (state = null, action) => {\n switch (action.type) {\n case authTypes.AUTHENTICATION_IDENTITY_CLEARED: {\n return null;\n }\n case types.ROUTES_EXECUTION_START_FAILED: {\n const { error } = action.payload;\n return error;\n }\n case types.ROUTES_EXECUTION_START_STARTED:\n case types.ROUTES_EXECUTION_START_COMPLETED: {\n return null;\n }\n default: {\n return state;\n }\n }\n};\n\nconst errorUpdatingManualTransitExecution = (state = null, action) => {\n switch (action.type) {\n case authTypes.AUTHENTICATION_IDENTITY_CLEARED: {\n return null;\n }\n case types.ROUTES_EXECUTION_MANUAL_TRANSIT_FAILED: {\n const { error } = action.payload;\n return error;\n }\n case types.ROUTES_EXECUTION_MANUAL_TRANSIT_STARTED:\n case types.ROUTES_EXECUTION_MANUAL_TRANSIT_COMPLETED: {\n return null;\n }\n default: {\n return state;\n }\n }\n};\n\nconst errorSharingExecution = (state = null, action) => {\n switch (action.type) {\n case authTypes.AUTHENTICATION_IDENTITY_CLEARED: {\n return null;\n }\n case types.ROUTES_EXECUTION_SHARE_FAILED: {\n const { error } = action.payload;\n return error;\n }\n case types.ROUTES_EXECUTION_SHARE_STARTED:\n case types.ROUTES_EXECUTION_SHARE_COMPLETED: {\n return null;\n }\n default: {\n return state;\n }\n }\n};\n\nconst errorChangingToAlternateRoute = (state = null, action) => {\n switch (action.type) {\n case authTypes.AUTHENTICATION_IDENTITY_CLEARED: {\n return null;\n }\n case types.ROUTE_CHANGE_TO_ALTERNATE_ROUTE_FAILED: {\n const { error } = action.payload;\n return error;\n }\n case types.ROUTE_CHANGE_TO_ALTERNATE_ROUTE_STARTED:\n case types.ROUTE_CHANGE_TO_ALTERNATE_ROUTE_COMPLETED: {\n return null;\n }\n default: {\n return state;\n }\n }\n};\n\nconst routesExecutions = combineReducers({\n byId,\n order,\n routesComments,\n indicators,\n isFetchingExecutions,\n isEditingExecution,\n isCancelingExecution,\n isFinalizingExecution,\n isCompletingExecution,\n isRemovingExecution,\n isSharingExecution,\n isPausingExecution,\n isStartingExecution,\n isUpdatingManualTransitExecution,\n isChangingToAlternateRoute,\n errorFetchingExecutions,\n errorEditingExecution,\n errorCancelingExecution,\n errorFinalizingExecution,\n errorCompletingExecution,\n errorRemovingExecution,\n errorPausingExecution,\n errorStartingExecution,\n errorUpdatingManualTransitExecution,\n errorSharingExecution,\n errorChangingToAlternateRoute\n});\n\nexport default routesExecutions;\n\n//Own state\nexport const getOwnState = (state) => state.routes.routesExecutions;\n\n//Information\nexport const getRoutesExecution = (state, visitId) => {\n const routeExecution = getOwnState(state).byId[visitId];\n return getRouteExecutionInformation(state, routeExecution);\n};\nexport const getRoutesExecutionsList = (state) =>\n getOwnState(state).order.map((id) => getRoutesExecution(state, id));\nexport const getIndicatorsInformation = (state) => {\n const indicators = getOwnState(state).indicators;\n const correctRunning =\n indicators.onOrigin + indicators.onDestination + indicators.onRoute + indicators.atCheckpoint;\n const incorrectRunning =\n indicators.paused + indicators.offRoute + indicators.eao + indicators.unauthorizedReturn;\n const running = correctRunning + incorrectRunning;\n const total =\n indicators.scheduled +\n indicators.scheduledBySchedule +\n indicators.finalized +\n indicators.canceled +\n running;\n return {\n ...indicators,\n total,\n correctRunning,\n incorrectRunning,\n running\n };\n};\nexport const getTotalNotShown = (state) => getOwnState(state).indicators.totalNotShown ?? 0;\nexport const getIndicators = (state) => {\n const intl = appIntl();\n const indicators = getIndicatorsInformation(state);\n return [\n {\n title: intl.formatMessage({\n id: 'routes.total'\n }),\n permissions: [permissions.viewTotalIndicator, permissions.viewScheduledIndicator],\n bigIndicator: indicators.total || 0,\n details: [\n {\n info:\n intl.formatMessage({\n id: 'routes.onTime'\n }) +\n ': ' +\n parseInt(indicators.onTime || 0)\n },\n {\n info:\n intl.formatMessage({\n id: 'routes.late'\n }) +\n ': ' +\n parseInt(indicators.late || 0)\n },\n {\n info:\n intl.formatMessage({\n id: 'routes.canceled'\n }) +\n ': ' +\n parseInt(indicators.canceled || 0)\n },\n {\n id: 'scheduled',\n popoverTitle: intl.formatMessage({\n id: 'routes.scheduled'\n }),\n popoverBody:\n intl.formatMessage({\n id: 'routes.assignmentByDate'\n }) +\n ' | ' +\n intl.formatMessage({\n id: 'routes.assignmentBySchedule'\n }),\n info:\n intl.formatMessage({\n id: 'routes.scheduled'\n }) +\n ': ' +\n parseInt(indicators.scheduled || 0) +\n ' | ' +\n parseInt(indicators.scheduledBySchedule || 0)\n }\n ]\n },\n {\n title: intl.formatMessage({\n id: 'routes.correctExecution'\n }),\n permissions: [permissions.viewRunningIndicator],\n bigIndicator: indicators.correctRunning || 0,\n details: [\n {\n info:\n intl.formatMessage({\n id: 'routes.atOrigin'\n }) +\n ': ' +\n parseInt(indicators.onOrigin || 0)\n },\n {\n info:\n intl.formatMessage({\n id: 'routes.onRoute'\n }) +\n ': ' +\n parseInt(indicators.onRoute || 0)\n },\n {\n info:\n intl.formatMessage({\n id: 'routes.atCheckpoint'\n }) +\n ': ' +\n parseInt(indicators.atCheckpoint || 0)\n },\n {\n info:\n intl.formatMessage({\n id: 'routes.atDestination'\n }) +\n ': ' +\n parseInt(indicators.onDestination || 0)\n }\n ]\n },\n {\n title: intl.formatMessage({\n id: 'routes.incorrectExecution'\n }),\n permissions: [permissions.viewRunningIndicator],\n bigIndicator: indicators.incorrectRunning || 0,\n details: [\n {\n popoverTitle: intl.formatMessage({\n id: 'routes.eao'\n }),\n popoverBody: intl.formatMessage({\n id: 'routes.eaoInfo'\n }),\n info:\n intl.formatMessage({\n id: 'routes.eao'\n }) +\n ': ' +\n parseInt(indicators.eao || 0)\n },\n {\n info:\n intl.formatMessage({\n id: 'routes.paused'\n }) +\n ': ' +\n parseInt(indicators.paused || 0)\n },\n {\n info:\n intl.formatMessage({\n id: 'routes.offRoute'\n }) +\n ': ' +\n parseInt(indicators.offRoute || 0)\n },\n {\n info:\n intl.formatMessage({\n id: 'routes.unauthorizedReturn'\n }) +\n ': ' +\n parseInt(indicators.unauthorizedReturn || 0)\n }\n ]\n },\n {\n title: intl.formatMessage({\n id: 'routes.finalized'\n }),\n bigIndicator: indicators.finalized || 0\n }\n ];\n};\nexport const getExecutionsStatus = (state) => {\n const intl = appIntl();\n const indicators = getIndicatorsInformation(state);\n var labels: any[] = [];\n var series: any[] = [];\n if (\n indicators.scheduled > 0 ||\n indicators.finalized > 0 ||\n indicators.canceled > 0 ||\n indicators.running > 0\n ) {\n labels = [\n intl.formatMessage({\n id: 'routes.scheduled'\n }),\n intl.formatMessage({\n id: 'routes.finalized'\n }),\n intl.formatMessage({\n id: 'routes.canceled'\n }),\n intl.formatMessage({\n id: 'routes.running'\n })\n ];\n series = [indicators.scheduled, indicators.finalized, indicators.canceled, indicators.running];\n }\n return {\n title: intl.formatMessage({\n id: 'routes.routeStatus'\n }),\n permissions: [permissions.viewRouteByStatusGraph],\n labels: labels,\n values: [[18], [6], [8], [1, 2, 3, 5, 7, 10, 15, 16]],\n series: series\n };\n};\nexport const getRunningStatus = (state) => {\n const intl = appIntl();\n const indicators = getIndicatorsInformation(state);\n const colors = [\n '#44ABFF', // on origin\n '#00D57E', // on destination\n '#00EAD5', // on route\n '#e3e3e4', // old color '#FF7A00', // paused\n '#FF4459', // off route\n '#7669E8', // at checkpoint\n '#490002', // eao\n '#BA0000' // Unauthorized return\n ];\n var labels: any[] = [];\n var series: any[] = [];\n if (\n indicators.onOrigin > 0 ||\n indicators.onDestination > 0 ||\n indicators.onRoute > 0 ||\n indicators.paused > 0 ||\n indicators.offRoute > 0 ||\n indicators.atCheckpoint > 0 ||\n indicators.eao > 0 ||\n indicators.unauthorizedReturn > 0\n ) {\n labels = [\n intl.formatMessage({\n id: 'routes.atOrigin'\n }),\n intl.formatMessage({\n id: 'routes.atDestination'\n }),\n intl.formatMessage({\n id: 'routes.onRoute'\n }),\n intl.formatMessage({\n id: 'routes.paused'\n }),\n intl.formatMessage({\n id: 'routes.offRoute'\n }),\n intl.formatMessage({\n id: 'routes.atCheckpoint'\n }),\n intl.formatMessage({\n id: 'routes.eao'\n }),\n intl.formatMessage({\n id: 'routes.unauthorizedReturn'\n })\n ];\n series = [\n indicators.onOrigin,\n indicators.onDestination,\n indicators.onRoute,\n indicators.paused,\n indicators.offRoute,\n indicators.atCheckpoint,\n indicators.eao,\n indicators.unauthorizedReturn\n ];\n }\n return {\n title: intl.formatMessage({\n id: 'routes.runningStatus'\n }),\n permissions: [permissions.viewRouteRunningGraph],\n labels: labels,\n colors,\n values: [1, 2, 3, 5, 7, 10, 15, 16],\n series: series\n };\n};\n//Status of sagas\nexport const isFetchingRoutesExecutions = (state) => getOwnState(state).isFetchingExecutions;\nexport const isEditingRouteExecution = (state) => getOwnState(state).isEditingExecution;\nexport const isCancelingRoutesExecution = (state) => getOwnState(state).isCancelingExecution;\nexport const isFinalizingRoutesExecution = (state) => getOwnState(state).isFinalizingExecution;\nexport const isCompletingRoutesExecution = (state) => getOwnState(state).isCompletingExecution;\nexport const isRemovingRoutesExecution = (state) => getOwnState(state).isRemovingExecution;\nexport const isPausingRoutesExecution = (state) => getOwnState(state).isPausingExecution;\nexport const isStartingRoutesExecution = (state) => getOwnState(state).isStartingExecution;\nexport const isUpdatingManualTransitRoutesExecution = (state) =>\n getOwnState(state).isUpdatingManualTransitExecution;\nexport const isSharingRoutesExecution = (state) => getOwnState(state).isSharingExecution;\nexport const isChangingToAlternateRouteExecution = (state) =>\n getOwnState(state).isChangingToAlternateRoute;\n\n//Errors\nexport const getFetchingRoutesExecutionsErrors = (state) =>\n getOwnState(state).errorFetchingExecutions;\nexport const getEditingRouteExecutionErrors = (state) => getOwnState(state).errorEditingExecution;\nexport const getCancelingRoutesExecutionErrors = (state) =>\n getOwnState(state).errorCancelingExecution;\nexport const getFinalizingRoutesExecutionErrors = (state) =>\n getOwnState(state).errorFinalizingExecution;\nexport const getCompletingRoutesExecutionErrors = (state) =>\n getOwnState(state).errorCompletingExecution;\nexport const getRemovingRoutesExecutionErrors = (state) =>\n getOwnState(state).errorRemovingExecution;\nexport const getPausingRoutesExecutionErrors = (state) => getOwnState(state).errorPausingExecution;\nexport const getStartingRoutesExecutionErrors = (state) =>\n getOwnState(state).errorStartingExecution;\nexport const getUpdatingManualTransitRoutesExecutionErrors = (state) =>\n getOwnState(state).errorUpdatingManualTransitExecution;\nexport const getSharingRoutesExecutionErrors = (state) => getOwnState(state).errorSharingExecution;\nexport const getChangingToAlternateRouteErrors = (state) =>\n getOwnState(state).errorChangingToAlternateRoute;\n","export const JOBS_BOARD_FETCH_STARTED = 'JOBS_BOARD_FETCH_STARTED';\nexport const JOBS_BOARD_FETCH_COMPLETED = 'JOBS_BOARD_FETCH_COMPLETED';\nexport const JOBS_BOARD_FETCH_FAILED = 'JOBS_BOARD_FETCH_FAILED';\n\nexport const JOBS_BOARD_CHANGE_STATUS_STARTED = 'JOBS_BOARD_CHANGE_STATUS_STARTED';\nexport const JOBS_BOARD_CHANGE_STATUS_COMPLETED = 'JOBS_BOARD_CHANGE_STATUS_COMPLETED';\nexport const JOBS_BOARD_CHANGE_STATUS_FAILED = 'JOBS_BOARD_CHANGE_STATUS_FAILED';\n","import * as types from '../../types/routes';\n\nexport const startFetchingRoutes = (filters = {}) => ({\n type: types.ROUTES_FETCH_STARTED,\n payload: filters\n});\nexport const completeFetchingRoutes = (entities, order, operatorId, organizationId) => ({\n type: types.ROUTES_FETCH_COMPLETED,\n payload: {\n entities,\n order,\n operatorId,\n organizationId\n }\n});\nexport const failFetchingRoutes = (error = { errorMessage: 'Error', errorNumber: 404 }) => ({\n type: types.ROUTES_FETCH_FAILED,\n payload: {\n error //error:{errorMessage:'Error', errorNumber:400}\n }\n});\n\nexport const startPartialFetchingRoutes = (\n entityTypeId,\n operatorId = null,\n organizationId = null\n) => ({\n type: types.ROUTES_PARTIAL_FETCH_STARTED,\n payload: { entityTypeId, operatorId, organizationId }\n});\nexport const completePartialFetchingRoutes = (entities, order, operatorId, organizationId) => ({\n type: types.ROUTES_PARTIAL_FETCH_COMPLETED,\n payload: {\n entities,\n order,\n operatorId,\n organizationId\n }\n});\nexport const failPartialFetchingRoutes = (error = { errorMessage: 'Error', errorNumber: 404 }) => ({\n type: types.ROUTES_PARTIAL_FETCH_FAILED,\n payload: {\n error //error:{errorMessage:'Error', errorNumber:400}\n }\n});\n\nexport const startAddingRoute = (route) => ({\n type: types.ROUTE_ADD_STARTED,\n payload: route\n});\nexport const completeAddingRoute = (oldId, routeInformation) => ({\n type: types.ROUTE_ADD_COMPLETED,\n payload: { oldId, routeInformation }\n});\nexport const failAddingRoute = (oldId, error) => ({\n type: types.ROUTE_ADD_FAILED,\n payload: {\n oldId,\n error\n }\n});\n\nexport const startEditingRoute = (route) => ({\n type: types.ROUTE_EDIT_STARTED,\n payload: route\n});\nexport const completeEditingRoute = (routeInformation) => ({\n type: types.ROUTE_EDIT_COMPLETED,\n payload: routeInformation\n});\nexport const failEditingRoute = (oldRoute, error) => ({\n type: types.ROUTE_EDIT_FAILED,\n payload: {\n oldRoute,\n error\n }\n});\n\nexport const startRemovingRoute = (routeId) => ({\n type: types.ROUTE_REMOVE_STARTED,\n payload: {\n routeId\n }\n});\nexport const completeRemovingRoute = (routeId) => ({\n type: types.ROUTE_REMOVE_COMPLETED,\n payload: {\n routeId\n }\n});\nexport const failRemovingRoute = (routeId, error) => ({\n type: types.ROUTE_REMOVE_FAILED,\n payload: {\n routeId,\n error\n }\n});\n\nexport const startRemovingRoutes = (routeIds) => ({\n type: types.ROUTES_REMOVE_STARTED,\n payload: {\n routeIds\n }\n});\nexport const completeRemovingRoutes = (routeIds) => ({\n type: types.ROUTES_REMOVE_COMPLETED,\n payload: {\n routeIds\n }\n});\nexport const failRemovingRoutes = (routeIds, error) => ({\n type: types.ROUTES_REMOVE_FAILED,\n payload: {\n routeIds,\n error\n }\n});\n\nexport const selectRoute = (routeId) => ({\n type: types.ROUTE_SELECTED,\n payload: routeId\n});\n\nexport const selectAllRoutes = (\n routeIds: any[] = [] //List of RouteIds\n) => ({\n type: types.ROUTES_ALL_SELECTED,\n payload: routeIds\n});\n\nexport const deselectRoute = (routeId) => ({\n type: types.ROUTE_DESELECTED,\n payload: routeId\n});\n\nexport const deselectAllRoutes = (\n routeIds: any[] = [] //List of RouteIds\n) => ({\n type: types.ROUTES_ALL_DESELECTED,\n payload: routeIds\n});\n\nexport const startCopyRoute = (\n routeId,\n newRouteName,\n organizationId,\n divisionId,\n subdivisionId\n) => ({\n type: types.ROUTE_COPY_STARTED,\n payload: { routeId, newRouteName, organizationId, divisionId, subdivisionId }\n});\nexport const completeCopyRoute = (\n routeId,\n newRouteId,\n newRouteName,\n organizationId,\n divisionId,\n subdivisionId\n) => ({\n type: types.ROUTE_COPY_COMPLETED,\n payload: { routeId, newRouteId, newRouteName, organizationId, divisionId, subdivisionId }\n});\nexport const failCopyRoute = (error = { errorMessage: 'Error', errorNumber: 404 }) => ({\n type: types.ROUTE_COPY_FAILED,\n payload: {\n error //error:{errorMessage:'Error', errorNumber:400}\n }\n});\n\nexport const showRouteInMap = (routeId) => ({\n type: types.ROUTE_SHOW_IN_MAP,\n payload: routeId\n});\n\nexport const showAllRoutesInMap = (\n routeIds: any[] = [] //List of RouteIds\n) => ({\n type: types.ROUTES_ALL_SHOW_IN_MAP,\n payload: routeIds\n});\n\nexport const hideRouteInMap = (routeId) => ({\n type: types.ROUTE_HIDE_IN_MAP,\n payload: routeId\n});\n\nexport const hideAllRoutesInMap = (\n routeIds: any[] = [] //List of RouteIds\n) => ({\n type: types.ROUTES_ALL_HIDE_IN_MAP,\n payload: routeIds\n});\n","export * from './backlog';\nexport * from './board';\nexport * from './report';\n\nexport const JOB_FETCH_STARTED = 'JOB_FETCH_STARTED';\nexport const JOB_FETCH_COMPLETED = 'JOB_FETCH_COMPLETED';\nexport const JOB_FETCH_FAILED = 'JOB_FETCH_FAILED';\n","export const WORKPLANS_VISITS_FETCH_STARTED = 'WORKPLANS_VISITS_FETCH_STARTED';\nexport const WORKPLANS_VISITS_FETCH_COMPLETED = 'WORKPLANS_VISITS_FETCH_COMPLETED';\nexport const WORKPLANS_VISITS_FETCH_FAILED = 'WORKPLANS_VISITS_FETCH_FAILED';\n\nexport const WORKPLANS_ALL_VISITS_FETCH_STARTED = 'WORKPLANS_ALL_VISITS_FETCH_STARTED';\nexport const WORKPLANS_ALL_VISITS_FETCH_COMPLETED = 'WORKPLANS_ALL_VISITS_FETCH_COMPLETED';\nexport const WORKPLANS_ALL_VISITS_FETCH_FAILED = 'WORKPLANS_ALL_VISITS_FETCH_FAILED';\n","import { combineReducers } from 'redux';\n\nimport omit from 'lodash/omit';\nimport union from 'lodash/union';\nimport forEach from 'lodash/forEach';\nimport uniq from 'lodash/uniq';\n\nimport * as types from '../types';\nimport * as organizationSelectors from 'views/screens/Organizations/reducers';\nimport * as operatorSelectors from 'views/screens/Operators/reducers';\n\nconst byId = (state = {}, action) => {\n switch (action.type) {\n //TYPES COMPLETED FETCH, ADD AND EDIT\n case types.DIVISIONS_FETCH_COMPLETED:\n case types.DIVISIONS_PARTIAL_FETCH_COMPLETED: {\n const { entities, order } = action.payload;\n const newState = { ...state };\n order.forEach((divisionId) => {\n newState[divisionId] = {\n isSelected: false,\n ...state[divisionId],\n ...entities[divisionId],\n isConfirmed: true\n };\n });\n return newState;\n }\n\n case types.DIVISION_ADD_COMPLETED: {\n const { oldId, division } = action.payload;\n const newState = omit(state, oldId);\n newState[division.divisionId] = {\n ...state[oldId],\n ...division,\n isConfirmed: true\n };\n return newState;\n }\n\n case types.DIVISION_EDIT_COMPLETED: {\n const division = action.payload;\n return {\n ...state,\n [division.divisionId]: {\n ...omit(state[division.divisionId], ['oldDivision']),\n ...omit(division, ['oldDivision']),\n isConfirmed: true\n }\n };\n }\n\n //TYPES STARTED ADD AND EDIT\n case types.DIVISION_ADD_STARTED: {\n const division = action.payload;\n const newState = { ...state };\n newState[division.divisionId] = {\n isSelected: false,\n ...division,\n isConfirmed: false\n };\n return newState;\n }\n case types.DIVISION_EDIT_STARTED: {\n const division = action.payload;\n return {\n ...state,\n [division.divisionId]: {\n ...state[division.divisionId],\n oldDivision: state[division.divisionId],\n ...division,\n isConfirmed: false\n }\n };\n }\n\n //TYPES FAILED ADD AND EDIT\n case types.DIVISION_ADD_FAILED: {\n const { oldId } = action.payload;\n if (state[oldId]) {\n return omit(state, oldId);\n }\n return state;\n }\n case types.DIVISION_EDIT_FAILED: {\n const { oldDivision } = action.payload;\n return {\n ...state,\n [oldDivision.divisionId]: {\n ...omit(state[oldDivision.divisionId], ['oldDivision']),\n ...oldDivision,\n isConfirmed: true\n }\n };\n }\n\n //TYPES REMOVE COMPLETED\n case types.DIVISION_REMOVE_COMPLETED: {\n const { divisionId } = action.payload;\n return omit(state, divisionId);\n }\n\n //TYPES SELECTED AND DESELECTED\n case types.DIVISION_SELECTED: {\n const divisionId = action.payload;\n const newState = {\n ...state,\n [divisionId]: {\n ...state[divisionId],\n isSelected: true\n }\n };\n return newState;\n }\n\n case types.DIVISION_DESELECTED: {\n const divisionId = action.payload;\n return {\n ...state,\n [divisionId]: {\n ...state[divisionId],\n isSelected: false\n }\n };\n }\n\n case types.DIVISIONS_ALL_SELECTED: {\n const divisionIds = action.payload;\n const newState = { ...state };\n if (divisionIds.length == 0) {\n forEach(state, (division: any, divisionId) => {\n newState[divisionId] = {\n ...division,\n isSelected: true\n };\n });\n } else {\n divisionIds.forEach((divisionId) => {\n newState[divisionId] = {\n ...state[divisionId],\n isSelected: true\n };\n });\n }\n\n return newState;\n }\n\n case types.DIVISIONS_ALL_DESELECTED: {\n const divisionIds = action.payload;\n const newState = { ...state };\n if (divisionIds.length == 0) {\n forEach(state, (division: any, divisionId) => {\n newState[divisionId] = {\n ...division,\n isSelected: false\n };\n });\n } else {\n divisionIds.forEach((divisionId) => {\n newState[divisionId] = {\n ...state[divisionId],\n isSelected: false\n };\n });\n }\n\n return newState;\n }\n\n //DEFAULT\n default: {\n return state;\n }\n }\n};\n\nconst order = (state = [], action) => {\n switch (action.type) {\n //CASE COMPLETED FETCH, ADD AND REMOVE\n case types.DIVISIONS_FETCH_COMPLETED:\n case types.DIVISIONS_PARTIAL_FETCH_COMPLETED: {\n const { order } = action.payload;\n return uniq([...state, ...order]);\n }\n\n case types.DIVISION_ADD_COMPLETED: {\n const { oldId, division } = action.payload;\n return state.map((divisionId) => (divisionId === oldId ? division.divisionId : divisionId));\n }\n\n case types.DIVISION_REMOVE_COMPLETED: {\n const { divisionId } = action.payload;\n return state.filter((divisionIdState) => divisionIdState !== divisionId);\n }\n\n //CASE ADD STARTED\n case types.DIVISION_ADD_STARTED: {\n const division = action.payload;\n return [...state, division.divisionId];\n }\n\n //CASE ADD FAILED\n case types.DIVISION_ADD_FAILED: {\n const { oldId } = action.payload;\n return state.filter((divisionIdState) => divisionIdState !== oldId);\n }\n\n //DEFAULT\n default: {\n return state;\n }\n }\n};\n\n// STATES TO KNOW IF IT IS FETCHING, ADDING OR EDITING\nconst isFetchingList = (state = false, action) => {\n switch (action.type) {\n case types.DIVISIONS_FETCH_STARTED: {\n return true;\n }\n case types.DIVISIONS_FETCH_COMPLETED:\n case types.DIVISIONS_FETCH_FAILED: {\n return false;\n }\n default: {\n return state;\n }\n }\n};\n\nconst isPartialFetchingList = (state = false, action) => {\n switch (action.type) {\n case types.DIVISIONS_PARTIAL_FETCH_STARTED: {\n return true;\n }\n case types.DIVISIONS_PARTIAL_FETCH_COMPLETED:\n case types.DIVISIONS_PARTIAL_FETCH_FAILED: {\n return false;\n }\n default: {\n return state;\n }\n }\n};\n\nconst isAdding = (state = false, action) => {\n switch (action.type) {\n case types.DIVISION_ADD_STARTED: {\n return true;\n }\n case types.DIVISION_ADD_COMPLETED:\n case types.DIVISION_ADD_FAILED: {\n return false;\n }\n default: {\n return state;\n }\n }\n};\n\nconst isEditing = (state = false, action) => {\n switch (action.type) {\n case types.DIVISION_EDIT_STARTED: {\n return true;\n }\n case types.DIVISION_EDIT_COMPLETED:\n case types.DIVISION_EDIT_FAILED: {\n return false;\n }\n default: {\n return state;\n }\n }\n};\n\nconst isRemoving = (state = false, action) => {\n switch (action.type) {\n case types.DIVISION_REMOVE_STARTED: {\n return true;\n }\n case types.DIVISION_REMOVE_COMPLETED:\n case types.DIVISION_REMOVE_FAILED: {\n return false;\n }\n default: {\n return state;\n }\n }\n};\n\nconst errorFetchingList = (state = null, action) => {\n switch (action.type) {\n case types.DIVISIONS_FETCH_FAILED: {\n const { error } = action.payload;\n return error;\n }\n case types.DIVISIONS_FETCH_STARTED:\n case types.DIVISIONS_FETCH_COMPLETED: {\n return null;\n }\n default: {\n return state;\n }\n }\n};\n\nconst errorPartialFetchingList = (state = null, action) => {\n switch (action.type) {\n case types.DIVISIONS_PARTIAL_FETCH_FAILED: {\n const { error } = action.payload;\n return error;\n }\n case types.DIVISIONS_PARTIAL_FETCH_STARTED:\n case types.DIVISIONS_PARTIAL_FETCH_COMPLETED: {\n return null;\n }\n default: {\n return state;\n }\n }\n};\n\nconst errorAdding = (state = null, action) => {\n switch (action.type) {\n case types.DIVISION_ADD_FAILED: {\n const { error } = action.payload;\n return error;\n }\n case types.DIVISION_ADD_STARTED:\n case types.DIVISION_ADD_COMPLETED: {\n return null;\n }\n default: {\n return state;\n }\n }\n};\n\nconst errorEditing = (state = null, action) => {\n switch (action.type) {\n case types.DIVISION_EDIT_FAILED: {\n const { error } = action.payload;\n return error;\n }\n case types.DIVISION_EDIT_STARTED:\n case types.DIVISION_EDIT_COMPLETED: {\n return null;\n }\n default: {\n return state;\n }\n }\n};\n\nconst errorRemoving = (state = null, action) => {\n switch (action.type) {\n case types.DIVISION_REMOVE_FAILED: {\n const { error } = action.payload;\n return error;\n }\n case types.DIVISION_REMOVE_STARTED:\n case types.DIVISION_REMOVE_COMPLETED: {\n return null;\n }\n default: {\n return state;\n }\n }\n};\n\nconst divisions = combineReducers({\n byId,\n order,\n isPartialFetchingList,\n isFetchingList,\n isAdding,\n isEditing,\n isRemoving,\n errorPartialFetchingList,\n errorFetchingList,\n errorAdding,\n errorEditing,\n errorRemoving\n});\n\nexport default divisions;\n\n//Own state\nexport const getOwnState = (state) => state.divisions;\n\n//Information\nexport const getDivision = (state, divisionId) => {\n const division = getOwnState(state).byId[divisionId];\n if (division) {\n const operator = operatorSelectors.getOperator(state, division.operatorId);\n const organization = organizationSelectors.getOrganization(state, division.organizationId);\n return {\n ...division,\n operatorName: operator ? operator.operatorName : '',\n organizationName: organization ? organization.organizationName : ''\n };\n } else return undefined;\n};\nexport const getDivisionsList = (state) =>\n getOwnState(state)\n .order.map((id) => getDivision(state, id))\n .filter((division) => division.divisionStatus > 0);\nexport const getDivisionsListByMembership = (state, membership) => {\n //Se filtra por operatorId y organizationId\n if (membership.operatorId) {\n if (membership.organizationId) {\n return getDivisionsList(state).filter(\n (division) =>\n division.operatorId === membership.operatorId &&\n division.organizationId === membership.organizationId\n );\n }\n return getDivisionsList(state).filter(\n (division) => division.operatorId === membership.operatorId\n );\n }\n //Si no se ha seleccionado una organizaciĆ³n se devuelve la lista completa\n else return getDivisionsList(state);\n};\n\nexport const getDivisionsListBySelectedOrganization = (state, membership) => {\n //Se filtra por organizationId\n if (membership.organizationId) {\n return getDivisionsList(state).filter(\n (division) => division.organizationId === membership.organizationId\n );\n }\n //Si no se ha seleccionado una organizaciĆ³n se devuelve una lista vacia\n else return [];\n};\n\nexport const getSelectedDivisions = (state) => {\n const selectedDivisions = getDivisionsList(state).filter((division) => division.isSelected);\n //Si no se selecciona ninguno devuelve null\n if (selectedDivisions.length === 0) return null;\n //Si se selecciona mĆ”s de cero se devuelve el arreglo de los seleccionados\n if (selectedDivisions.length > 0) return selectedDivisions;\n};\n\nexport const getSelectedDivision = (state) => {\n const selectedDivisions = getDivisionsList(state).filter((division) => division.isSelected);\n //Si se selecciona solo uno devuelve solo el seleccionado\n if (selectedDivisions.length === 1) return selectedDivisions[0];\n //De lo contrario se devuelve null\n else return null;\n};\n\n//Status of sagas\nexport const isPartialFetchingListDivisions = (state) => getOwnState(state).isPartialFetchingList;\nexport const isFetchingListDivisions = (state) => getOwnState(state).isFetchingList;\nexport const isAddingDivision = (state) => getOwnState(state).isAdding;\nexport const isEditingDivision = (state) => getOwnState(state).isEditing;\nexport const isRemovingDivision = (state) => getOwnState(state).isRemoving;\n\n//Errors\nexport const getPartialFetchingListDivisionsErrors = (state) =>\n getOwnState(state).errorPartialFetchingList;\nexport const getFetchingListDivisionsErrors = (state) => getOwnState(state).errorFetchingList;\nexport const getAddingDivisionErrors = (state) => getOwnState(state).errorAdding;\nexport const getEditingDivisionErrors = (state) => getOwnState(state).errorEditing;\nexport const getRemovingDivisionErrors = (state) => getOwnState(state).errorRemoving;\n","/* eslint-disable semi */\nimport { env } from '../../../../env';\nimport moment from 'moment';\nimport { Square } from 'react-feather';\nimport Icon from 'utility/icomoon';\nimport L from 'leaflet';\nimport * as authSelectors from '../../../../redux/reducers/auth';\nimport { appIntl } from '../../../../utility/context/IntlGlobalProvider';\nimport { isNaNOrNullable } from 'utility/Utils';\nimport { getPerformanceColor, getPerformanceTitle } from 'views/screens/Telemetry/utils';\nimport { useRef } from 'react';\nimport { UncontrolledTooltip } from 'reactstrap';\nimport { IntlShape } from 'react-intl';\nimport { UnitsRoutesAssignment } from '../views/RoutesAssignUnitScreen/SelectUnitsAndRoutesTab';\nimport { AssignedUnit } from '../hooks/useGetAssignedUnits';\nimport { AssignmentByDate } from '../views/RoutesAssignUnitScreen/ReviewAssignmentByDateTab';\nimport { CommonValuesFormValues } from '../views/RoutesAssignUnitScreen/SelectCommonValuesTab';\nimport { AssignmentBySchedule } from '../views/RoutesAssignUnitScreen/ReviewAssignmentByScheduleTab';\nimport {\n AssignmentTypeFormValues,\n AssignmentTypes\n} from '../views/RoutesAssignUnitScreen/SelectAssignmentTypeTab';\nimport { Schedule } from 'views/screens/Schedules/views/listTrigger';\n\nexport const getRouteExecutionInformation = (state, routeExecution) => {\n const intl = appIntl();\n if (routeExecution) {\n let routeStatusLabel = '';\n let routeStatusLabelInfo = '';\n switch (routeExecution.routeStatus) {\n case 1:\n routeStatusLabel = intl.formatMessage({\n id: 'routes.atOrigin'\n });\n routeStatusLabelInfo = intl.formatMessage({\n id: 'routes.atOrigin'\n });\n break;\n case 2:\n routeStatusLabel = intl.formatMessage({\n id: 'routes.atDestination'\n });\n routeStatusLabelInfo = intl.formatMessage({\n id: 'routes.atDestination'\n });\n break;\n case 3:\n routeStatusLabel = intl.formatMessage({\n id: 'routes.onRoute'\n });\n routeStatusLabelInfo = intl.formatMessage({\n id: 'routes.onRoute'\n });\n break;\n case 5:\n routeStatusLabel = intl.formatMessage({\n id: 'routes.paused'\n });\n routeStatusLabelInfo = intl.formatMessage({\n id: 'routes.paused'\n });\n break;\n case 6:\n routeStatusLabel = intl.formatMessage({\n id: 'routes.finalized'\n });\n routeStatusLabelInfo = intl.formatMessage({\n id: 'routes.finalized'\n });\n break;\n case 7:\n routeStatusLabel = intl.formatMessage({\n id: 'routes.offRoute'\n });\n routeStatusLabelInfo = intl.formatMessage({\n id: 'routes.offRoute'\n });\n break;\n case 8:\n routeStatusLabel = intl.formatMessage({\n id: 'routes.canceled'\n });\n routeStatusLabelInfo = intl.formatMessage({\n id: 'routes.canceled'\n });\n break;\n case 10:\n routeStatusLabel = intl.formatMessage({\n id: 'routes.atCheckpoint'\n });\n routeStatusLabelInfo = intl.formatMessage({\n id: 'routes.atCheckpoint'\n });\n break;\n case 15:\n routeStatusLabel = intl.formatMessage({\n id: 'routes.eao'\n });\n routeStatusLabelInfo = intl.formatMessage({\n id: 'routes.eaoInfo'\n });\n break;\n case 16:\n routeStatusLabel = intl.formatMessage({\n id: 'routes.unauthorizedReturn'\n });\n routeStatusLabelInfo = intl.formatMessage({\n id: 'routes.unauthorizedReturn'\n });\n break;\n case 18:\n routeStatusLabel = intl.formatMessage({\n id: 'routes.singleScheduled'\n });\n routeStatusLabelInfo = intl.formatMessage({\n id: 'routes.singleScheduled'\n });\n break;\n default:\n routeStatusLabel = '';\n routeStatusLabelInfo = '';\n break;\n }\n\n const parsers = authSelectors.getParsers(state);\n const {\n convertKilometersPerHourToAuthUserSpeedSystem,\n convertKilometersToAuthUserDistanceSystem,\n convertMetersToAuthUserDistanceSystem,\n convertLitersToAuthUserCapacitySystem,\n convertKilometersPerLiterToAuthUserFuelSystem\n } = parsers;\n\n return {\n ...routeExecution,\n routeStatusLabel,\n routeStatusLabelInfo,\n isDeviceOpenLabel: intl.formatMessage({\n id: routeExecution.isDeviceOpen\n ? 'trackingUnits.sat.open'\n : routeExecution.isDeviceOpen == null\n ? 'trackingUnits.sat.unknown'\n : 'trackingUnits.sat.closed'\n }),\n stopStatus: !routeExecution.stopStatus,\n speedLabel: convertKilometersPerHourToAuthUserSpeedSystem(routeExecution.speed),\n routeProgressLabel: Math.round(routeExecution.routeProgress) + '%',\n distanceToCheckpointLabel:\n Math.round(\n convertMetersToAuthUserDistanceSystem(routeExecution.distanceToCheckpoint || 0)\n ) +\n ' ' +\n authSelectors.getAuthSystems(state).distance,\n distanceLabel:\n Math.round(convertMetersToAuthUserDistanceSystem(routeExecution.distance || 0)) +\n ' ' +\n authSelectors.getAuthSystems(state).distance,\n fuelConsumption: convertLitersToAuthUserCapacitySystem(routeExecution.fuelConsumption || 0),\n expectedPerformance: convertKilometersPerLiterToAuthUserFuelSystem(\n routeExecution.expectedPerformance || 0\n ),\n performanceOnRoute: convertKilometersPerLiterToAuthUserFuelSystem(\n routeExecution.performanceOnRoute || 0\n ),\n distanceProgress: convertKilometersToAuthUserDistanceSystem(\n routeExecution.distanceProgress || 0\n )\n };\n } else return undefined;\n};\n\nexport const completionTypes = [\n {\n value: 0,\n label: 'routes.finalizeManual'\n },\n {\n value: 1,\n label: 'routes.finalize15mins'\n },\n {\n value: 2,\n label: 'routes.finalizeInmediately'\n }\n];\n\nexport const globalNotificationFrecs = [\n {\n value: '15',\n label: 'routes.frecuency15mins'\n },\n {\n value: '30',\n label: 'routes.frecuency30mins'\n },\n {\n value: '60',\n label: 'routes.frecuency60mins'\n }\n];\n\nexport const startTimeWindow = [\n {\n value: '0', // Start time window of 0 seconds (immediate start)\n label: '0 ' // Label for the start time window (in minutes)\n },\n {\n value: '900', // Start time window of 900 seconds (15 minutes)\n label: '15 ' // Label for the start time window (in minutes)\n },\n {\n value: '1800', // Start time window of 1800 seconds (30 minutes)\n label: '30 ' // Label for the start time window (in minutes)\n },\n {\n value: '2700', // Start time window of 2700 seconds (45 minutes)\n label: '45 ' // Label for the start time window (in minutes)\n },\n {\n value: '3600', // Start time window of 3600 seconds (60 minutes)\n label: '60 ' // Label for the start time window (in minutes)\n },\n {\n value: '7200', // Start time window of 7200 seconds (120 minutes)\n label: '120 ' // Label for the start time window (in minutes)\n },\n {\n value: '10800', // Start time window of 10800 seconds (180 minutes)\n label: '180 ' // Label for the start time window (in minutes)\n }\n];\n\nexport const routesEvents = [\n { value: '1', label: 'routes.atOrigin' },\n { value: '3', label: 'routes.onRoute' },\n { value: '2', label: 'routes.singleCompleted' },\n { value: '6', label: 'routes.singleFinalized' },\n { value: '7', label: 'routes.offRoute' },\n { value: '4', label: 'routes.stoppedOnRoute' },\n { value: '9', label: 'routes.speeding' },\n { value: '10', label: 'routes.atCheckpoint' },\n { value: '16', label: 'routes.unauthorizedReturn' },\n { value: '18', label: 'routes.assigned' }\n];\n\nexport const routesTimelineEvents = [\n { value: '1', label: 'routes.atOrigin', color: '#44abff' },\n { value: '2', label: 'routes.singleCompleted', color: '#00d57e' },\n { value: '3', label: 'routes.onRoute', color: '#00ead5' },\n { value: '4', label: 'routes.stoppedOnRoute', color: '#ffc737' },\n { value: '5', label: 'routes.paused', color: '#e3e3e4' },\n { value: '6', label: 'routes.singleFinalized', color: '#2ed573' },\n { value: '7', label: 'routes.offRoute', color: '#ff4459' },\n { value: '8', label: 'routes.canceled', color: '#ff4757' },\n { value: '9', label: 'routes.speeding', color: '#ff7a00' }, //Pendiente\n { value: '10', label: 'routes.atCheckpoint', color: '#7669e8' },\n { value: '15', label: 'routes.eao', color: '#490002' },\n { value: '16', label: 'routes.unauthorizedReturn', color: '#ba0000' },\n { value: '18', label: 'routes.assigned', color: '' } //Pendiente\n];\n\nexport const routesCheckpointsIcons = [\n {\n value: '1',\n label: 'routes.checkpoint',\n icon: \n },\n {\n value: '2',\n label: 'routes.gate',\n icon: ,\n iconTxt: 'Gate'\n },\n {\n value: '3',\n label: 'routes.patrol',\n icon: ,\n iconTxt: 'Patrol'\n },\n {\n value: '4',\n label: 'routes.motorcycle',\n icon: ,\n iconTxt: 'Motorcycle'\n },\n {\n value: '5',\n label: 'routes.frontier',\n icon: ,\n iconTxt: 'Frontier'\n },\n {\n value: '6',\n label: 'routes.carLot',\n icon: ,\n iconTxt: 'CarLot'\n }\n];\n\nexport const getRouteStatusColorClass = (routeStatus: number): string => {\n if (isNaNOrNullable(routeStatus)) return '';\n switch (routeStatus) {\n case -1: //Comentario\n return 'light-comment';\n case 1:\n return 'light-onOrigin';\n case 2:\n return 'light-onDestination';\n case 3:\n return 'light-onRoute';\n case 4:\n return 'light-stoppedOnRoute';\n case 5:\n return 'light-route-paused';\n case 6:\n return 'light-route-finalized';\n case 7:\n return 'light-offRoute';\n case 8:\n return 'light-route-canceled';\n case 9:\n return 'light-route-speeding';\n case 10:\n return 'light-atCheckpoint';\n case 15:\n return 'light-eao';\n case 16:\n return 'light-unauthorizedReturn';\n case 18:\n return 'light-scheduled';\n }\n\n return '';\n};\n\nexport const getMarker = (type, index, iconId, latLng) => {\n return L.marker(latLng, {\n icon: getIcon(type, index, iconId)\n });\n};\n\nexport const getIcon = (\n type,\n index,\n iconId,\n checkpointClassDefaultColor = '',\n checkpointTextDefaultColor = ''\n) => {\n return L.divIcon({\n className: 'custom-div-icon',\n html:\n type === 1\n ? `
`\n : type === 3\n ? `
`\n : iconId == null || iconId == 1 || iconId == 0\n ? `
${index}`\n : `
`,\n iconSize: [30, 42],\n iconAnchor: [15, 42],\n popupAnchor: [0, -35]\n });\n};\n\nexport const getRouteBounds = (route) => {\n if (\n route.checkpoints &&\n route.checkpoints.filter((chk) => chk.latitude != null && chk.longitude != null).length > 0\n ) {\n var latlngPolylines: any[] = [];\n if (route.checkpoints.filter((chk) => chk.segmentPath).length > 0)\n route.checkpoints.map(\n (chk) =>\n chk.segmentPath &&\n chk.segmentPath.map((path) =>\n latlngPolylines.push(L.latLng(path.latitude, path.longitude))\n )\n );\n\n return [\n ...route.checkpoints\n .filter((chk) => chk.latitude != null && chk.longitude != null)\n .map((chk) => L.latLng(chk.latitude, chk.longitude)),\n ...latlngPolylines\n ];\n } else return [];\n};\nexport const getImportedRouteStatusColorClass = (success) => {\n return success ? 'light-success' : 'light-danger';\n};\n\ntype RouteStatus = {\n expectedPerformance: number;\n performanceOnRoute: number;\n};\nexport function performanceTemplate(args: RouteStatus, performanceUnit?: string) {\n const intl: IntlShape = appIntl();\n\n const performanceRanges = [0, 80, 90, 110, 200];\n const expectedPerformance = args['expectedPerformance'];\n const value = args['performanceOnRoute'] || 0;\n const percentage = (value / expectedPerformance) * 100;\n\n const color = getPerformanceColor(percentage, expectedPerformance, performanceRanges);\n const translation = getPerformanceTitle(percentage, performanceRanges);\n\n const valueNodeRef = useRef(undefined);\n\n return (\n

\n \n {value?.toFixed(2) ?? ''}\n \n {performanceUnit ? {performanceUnit} : ''}\n \n {`${translation ? intl.formatMessage({ id: translation }) : ''} - ${percentage.toFixed(\n 2\n )}%`}\n \n {/* */}\n

\n );\n}\n\nexport interface ValidationError {\n type?: string;\n payload?: any;\n level?: string;\n}\n\nexport const VALIDATION_ERROR_TYPES = {\n ROUTE_ALREADY_ASSIGNED_AND_ACTIVE_ON_DATABASE: 'routes.routeAlreadyAssignedAndActiveOnDatabase',\n ROUTE_ALREADY_ASSIGNED_AT_SAME_HOUR_THAT_ANOTHER_ON_DATABASE:\n 'routes.routeAlreadyAssignedAtSameHourThatAnotherOnDatabase',\n ROUTE_ALREADY_ASSIGNED_AT_SAME_HOUR_THAT_ANOTHER_ON_STATE:\n 'routes.routeAlreadyAssignedAtSameHourThatAnotherOnState',\n ROUTE_ALREADY_ASSIGNED_ON_STATE: 'routes.routeAlreadyAssignedOnState'\n};\n\nexport const getValidationErrorIcon = (errors?: ValidationError[]) => {\n if (!errors || errors.length === 0) return 'CheckCircle';\n if (errors.find((error) => error.level === 'error')) return 'AlertCircle';\n return 'PreventiveNotice';\n};\n\nexport const getValidationErrorColor = (errors?: ValidationError[]) => {\n if (!errors || errors.length === 0) return 'success';\n if (errors.find((error) => error.level === 'error')) return 'danger';\n return 'warning';\n};\n\nconst validateDateTimesDiff = (\n firstDate: moment.Moment,\n secondDate: moment.Moment,\n diffInMilliseconds?: string\n) => {\n const diffInMillisecondsAsInt = parseInt(diffInMilliseconds || '0');\n return (\n firstDate.isSame(secondDate, 'day') &&\n Math.abs(firstDate.diff(secondDate, 'ms')) < diffInMillisecondsAsInt\n );\n};\n\n// Validator that needs assigned units, and then returns a function that receives the unitsRoutesAssignment to validate\nexport const duplicatedUnitRouteAssignmentValidator =\n (\n assignedUnitsFromDatabase: AssignedUnit[],\n commonValues: Partial,\n assignmentType: Partial,\n schedule: Schedule\n ) =>\n (\n unitsRoutesAssignmentsFromState:\n | UnitsRoutesAssignment[]\n | Partial[]\n | Partial[],\n unitsRoutesAssignment:\n | UnitsRoutesAssignment\n | Partial\n | Partial\n ): ValidationError[] => {\n const errors: ValidationError[] = [];\n const { startDate } = commonValues;\n const { unitId, routeId, correlative, routeName } = unitsRoutesAssignment;\n const { assignmentType: assignmentTypeNumber } = assignmentType;\n\n // Helper function to check for duplicate assignments at the same hour\n // TODO: In the future, we must provide a smart solution to calculate the min diff time for assignments by unit (data analysis)\n const hasAssignmentAtSameHourOrScheduleNextRun = (\n existingAssignments:\n | UnitsRoutesAssignment[]\n | Partial[]\n | Partial[]\n ) => {\n let comparePredicate: (existingAssignment: any) => boolean = () => false;\n if (assignmentTypeNumber === AssignmentTypes.ByDate) {\n const stepperStartDate = moment(startDate, 'YYYY-MM-DD HH:mm');\n const assignmentStartDate = moment(unitsRoutesAssignment.startDate, 'YYYY-MM-DDTHH:mm:ss');\n // First remove current assign on filter, and then check if there is any other assignment with the same hour\n comparePredicate = (existingAssignment) => {\n const existingAssignmentStartDate = moment(\n existingAssignment.startDate,\n 'YYYY-MM-DDTHH:mm:ss'\n );\n return existingAssignment.startDate && unitsRoutesAssignment.startDate\n ? validateDateTimesDiff(\n unitsRoutesAssignment.startDate ? assignmentStartDate : stepperStartDate,\n existingAssignmentStartDate,\n env.REACT_APP_MIN_VALID_DIFF_TIME_BETWEEN_UNITS_ROUTES_ASSIGNMENT\n )\n : true;\n };\n } else {\n const stepperNextRunDate = moment(schedule.nextRunDate, 'YYYY-MM-DD HH:mm');\n // First remove current assign on filter, and then check if there is any other assignment with the same next run date\n comparePredicate = (existingAssignment) => {\n const existingAssignmentNextRunDate = moment(\n 'nextRunDate' in existingAssignment ? existingAssignment.nextRunDate : '',\n 'YYYY-MM-DDTHH:mm:ss'\n );\n const unitRoutAssignmentNextRunDate = moment(\n 'scheduleNextRunDate' in unitsRoutesAssignment\n ? unitsRoutesAssignment.scheduleNextRunDate\n : '',\n 'YYYY-MM-DDTHH:mm:ss'\n );\n if (\n 'scheduleNextRunDate' in unitsRoutesAssignment &&\n unitsRoutesAssignment.scheduleNextRunDate\n ) {\n return validateDateTimesDiff(\n 'scheduleNextRunDate' in unitsRoutesAssignment\n ? unitRoutAssignmentNextRunDate\n : stepperNextRunDate,\n existingAssignmentNextRunDate,\n env.REACT_APP_MIN_VALID_DIFF_TIME_BETWEEN_UNITS_ROUTES_ASSIGNMENT\n );\n }\n return true;\n };\n }\n\n // Remember: existingAssignments can be data from database or from state!\n return existingAssignments\n .filter(\n (existingAssignment) =>\n existingAssignment.unitId === unitId &&\n (existingAssignment.correlative ? existingAssignment.correlative !== correlative : true)\n )\n .some(comparePredicate);\n };\n\n // CASE 1: DATABASE DATA VALIDATION\n // Note that database data retrieved is filtered by active units/routes, so there is no need to validate startDate (at this moment)\n if (assignedUnitsFromDatabase.length > 0) {\n // CASE 1.1: unit has been already assigned to that route and has an active status\n const hasSameAssignmentFoundOnDatabase = assignedUnitsFromDatabase.some(\n (unitRouteAssignment) =>\n unitRouteAssignment.unitId === unitId &&\n unitRouteAssignment.routeId === routeId &&\n hasAssignmentAtSameHourOrScheduleNextRun(assignedUnitsFromDatabase)\n );\n\n if (hasSameAssignmentFoundOnDatabase) {\n errors.push({\n type: VALIDATION_ERROR_TYPES.ROUTE_ALREADY_ASSIGNED_AND_ACTIVE_ON_DATABASE,\n payload: { route: routeName },\n level: 'error'\n });\n return errors;\n }\n\n // CASE 1.2: a route already assigned to the unit with the same hour as the new assignment\n const hasAssignmentFoundAtSameHourOnDatabase =\n hasAssignmentAtSameHourOrScheduleNextRun(assignedUnitsFromDatabase);\n if (hasAssignmentFoundAtSameHourOnDatabase) {\n errors.push({\n type: VALIDATION_ERROR_TYPES.ROUTE_ALREADY_ASSIGNED_AT_SAME_HOUR_THAT_ANOTHER_ON_DATABASE\n });\n return errors;\n }\n }\n\n // CASE 2: HOOK FORM STATE DATA VALIDATION\n // There is no need to validate startDate at this moment\n if (unitsRoutesAssignmentsFromState.length > 0) {\n // CASE 2.1: unit has been already assigned to the same route and has an active status\n const hasSameAssignmentFoundOnState = unitsRoutesAssignmentsFromState.some(\n (unitRouteAssignment) =>\n unitRouteAssignment.unitId === unitId &&\n unitRouteAssignment.routeId === routeId &&\n unitRouteAssignment.correlative !== correlative\n );\n if (hasSameAssignmentFoundOnState) {\n errors.push({ type: VALIDATION_ERROR_TYPES.ROUTE_ALREADY_ASSIGNED_ON_STATE });\n return errors;\n }\n\n // CASE 2.2: a route already assigned to the unit with the same hour as the new assignment\n const hasAssignmentFoundAtSameHourOnState = hasAssignmentAtSameHourOrScheduleNextRun(\n unitsRoutesAssignmentsFromState\n );\n if (hasAssignmentFoundAtSameHourOnState) {\n errors.push({\n type: VALIDATION_ERROR_TYPES.ROUTE_ALREADY_ASSIGNED_AT_SAME_HOUR_THAT_ANOTHER_ON_STATE\n });\n return errors;\n }\n }\n\n return errors;\n };\n","/* Tipos del reductor Entities */\n/* -------------------------------------------------------------------------- */\n\nexport const ENTITIES_FETCH_STARTED = 'ENTITIES_FETCH_STARTED';\nexport const ENTITIES_FETCH_COMPLETED = 'ENTITIES_FETCH_COMPLETED';\nexport const ENTITIES_FETCH_FAILED = 'ENTITIES_FETCH_FAILED';\nexport const ENTITIES_RESET_IS_FETCHED = 'ENTITIES_RESET_IS_FETCHED';\n\nexport const ENTITIES_UPDATE_STARTED = 'ENTITIES_UPDATE_STARTED';\nexport const ENTITIES_UPDATE_COMPLETED = 'ENTITIES_UPDATE_COMPLETED';\nexport const ENTITIES_UPDATE_FAILED = 'ENTITIES_UPDATE_FAILED';\n","export const env = { ...process.env, ...window['env'] };\n","/* -------------------------------------------------------------------------- */\n/* Componente Checkbox */\n/* -------------------------------------------------------------------------- */\n// Este componente contiene un Switch genĆ©rico que se utiliza en muchas pantallas de la aplicaciĆ³n.\nimport { useEffect } from 'react';\nimport { FormGroup, CustomInput } from 'reactstrap';\nimport { v4 as UUIDv4 } from 'uuid';\n\ninterface Props {\n id?: string;\n field: any;\n label: string | JSX.Element;\n initialValue?: boolean;\n forceinitialvalue?: boolean;\n onChange?: (value: boolean) => void;\n onFocus?: () => void;\n style?: React.CSSProperties;\n classNameCustom?: string;\n disabled?: boolean;\n}\n\nconst CheckboxInput = (props: Props) => {\n const {\n id = `checkbox-${UUIDv4()}`,\n field,\n label,\n initialValue,\n forceinitialvalue,\n onChange,\n style = {},\n classNameCustom = '',\n disabled = false,\n onFocus\n } = props;\n useEffect(() => {\n if (!field.value) field.onChange(initialValue);\n }, [field.value]);\n\n useEffect(() => {\n if (forceinitialvalue != undefined) field.onChange(forceinitialvalue);\n }, [forceinitialvalue]);\n return (\n \n {\n field.onChange(event.target.checked);\n if (onChange) onChange(event.target.checked);\n }}\n onFocus={onFocus}\n label={label}\n />\n \n );\n};\n\nCheckboxInput.defaultProps = {\n label: '',\n initialValue: false\n};\n\nexport default CheckboxInput;\n","import { combineReducers } from 'redux';\n\nimport omit from 'lodash/omit';\nimport union from 'lodash/union';\nimport forEach from 'lodash/forEach';\nimport uniq from 'lodash/uniq';\n\nimport * as operatorSelectors from 'views/screens/Operators/reducers';\nimport * as organizationSelectors from 'views/screens/Organizations/reducers';\nimport * as divisionSelectors from 'views/screens/Divisions/reducers';\nimport * as types from '../types';\n\nconst byId = (state = {}, action) => {\n switch (action.type) {\n //TYPES COMPLETED FETCH, ADD AND EDIT\n case types.SUBDIVISIONS_FETCH_COMPLETED:\n case types.SUBDIVISIONS_PARTIAL_FETCH_COMPLETED: {\n const { entities, order } = action.payload;\n const newState = { ...state };\n order.forEach((subdivisionId) => {\n newState[subdivisionId] = {\n isSelected: false,\n ...state[subdivisionId],\n ...entities[subdivisionId],\n isConfirmed: true\n };\n });\n return newState;\n }\n\n case types.SUBDIVISION_ADD_COMPLETED: {\n const { oldId, subdivision } = action.payload;\n const newState = omit(state, oldId);\n newState[subdivision.subdivisionId] = {\n ...state[oldId],\n ...subdivision,\n isConfirmed: true\n };\n return newState;\n }\n\n case types.SUBDIVISION_EDIT_COMPLETED: {\n const subdivision = action.payload;\n return {\n ...state,\n [subdivision.subdivisionId]: {\n ...omit(state[subdivision.subdivisionId], ['oldSubdivision']),\n ...omit(subdivision, ['oldSubdivision']),\n isConfirmed: true\n }\n };\n }\n\n //TYPES STARTED ADD AND EDIT\n case types.SUBDIVISION_ADD_STARTED: {\n const subdivision = action.payload;\n const newState = { ...state };\n newState[subdivision.subdivisionId] = {\n isSelected: false,\n ...subdivision,\n isConfirmed: false\n };\n return newState;\n }\n case types.SUBDIVISION_EDIT_STARTED: {\n const subdivision = action.payload;\n return {\n ...state,\n [subdivision.subdivisionId]: {\n ...state[subdivision.subdivisionId],\n oldSubdivision: state[subdivision.subdivisionId],\n ...subdivision,\n isConfirmed: false\n }\n };\n }\n\n //TYPES FAILED ADD AND EDIT\n case types.SUBDIVISION_ADD_FAILED: {\n const { oldId } = action.payload;\n if (state[oldId]) {\n return omit(state, oldId);\n }\n return state;\n }\n case types.SUBDIVISION_EDIT_FAILED: {\n const { oldSubdivision } = action.payload;\n return {\n ...state,\n [oldSubdivision.subdivisionId]: {\n ...omit(state[oldSubdivision.subdivisionId], ['oldSubdivision']),\n ...oldSubdivision,\n isConfirmed: true\n }\n };\n }\n\n //TYPES REMOVE COMPLETED\n case types.SUBDIVISION_REMOVE_COMPLETED: {\n const { subdivisionId } = action.payload;\n return omit(state, subdivisionId);\n }\n\n //TYPES SELECTED AND DESELECTED\n case types.SUBDIVISION_SELECTED: {\n const subdivisionId = action.payload;\n const newState = {\n ...state,\n [subdivisionId]: {\n ...state[subdivisionId],\n isSelected: true\n }\n };\n return newState;\n }\n\n case types.SUBDIVISION_DESELECTED: {\n const subdivisionId = action.payload;\n return {\n ...state,\n [subdivisionId]: {\n ...state[subdivisionId],\n isSelected: false\n }\n };\n }\n\n case types.SUBDIVISIONS_ALL_SELECTED: {\n const subdivisionIds = action.payload;\n const newState = { ...state };\n if (subdivisionIds.length == 0) {\n forEach(state, (subdivision: any, subdivisionId) => {\n newState[subdivisionId] = {\n ...subdivision,\n isSelected: true\n };\n });\n } else {\n subdivisionIds.forEach((subdivisionId) => {\n newState[subdivisionId] = {\n ...state[subdivisionId],\n isSelected: true\n };\n });\n }\n\n return newState;\n }\n\n case types.SUBDIVISIONS_ALL_DESELECTED: {\n const subdivisionIds = action.payload;\n const newState = { ...state };\n if (subdivisionIds.length == 0) {\n forEach(state, (subdivision: any, subdivisionId) => {\n newState[subdivisionId] = {\n ...subdivision,\n isSelected: false\n };\n });\n } else {\n subdivisionIds.forEach((subdivisionId) => {\n newState[subdivisionId] = {\n ...state[subdivisionId],\n isSelected: false\n };\n });\n }\n\n return newState;\n }\n\n //DEFAULT\n default: {\n return state;\n }\n }\n};\n\nconst order = (state = [], action) => {\n switch (action.type) {\n //CASE COMPLETED FETCH, ADD AND REMOVE\n case types.SUBDIVISIONS_FETCH_COMPLETED:\n case types.SUBDIVISIONS_PARTIAL_FETCH_COMPLETED: {\n const { order } = action.payload;\n return uniq([...state, ...order]);\n }\n\n case types.SUBDIVISION_ADD_COMPLETED: {\n const { oldId, subdivision } = action.payload;\n return state.map((subdivisionId) =>\n subdivisionId === oldId ? subdivision.subdivisionId : subdivisionId\n );\n }\n\n case types.SUBDIVISION_REMOVE_COMPLETED: {\n const { subdivisionId } = action.payload;\n return state.filter((subdivisionIdState) => subdivisionIdState !== subdivisionId);\n }\n\n //CASE ADD STARTED\n case types.SUBDIVISION_ADD_STARTED: {\n const subdivision = action.payload;\n return [...state, subdivision.subdivisionId];\n }\n\n //CASE ADD FAILED\n case types.SUBDIVISION_ADD_FAILED: {\n const { oldId } = action.payload;\n return state.filter((subdivisionIdState) => subdivisionIdState !== oldId);\n }\n\n //DEFAULT\n default: {\n return state;\n }\n }\n};\n\n// STATES TO KNOW IF IT IS FETCHING, ADDING OR EDITING\nconst isFetchingList = (state = false, action) => {\n switch (action.type) {\n case types.SUBDIVISIONS_FETCH_STARTED: {\n return true;\n }\n case types.SUBDIVISIONS_FETCH_COMPLETED:\n case types.SUBDIVISIONS_FETCH_FAILED: {\n return false;\n }\n default: {\n return state;\n }\n }\n};\n\nconst isPartialFetchingList = (state = false, action) => {\n switch (action.type) {\n case types.SUBDIVISIONS_PARTIAL_FETCH_STARTED: {\n return true;\n }\n case types.SUBDIVISIONS_PARTIAL_FETCH_COMPLETED:\n case types.SUBDIVISIONS_PARTIAL_FETCH_FAILED: {\n return false;\n }\n default: {\n return state;\n }\n }\n};\n\nconst isAdding = (state = false, action) => {\n switch (action.type) {\n case types.SUBDIVISION_ADD_STARTED: {\n return true;\n }\n case types.SUBDIVISION_ADD_COMPLETED:\n case types.SUBDIVISION_ADD_FAILED: {\n return false;\n }\n default: {\n return state;\n }\n }\n};\n\nconst isEditing = (state = false, action) => {\n switch (action.type) {\n case types.SUBDIVISION_EDIT_STARTED: {\n return true;\n }\n case types.SUBDIVISION_EDIT_COMPLETED:\n case types.SUBDIVISION_EDIT_FAILED: {\n return false;\n }\n default: {\n return state;\n }\n }\n};\n\nconst isRemoving = (state = false, action) => {\n switch (action.type) {\n case types.SUBDIVISION_REMOVE_STARTED: {\n return true;\n }\n case types.SUBDIVISION_REMOVE_COMPLETED:\n case types.SUBDIVISION_REMOVE_FAILED: {\n return false;\n }\n default: {\n return state;\n }\n }\n};\n\nconst errorFetchingList = (state = null, action) => {\n switch (action.type) {\n case types.SUBDIVISIONS_FETCH_FAILED: {\n const { error } = action.payload;\n return error;\n }\n case types.SUBDIVISIONS_FETCH_STARTED:\n case types.SUBDIVISIONS_FETCH_COMPLETED: {\n return null;\n }\n default: {\n return state;\n }\n }\n};\n\nconst errorPartialFetchingList = (state = null, action) => {\n switch (action.type) {\n case types.SUBDIVISIONS_PARTIAL_FETCH_FAILED: {\n const { error } = action.payload;\n return error;\n }\n case types.SUBDIVISIONS_PARTIAL_FETCH_STARTED:\n case types.SUBDIVISIONS_PARTIAL_FETCH_COMPLETED: {\n return null;\n }\n default: {\n return state;\n }\n }\n};\n\nconst errorAdding = (state = null, action) => {\n switch (action.type) {\n case types.SUBDIVISION_ADD_FAILED: {\n const { error } = action.payload;\n return error;\n }\n case types.SUBDIVISION_ADD_STARTED:\n case types.SUBDIVISION_ADD_COMPLETED: {\n return null;\n }\n default: {\n return state;\n }\n }\n};\n\nconst errorEditing = (state = null, action) => {\n switch (action.type) {\n case types.SUBDIVISION_EDIT_FAILED: {\n const { error } = action.payload;\n return error;\n }\n case types.SUBDIVISION_EDIT_STARTED:\n case types.SUBDIVISION_EDIT_COMPLETED: {\n return null;\n }\n default: {\n return state;\n }\n }\n};\n\nconst errorRemoving = (state = null, action) => {\n switch (action.type) {\n case types.SUBDIVISION_REMOVE_FAILED: {\n const { error } = action.payload;\n return error;\n }\n case types.SUBDIVISION_REMOVE_STARTED:\n case types.SUBDIVISION_REMOVE_COMPLETED: {\n return null;\n }\n default: {\n return state;\n }\n }\n};\n\nconst subdivisions = combineReducers({\n byId,\n order,\n isPartialFetchingList,\n isFetchingList,\n isAdding,\n isEditing,\n isRemoving,\n errorPartialFetchingList,\n errorFetchingList,\n errorAdding,\n errorEditing,\n errorRemoving\n});\n\nexport default subdivisions;\n\n//Own state\nexport const getOwnState = (state) => state.subdivisions;\n\n//Information\nexport const getSubdivision = (state, subdivisionId) => {\n const subdivision = getOwnState(state).byId[subdivisionId];\n if (subdivision) {\n const operator = subdivision.operatorId\n ? operatorSelectors.getOperator(state, subdivision.operatorId)\n : undefined;\n const organization = subdivision.organizationId\n ? organizationSelectors.getOrganization(state, subdivision.organizationId)\n : undefined;\n const division = subdivision.divisionId\n ? divisionSelectors.getDivision(state, subdivision.divisionId)\n : undefined;\n return {\n ...subdivision,\n operatorName: operator ? operator.operatorName : '',\n organizationName: organization ? organization.organizationName : '',\n divisionName: division ? division.divisionName : ''\n };\n } else return undefined;\n};\nexport const getSubdivisionsList = (state) =>\n getOwnState(state)\n .order.map((id) => getSubdivision(state, id))\n .filter((subdivision) => subdivision.subdivisionStatus > 0);\nexport const getSubdivisionsListByMembership = (state, membership) => {\n //Se filtra por divisionId\n if (membership.operatorId) {\n if (membership.organizationId) {\n if (membership.divisionId) {\n return getSubdivisionsList(state).filter(\n (subdivision) =>\n subdivision.operatorId === membership.operatorId &&\n subdivision.organizationId === membership.organizationId &&\n subdivision.divisionId === membership.divisionId\n );\n }\n return getSubdivisionsList(state).filter(\n (subdivision) =>\n subdivision.operatorId === membership.operatorId &&\n subdivision.organizationId === membership.organizationId\n );\n }\n return getSubdivisionsList(state).filter(\n (subdivision) => subdivision.operatorId === membership.operatorId\n );\n }\n //Si no se ha seleccionado una divisiĆ³n se devuelve la lista completa\n else return getSubdivisionsList(state);\n};\nexport const getSubdivisionsListBySelectedDivision = (state, membership) => {\n //Se filtra por divisionId\n if (membership.divisionId) {\n return getSubdivisionsList(state).filter(\n (subdivision) => subdivision.divisionId === membership.divisionId\n );\n }\n //Si no se ha seleccionado una divisiĆ³n se devuelve una lista vacia\n else return [];\n};\n\nexport const getSelectedSubdivisions = (state) => {\n const selectedSubdivisions = getSubdivisionsList(state).filter(\n (subdivision) => subdivision.isSelected\n );\n //Si no se selecciona ninguno devuelve null\n if (selectedSubdivisions.length === 0) return null;\n //Si se selecciona mĆ”s de cero se devuelve el arreglo de los seleccionados\n if (selectedSubdivisions.length > 0) return selectedSubdivisions;\n};\n\nexport const getSelectedSubdivision = (state) => {\n const selectedSubdivisions = getSubdivisionsList(state).filter(\n (subdivision) => subdivision.isSelected\n );\n //Si se selecciona solo uno devuelve solo el seleccionado\n if (selectedSubdivisions.length === 1) return selectedSubdivisions[0];\n //De lo contrario se devuelve null\n else return null;\n};\n\n//Status of sagas\nexport const isPartialFetchingListSubdivisions = (state) =>\n getOwnState(state).isPartialFetchingList;\nexport const isFetchingListSubdivisions = (state) => getOwnState(state).isFetchingList;\nexport const isAddingSubdivision = (state) => getOwnState(state).isAdding;\nexport const isEditingSubdivision = (state) => getOwnState(state).isEditing;\nexport const isRemovingSubdivision = (state) => getOwnState(state).isRemoving;\n\n//Errors\nexport const getPartialFetchingListSubdivisionsErrors = (state) =>\n getOwnState(state).errorPartialFetchingList;\nexport const getFetchingListSubdivisionsErrors = (state) => getOwnState(state).errorFetchingList;\nexport const getAddingSubdivisionErrors = (state) => getOwnState(state).errorAdding;\nexport const getEditingSubdivisionErrors = (state) => getOwnState(state).errorEditing;\nexport const getRemovingSubdivisionErrors = (state) => getOwnState(state).errorRemoving;\n","const permissions = {\n viewWorkplanModule: 'WP001',\n assignWorkplan: 'WP002',\n searchWorkplans: 'WP020',\n viewPlansIndicator: 'WP021',\n viewLocationsIndicator: 'WP022',\n viewVisitsIndicator: 'WP023',\n viewExecutionIndicator: 'WP024',\n viewArrivalEffectivnessGraph: 'WP025',\n viewPermanenceEffectivenessGraph: 'WP026',\n viewLocationsUnitsEffectivenessGraph: 'WP027',\n changeUnit: 'WP028',\n finalizeWorkplanAssignment: 'WP029',\n viewWorkplanMonitor: 'WP019',\n cancelWorkplanAssignment: 'WP030',\n viewWorkplanReport: 'WP031',\n addWorkplan: 'WP035',\n editWorkplan: 'WP036',\n deleteWorkplan: 'WP037',\n viewWorkplanCatalog: 'WP038',\n scheduledWorkplanList: 'WP018',\n scheduledWorkplanEdit: 'WP032',\n scheduledWorkplanDelete: 'WP033'\n};\n\nexport default permissions;\n","import React, { Fragment } from 'react';\nimport { ButtonToolbar } from 'reactstrap';\n\ninterface Props {\n buttons: any[];\n className?: string;\n position?: 'right' | 'left';\n}\nconst Toolbar = (props: Props) => {\n const { buttons, className = '', position = 'right' } = props;\n return (\n \n {buttons.map((child, index) => (\n {child}\n ))}\n \n );\n};\n\nexport default Toolbar;\n","/* -------------------------------------------------------------------------- */\n/* Componente FetchEntities */\n/* -------------------------------------------------------------------------- */\n// Este componente es utilizado para cargar cualquier entity\n// Simplemente se debe enviar el use{Entity} en verdadero\n// Si desea que se cada cierto tiempo se este viendo si el entity debe actualizarse coloque un entity timeout\n// Puede utilizar varios componentes FetchEntities para diferenciar los que necesitan timeout de los que no\n\nimport { useEffect } from 'react';\nimport { useDispatch, useSelector } from 'react-redux';\nimport * as entityActions from '../../actions';\nimport * as entitiesSelectors from '../../reducers';\nimport {\n ENTITY_AGENTS,\n ENTITY_ASSETS,\n ENTITY_CONTACTS,\n ENTITY_COUNTRIES,\n ENTITY_DIVISIONS,\n ENTITY_FORMS,\n ENTITY_GEOFENCES,\n ENTITY_JOBS_BACKLOG,\n ENTITY_GROUPS,\n ENTITY_LOCATIONS,\n ENTITY_MODULES,\n ENTITY_OPERATORS,\n ENTITY_ORGANIZATIONS,\n ENTITY_DRIVERS,\n ENTITY_ROUTES,\n ENTITY_SCHEDULES,\n ENTITY_SENSORS,\n ENTITY_SERVICE_CLASSES,\n ENTITY_SIM_CARDS,\n ENTITY_SUBDIVISONS,\n ENTITY_MAINTENANCE_LINES,\n ENTITY_UNITS,\n ENTITY_USERS,\n ENTITY_VEHICLES,\n ENTITY_WORKPLANS,\n ENTITY_ORGANIZATION_CONTRACTS,\n ENTITY_CUSTOMERS,\n ENTITY_CONTRACT_TEMPLATES,\n ENTITY_OFFICES,\n ENTITY_PROTOCOLS\n} from '../../constants';\n\nexport interface DefaultFilters {\n operatorId?: number;\n organizationId?: number;\n divisionId?: number;\n subdivisionId?: number;\n groupId?: number;\n}\n\ninterface Props {\n useUnits?: boolean;\n unitsFilters?: DefaultFilters;\n useSubdivisions?: boolean;\n subdivisionsFilters?: DefaultFilters;\n useMaintenanceLines?: boolean;\n maintenanceLinesFilters?: DefaultFilters;\n useVehicles?: boolean;\n vehiclesFilters?: DefaultFilters;\n useSims?: boolean;\n simsFilters?: DefaultFilters;\n useModules?: boolean;\n modulesFilters?: DefaultFilters;\n useDrivers?: boolean;\n driversFilters?: DefaultFilters;\n useAgents?: boolean;\n useServiceClasses?: boolean;\n useServiceClassesDropdown?: boolean;\n useUsers?: boolean;\n usersFilters?: DefaultFilters;\n useOperators?: boolean;\n useDivisions?: boolean;\n divisionsFilters?: DefaultFilters;\n useOrganizations?: boolean;\n useContacts?: boolean;\n useWorkplans?: boolean;\n workplansFilters?: DefaultFilters;\n useGeofences?: boolean;\n geofencesFilters?: DefaultFilters;\n useSchedules?: boolean;\n useForms?: boolean;\n useRoutes?: boolean;\n routesFilters?: DefaultFilters;\n useCountries?: boolean;\n useLocations?: boolean;\n locationsFilters?: DefaultFilters;\n useOffices?: boolean;\n officesFilters?: DefaultFilters;\n useAssets?: boolean;\n assetsFilters?: DefaultFilters;\n useSensors?: boolean;\n useJobsBacklog?: boolean;\n jobsBacklogFilters?: DefaultFilters;\n useGroups?: boolean;\n groupsFilters?: DefaultFilters;\n useOrganizationContracts?: boolean;\n organizationContractsFilters?: DefaultFilters;\n useContractTemplates?: boolean;\n contractTemplatesFilters?: DefaultFilters;\n useCustomers?: boolean;\n customersFilters?: DefaultFilters;\n useProtocols?: boolean;\n protocolsFilters?: DefaultFilters;\n intervalTime?: number; //milliseconds ?: send undefined,null or 0 to avoid a setInterval\n additionalEntities?: number[]; //list of entitytypes (int) to also load\n}\n\nconst FetchEntities = (props: Props) => {\n const {\n useUnits,\n unitsFilters,\n useSubdivisions,\n subdivisionsFilters,\n useMaintenanceLines,\n maintenanceLinesFilters,\n useVehicles,\n vehiclesFilters,\n useSims,\n simsFilters,\n useModules,\n modulesFilters,\n useDrivers,\n driversFilters,\n useAgents,\n useServiceClasses,\n useServiceClassesDropdown,\n useUsers,\n usersFilters,\n useOperators,\n useDivisions,\n divisionsFilters,\n useOrganizations,\n useContacts,\n useWorkplans,\n workplansFilters,\n useGeofences,\n geofencesFilters,\n useSchedules,\n useForms,\n useRoutes,\n routesFilters,\n useCountries,\n useLocations,\n locationsFilters,\n useOffices,\n officesFilters,\n useAssets,\n assetsFilters,\n useSensors,\n useJobsBacklog,\n jobsBacklogFilters,\n useGroups,\n groupsFilters,\n useOrganizationContracts,\n organizationContractsFilters,\n useContractTemplates,\n contractTemplatesFilters,\n useCustomers,\n customersFilters,\n useProtocols,\n protocolsFilters,\n intervalTime,\n additionalEntities\n } = props;\n const dispatch = useDispatch();\n\n const { isEntityUpdatedFunction, isFetchedListEntities } = useSelector((state) => ({\n isEntityUpdatedFunction: entitiesSelectors.isEntityUpdated(state),\n isFetchedListEntities: entitiesSelectors.isFetchedListEntities(state)\n }));\n\n const fetchEntities = () => {\n let entities: any[] = [];\n if (additionalEntities != null) entities = [...additionalEntities];\n if (useAgents) entities.push(ENTITY_AGENTS);\n if (useServiceClasses) entities.push(ENTITY_SERVICE_CLASSES);\n if (useOperators) entities.push(ENTITY_OPERATORS);\n if (useOrganizations) entities.push(ENTITY_ORGANIZATIONS);\n if (useContacts) entities.push(ENTITY_CONTACTS);\n if (useSchedules) entities.push(ENTITY_SCHEDULES);\n if (useForms) entities.push(ENTITY_FORMS);\n if (useCountries) entities.push(ENTITY_COUNTRIES);\n if (useSensors) entities.push(ENTITY_SENSORS);\n if (useOrganizationContracts) entities.push(ENTITY_ORGANIZATION_CONTRACTS);\n if (useContractTemplates) entities.push(ENTITY_CONTRACT_TEMPLATES);\n if (useCustomers) entities.push(ENTITY_CUSTOMERS);\n if (useProtocols) entities.push(ENTITY_PROTOCOLS);\n if (entities.length > 0) {\n dispatch(entityActions.startUpdatingEntities(entities));\n }\n\n const isEntityUpdated = isEntityUpdatedFunction(entities);\n const finalEntities = entities.filter((_, i) => isEntityUpdated[i] !== true);\n if (finalEntities.length > 0) dispatch(entityActions.startUpdatingEntities(finalEntities));\n };\n\n const fetchEntitiesWithFilters = (entities: any[]) => {\n const isEntityUpdated = isEntityUpdatedFunction(entities);\n const finalEntities = entities.filter((_, i) => isEntityUpdated[i] !== true);\n if (finalEntities.length > 0) {\n dispatch(entityActions.startUpdatingEntities(finalEntities));\n }\n };\n\n const fetchDivisions = (divisionsFilters) => {\n if (useDivisions && divisionsFilters)\n fetchEntitiesWithFilters([\n {\n entityTypeId: ENTITY_DIVISIONS,\n operatorId: divisionsFilters?.operatorId,\n organizationId: divisionsFilters?.organizationId\n }\n ]);\n };\n\n const fetchSubdivisions = (subdivisionsFilters) => {\n if (useSubdivisions && subdivisionsFilters)\n fetchEntitiesWithFilters([\n {\n entityTypeId: ENTITY_SUBDIVISONS,\n operatorId: subdivisionsFilters?.operatorId,\n organizationId: subdivisionsFilters?.organizationId\n }\n ]);\n };\n\n const fetchMaintenanceLines = (maintenanceLinesFilters) => {\n if (useMaintenanceLines && maintenanceLinesFilters)\n fetchEntitiesWithFilters([\n {\n entityTypeId: ENTITY_MAINTENANCE_LINES,\n operatorId: maintenanceLinesFilters?.operatorId,\n organizationId: maintenanceLinesFilters?.organizationId\n }\n ]);\n };\n\n const fetchLocations = (locationsFilters) => {\n if (useLocations && locationsFilters)\n fetchEntitiesWithFilters([\n {\n entityTypeId: ENTITY_LOCATIONS,\n operatorId: locationsFilters?.operatorId,\n organizationId: locationsFilters?.organizationId\n }\n ]);\n };\n\n const fetchOffices = (officesFilters) => {\n if (useOffices && officesFilters)\n fetchEntitiesWithFilters([\n {\n entityTypeId: ENTITY_OFFICES,\n operatorId: officesFilters?.operatorId,\n organizationId: officesFilters?.organizationId\n }\n ]);\n };\n\n const fetchDrivers = (driversFilters) => {\n if (useDrivers && driversFilters)\n fetchEntitiesWithFilters([\n {\n entityTypeId: ENTITY_DRIVERS,\n operatorId: driversFilters?.operatorId,\n organizationId: driversFilters?.organizationId\n }\n ]);\n };\n\n const fetchWorkplans = (workplansFilters) => {\n if (useWorkplans && workplansFilters)\n fetchEntitiesWithFilters([\n {\n entityTypeId: ENTITY_WORKPLANS,\n operatorId: workplansFilters?.operatorId,\n organizationId: workplansFilters?.organizationId\n }\n ]);\n };\n\n const fetchGeofences = (geofencesFilters) => {\n if (useGeofences && geofencesFilters)\n fetchEntitiesWithFilters([\n {\n entityTypeId: ENTITY_GEOFENCES,\n operatorId: geofencesFilters?.operatorId,\n organizationId: geofencesFilters?.organizationId\n }\n ]);\n };\n\n const fetchRoutes = (routesFilters) => {\n if (useRoutes && routesFilters)\n fetchEntitiesWithFilters([\n {\n entityTypeId: ENTITY_ROUTES,\n operatorId: routesFilters?.operatorId,\n organizationId: routesFilters?.organizationId\n }\n ]);\n };\n\n const fetchUnits = (unitsFilters) => {\n if (useUnits && unitsFilters)\n fetchEntitiesWithFilters([\n {\n entityTypeId: ENTITY_UNITS,\n operatorId: unitsFilters?.operatorId,\n organizationId: unitsFilters?.organizationId\n }\n ]);\n };\n\n const fetchVehicles = (vehiclesFilters) => {\n if (useVehicles && vehiclesFilters)\n fetchEntitiesWithFilters([\n {\n entityTypeId: ENTITY_VEHICLES,\n operatorId: vehiclesFilters?.operatorId,\n organizationId: vehiclesFilters?.organizationId\n }\n ]);\n };\n\n const fetchAssets = (assetsFilters) => {\n if (useAssets && assetsFilters)\n fetchEntitiesWithFilters([\n {\n entityTypeId: ENTITY_ASSETS,\n operatorId: assetsFilters?.operatorId,\n organizationId: assetsFilters?.organizationId\n }\n ]);\n };\n\n const fetchJobsBacklog = (jobsFilters: DefaultFilters | undefined) => {\n if (useJobsBacklog && jobsFilters)\n fetchEntitiesWithFilters([\n {\n entityTypeId: ENTITY_JOBS_BACKLOG,\n operatorId: jobsFilters?.operatorId,\n organizationId: jobsFilters?.organizationId\n }\n ]);\n };\n\n const fetchUsers = (usersFilters) => {\n if (useUsers)\n fetchEntitiesWithFilters([\n {\n entityTypeId: ENTITY_USERS,\n operatorId: usersFilters?.operatorId,\n organizationId: usersFilters?.organizationId,\n allowNullOrganizationId: true,\n allowNullOperatorId: true\n }\n ]);\n };\n\n const fetchGroups = (groupsFilters) => {\n if (useGroups)\n fetchEntitiesWithFilters([\n {\n entityTypeId: ENTITY_GROUPS,\n operatorId: groupsFilters?.operatorId,\n organizationId: groupsFilters?.organizationId\n }\n ]);\n };\n\n const fetchOrganizationContracts = (organizationContractsFilters) => {\n if (useOrganizationContracts && organizationContractsFilters)\n fetchEntitiesWithFilters([\n {\n entityTypeId: ENTITY_ORGANIZATION_CONTRACTS,\n operatorId: organizationContractsFilters?.operatorId,\n organizationId: organizationContractsFilters?.organizationId\n }\n ]);\n };\n\n const fetchContracTemplates = (contractTemplatesFilters) => {\n if (useContractTemplates && contractTemplatesFilters)\n dispatch(\n entityActions.startUpdatingEntities([\n {\n entityTypeId: ENTITY_CONTRACT_TEMPLATES,\n operatorId: contractTemplatesFilters?.operatorId,\n organizationId: contractTemplatesFilters?.organizationId,\n allowNullOrganizationId: true\n }\n ])\n );\n };\n\n const fetchCustomers = (customersFilters) => {\n if (useCustomers && customersFilters)\n fetchEntitiesWithFilters([\n {\n entityTypeId: ENTITY_CUSTOMERS,\n operatorId: customersFilters?.operatorId,\n organizationId: customersFilters?.organizationId\n }\n ]);\n };\n\n const fetchModules = (modulesFilters) => {\n if (useModules && modulesFilters)\n fetchEntitiesWithFilters([\n {\n entityTypeId: ENTITY_MODULES,\n operatorId: modulesFilters?.operatorId,\n organizationId: modulesFilters?.organizationId,\n allowNullOrganizationId: true\n }\n ]);\n };\n\n const fetchSims = (simsFilters) => {\n if (useSims && simsFilters)\n fetchEntitiesWithFilters([\n {\n entityTypeId: ENTITY_SIM_CARDS,\n operatorId: simsFilters?.operatorId,\n organizationId: simsFilters?.organizationId,\n allowNullOrganizationId: true\n }\n ]);\n };\n\n const fetchServiceClasses = () => {\n if (useServiceClasses)\n fetchEntitiesWithFilters([\n {\n entityTypeId: ENTITY_SERVICE_CLASSES,\n allowNullOrganizationId: true\n }\n ]);\n };\n\n const fetchServiceClassesDropdown = () => {\n if (useServiceClassesDropdown) {\n console.log('useServiceClassesDropdown', useServiceClassesDropdown);\n fetchEntitiesWithFilters([\n {\n entityTypeId: ENTITY_SERVICE_CLASSES,\n isDropdown: true,\n allowNullOrganizationId: true\n }\n ]);\n }\n };\n\n const fetchProtocols = () => {\n if (useProtocols)\n fetchEntitiesWithFilters([\n {\n entityTypeId: ENTITY_PROTOCOLS,\n allowNullOrganizationId: true\n }\n ]);\n };\n\n useEffect(() => {\n if (isFetchedListEntities) fetchEntities();\n }, [isFetchedListEntities]);\n\n //Se actualiza la entity de divisions cuando cambia la organizaciĆ³n\n useEffect(() => {\n if (isFetchedListEntities) fetchDivisions(divisionsFilters);\n }, [isFetchedListEntities, useDivisions, divisionsFilters?.organizationId]);\n\n //Se actualiza la entity de subdivisions cuando cambia la organizaciĆ³n\n useEffect(() => {\n if (isFetchedListEntities) fetchSubdivisions(subdivisionsFilters);\n }, [isFetchedListEntities, useSubdivisions, subdivisionsFilters?.organizationId]);\n\n //Se actualiza la entity de maintenanceLines cuando cambia la organizaciĆ³n\n useEffect(() => {\n if (isFetchedListEntities) fetchMaintenanceLines(maintenanceLinesFilters);\n }, [isFetchedListEntities, useMaintenanceLines, maintenanceLinesFilters?.organizationId]);\n\n //Se actualiza la entity de locations cuando cambia la organizaciĆ³n\n useEffect(() => {\n if (isFetchedListEntities) fetchLocations(locationsFilters);\n }, [isFetchedListEntities, useLocations, locationsFilters?.organizationId]);\n\n //Se actualiza la entity de offices cuando cambia la organizaciĆ³n\n useEffect(() => {\n if (isFetchedListEntities) fetchOffices(officesFilters);\n }, [isFetchedListEntities, useOffices, officesFilters?.organizationId]);\n\n //Se actualiza la entity de drivers cuando cambia la organizaciĆ³n\n useEffect(() => {\n if (isFetchedListEntities) fetchDrivers(driversFilters);\n }, [isFetchedListEntities, useDrivers, driversFilters?.organizationId]);\n\n //Se actualiza la entity de workplans cuando cambia la organizaciĆ³n\n useEffect(() => {\n if (isFetchedListEntities) fetchWorkplans(workplansFilters);\n }, [isFetchedListEntities, useWorkplans, workplansFilters?.organizationId]);\n\n //Se actualiza la entity de geofences cuando cambia la organizaciĆ³n\n useEffect(() => {\n if (isFetchedListEntities) fetchGeofences(geofencesFilters);\n }, [isFetchedListEntities, useGeofences, geofencesFilters?.organizationId]);\n\n //Se actualiza la entity de workplans cuando cambia la organizaciĆ³n\n useEffect(() => {\n if (isFetchedListEntities) fetchRoutes(routesFilters);\n }, [isFetchedListEntities, useRoutes, routesFilters?.organizationId]);\n\n //Se actualiza la entity de units cuando cambia la organizaciĆ³n y el operador\n useEffect(() => {\n if (isFetchedListEntities) fetchUnits(unitsFilters);\n }, [isFetchedListEntities, useUnits, unitsFilters?.operatorId, unitsFilters?.organizationId]);\n\n //Se actualiza la entity de vehicles cuando cambia la organizaciĆ³n\n useEffect(() => {\n if (isFetchedListEntities) fetchVehicles(vehiclesFilters);\n }, [isFetchedListEntities, useVehicles, vehiclesFilters?.organizationId]);\n\n //Se actualiza la entity de assets cuando cambia la organizaciĆ³n\n useEffect(() => {\n if (isFetchedListEntities) fetchAssets(assetsFilters);\n }, [isFetchedListEntities, useAssets, assetsFilters?.organizationId]);\n\n useEffect(() => {\n if (isFetchedListEntities) fetchJobsBacklog(jobsBacklogFilters);\n }, [isFetchedListEntities, useJobsBacklog, assetsFilters?.organizationId]);\n\n //Se actualiza la entity de users cuando cambia la organizaciĆ³n\n useEffect(() => {\n if (isFetchedListEntities) fetchUsers(usersFilters);\n }, [isFetchedListEntities, useUsers, usersFilters?.organizationId]);\n\n //Se actualiza la entity de customers cuando cambia la organizaciĆ³n\n useEffect(() => {\n if (isFetchedListEntities) fetchCustomers(customersFilters);\n }, [isFetchedListEntities, useCustomers, customersFilters?.organizationId]);\n\n //Se actualiza la entity de groups cuando cambia la organizaciĆ³n\n useEffect(() => {\n if (isFetchedListEntities) fetchGroups(groupsFilters);\n }, [isFetchedListEntities, useGroups, groupsFilters?.organizationId]);\n\n //Se actualiza la entity de contratos de organizacion cuando cambia la organizaciĆ³n y operador\n useEffect(() => {\n if (isFetchedListEntities) fetchOrganizationContracts(organizationContractsFilters);\n }, [\n isFetchedListEntities,\n useOrganizationContracts,\n organizationContractsFilters?.operatorId,\n organizationContractsFilters?.organizationId\n ]);\n\n //Se actualiza la entity de plantillas de contratos cuando cambia el operador\n useEffect(() => {\n if (isFetchedListEntities) fetchContracTemplates(contractTemplatesFilters);\n }, [\n isFetchedListEntities,\n useContractTemplates,\n contractTemplatesFilters?.operatorId,\n contractTemplatesFilters?.organizationId\n ]);\n\n //Se actualiza la entity de modules cuando cambia la operador u organizaciĆ³n\n useEffect(() => {\n if (isFetchedListEntities) fetchModules(modulesFilters);\n }, [\n isFetchedListEntities,\n useModules,\n modulesFilters?.operatorId,\n modulesFilters?.organizationId\n ]);\n\n //Se actualiza la entity de sims cuando cambia la operador u organizaciĆ³n\n useEffect(() => {\n if (isFetchedListEntities) fetchSims(simsFilters);\n }, [isFetchedListEntities, useSims, simsFilters?.operatorId, simsFilters?.organizationId]);\n\n //Se actualiza la entity de class service\n useEffect(() => {\n if (isFetchedListEntities) fetchServiceClasses();\n }, [isFetchedListEntities, useServiceClasses]);\n\n //Se actualiza la entity de class service\n useEffect(() => {\n if (isFetchedListEntities) fetchServiceClassesDropdown();\n }, [isFetchedListEntities, useServiceClassesDropdown]);\n\n //Se actualiza la entity de protocolos\n useEffect(() => {\n if (isFetchedListEntities) fetchProtocols();\n }, [isFetchedListEntities, useProtocols]);\n\n return null;\n};\n\nFetchEntities.defaultProps = {\n useUnits: false,\n useSubdivisions: false,\n useMaintenanceLines: false,\n useVehicles: false,\n useSims: false,\n useModules: false,\n useDrivers: false,\n useAgents: false,\n useServiceClasses: false,\n useUsers: false,\n useOperators: false,\n useDivisions: false,\n useOrganizations: false,\n useContacts: false,\n useWorkplans: false,\n useGeofences: false,\n useSchedules: false,\n useForms: false,\n useRoutes: false,\n useCountries: false,\n useLocations: false,\n useAssets: false,\n useSensors: false,\n useJobsBacklog: false,\n useGroups: false,\n useCustomers: false,\n useOrganizationContracts: false,\n useContractTemplates: false,\n useProtocols: false,\n intervalTime: null, //milliseconds\n additionalEntities: [] //list of entitytypes (int) to also load\n};\n\nexport default FetchEntities;\n","import { HttpWebtrack } from 'utility/http';\nimport { ConfigActions } from '../../../../utility/http/http-events';\n\nimport configureInterceptors from 'utility/http/interceptors/configure-interceptors';\nimport { store } from 'redux/storeConfig/store';\n\nexport const baseUrl = '/job';\n\ninterface JobBacklogSaveRequest {\n jobId?: number;\n jobTitle: string;\n}\n\ninterface JobsBacklogDeleteRequest {\n jobs: string;\n}\n\ninterface JobBacklogFilters {\n userFetchDate?: Date;\n}\n\ninterface JobsBacklogChangeStatusRequest {\n jobs: string;\n jobStatus?: number;\n comment?: string;\n}\n\ninterface JobsBacklogRescheduleJobsRequest {\n jobs: string;\n startDate?: any;\n dueDate?: any;\n comment?: string;\n}\n\ninterface JobsBacklogChangePriorityRequest {\n jobs: string;\n jobPriority?: number;\n}\n\ninterface JobsBacklogChangeStartDateRequest {\n jobs: string;\n startDate?: any;\n}\n\ninterface JobsBacklogChangeDueDateRequest {\n jobs: string;\n dueDate?: any;\n}\n\ninterface JobsBacklogChangeMinMaxTimeRequest {\n jobs: string;\n maxTime?: number;\n}\n\ninterface JobsBacklogAssignUsersRequest {\n jobs: string;\n userNames?: string;\n}\n\ninterface JobsBacklogAssignFormsRequest {\n jobs: string;\n formIds?: string;\n}\n\ninterface JobsBacklogAssignFilesRequest {\n jobs: string;\n fileIds?: string;\n}\n\ninterface JobBoardFilters {\n operatorId?: number;\n organizationId?: number;\n divisionId?: number;\n subdivisionId?: number;\n startDate: Date;\n endDate: Date;\n}\n\ninterface JobsBoardChangeStatusRequest {\n jobs: string;\n jobStatus?: number;\n comment?: string;\n}\n\ninterface JobReportFilters {\n operatorId?: number;\n organizationId?: number;\n divisionId?: number;\n subdivisionId?: number;\n startDate: Date;\n endDate: Date;\n}\n\ninterface JobReportByUserFilters {\n userName: string;\n operatorId?: number;\n organizationId?: number;\n divisionId?: number;\n subdivisionId?: number;\n startDate: Date;\n endDate: Date;\n}\n\nexport const getJobsBacklogListService = (\n request: JobBacklogFilters,\n configActions: ConfigActions\n) => {\n const httpWebtrack = new HttpWebtrack();\n configureInterceptors.ConfigureWebtrackInterceptor(store, httpWebtrack);\n httpWebtrack.setConfigMessage({\n object: 'jobs.job',\n action: 'Get',\n genderType: 'PluralMale'\n });\n\n httpWebtrack.setConfigActions(configActions);\n return httpWebtrack.post(`${baseUrl}/get`, request);\n};\n\nexport const getJobService = (request: any, configActions: ConfigActions) => {\n const httpWebtrack = new HttpWebtrack();\n configureInterceptors.ConfigureWebtrackInterceptor(store, httpWebtrack);\n\n httpWebtrack.setConfigActions(configActions);\n return httpWebtrack.post(`${baseUrl}/getJob`, request);\n};\n\nexport const saveJobBacklogService = (\n request: JobBacklogSaveRequest,\n configActions: ConfigActions\n) => {\n const httpWebtrack = new HttpWebtrack();\n configureInterceptors.ConfigureWebtrackInterceptor(store, httpWebtrack);\n httpWebtrack.setConfigMessage({\n object: 'jobs.job',\n action: request.jobId ? 'Edit' : 'Create',\n name: request.jobTitle,\n genderType: 'SingularMale'\n });\n httpWebtrack.setConfigActions(configActions);\n return httpWebtrack.post(`${baseUrl}/save`, request);\n};\n\nexport const deleteJobsBacklogService = (\n request: JobsBacklogDeleteRequest,\n configActions: ConfigActions\n) => {\n const httpWebtrack = new HttpWebtrack();\n configureInterceptors.ConfigureWebtrackInterceptor(store, httpWebtrack);\n httpWebtrack.setConfigMessage({\n name: ``,\n object: 'jobs.job',\n action: 'Delete',\n genderType: 'PluralMale'\n });\n httpWebtrack.setConfigActions(configActions);\n return httpWebtrack.post(`${baseUrl}/delete`, request);\n};\n\nexport const changeJobsStatusService = (\n request: JobsBacklogChangeStatusRequest,\n configActions: ConfigActions\n) => {\n const httpWebtrack = new HttpWebtrack();\n configureInterceptors.ConfigureWebtrackInterceptor(store, httpWebtrack);\n httpWebtrack.setConfigMessage({\n object: 'jobs.job',\n action: 'Edit',\n name: '',\n genderType: 'PluralMale'\n });\n httpWebtrack.setConfigActions(configActions);\n return httpWebtrack.post(`${baseUrl}/changeStatus`, request);\n};\n\nexport const rescheduleJobsService = (\n request: JobsBacklogRescheduleJobsRequest,\n configActions: ConfigActions\n) => {\n const httpWebtrack = new HttpWebtrack();\n configureInterceptors.ConfigureWebtrackInterceptor(store, httpWebtrack);\n httpWebtrack.setConfigMessage({\n object: 'jobs.job',\n action: 'Edit',\n name: '',\n genderType: 'PluralMale'\n });\n httpWebtrack.setConfigActions(configActions);\n return httpWebtrack.post(`${baseUrl}/rescheduleJobs`, request);\n};\n\nexport const changeJobsPriorityService = (\n request: JobsBacklogChangePriorityRequest,\n configActions: ConfigActions\n) => {\n const httpWebtrack = new HttpWebtrack();\n configureInterceptors.ConfigureWebtrackInterceptor(store, httpWebtrack);\n httpWebtrack.setConfigMessage({\n object: 'jobs.job',\n action: 'Edit',\n name: '',\n genderType: 'PluralMale'\n });\n httpWebtrack.setConfigActions(configActions);\n return httpWebtrack.post(`${baseUrl}/changePriority`, request);\n};\n\nexport const changeJobsStartDateService = (\n request: JobsBacklogChangeStartDateRequest,\n configActions: ConfigActions\n) => {\n const httpWebtrack = new HttpWebtrack();\n configureInterceptors.ConfigureWebtrackInterceptor(store, httpWebtrack);\n httpWebtrack.setConfigMessage({\n object: 'jobs.job',\n action: 'Edit',\n name: '',\n genderType: 'PluralMale'\n });\n httpWebtrack.setConfigActions(configActions);\n return httpWebtrack.post(`${baseUrl}/changeStartDate`, request);\n};\n\nexport const changeJobsDueDateService = (\n request: JobsBacklogChangeDueDateRequest,\n configActions: ConfigActions\n) => {\n const httpWebtrack = new HttpWebtrack();\n configureInterceptors.ConfigureWebtrackInterceptor(store, httpWebtrack);\n httpWebtrack.setConfigMessage({\n object: 'jobs.job',\n action: 'Edit',\n name: '',\n genderType: 'PluralMale'\n });\n httpWebtrack.setConfigActions(configActions);\n return httpWebtrack.post(`${baseUrl}/changeDueDate`, request);\n};\n\nexport const changeJobsMinMaxTimeService = (\n request: JobsBacklogChangeMinMaxTimeRequest,\n configActions: ConfigActions\n) => {\n const httpWebtrack = new HttpWebtrack();\n configureInterceptors.ConfigureWebtrackInterceptor(store, httpWebtrack);\n httpWebtrack.setConfigMessage({\n object: 'jobs.job',\n action: 'Edit',\n name: '',\n genderType: 'PluralMale'\n });\n httpWebtrack.setConfigActions(configActions);\n return httpWebtrack.post(`${baseUrl}/changeMinMaxTime`, request);\n};\n\nexport const assignJobsUsersService = (\n request: JobsBacklogAssignUsersRequest,\n configActions: ConfigActions\n) => {\n const httpWebtrack = new HttpWebtrack();\n configureInterceptors.ConfigureWebtrackInterceptor(store, httpWebtrack);\n httpWebtrack.setConfigMessage({\n object: 'jobs.job',\n action: 'Edit',\n name: '',\n genderType: 'PluralMale'\n });\n httpWebtrack.setConfigActions(configActions);\n return httpWebtrack.post(`${baseUrl}/assignUsers`, request);\n};\n\nexport const assignJobsFormsService = (\n request: JobsBacklogAssignFormsRequest,\n configActions: ConfigActions\n) => {\n const httpWebtrack = new HttpWebtrack();\n configureInterceptors.ConfigureWebtrackInterceptor(store, httpWebtrack);\n httpWebtrack.setConfigMessage({\n object: 'jobs.job',\n action: 'Edit',\n name: '',\n genderType: 'PluralMale'\n });\n httpWebtrack.setConfigActions(configActions);\n return httpWebtrack.post(`${baseUrl}/assignForms`, request);\n};\n\nexport const assignJobsFilesService = (\n request: JobsBacklogAssignFilesRequest,\n configActions: ConfigActions\n) => {\n const httpWebtrack = new HttpWebtrack();\n configureInterceptors.ConfigureWebtrackInterceptor(store, httpWebtrack);\n httpWebtrack.setConfigMessage({\n object: 'jobs.job',\n action: 'Edit',\n name: '',\n genderType: 'PluralMale'\n });\n httpWebtrack.setConfigActions(configActions);\n return httpWebtrack.post(`${baseUrl}/assignFiles`, request);\n};\n\nexport const getJobsBoardListService = (request: JobBoardFilters, configActions: ConfigActions) => {\n const httpWebtrack = new HttpWebtrack();\n configureInterceptors.ConfigureWebtrackInterceptor(store, httpWebtrack);\n httpWebtrack.setConfigMessage({\n object: 'jobs.job',\n action: 'Get',\n genderType: 'PluralMale'\n });\n\n httpWebtrack.setConfigActions(configActions);\n return httpWebtrack.post(`${baseUrl}/getBoard`, request);\n};\n\nexport const changeJobsStatusBoardService = (\n request: JobsBoardChangeStatusRequest,\n configActions: ConfigActions\n) => {\n const httpWebtrack = new HttpWebtrack();\n configureInterceptors.ConfigureWebtrackInterceptor(store, httpWebtrack);\n httpWebtrack.setConfigActions(configActions);\n return httpWebtrack.post(`${baseUrl}/changeStatus`, request);\n};\n\nexport const getJobsReportListService = (\n request: JobReportFilters,\n configActions: ConfigActions\n) => {\n const httpWebtrack = new HttpWebtrack();\n configureInterceptors.ConfigureWebtrackInterceptor(store, httpWebtrack);\n httpWebtrack.setConfigMessage({\n object: 'jobs.job',\n action: 'Get',\n genderType: 'PluralMale'\n });\n\n httpWebtrack.setConfigActions(configActions);\n return httpWebtrack.post(`${baseUrl}/getReport`, request);\n};\n\nexport const getJobsReportByUserListService = (\n request: JobReportByUserFilters,\n configActions: ConfigActions\n) => {\n const httpWebtrack = new HttpWebtrack();\n configureInterceptors.ConfigureWebtrackInterceptor(store, httpWebtrack);\n httpWebtrack.setConfigMessage({\n object: 'jobs.job',\n action: 'Get',\n genderType: 'PluralMale'\n });\n\n httpWebtrack.setConfigActions(configActions);\n return httpWebtrack.post(`${baseUrl}/getReportByUser`, request);\n};\n\nexport const importJobsService = (request: any, configActions: ConfigActions) => {\n const httpWebtrack = new HttpWebtrack();\n configureInterceptors.ConfigureWebtrackInterceptor(store, httpWebtrack);\n httpWebtrack.setConfigActions(configActions);\n return httpWebtrack.post(`${baseUrl}/importJobs`, request);\n};\n","import {\n ArrowDownCircle,\n BatteryCharging,\n Circle,\n Clock,\n MapPin,\n Navigation,\n PauseCircle,\n PlayCircle,\n Power,\n StopCircle,\n Watch,\n Wifi,\n WifiOff\n} from 'react-feather';\nimport { UnitMainState, UnitsMainState } from 'views/screens/Units/types';\nimport Icon from 'utility/icomoon';\n\nexport const MainStateType: UnitsMainState = {\n ONLINE: {\n id: 1000,\n intl: 'units.mainStateId.1000',\n color: '#00D57E',\n textColor: '#75BB5A',\n tooltip: 'units.mainStateId.tooltip.1000',\n shortIntl: 'units.mainStateId.1000'\n },\n OFFLINE: {\n id: 0,\n intl: 'units.mainStateId.0',\n color: '#BA0000',\n textColor: '#FFFFFF',\n tooltip: 'units.mainStateId.tooltip.0',\n shortIntl: 'units.mainStateId.0'\n },\n OFF: {\n id: 1,\n intl: 'units.mainStateId.1',\n color: '#FFFF00',\n textColor: '#1C1C1C',\n tooltip: 'units.mainStateId.tooltip.1',\n shortIntl: 'units.mainStateId.1'\n },\n MOVING: {\n id: 2,\n intl: 'units.mainStateId.2',\n color: '#00D57E',\n textColor: '#1C1C1C',\n tooltip: 'units.mainStateId.tooltip.2',\n shortIntl: 'units.mainStateId.2'\n },\n ON_IDLE: {\n id: 3,\n intl: 'units.mainStateId.3',\n color: '#FF4459',\n textColor: '#FFFFFF',\n tooltip: 'units.mainStateId.tooltip.3',\n shortIntl: 'units.mainStateId.shortIntl.3'\n },\n ON_STANDBY: {\n id: 4,\n intl: 'units.mainStateId.4',\n color: '#FF7A00',\n textColor: '#1C1C1C',\n tooltip: 'units.mainStateId.tooltip.4',\n shortIntl: 'units.mainStateId.shortIntl.4'\n },\n ON_STARTED: {\n id: 5,\n intl: 'units.mainStateId.5',\n color: '#00EAD5',\n textColor: '#1C1C1C',\n tooltip: 'units.mainStateId.tooltip.5',\n shortIntl: 'units.mainStateId.shortIntl.5'\n },\n DOWNTIME: {\n id: 6,\n intl: 'units.mainStateId.6',\n color: '#7B7B74',\n textColor: '#FFFFFF',\n tooltip: 'units.mainStateId.tooltip.6',\n shortIntl: 'units.mainStateId.6'\n },\n ON_STOPPED: {\n id: 7,\n intl: 'units.mainStateId.7',\n color: '#FFC737',\n textColor: '#1C1C1C',\n tooltip: 'units.mainStateId.tooltip.7',\n shortIntl: 'units.mainStateId.shortIntl.7'\n },\n ON_MOVING: {\n id: 8,\n intl: 'units.mainStateId.8',\n color: '#00D57E',\n textColor: '#1C1C1C',\n tooltip: 'units.mainStateId.tooltip.8',\n shortIntl: 'units.mainStateId.shortIntl.8'\n },\n STOPPED: {\n id: 9,\n intl: 'units.mainStateId.9',\n color: '#FDAC34',\n textColor: '#1C1C1C',\n tooltip: 'units.mainStateId.tooltip.9',\n shortIntl: 'units.mainStateId.9'\n },\n OPPORTUNITY_CHARGE: {\n id: 10,\n intl: 'units.mainStateId.10',\n color: '#7669e8',\n textColor: '#FFFFFF',\n tooltip: 'units.mainStateId.tooltip.10',\n shortIntl: 'units.mainStateId.shortIntl.10'\n },\n DISCONNECTED: {\n id: 11,\n intl: 'units.mainStateId.11',\n color: '#DD77DD',\n textColor: '#000000',\n tooltip: 'units.mainStateId.tooltip.11',\n shortIntl: 'units.mainStateId.shortIntl.11'\n }\n};\n\n/**\n * Get Icon by state id\n * @param id id of state\n * @returns Icon as JSX element\n */\nexport const getIconByStatId = (id: number): JSX.Element => {\n switch (id) {\n case 1000:\n return ;\n case 0:\n return ;\n case 1:\n return ;\n case 2:\n return ;\n case 3:\n return ;\n case 4:\n return ;\n case 5:\n return ;\n case 6:\n return ;\n case 7:\n return ;\n case 8:\n return ;\n case 9:\n return ;\n case 10:\n return ;\n }\n return ;\n};\n\nexport const GetMainStateById = (id: number): UnitMainState => {\n //console.log('unitLiveStatus.mainStateId==>', id);\n let state = MainStateType.ONLINE;\n switch (id) {\n case 100:\n state = MainStateType.ONLINE;\n break;\n case 0:\n state = MainStateType.OFFLINE;\n break;\n case 1:\n state = MainStateType.OFF;\n break;\n case 2:\n state = MainStateType.MOVING;\n break;\n case 3:\n state = MainStateType.ON_IDLE;\n break;\n case 4:\n state = MainStateType.ON_STANDBY;\n break;\n case 5:\n state = MainStateType.ON_STARTED;\n break;\n case 6:\n state = MainStateType.DOWNTIME;\n break;\n case 7:\n state = MainStateType.ON_STOPPED;\n break;\n case 8:\n state = MainStateType.ON_MOVING;\n break;\n case 9:\n state = MainStateType.STOPPED;\n break;\n case 10:\n state = MainStateType.OPPORTUNITY_CHARGE;\n break;\n case 11:\n state = MainStateType.DISCONNECTED;\n break;\n default:\n state = MainStateType.ONLINE;\n break;\n }\n //console.log('unitLiveStatus.mainState==>', state);\n return state;\n};\n\nexport const GetMainStateStyle = (\n state: UnitMainState\n): {\n backgroundColor: string;\n color: string;\n} => ({\n backgroundColor: state.color,\n color: state.textColor\n});\n\nexport const GetMainStateName = (\n mainState: UnitMainState,\n mainStateTitle: string,\n mainStateDate: string,\n speed: string,\n downTimeReason: string,\n extraMessage: string\n): string =>\n mainStateTitle +\n ([MainStateType.MOVING.id, MainStateType.ON_MOVING.id].includes(mainState.id)\n ? ' - ' + speed\n : mainState.id === MainStateType.DOWNTIME.id\n ? ' - ' + downTimeReason\n : mainState.id === MainStateType.OFFLINE.id\n ? ''\n : mainStateDate\n ? ' - ' + extraMessage\n : '');\n\nexport const getUnitIcon = (themeId: number): string => {\n switch (themeId) {\n case 0:\n return 'Normal';\n case 1:\n return 'Car';\n case 2:\n return 'Buses';\n case 3:\n return 'Motorcycles';\n case 4:\n return 'Trucks';\n case 5:\n return 'Car';\n // return 'Funny'; //Pendiente\n case 6:\n return 'PersonalMale';\n case 7:\n return 'PersonalFemale';\n case 8:\n return 'Panel';\n case 9:\n return 'PickUp';\n case 10:\n return 'MiniMan';\n case 11:\n return 'Container';\n case 12:\n return 'Cab';\n case 13:\n return 'Platform';\n case 14:\n return 'ManHealth';\n case 15:\n return 'WomanHealth';\n case 16:\n return 'Taxis';\n case 17:\n return 'Ship';\n case 18:\n return 'CargoShip';\n case 19:\n return 'Sailboat';\n case 20:\n return 'Excavator';\n case 21:\n return 'Bulldozer';\n case 22:\n return 'LiftTruck';\n case 23:\n return 'Scooter';\n case 24:\n return 'JetSki';\n case 25:\n return 'Ambulances';\n case 26:\n return 'Planes';\n case 27:\n return 'Airplanes';\n case 28:\n return 'Helicopter';\n case 29:\n return 'DumpTruck';\n case 30:\n return 'Steamroller';\n case 31:\n return 'TankerTruck';\n case 32:\n return 'ConcreteMixerTruck';\n case 33:\n return 'CraneTruck';\n case 34:\n return 'DeliveryTruck';\n case 35:\n return 'Tank';\n case 200:\n return 'Special';\n }\n return 'Special';\n};\n\nexport const getUnitActionIcon = (deviceActionId: number): string => {\n switch (deviceActionId) {\n case 0:\n return 'RequestLocation';\n case 1:\n return 'Paralyze';\n case 2:\n return 'Enable';\n case 3:\n return 'OpenDoor';\n case 4:\n return 'OpenDoor2';\n case 5:\n return 'ScriptLoader';\n case 6:\n return 'Geofences1';\n case 8:\n return 'Measurement';\n case 9:\n return 'OpenPadlock';\n case 11:\n return 'RequestMileage';\n case 12:\n return 'ChangeTemperatureLimits';\n case 13:\n return 'ClosePadlock';\n case 20:\n return 'NormalFrequency2m_10m';\n case 21:\n return 'SlowFrequency2h';\n case 22:\n return 'FastFrequency1m_5m';\n case 23:\n return 'SlowFrequency4h_4h';\n case 30:\n return 'Band850'; //Pendiente\n case 31:\n return 'Band900'; //Pendiente\n case 32:\n return 'Band1800'; //Pendiente\n case 33:\n return 'Band1900'; //Pendiente\n case 34:\n return 'Band850_1900GuatemalaNicaragua'; //Pendiente\n case 35:\n return 'Band900_1800CostaRica'; //Pendiente\n case 36:\n return 'Band900_1900'; //Pendiente\n case 50:\n return 'Screenshot';\n case 51:\n return 'StartVideoCameraRecording';\n case 52:\n return 'StopVideoRecording';\n case 53:\n return 'CaptureImageOutdoorCamera';\n case 54:\n return 'StartOutdoorVideoCameraRecording';\n case 55:\n return 'LiveVideo';\n case 56:\n return 'LiveVideoOutdoorCamera';\n case 57:\n return 'StopLiveVideo';\n case 60:\n return 'ActivateMonitoringVoice';\n case 61:\n return 'DisableMonitoringVoice';\n case 70:\n return 'ActivateLapReport';\n case 71:\n return 'TurnOffLapReporting';\n case 80:\n return 'EnableSecurity';\n case 81:\n return 'DisableSecurity';\n case 90:\n return 'ResetUnit';\n case 91:\n return 'ResetGPS';\n case 92:\n return 'FullTank';\n case 93:\n return 'FastFrequency30seg_5m';\n case 100:\n return 'ScriptResponse';\n case 1000:\n return 'SetMaximumSpeed';\n case 1001:\n return 'SetMaximumStopTime';\n case 1002:\n return 'ManualReport';\n case 1003:\n return 'MovementTransmissionFrequency';\n case 1004:\n return 'ParkedTransmissionFrequency';\n case 1005:\n return 'InstantGPSModuleChange';\n case 1006:\n return 'Message';\n case 1007:\n return 'AssignMonitoringUser';\n case 1008:\n return 'UnassignMonitoringUser';\n case 1009:\n return 'TransmissionFrequency';\n case 1010:\n return 'ActivateLongRoutes';\n case 1011:\n return 'DisableLongRoutes';\n case 1200:\n return 'GoToNextSection';\n }\n return 'GoToNextSection';\n};\n\nexport const getUnitMainStateIconAndSize = (mainStateId: number): Array => {\n switch (mainStateId) {\n case 1:\n return ['Alert-12', 30]; //Apagado\n case 2:\n return ['Moving', 30]; //En movimiento\n case 3:\n return ['Idle', 30]; //Ocioso\n case 4:\n return ['Stopped', 30]; //Detenido\n case 5:\n return ['Alert-11', 30]; //Encendido\n default:\n return ['XCircle', 17]; //Fuera de lĆ­nea\n }\n};\n\nexport const getUnitCommunicationDiagnosticsIcon = (lastCommunicationDate) => {\n if (lastCommunicationDate) {\n const date1 = new Date();\n const date2 = new Date(lastCommunicationDate);\n const hoursDiff = Math.abs(date1.getTime() - date2.getTime()) / 36e5;\n if (hoursDiff <= 1 / 3) return 'CommunicationDiagnosticsGreen';\n else if (hoursDiff <= 24) return 'CommunicationDiagnosticsYellow';\n else return 'CommunicationDiagnosticsRed';\n } else return 'CommunicationDiagnosticsRed';\n};\n\nexport const getUnitHeadingIcon = (heading = 0) => {\n //Norte\n if (heading < 22.5) return 'ArrowUp';\n //Noreste\n else if (heading < 67.5) return 'ArrowUpRight';\n //Este\n else if (heading < 112.5) return 'ArrowRight';\n //Sureste\n else if (heading < 157.5) return 'ArrowDownRight';\n //Sur\n else if (heading < 202.5) return 'ArrowDown';\n //Suroeste\n else if (heading < 247.5) return 'ArrowDownLeft';\n //Oeste\n else if (heading < 292.5) return 'ArrowLeft';\n //Noroeste\n else if (heading < 337.5) return 'ArrowUpLeft';\n};\n\nexport const getUnitHeadingFormat = (heading = 0) => {\n //Norte\n if (heading < 22.5) return 'common.north';\n //Noreste\n else if (heading < 67.5) return 'common.northeast';\n //Este\n else if (heading < 112.5) return 'common.east';\n //Sureste\n else if (heading < 157.5) return 'common.southeast';\n //Sur\n else if (heading < 202.5) return 'common.south';\n //Suroeste\n else if (heading < 247.5) return 'common.southwest';\n //Oeste\n else if (heading < 292.5) return 'common.west';\n //Noroeste\n else return 'common.norwest';\n};\n\nexport const getDatesDifferenceString = (date1, date2, intl) => {\n const [endTime, startTime] =\n new Date(date1).getTime() > new Date(date2).getTime()\n ? [new Date(date1).getTime(), new Date(date2).getTime()]\n : [new Date(date2).getTime(), new Date(date1).getTime()];\n return getTimeDifferenceString(startTime, endTime, intl);\n};\n\nexport const getTimeDifferenceString = (startTime, endTime, intl) => {\n const days = Math.floor(Math.abs(endTime - startTime) / (1000 * 60 * 60 * 24));\n const hours = Math.floor(\n Math.abs(endTime - (startTime + 1000 * 60 * 60 * 24 * days)) / (1000 * 60 * 60)\n );\n const minutes = Math.floor(\n Math.abs(endTime - (startTime + 1000 * 60 * 60 * (24 * days + hours))) / (1000 * 60)\n );\n const seconds = Math.floor(\n Math.abs(endTime - (startTime + 1000 * 60 * (24 * 60 * days + 60 * hours + minutes))) / 1000\n );\n return (\n (days > 0 ? `${days} ${intl.formatMessage({ id: 'common.days' })} ` : '') +\n (hours > 0 ? `${hours} ${intl.formatMessage({ id: 'common.hours' })} ` : '') +\n (minutes > 0 ? `${minutes} ${intl.formatMessage({ id: 'common.minutes' })} ` : '') +\n (seconds > 0 ? `${seconds} ${intl.formatMessage({ id: 'common.seconds' })} ` : '')\n );\n};\n\nexport const getIconByDatesDifference = (date1, date2) => {\n const endDate = new Date(date1).getTime();\n const startDate = new Date(date2).getTime();\n const minutes = Math.floor(Math.abs(endDate - startDate) / (1000 * 60));\n if (minutes >= 0 && minutes <= 5) {\n return 'Parking01';\n } else if (minutes > 5 && minutes <= 15) {\n return 'Parking02';\n } else if (minutes > 15 && minutes <= 30) {\n return 'Parking03';\n } else if (minutes > 30 && minutes <= 60) {\n return 'Parking04';\n } else if (minutes > 60 && minutes <= 60 * 4) {\n return 'Parking04';\n } else if (minutes > 60 * 4 && minutes <= 60 * 8) {\n return 'Parking06';\n } else if (minutes > 60 * 8) {\n return 'Parking07';\n }\n};\n","import { HttpWebtrack } from 'utility/http';\nimport { ConfigActions } from '../../../../utility/http/http-events';\n\nimport configureInterceptors from 'utility/http/interceptors/configure-interceptors';\nimport { store } from 'redux/storeConfig/store';\nimport { appIntl } from 'utility/context/IntlGlobalProvider';\n\nexport const baseUrl = '/unit';\n\ninterface UnitFilters {\n operatorId?: number;\n organizationId?: number;\n userFetchDate?: Date;\n}\n\ninterface DeviceActionParametersRequest {\n unitId: number;\n deviceActionId: number;\n}\n\ninterface HistoricalPositionsReportRequest {\n unitId: number;\n reportType: number | undefined;\n startDate: Date | string;\n endDate: Date | string;\n idleSpeed: number | undefined;\n}\n\ninterface ExecuteDeviceActionRequest {\n unitId: number;\n deviceActionId: number;\n parameters: string;\n}\n\ninterface UnitInformation {\n unitId?: number;\n startDate?: string;\n endDate?: string;\n}\n\ninterface FleetFilters {\n unitName?: string;\n deviceIdentifier?: string;\n membership?: any;\n brandId?: number;\n}\ninterface DeviceActionsRequest {\n unitId: number;\n}\n\ninterface ChangeUnitSubState {\n unitId: number;\n subStateId: number;\n}\n\ninterface RouteAssignments {\n unitId: number;\n}\n\nexport const getUnitsListService = (request: UnitFilters, configActions: ConfigActions) => {\n const httpWebtrack = new HttpWebtrack();\n configureInterceptors.ConfigureWebtrackInterceptor(store, httpWebtrack);\n httpWebtrack.setConfigMessage({\n object: 'units.unit',\n action: 'Get',\n genderType: 'PluralFemale'\n });\n\n httpWebtrack.setConfigActions(configActions);\n return httpWebtrack.post(`${baseUrl}/get`, request);\n};\n\nexport const getDisabledUnitsListService = (request: UnitFilters, configActions: ConfigActions) => {\n const httpWebtrack = new HttpWebtrack();\n configureInterceptors.ConfigureWebtrackInterceptor(store, httpWebtrack);\n httpWebtrack.setConfigMessage({\n object: 'units.unit',\n action: 'Get',\n genderType: 'PluralFemale'\n });\n\n httpWebtrack.setConfigActions(configActions);\n return httpWebtrack.post(`${baseUrl}/getDisabled`, request);\n};\n\nexport const changeUnitSubState = (\n request: ChangeUnitSubState,\n customMessage,\n customMessageError,\n configActions?: ConfigActions\n) => {\n const httpWebtrack = new HttpWebtrack();\n configureInterceptors.ConfigureWebtrackInterceptor(store, httpWebtrack);\n httpWebtrack.setConfigMessage({\n object: 'units.unit',\n action: 'Custom',\n customMessage,\n customMessageError,\n genderType: 'PluralFemale'\n });\n\n httpWebtrack.setConfigActions(configActions);\n //httpWebtrack.setConfigActions(configActions);\n return httpWebtrack.post(`${baseUrl}/ChangeUnitSubState`, request);\n};\n\nexport const getRouteAssignments = (request: RouteAssignments, configActions?: ConfigActions) => {\n const httpWebtrack = new HttpWebtrack();\n configureInterceptors.ConfigureWebtrackInterceptor(store, httpWebtrack);\n httpWebtrack.setConfigMessage({\n object: 'units.unit',\n action: 'Get',\n genderType: 'PluralFemale'\n });\n\n httpWebtrack.setConfigActions(configActions);\n return httpWebtrack.post(`${baseUrl}/getRouteAssignments`, request);\n};\n\nexport const getFleetService = (request: FleetFilters, configActions: ConfigActions) => {\n const httpWebtrack = new HttpWebtrack();\n configureInterceptors.ConfigureWebtrackInterceptor(store, httpWebtrack);\n httpWebtrack.setConfigMessage({\n object: 'units.unit',\n action: 'Get',\n genderType: 'PluralFemale'\n });\n\n httpWebtrack.setConfigActions(configActions);\n return httpWebtrack.post(`${baseUrl}/getFleet`, request);\n};\n\nexport const getUnitsLiveStatusListService = (\n request: UnitFilters,\n configActions: ConfigActions\n) => {\n const httpWebtrack = new HttpWebtrack();\n configureInterceptors.ConfigureWebtrackInterceptor(store, httpWebtrack);\n httpWebtrack.setConfigMessage({\n object: 'units.unit',\n action: 'Get',\n genderType: 'PluralFemale'\n });\n\n httpWebtrack.setConfigActions(configActions);\n return httpWebtrack.post(`${baseUrl}/getUnitsLiveStatus`, request);\n};\n\nexport const getUnitInformationService = (\n request: UnitInformation,\n configActions: ConfigActions\n) => {\n const httpWebtrack = new HttpWebtrack();\n configureInterceptors.ConfigureWebtrackInterceptor(store, httpWebtrack);\n httpWebtrack.setConfigMessage({\n object: 'units.unit',\n action: 'Get',\n genderType: 'SingularFemale'\n });\n\n httpWebtrack.setConfigActions(configActions);\n return httpWebtrack.post(`${baseUrl}/getUnitInformation`, request);\n};\n\nexport const getUnitDeviceActionParametersService = (request: DeviceActionParametersRequest) => {\n const httpWebtrack = new HttpWebtrack();\n configureInterceptors.ConfigureWebtrackInterceptor(store, httpWebtrack);\n const intl = appIntl();\n httpWebtrack.setConfigMessage({\n object: 'units.unit',\n action: 'Custom',\n customMessageError: intl.formatMessage({\n id: 'units.parametersFetchErrorMessage'\n })\n });\n return httpWebtrack.post(`${baseUrl}/getUnitDeviceActionParameters`, request);\n};\nexport const getUnitDeviceActionsService = (\n request: DeviceActionsRequest,\n configActions: ConfigActions\n) => {\n const httpWebtrack = new HttpWebtrack();\n configureInterceptors.ConfigureWebtrackInterceptor(store, httpWebtrack);\n const intl = appIntl();\n httpWebtrack.setConfigMessage({\n object: 'units.unit',\n action: 'Custom',\n customMessageError: intl.formatMessage({\n id: 'units.parametersFetchErrorMessage'\n })\n });\n httpWebtrack.setConfigActions(configActions);\n return httpWebtrack.post(`${baseUrl}/getUnitDeviceActions`, request);\n};\n\nexport const getUnitHistoricalPositionsReportService = (\n request: HistoricalPositionsReportRequest,\n configActions: ConfigActions\n) => {\n const httpWebtrack = new HttpWebtrack();\n configureInterceptors.ConfigureWebtrackInterceptor(store, httpWebtrack);\n const intl = appIntl();\n httpWebtrack.setConfigMessage({\n object: 'units.unit',\n action: 'Custom',\n customMessageError: intl.formatMessage({\n id: 'units.unitHistoricalPositionsErrorMessage'\n })\n });\n\n httpWebtrack.setConfigActions(configActions);\n return httpWebtrack.post(`${baseUrl}/getUnitPositionHistory`, request);\n};\n\nexport const executeDeviceActionService = (\n request: ExecuteDeviceActionRequest,\n configActions?: ConfigActions\n) => {\n const httpWebtrack = new HttpWebtrack();\n configureInterceptors.ConfigureWebtrackInterceptor(store, httpWebtrack);\n const intl = appIntl();\n httpWebtrack.setConfigMessage({\n object: 'units.unit',\n action: 'Custom',\n customMessage: intl.formatMessage({\n id: 'units.executeDeviceActionMessage'\n }),\n customMessageError: intl.formatMessage({\n id: 'units.executeDeviceActionErrorMessage'\n })\n });\n if (configActions) {\n httpWebtrack.setConfigActions(configActions);\n }\n return httpWebtrack.post(`${baseUrl}/executeDeviceAction`, request);\n};\n\nexport const acknowledgeUnitEventService = (request: any, configActions: ConfigActions) => {\n const httpWebtrack = new HttpWebtrack();\n configureInterceptors.ConfigureWebtrackInterceptor(store, httpWebtrack);\n\n httpWebtrack.setConfigActions(configActions);\n return httpWebtrack.post(`${baseUrl}/acknowledgeEvent`, request);\n};\n\nexport const getUnitRunningTimeByHour = (\n request: UnitInformation,\n configActions: ConfigActions\n) => {\n const httpWebtrack = new HttpWebtrack();\n configureInterceptors.ConfigureWebtrackInterceptor(store, httpWebtrack);\n httpWebtrack.setConfigMessage({\n object: 'reports.reports',\n action: 'Get',\n genderType: 'PluralMale'\n });\n\n httpWebtrack.setConfigActions(configActions);\n return httpWebtrack.post(`${baseUrl}/getUnitRunningTimeByHour`, request);\n};\n\nexport const getUnitScriptHistory = (request: UnitInformation, configActions: ConfigActions) => {\n const httpWebtrack = new HttpWebtrack();\n configureInterceptors.ConfigureWebtrackInterceptor(store, httpWebtrack);\n httpWebtrack.setConfigMessage({\n object: 'reports.reports',\n action: 'Get',\n genderType: 'PluralMale'\n });\n\n httpWebtrack.setConfigActions(configActions);\n return httpWebtrack.post(`${baseUrl}/getUnitScriptHistory`, request);\n};\n\nexport const getUnitTemperatureHistory = (request: any, configActions: ConfigActions) => {\n const httpWebtrack = new HttpWebtrack();\n configureInterceptors.ConfigureWebtrackInterceptor(store, httpWebtrack);\n\n httpWebtrack.setConfigActions(configActions);\n return httpWebtrack.post(`${baseUrl}/getTemperatureSensorReport`, request);\n};\n\nexport const getUnitFuelHistory = (request: any, configActions: ConfigActions) => {\n const httpWebtrack = new HttpWebtrack();\n configureInterceptors.ConfigureWebtrackInterceptor(store, httpWebtrack);\n\n httpWebtrack.setConfigActions(configActions);\n return httpWebtrack.post(`${baseUrl}/getFuelSensorReportPro`, request);\n};\n\nexport const getAssetFuelHistory = (request: any, configActions: ConfigActions) => {\n const httpWebtrack = new HttpWebtrack();\n configureInterceptors.ConfigureWebtrackInterceptor(store, httpWebtrack);\n\n httpWebtrack.setConfigActions(configActions);\n return httpWebtrack.post(`${baseUrl}/getAssetFuelSensorReport`, request);\n};\n\nexport const getUnitFuelSamples = (request: any, configActions: ConfigActions) => {\n const httpWebtrack = new HttpWebtrack();\n configureInterceptors.ConfigureWebtrackInterceptor(store, httpWebtrack);\n\n httpWebtrack.setConfigActions(configActions);\n return httpWebtrack.post(`${baseUrl}/getUnitFuelSamples`, request);\n};\n\nexport const getUnitFuelInformation = (request: any, configActions: ConfigActions) => {\n const httpWebtrack = new HttpWebtrack();\n configureInterceptors.ConfigureWebtrackInterceptor(store, httpWebtrack);\n\n httpWebtrack.setConfigActions(configActions);\n return httpWebtrack.post(`${baseUrl}/getUnitFuelInformation`, request);\n};\n\nexport const getUnitFuelEvents = (request: any, configActions: ConfigActions) => {\n const httpWebtrack = new HttpWebtrack();\n configureInterceptors.ConfigureWebtrackInterceptor(store, httpWebtrack);\n\n httpWebtrack.setConfigActions(configActions);\n return httpWebtrack.post(`${baseUrl}/getUnitFuelEvents`, request);\n};\n\nexport const getDowntimeBinnacleService = (\n request: UnitInformation,\n configActions: ConfigActions\n) => {\n const httpWebtrack = new HttpWebtrack();\n configureInterceptors.ConfigureWebtrackInterceptor(store, httpWebtrack);\n httpWebtrack.setConfigMessage({\n object: 'trackingUnits.binnacle',\n action: 'Get',\n genderType: 'PluralFemale'\n });\n\n httpWebtrack.setConfigActions(configActions);\n return httpWebtrack.post(`${baseUrl}/getDowntimeBinnacle`, request);\n};\n\nexport const getUserAssignedUnits = (\n request: { userIdRequest: number },\n configActions: ConfigActions\n) => {\n const httpWebtrack = new HttpWebtrack();\n configureInterceptors.ConfigureWebtrackInterceptor(store, httpWebtrack);\n httpWebtrack.setConfigMessage({\n object: 'units.assignedUnits',\n action: 'Get',\n genderType: 'PluralFemale'\n });\n\n httpWebtrack.setConfigActions(configActions);\n return httpWebtrack.post(`${baseUrl}/getUserAssignedUnits`, request);\n};\n\nexport const removeUserAssignedUnits = (\n request: { userIdRequest: number; unitsIds: number[] },\n configActions: ConfigActions\n) => {\n const httpWebtrack = new HttpWebtrack();\n configureInterceptors.ConfigureWebtrackInterceptor(store, httpWebtrack);\n httpWebtrack.setConfigMessage({\n object: 'units.assignedUnits',\n action: 'Get',\n genderType: 'PluralFemale'\n });\n\n httpWebtrack.setConfigActions(configActions);\n return httpWebtrack.post(`${baseUrl}/removeUserAssignedUnits`, request);\n};\n\nexport const addUserAssignedUnits = (\n request: { userIdRequest: number; unitIds: number[] },\n configActions: ConfigActions\n) => {\n const httpWebtrack = new HttpWebtrack();\n configureInterceptors.ConfigureWebtrackInterceptor(store, httpWebtrack);\n httpWebtrack.setConfigMessage({\n object: 'units.assignedUnits',\n action: 'Get',\n genderType: 'PluralFemale'\n });\n\n httpWebtrack.setConfigActions(configActions);\n return httpWebtrack.post(`${baseUrl}/addUserAssignedUnits`, request);\n};\n\nexport const updateOdometer = (\n request: { unitId: number; newOdometer: number },\n configActions: ConfigActions\n) => {\n const httpWebtrack = new HttpWebtrack();\n configureInterceptors.ConfigureWebtrackInterceptor(store, httpWebtrack);\n httpWebtrack.setConfigMessage({\n object: 'trackingUnits.binnacle',\n action: 'Get',\n genderType: 'PluralMale'\n });\n\n httpWebtrack.setConfigActions(configActions);\n return httpWebtrack.post(`${baseUrl}/updateOdometer`, request);\n};\n\nexport const updateHourmeter = (\n request: { unitId: number; newHourmeter: number },\n configActions: ConfigActions\n) => {\n const httpWebtrack = new HttpWebtrack();\n configureInterceptors.ConfigureWebtrackInterceptor(store, httpWebtrack);\n httpWebtrack.setConfigMessage({\n object: 'trackingUnits.binnacle',\n action: 'Get',\n genderType: 'PluralMale'\n });\n\n httpWebtrack.setConfigActions(configActions);\n return httpWebtrack.post(`${baseUrl}/updateHourmeter`, request);\n};\n\nexport const updateDeviceService = (\n request: { unitId: number; deviceId: number | null },\n configActions: ConfigActions\n) => {\n const httpWebtrack = new HttpWebtrack();\n configureInterceptors.ConfigureWebtrackInterceptor(store, httpWebtrack);\n httpWebtrack.setConfigMessage({\n object: 'trackingUnits.trackingUnit',\n action: 'Edit',\n genderType: 'PluralMale'\n });\n\n httpWebtrack.setConfigActions(configActions);\n return httpWebtrack.post(`${baseUrl}/updateDevice`, request);\n};\n\nexport const updateSimCardService = (\n request: { unitId: number; simCard: number | null },\n configActions: ConfigActions\n) => {\n const httpWebtrack = new HttpWebtrack();\n configureInterceptors.ConfigureWebtrackInterceptor(store, httpWebtrack);\n httpWebtrack.setConfigMessage({\n object: 'trackingUnits.trackingUnit',\n action: 'Edit',\n genderType: 'PluralMale'\n });\n\n httpWebtrack.setConfigActions(configActions);\n return httpWebtrack.post(`${baseUrl}/updateSimCard`, request);\n};\n","import * as types from '../types';\n\nexport const startFetchingAgents = (filters = {}) => ({\n type: types.AGENTS_FETCH_STARTED,\n payload: filters\n});\nexport const completeFetchingAgents = (entities, order) => ({\n type: types.AGENTS_FETCH_COMPLETED,\n payload: {\n entities,\n order\n }\n});\nexport const failFetchingAgents = (error = { errorMessage: 'Error', errorNumber: 404 }) => ({\n type: types.AGENTS_FETCH_FAILED,\n payload: {\n error //error:{errorMessage:'Error', errorNumber:400}\n }\n});\n\nexport const startPartialFetchingAgents = (entityTypeId) => ({\n type: types.AGENTS_PARTIAL_FETCH_STARTED,\n payload: entityTypeId\n});\nexport const completePartialFetchingAgents = (entities, order) => ({\n type: types.AGENTS_PARTIAL_FETCH_COMPLETED,\n payload: {\n entities,\n order\n }\n});\nexport const failPartialFetchingAgents = (error = { errorMessage: 'Error', errorNumber: 404 }) => ({\n type: types.AGENTS_PARTIAL_FETCH_FAILED,\n payload: {\n error //error:{errorMessage:'Error', errorNumber:400}\n }\n});\n\nexport const startFetchingAgent = (agentId) => ({\n type: types.AGENT_FETCH_STARTED,\n payload: agentId\n});\n\nexport const completeFetchingAgent = (agent) => ({\n type: types.AGENT_FETCH_COMPLETED,\n payload: agent\n});\n\nexport const failFetchingAgent = (error = { errorMessage: 'Error', errorNumber: 404 }) => ({\n type: types.AGENT_FETCH_FAILED,\n payload: {\n error //error:{errorMessage:'Error', errorNumber:400}\n }\n});\n\nexport const startAddingAgent = (agent) => ({\n type: types.AGENT_ADD_STARTED,\n payload: agent\n});\nexport const completeAddingAgent = (oldId, agent) => ({\n type: types.AGENT_ADD_COMPLETED,\n payload: { oldId, agent }\n});\nexport const failAddingAgent = (oldId, error) => ({\n type: types.AGENT_ADD_FAILED,\n payload: {\n oldId,\n error\n }\n});\n\nexport const startEditingAgent = (agent) => ({\n type: types.AGENT_EDIT_STARTED,\n payload: agent\n});\nexport const completeEditingAgent = (agent) => ({\n type: types.AGENT_EDIT_COMPLETED,\n payload: agent\n});\nexport const failEditingAgent = (oldAgent, error) => ({\n type: types.AGENT_EDIT_FAILED,\n payload: {\n oldAgent,\n error\n }\n});\n\nexport const startRemovingAgent = (agentId) => ({\n type: types.AGENT_REMOVE_STARTED,\n payload: {\n agentId\n }\n});\nexport const completeRemovingAgent = (agentId) => ({\n type: types.AGENT_REMOVE_COMPLETED,\n payload: {\n agentId\n }\n});\nexport const failRemovingAgent = (agentId, error) => ({\n type: types.AGENT_REMOVE_FAILED,\n payload: {\n agentId,\n error\n }\n});\n\nexport const selectAgent = (agentId) => ({\n type: types.AGENT_SELECTED,\n payload: agentId\n});\n\nexport const selectAllAgents = (\n agentIds = [] //List of AgentIds\n) => ({\n type: types.AGENTS_ALL_SELECTED,\n payload: agentIds\n});\n\nexport const deselectAgent = (agentId) => ({\n type: types.AGENT_DESELECTED,\n payload: agentId\n});\n\nexport const deselectAllAgents = (\n agentIds = [] //List of AgentIds\n) => ({\n type: types.AGENTS_ALL_DESELECTED,\n payload: agentIds\n});\n","import * as types from 'views/screens/Operators/types';\n\nexport const startFetchingOperators = (filters = {}) => ({\n type: types.OPERATORS_FETCH_STARTED,\n payload: filters\n});\nexport const completeFetchingOperators = (entities, order) => ({\n type: types.OPERATORS_FETCH_COMPLETED,\n payload: {\n entities,\n order\n }\n});\nexport const failFetchingOperators = (error = { errorMessage: 'Error', errorNumber: 404 }) => ({\n type: types.OPERATORS_FETCH_FAILED,\n payload: {\n error //error:{errorMessage:'Error', errorNumber:400}\n }\n});\n\nexport const startPartialFetchingOperators = (entityTypeId) => ({\n type: types.OPERATORS_PARTIAL_FETCH_STARTED,\n payload: entityTypeId\n});\nexport const completePartialFetchingOperators = (entities, order) => ({\n type: types.OPERATORS_PARTIAL_FETCH_COMPLETED,\n payload: {\n entities,\n order\n }\n});\nexport const failPartialFetchingOperators = (\n error = { errorMessage: 'Error', errorNumber: 404 }\n) => ({\n type: types.OPERATORS_PARTIAL_FETCH_FAILED,\n payload: {\n error //error:{errorMessage:'Error', errorNumber:400}\n }\n});\n\nexport const startAddingOperator = (operator) => ({\n type: types.OPERATOR_ADD_STARTED,\n payload: operator\n});\nexport const completeAddingOperator = (oldId, operator) => ({\n type: types.OPERATOR_ADD_COMPLETED,\n payload: { oldId, operator }\n});\nexport const failAddingOperator = (oldId, error) => ({\n type: types.OPERATOR_ADD_FAILED,\n payload: {\n oldId,\n error\n }\n});\n\nexport const startEditingOperator = (operator) => ({\n type: types.OPERATOR_EDIT_STARTED,\n payload: operator\n});\nexport const completeEditingOperator = (operator) => ({\n type: types.OPERATOR_EDIT_COMPLETED,\n payload: operator\n});\nexport const failEditingOperator = (oldOperator, error) => ({\n type: types.OPERATOR_EDIT_FAILED,\n payload: {\n oldOperator,\n error\n }\n});\n\nexport const startEditingOperatorStandardPrices = (standardPrices) => ({\n type: types.OPERATOR_EDIT_STANDARD_PRICES_STARTED,\n payload: standardPrices\n});\nexport const completeEditingOperatorStandardPrices = (standardPrices) => ({\n type: types.OPERATOR_EDIT_STANDARD_PRICES_COMPLETED,\n payload: standardPrices\n});\nexport const failEditingOperatorStandardPrices = (oldStandardPrices, error) => ({\n type: types.OPERATOR_EDIT_STANDARD_PRICES_FAILED,\n payload: {\n oldStandardPrices,\n error\n }\n});\n\nexport const startRemovingOperator = (operatorId) => ({\n type: types.OPERATOR_REMOVE_STARTED,\n payload: {\n operatorId\n }\n});\nexport const completeRemovingOperator = (operatorId) => ({\n type: types.OPERATOR_REMOVE_COMPLETED,\n payload: {\n operatorId\n }\n});\nexport const failRemovingOperator = (operatorId, error) => ({\n type: types.OPERATOR_REMOVE_FAILED,\n payload: {\n operatorId,\n error\n }\n});\n\nexport const selectOperator = (operatorId) => ({\n type: types.OPERATOR_SELECTED,\n payload: operatorId\n});\n\nexport const selectAllOperators = (\n operatorIds = [] //List of OperatorIds\n) => ({\n type: types.OPERATORS_ALL_SELECTED,\n payload: operatorIds\n});\n\nexport const deselectOperator = (operatorId) => ({\n type: types.OPERATOR_DESELECTED,\n payload: operatorId\n});\n\nexport const deselectAllOperators = (\n operatorIds = [] //List of OperatorIds\n) => ({\n type: types.OPERATORS_ALL_DESELECTED,\n payload: operatorIds\n});\n","/* -------------------------------------------------------------------------- */\n/* Schema Groups */\n/* -------------------------------------------------------------------------- */\n\nimport { schema } from 'normalizr';\n\nexport const group = new schema.Entity('groups', {}, { idAttribute: 'groupId' });\nexport const groups = new schema.Array(group);\n\nexport const user = new schema.Entity('users', {}, { idAttribute: 'userName' });\nexport const users = new schema.Array(user);\n\nexport const location = new schema.Entity('locations', {}, { idAttribute: 'locationId' });\nexport const locations = new schema.Array(location);\n\nexport const workplan = new schema.Entity('workplans', {}, { idAttribute: 'workPlanId' });\nexport const workplans = new schema.Array(workplan);\n\nexport const unit = new schema.Entity('units', {}, { idAttribute: 'unitId' });\nexport const units = new schema.Array(unit);\n\nexport const geofence = new schema.Entity('geofences', {}, { idAttribute: 'geofenceId' });\nexport const geofences = new schema.Array(geofence);\n\nexport const driver = new schema.Entity('drivers', {}, { idAttribute: 'driverId' });\nexport const drivers = new schema.Array(driver);\n","const permissions = {\n mileageReport: 'CR001',\n hourMetersReport: 'CR002',\n runningTimeReport: 'RU001',\n unitActivity: 'RU002',\n byUnitStopSummaryReport: 'RU005',\n byUnitScriptsHistoryReport: 'RU004',\n consolidatedStopSummaryReport: 'CR008',\n consolidatedOpportunityOfCharge: 'CR009',\n consolidatedUnitActivityReport: 'CR003',\n consolidatedEventActivityReport: 'CR004',\n parkedGeofenceReport: 'RP001',\n fuelSensorReport: 'CR005',\n scheduledReports: 'SR001',\n scheduledReportsCreate: 'SR002',\n scheduledReportsEdit: 'SR003',\n scheduledReportsDelete: 'SR004',\n systemCommunicationsDiagReport: 'AD014',\n systemNotificationsReport: 'AD015',\n accommodationChargesReport: 'AD016',\n administrativeReports: 'RP003',\n byUnitReports: 'RP004',\n consolidatedReports: 'RP005',\n listReports: 'RP006',\n deepSearch: 'RP007',\n consumptionAPIReport: 'AD006',\n readWebEvents: 'WE001',\n markReadedWebEvents: 'WE002',\n consolidatedSummary: 'CR007',\n readAPICost: 'AD017'\n};\n\nexport default permissions;\n","import * as types from '../types';\n\nexport const startFetchingMonitoringUsers = (filters = {}) => ({\n type: types.MONITORING_USERS_FETCH_STARTED,\n payload: filters\n});\nexport const completeFetchingMonitoringUsers = (entities, order, operatorId, organizationId) => ({\n type: types.MONITORING_USERS_FETCH_COMPLETED,\n payload: {\n entities,\n order,\n operatorId,\n organizationId\n }\n});\nexport const failFetchingMonitoringUsers = (\n error = { errorMessage: 'Error', errorNumber: 404 }\n) => ({\n type: types.MONITORING_USERS_FETCH_FAILED,\n payload: {\n error //error:{errorMessage:'Error', errorNumber:400}\n }\n});\n\nexport const startPartialFetchingMonitoringUsers = (\n entityTypeId,\n operatorId = null,\n organizationId = null\n) => ({\n type: types.MONITORING_USERS_PARTIAL_FETCH_STARTED,\n payload: { entityTypeId, operatorId, organizationId }\n});\nexport const completePartialFetchingMonitoringUsers = (\n entities,\n order,\n operatorId,\n organizationId\n) => ({\n type: types.MONITORING_USERS_PARTIAL_FETCH_COMPLETED,\n payload: {\n entities,\n order,\n operatorId,\n organizationId\n }\n});\nexport const failPartialFetchingMonitoringUsers = (\n error = { errorMessage: 'Error', errorNumber: 404 }\n) => ({\n type: types.MONITORING_USERS_PARTIAL_FETCH_FAILED,\n payload: {\n error //error:{errorMessage:'Error', errorNumber:400}\n }\n});\n\nexport const startAddingMonitoringUser = (monitoringUser) => ({\n type: types.MONITORING_USER_ADD_STARTED,\n payload: monitoringUser\n});\nexport const completeAddingMonitoringUser = (oldId, monitoringUser) => ({\n type: types.MONITORING_USER_ADD_COMPLETED,\n payload: { oldId, monitoringUser }\n});\nexport const failAddingMonitoringUser = (oldId, error) => ({\n type: types.MONITORING_USER_ADD_FAILED,\n payload: {\n oldId,\n error\n }\n});\n\nexport const startEditingMonitoringUser = (monitoringUser) => ({\n type: types.MONITORING_USER_EDIT_STARTED,\n payload: monitoringUser\n});\nexport const completeEditingMonitoringUser = (oldId, monitoringUser) => ({\n type: types.MONITORING_USER_EDIT_COMPLETED,\n payload: { oldId, monitoringUser }\n});\nexport const failEditingMonitoringUser = (oldMonitoringUser, error) => ({\n type: types.MONITORING_USER_EDIT_FAILED,\n payload: {\n oldMonitoringUser,\n error\n }\n});\n\nexport const startRemovingMonitoringUser = (users, usersName) => ({\n type: types.MONITORING_USER_REMOVE_STARTED,\n payload: {\n users,\n usersName\n }\n});\nexport const completeRemovingMonitoringUser = (users, usersName) => ({\n type: types.MONITORING_USER_REMOVE_COMPLETED,\n payload: {\n users,\n usersName\n }\n});\nexport const failRemovingMonitoringUser = (users, error) => ({\n type: types.MONITORING_USER_REMOVE_FAILED,\n payload: {\n users,\n error\n }\n});\n\nexport const selectMonitoringUser = (monitoringUserId) => ({\n type: types.MONITORING_USER_SELECTED,\n payload: monitoringUserId\n});\n\nexport const deselectMonitoringUser = (monitoringUserId) => ({\n type: types.MONITORING_USER_DESELECTED,\n payload: monitoringUserId\n});\n\nexport const deselectAllMonitoringUsers = (\n monitoringUserIds = [] //List of MonitoringUserIds\n) => ({\n type: types.MONITORING_USERS_ALL_DESELECTED,\n payload: monitoringUserIds\n});\n\nexport const startUpdatingMonitoringUserPassword = (values) => ({\n type: types.MONITORING_USER_UPDATE_PASSWORD_STARTED,\n payload: values\n});\n\nexport const completeUpdatingMonitoringUserPassword = (values) => ({\n type: types.MONITORING_USER_UPDATE_PASSWORD_COMPLETED,\n payload: values\n});\n\nexport const failUpdatingMonitoringUserPassword = (error) => ({\n type: types.MONITORING_USER_UPDATE_PASSWORD_FAILED,\n payload: { error }\n});\n\nexport const startSavingMonitoringUserRolesAndPermissions = (values) => ({\n type: types.MONITORING_USER_SAVE_ROLES_PERMISSIONS_STARTED,\n payload: values\n});\n\nexport const completeSavingMonitoringUserRolesAndPermissions = (values) => ({\n type: types.MONITORING_USER_SAVE_ROLES_PERMISSIONS_COMPLETED,\n payload: values\n});\n\nexport const startAssigningScheduleUsers = (userAssignSchedule) => ({\n type: types.USERS_ASSIGN_SCHEDULE_STARTED,\n payload: userAssignSchedule\n});\n\nexport const completeAssigningScheduleUsers = (userAssignSchedule) => ({\n type: types.USERS_ASSIGN_SCHEDULE_COMPLETED,\n payload: userAssignSchedule\n});\n\nexport const completeUnassigningScheduleUsers = (userAssignSchedule) => ({\n type: types.USERS_UNASSIGN_SCHEDULE_COMPLETED,\n payload: userAssignSchedule\n});\n\nexport const startUnassigningScheduleUsers = (userAssignSchedule) => ({\n type: types.USERS_UNASSIGN_SCHEDULE_STARTED,\n payload: userAssignSchedule\n});\n","import { combineReducers } from 'redux';\n\nimport union from 'lodash/union';\nimport omit from 'lodash/omit';\nimport { appIntl } from '../../../../../utility/context/IntlGlobalProvider';\n\nimport * as authTypes from '../../../../../redux/types/auth';\nimport * as types from '../../types/routesReport';\nimport * as authSelectors from '../../../../../redux/reducers/auth';\nimport { getDatesDifferenceString } from 'views/screens/Units/utils';\n\nconst byId = (state = {}, action) => {\n switch (action.type) {\n case authTypes.AUTHENTICATION_IDENTITY_CLEARED: {\n return {};\n }\n //TYPES COMPLETED FETCH\n case types.ROUTES_REPORT_FETCH_COMPLETED: {\n const { entities, order } = action.payload;\n const newState = { ...state };\n order.forEach((visitId) => {\n newState[visitId] = {\n isSelected: false,\n ...state[visitId],\n ...entities[visitId],\n isConfirmed: true\n };\n });\n return newState;\n }\n\n //DEFAULT\n default: {\n return state;\n }\n }\n};\n\nconst order = (state = [], action) => {\n switch (action.type) {\n case authTypes.AUTHENTICATION_IDENTITY_CLEARED: {\n return [];\n }\n //CASE COMPLETED FETCH\n case types.ROUTES_REPORT_FETCH_COMPLETED: {\n const { order } = action.payload;\n return union(order);\n }\n\n //DEFAULT\n default: {\n return state;\n }\n }\n};\n\nconst indicators = (state = {}, action) => {\n switch (action.type) {\n case authTypes.AUTHENTICATION_IDENTITY_CLEARED: {\n return {};\n }\n //TYPES COMPLETED FETCH\n case types.ROUTES_REPORT_FETCH_COMPLETED: {\n const { indicators } = action.payload;\n const newState = { ...indicators };\n return newState;\n }\n\n //DEFAULT\n default: {\n return state;\n }\n }\n};\n\nconst unitsById = (state = {}, action) => {\n switch (action.type) {\n case authTypes.AUTHENTICATION_IDENTITY_CLEARED: {\n return {};\n }\n //TYPES COMPLETED FETCH\n case types.ROUTES_REPORT_FETCH_COMPLETED: {\n const { unitsEntities, unitsOrder } = action.payload;\n const newState = { ...state };\n unitsOrder.forEach((unitId) => {\n newState[unitId] = {\n isSelected: false,\n ...state[unitId],\n ...unitsEntities[unitId],\n isConfirmed: true\n };\n });\n return newState;\n }\n\n //DEFAULT\n default: {\n return state;\n }\n }\n};\n\nconst unitsOrder = (state = [], action) => {\n switch (action.type) {\n case authTypes.AUTHENTICATION_IDENTITY_CLEARED: {\n return [];\n }\n //CASE COMPLETED FETCH\n case types.ROUTES_REPORT_FETCH_COMPLETED: {\n const { unitsOrder } = action.payload;\n return union(unitsOrder);\n }\n\n //DEFAULT\n default: {\n return state;\n }\n }\n};\n\nconst routesById = (state = {}, action) => {\n switch (action.type) {\n case authTypes.AUTHENTICATION_IDENTITY_CLEARED: {\n return {};\n }\n //TYPES COMPLETED FETCH\n case types.ROUTES_REPORT_FETCH_COMPLETED: {\n const { routesEntities, routesOrder } = action.payload;\n const newState = { ...state };\n routesOrder.forEach((routeId) => {\n newState[routeId] = {\n isSelected: false,\n ...state[routeId],\n ...routesEntities[routeId],\n isConfirmed: true\n };\n });\n return newState;\n }\n\n //DEFAULT\n default: {\n return state;\n }\n }\n};\n\nconst routesOrder = (state = [], action) => {\n switch (action.type) {\n case authTypes.AUTHENTICATION_IDENTITY_CLEARED: {\n return [];\n }\n //CASE COMPLETED FETCH\n case types.ROUTES_REPORT_FETCH_COMPLETED: {\n const { routesOrder } = action.payload;\n return union(routesOrder);\n }\n\n //DEFAULT\n default: {\n return state;\n }\n }\n};\n\n// STATES TO KNOW IF IT IS FETCHING\nconst isFetchingReport = (state = false, action) => {\n switch (action.type) {\n case authTypes.AUTHENTICATION_IDENTITY_CLEARED: {\n return false;\n }\n case types.ROUTES_REPORT_FETCH_STARTED: {\n return true;\n }\n case types.ROUTES_REPORT_FETCH_COMPLETED:\n case types.ROUTES_REPORT_FETCH_FAILED: {\n return false;\n }\n default: {\n return state;\n }\n }\n};\n\nconst errorFetchingReport = (state = null, action) => {\n switch (action.type) {\n case authTypes.AUTHENTICATION_IDENTITY_CLEARED: {\n return null;\n }\n case types.ROUTES_REPORT_FETCH_FAILED: {\n const { error } = action.payload;\n return error;\n }\n case types.ROUTES_REPORT_FETCH_STARTED:\n case types.ROUTES_REPORT_FETCH_COMPLETED: {\n return null;\n }\n default: {\n return state;\n }\n }\n};\n\nconst routesReport = combineReducers({\n byId,\n order,\n indicators,\n unitsById,\n unitsOrder,\n routesById,\n routesOrder,\n isFetchingReport,\n errorFetchingReport\n});\n\nexport default routesReport;\n\n//Own state\nexport const getOwnState = (state) => state.routes.routesReport;\n\n//Information\nexport const getRoutesExecution = (state, routeAssignmentId) => {\n const intl = appIntl();\n const routeExecution = getOwnState(state).byId[routeAssignmentId];\n const parsers = authSelectors.getParsers(state);\n const {\n convertKilometersPerHourToAuthUserSpeedSystem,\n convertKilometersToAuthUserDistanceSystem,\n convertMetersToAuthUserDistanceSystem,\n convertLitersToAuthUserCapacitySystem,\n convertKilometersPerLiterToAuthUserFuelSystem\n } = parsers;\n return {\n ...routeExecution,\n realDistanceLabel: authSelectors\n .getParsers(state)\n .convertKilometersToAuthUserDistanceSystem(routeExecution.realDistance || 0),\n calculatedDistanceLabel: authSelectors\n .getParsers(state)\n .convertMetersToAuthUserDistanceSystem(routeExecution.calculatedDistance || 0),\n effectivenessLabel: (routeExecution.effectiveness || 0).toString() + '%',\n durationLabel: routeExecution.startDate\n ? getDatesDifferenceString(\n routeExecution.startDate,\n routeExecution.completionDate ?? routeExecution.cancelDate ?? new Date(),\n intl\n )\n : 'N/A',\n transitDurationLabel: routeExecution.transitDate\n ? getDatesDifferenceString(\n routeExecution.transitDate,\n routeExecution.completionDate ?? routeExecution.cancelDate ?? new Date(),\n intl\n )\n : 'N/A',\n fuelConsumption: convertLitersToAuthUserCapacitySystem(routeExecution.fuelConsumption || 0),\n expectedPerformance: convertKilometersPerLiterToAuthUserFuelSystem(\n routeExecution.expectedPerformance || 0\n ),\n performanceOnRoute: convertKilometersPerLiterToAuthUserFuelSystem(\n routeExecution.performanceOnRoute || 0\n ),\n distanceProgress: convertKilometersToAuthUserDistanceSystem(\n routeExecution.distanceProgress || 0\n )\n };\n};\nexport const getRoutesExecutionsList = (state) =>\n getOwnState(state).order.map((id) => getRoutesExecution(state, id));\nexport const getRoutesUnit = (state, unitId) => {\n const unit = getOwnState(state).unitsById[unitId];\n const parsers = authSelectors.getParsers(state);\n const {\n convertKilometersToAuthUserDistanceSystem,\n convertMetersToAuthUserDistanceSystem,\n convertLitersToAuthUserCapacitySystem,\n convertKilometersPerLiterToAuthUserFuelSystem\n } = parsers;\n return {\n ...unit,\n realDistanceLabel: convertKilometersToAuthUserDistanceSystem(unit.realDistance || 0),\n calculatedDistanceLabel: convertMetersToAuthUserDistanceSystem(unit.calculatedDistance || 0),\n effectivenessLabel: (unit.effectiveness || 0).toString() + '%',\n fuelConsumption: convertLitersToAuthUserCapacitySystem(unit.fuelConsumption || 0),\n expectedPerformance: convertKilometersPerLiterToAuthUserFuelSystem(\n unit.expectedPerformance || 0\n ),\n performanceOnRoute: convertKilometersPerLiterToAuthUserFuelSystem(unit.performanceOnRoute || 0)\n };\n};\nexport const getRoutesUnitsList = (state) =>\n getOwnState(state).unitsOrder.map((id) => getRoutesUnit(state, id));\nexport const getRoutesRoute = (state, routeId) => {\n const route = getOwnState(state).routesById[routeId];\n return {\n ...route,\n realDistanceLabel: authSelectors\n .getParsers(state)\n .convertMetersToAuthUserDistanceSystem(route.realDistance || 0),\n calculatedDistanceLabel: authSelectors\n .getParsers(state)\n .convertMetersToAuthUserDistanceSystem(route.calculatedDistance || 0),\n fuelConsumptionLabel: authSelectors\n .getParsers(state)\n .convertLitersToAuthUserCapacitySystem(route.fuelConsumption || 0),\n effectivenessLabel: (route.effectiveness || 0).toString() + '%'\n };\n};\nexport const getRoutesRoutesList = (state) =>\n getOwnState(state).routesOrder.map((id) => getRoutesRoute(state, id));\nexport const getIndicators = (state) => {\n const intl = appIntl();\n const indicators = getOwnState(state).indicators;\n return [\n {\n title: intl.formatMessage({\n id: 'routes.total'\n }),\n bigIndicator: indicators.total || 0\n },\n {\n title: intl.formatMessage({\n id: 'routes.finalized'\n }),\n bigIndicator: indicators.finalized || 0\n },\n {\n title: intl.formatMessage({\n id: 'routes.canceled'\n }),\n bigIndicator: indicators.canceled || 0\n },\n {\n title: intl.formatMessage({\n id: 'routes.running'\n }),\n bigIndicator: indicators.running || 0\n }\n ];\n};\n\n//Status of sagas\nexport const isFetchingRoutesReport = (state) => getOwnState(state).isFetchingReport;\n\n//Errors\nexport const getFetchingRoutesReportErrors = (state) => getOwnState(state).errorFetchingReport;\n","import { combineReducers } from 'redux';\n\nimport omit from 'lodash/omit';\nimport union from 'lodash/union';\nimport forEach from 'lodash/forEach';\nimport uniq from 'lodash/uniq';\n\nimport routesExecutions, * as routesSelectorsExecutions from '../routesExecutions';\nimport routeCheckpoints, * as routeSelectorsCheckpoints from '../routeCheckpoints';\nimport routesAssignments from '../routesAssignments';\nimport routesReport, * as routesSelectorsReport from '../routesReport';\nimport * as authTypes from '../../../../../redux/types/auth';\nimport * as types from '../../types/routes';\nimport * as authSelectors from '../../../../../redux/reducers/auth';\nimport autoMergeLevel2 from 'redux-persist/es/stateReconciler/autoMergeLevel2';\nimport persistReducer from 'redux-persist/es/persistReducer';\nimport localforage from 'localforage';\n\nconst byId = (state = {}, action) => {\n switch (action.type) {\n case authTypes.AUTHENTICATION_IDENTITY_CLEARED: {\n return {};\n }\n //TYPES COMPLETED FETCH, ADD AND EDIT\n case types.ROUTES_FETCH_COMPLETED:\n case types.ROUTES_PARTIAL_FETCH_COMPLETED: {\n const { entities, order } = action.payload;\n const newState = { ...state };\n order.forEach((routeId) => {\n newState[routeId] = {\n isShownInMap: false,\n isSelected: false,\n ...state[routeId],\n ...entities[routeId],\n isConfirmed: true\n };\n });\n return newState;\n }\n\n case types.ROUTE_ADD_COMPLETED: {\n const {\n oldId,\n routeInformation: { route }\n } = action.payload;\n const newState = omit(state, oldId);\n newState[route.routeId] = {\n ...state[oldId],\n ...route,\n isShownInMap: true,\n isConfirmed: true\n };\n return newState;\n }\n\n case types.ROUTE_EDIT_COMPLETED: {\n const { route } = action.payload;\n return {\n ...state,\n [route.routeId]: {\n isShownInMap: false,\n ...omit(state[route.routeId], ['oldRoute']),\n ...omit(route, ['oldRoute']),\n isConfirmed: true\n }\n };\n }\n\n //TYPES STARTED ADD AND EDIT\n case types.ROUTE_ADD_STARTED: {\n const { route } = action.payload;\n const newState = { ...state };\n newState[route.routeId] = {\n isShownInMap: false,\n isSelected: false,\n ...route,\n isConfirmed: false\n };\n return newState;\n }\n case types.ROUTE_EDIT_STARTED: {\n const { route } = action.payload;\n return {\n ...state,\n [route.routeId]: {\n isShownInMap: false,\n ...state[route.routeId],\n oldRoute: state[route.routeId],\n isConfirmed: false\n }\n };\n }\n\n //TYPES FAILED ADD AND EDIT\n case types.ROUTE_ADD_FAILED: {\n const { oldId } = action.payload;\n if (state[oldId]) {\n return omit(state, oldId);\n }\n return state;\n }\n case types.ROUTE_EDIT_FAILED: {\n const { oldRoute } = action.payload;\n return {\n ...state,\n [oldRoute.routeId]: {\n isShownInMap: false,\n ...omit(state[oldRoute.routeId], ['oldRoute']),\n ...oldRoute,\n isConfirmed: true\n }\n };\n }\n\n //TYPES REMOVE COMPLETED\n case types.ROUTE_REMOVE_COMPLETED: {\n const { routeId } = action.payload;\n return omit(state, routeId);\n }\n\n //TYPES SHOW AND HIDE ROUTES IN MAP\n case types.ROUTE_SHOW_IN_MAP: {\n const routeId = action.payload;\n const newState = {\n ...state,\n [routeId]: {\n ...state[routeId],\n isShownInMap: true\n }\n };\n return newState;\n }\n\n case types.ROUTE_HIDE_IN_MAP: {\n const routeId = action.payload;\n return {\n ...state,\n [routeId]: {\n ...state[routeId],\n isShownInMap: false\n }\n };\n }\n\n case types.ROUTES_ALL_SHOW_IN_MAP: {\n const routeIds = action.payload;\n const newState = { ...state };\n if (routeIds.length == 0) {\n forEach(state, (route: any, routeId) => {\n newState[routeId] = {\n ...route,\n isShownInMap: true\n };\n });\n } else {\n routeIds.forEach((routeId) => {\n newState[routeId] = {\n ...state[routeId],\n isShownInMap: true\n };\n });\n }\n\n return newState;\n }\n\n case types.ROUTES_ALL_HIDE_IN_MAP: {\n const routeIds = action.payload;\n const newState = { ...state };\n if (routeIds.length == 0) {\n forEach(state, (route: any, routeId) => {\n newState[routeId] = {\n ...route,\n isShownInMap: false\n };\n });\n } else {\n routeIds.forEach((routeId) => {\n newState[routeId] = {\n ...state[routeId],\n isShownInMap: false\n };\n });\n }\n\n return newState;\n }\n\n //TYPES SELECTED AND DESELECTED\n case types.ROUTE_SELECTED: {\n const routeId = action.payload;\n const newState = {\n ...state,\n [routeId]: {\n ...state[routeId],\n isSelected: true\n }\n };\n return newState;\n }\n\n case types.ROUTE_DESELECTED: {\n const routeId = action.payload;\n return {\n ...state,\n [routeId]: {\n ...state[routeId],\n isSelected: false\n }\n };\n }\n\n case types.ROUTES_ALL_SELECTED: {\n const routeIds = action.payload;\n const newState = { ...state };\n if (routeIds.length == 0) {\n forEach(state, (route: any, routeId) => {\n newState[routeId] = {\n ...route,\n isSelected: true\n };\n });\n } else {\n routeIds.forEach((routeId) => {\n newState[routeId] = {\n ...state[routeId],\n isSelected: true\n };\n });\n }\n\n return newState;\n }\n\n case types.ROUTES_ALL_DESELECTED: {\n const routeIds = action.payload;\n const newState = { ...state };\n if (routeIds.length == 0) {\n forEach(state, (route: any, routeId) => {\n newState[routeId] = {\n ...route,\n isSelected: false\n };\n });\n } else {\n routeIds.forEach((routeId) => {\n newState[routeId] = {\n ...state[routeId],\n isSelected: false\n };\n });\n }\n\n return newState;\n }\n\n //COPY ROUTE\n case types.ROUTE_COPY_COMPLETED: {\n const { routeId, newRouteId, newRouteName, organizationId, divisionId, subdivisionId } =\n action.payload;\n return {\n ...state,\n [newRouteId]: {\n isSelected: false,\n ...state[routeId],\n routeId: newRouteId,\n routeName: newRouteName,\n organizationId,\n divisionId,\n subdivisionId,\n isConfirmed: true\n }\n };\n }\n\n //DEFAULT\n default: {\n return state;\n }\n }\n};\n\nconst order = (state = [], action) => {\n switch (action.type) {\n case authTypes.AUTHENTICATION_IDENTITY_CLEARED: {\n return [];\n }\n //CASE COMPLETED FETCH, ADD AND REMOVE\n case types.ROUTES_FETCH_COMPLETED: {\n const { order } = action.payload;\n return union(order);\n }\n\n case types.ROUTES_PARTIAL_FETCH_COMPLETED: {\n const { order } = action.payload;\n return uniq([...state, ...order]);\n }\n\n case types.ROUTE_ADD_COMPLETED: {\n const {\n oldId,\n routeInformation: { route }\n } = action.payload;\n return state.map((routeId) => (routeId === oldId ? route.routeId : routeId));\n }\n\n case types.ROUTE_REMOVE_COMPLETED: {\n const { routeId } = action.payload;\n return state.filter((routeIdState) => routeIdState !== routeId);\n }\n\n case types.ROUTES_REMOVE_COMPLETED: {\n const { routeIds } = action.payload;\n return state.filter((routeIdState) => !routeIds.includes(routeIdState));\n }\n\n //CASE ADD STARTED\n case types.ROUTE_ADD_STARTED: {\n const { route } = action.payload;\n return [...state, route.routeId];\n }\n\n //CASE ADD FAILED\n case types.ROUTE_ADD_FAILED: {\n const { oldId } = action.payload;\n return state.filter((routeIdState) => routeIdState !== oldId);\n }\n\n //COPY ROUTE\n case types.ROUTE_COPY_COMPLETED: {\n const { newRouteId } = action.payload;\n return [...state, newRouteId];\n }\n\n //DEFAULT\n default: {\n return state;\n }\n }\n};\n\n// STATES TO KNOW IF IT IS FETCHING, ADDING OR EDITING\nconst isFetchingList = (state = false, action) => {\n switch (action.type) {\n case authTypes.AUTHENTICATION_IDENTITY_CLEARED: {\n return false;\n }\n case types.ROUTES_FETCH_STARTED: {\n return true;\n }\n case types.ROUTES_FETCH_COMPLETED:\n case types.ROUTES_FETCH_FAILED: {\n return false;\n }\n default: {\n return state;\n }\n }\n};\n\nconst isPartialFetchingList = (state = false, action) => {\n switch (action.type) {\n case authTypes.AUTHENTICATION_IDENTITY_CLEARED: {\n return false;\n }\n case types.ROUTES_PARTIAL_FETCH_STARTED: {\n return true;\n }\n case types.ROUTES_PARTIAL_FETCH_COMPLETED:\n case types.ROUTES_PARTIAL_FETCH_FAILED: {\n return false;\n }\n default: {\n return state;\n }\n }\n};\n\nconst isAdding = (state = false, action) => {\n switch (action.type) {\n case authTypes.AUTHENTICATION_IDENTITY_CLEARED: {\n return false;\n }\n case types.ROUTE_ADD_STARTED: {\n return true;\n }\n case types.ROUTE_ADD_COMPLETED:\n case types.ROUTE_ADD_FAILED: {\n return false;\n }\n default: {\n return state;\n }\n }\n};\n\nconst isEditing = (state = false, action) => {\n switch (action.type) {\n case authTypes.AUTHENTICATION_IDENTITY_CLEARED: {\n return false;\n }\n case types.ROUTE_EDIT_STARTED: {\n return true;\n }\n case types.ROUTE_EDIT_COMPLETED:\n case types.ROUTE_EDIT_FAILED: {\n return false;\n }\n default: {\n return state;\n }\n }\n};\n\nconst isRemoving = (state = false, action) => {\n switch (action.type) {\n case authTypes.AUTHENTICATION_IDENTITY_CLEARED: {\n return false;\n }\n case types.ROUTES_REMOVE_STARTED:\n case types.ROUTE_REMOVE_STARTED: {\n return true;\n }\n case types.ROUTES_REMOVE_COMPLETED:\n case types.ROUTES_REMOVE_FAILED:\n case types.ROUTE_REMOVE_COMPLETED:\n case types.ROUTE_REMOVE_FAILED: {\n return false;\n }\n default: {\n return state;\n }\n }\n};\n\nconst isCopying = (state = false, action) => {\n switch (action.type) {\n case authTypes.AUTHENTICATION_IDENTITY_CLEARED: {\n return false;\n }\n case types.ROUTE_COPY_STARTED: {\n return true;\n }\n case types.ROUTE_COPY_COMPLETED:\n case types.ROUTE_COPY_FAILED: {\n return false;\n }\n default: {\n return state;\n }\n }\n};\n\nconst errorFetchingList = (state = null, action) => {\n switch (action.type) {\n case authTypes.AUTHENTICATION_IDENTITY_CLEARED: {\n return null;\n }\n case types.ROUTES_FETCH_FAILED: {\n const { error } = action.payload;\n return error;\n }\n case types.ROUTES_FETCH_STARTED:\n case types.ROUTES_FETCH_COMPLETED: {\n return null;\n }\n default: {\n return state;\n }\n }\n};\n\nconst errorPartialFetchingList = (state = null, action) => {\n switch (action.type) {\n case authTypes.AUTHENTICATION_IDENTITY_CLEARED: {\n return null;\n }\n case types.ROUTES_PARTIAL_FETCH_FAILED: {\n const { error } = action.payload;\n return error;\n }\n case types.ROUTES_PARTIAL_FETCH_STARTED:\n case types.ROUTES_PARTIAL_FETCH_COMPLETED: {\n return null;\n }\n default: {\n return state;\n }\n }\n};\n\nconst errorAdding = (state = null, action) => {\n switch (action.type) {\n case authTypes.AUTHENTICATION_IDENTITY_CLEARED: {\n return null;\n }\n case types.ROUTE_ADD_FAILED: {\n const { error } = action.payload;\n return error;\n }\n case types.ROUTE_ADD_STARTED:\n case types.ROUTE_ADD_COMPLETED: {\n return null;\n }\n default: {\n return state;\n }\n }\n};\n\nconst errorEditing = (state = null, action) => {\n switch (action.type) {\n case authTypes.AUTHENTICATION_IDENTITY_CLEARED: {\n return null;\n }\n case types.ROUTE_EDIT_FAILED: {\n const { error } = action.payload;\n return error;\n }\n case types.ROUTE_EDIT_STARTED:\n case types.ROUTE_EDIT_COMPLETED: {\n return null;\n }\n default: {\n return state;\n }\n }\n};\n\nconst errorRemoving = (state = null, action) => {\n switch (action.type) {\n case authTypes.AUTHENTICATION_IDENTITY_CLEARED: {\n return null;\n }\n case types.ROUTES_REMOVE_FAILED:\n case types.ROUTE_REMOVE_FAILED: {\n const { error } = action.payload;\n return error;\n }\n case types.ROUTES_REMOVE_STARTED:\n case types.ROUTES_REMOVE_COMPLETED:\n case types.ROUTE_REMOVE_STARTED:\n case types.ROUTE_REMOVE_COMPLETED: {\n return null;\n }\n default: {\n return state;\n }\n }\n};\n\nconst errorCopying = (state = false, action) => {\n switch (action.type) {\n case authTypes.AUTHENTICATION_IDENTITY_CLEARED: {\n return false;\n }\n case types.ROUTE_COPY_FAILED: {\n const { error } = action.payload;\n return error;\n }\n case types.ROUTE_COPY_COMPLETED:\n case types.ROUTE_COPY_STARTED: {\n return false;\n }\n default: {\n return state;\n }\n }\n};\n\nconst routes: any = combineReducers({\n routesExecutions,\n routesAssignments,\n routeCheckpoints,\n routesReport,\n byId,\n order,\n isPartialFetchingList,\n isFetchingList,\n isAdding,\n isEditing,\n isRemoving,\n isCopying,\n errorPartialFetchingList,\n errorFetchingList,\n errorAdding,\n errorEditing,\n errorRemoving,\n errorCopying\n});\n\nconst routesPersistConfig = {\n key: 'routes',\n storage: localforage,\n stateReconciler: autoMergeLevel2,\n blacklist: [\n 'routesExecutions',\n 'routeCheckpoints',\n 'routesReport',\n 'isPartialFetchingList',\n 'isFetchingList',\n 'isAdding',\n 'isEditing',\n 'isRemoving',\n 'isCopying',\n 'errorPartialFetchingList',\n 'errorFetchingList',\n 'errorAdding',\n 'errorEditing',\n 'errorRemoving',\n 'errorCopying'\n ],\n whitelist: ['byId', 'order']\n};\n\nexport default persistReducer(routesPersistConfig, routes);\n\n//Own state\nexport const getOwnState = (state) => state.routes;\n\n//Information\nexport const getRoute = (state, routeId): types.Route | undefined => {\n const route = getOwnState(state).byId[routeId];\n if (route) {\n return {\n ...route,\n checkpoints: routeSelectorsCheckpoints.getRouteCheckpointsListByRoute(state, route.routeId),\n distanceFormat: authSelectors\n .getParsers(state)\n .convertMetersToAuthUserDistanceSystem(route.distance)\n .toFixed(2),\n speedLimitFormat: authSelectors\n .getParsers(state)\n .convertKilometersPerHourToAuthUserSpeedSystem(route.speedLimit)\n };\n } else undefined;\n};\n\nexport const getRoutesList = (state): types.Route[] =>\n getOwnState(state)\n .order.map((id) => getRoute(state, id))\n .filter((route) => route.routeStatus > 0);\nexport const getRoutesListByMembership = (state, membership) => {\n return getRoutesList(state).filter(\n (route) =>\n membership &&\n (!membership.operatorId || membership.operatorId === route.operatorId) &&\n (!membership.organizationId || membership.organizationId === route.organizationId) &&\n (!membership.divisionId || membership.divisionId === route.divisionId) &&\n (!membership.subdivisionId || membership.subdivisionId === route.subdivisionId)\n );\n};\nexport const getSelectedRoutes = (state) => {\n const selectedRoutes = getRoutesList(state).filter((route) => route.isSelected);\n //Si no se selecciona ninguno devuelve null\n if (selectedRoutes.length === 0) return null;\n //Si se selecciona mĆ”s de cero se devuelve el arreglo de los seleccionados\n if (selectedRoutes.length > 0) return selectedRoutes;\n};\n\nexport const getSelectedRoute = (state) => {\n const selectedRoutes = getRoutesList(state).filter((route) => route.isSelected);\n //Si se selecciona solo uno devuelve solo el seleccionado\n if (selectedRoutes.length === 1) return selectedRoutes[0];\n //De lo contrario se devuelve null\n else return null;\n};\n\n//Status of sagas\nexport const isPartialFetchingListRoutes = (state) => getOwnState(state).isPartialFetchingList;\nexport const isFetchingListRoutes = (state) => getOwnState(state).isFetchingList;\nexport const isAddingRoute = (state) => getOwnState(state).isAdding;\nexport const isEditingRoute = (state) => getOwnState(state).isEditing;\nexport const isRemovingRoute = (state) => getOwnState(state).isRemoving;\nexport const isCopyingRoute = (state) => getOwnState(state).isCopying;\n\n//Errors\nexport const getPartialFetchingListRoutesErrors = (state) =>\n getOwnState(state).errorPartialFetchingList;\nexport const getFetchingListRoutesErrors = (state) => getOwnState(state).errorFetchingList;\nexport const getAddingRouteErrors = (state) => getOwnState(state).errorAdding;\nexport const getEditingRouteErrors = (state) => getOwnState(state).errorEditing;\nexport const getRemovingRouteErrors = (state) => getOwnState(state).errorRemoving;\nexport const getCopyingRouteErrors = (state) => getOwnState(state).errorCopying;\n\n/* -------------------------------------------------------------------------- */\n/* ROUTES EXECUTIONS */\n/* -------------------------------------------------------------------------- */\n//Information\nexport const getRoutesExecution = (state, assignmentId) =>\n routesSelectorsExecutions.getRoutesExecution(state, assignmentId);\nexport const getRoutesExecutionsList = (state) =>\n routesSelectorsExecutions.getRoutesExecutionsList(state);\nexport const getRoutesExecutionsIndicatorsInformation = (state) =>\n routesSelectorsExecutions.getIndicatorsInformation(state);\nexport const getRoutesExecutionsIndicators = (state) =>\n routesSelectorsExecutions.getIndicators(state);\nexport const getRoutesExecutionsTotalNotShown = (state) =>\n routesSelectorsExecutions.getTotalNotShown(state);\nexport const getRoutesExecutionsStatus = (state) =>\n routesSelectorsExecutions.getExecutionsStatus(state);\nexport const getRoutesExecutionsRunningStatus = (state) =>\n routesSelectorsExecutions.getRunningStatus(state);\n\n//Status of sagas\nexport const isFetchingRoutesExecutions = (state) =>\n routesSelectorsExecutions.isFetchingRoutesExecutions(state);\nexport const isCancelingRoutesExecution = (state) =>\n routesSelectorsExecutions.isCancelingRoutesExecution(state);\nexport const isFinalizingRoutesExecution = (state) =>\n routesSelectorsExecutions.isFinalizingRoutesExecution(state);\nexport const isCompletingRoutesExecution = (state) =>\n routesSelectorsExecutions.isCompletingRoutesExecution(state);\nexport const isRemovingRoutesExecution = (state) =>\n routesSelectorsExecutions.isRemovingRoutesExecution(state);\nexport const isPausingRoutesExecution = (state) =>\n routesSelectorsExecutions.isPausingRoutesExecution(state);\nexport const isStartingRoutesExecution = (state) =>\n routesSelectorsExecutions.isStartingRoutesExecution(state);\nexport const isUpdatingManualTransitRoutesExecution = (state) =>\n routesSelectorsExecutions.isUpdatingManualTransitRoutesExecution(state);\nexport const isSharingRoutesExecution = (state) =>\n routesSelectorsExecutions.isSharingRoutesExecution(state);\nexport const isChangingToAlternateRouteExecution = (state) =>\n routesSelectorsExecutions.isChangingToAlternateRouteExecution(state);\n\n//Errors\nexport const getFetchingRoutesExecutionsErrors = (state) =>\n routesSelectorsExecutions.getFetchingRoutesExecutionsErrors(state);\nexport const getCancelingRoutesExecutionErrors = (state) =>\n routesSelectorsExecutions.getCancelingRoutesExecutionErrors(state);\nexport const getFinalizingRoutesExecutionErrors = (state) =>\n routesSelectorsExecutions.getFinalizingRoutesExecutionErrors(state);\nexport const getCompletingRoutesExecutionErrors = (state) =>\n routesSelectorsExecutions.getCompletingRoutesExecutionErrors(state);\nexport const getRemovingRoutesExecutionErrors = (state) =>\n routesSelectorsExecutions.getRemovingRoutesExecutionErrors(state);\nexport const getPausingRoutesExecutionErrors = (state) =>\n routesSelectorsExecutions.getPausingRoutesExecutionErrors(state);\nexport const getStartingRoutesExecutionErrors = (state) =>\n routesSelectorsExecutions.getStartingRoutesExecutionErrors(state);\nexport const getUpdatingManualTransitRoutesExecutionErrors = (state) =>\n routesSelectorsExecutions.getUpdatingManualTransitRoutesExecutionErrors(state);\nexport const getSharingRoutesExecutionErrors = (state) =>\n routesSelectorsExecutions.getSharingRoutesExecutionErrors(state);\nexport const getChangingToAlternateRouteErrors = (state) =>\n routesSelectorsExecutions.getChangingToAlternateRouteErrors(state);\n\n/* -------------------------------------------------------------------------- */\n/* ROUTES REPORT */\n/* -------------------------------------------------------------------------- */\n//Information\nexport const getRoutesReportExecution = (state, visitId) =>\n routesSelectorsReport.getRoutesExecution(state, visitId);\nexport const getRoutesReportExecutionsList = (state) =>\n routesSelectorsReport.getRoutesExecutionsList(state);\nexport const getRoutesReportUnit = (state, visitId) =>\n routesSelectorsReport.getRoutesUnit(state, visitId);\nexport const getRoutesReportUnitsList = (state) => routesSelectorsReport.getRoutesUnitsList(state);\nexport const getRoutesReportRoute = (state, visitId) =>\n routesSelectorsReport.getRoutesRoute(state, visitId);\nexport const getRoutesReportRoutesList = (state) =>\n routesSelectorsReport.getRoutesRoutesList(state);\nexport const getRoutesReportIndicators = (state) => routesSelectorsReport.getIndicators(state);\n\n//Status of sagas\nexport const isFetchingRoutesReport = (state) =>\n routesSelectorsReport.isFetchingRoutesReport(state);\n\n//Errors\nexport const getFetchingRoutesReportErrors = (state) =>\n routesSelectorsReport.getFetchingRoutesReportErrors(state);\n\n/* -------------------------------------------------------------------------- */\n/* ROUTE CHECKPOINTS */\n/* -------------------------------------------------------------------------- */\n//Status of sagas\nexport const isFetchingListRouteCheckpoints = (state) =>\n routeSelectorsCheckpoints.isFetchingListRouteCheckpoints(state);\n\n//Errors\nexport const getFetchingListRouteCheckpointsErrors = (state) =>\n routeSelectorsCheckpoints.getFetchingListRouteCheckpointsErrors(state);\n","/**\n * `endDateAdjustment` es una funciĆ³n que recibe los parametros data que se enviarĆ”n en\n * un request a backend y ajusta las fechas \"fin\" que no contienen segundos.\n * por ejemplo: 23:59 se convertirĆ” en 23:59:59.999\n *\n * @param {Object} data - The original end date that needs to be adjusted.\n *\n * @returns {Object} - The adjusted end date.\n *\n * @example\n *\n * const data = { ...moreParams, endData: '2024-01-25 23:59'};\n * const adjustedData = endDateAdjustment(data);\n *\n * console.log(adjustedData); // Logs { ...moreParams, endData: '2024-01-25 23:59:59.999'}\n */\nexport const endDateAdjustment = (data: Object): Object => {\n if (data) {\n try {\n //console.log('Object.keys(data)', Object.keys(data));\n //console.log('data', data);\n Object.keys(data)?.map((key: any) => {\n if (\n key.toUpperCase().includes('DATE') &&\n data[key] !== null &&\n data[key].slice(-5) == '23:59'\n ) {\n data[key] = data[key].replace('23:59', '23:59:59.999');\n }\n });\n //console.log('data final', data);\n } catch (e) {}\n }\n return data;\n};\n","/* -------------------------------------------------------------------------- */\n/* Acciones del reductor Entities */\n/* -------------------------------------------------------------------------- */\n\nimport * as types from '../types';\nimport { defaultEntitiesToFetchAftetLogin } from '../constants';\nexport const startFetchingEntities = () => ({\n type: types.ENTITIES_FETCH_STARTED,\n payload: {}\n});\n\nexport const startFetchingEntitiesAfterLogin = (\n entitiesToUpdate: any[] = defaultEntitiesToFetchAftetLogin\n) => ({\n type: types.ENTITIES_FETCH_STARTED,\n payload: entitiesToUpdate\n});\nexport const completeFetchingEntities = (entities, order) => ({\n type: types.ENTITIES_FETCH_COMPLETED,\n payload: { entities, order }\n});\n\nexport const failFetchingEntities = (error) => ({\n type: types.ENTITIES_FETCH_FAILED,\n payload: { error }\n});\n\nexport const resetIsFetchedEntities = () => ({\n type: types.ENTITIES_RESET_IS_FETCHED,\n payload: {}\n});\n\nexport const startUpdatingEntities = (entitiesToUpdate: any[] = []) => ({\n type: types.ENTITIES_UPDATE_STARTED,\n payload: entitiesToUpdate\n});\n\nexport const completeUpdatingEntities = () => ({\n type: types.ENTITIES_UPDATE_COMPLETED\n});\n\nexport const failUpdatingEntities = (error) => ({\n type: types.ENTITIES_UPDATE_FAILED,\n payload: { error }\n});\n","import * as types from '../types';\n\nexport const startFetchingDrivers = (filters = {}) => ({\n type: types.DRIVERS_FETCH_STARTED,\n payload: filters\n});\nexport const completeFetchingDrivers = (entities, order, operatorId, organizationId) => ({\n type: types.DRIVERS_FETCH_COMPLETED,\n payload: {\n entities,\n order,\n operatorId,\n organizationId\n }\n});\nexport const failFetchingDrivers = (error = { errorMessage: 'Error', errorNumber: 404 }) => ({\n type: types.DRIVERS_FETCH_FAILED,\n payload: {\n error //error:{errorMessage:'Error', errorNumber:400}\n }\n});\n\nexport const startPartialFetchingDrivers = (\n entityTypeId,\n operatorId = null,\n organizationId = null\n) => ({\n type: types.DRIVERS_PARTIAL_FETCH_STARTED,\n payload: { entityTypeId, operatorId, organizationId }\n});\nexport const completePartialFetchingDrivers = (entities, order, operatorId, organizationId) => ({\n type: types.DRIVERS_PARTIAL_FETCH_COMPLETED,\n payload: {\n entities,\n order,\n operatorId,\n organizationId\n }\n});\nexport const failPartialFetchingDrivers = (\n error = { errorMessage: 'Error', errorNumber: 404 }\n) => ({\n type: types.DRIVERS_PARTIAL_FETCH_FAILED,\n payload: {\n error //error:{errorMessage:'Error', errorNumber:400}\n }\n});\n\nexport const startAddingDriver = (driver, person) => ({\n type: types.DRIVER_ADD_STARTED,\n payload: driver,\n person: person\n});\nexport const completeAddingDriver = (oldId, driver) => ({\n type: types.DRIVER_ADD_COMPLETED,\n payload: { oldId, driver }\n});\nexport const failAddingDriver = (oldId, error) => ({\n type: types.DRIVER_ADD_FAILED,\n payload: {\n oldId,\n error\n }\n});\n\nexport const startEditingDriver = (driver, person) => ({\n type: types.DRIVER_EDIT_STARTED,\n payload: driver,\n person: person\n});\nexport const completeEditingDriver = (driver) => ({\n type: types.DRIVER_EDIT_COMPLETED,\n payload: driver\n});\nexport const failEditingDriver = (oldDriver, error) => ({\n type: types.DRIVER_EDIT_FAILED,\n payload: {\n oldDriver,\n error\n }\n});\n\nexport const startRemovingDriver = (driverId, person) => ({\n type: types.DRIVER_REMOVE_STARTED,\n payload: {\n driverId\n },\n person: person\n});\nexport const completeRemovingDriver = (driverId) => ({\n type: types.DRIVER_REMOVE_COMPLETED,\n payload: {\n driverId\n }\n});\nexport const failRemovingDriver = (driverId, error) => ({\n type: types.DRIVER_REMOVE_FAILED,\n payload: {\n driverId,\n error\n }\n});\n\nexport const selectDriver = (driverId) => ({\n type: types.DRIVER_SELECTED,\n payload: driverId\n});\n\nexport const selectAllDrivers = (\n driverIds = [] //List of DriverIds\n) => ({\n type: types.DRIVERS_ALL_SELECTED,\n payload: driverIds\n});\n\nexport const deselectDriver = (driverId) => ({\n type: types.DRIVER_DESELECTED,\n payload: driverId\n});\n\nexport const deselectAllDrivers = (\n driverIds = [] //List of DriverIds\n) => ({\n type: types.DRIVERS_ALL_DESELECTED,\n payload: driverIds\n});\n\nexport const startMassiveDriversAssignment = (driversAndUnitsIds: Array, membership: any) => ({\n type: types.START_MASSIVE_DRIVERS_ASSIGNMENT,\n payload: { driversAndUnitsIds, membership }\n});\nexport const completeMassiveDriversAssignment = (data) => ({\n type: types.COMPLETE_MASSIVE_DRIVERS_ASSIGNMENT,\n payload: data\n});\nexport const errorMassiveDriversAssignment = (data) => ({\n type: types.COMPLETE_MASSIVE_DRIVERS_ASSIGNMENT,\n payload: data\n});\n\nexport const startImportData = (dataToImport: Array) => ({\n type: types.START_IMPORT_DRIVERS_UNITS_IMPORT,\n payload: dataToImport\n});\nexport const completeImportDriver = (importedData) => ({\n type: types.COMPLETE_IMPORT_DRIVERS_UNITS_IMPORT,\n payload: importedData\n});\n\nexport const startDriverAssignSensor = (driverId, sensor) => ({\n type: types.DRIVER_ASSIGN_SENSOR_STARTED,\n payload: { driverId, sensor }\n});\nexport const completeDriverAssignSensor = (driverId, sensor) => ({\n type: types.DRIVER_ASSIGN_SENSOR_COMPLETED,\n payload: { driverId, sensor }\n});\n\nexport const startDriverUnassignSensor = (driverId, sensor) => ({\n type: types.DRIVER_UNASSIGN_SENSOR_STARTED,\n payload: { driverId, sensor }\n});\nexport const completeDriverUnassignSensor = (driverId, sensor) => ({\n type: types.DRIVER_UNASSIGN_SENSOR_COMPLETED,\n payload: { driverId, sensor }\n});\n","import * as types from '../types';\n\nexport const startFetchingModules = (filters = {}) => ({\n type: types.MODULES_FETCH_STARTED,\n payload: filters\n});\nexport const completeFetchingModules = (entities, order, operatorId, organizationId) => ({\n type: types.MODULES_FETCH_COMPLETED,\n payload: {\n entities,\n order,\n operatorId,\n organizationId\n }\n});\nexport const failFetchingModules = (error = { errorMessage: 'Error', errorNumber: 404 }) => ({\n type: types.MODULES_FETCH_FAILED,\n payload: {\n error //error:{errorMessage:'Error', errorNumber:400}\n }\n});\n\nexport const startPartialFetchingModules = (\n entityTypeId,\n operatorId = null,\n organizationId = null,\n allowNullOrganizationId\n) => ({\n type: types.MODULES_PARTIAL_FETCH_STARTED,\n payload: { entityTypeId, operatorId, organizationId, allowNullOrganizationId }\n});\nexport const completePartialFetchingModules = (entities, order, operatorId, organizationId) => ({\n type: types.MODULES_PARTIAL_FETCH_COMPLETED,\n payload: {\n entities,\n order,\n operatorId,\n organizationId\n }\n});\nexport const failPartialFetchingModules = (\n error = { errorMessage: 'Error', errorNumber: 404 }\n) => ({\n type: types.MODULES_PARTIAL_FETCH_FAILED,\n payload: {\n error //error:{errorMessage:'Error', errorNumber:400}\n }\n});\n\nexport const startFetchingModule = (moduleId) => ({\n type: types.MODULE_FETCH_STARTED,\n payload: moduleId\n});\n\nexport const completeFetchingModule = (module) => ({\n type: types.MODULE_FETCH_COMPLETED,\n payload: module\n});\n\nexport const failFetchingModule = (error = { errorMessage: 'Error', errorNumber: 404 }) => ({\n type: types.MODULE_FETCH_FAILED,\n payload: {\n error //error:{errorMessage:'Error', errorNumber:400}\n }\n});\n\nexport const startAddingModule = (module) => ({\n type: types.MODULE_ADD_STARTED,\n payload: module\n});\nexport const completeAddingModule = (oldId, module) => ({\n type: types.MODULE_ADD_COMPLETED,\n payload: { oldId, module }\n});\nexport const failAddingModule = (oldId, error) => ({\n type: types.MODULE_ADD_FAILED,\n payload: {\n oldId,\n error\n }\n});\n\nexport const startEditingModule = (module) => ({\n type: types.MODULE_EDIT_STARTED,\n payload: module\n});\nexport const completeEditingModule = (module) => ({\n type: types.MODULE_EDIT_COMPLETED,\n payload: module\n});\nexport const failEditingModule = (oldModule, error) => ({\n type: types.MODULE_EDIT_FAILED,\n payload: {\n oldModule,\n error\n }\n});\n\nexport const startRemovingModule = (moduleId) => ({\n type: types.MODULE_REMOVE_STARTED,\n payload: {\n moduleId\n }\n});\nexport const completeRemovingModule = (moduleId) => ({\n type: types.MODULE_REMOVE_COMPLETED,\n payload: {\n moduleId\n }\n});\nexport const failRemovingModule = (moduleId, error) => ({\n type: types.MODULE_REMOVE_FAILED,\n payload: {\n moduleId,\n error\n }\n});\n\nexport const selectModule = (moduleId) => ({\n type: types.MODULE_SELECTED,\n payload: moduleId\n});\n\nexport const selectAllModules = (\n moduleIds = [] //List of ModuleIds\n) => ({\n type: types.MODULES_ALL_SELECTED,\n payload: moduleIds\n});\n\nexport const deselectModule = (moduleId) => ({\n type: types.MODULE_DESELECTED,\n payload: moduleId\n});\n\nexport const deselectAllModules = (\n moduleIds = [] //List of ModuleIds\n) => ({\n type: types.MODULES_ALL_DESELECTED,\n payload: moduleIds\n});\n\nexport const dirtyModule = (isDirty) => ({\n type: types.MODULE_DIRTY,\n payload: isDirty\n});\n","export const JOBS_REPORT_FETCH_STARTED = 'JOBS_REPORT_FETCH_STARTED';\nexport const JOBS_REPORT_FETCH_COMPLETED = 'JOBS_REPORT_FETCH_COMPLETED';\nexport const JOBS_REPORT_FETCH_FAILED = 'JOBS_REPORT_FETCH_FAILED';\n","export const WORKPLANS_REPORT_FETCH_STARTED = 'WORKPLANS_REPORT_FETCH_STARTED';\nexport const WORKPLANS_REPORT_FETCH_COMPLETED = 'WORKPLANS_REPORT_FETCH_COMPLETED';\nexport const WORKPLANS_REPORT_FETCH_FAILED = 'WORKPLANS_REPORT_FETCH_FAILED';\n","export const ROUTES_REPORT_FETCH_STARTED = 'ROUTES_REPORT_FETCH_STARTED';\nexport const ROUTES_REPORT_FETCH_COMPLETED = 'ROUTES_REPORT_FETCH_COMPLETED';\nexport const ROUTES_REPORT_FETCH_FAILED = 'ROUTES_REPORT_FETCH_FAILED';\n","const permissions = {\n addRoute: 'RL001',\n editRoute: 'RL002',\n deleteRoute: 'RL003',\n assignRoute: 'RL004',\n deleteRouteAssignment: 'RL005',\n completeRouteAssignment: 'RL007',\n finalizeRouteAssignment: 'RL008',\n cancelRouteAssignment: 'RL009',\n viewRouteRunningGraph: 'RL017',\n viewRouteByStatusGraph: 'RL018',\n viewTotalIndicator: 'RL020',\n viewRunningIndicator: 'RL021',\n viewScheduledIndicator: 'RL022',\n viewDestinationIndicator: 'RL023',\n viewRouteCatalog: 'RL027',\n searchRoutes: 'RL025',\n viewRouteMonitor: 'RL029',\n viewRouteReport: 'RL030',\n viewExtraFieldsInRouteAssignment: 'RL032',\n changeCompletionType: 'RL035',\n shareRouteAssignment: 'RL036',\n importRouteAssignments: 'RL038'\n};\n\nexport default permissions;\n","import * as types from '../types';\n\nexport const startFetchingServiceClasses = (filters = {}, isDropdown, isWebPage = false) => ({\n type: types.SERVICECLASSES_FETCH_STARTED,\n payload: {\n filters,\n isDropdown,\n isWebPage\n }\n});\nexport const completeFetchingServiceClasses = (entities, order) => ({\n type: types.SERVICECLASSES_FETCH_COMPLETED,\n payload: {\n entities,\n order\n }\n});\nexport const failFetchingServiceClasses = (\n error = { errorMessage: 'Error', errorNumber: 404 }\n) => ({\n type: types.SERVICECLASSES_FETCH_FAILED,\n payload: {\n error //error:{errorMessage:'Error', errorNumber:400}\n }\n});\nexport const startPartialFetchingServiceClasses = (entityTypeId) => ({\n type: types.SERVICECLASSES_PARTIAL_FETCH_STARTED,\n payload: { entityTypeId }\n});\nexport const completePartialFetchingServiceClasses = (entities, order) => ({\n type: types.SERVICECLASSES_PARTIAL_FETCH_COMPLETED,\n payload: {\n entities,\n order\n }\n});\nexport const failPartialFetchingServiceClasses = (\n error = { errorMessage: 'Error', errorNumber: 404 }\n) => ({\n type: types.SERVICECLASSES_PARTIAL_FETCH_FAILED,\n payload: {\n error //error:{errorMessage:'Error', errorNumber:400}\n }\n});\n\nexport const startFetchingServiceClass = (serviceClassId) => ({\n type: types.SERVICECLASS_FETCH_STARTED,\n payload: serviceClassId\n});\n\nexport const completeFetchingServiceClass = (serviceClass) => ({\n type: types.SERVICECLASS_FETCH_COMPLETED,\n payload: serviceClass\n});\n\nexport const failFetchingServiceClass = (error = { errorMessage: 'Error', errorNumber: 404 }) => ({\n type: types.SERVICECLASS_FETCH_FAILED,\n payload: {\n error //error:{errorMessage:'Error', errorNumber:400}\n }\n});\n\nexport const startAddingServiceClass = (serviceClass) => ({\n type: types.SERVICECLASS_ADD_STARTED,\n payload: serviceClass\n});\nexport const completeAddingServiceClass = (oldId, serviceClass) => ({\n type: types.SERVICECLASS_ADD_COMPLETED,\n payload: { oldId, serviceClass }\n});\nexport const failAddingServiceClass = (oldId, error) => ({\n type: types.SERVICECLASS_ADD_FAILED,\n payload: {\n oldId,\n error\n }\n});\n\nexport const startEditingServiceClass = (serviceClass) => ({\n type: types.SERVICECLASS_EDIT_STARTED,\n payload: serviceClass\n});\nexport const completeEditingServiceClass = (serviceClass) => ({\n type: types.SERVICECLASS_EDIT_COMPLETED,\n payload: serviceClass\n});\nexport const failEditingServiceClass = (oldServiceClass, error) => ({\n type: types.SERVICECLASS_EDIT_FAILED,\n payload: {\n oldServiceClass,\n error\n }\n});\n\nexport const startRemovingServiceClass = (serviceClassId) => ({\n type: types.SERVICECLASS_REMOVE_STARTED,\n payload: {\n serviceClassId\n }\n});\nexport const completeRemovingServiceClass = (serviceClassId) => ({\n type: types.SERVICECLASS_REMOVE_COMPLETED,\n payload: {\n serviceClassId\n }\n});\nexport const failRemovingServiceClass = (serviceClassId, error) => ({\n type: types.SERVICECLASS_REMOVE_FAILED,\n payload: {\n serviceClassId,\n error\n }\n});\n\nexport const selectServiceClass = (serviceClassId) => ({\n type: types.SERVICECLASS_SELECTED,\n payload: serviceClassId\n});\n\nexport const selectAllServiceClasses = (\n serviceClassIds = [] //List of ServiceClassIds\n) => ({\n type: types.SERVICECLASSES_ALL_SELECTED,\n payload: serviceClassIds\n});\n\nexport const deselectServiceClass = (serviceClassId) => ({\n type: types.SERVICECLASS_DESELECTED,\n payload: serviceClassId\n});\n\nexport const deselectAllServiceClasses = (\n serviceClassIds = [] //List of ServiceClassIds\n) => ({\n type: types.SERVICECLASSES_ALL_DESELECTED,\n payload: serviceClassIds\n});\n","import * as types from '../types';\n\nexport const startFetchingAssets = (filters = {}) => ({\n type: types.ASSETS_FETCH_STARTED,\n payload: filters\n});\nexport const completeFetchingAssets = (entities, order, operatorId, organizationId) => ({\n type: types.ASSETS_FETCH_COMPLETED,\n payload: {\n entities,\n order,\n operatorId,\n organizationId\n }\n});\nexport const failFetchingAssets = (error = { errorMessage: 'Error', errorNumber: 404 }) => ({\n type: types.ASSETS_FETCH_FAILED,\n payload: {\n error //error:{errorMessage:'Error', errorNumber:400}\n }\n});\n\nexport const startPartialFetchingAssets = (\n entityTypeId,\n operatorId = null,\n organizationId = null\n) => ({\n type: types.ASSETS_PARTIAL_FETCH_STARTED,\n payload: { entityTypeId, operatorId, organizationId }\n});\nexport const completePartialFetchingAssets = (entities, order, operatorId, organizationId) => ({\n type: types.ASSETS_PARTIAL_FETCH_COMPLETED,\n payload: {\n entities,\n order,\n operatorId,\n organizationId\n }\n});\nexport const failPartialFetchingAssets = (error = { errorMessage: 'Error', errorNumber: 404 }) => ({\n type: types.ASSETS_PARTIAL_FETCH_FAILED,\n payload: {\n error //error:{errorMessage:'Error', errorNumber:400}\n }\n});\n\nexport const startAddingAsset = (asset) => ({\n type: types.ASSET_ADD_STARTED,\n payload: asset\n});\nexport const completeAddingAsset = (oldId, asset) => ({\n type: types.ASSET_ADD_COMPLETED,\n payload: { oldId, asset }\n});\nexport const failAddingAsset = (oldId, error) => ({\n type: types.ASSET_ADD_FAILED,\n payload: {\n oldId,\n error\n }\n});\n\nexport const startEditingAsset = (asset) => ({\n type: types.ASSET_EDIT_STARTED,\n payload: asset\n});\nexport const completeEditingAsset = (asset) => ({\n type: types.ASSET_EDIT_COMPLETED,\n payload: asset\n});\nexport const failEditingAsset = (oldAsset, error) => ({\n type: types.ASSET_EDIT_FAILED,\n payload: {\n oldAsset,\n error\n }\n});\n\nexport const startRemovingAsset = (assetId) => ({\n type: types.ASSET_REMOVE_STARTED,\n payload: {\n assetId\n }\n});\nexport const completeRemovingAsset = (assetId) => ({\n type: types.ASSET_REMOVE_COMPLETED,\n payload: {\n assetId\n }\n});\nexport const failRemovingAsset = (assetId, error) => ({\n type: types.ASSET_REMOVE_FAILED,\n payload: {\n assetId,\n error\n }\n});\n\nexport const selectAsset = (assetId) => ({\n type: types.ASSET_SELECTED,\n payload: assetId\n});\n\nexport const selectAllAssets = (\n assetIds = [] //List of AssetIds\n) => ({\n type: types.ASSETS_ALL_SELECTED,\n payload: assetIds\n});\n\nexport const deselectAsset = (assetId) => ({\n type: types.ASSET_DESELECTED,\n payload: assetId\n});\n\nexport const deselectAllAssets = (\n assetIds = [] //List of AssetIds\n) => ({\n type: types.ASSETS_ALL_DESELECTED,\n payload: assetIds\n});\n\nexport const startCheckingCode = (assetId, identifier) => ({\n type: types.ASSET_IDENTIFIER_CHECK_STARTED,\n payload: {\n assetId,\n identifier\n }\n});\nexport const completeCheckingCode = (result) => ({\n type: types.ASSET_IDENTIFIER_CHECK_COMPLETED,\n payload: result\n});\nexport const failCheckingCode = (error) => ({\n type: types.ASSET_IDENTIFIER_CHECK_FAILED,\n payload: {\n error\n }\n});\n\nexport const startCheckingSecuritySealCode = (assetId, securitySealCode) => ({\n type: types.ASSET_SECURITY_SEAL_CODE_CHECK_STARTED,\n payload: {\n assetId,\n securitySealCode\n }\n});\nexport const completeCheckingSecuritySealCode = (result) => ({\n type: types.ASSET_SECURITY_SEAL_CODE_CHECK_COMPLETED,\n payload: result\n});\nexport const failCheckingSecuritySealCode = (error) => ({\n type: types.ASSET_SECURITY_SEAL_CODE_CHECK_FAILED,\n payload: {\n error\n }\n});\n","import * as types from '../types';\n\nexport const startFetchingContractTemplates = (filters = {}) => ({\n type: types.CONTRACT_TEMPLATES_FETCH_STARTED,\n payload: filters\n});\nexport const completeFetchingContractTemplates = (entities, order, operatorId, organizationId) => ({\n type: types.CONTRACT_TEMPLATES_FETCH_COMPLETED,\n payload: {\n entities,\n order,\n operatorId,\n organizationId\n }\n});\nexport const failFetchingContractTemplates = (\n error = { errorMessage: 'Error', errorNumber: 404 }\n) => ({\n type: types.CONTRACT_TEMPLATES_FETCH_FAILED,\n payload: {\n error //error:{errorMessage:'Error', errorNumber:400}\n }\n});\n\nexport const startPartialFetchingContractTemplates = (\n entityTypeId,\n operatorId = null,\n organizationId = null\n) => ({\n type: types.CONTRACT_TEMPLATES_PARTIAL_FETCH_STARTED,\n payload: { entityTypeId, operatorId, organizationId }\n});\nexport const completePartialFetchingContractTemplates = (\n entities,\n order,\n operatorId,\n organizationId\n) => ({\n type: types.CONTRACT_TEMPLATES_PARTIAL_FETCH_COMPLETED,\n payload: {\n entities,\n order,\n operatorId,\n organizationId\n }\n});\nexport const failPartialFetchingContractTemplates = (\n error = { errorMessage: 'Error', errorNumber: 404 }\n) => ({\n type: types.CONTRACT_TEMPLATES_PARTIAL_FETCH_FAILED,\n payload: {\n error //error:{errorMessage:'Error', errorNumber:400}\n }\n});\n\nexport const startAddingContractTemplate = (organizationContract) => ({\n type: types.CONTRACT_TEMPLATE_ADD_STARTED,\n payload: organizationContract\n});\nexport const completeAddingContractTemplate = (oldId, organizationContract) => ({\n type: types.CONTRACT_TEMPLATE_ADD_COMPLETED,\n payload: { oldId, organizationContract }\n});\nexport const failAddingContractTemplate = (oldId, error) => ({\n type: types.CONTRACT_TEMPLATE_ADD_FAILED,\n payload: {\n oldId,\n error\n }\n});\n\nexport const startEditingContractTemplate = (organizationContract) => ({\n type: types.CONTRACT_TEMPLATE_EDIT_STARTED,\n payload: organizationContract\n});\nexport const completeEditingContractTemplate = (organizationContract) => ({\n type: types.CONTRACT_TEMPLATE_EDIT_COMPLETED,\n payload: organizationContract\n});\nexport const failEditingContractTemplate = (oldContractTemplate, error) => ({\n type: types.CONTRACT_TEMPLATE_EDIT_FAILED,\n payload: {\n oldContractTemplate,\n error\n }\n});\n\nexport const startRemovingContractTemplate = (templateId) => ({\n type: types.CONTRACT_TEMPLATE_REMOVE_STARTED,\n payload: {\n templateId\n }\n});\nexport const completeRemovingContractTemplate = (templateId) => ({\n type: types.CONTRACT_TEMPLATE_REMOVE_COMPLETED,\n payload: {\n templateId\n }\n});\nexport const failRemovingContractTemplate = (templateId, error) => ({\n type: types.CONTRACT_TEMPLATE_REMOVE_FAILED,\n payload: {\n templateId,\n error\n }\n});\n\nexport const selectContractTemplate = (templateId) => ({\n type: types.CONTRACT_TEMPLATE_SELECTED,\n payload: templateId\n});\n\nexport const selectAllContractTemplates = (\n templateIds = [] //List of templateIds\n) => ({\n type: types.CONTRACT_TEMPLATES_ALL_SELECTED,\n payload: templateIds\n});\n\nexport const deselectContractTemplate = (templateId) => ({\n type: types.CONTRACT_TEMPLATE_DESELECTED,\n payload: templateId\n});\n\nexport const deselectAllContractTemplates = (\n templateIds = [] //List of templateIds\n) => ({\n type: types.CONTRACT_TEMPLATES_ALL_DESELECTED,\n payload: templateIds\n});\n","import * as types from '../types';\n\nexport const startFetchingCustomers = (filters = {}) => ({\n type: types.CUSTOMERS_FETCH_STARTED,\n payload: filters\n});\nexport const completeFetchingCustomers = (entities, order, operatorId, organizationId) => ({\n type: types.CUSTOMERS_FETCH_COMPLETED,\n payload: {\n entities,\n order,\n operatorId,\n organizationId\n }\n});\nexport const failFetchingCustomers = (error = { errorMessage: 'Error', errorNumber: 404 }) => ({\n type: types.CUSTOMERS_FETCH_FAILED,\n payload: {\n error //error:{errorMessage:'Error', errorNumber:400}\n }\n});\n\nexport const startPartialFetchingCustomers = (\n entityTypeId,\n operatorId = null,\n organizationId = null\n) => ({\n type: types.CUSTOMERS_PARTIAL_FETCH_STARTED,\n payload: { entityTypeId, operatorId, organizationId }\n});\nexport const completePartialFetchingCustomers = (entities, order, operatorId, organizationId) => ({\n type: types.CUSTOMERS_PARTIAL_FETCH_COMPLETED,\n payload: {\n entities,\n order,\n operatorId,\n organizationId\n }\n});\nexport const failPartialFetchingCustomers = (\n error = { errorMessage: 'Error', errorNumber: 404 }\n) => ({\n type: types.CUSTOMERS_PARTIAL_FETCH_FAILED,\n payload: {\n error //error:{errorMessage:'Error', errorNumber:400}\n }\n});\n\nexport const startAddingCustomer = (customer) => ({\n type: types.CUSTOMER_ADD_STARTED,\n payload: customer\n});\nexport const completeAddingCustomer = (oldId, customer, office) => ({\n type: types.CUSTOMER_ADD_COMPLETED,\n payload: { oldId, customer, office }\n});\nexport const failAddingCustomer = (oldId, error) => ({\n type: types.CUSTOMER_ADD_FAILED,\n payload: {\n oldId,\n error\n }\n});\n\nexport const startEditingCustomer = (customer) => ({\n type: types.CUSTOMER_EDIT_STARTED,\n payload: customer\n});\nexport const completeEditingCustomer = (customer, office) => ({\n type: types.CUSTOMER_EDIT_COMPLETED,\n payload: { customer, office }\n});\nexport const failEditingCustomer = (oldCustomer, error) => ({\n type: types.CUSTOMER_EDIT_FAILED,\n payload: {\n oldCustomer,\n error\n }\n});\n\nexport const startRemovingCustomer = (customerId) => ({\n type: types.CUSTOMER_REMOVE_STARTED,\n payload: {\n customerId\n }\n});\nexport const completeRemovingCustomer = (customerId) => ({\n type: types.CUSTOMER_REMOVE_COMPLETED,\n payload: {\n customerId\n }\n});\nexport const failRemovingCustomer = (customerId, error) => ({\n type: types.CUSTOMER_REMOVE_FAILED,\n payload: {\n customerId,\n error\n }\n});\n\nexport const selectCustomer = (customerId) => ({\n type: types.CUSTOMER_SELECTED,\n payload: customerId\n});\n\nexport const selectAllCustomers = (\n customerIds = [] //List of CustomerIds\n) => ({\n type: types.CUSTOMERS_ALL_SELECTED,\n payload: customerIds\n});\n\nexport const deselectCustomer = (customerId) => ({\n type: types.CUSTOMER_DESELECTED,\n payload: customerId\n});\n\nexport const deselectAllCustomers = (\n customerIds = [] //List of CustomerIds\n) => ({\n type: types.CUSTOMERS_ALL_DESELECTED,\n payload: customerIds\n});\n","import * as types from '../types';\n\nexport const startFetchingOffices = (filters = {}) => ({\n type: types.OFFICES_FETCH_STARTED,\n payload: filters\n});\nexport const completeFetchingOffices = (entities, order, operatorId, organizationId) => ({\n type: types.OFFICES_FETCH_COMPLETED,\n payload: {\n entities,\n order,\n operatorId,\n organizationId\n }\n});\nexport const failFetchingOffices = (error = { errorMessage: 'Error', errorNumber: 404 }) => ({\n type: types.OFFICES_FETCH_FAILED,\n payload: {\n error //error:{errorMessage:'Error', errorNumber:400}\n }\n});\n\nexport const startPartialFetchingOffices = (\n entityTypeId,\n operatorId = null,\n organizationId = null\n) => ({\n type: types.OFFICES_PARTIAL_FETCH_STARTED,\n payload: { entityTypeId, operatorId, organizationId }\n});\nexport const completePartialFetchingOffices = (entities, order, operatorId, organizationId) => ({\n type: types.OFFICES_PARTIAL_FETCH_COMPLETED,\n payload: {\n entities,\n order,\n operatorId,\n organizationId\n }\n});\nexport const failPartialFetchingOffices = (\n error = { errorMessage: 'Error', errorNumber: 404 }\n) => ({\n type: types.OFFICES_PARTIAL_FETCH_FAILED,\n payload: {\n error //error:{errorMessage:'Error', errorNumber:400}\n }\n});\n\nexport const startAddingOffice = (office) => ({\n type: types.OFFICE_ADD_STARTED,\n payload: office\n});\nexport const completeAddingOffice = (oldId, office) => ({\n type: types.OFFICE_ADD_COMPLETED,\n payload: { oldId, office }\n});\nexport const failAddingOffice = (oldId, error) => ({\n type: types.OFFICE_ADD_FAILED,\n payload: {\n oldId,\n error\n }\n});\n\nexport const startEditingOffice = (office) => ({\n type: types.OFFICE_EDIT_STARTED,\n payload: office\n});\nexport const completeEditingOffice = (office) => ({\n type: types.OFFICE_EDIT_COMPLETED,\n payload: { office }\n});\nexport const failEditingOffice = (oldOffice, error) => ({\n type: types.OFFICE_EDIT_FAILED,\n payload: {\n oldOffice,\n error\n }\n});\n\nexport const startRemovingOffice = (officeId) => ({\n type: types.OFFICE_REMOVE_STARTED,\n payload: {\n officeId\n }\n});\nexport const completeRemovingOffice = (officeId) => ({\n type: types.OFFICE_REMOVE_COMPLETED,\n payload: {\n officeId\n }\n});\nexport const failRemovingOffice = (officeId, error) => ({\n type: types.OFFICE_REMOVE_FAILED,\n payload: {\n officeId,\n error\n }\n});\n\nexport const selectOffice = (officeId) => ({\n type: types.OFFICE_SELECTED,\n payload: officeId\n});\n\nexport const selectAllOffices = (\n officeIds = [] //List of OfficeIds\n) => ({\n type: types.OFFICES_ALL_SELECTED,\n payload: officeIds\n});\n\nexport const deselectOffice = (officeId) => ({\n type: types.OFFICE_DESELECTED,\n payload: officeId\n});\n\nexport const deselectAllOffices = (\n officeIds = [] //List of OfficeIds\n) => ({\n type: types.OFFICES_ALL_DESELECTED,\n payload: officeIds\n});\n","import * as types from '../types';\n\nexport const startFetchingDivisions = (filters = {}) => ({\n type: types.DIVISIONS_FETCH_STARTED,\n payload: filters\n});\nexport const completeFetchingDivisions = (entities, order, operatorId, organizationId) => ({\n type: types.DIVISIONS_FETCH_COMPLETED,\n payload: {\n entities,\n order,\n operatorId,\n organizationId\n }\n});\nexport const failFetchingDivisions = (error = { errorMessage: 'Error', errorNumber: 404 }) => ({\n type: types.DIVISIONS_FETCH_FAILED,\n payload: {\n error //error:{errorMessage:'Error', errorNumber:400}\n }\n});\n\nexport const startPartialFetchingDivisions = (\n entityTypeId,\n operatorId = null,\n organizationId = null\n) => ({\n type: types.DIVISIONS_PARTIAL_FETCH_STARTED,\n payload: { entityTypeId, operatorId, organizationId }\n});\nexport const completePartialFetchingDivisions = (entities, order, operatorId, organizationId) => ({\n type: types.DIVISIONS_PARTIAL_FETCH_COMPLETED,\n payload: {\n entities,\n order,\n operatorId,\n organizationId\n }\n});\nexport const failPartialFetchingDivisions = (\n error = { errorMessage: 'Error', errorNumber: 404 }\n) => ({\n type: types.DIVISIONS_PARTIAL_FETCH_FAILED,\n payload: {\n error //error:{errorMessage:'Error', errorNumber:400}\n }\n});\n\nexport const startAddingDivision = (division) => ({\n type: types.DIVISION_ADD_STARTED,\n payload: division\n});\nexport const completeAddingDivision = (oldId, division) => ({\n type: types.DIVISION_ADD_COMPLETED,\n payload: { oldId, division }\n});\nexport const failAddingDivision = (oldId, error) => ({\n type: types.DIVISION_ADD_FAILED,\n payload: {\n oldId,\n error\n }\n});\n\nexport const startEditingDivision = (division) => ({\n type: types.DIVISION_EDIT_STARTED,\n payload: division\n});\nexport const completeEditingDivision = (division) => ({\n type: types.DIVISION_EDIT_COMPLETED,\n payload: division\n});\nexport const failEditingDivision = (oldDivision, error) => ({\n type: types.DIVISION_EDIT_FAILED,\n payload: {\n oldDivision,\n error\n }\n});\n\nexport const startRemovingDivision = (divisionId) => ({\n type: types.DIVISION_REMOVE_STARTED,\n payload: {\n divisionId\n }\n});\nexport const completeRemovingDivision = (divisionId) => ({\n type: types.DIVISION_REMOVE_COMPLETED,\n payload: {\n divisionId\n }\n});\nexport const failRemovingDivision = (divisionId, error) => ({\n type: types.DIVISION_REMOVE_FAILED,\n payload: {\n divisionId,\n error\n }\n});\n\nexport const selectDivision = (divisionId) => ({\n type: types.DIVISION_SELECTED,\n payload: divisionId\n});\n\nexport const selectAllDivisions = (\n divisionIds = [] //List of DivisionIds\n) => ({\n type: types.DIVISIONS_ALL_SELECTED,\n payload: divisionIds\n});\n\nexport const deselectDivision = (divisionId) => ({\n type: types.DIVISION_DESELECTED,\n payload: divisionId\n});\n\nexport const deselectAllDivisions = (\n divisionIds = [] //List of DivisionIds\n) => ({\n type: types.DIVISIONS_ALL_DESELECTED,\n payload: divisionIds\n});\n","import * as types from '../types';\n\nexport const startFetchingSubdivisions = (filters = {}) => ({\n type: types.SUBDIVISIONS_FETCH_STARTED,\n payload: filters\n});\nexport const completeFetchingSubdivisions = (entities, order, operatorId, organizationId) => ({\n type: types.SUBDIVISIONS_FETCH_COMPLETED,\n payload: {\n entities,\n order,\n operatorId,\n organizationId\n }\n});\nexport const failFetchingSubdivisions = (error = { errorMessage: 'Error', errorNumber: 404 }) => ({\n type: types.SUBDIVISIONS_FETCH_FAILED,\n payload: {\n error //error:{errorMessage:'Error', errorNumber:400}\n }\n});\n\nexport const startPartialFetchingSubdivisions = (\n entityTypeId,\n operatorId = null,\n organizationId = null\n) => ({\n type: types.SUBDIVISIONS_PARTIAL_FETCH_STARTED,\n payload: { entityTypeId, operatorId, organizationId }\n});\nexport const completePartialFetchingSubdivisions = (\n entities,\n order,\n operatorId,\n organizationId\n) => ({\n type: types.SUBDIVISIONS_PARTIAL_FETCH_COMPLETED,\n payload: {\n entities,\n order,\n operatorId,\n organizationId\n }\n});\nexport const failPartialFetchingSubdivisions = (\n error = { errorMessage: 'Error', errorNumber: 404 }\n) => ({\n type: types.SUBDIVISIONS_PARTIAL_FETCH_FAILED,\n payload: {\n error //error:{errorMessage:'Error', errorNumber:400}\n }\n});\n\nexport const startAddingSubdivision = (subdivision) => ({\n type: types.SUBDIVISION_ADD_STARTED,\n payload: subdivision\n});\nexport const completeAddingSubdivision = (oldId, subdivision) => ({\n type: types.SUBDIVISION_ADD_COMPLETED,\n payload: { oldId, subdivision }\n});\nexport const failAddingSubdivision = (oldId, error) => ({\n type: types.SUBDIVISION_ADD_FAILED,\n payload: {\n oldId,\n error\n }\n});\n\nexport const startEditingSubdivision = (subdivision) => ({\n type: types.SUBDIVISION_EDIT_STARTED,\n payload: subdivision\n});\nexport const completeEditingSubdivision = (subdivision) => ({\n type: types.SUBDIVISION_EDIT_COMPLETED,\n payload: subdivision\n});\nexport const failEditingSubdivision = (oldSubdivision, error) => ({\n type: types.SUBDIVISION_EDIT_FAILED,\n payload: {\n oldSubdivision,\n error\n }\n});\n\nexport const startRemovingSubdivision = (subdivisionId) => ({\n type: types.SUBDIVISION_REMOVE_STARTED,\n payload: {\n subdivisionId\n }\n});\nexport const completeRemovingSubdivision = (subdivisionId) => ({\n type: types.SUBDIVISION_REMOVE_COMPLETED,\n payload: {\n subdivisionId\n }\n});\nexport const failRemovingSubdivision = (subdivisionId, error) => ({\n type: types.SUBDIVISION_REMOVE_FAILED,\n payload: {\n subdivisionId,\n error\n }\n});\n\nexport const selectSubdivision = (subdivisionId) => ({\n type: types.SUBDIVISION_SELECTED,\n payload: subdivisionId\n});\n\nexport const selectAllSubdivisions = (\n subdivisionIds = [] //List of SubdivisionIds\n) => ({\n type: types.SUBDIVISIONS_ALL_SELECTED,\n payload: subdivisionIds\n});\n\nexport const deselectSubdivision = (subdivisionId) => ({\n type: types.SUBDIVISION_DESELECTED,\n payload: subdivisionId\n});\n\nexport const deselectAllSubdivisions = (\n subdivisionIds = [] //List of SubdivisionIds\n) => ({\n type: types.SUBDIVISIONS_ALL_DESELECTED,\n payload: subdivisionIds\n});\n","import * as types from '../types';\n\nexport const startFetchingSensors = (filters = {}) => ({\n type: types.SENSORS_FETCH_STARTED,\n payload: filters\n});\nexport const completeFetchingSensors = (entities, order) => ({\n type: types.SENSORS_FETCH_COMPLETED,\n payload: {\n entities,\n order\n }\n});\nexport const failFetchingSensors = (error = { errorMessage: 'Error', errorNumber: 404 }) => ({\n type: types.SENSORS_FETCH_FAILED,\n payload: {\n error //error:{errorMessage:'Error', errorNumber:400}\n }\n});\n\nexport const startPartialFetchingSensors = (filters = {}) => ({\n type: types.SENSORS_PARTIAL_FETCH_STARTED,\n payload: filters\n});\nexport const completePartialFetchingSensors = (entities, order) => ({\n type: types.SENSORS_PARTIAL_FETCH_COMPLETED,\n payload: {\n entities,\n order\n }\n});\nexport const failPartialFetchingSensors = (\n error = { errorMessage: 'Error', errorNumber: 404 }\n) => ({\n type: types.SENSORS_PARTIAL_FETCH_FAILED,\n payload: {\n error //error:{errorMessage:'Error', errorNumber:400}\n }\n});\n\nexport const startFetchingSensor = (sensorId) => ({\n type: types.SENSOR_FETCH_STARTED,\n payload: sensorId\n});\n\nexport const completeFetchingSensor = (sensor) => ({\n type: types.SENSOR_FETCH_COMPLETED,\n payload: sensor\n});\n\nexport const failFetchingSensor = (error = { errorMessage: 'Error', errorNumber: 404 }) => ({\n type: types.SENSOR_FETCH_FAILED,\n payload: {\n error //error:{errorMessage:'Error', errorNumber:400}\n }\n});\n\nexport const startAddingSensor = (sensor) => ({\n type: types.SENSOR_ADD_STARTED,\n payload: sensor\n});\nexport const completeAddingSensor = (oldId, sensor) => ({\n type: types.SENSOR_ADD_COMPLETED,\n payload: { oldId, sensor }\n});\nexport const failAddingSensor = (oldId, error) => ({\n type: types.SENSOR_ADD_FAILED,\n payload: {\n oldId,\n error\n }\n});\n\nexport const startEditingSensor = (sensor) => ({\n type: types.SENSOR_EDIT_STARTED,\n payload: sensor\n});\nexport const completeEditingSensor = (sensor) => ({\n type: types.SENSOR_EDIT_COMPLETED,\n payload: sensor\n});\nexport const failEditingSensor = (oldSensor, error) => ({\n type: types.SENSOR_EDIT_FAILED,\n payload: {\n oldSensor,\n error\n }\n});\n\nexport const startRemovingSensor = (sensorId) => ({\n type: types.SENSOR_REMOVE_STARTED,\n payload: {\n sensorId\n }\n});\nexport const completeRemovingSensor = (sensorId) => ({\n type: types.SENSOR_REMOVE_COMPLETED,\n payload: {\n sensorId\n }\n});\nexport const failRemovingSensor = (sensorId, error) => ({\n type: types.SENSOR_REMOVE_FAILED,\n payload: {\n sensorId,\n error\n }\n});\n\nexport const selectSensor = (sensorId) => ({\n type: types.SENSOR_SELECTED,\n payload: sensorId\n});\n\nexport const selectAllSensors = (\n sensorIds = [] //List of SensorIds\n) => ({\n type: types.SENSORS_ALL_SELECTED,\n payload: sensorIds\n});\n\nexport const deselectSensor = (sensorId) => ({\n type: types.SENSOR_DESELECTED,\n payload: sensorId\n});\n\nexport const deselectAllSensors = (\n sensorIds = [] //List of SensorIds\n) => ({\n type: types.SENSORS_ALL_DESELECTED,\n payload: sensorIds\n});\n\nexport const startCheckingCode = (sensorId, identifier) => ({\n type: types.IDENTIFIER_CHECK_STARTED,\n payload: {\n sensorId,\n identifier\n }\n});\nexport const completeCheckingCode = (result) => ({\n type: types.IDENTIFIER_CHECK_COMPLETED,\n payload: result\n});\nexport const failCheckingCode = (error) => ({\n type: types.IDENTIFIER_CHECK_FAILED,\n payload: {\n error\n }\n});\n\nexport const sensorCalibrationStartStarted = (sensorId) => ({\n type: types.START_SENSOR_CALIBRATION_STARTED,\n payload: {\n sensorId\n }\n});\nexport const sensorCalibrationStartCompleted = (sensorId) => ({\n type: types.START_SENSOR_CALIBRATION_COMPLETED,\n payload: {\n sensorId\n }\n});\nexport const sensorCalibrationStartFail = (sensorId, error) => ({\n type: types.START_SENSOR_CALIBRATION_FAILED,\n payload: {\n sensorId,\n error\n }\n});\n\nexport const sensorCalibrationFinalizeStarted = (sensorId) => ({\n type: types.FINALIZE_SENSOR_CALIBRATION_STARTED,\n payload: {\n sensorId\n }\n});\nexport const sensorCalibrationFinalizeCompleted = (sensorId) => ({\n type: types.FINALIZE_SENSOR_CALIBRATION_COMPLETED,\n payload: {\n sensorId\n }\n});\nexport const sensorCalibrationFinalizeFail = (sensorId, error) => ({\n type: types.FINALIZE_SENSOR_CALIBRATION_FAILED,\n payload: {\n sensorId,\n error\n }\n});\n","import * as types from '../types';\n\nexport const startFetchingOrganizationContracts = (filters = {}) => ({\n type: types.ORGANIZATION_CONTRACTS_FETCH_STARTED,\n payload: filters\n});\nexport const completeFetchingOrganizationContracts = (\n entities,\n order,\n operatorId,\n organizationId\n) => ({\n type: types.ORGANIZATION_CONTRACTS_FETCH_COMPLETED,\n payload: {\n entities,\n order,\n operatorId,\n organizationId\n }\n});\nexport const failFetchingOrganizationContracts = (\n error = { errorMessage: 'Error', errorNumber: 404 }\n) => ({\n type: types.ORGANIZATION_CONTRACTS_FETCH_FAILED,\n payload: {\n error //error:{errorMessage:'Error', errorNumber:400}\n }\n});\n\nexport const startPartialFetchingOrganizationContracts = (\n entityTypeId,\n operatorId = null,\n organizationId = null,\n allowNullOrganizationId\n) => ({\n type: types.ORGANIZATION_CONTRACTS_PARTIAL_FETCH_STARTED,\n payload: { entityTypeId, operatorId, organizationId, allowNullOrganizationId }\n});\nexport const completePartialFetchingOrganizationContracts = (\n entities,\n order,\n operatorId,\n organizationId\n) => ({\n type: types.ORGANIZATION_CONTRACTS_PARTIAL_FETCH_COMPLETED,\n payload: {\n entities,\n order,\n operatorId,\n organizationId\n }\n});\nexport const failPartialFetchingOrganizationContracts = (\n error = { errorMessage: 'Error', errorNumber: 404 }\n) => ({\n type: types.ORGANIZATION_CONTRACTS_PARTIAL_FETCH_FAILED,\n payload: {\n error //error:{errorMessage:'Error', errorNumber:400}\n }\n});\n\nexport const startAddingOrganizationContract = (organizationContract) => ({\n type: types.ORGANIZATION_CONTRACT_ADD_STARTED,\n payload: organizationContract\n});\nexport const completeAddingOrganizationContract = (oldId, organizationContract) => ({\n type: types.ORGANIZATION_CONTRACT_ADD_COMPLETED,\n payload: { oldId, organizationContract }\n});\nexport const failAddingOrganizationContract = (oldId, error) => ({\n type: types.ORGANIZATION_CONTRACT_ADD_FAILED,\n payload: {\n oldId,\n error\n }\n});\n\nexport const startEditingOrganizationContract = (organizationContract) => ({\n type: types.ORGANIZATION_CONTRACT_EDIT_STARTED,\n payload: organizationContract\n});\nexport const completeEditingOrganizationContract = (organizationContract) => ({\n type: types.ORGANIZATION_CONTRACT_EDIT_COMPLETED,\n payload: organizationContract\n});\nexport const failEditingOrganizationContract = (oldOrganizationContract, error) => ({\n type: types.ORGANIZATION_CONTRACT_EDIT_FAILED,\n payload: {\n oldOrganizationContract,\n error\n }\n});\n\nexport const startRemovingOrganizationContract = (contractId) => ({\n type: types.ORGANIZATION_CONTRACT_REMOVE_STARTED,\n payload: {\n contractId\n }\n});\nexport const completeRemovingOrganizationContract = (contractId) => ({\n type: types.ORGANIZATION_CONTRACT_REMOVE_COMPLETED,\n payload: {\n contractId\n }\n});\nexport const failRemovingOrganizationContract = (contractId, error) => ({\n type: types.ORGANIZATION_CONTRACT_REMOVE_FAILED,\n payload: {\n contractId,\n error\n }\n});\n\nexport const selectOrganizationContract = (contractId) => ({\n type: types.ORGANIZATION_CONTRACT_SELECTED,\n payload: contractId\n});\n\nexport const selectAllOrganizationContracts = (\n contractIds = [] //List of ContractIds\n) => ({\n type: types.ORGANIZATION_CONTRACTS_ALL_SELECTED,\n payload: contractIds\n});\n\nexport const deselectOrganizationContract = (contractId) => ({\n type: types.ORGANIZATION_CONTRACT_DESELECTED,\n payload: contractId\n});\n\nexport const deselectAllOrganizationContracts = (\n contractIds = [] //List of DivisionIds\n) => ({\n type: types.ORGANIZATION_CONTRACTS_ALL_DESELECTED,\n payload: contractIds\n});\n","import { combineReducers } from 'redux';\n\nimport omit from 'lodash/omit';\nimport union from 'lodash/union';\nimport forEach from 'lodash/forEach';\nimport uniq from 'lodash/uniq';\n\nimport * as types from 'views/screens/Operators/types';\n\nconst byId = (state = {}, action) => {\n switch (action.type) {\n //TYPES COMPLETED FETCH, ADD AND EDIT\n case types.OPERATORS_FETCH_COMPLETED:\n case types.OPERATORS_PARTIAL_FETCH_COMPLETED: {\n const { entities, order } = action.payload;\n const newState = { ...state };\n order.forEach((operatorId) => {\n newState[operatorId] = {\n isSelected: false,\n ...state[operatorId],\n ...entities[operatorId],\n isConfirmed: true\n };\n });\n return newState;\n }\n\n case types.OPERATOR_ADD_COMPLETED: {\n const { oldId, operator } = action.payload;\n const newState = omit(state, oldId);\n newState[operator.operatorId] = {\n ...state[oldId],\n ...operator,\n isConfirmed: true\n };\n return newState;\n }\n\n case types.OPERATOR_EDIT_COMPLETED: {\n const operator = action.payload;\n return {\n ...state,\n [operator.operatorId]: {\n ...omit(state[operator.operatorId], ['oldOperator']),\n ...omit(operator, ['oldOperator']),\n isConfirmed: true\n }\n };\n }\n\n //TYPES STARTED ADD AND EDIT\n case types.OPERATOR_ADD_STARTED: {\n const operator = action.payload;\n const newState = { ...state };\n newState[operator.operatorId] = {\n isSelected: false,\n ...operator,\n isConfirmed: false\n };\n return newState;\n }\n case types.OPERATOR_EDIT_STARTED: {\n const operator = action.payload;\n return {\n ...state,\n [operator.operatorId]: {\n ...state[operator.operatorId],\n oldOperator: state[operator.operatorId],\n ...operator,\n isConfirmed: false\n }\n };\n }\n\n //TYPES FAILED ADD AND EDIT\n case types.OPERATOR_ADD_FAILED: {\n const { oldId } = action.payload;\n if (state[oldId]) {\n return omit(state, oldId);\n }\n return state;\n }\n case types.OPERATOR_EDIT_FAILED: {\n const { oldOperator } = action.payload;\n return {\n ...state,\n [oldOperator.operatorId]: {\n ...omit(state[oldOperator.operatorId], ['oldOperator']),\n ...oldOperator,\n isConfirmed: true\n }\n };\n }\n\n //TYPES REMOVE COMPLETED\n case types.OPERATOR_REMOVE_COMPLETED: {\n const { operatorId } = action.payload;\n return omit(state, operatorId);\n }\n\n //TYPES SELECTED AND DESELECTED\n case types.OPERATOR_SELECTED: {\n const operatorId = action.payload;\n const newState = {\n ...state,\n [operatorId]: {\n ...state[operatorId],\n isSelected: true\n }\n };\n return newState;\n }\n\n case types.OPERATOR_DESELECTED: {\n const operatorId = action.payload;\n return {\n ...state,\n [operatorId]: {\n ...state[operatorId],\n isSelected: false\n }\n };\n }\n\n case types.OPERATORS_ALL_SELECTED: {\n const operatorIds = action.payload;\n const newState = { ...state };\n if (operatorIds.length == 0) {\n forEach(state, (operator: any, operatorId) => {\n newState[operatorId] = {\n ...operator,\n isSelected: true\n };\n });\n } else {\n operatorIds.forEach((operatorId) => {\n newState[operatorId] = {\n ...state[operatorId],\n isSelected: true\n };\n });\n }\n\n return newState;\n }\n\n case types.OPERATORS_ALL_DESELECTED: {\n const operatorIds = action.payload;\n const newState = { ...state };\n if (operatorIds.length == 0) {\n forEach(state, (operator: any, operatorId) => {\n newState[operatorId] = {\n ...operator,\n isSelected: false\n };\n });\n } else {\n operatorIds.forEach((operatorId) => {\n newState[operatorId] = {\n ...state[operatorId],\n isSelected: false\n };\n });\n }\n\n return newState;\n }\n\n //DEFAULT\n default: {\n return state;\n }\n }\n};\n\nconst order = (state = [], action) => {\n switch (action.type) {\n //CASE COMPLETED FETCH, ADD AND REMOVE\n case types.OPERATORS_FETCH_COMPLETED: {\n const { order } = action.payload;\n return union(order);\n }\n\n case types.OPERATORS_PARTIAL_FETCH_COMPLETED: {\n const { order } = action.payload;\n return uniq([...state, ...order]);\n }\n\n case types.OPERATOR_ADD_COMPLETED: {\n const { oldId, operator } = action.payload;\n return state.map((operatorId) => (operatorId === oldId ? operator.operatorId : operatorId));\n }\n\n case types.OPERATOR_REMOVE_COMPLETED: {\n const { operatorId } = action.payload;\n return state.filter((operatorIdState) => operatorIdState !== operatorId);\n }\n\n //CASE ADD STARTED\n case types.OPERATOR_ADD_STARTED: {\n const operator = action.payload;\n return [...state, operator.operatorId];\n }\n\n //CASE ADD FAILED\n case types.OPERATOR_ADD_FAILED: {\n const { oldId } = action.payload;\n return state.filter((operatorIdState) => operatorIdState !== oldId);\n }\n\n //DEFAULT\n default: {\n return state;\n }\n }\n};\n\n// STATES TO KNOW IF IT IS FETCHING, ADDING OR EDITING\nconst isFetchingList = (state = false, action) => {\n switch (action.type) {\n case types.OPERATORS_FETCH_STARTED: {\n return true;\n }\n case types.OPERATORS_FETCH_COMPLETED:\n case types.OPERATORS_FETCH_FAILED: {\n return false;\n }\n default: {\n return state;\n }\n }\n};\n\nconst isPartialFetchingList = (state = false, action) => {\n switch (action.type) {\n case types.OPERATORS_PARTIAL_FETCH_STARTED: {\n return true;\n }\n case types.OPERATORS_PARTIAL_FETCH_COMPLETED:\n case types.OPERATORS_PARTIAL_FETCH_FAILED: {\n return false;\n }\n default: {\n return state;\n }\n }\n};\n\nconst isAdding = (state = false, action) => {\n switch (action.type) {\n case types.OPERATOR_ADD_STARTED: {\n return true;\n }\n case types.OPERATOR_ADD_COMPLETED:\n case types.OPERATOR_ADD_FAILED: {\n return false;\n }\n default: {\n return state;\n }\n }\n};\n\nconst isEditing = (state = false, action) => {\n switch (action.type) {\n case types.OPERATOR_EDIT_STARTED: {\n return true;\n }\n case types.OPERATOR_EDIT_COMPLETED:\n case types.OPERATOR_EDIT_FAILED: {\n return false;\n }\n default: {\n return state;\n }\n }\n};\n\nconst isEditingStandardPrices = (state = false, action) => {\n switch (action.type) {\n case types.OPERATOR_EDIT_STANDARD_PRICES_STARTED: {\n return true;\n }\n case types.OPERATOR_EDIT_STANDARD_PRICES_COMPLETED:\n case types.OPERATOR_EDIT_STANDARD_PRICES_FAILED: {\n return false;\n }\n default: {\n return state;\n }\n }\n};\n\nconst isRemoving = (state = false, action) => {\n switch (action.type) {\n case types.OPERATOR_REMOVE_STARTED: {\n return true;\n }\n case types.OPERATOR_REMOVE_COMPLETED:\n case types.OPERATOR_REMOVE_FAILED: {\n return false;\n }\n default: {\n return state;\n }\n }\n};\n\nconst errorFetchingList = (state = null, action) => {\n switch (action.type) {\n case types.OPERATORS_FETCH_FAILED: {\n const { error } = action.payload;\n return error;\n }\n case types.OPERATORS_FETCH_STARTED:\n case types.OPERATORS_FETCH_COMPLETED: {\n return null;\n }\n default: {\n return state;\n }\n }\n};\n\nconst errorPartialFetchingList = (state = null, action) => {\n switch (action.type) {\n case types.OPERATORS_PARTIAL_FETCH_FAILED: {\n const { error } = action.payload;\n return error;\n }\n case types.OPERATORS_PARTIAL_FETCH_STARTED:\n case types.OPERATORS_PARTIAL_FETCH_COMPLETED: {\n return null;\n }\n default: {\n return state;\n }\n }\n};\n\nconst errorAdding = (state = null, action) => {\n switch (action.type) {\n case types.OPERATOR_ADD_FAILED: {\n const { error } = action.payload;\n return error;\n }\n case types.OPERATOR_ADD_STARTED:\n case types.OPERATOR_ADD_COMPLETED: {\n return null;\n }\n default: {\n return state;\n }\n }\n};\n\nconst errorEditing = (state = null, action) => {\n switch (action.type) {\n case types.OPERATOR_EDIT_FAILED: {\n const { error } = action.payload;\n return error;\n }\n case types.OPERATOR_EDIT_STARTED:\n case types.OPERATOR_EDIT_COMPLETED: {\n return null;\n }\n default: {\n return state;\n }\n }\n};\n\nconst errorEditingStandardPrices = (state = null, action) => {\n switch (action.type) {\n case types.OPERATOR_EDIT_STANDARD_PRICES_FAILED: {\n const { error } = action.payload;\n return error;\n }\n case types.OPERATOR_EDIT_STANDARD_PRICES_STARTED:\n case types.OPERATOR_EDIT_STANDARD_PRICES_COMPLETED: {\n return null;\n }\n default: {\n return state;\n }\n }\n};\n\nconst errorRemoving = (state = null, action) => {\n switch (action.type) {\n case types.OPERATOR_REMOVE_FAILED: {\n const { error } = action.payload;\n return error;\n }\n case types.OPERATOR_REMOVE_STARTED:\n case types.OPERATOR_REMOVE_COMPLETED: {\n return null;\n }\n default: {\n return state;\n }\n }\n};\n\nconst operators = combineReducers({\n byId,\n order,\n isPartialFetchingList,\n isFetchingList,\n isAdding,\n isEditing,\n isEditingStandardPrices,\n isRemoving,\n errorPartialFetchingList,\n errorFetchingList,\n errorAdding,\n errorEditing,\n errorEditingStandardPrices,\n errorRemoving\n});\n\nexport default operators;\n\n//Own state\nexport const getOwnState = (state) => state.operators;\n\n//Information\nexport const getOperator = (state, operatorId) => getOwnState(state).byId[operatorId];\nexport const getOperatorsList = (state) =>\n getOwnState(state)\n .order.map((id) => getOperator(state, id))\n .filter((operator) => operator.operatorStatus > 0);\nexport const getSelectedOperators = (state) => {\n const selectedOperators = getOperatorsList(state).filter((operator) => operator.isSelected);\n //Si no se selecciona ninguno devuelve null\n if (selectedOperators.length === 0) return null;\n //Si se selecciona mĆ”s de cero se devuelve el arreglo de los seleccionados\n if (selectedOperators.length > 0) return selectedOperators;\n};\n\nexport const getSelectedOperator = (state) => {\n const selectedOperators = getOperatorsList(state).filter((operator) => operator.isSelected);\n //Si se selecciona solo uno devuelve solo el seleccionado\n if (selectedOperators.length === 1) return selectedOperators[0];\n //De lo contrario se devuelve null\n else return null;\n};\n\n//Status of sagas\nexport const isPartialFetchingListOperators = (state) => getOwnState(state).isPartialFetchingList;\nexport const isFetchingListOperators = (state) => getOwnState(state).isFetchingList;\nexport const isAddingOperator = (state) => getOwnState(state).isAdding;\nexport const isEditingOperator = (state) => getOwnState(state).isEditing;\nexport const isEditingOperatorStandardPrices = (state) =>\n getOwnState(state).isEditingStandardPrices;\nexport const isRemovingOperator = (state) => getOwnState(state).isRemoving;\n\n//Errors\nexport const getPartialFetchingListOperatorsErrors = (state) =>\n getOwnState(state).errorPartialFetchingList;\nexport const getFetchingListOperatorsErrors = (state) => getOwnState(state).errorFetchingList;\nexport const getAddingOperatorErrors = (state) => getOwnState(state).errorAdding;\nexport const getEditingOperatorErrors = (state) => getOwnState(state).errorEditing;\nexport const getEditingOperatorStandardPricesErrors = (state) =>\n getOwnState(state).errorEditingStandardPrices;\nexport const getRemovingOperatorErrors = (state) => getOwnState(state).errorRemoving;\n","import * as types from '../types';\n\nexport const startFetchingVehicles = (filters = {}) => ({\n type: types.VEHICLES_FETCH_STARTED,\n payload: filters\n});\nexport const completeFetchingVehicles = (entities, order, operatorId, organizationId) => ({\n type: types.VEHICLES_FETCH_COMPLETED,\n payload: {\n entities,\n order,\n operatorId,\n organizationId\n }\n});\nexport const failFetchingVehicles = (error = { errorMessage: 'Error', errorNumber: 404 }) => ({\n type: types.VEHICLES_FETCH_FAILED,\n payload: {\n error //error:{errorMessage:'Error', errorNumber:400}\n }\n});\n\nexport const startPartialFetchingVehicles = (\n entityTypeId,\n operatorId = null,\n organizationId = null\n) => ({\n type: types.VEHICLES_PARTIAL_FETCH_STARTED,\n payload: { entityTypeId, operatorId, organizationId }\n});\nexport const completePartialFetchingVehicles = (entities, order, operatorId, organizationId) => ({\n type: types.VEHICLES_PARTIAL_FETCH_COMPLETED,\n payload: {\n entities,\n order,\n operatorId,\n organizationId\n }\n});\nexport const failPartialFetchingVehicles = (\n error = { errorMessage: 'Error', errorNumber: 404 }\n) => ({\n type: types.VEHICLES_PARTIAL_FETCH_FAILED,\n payload: {\n error //error:{errorMessage:'Error', errorNumber:400}\n }\n});\n\nexport const startAddingVehicle = (vehicle) => ({\n type: types.VEHICLE_ADD_STARTED,\n payload: vehicle\n});\nexport const completeAddingVehicle = (oldId, vehicle) => ({\n type: types.VEHICLE_ADD_COMPLETED,\n payload: { oldId, vehicle }\n});\nexport const failAddingVehicle = (oldId, error) => ({\n type: types.VEHICLE_ADD_FAILED,\n payload: {\n oldId,\n error\n }\n});\n\nexport const startEditingVehicle = (vehicle) => ({\n type: types.VEHICLE_EDIT_STARTED,\n payload: vehicle\n});\nexport const completeEditingVehicle = (vehicle) => ({\n type: types.VEHICLE_EDIT_COMPLETED,\n payload: vehicle\n});\nexport const failEditingVehicle = (oldVehicle, error) => ({\n type: types.VEHICLE_EDIT_FAILED,\n payload: {\n oldVehicle,\n error\n }\n});\n\nexport const startRemovingVehicle = (vehicleId) => ({\n type: types.VEHICLE_REMOVE_STARTED,\n payload: {\n vehicleId\n }\n});\nexport const completeRemovingVehicle = (vehicleId) => ({\n type: types.VEHICLE_REMOVE_COMPLETED,\n payload: {\n vehicleId\n }\n});\nexport const failRemovingVehicle = (vehicleId, error) => ({\n type: types.VEHICLE_REMOVE_FAILED,\n payload: {\n vehicleId,\n error\n }\n});\n\nexport const selectVehicle = (vehicleId) => ({\n type: types.VEHICLE_SELECTED,\n payload: vehicleId\n});\n\nexport const selectAllVehicles = (\n vehicleIds = [] //List of VehicleIds\n) => ({\n type: types.VEHICLES_ALL_SELECTED,\n payload: vehicleIds\n});\n\nexport const deselectVehicle = (vehicleId) => ({\n type: types.VEHICLE_DESELECTED,\n payload: vehicleId\n});\n\nexport const deselectAllVehicles = (\n vehicleIds = [] //List of VehicleIds\n) => ({\n type: types.VEHICLES_ALL_DESELECTED,\n payload: vehicleIds\n});\n\nexport const startCheckingCode = (vehicleId, licensePlate) => ({\n type: types.VEHICLE_LICENSE_PLATE_CHECK_STARTED,\n payload: {\n vehicleId,\n licensePlate\n }\n});\nexport const completeCheckingCode = (result) => ({\n type: types.VEHICLE_LICENSE_PLATE_CHECK_COMPLETED,\n payload: result\n});\nexport const failCheckingCode = (error) => ({\n type: types.VEHICLE_LICENSE_PLATE_CHECK_FAILED,\n payload: {\n error\n }\n});\n","export const ROUTE_CHECKPOINTS_FETCH_STARTED = 'ROUTE_CHECKPOINTS_FETCH_STARTED';\nexport const ROUTE_CHECKPOINTS_FETCH_COMPLETED = 'ROUTE_CHECKPOINTS_FETCH_COMPLETED';\nexport const ROUTE_CHECKPOINTS_FETCH_FAILED = 'ROUTE_CHECKPOINTS_FETCH_FAILED';\n\nexport const ROUTE_CHECKPOINTS_CLEAR = 'ROUTE_CHECKPOINTS_CLEAR';\n","export const timeInSeconds = {\r\n minute: 60,\r\n hour: 3600,\r\n day: 86400,\r\n week: 604800,\r\n}","export const VEHICLE_MAKERS_FETCH_STARTED = 'VEHICLE_MAKERS_FETCH_STARTED';\nexport const VEHICLE_MAKERS_FETCH_COMPLETED = 'VEHICLE_MAKERS_FETCH_COMPLETED';\nexport const VEHICLE_MAKERS_FETCH_FAILED = 'VEHICLE_MAKERS_FETCH_FAILED';\n\nexport const VEHICLE_MAKERS_PARTIAL_FETCH_STARTED = 'VEHICLE_MAKERS_PARTIAL_FETCH_STARTED';\nexport const VEHICLE_MAKERS_PARTIAL_FETCH_COMPLETED = 'VEHICLE_MAKERS_PARTIAL_FETCH_COMPLETED';\nexport const VEHICLE_MAKERS_PARTIAL_FETCH_FAILED = 'VEHICLE_MAKERS_PARTIAL_FETCH_FAILED';\n\nexport const VEHICLE_MAKER_FETCH_STARTED = 'VEHICLE_MAKER_FETCH_STARTED';\nexport const VEHICLE_MAKER_FETCH_COMPLETED = 'VEHICLE_MAKER_FETCH_COMPLETED';\nexport const VEHICLE_MAKER_FETCH_FAILED = 'VEHICLE_MAKER_FETCH_FAILED';\n\nexport const VEHICLE_MAKER_SELECTED = 'VEHICLE_MAKER_SELECTED';\nexport const VEHICLE_MAKERS_ALL_SELECTED = 'VEHICLE_MAKERS_ALL_SELECTED';\nexport const VEHICLE_MAKER_DESELECTED = 'VEHICLE_MAKER_DESELECTED';\nexport const VEHICLE_MAKERS_ALL_DESELECTED = 'VEHICLE_MAKERS_ALL_DESELECTED';\n","export const VEHICLE_MODELS_FETCH_STARTED = 'VEHICLE_MODELS_FETCH_STARTED';\nexport const VEHICLE_MODELS_FETCH_COMPLETED = 'VEHICLE_MODELS_FETCH_COMPLETED';\nexport const VEHICLE_MODELS_FETCH_FAILED = 'VEHICLE_MODELS_FETCH_FAILED';\n\nexport const VEHICLE_MODELS_PARTIAL_FETCH_STARTED = 'VEHICLE_MODELS_PARTIAL_FETCH_STARTED';\nexport const VEHICLE_MODELS_PARTIAL_FETCH_COMPLETED = 'VEHICLE_MODELS_PARTIAL_FETCH_COMPLETED';\nexport const VEHICLE_MODELS_PARTIAL_FETCH_FAILED = 'VEHICLE_MODELS_PARTIAL_FETCH_FAILED';\n\nexport const VEHICLE_MODEL_FETCH_STARTED = 'VEHICLE_MODEL_FETCH_STARTED';\nexport const VEHICLE_MODEL_FETCH_COMPLETED = 'VEHICLE_MODEL_FETCH_COMPLETED';\nexport const VEHICLE_MODEL_FETCH_FAILED = 'VEHICLE_MODEL_FETCH_FAILED';\n\nexport const VEHICLE_MODEL_SELECTED = 'VEHICLE_MODEL_SELECTED';\nexport const VEHICLE_MODELS_ALL_SELECTED = 'VEHICLE_MODELS_ALL_SELECTED';\nexport const VEHICLE_MODEL_DESELECTED = 'VEHICLE_MODEL_DESELECTED';\nexport const VEHICLE_MODELS_ALL_DESELECTED = 'VEHICLE_MODELS_ALL_DESELECTED';\n","export const INSURANCE_COMPANIES_FETCH_STARTED = 'INSURANCE_COMPANIES_FETCH_STARTED';\nexport const INSURANCE_COMPANIES_FETCH_COMPLETED = 'INSURANCE_COMPANIES_FETCH_COMPLETED';\nexport const INSURANCE_COMPANIES_FETCH_FAILED = 'INSURANCE_COMPANIES_FETCH_FAILED';\n\nexport const INSURANCE_COMPANIES_PARTIAL_FETCH_STARTED =\n 'INSURANCE_COMPANIES_PARTIAL_FETCH_STARTED';\nexport const INSURANCE_COMPANIES_PARTIAL_FETCH_COMPLETED =\n 'INSURANCE_COMPANIES_PARTIAL_FETCH_COMPLETED';\nexport const INSURANCE_COMPANIES_PARTIAL_FETCH_FAILED = 'INSURANCE_COMPANIES_PARTIAL_FETCH_FAILED';\n\nexport const INSURANCE_MAKER_FETCH_STARTED = 'INSURANCE_MAKER_FETCH_STARTED';\nexport const INSURANCE_MAKER_FETCH_COMPLETED = 'INSURANCE_MAKER_FETCH_COMPLETED';\nexport const INSURANCE_MAKER_FETCH_FAILED = 'INSURANCE_MAKER_FETCH_FAILED';\n\nexport const INSURANCE_MAKER_SELECTED = 'INSURANCE_MAKER_SELECTED';\nexport const INSURANCE_COMPANIES_ALL_SELECTED = 'INSURANCE_COMPANIES_ALL_SELECTED';\nexport const INSURANCE_MAKER_DESELECTED = 'INSURANCE_MAKER_DESELECTED';\nexport const INSURANCE_COMPANIES_ALL_DESELECTED = 'INSURANCE_COMPANIES_ALL_DESELECTED';\n","export const INSURANCE_AGENTS_FETCH_STARTED = 'INSURANCE_AGENTS_FETCH_STARTED';\nexport const INSURANCE_AGENTS_FETCH_COMPLETED = 'INSURANCE_AGENTS_FETCH_COMPLETED';\nexport const INSURANCE_AGENTS_FETCH_FAILED = 'INSURANCE_AGENTS_FETCH_FAILED';\n\nexport const INSURANCE_AGENTS_PARTIAL_FETCH_STARTED = 'INSURANCE_AGENTS_PARTIAL_FETCH_STARTED';\nexport const INSURANCE_AGENTS_PARTIAL_FETCH_COMPLETED = 'INSURANCE_AGENTS_PARTIAL_FETCH_COMPLETED';\nexport const INSURANCE_AGENTS_PARTIAL_FETCH_FAILED = 'INSURANCE_AGENTS_PARTIAL_FETCH_FAILED';\n\nexport const INSURANCE_AGENT_FETCH_STARTED = 'INSURANCE_AGENT_FETCH_STARTED';\nexport const INSURANCE_AGENT_FETCH_COMPLETED = 'INSURANCE_AGENT_FETCH_COMPLETED';\nexport const INSURANCE_AGENT_FETCH_FAILED = 'INSURANCE_AGENT_FETCH_FAILED';\n\nexport const INSURANCE_AGENT_SELECTED = 'INSURANCE_AGENT_SELECTED';\nexport const INSURANCE_AGENTS_ALL_SELECTED = 'INSURANCE_AGENTS_ALL_SELECTED';\nexport const INSURANCE_AGENT_DESELECTED = 'INSURANCE_AGENT_DESELECTED';\nexport const INSURANCE_AGENTS_ALL_DESELECTED = 'INSURANCE_AGENTS_ALL_DESELECTED';\n","import * as types from '../types';\n\nexport const startFetchingSims = (filters = {}) => ({\n type: types.SIMS_FETCH_STARTED,\n payload: { filters }\n});\nexport const completeFetchingSims = (\n entities,\n order,\n operatorId,\n organizationId,\n divisionId = null,\n subdivisionId = null\n) => ({\n type: types.SIMS_FETCH_COMPLETED,\n payload: {\n entities,\n order,\n operatorId,\n organizationId,\n divisionId,\n subdivisionId\n }\n});\nexport const failFetchingSims = (error = { errorMessage: 'Error', errorNumber: 404 }) => ({\n type: types.SIMS_FETCH_FAILED,\n payload: {\n error //error:{errorMessage:'Error', errorNumber:400}\n }\n});\n\nexport const startPartialFetchingSims = (\n entityTypeId,\n operatorId = null,\n organizationId = null,\n divisionId = null,\n subdivisionId = null,\n allowNullOrganizationId\n) => ({\n type: types.SIMS_PARTIAL_FETCH_STARTED,\n payload: {\n entityTypeId,\n operatorId,\n organizationId,\n divisionId,\n subdivisionId,\n allowNullOrganizationId\n }\n});\nexport const completePartialFetchingSims = (\n entities,\n order,\n operatorId,\n organizationId,\n divisionId = null,\n subdivisionId = null\n) => ({\n type: types.SIMS_PARTIAL_FETCH_COMPLETED,\n payload: {\n entities,\n order,\n operatorId,\n organizationId,\n divisionId,\n subdivisionId\n }\n});\nexport const failPartialFetchingSims = (error = { errorMessage: 'Error', errorNumber: 404 }) => ({\n type: types.SIMS_PARTIAL_FETCH_FAILED,\n payload: {\n error //error:{errorMessage:'Error', errorNumber:400}\n }\n});\n\nexport const startAddingSim = (sim) => ({\n type: types.SIM_ADD_STARTED,\n payload: sim\n});\nexport const completeAddingSim = (oldId, sim) => ({\n type: types.SIM_ADD_COMPLETED,\n payload: { oldId, sim }\n});\nexport const failAddingSim = (oldId, error) => ({\n type: types.SIM_ADD_FAILED,\n payload: {\n oldId,\n error\n }\n});\n\nexport const startEditingSim = (sim) => ({\n type: types.SIM_EDIT_STARTED,\n payload: sim\n});\nexport const completeEditingSim = (sim) => ({\n type: types.SIM_EDIT_COMPLETED,\n payload: sim\n});\nexport const failEditingSim = (oldSim, error) => ({\n type: types.SIM_EDIT_FAILED,\n payload: {\n oldSim,\n error\n }\n});\n\nexport const startRemovingSim = (simId) => ({\n type: types.SIM_REMOVE_STARTED,\n payload: {\n simId\n }\n});\nexport const completeRemovingSim = (simId) => ({\n type: types.SIM_REMOVE_COMPLETED,\n payload: {\n simId\n }\n});\nexport const failRemovingSim = (simId, error) => ({\n type: types.SIM_REMOVE_FAILED,\n payload: {\n simId,\n error\n }\n});\n\nexport const selectSim = (simId) => ({\n type: types.SIM_SELECTED,\n payload: simId\n});\n\nexport const selectAllSims = (\n simIds = [] //List of SimIds\n) => ({\n type: types.SIMS_ALL_SELECTED,\n payload: simIds\n});\n\nexport const deselectSim = (simId) => ({\n type: types.SIM_DESELECTED,\n payload: simId\n});\n\nexport const deselectAllSims = (\n simIds = [] //List of SimIds\n) => ({\n type: types.SIMS_ALL_DESELECTED,\n payload: simIds\n});\n","export const HANDLE_SEARCH_QUERY = \"HANDLE_SEARCH_QUERY\";\n\nexport const GET_BOOKMARKS_FETCH_STARTED = \"GET_BOOKMARKS_FETCH_STARTED\";\nexport const GET_BOOKMARKS_FETCH_COMPLETED = \"GET_BOOKMARKS_FETCH_COMPLETED\";\nexport const GET_BOOKMARKS_FETCH_FAILED = \"GET_BOOKMARKS_FETCH_FAILED\";\n\nexport const UPDATE_BOOKMARKED_STARTED = \"UPDATE_BOOKMARKED_STARTED\";\nexport const UPDATE_BOOKMARKED_COMPLETED = \"UPDATE_BOOKMARKED_COMPLETED\";\nexport const UPDATE_BOOKMARKED_FAILED = \"UPDATE_BOOKMARKED_FAILED\";\n","import { LatLngBoundsExpression } from 'leaflet';\nimport { useEffect } from 'react';\n\nexport const useScript = (url) => {\n useEffect(() => {\n let script;\n try {\n if ($(`script[src=\"${url}\"]`).length === 0) {\n script = document.createElement('script');\n script.src = url;\n script.async = true;\n document.body.appendChild(script);\n }\n } catch {}\n }, [url]);\n};\n\nexport const getRectBoundsFromLatLng = (latitude, longitude, radius): LatLngBoundsExpression => {\n var dy = radius; //radius in meters\n dy = (dy * 90) / 10002069; //10,000Km es la distancia media del ecuador al polo sobre el meridiano (90grad)\n var dx = Math.cos((latitude * Math.PI) / 180) * 40075000; //40,075Km es circunferencia en el ecuador\n dx = (radius * 360) / dx; //--la dx cambia segun la latitud\n var maxlat = latitude + dy;\n var maxlon = longitude + dx;\n var minlat = latitude - dy;\n var minlon = longitude - dx;\n\n var bounds = {\n minLatitude: minlat,\n minLongitude: minlon,\n maxLatitude: maxlat,\n maxLongitude: maxlon\n };\n return [\n [bounds.minLatitude, bounds.minLongitude],\n [bounds.maxLatitude, bounds.maxLongitude]\n ];\n};\nexport const getIsInnerGeoreferenceFromLatLng = (latitude, longitude, radius, unitPositions) => {\n var dy = radius; //radius in meters\n dy = (dy * 90) / 10002069; //10,000Km es la distancia media del ecuador al polo sobre el meridiano (90grad)\n var dx = Math.cos((latitude * Math.PI) / 180) * 40075000; //40,075Km es circunferencia en el ecuador\n dx = (radius * 360) / dx; //--la dx cambia segun la latitud\n var maxlat = latitude + dy;\n var maxlon = longitude + dx;\n var minlat = latitude - dy;\n var minlon = longitude - dx;\n\n var bounds = {\n minLatitude: minlat,\n minLongitude: minlon,\n maxLatitude: maxlat,\n maxLongitude: maxlon\n };\n const matches = unitPositions.filter((unitPosition) => {\n if (\n unitPosition?.latitude >= bounds.minLatitude &&\n unitPosition?.latitude <= bounds.maxLatitude\n ) {\n return unitPosition;\n }\n });\n\n return { matches: matches, matchStatus: matches.length > 0 };\n\n /* return [\n [bounds.minLatitude, bounds.minLongitude],\n [bounds.maxLatitude, bounds.maxLongitude]\n ]; */\n};\n\nexport const getRectangleFromLatLng = (latitude, longitude, radius) => {\n var dy = radius; //radius in meters\n dy = (dy * 90) / 10002069; //10,000Km es la distancia media del ecuador al polo sobre el meridiano (90grad)\n var dx = Math.cos((latitude * Math.PI) / 180) * 40075000; //40,075Km es circunferencia en el ecuador\n dx = (radius * 360) / dx; //--la dx cambia segun la latitud\n var maxlat = latitude + dy;\n var maxlon = longitude + dx;\n var minlat = latitude - dy;\n var minlon = longitude - dx;\n\n var bounds = {\n minLatitude: minlat,\n minLongitude: minlon,\n maxLatitude: maxlat,\n maxLongitude: maxlon\n };\n return [\n [bounds.minLatitude, bounds.minLongitude],\n [bounds.minLatitude, bounds.maxLongitude],\n [bounds.maxLatitude, bounds.maxLongitude],\n [bounds.maxLatitude, bounds.minLongitude],\n [bounds.minLatitude, bounds.minLongitude]\n ];\n};\n\nexport const getTriangleFromLatLng = (latitude, longitude, radius) => {\n var dy = radius; //radius in meters\n dy = (dy * 90) / 10002069; //10,000Km es la distancia media del ecuador al polo sobre el meridiano (90grad)\n var dx = Math.cos((latitude * Math.PI) / 180) * 40075000; //40,075Km es circunferencia en el ecuador\n dx = (radius * 360) / dx; //--la dx cambia segun la latitud\n var maxlat = latitude + dy;\n var maxlon = longitude + dx;\n var minlat = latitude - dy;\n var minlon = longitude - dx;\n\n var bounds = {\n minLatitude: minlat,\n minLongitude: minlon,\n maxLatitude: maxlat,\n maxLongitude: maxlon\n };\n return [\n [bounds.minLatitude, bounds.minLongitude],\n [bounds.minLatitude, bounds.maxLongitude],\n [bounds.maxLatitude, bounds.maxLongitude],\n [bounds.minLatitude, bounds.minLongitude]\n ];\n};\n","import { combineReducers } from 'redux';\n\nimport omit from 'lodash/omit';\nimport union from 'lodash/union';\nimport forEach from 'lodash/forEach';\nimport uniq from 'lodash/uniq';\n\nimport * as types from 'views/screens/Contacts/types';\nimport monitoringUsers from 'views/screens/Users/reducers';\nimport configurations from 'views/../redux/reducers/configurations';\nimport * as authTypes from 'views/../redux/types/auth';\n\nconst byId = (state = {}, action) => {\n switch (action.type) {\n //TYPES COMPLETED FETCH, ADD AND EDIT\n case types.CONTACTS_FETCH_COMPLETED:\n case types.CONTACTS_PARTIAL_FETCH_COMPLETED: {\n const { entities, order } = action.payload;\n const newState = { ...state };\n order.forEach((contactId) => {\n newState[contactId] = {\n isSelected: false,\n ...entities[contactId],\n isConfirmed: true\n };\n });\n return newState;\n }\n\n case types.CONTACT_ADD_COMPLETED: {\n const { oldId, contact } = action.payload;\n const newState = omit(state, oldId);\n newState[contact.contactId] = {\n ...state[oldId],\n ...contact,\n isConfirmed: true\n };\n return newState;\n }\n\n case types.CONTACT_EDIT_COMPLETED: {\n const contact = action.payload;\n\n const newState = {\n ...state,\n [contact.contactId]: {\n ...omit(state[contact.contactId], ['oldContact']),\n ...omit(contact, ['oldContact']),\n isConfirmed: true,\n isSelected: true\n }\n };\n\n return contact.originalContactId && contact.originalContactId != contact.contactId\n ? omit(newState, [contact.originalContactId])\n : newState;\n }\n\n case types.CONTACT_ADD_STARTED: {\n const contact = action.payload;\n const newState = { ...state };\n newState[contact.contactId] = {\n isSelected: contact.isSelected ?? false,\n ...contact,\n isConfirmed: false\n };\n return newState;\n }\n\n case types.CONTACT_EDIT_STARTED: {\n const contact = action.payload;\n return {\n ...state,\n [contact.contactId]: {\n ...state[contact.contactId],\n oldContact: state[contact.contactId],\n ...contact,\n isConfirmed: false\n }\n };\n }\n\n case types.CONTACT_ADD_FAILED: {\n const { oldId } = action.payload;\n if (state[oldId]) {\n return omit(state, oldId);\n }\n return state;\n }\n\n case types.CONTACT_FETCH_COMPLETED: {\n const contact = action.payload;\n const newState = { ...state };\n newState[contact.contactId] = {\n isSelected: false,\n ...state[contact.contactId],\n ...contact,\n isConfirmed: true\n };\n return newState;\n }\n\n //TYPES SELECTED AND DESELECTED\n case types.CONTACT_SELECTED: {\n const contactId = action.payload;\n const newState = {\n ...state,\n [contactId]: {\n ...state[contactId],\n isSelected: true\n }\n };\n return newState;\n }\n\n case types.CONTACT_DESELECTED: {\n const contactId = action.payload;\n return {\n ...state,\n [contactId]: {\n ...state[contactId],\n isSelected: false\n }\n };\n }\n\n case types.CONTACTS_ALL_SELECTED: {\n const contactIds = action.payload;\n const newState = { ...state };\n if (contactIds.length == 0) {\n forEach(state, (contact: any, contactId) => {\n newState[contactId] = {\n ...contact,\n isSelected: true\n };\n });\n } else {\n contactIds.forEach((contactId) => {\n newState[contactId] = {\n ...state[contactId],\n isSelected: true\n };\n });\n }\n\n return newState;\n }\n\n case types.CONTACTS_ALL_DESELECTED: {\n const contactIds = action.payload;\n const newState = { ...state };\n if (contactIds.length == 0) {\n forEach(state, (contact: any, contactId) => {\n newState[contactId] = {\n ...contact,\n isSelected: false\n };\n });\n } else {\n contactIds.forEach((contactId) => {\n newState[contactId] = {\n ...state[contactId],\n isSelected: false\n };\n });\n }\n\n return newState;\n }\n\n //TYPES REMOVE COMPLETED\n case types.CONTACT_REMOVE_COMPLETED: {\n const { contacts } = action.payload;\n return omit(state, contacts);\n }\n\n //DEFAULT\n default: {\n return state;\n }\n }\n};\n\nconst order = (state = [], action) => {\n switch (action.type) {\n //CASE COMPLETED FETCH, ADD AND REMOVE\n case types.CONTACTS_FETCH_COMPLETED: {\n const { order } = action.payload;\n return union(order);\n }\n\n case types.CONTACTS_PARTIAL_FETCH_COMPLETED: {\n const { order } = action.payload;\n return uniq([...state, ...order]);\n }\n case types.CONTACT_ADD_COMPLETED: {\n const { oldId, contact } = action.payload;\n return state.map((contactId) => (contactId === oldId ? contact.contactId : contactId));\n }\n\n //CASE ADD STARTED\n case types.CONTACT_ADD_STARTED: {\n const contact = action.payload;\n return [...state, contact.contactId];\n }\n\n //CASE ADD FAILED\n case types.CONTACT_ADD_FAILED: {\n const { oldId } = action.payload;\n return state.filter((contactIdState) => contactIdState !== oldId);\n }\n\n //Edit COMPLETED\n case types.CONTACT_EDIT_COMPLETED: {\n const contact = action.payload;\n return contact.originalContactId && contact.originalContactId != contact.contactId\n ? state.filter((contactIdState) => contact.originalContactId != contactIdState)\n : state;\n }\n\n //TYPES REMOVE COMPLETED\n case types.CONTACT_REMOVE_COMPLETED: {\n const { contacts } = action.payload;\n return state.filter((contactIdState) => contacts.indexOf(contactIdState) < 0);\n }\n\n //DEFAULT\n default: {\n return state;\n }\n }\n};\n\n// STATES TO KNOW IF IT IS FETCHING, ADDING OR EDITING\nconst isFetchingList = (state = false, action) => {\n switch (action.type) {\n case types.CONTACTS_FETCH_STARTED: {\n return true;\n }\n case types.CONTACTS_FETCH_COMPLETED:\n case types.CONTACTS_FETCH_FAILED: {\n return false;\n }\n default: {\n return state;\n }\n }\n};\n\nconst isFetching = (state = false, action) => {\n switch (action.type) {\n case types.CONTACT_FETCH_STARTED: {\n return true;\n }\n case types.CONTACT_FETCH_COMPLETED:\n case types.CONTACT_FETCH_FAILED: {\n return false;\n }\n default: {\n return state;\n }\n }\n};\n\nconst isAdding = (state = false, action) => {\n switch (action.type) {\n case authTypes.AUTHENTICATION_IDENTITY_CLEARED: {\n return false;\n }\n case types.CONTACT_ADD_STARTED: {\n return true;\n }\n case types.CONTACT_ADD_COMPLETED:\n case types.CONTACT_ADD_FAILED: {\n return false;\n }\n default: {\n return state;\n }\n }\n};\n\nconst isEditing = (state = false, action) => {\n switch (action.type) {\n case authTypes.AUTHENTICATION_IDENTITY_CLEARED: {\n return false;\n }\n case types.CONTACT_EDIT_STARTED: {\n return true;\n }\n case types.CONTACT_EDIT_COMPLETED:\n case types.CONTACT_EDIT_FAILED: {\n return false;\n }\n default: {\n return state;\n }\n }\n};\n\nconst isRemoving = (state = false, action) => {\n switch (action.type) {\n case authTypes.AUTHENTICATION_IDENTITY_CLEARED: {\n return false;\n }\n case types.CONTACT_REMOVE_STARTED: {\n return true;\n }\n case types.CONTACT_REMOVE_COMPLETED:\n case types.CONTACT_REMOVE_FAILED: {\n return false;\n }\n default: {\n return state;\n }\n }\n};\n\nconst errorFetchingList = (state = null, action) => {\n switch (action.type) {\n case types.CONTACTS_FETCH_FAILED: {\n const { error } = action.payload;\n return error;\n }\n case types.CONTACTS_FETCH_STARTED:\n case types.CONTACTS_FETCH_COMPLETED: {\n return null;\n }\n default: {\n return state;\n }\n }\n};\n\nconst errorFetching = (state = null, action) => {\n switch (action.type) {\n case types.CONTACT_FETCH_FAILED: {\n const { error } = action.payload;\n return error;\n }\n case types.CONTACT_FETCH_STARTED:\n case types.CONTACT_FETCH_COMPLETED: {\n return null;\n }\n default: {\n return state;\n }\n }\n};\n\nconst errorAdding = (state = null, action) => {\n switch (action.type) {\n case authTypes.AUTHENTICATION_IDENTITY_CLEARED: {\n return null;\n }\n case types.CONTACT_ADD_FAILED: {\n const { error } = action.payload;\n return error;\n }\n case types.CONTACT_ADD_STARTED:\n case types.CONTACT_ADD_COMPLETED: {\n return null;\n }\n default: {\n return state;\n }\n }\n};\n\nconst errorEditing = (state = null, action) => {\n switch (action.type) {\n case authTypes.AUTHENTICATION_IDENTITY_CLEARED: {\n return null;\n }\n case types.CONTACT_EDIT_FAILED: {\n const { error } = action.payload;\n return error;\n }\n case types.CONTACT_EDIT_STARTED:\n case types.CONTACT_EDIT_COMPLETED: {\n return null;\n }\n default: {\n return state;\n }\n }\n};\n\nconst errorRemoving = (state = null, action) => {\n switch (action.type) {\n case authTypes.AUTHENTICATION_IDENTITY_CLEARED: {\n return null;\n }\n case types.CONTACT_REMOVE_FAILED: {\n const { error } = action.payload;\n return error;\n }\n case types.CONTACT_REMOVE_STARTED:\n case types.CONTACT_REMOVE_COMPLETED: {\n return null;\n }\n default: {\n return state;\n }\n }\n};\n\nconst contacts = combineReducers({\n byId,\n order,\n isFetching,\n isFetchingList,\n isAdding,\n isEditing,\n isRemoving,\n errorFetching,\n errorFetchingList,\n errorAdding,\n errorEditing,\n errorRemoving,\n configurations\n});\n\nconst people = combineReducers({\n contacts,\n monitoringUsers\n});\n\nexport default people;\n\n//Own state\nexport const getOwnState = (state) => state.people.contacts;\n\n//Information\nexport const getContact = (state, contactId) => getOwnState(state).byId[contactId];\nexport const getContactsList = (state) =>\n getOwnState(state).order.map((id) => getContact(state, id));\nexport const getContactsSpecificList = (state, list) => list.map((id) => getContact(state, id));\nexport const getSelectedContacts = (state) => {\n const selectedContacts = getContactsList(state).filter((contact) => contact.isSelected);\n //Si no se selecciona ninguno devuelve null\n if (selectedContacts.length === 0) return null;\n //Si se selecciona mĆ”s de cero se devuelve el arreglo de los seleccionados\n if (selectedContacts.length > 0) return selectedContacts;\n};\nexport const getContactsFromBrand = (state, brandId) =>\n getContactsList(state).filter((contact) => contact.brandId === brandId);\n\nexport const getSelectedContact = (state) => {\n const selectedContacts = getContactsList(state).filter((contact) => contact.isSelected);\n //Si se selecciona solo uno devuelve solo el seleccionado\n if (selectedContacts.length === 1) return selectedContacts[0];\n //De lo contrario se devuelve null\n else return null;\n};\n\n//Status of sagas\nexport const isFetchingContact = (state) => getOwnState(state).isFetching;\nexport const isFetchingListContacts = (state) => getOwnState(state).isFetchingList;\nexport const isEditingContact = (state) => getOwnState(state).isEditing;\nexport const isAddingContact = (state) => getOwnState(state).isAdding;\nexport const isRemovingContact = (state) => getOwnState(state).isRemoving;\n\n//Errors\nexport const getFetchingContactErrors = (state) => getOwnState(state).errorFetching;\nexport const getFetchingListContactsErrors = (state) => getOwnState(state).errorFetchingList;\n","import * as types from '../types';\n\nexport const startFetchingMaintenanceLines = (filters = {}) => ({\n type: types.MAINTENANCE_LINES_FETCH_STARTED,\n payload: filters\n});\nexport const completeFetchingMaintenanceLines = (entities, order, operatorId, organizationId) => ({\n type: types.MAINTENANCE_LINES_FETCH_COMPLETED,\n payload: {\n entities,\n order,\n operatorId,\n organizationId\n }\n});\nexport const failFetchingMaintenanceLines = (\n error = { errorMessage: 'Error', errorNumber: 404 }\n) => ({\n type: types.MAINTENANCE_LINES_FETCH_FAILED,\n payload: {\n error //error:{errorMessage:'Error', errorNumber:400}\n }\n});\n\nexport const startPartialFetchingMaintenanceLines = (\n entityTypeId,\n operatorId = null,\n organizationId = null\n) => ({\n type: types.MAINTENANCE_LINES_PARTIAL_FETCH_STARTED,\n payload: { entityTypeId, operatorId, organizationId }\n});\nexport const completePartialFetchingMaintenanceLines = (\n entities,\n order,\n operatorId,\n organizationId\n) => ({\n type: types.MAINTENANCE_LINES_PARTIAL_FETCH_COMPLETED,\n payload: {\n entities,\n order,\n operatorId,\n organizationId\n }\n});\nexport const failPartialFetchingMaintenanceLines = (\n error = { errorMessage: 'Error', errorNumber: 404 }\n) => ({\n type: types.MAINTENANCE_LINES_PARTIAL_FETCH_FAILED,\n payload: {\n error //error:{errorMessage:'Error', errorNumber:400}\n }\n});\n\nexport const startAddingMaintenanceLine = (maintenanceLine) => ({\n type: types.MAINTENANCE_LINE_ADD_STARTED,\n payload: maintenanceLine\n});\nexport const completeAddingMaintenanceLine = (oldId, maintenanceLine) => ({\n type: types.MAINTENANCE_LINE_ADD_COMPLETED,\n payload: { oldId, maintenanceLine }\n});\nexport const failAddingMaintenanceLine = (oldId, error) => ({\n type: types.MAINTENANCE_LINE_ADD_FAILED,\n payload: {\n oldId,\n error\n }\n});\n\nexport const startEditingMaintenanceLine = (maintenanceLine) => ({\n type: types.MAINTENANCE_LINE_EDIT_STARTED,\n payload: maintenanceLine\n});\nexport const completeEditingMaintenanceLine = (maintenanceLine) => ({\n type: types.MAINTENANCE_LINE_EDIT_COMPLETED,\n payload: maintenanceLine\n});\nexport const failEditingMaintenanceLine = (oldMaintenanceLine, error) => ({\n type: types.MAINTENANCE_LINE_EDIT_FAILED,\n payload: {\n oldMaintenanceLine,\n error\n }\n});\n\nexport const startRemovingMaintenanceLine = (maintenanceLineId: number) => ({\n type: types.MAINTENANCE_LINE_REMOVE_STARTED,\n payload: {\n maintenanceLineId\n }\n});\nexport const completeRemovingMaintenanceLine = (maintenanceLineId) => ({\n type: types.MAINTENANCE_LINE_REMOVE_COMPLETED,\n payload: {\n maintenanceLineId\n }\n});\nexport const failRemovingMaintenanceLine = (maintenanceLineId, error) => ({\n type: types.MAINTENANCE_LINE_REMOVE_FAILED,\n payload: {\n maintenanceLineId,\n error\n }\n});\n\nexport const startCopyMaintenanceLine = (maintenanceLine) => ({\n type: types.MAINTENANCE_LINE_COPY_STARTED,\n payload: maintenanceLine\n});\nexport const completeCopyMaintenanceLine = (maintenanceLine) => ({\n type: types.MAINTENANCE_LINE_COPY_COMPLETED,\n payload: maintenanceLine\n});\nexport const failCopyMaintenanceLine = (error) => ({\n type: types.MAINTENANCE_LINE_COPY_FAILED,\n payload: {\n error\n }\n});\n\nexport const selectMaintenanceLine = (maintenanceLineId) => ({\n type: types.MAINTENANCE_LINE_SELECTED,\n payload: maintenanceLineId\n});\n\nexport const selectAllMaintenanceLines = (\n maintenanceLineIds = [] //List of MaintenanceLineIds\n) => ({\n type: types.MAINTENANCE_LINES_ALL_SELECTED,\n payload: maintenanceLineIds\n});\n\nexport const deselectMaintenanceLine = (maintenanceLineId) => ({\n type: types.MAINTENANCE_LINE_DESELECTED,\n payload: maintenanceLineId\n});\n\nexport const deselectAllMaintenanceLines = (\n maintenanceLineIds = [] //List of MaintenanceLineIds\n) => ({\n type: types.MAINTENANCE_LINES_ALL_DESELECTED,\n payload: maintenanceLineIds\n});\n","export const BRANDS_FETCH_STARTED = 'BRANDS_FETCH_STARTED';\nexport const BRANDS_FETCH_COMPLETED = 'BRANDS_FETCH_COMPLETED';\nexport const BRANDS_FETCH_FAILED = 'BRANDS_FETCH_FAILED';\n","/* -------------------------------------------------------------------------- */\n/* Componente DateInput */\n/* -------------------------------------------------------------------------- */\n// Este componente contiene un date input genĆ©rico que se utiliza en muchas pantallas de la aplicaciĆ³n.\n\nimport { english } from 'flatpickr/dist/l10n/default';\nimport { Spanish } from 'flatpickr/dist/l10n/es';\nimport moment from 'moment';\nimport { useRef, useState } from 'react';\nimport { Calendar, XSquare } from 'react-feather';\nimport Flatpickr from 'react-flatpickr';\nimport { FormattedMessage, useIntl } from 'react-intl';\nimport {\n Col,\n FormGroup,\n Label,\n PopoverBody,\n Row,\n UncontrolledPopover,\n UncontrolledTooltip,\n InputGroupText,\n InputGroup\n} from 'reactstrap';\n\ninterface Props {\n field: any;\n fieldstate: any;\n errorMessage?: boolean;\n required?: boolean;\n maxDate?: Date | string;\n minDate?: Date | string;\n popoverBody?: any;\n isRange?: boolean;\n showTime?: boolean;\n enableTime?: boolean;\n onChange?: (date?: string | [string, string] | null) => void;\n label?: any;\n allowNulls?: boolean;\n disabled?: boolean;\n defaultHour?: number;\n defaultMinute?: number;\n additionalTimeProps?: any; // to pass additional props to the time picker as minHour/minMinute\n}\n\nconst DateInput = (props: Props) => {\n const {\n field,\n fieldstate,\n errorMessage,\n required,\n allowNulls = false,\n maxDate,\n popoverBody,\n onChange,\n minDate,\n isRange,\n showTime,\n enableTime,\n label,\n disabled,\n defaultHour = 11,\n defaultMinute = 11,\n additionalTimeProps = {}\n } = props;\n const intl = useIntl();\n const startRef = useRef({});\n const startButtonRef = useRef({});\n const endRef = useRef({});\n const endButtonRef = useRef({});\n const ref = useRef({});\n const [prevValue, setPrevValue] = useState([]);\n const [prevValueRange, setPrevValueRange] = useState([]);\n\n return (\n \n \n \n \n \n {isRange && enableTime && (\n <>\n
\n {\n if (field.value?.length == 2)\n startRef.current.flatpickr.open(undefined, startButtonRef.current);\n else ref.current.flatpickr.open();\n }}\n >\n \n \n
\n {\n field.onChange([moment(value[0]).format('YYYY-MM-DD HH:mm'), field.value[1]]);\n }}\n options={{\n locale: intl.locale === 'es' ? Spanish : english,\n dateFormat: showTime ? 'Y-m-d H:i' : 'Y-m-d',\n minDate: minDate,\n maxDate: field.value?.length == 2 ? field.value[1] : undefined,\n enableTime: true,\n mode: 'single',\n defaultHour: defaultHour,\n defaultMinute: defaultMinute,\n ...additionalTimeProps\n }}\n className={'d-none'}\n />\n \n {intl.formatMessage({ id: 'common.startDate' })}\n \n \n )}\n {\n if (!config.isOpen && isRange && value.length === 1) {\n ref.current.flatpickr.selectedDates = [];\n ref.current.flatpickr.setDate(ref.current.flatpickr.selectedDates);\n } else {\n if (value.length === 1 && !isRange) {\n const date = (\n enableTime ? moment(value[0]) : moment(value[0]).startOf('day')\n ).format(enableTime ? 'YYYY-MM-DD HH:mm' : 'YYYY-MM-DD');\n field.onChange(date);\n if (onChange) onChange(date);\n } else if (value.length === 1 && isRange && enableTime) {\n if (ref.current?.flatpickr) {\n if (prevValue.length < value.length) {\n ref.current.flatpickr.selectedDates[0].setHours(0, 0, 0, 0);\n ref.current.flatpickr.setDate(ref.current.flatpickr.selectedDates);\n } else if (prevValue.length > value.length) {\n ref.current.flatpickr.selectedDates[0].setHours(\n prevValue[0].getHours(),\n prevValue[0].getMinutes(),\n 0,\n 0\n );\n ref.current.flatpickr.setDate(ref.current.flatpickr.selectedDates);\n }\n }\n setPrevValue([...value]);\n } else if (value.length === 2 && isRange) {\n if (ref.current?.flatpickr && enableTime) {\n if (prevValue.length > prevValueRange.length) {\n ref.current.flatpickr.selectedDates[1].setHours(23, 59, 0, 0);\n ref.current.flatpickr.setDate(ref.current.flatpickr.selectedDates);\n } else if (prevValue.length < prevValueRange.length) {\n ref.current.flatpickr.selectedDates[1].setHours(\n prevValueRange[1].getHours(),\n prevValueRange[1].getMinutes(),\n 0,\n 0\n );\n ref.current.flatpickr.setDate(ref.current.flatpickr.selectedDates);\n }\n }\n field.onChange(\n value.map((date, i) => {\n if (!enableTime) {\n if (i === 0)\n return moment(date).startOf('day').format('YYYY-MM-DD HH:mm');\n return moment(date).endOf('day').format('YYYY-MM-DD HH:mm');\n } else return moment(date).format('YYYY-MM-DD HH:mm');\n })\n );\n setPrevValueRange(value);\n setPrevValue([...value]);\n }\n }\n }}\n onClose={(value) => {\n if (!isRange && value.length < 1) field.onChange(null);\n if (isRange && value.length < 2) {\n field.onChange(null);\n setPrevValue([]);\n setPrevValueRange([]);\n }\n }}\n />\n {isRange && enableTime && (\n \n {intl.formatMessage({ id: 'common.dateRange' })}\n
\n {field.value?.length == 2 ? field.value.join(' - ') : undefined}\n
\n )}\n {popoverBody && (\n \n {popoverBody}\n \n )}\n {isRange && enableTime && (\n <>\n {\n field.onChange([field.value[0], moment(value[0]).format('YYYY-MM-DD HH:mm')]);\n }}\n options={{\n locale: intl.locale === 'es' ? Spanish : english,\n dateFormat: showTime ? 'Y-m-d H:i' : 'Y-m-d',\n minDate: field.value?.length == 2 ? field.value[0] : undefined,\n maxDate: maxDate,\n enableTime: true,\n mode: 'single',\n defaultHour: defaultHour,\n defaultMinute: defaultMinute,\n ...additionalTimeProps\n }}\n className={'d-none'}\n />\n
\n {\n if (field.value?.length == 2)\n endRef.current.flatpickr.open(undefined, endButtonRef.current);\n else ref.current.flatpickr.open();\n }}\n >\n \n \n
\n \n {intl.formatMessage({ id: 'common.endDate' })}\n \n \n )}\n
\n \n {allowNulls && (\n \n {\n field.onChange(null);\n if (onChange) onChange(null);\n }}\n />\n \n )}\n
\n {fieldstate.error && (\n
\n {fieldstate.error?.message || errorMessage || (\n \n )}\n
\n )}\n
\n );\n};\n\nDateInput.defaultProps = {\n required: false,\n enableTime: false,\n showTime: true,\n disabled: false\n};\n\nexport default DateInput;\n","export const CONFIGURATIONS_FETCH_STARTED = 'CONFIGURATIONS_FETCH_STARTED';\nexport const CONFIGURATIONS_FETCH_COMPLETED = 'CONFIGURATIONS_FETCH_COMPLETED';\nexport const CONFIGURATIONS_FETCH_FAILED = 'CONFIGURATIONS_FETCH_FAILED';\n","export const PROVIDERS_FETCH_STARTED = 'PROVIDERS_FETCH_STARTED';\nexport const PROVIDERS_FETCH_COMPLETED = 'PROVIDERS_FETCH_COMPLETED';\nexport const PROVIDERS_FETCH_FAILED = 'PROVIDERS_FETCH_FAILED';\n","export const MODELS_FETCH_STARTED = 'MODELS_FETCH_STARTED';\nexport const MODELS_FETCH_COMPLETED = 'MODELS_FETCH_COMPLETED';\nexport const MODELS_FETCH_FAILED = 'MODELS_FETCH_FAILED';\n","import {\n Aggregate,\n AggregateColumnDirective,\n AggregateColumnsDirective,\n AggregateDirective,\n AggregatesDirective,\n ColumnChooser,\n ColumnDirective,\n ColumnsDirective,\n Edit,\n ExcelExport,\n Filter,\n Freeze,\n GridComponent,\n Group,\n Inject,\n Page,\n Reorder,\n Resize,\n RowDD,\n Search,\n Sort,\n Toolbar,\n VirtualScroll\n} from '@syncfusion/ej2-react-grids';\nimport { TooltipComponent } from '@syncfusion/ej2-react-popups';\nimport { omit } from 'lodash';\nimport { FC, Key, useContext, useEffect, useRef, useState } from 'react';\nimport { useSelector } from 'react-redux';\nimport { Col, Row, Spinner } from 'reactstrap';\nimport useDeepCompareEffect from 'use-deep-compare-effect';\nimport { appIntl } from '../../../utility/context/IntlGlobalProvider';\n// ** Internationalization Context\nimport { ToolbarItems } from '@syncfusion/ej2-react-grids';\nimport { TableColumn } from 'utility/types';\nimport * as authSelectors from '../../../redux/reducers/auth';\nimport { IntlContext } from '../../../utility/context/Internationalization';\n\n/**\n * Componente \"tonto\" para mostrar tablas en catĆ”logos\n * Props:\n * columns:\n * Una lista de objetos con la informaciĆ³n de las columnas, cada objeto debe tener fieldName y columnName\n * Por defecto, la tabla ordenarĆ” segĆŗn el primer parĆ”metro, para usar el orden por defecto debe pasarse el prop allowSorting=false\n * data:\n * Una lista de objetos con la informaciĆ³n a presentar\n * onSelect:\n * FunciĆ³n para manejar la acciĆ³n cuando se selecciona un Ć­tem, recibe un parĆ”metro, el objeto seleccionado\n * onDeselect:\n * Equivalente a onSelect, maneja la acciĆ³n de deseleccionar\n */\n\ninterface SortedColumn {\n sortedColumnIndex: number;\n direction: 'Ascending' | 'Descending';\n}\n\ninterface Props {\n setTableRef?: (value: GridComponent | null) => void;\n id?: string;\n version?: number;\n enablePersistence?: boolean;\n toolbarOptions?: ToolbarItems[];\n toolbarClick?: any;\n omitPersistenceKeys?: string[];\n enableVirtualization?: boolean;\n rerender?: Date | Key;\n selectAll?: Date | Key;\n deselectAll?: Date | Key;\n columns: TableColumn[];\n initialFilterColumns?: any[];\n sortSettings?: any;\n sortedColumn?: SortedColumn;\n data: any[];\n actionSave?: (value: any) => any;\n onDrop?: Function;\n onSelect?: Function;\n onDeselect?: Function;\n selected?: any;\n changeSelected?: Function;\n rerenderSelected?: Date;\n isFetching?: boolean;\n allowSorting?: boolean;\n allowRowDragAndDrop?: boolean;\n allowPaging?: boolean;\n pageSize?: number;\n allowResizing?: boolean;\n allowReordering?: boolean;\n allowFiltering?: boolean;\n allowMultipleSelection?: boolean;\n allowExcelExport?: boolean;\n initialSelectedRowIndex?: number;\n persistSelectIndexes?: boolean;\n frozenColumns?: number;\n height?: number;\n allowGrouping?: boolean;\n groupSettings?: any;\n allowDeleting?: boolean;\n}\n\nconst Table: FC = (props) => {\n const { isFetching } = props;\n\n return !isFetching ? (\n \n ) : (\n \n \n \n \n \n );\n};\nconst TableComponent = (props: Props) => {\n const {\n id,\n version,\n enablePersistence,\n omitPersistenceKeys,\n enableVirtualization,\n columns,\n rerender,\n selectAll,\n deselectAll,\n initialFilterColumns,\n sortSettings = undefined,\n data,\n actionSave,\n onDrop,\n onSelect,\n onDeselect,\n selected,\n changeSelected,\n rerenderSelected,\n allowSorting,\n allowRowDragAndDrop,\n allowPaging,\n pageSize,\n allowResizing,\n allowReordering,\n allowFiltering,\n allowMultipleSelection,\n sortedColumn,\n frozenColumns,\n initialSelectedRowIndex,\n persistSelectIndexes,\n height,\n toolbarOptions,\n allowExcelExport,\n toolbarClick,\n setTableRef,\n allowGrouping,\n groupSettings\n } = props;\n\n const [state, changeState] = useState(Object);\n const [show, setShow] = useState(true);\n const [locale, setLocale] = useState();\n const stateRef = useRef(state);\n /**\n * Key must be a React.Key type\n * when its a date, javascript automatically converts to key\n */\n const [key, changeKey] = useState(new Date());\n const [tooltip, setTooltip] = useState(null);\n const [tableColumns, setTableColumns] = useState([]);\n const [selectedRowIndexes, setSelectedRowIndexes] = useState([]);\n const [scrollLeft, setScrollLeft] = useState(null);\n const intlContext = useContext(IntlContext);\n const dataTable = data?.map((row, i) => ({\n ...row,\n dataRowTableId: i\n }));\n\n const { user, authSystems } = useSelector((state) => ({\n user: authSelectors?.getAuthUser(state),\n authSystems: authSelectors?.getAuthSystems(state)\n }));\n\n useEffect(() => {\n //Elimina del localStorage las keys que se quieren eliminar\n try {\n if (id && enablePersistence && omitPersistenceKeys && omitPersistenceKeys?.length > 0) {\n const value = window?.localStorage?.getItem('grid' + id);\n if (value) {\n const savedVersion = parseInt(\n JSON?.parse(window?.localStorage?.getItem('grid' + id + '_version') || '0')\n );\n if ((version || 0) === savedVersion) {\n const model = omit(JSON?.parse(value), omitPersistenceKeys);\n window?.localStorage?.setItem('grid' + id, JSON?.stringify(model));\n } else {\n window?.localStorage?.removeItem('grid' + id);\n window?.localStorage?.setItem('grid' + id + '_version', JSON?.stringify(version));\n }\n }\n }\n } catch (error) {\n console.warn('1');\n console.warn(error);\n }\n }, []);\n\n useEffect(() => {\n try {\n if (state) {\n stateRef.current = state;\n }\n //Al cargar por primera vez la tabla se realiza un autoFit de todas las columnas\n if (state?.headerModule && state?.autoFitColumns) {\n state?.autoFitColumns();\n }\n } catch (error) {\n console.warn('2');\n console.warn(error);\n }\n }, [state]);\n\n\n useEffect(() => {\n console.log('testtableColumns', tableColumns);\n //Se setean la columna que se quiere ordenar en la tabla\n try {\n if (\n state?.headerModule &&\n state?.sortSettings &&\n sortedColumn?.sortedColumnIndex &&\n tableColumns?.length > 0 &&\n (state?.sortSettings?.columns?.length === 0 ||\n tableColumns[sortedColumn?.sortedColumnIndex]?.fieldName !==\n state?.sortSettings?.columns[0]?.field ||\n sortedColumn.direction !== state?.sortSettings?.columns[0]?.direction)\n ) {\n state.sortSettings.columns = [\n {\n field: tableColumns[sortedColumn?.sortedColumnIndex]?.fieldName,\n direction: sortedColumn?.direction\n }\n ];\n reset();\n }\n } catch (error) {\n console.warn('3');\n console.warn(error);\n }\n }, [state?.sortSettings, tableColumns?.length, sortedColumn?.sortedColumnIndex]);\n\n useDeepCompareEffect(() => {\n //Se restringe dependiendo del nivel de acceso del usuario\n try {\n if (columns?.length > 0) {\n if (user?.accessLevelId == 11 || user?.accessLevelId == 13) {\n setTableColumns(\n columns\n ?.filter((column) => column !== undefined && column !== null)\n ?.filter(\n (column) => column?.fieldName && !['operatorName']?.includes(column?.fieldName)\n )\n );\n } else if (user?.accessLevelId == 7) {\n setTableColumns(\n columns\n ?.filter((column) => column !== undefined && column !== null)\n ?.filter(\n (column) =>\n column?.fieldName &&\n !['operatorName', 'organizationName']?.includes(column?.fieldName)\n )\n );\n } else if (user?.accessLevelId == 4) {\n setTableColumns(\n columns\n ?.filter((column) => column !== undefined && column !== null)\n ?.filter(\n (column) =>\n column?.fieldName &&\n !['operatorName', 'organizationName', 'divisionName']?.includes(column?.fieldName)\n )\n );\n } else if (user?.accessLevelId == 2 || user?.accessLevelId == 20) {\n setTableColumns(\n columns\n ?.filter((column) => column !== undefined && column !== null)\n ?.filter(\n (column) =>\n column?.fieldName &&\n ![\n 'operatorName',\n 'organizationName',\n 'divisionName',\n 'subdivisionName'\n ]?.includes(column?.fieldName)\n )\n );\n } else if (user?.accessLevelId == 15 || user?.accessLevelId == 9) {\n setTableColumns(columns?.filter((column) => column !== undefined && column !== null));\n }\n }\n } catch (error) {\n //\n console.warn('4');\n console.warn(error);\n }\n }, [user, columns?.length]);\n\n useEffect(() => {\n try {\n if (\n selected &&\n changeSelected &&\n dataTable?.length > 0 &&\n typeof state?.getFilteredRecords === 'function'\n ) {\n if (state?.selectRowsByRange) state?.selectRowsByRange(0, dataTable?.length);\n var selectedRows: any[] = [];\n selectedRows = state?.getFilteredRecords();\n if (selectedRows?.length === 0) {\n const input = document?.getElementById(`${id}_searchbar`);\n if (input) {\n selectedRows = dataTable?.filter((data) =>\n tableColumns\n ?.filter((column) => typeof data[column?.fieldName] === 'string')\n ?.map((column) =>\n data[column?.fieldName]\n ?.toLowerCase()\n ?.trim()\n ?.includes(input['value']?.toLowerCase()?.trim())\n )\n ?.includes(true)\n );\n } else {\n selectedRows = [\n ...selected,\n ...dataTable?.filter(\n (row, i) => !selected?.map((row) => row?.dataRowTableId)?.includes(i)\n )\n ];\n }\n }\n changeSelected(selectedRows);\n }\n } catch (error) {\n console.warn('5');\n console.warn(error);\n }\n }, [selectAll]);\n\n useEffect(() => {\n try {\n if (state?.clearSelection) state?.clearSelection();\n if (selected && changeSelected) {\n changeSelected([]);\n }\n } catch (error) {\n console.warn('6');\n console.warn(error);\n }\n }, [deselectAll]);\n\n // useEffect(() => {\n // try {\n // if (persistSelectIndexes) {\n // if (state?.selectionModule?.selectedRowIndexes?.length > 0) {\n // setSelectedRowIndexes([state?.selectionModule?.selectedRowIndexes, false]);\n // }\n // }\n // reset();\n // } catch (error) {\n // console.warn('7');\n // console.warn(error);\n // }\n // }, [dataTable]);\n\n useEffect(() => {\n try {\n if (locale) {\n setShow(false);\n setTimeout(() => setShow(true), 1000);\n } else {\n setLocale(intlContext?.locale);\n }\n } catch (error) {\n console.warn('8');\n console.warn(error);\n }\n }, [intlContext?.locale]);\n\n const compareDeps = tableColumns?.map((col) => ({\n fieldName: col?.fieldName,\n headerText: col?.headerText,\n hide: col?.hide\n }));\n useDeepCompareEffect(() => {\n try {\n console.log('rerender by tableColumns map');\n reset();\n if (rerender) setTimeout(() => changeKey(rerender), 200);\n } catch (error) {\n console.warn('9');\n console.warn(error);\n }\n }, [rerender, compareDeps]);\n\n useEffect(() => {\n try {\n if (state?.selectRows && selected)\n state?.selectRows(\n selected?.map((object) => {\n return object?.dataRowTableId;\n })\n );\n if (changeSelected) changeSelected(selected);\n } catch (error) {\n console.warn('10');\n console.warn(error);\n }\n }, [rerenderSelected]);\n\n const reset = () => {\n if (scrollLeft) {\n setTimeout(() => {\n stateRef.current.scrollModule['content'].scrollLeft = scrollLeft;\n setScrollLeft(null);\n }, 25);\n }\n /* if (state?.scrollModule?.content?.scrollTop > 0) state.scrollModule.content.scrollTop = 0; */\n if (state?.refresh) state?.refresh();\n const select: any[] = selected;\n if (selected && changeSelected) changeSelected([]);\n };\n\n const select = (event: any) => {\n if (selected && changeSelected) {\n if (Array?.isArray(event?.data)) {\n if (event?.data?.length > 0)\n changeSelected([\n ...selected,\n ...event?.data?.filter(\n (row) => !selected?.map((row) => row?.dataRowTableId)?.includes(row?.dataRowTableId)\n )\n ]);\n else\n changeSelected([\n ...selected,\n ...dataTable?.filter(\n (row, i) =>\n event?.rowIndexes?.includes(i) &&\n !selected?.map((row) => row?.dataRowTableId)?.includes(row?.dataRowTableId)\n )\n ]);\n } else if (event?.data === undefined)\n changeSelected([...selected, ...dataTable?.filter((row, i) => i === event?.rowIndex)]);\n else changeSelected([...selected, event?.data]);\n if (onSelect) onSelect(event);\n }\n };\n\n const deselect = (event: any) => {\n if (selected && changeSelected) {\n if (Array?.isArray(event?.data))\n changeSelected(\n selected?.filter(\n (row) => !event?.data?.map((row) => row?.dataRowTableId)?.includes(row?.dataRowTableId)\n )\n );\n else\n changeSelected(\n selected?.filter(\n (row) =>\n row?.dataRowTableId !==\n (event?.data?.dataRowTableId ?? dataTable[event?.rowIndex]?.dataRowTableId)\n )\n );\n if (onDeselect) onDeselect(event);\n }\n };\n\n const toolbar: ToolbarItems[] | undefined =\n toolbarOptions ??\n (tableColumns && tableColumns?.some((column) => column.allowEditing) ? undefined : ['Search']);\n\n return show ? (\n {\n if (t) {\n setTooltip(t);\n }\n }}\n beforeRender={(arg) => {\n if (arg && tooltip) {\n const target = arg?.target;\n const idColumnTooltip = target?.id;\n const indexColumnTooltip = target?.getAttribute('index') || 0;\n const parent =\n arg?.target?.parentElement?.parentElement?.parentElement?.parentElement?.parentElement\n ?.children[1]?.children[0]?.children[1]?.children[indexColumnTooltip] ||\n arg?.target?.parentElement;\n if (idColumnTooltip && parent) {\n if (tableColumns[idColumnTooltip]?.tooltipColumn) {\n for (let index = 0; index < parent?.childElementCount; index++) {\n const children = parent?.children[index];\n const columnTitle = children?.getAttribute('aria-label');\n if (\n columnTitle &&\n children?.classList?.contains('e-hide') &&\n children\n ?.getAttribute('aria-label')\n ?.includes(tableColumns[idColumnTooltip]?.tooltipColumn)\n ) {\n tooltip.content = children?.innerHTML;\n tooltip.cssClass = children?.innerHTML ? '' : 'hidden-tooltip';\n }\n }\n } else {\n tooltip.content = tableColumns[idColumnTooltip]?.tooltipText;\n tooltip.cssClass = tableColumns[idColumnTooltip]?.tooltipText ? '' : 'hidden-tooltip';\n }\n }\n }\n }}\n >\n {tableColumns?.length > 0 && (\n {\n try {\n if (event && event?.name === 'cellSave') {\n const columns = event?.rowData;\n columns[event?.columnName] = event?.value;\n setScrollLeft(state?.scrollModule?.content?.scrollLeft);\n if (actionSave) actionSave(columns);\n }\n } catch (error) {\n console.warn('cs');\n console.warn(error);\n }\n }}\n rowDrop={(event) => {\n try {\n if (onDrop) onDrop(event);\n } catch (error) {\n console.warn('rd');\n console.warn(error);\n }\n }}\n enablePersistence={enablePersistence}\n enableVirtualization={\n tableColumns &&\n (tableColumns?.some((column) => column?.allowEditing) || dataTable?.length <= 100)\n ? false\n : enableVirtualization\n }\n locale={intlContext?.locale === 'es' ? 'es-US' : intlContext?.locale}\n dataSource={dataTable?.map((row, i) => ({\n ...row,\n ...tableColumns\n ?.filter((col) => col?.type === 'dateTime')\n ?.reduce(\n (obj, item) =>\n Object?.assign(obj, {\n [item?.fieldName]: row[item?.fieldName] ? new Date(row[item?.fieldName]) : null\n }),\n {}\n )\n }))}\n gridLines={'Horizontal'}\n rowSelected={(event) => {\n select(event);\n }}\n rowDeselected={(event) => {\n deselect(event);\n }}\n ref={(ref) => {\n if (setTableRef) setTableRef(ref);\n changeState(ref);\n }}\n allowPaging={allowPaging}\n pageSettings={{\n pageSize: enableVirtualization ? 100 : pageSize,\n currentPage: initialSelectedRowIndex\n ? Math?.ceil((initialSelectedRowIndex + 1) / (pageSize ?? 15))\n : undefined\n }}\n allowResizing={allowResizing}\n allowRowDragAndDrop={allowRowDragAndDrop}\n allowExcelExport={allowExcelExport}\n allowReordering={allowReordering}\n allowFiltering={allowFiltering}\n filterSettings={{\n columns: initialFilterColumns,\n type: 'Menu'\n }}\n allowSorting={allowSorting}\n sortSettings={\n sortSettings\n ? sortSettings\n : tableColumns[0]\n ? {\n columns: [{ field: tableColumns[0]?.fieldName, direction: 'Ascending' }]\n }\n : undefined\n }\n toolbarClick={toolbarClick}\n className={toolbar && toolbar?.length > 0 ? 'grid-round-header' : 'grid-round-header'}\n toolbar={toolbar}\n resizeSettings={{\n mode: 'Auto'\n }}\n selectionSettings={\n allowMultipleSelection\n ? {\n enableSimpleMultiRowSelection: true,\n type: 'Multiple'\n }\n : undefined\n }\n selectedRowIndex={\n initialSelectedRowIndex != null ? initialSelectedRowIndex % (pageSize ?? 15) : undefined\n }\n dataBound={() => {\n try {\n if (selectedRowIndexes?.length > 0 && selectedRowIndexes[0]?.length > 0) {\n if (selectedRowIndexes[1]) {\n state?.selectRows(selectedRowIndexes[0]);\n setSelectedRowIndexes([]);\n } else setSelectedRowIndexes([selectedRowIndexes[0], true]);\n }\n } catch (error) {\n console.warn('dbound');\n console.warn(error);\n }\n }}\n editSettings={{\n allowEditing:\n toolbarOptions?.includes('Edit') ||\n (tableColumns && tableColumns?.some((column) => column?.allowEditing)),\n allowAdding: toolbarOptions?.includes('Add'),\n allowDeleting: toolbarOptions?.includes('Delete'),\n mode: 'Batch'\n }}\n groupSettings={groupSettings}\n allowGrouping={allowGrouping}\n >\n \n {tableColumns?.map((column, i) => \n column?.columns && column?.columns?.length > 0 ? (\n \n stackedColumn?.columns && stackedColumn?.columns?.length > 0\n ? {\n autoFit: true,\n customAttributes: stackedColumn?.customAttributes,\n headerText:\n (stackedColumn?.staticText ||\n (stackedColumn?.headerText\n ? appIntl()?.formatMessage({ id: stackedColumn?.headerText })\n : '')) +\n (stackedColumn?.metric\n ? stackedColumn?.staticText || stackedColumn?.headerText\n ? ' (' +\n (authSystems[stackedColumn?.metric] !== undefined\n ? authSystems[stackedColumn?.metric]\n : stackedColumn?.metric) +\n ')'\n : authSystems[stackedColumn?.metric] !== undefined\n ? authSystems[stackedColumn?.metric]\n : stackedColumn?.metric\n : ''),\n key: stackedColumn?.fieldName || stackedColumn?.customKey,\n type: stackedColumn.type || 'string',\n visible: stackedColumn?.hide !== true,\n columns: stackedColumn?.columns?.map((stackedStackedColumn) => ({\n autoFit: true,\n key: stackedStackedColumn?.fieldName,\n field: stackedStackedColumn?.fieldName,\n maxWidth: stackedStackedColumn?.maxWidth,\n minWidth: stackedStackedColumn?.minWidth,\n // commandsTemplate: stackedColumn.template,\n headerText:\n (stackedStackedColumn?.staticText ||\n (stackedStackedColumn?.headerText\n ? appIntl()?.formatMessage({\n id: stackedStackedColumn?.headerText\n })\n : '')) +\n (stackedStackedColumn?.metric\n ? stackedColumn?.staticText || stackedStackedColumn?.headerText\n ? ' (' +\n (authSystems[stackedStackedColumn?.metric] !== undefined\n ? authSystems[stackedStackedColumn?.metric]\n : stackedStackedColumn?.metric) +\n ')'\n : authSystems[stackedStackedColumn?.metric] !== undefined\n ? authSystems[stackedStackedColumn?.metric]\n : stackedStackedColumn?.metric\n : ''),\n allowEditing: stackedStackedColumn?.allowEditing ?? false,\n isPrimaryKey: stackedStackedColumn?.isPrimaryKey,\n editType:\n stackedStackedColumn?.editType ??\n (stackedStackedColumn?.type === 'number'\n ? 'numericedit'\n : stackedStackedColumn?.type === 'boolean'\n ? 'booleanedit'\n : stackedStackedColumn?.type === 'dateTime'\n ? 'datetimeedit'\n : 'stringedit'),\n editTemplate: stackedStackedColumn?.editTemplate ?? null,\n headerTemplate: stackedStackedColumn?.headerTemplate,\n format: stackedStackedColumn?.formatColumn,\n type: stackedStackedColumn?.type || 'string',\n displayAsCheckBox: stackedStackedColumn?.type === 'boolean',\n template: stackedStackedColumn?.template,\n customAttributes: stackedStackedColumn?.customAttributes\n ? stackedStackedColumn?.customAttributes\n : {\n class: stackedStackedColumn?.hasTooltip\n ? 'hasTooltip'\n : 'withoutTooltip',\n id: i + '-' + j\n },\n visible: stackedStackedColumn?.hide !== true,\n freeze: j < (frozenColumns ?? -1) ? 'Left' : undefined,\n // valueAccessor: (field, data) =>\n // stackedColumn.format ? stackedColumn.format(data[field]) : data[field],\n edit: stackedStackedColumn?.edit,\n textAlign: stackedStackedColumn?.textAlign\n ? stackedStackedColumn?.textAlign\n : 'Left'\n }))\n }\n : {\n autoFit: true,\n key: stackedColumn?.fieldName,\n field: stackedColumn?.fieldName,\n maxWidth: stackedColumn?.maxWidth,\n minWidth: stackedColumn?.minWidth,\n // commandsTemplate: stackedColumn.template,\n headerText:\n (stackedColumn?.staticText ||\n (stackedColumn?.headerText\n ? appIntl()?.formatMessage({ id: stackedColumn?.headerText })\n : '')) +\n (stackedColumn?.metric\n ? stackedColumn?.staticText || stackedColumn?.headerText\n ? ' (' +\n (authSystems[stackedColumn?.metric] !== undefined\n ? authSystems[stackedColumn?.metric]\n : stackedColumn?.metric) +\n ')'\n : authSystems[stackedColumn?.metric] !== undefined\n ? authSystems[stackedColumn?.metric]\n : stackedColumn?.metric\n : ''),\n allowEditing: stackedColumn?.allowEditing ?? false,\n isPrimaryKey: stackedColumn?.isPrimaryKey,\n editType:\n stackedColumn?.editType ??\n (stackedColumn?.type === 'number'\n ? 'numericedit'\n : stackedColumn?.type === 'boolean'\n ? 'booleanedit'\n : stackedColumn?.type === 'dateTime'\n ? 'datetimeedit'\n : 'stringedit'),\n editTemplate: stackedColumn?.editTemplate ?? null,\n headerTemplate: stackedColumn?.headerTemplate,\n format: stackedColumn?.formatColumn,\n type: stackedColumn?.type || 'string',\n displayAsCheckBox: stackedColumn?.type === 'boolean',\n template: stackedColumn?.template,\n customAttributes: column?.customAttributes\n ? {\n class: 'side-borders-columns-subColumns',\n id: i + '-' + j\n }\n : {\n class: column?.hasTooltip ? 'hasTooltip' : 'withoutTooltip',\n id: i + '-' + j\n },\n visible: stackedColumn?.hide !== true,\n freeze: j < (frozenColumns ?? -1) ? 'Left' : undefined,\n // valueAccessor: (field, data) =>\n // stackedColumn?.format ? stackedColumn.format(data[field]) : data[field],\n edit: stackedColumn?.edit,\n textAlign: stackedColumn?.textAlign ? stackedColumn?.textAlign : 'Left'\n }\n )}\n >\n ) : (\n \n column?.format ? column?.format(data[field]) : data[field]\n }\n edit={column?.edit}\n textAlign={column?.textAlign ? column?.textAlign : 'Left'}\n >\n )\n )}\n {tableColumns\n ?.filter((column) => column?.tooltipColumn)\n ?.map((column) => (\n \n ))}\n \n {frozenColumns === 0 && (\n \n \n {tableColumns &&\n tableColumns?.filter((column) => column?.aggregateType)?.length > 0 ? (\n \n {tableColumns\n ?.filter((column) => column?.aggregateType)\n ?.map((column) => (\n (\n \n {appIntl()?.formatMessage({\n id: column?.aggregateText || 'common.table' + column?.aggregateType\n })}\n :{' '}\n {column?.aggregateType === 'Average'\n ? props[column?.aggregateType]?.toFixed(2)\n : props[column?.aggregateType]}\n \n )}\n />\n ))}\n \n ) : (\n \n (\n \n {appIntl()?.formatMessage({ id: 'common.tableCount' })}: {props?.Count}\n \n )}\n />\n \n )}\n \n \n )}\n \n \n )}\n \n ) : (\n \n \n \n \n \n );\n};\n\nTable.defaultProps = {\n enablePersistence: true,\n omitPersistenceKeys: [\n 'selectedRowIndex',\n 'searchSettings',\n 'filterSettings',\n 'scrollPosition',\n 'pageSettings'\n ],\n enableVirtualization: false,\n isFetching: false,\n allowSorting: true,\n allowPaging: true,\n pageSize: 15,\n allowRowDragAndDrop: false,\n allowResizing: true,\n allowFiltering: true,\n allowReordering: true,\n sortedColumn: {\n sortedColumnIndex: 0,\n direction: 'Ascending'\n },\n allowMultipleSelection: false,\n frozenColumns: 0,\n height: 450,\n allowDeleting: false,\n allowGrouping: false\n};\n\nexport default Table;\n","import { combineReducers } from 'redux';\n\nimport moment from 'moment';\nimport omit from 'lodash/omit';\nimport union from 'lodash/union';\nimport forEach from 'lodash/forEach';\nimport uniq from 'lodash/uniq';\nimport * as authSelectors from 'redux/reducers/auth';\n\nimport * as types from '../types';\nimport * as customersTypes from '../../Customers/types';\n\nconst byId = (state = {}, action) => {\n switch (action.type) {\n //TYPES COMPLETED FETCH, ADD AND EDIT\n case types.OFFICES_FETCH_COMPLETED:\n case types.OFFICES_PARTIAL_FETCH_COMPLETED: {\n const { entities, order } = action.payload;\n const newState = { ...state };\n order.forEach((officeId) => {\n newState[officeId] = {\n isSelected: false,\n ...state[officeId],\n ...entities[officeId],\n isConfirmed: true\n };\n });\n return newState;\n }\n\n case types.OFFICE_ADD_COMPLETED: {\n const { oldId, office } = action.payload;\n const newState = omit(state, oldId);\n newState[office.officeId] = {\n ...state[oldId],\n ...office,\n isConfirmed: true\n };\n return newState;\n }\n\n case types.OFFICE_EDIT_COMPLETED: {\n const { office } = action.payload;\n return {\n ...state,\n [office.officeId]: {\n ...omit(state[office.officeId], ['oldOffice']),\n ...omit(office, ['oldOffice']),\n isConfirmed: true\n }\n };\n }\n\n case customersTypes.CUSTOMER_ADD_COMPLETED:\n case customersTypes.CUSTOMER_EDIT_COMPLETED: {\n const { office } = action.payload;\n const newState = { ...state };\n newState[office.officeId] = {\n isSelected: false,\n ...(newState[office.officeId] ?? {}),\n ...office,\n isConfirmed: true\n };\n return newState;\n }\n\n //TYPES STARTED ADD AND EDIT\n case types.OFFICE_ADD_STARTED: {\n const office = action.payload;\n const newState = { ...state };\n newState[office.officeId] = {\n isSelected: false,\n ...office,\n isConfirmed: false\n };\n return newState;\n }\n case types.OFFICE_EDIT_STARTED: {\n const office = action.payload;\n return {\n ...state,\n [office.officeId]: {\n ...state[office.officeId],\n oldOffice: state[office.officeId],\n ...office,\n isConfirmed: false\n }\n };\n }\n\n //TYPES FAILED ADD AND EDIT\n case types.OFFICE_ADD_FAILED: {\n const { oldId } = action.payload;\n if (state[oldId]) {\n return omit(state, oldId);\n }\n return state;\n }\n case types.OFFICE_EDIT_FAILED: {\n const { oldOffice } = action.payload;\n return {\n ...state,\n [oldOffice.officeId]: {\n ...omit(state[oldOffice.officeId], ['oldOffice']),\n ...oldOffice,\n isConfirmed: true\n }\n };\n }\n\n //TYPES REMOVE COMPLETED\n case types.OFFICE_REMOVE_COMPLETED: {\n const { officeId } = action.payload;\n return omit(state, officeId);\n }\n\n //TYPES SELECTED AND DESELECTED\n case types.OFFICE_SELECTED: {\n const officeId = action.payload;\n const newState = {\n ...state,\n [officeId]: {\n ...state[officeId],\n isSelected: true\n }\n };\n return newState;\n }\n\n case types.OFFICE_DESELECTED: {\n const officeId = action.payload;\n return {\n ...state,\n [officeId]: {\n ...state[officeId],\n isSelected: false\n }\n };\n }\n\n case types.OFFICES_ALL_SELECTED: {\n const officeIds = action.payload;\n const newState = { ...state };\n if (officeIds.length == 0) {\n forEach(state, (office: any, officeId) => {\n newState[officeId] = {\n ...office,\n isSelected: true\n };\n });\n } else {\n officeIds.forEach((officeId) => {\n newState[officeId] = {\n ...state[officeId],\n isSelected: true\n };\n });\n }\n\n return newState;\n }\n\n case types.OFFICES_ALL_DESELECTED: {\n const officeIds = action.payload;\n const newState = { ...state };\n if (officeIds.length == 0) {\n forEach(state, (office: any, officeId) => {\n newState[officeId] = {\n ...office,\n isSelected: false\n };\n });\n } else {\n officeIds.forEach((officeId) => {\n newState[officeId] = {\n ...state[officeId],\n isSelected: false\n };\n });\n }\n\n return newState;\n }\n\n //DEFAULT\n default: {\n return state;\n }\n }\n};\n\nconst order = (state = [], action) => {\n switch (action.type) {\n //CASE COMPLETED FETCH, ADD AND REMOVE\n case types.OFFICES_FETCH_COMPLETED:\n case types.OFFICES_PARTIAL_FETCH_COMPLETED: {\n const { order } = action.payload;\n return uniq([...state, ...order]);\n }\n\n case types.OFFICE_ADD_COMPLETED: {\n const { oldId, office } = action.payload;\n return state.map((officeId) => (officeId === oldId ? office.officeId : officeId));\n }\n\n case customersTypes.CUSTOMER_ADD_COMPLETED:\n case customersTypes.CUSTOMER_EDIT_COMPLETED: {\n const { office } = action.payload;\n return uniq([...state, office.officeId]);\n }\n\n case types.OFFICE_REMOVE_COMPLETED: {\n const { officeId } = action.payload;\n return state.filter((officeIdState) => officeIdState !== officeId);\n }\n\n //CASE ADD STARTED\n case types.OFFICE_ADD_STARTED: {\n const office = action.payload;\n return [...state, office.officeId];\n }\n\n //CASE ADD FAILED\n case types.OFFICE_ADD_FAILED: {\n const { oldId } = action.payload;\n return state.filter((officeIdState) => officeIdState !== oldId);\n }\n\n //DEFAULT\n default: {\n return state;\n }\n }\n};\n\n// STATES TO KNOW IF IT IS FETCHING, ADDING OR EDITING\nconst isFetchingList = (state = false, action) => {\n switch (action.type) {\n case types.OFFICES_FETCH_STARTED: {\n return true;\n }\n case types.OFFICES_FETCH_COMPLETED:\n case types.OFFICES_FETCH_FAILED: {\n return false;\n }\n default: {\n return state;\n }\n }\n};\n\nconst isPartialFetchingList = (state = false, action) => {\n switch (action.type) {\n case types.OFFICES_PARTIAL_FETCH_STARTED: {\n return true;\n }\n case types.OFFICES_PARTIAL_FETCH_COMPLETED:\n case types.OFFICES_PARTIAL_FETCH_FAILED: {\n return false;\n }\n default: {\n return state;\n }\n }\n};\n\nconst isAdding = (state = false, action) => {\n switch (action.type) {\n case types.OFFICE_ADD_STARTED: {\n return true;\n }\n case types.OFFICE_ADD_COMPLETED:\n case types.OFFICE_ADD_FAILED: {\n return false;\n }\n default: {\n return state;\n }\n }\n};\n\nconst isEditing = (state = false, action) => {\n switch (action.type) {\n case types.OFFICE_EDIT_STARTED: {\n return true;\n }\n case types.OFFICE_EDIT_COMPLETED:\n case types.OFFICE_EDIT_FAILED: {\n return false;\n }\n default: {\n return state;\n }\n }\n};\n\nconst isRemoving = (state = false, action) => {\n switch (action.type) {\n case types.OFFICE_REMOVE_STARTED: {\n return true;\n }\n case types.OFFICE_REMOVE_COMPLETED:\n case types.OFFICE_REMOVE_FAILED: {\n return false;\n }\n default: {\n return state;\n }\n }\n};\n\nconst errorFetchingList = (state = null, action) => {\n switch (action.type) {\n case types.OFFICES_FETCH_FAILED: {\n const { error } = action.payload;\n return error;\n }\n case types.OFFICES_FETCH_STARTED:\n case types.OFFICES_FETCH_COMPLETED: {\n return null;\n }\n default: {\n return state;\n }\n }\n};\n\nconst errorPartialFetchingList = (state = null, action) => {\n switch (action.type) {\n case types.OFFICES_PARTIAL_FETCH_FAILED: {\n const { error } = action.payload;\n return error;\n }\n case types.OFFICES_PARTIAL_FETCH_STARTED:\n case types.OFFICES_PARTIAL_FETCH_COMPLETED: {\n return null;\n }\n default: {\n return state;\n }\n }\n};\n\nconst errorAdding = (state = null, action) => {\n switch (action.type) {\n case types.OFFICE_ADD_FAILED: {\n const { error } = action.payload;\n return error;\n }\n case types.OFFICE_ADD_STARTED:\n case types.OFFICE_ADD_COMPLETED: {\n return null;\n }\n default: {\n return state;\n }\n }\n};\n\nconst errorEditing = (state = null, action) => {\n switch (action.type) {\n case types.OFFICE_EDIT_FAILED: {\n const { error } = action.payload;\n return error;\n }\n case types.OFFICE_EDIT_STARTED:\n case types.OFFICE_EDIT_COMPLETED: {\n return null;\n }\n default: {\n return state;\n }\n }\n};\n\nconst errorRemoving = (state = null, action) => {\n switch (action.type) {\n case types.OFFICE_REMOVE_FAILED: {\n const { error } = action.payload;\n return error;\n }\n case types.OFFICE_REMOVE_STARTED:\n case types.OFFICE_REMOVE_COMPLETED: {\n return null;\n }\n default: {\n return state;\n }\n }\n};\n\nconst offices = combineReducers({\n byId,\n order,\n isPartialFetchingList,\n isFetchingList,\n isAdding,\n isEditing,\n isRemoving,\n errorPartialFetchingList,\n errorFetchingList,\n errorAdding,\n errorEditing,\n errorRemoving\n});\n\nexport default offices;\n\n//Own state\nexport const getOwnState = (state) => state.offices;\n\n//Information\nexport const getOffice = (state, officeId) => {\n const office = getOwnState(state).byId[officeId];\n if (office) {\n const startTime = office.startTime ? office.startTime.split(':') : undefined;\n const endTime = office.endTime ? office.endTime.split(':') : undefined;\n const parsers = authSelectors.getParsers(state);\n const authSystems = authSelectors.getAuthSystems(state);\n return {\n ...office,\n startTime: startTime\n ? moment(new Date().setHours(startTime[0], startTime[1], startTime[2])).format(\n 'YYYY-MM-DD HH:mm'\n )\n : undefined,\n endTime: endTime\n ? moment(new Date().setHours(endTime[0], endTime[1], endTime[2])).format('YYYY-MM-DD HH:mm')\n : undefined,\n averageCapacityFormat: office.averageCapacity\n ? `${parsers.convertCubicMetersToAuthUserVolumeSystem(office.averageCapacity).toFixed(2)} ${\n authSystems.volume\n }`\n : undefined,\n minCapacityFormat: office.minCapacity\n ? `${parsers.convertCubicMetersToAuthUserVolumeSystem(office.minCapacity).toFixed(2)} ${\n authSystems.volume\n }`\n : undefined,\n maxCapacityFormat: office.maxCapacity\n ? `${parsers.convertCubicMetersToAuthUserVolumeSystem(office.maxCapacity).toFixed(2)} ${\n authSystems.volume\n }`\n : undefined\n };\n } else return undefined;\n};\nexport const getOfficesList = (state) =>\n getOwnState(state)\n .order.map((id) => getOffice(state, id))\n .filter((office) => office.officeStatus > 0);\n\nexport const getOfficesListByMembership = (state, membership) => {\n //Se filtra por membership\n return getOfficesList(state).filter(\n (office) =>\n membership &&\n (!membership.organizationId || membership.organizationId === office.organizationId) &&\n (!membership.divisionId || membership.divisionId === office.divisionId) &&\n (!membership.subdivisionId || membership.subdivisionId === office.subdivisionId)\n );\n};\n\nexport const getNotAssignedOfficesListByCustomer = (state, locationId, customerId) =>\n getOfficesList(state).filter(\n (office) =>\n office.customerId === customerId &&\n (!office.locationId || (locationId && office.locationId === locationId))\n );\n\nexport const getMainOffice = (state, customerId) =>\n getOfficesList(state).filter(\n (office) => customerId === office.customerId && office.isMainOffice > 0\n )[0];\n\nexport const getSelectedOffices = (state) => {\n const selectedOffices = getOfficesList(state).filter((office) => office.isSelected);\n //Si no se selecciona ninguno devuelve null\n if (selectedOffices.length === 0) return null;\n //Si se selecciona mĆ”s de cero se devuelve el arreglo de los seleccionados\n if (selectedOffices.length > 0) return selectedOffices;\n};\n\nexport const getSelectedOffice = (state) => {\n const selectedOffices = getOfficesList(state).filter((office) => office.isSelected);\n //Si se selecciona solo uno devuelve solo el seleccionado\n if (selectedOffices.length === 1) return selectedOffices[0];\n //De lo contrario se devuelve null\n else return null;\n};\n\n//Status of sagas\nexport const isPartialFetchingListOffices = (state) => getOwnState(state).isPartialFetchingList;\nexport const isFetchingListOffices = (state) => getOwnState(state).isFetchingList;\nexport const isAddingOffice = (state) => getOwnState(state).isAdding;\nexport const isEditingOffice = (state) => getOwnState(state).isEditing;\nexport const isRemovingOffice = (state) => getOwnState(state).isRemoving;\n\n//Errors\nexport const getPartialFetchingListOfficesErrors = (state) =>\n getOwnState(state).errorPartialFetchingList;\nexport const getFetchingListOfficesErrors = (state) => getOwnState(state).errorFetchingList;\nexport const getAddingOfficeErrors = (state) => getOwnState(state).errorAdding;\nexport const getEditingOfficeErrors = (state) => getOwnState(state).errorEditing;\nexport const getRemovingOfficeErrors = (state) => getOwnState(state).errorRemoving;\n","import * as types from '../types';\n\nexport const startFetchingProtocols = (filters = {}) => ({\n type: types.PROTOCOLS_FETCH_STARTED,\n payload: filters\n});\n\nexport const completeFetchingProtocols = (entities, order, operatorId, organizationId) => ({\n type: types.PROTOCOLS_FETCH_COMPLETED,\n payload: {\n entities,\n order,\n operatorId,\n organizationId\n }\n});\n\nexport const failFetchingProtocols = (error = { errorMessage: 'Error', errorNumber: 404 }) => ({\n type: types.PROTOCOLS_FETCH_FAILED,\n patload: {\n error\n }\n});\n\nexport const startPartialFetchingProtocols = (\n entityTypeId,\n operatorId = null,\n organizationId = null\n) => ({\n type: types.PROTOCOLS_PARTIAL_FETCH_STARTED,\n payload: { entityTypeId, operatorId, organizationId }\n});\n\nexport const completePartialFetchingProtocols = (entities, order, operatorId, organizationId) => ({\n type: types.PROTOCOLS_PARTIAL_FETCH_COMPLETED,\n payload: {\n entities,\n order,\n operatorId,\n organizationId\n }\n});\n\nexport const failPartialFetchingProtocols = (\n error = { errorMessage: 'Error', errorNumber: 404 }\n) => ({\n type: types.PROTOCOLS_PARTIAL_FETCH_FAILED,\n payload: {\n error //error:{errorMessage:'Error', errorNumber:400}\n }\n});\n\nexport const startAddingProtocol = (protocol) => ({\n type: types.PROTOCOLS_ADD_STARTED,\n payload: protocol\n});\nexport const completeAddingProtocol = (oldId, protocol) => ({\n type: types.PROTOCOLS_ADD_COMPLETED,\n payload: { oldId, protocol }\n});\nexport const failAddingProtocol = (oldId, error) => ({\n type: types.PROTOCOLS_ADD_FAILED,\n payload: {\n oldId,\n error\n }\n});\n\nexport const startEditingProtocol = (protocol) => ({\n type: types.PROTOCOLS_EDIT_STARTED,\n payload: protocol\n});\nexport const completeEditingProtocol = (protocol) => ({\n type: types.PROTOCOLS_EDIT_COMPLETED,\n payload: protocol\n});\nexport const failEditingProtocol = (oldProtocol, error) => ({\n type: types.PROTOCOLS_EDIT_FAILED,\n payload: {\n oldProtocol,\n error\n }\n});\n\nexport const startRemovingProtocol = (protocolId) => ({\n type: types.PROTOCOLS_REMOVE_STARTED,\n payload: {\n protocolId\n }\n});\nexport const completeRemovingProtocol = (protocolId) => ({\n type: types.PROTOCOLS_REMOVE_COMPLETED,\n payload: {\n protocolId\n }\n});\nexport const failRemovingProtocol = (protocolId, error) => ({\n type: types.PROTOCOLS_REMOVE_FAILED,\n payload: {\n protocolId,\n error\n }\n});\n\nexport const selectProtocol = (protocolId) => ({\n type: types.PROTOCOLS_SELECTED,\n payload: protocolId\n});\n\nexport const selectAllProtocols = (\n ProtocolIds = [] //List of ProtocolIds\n) => ({\n type: types.PROTOCOLS_ALL_SELECTED,\n payload: ProtocolIds\n});\n\nexport const deselectProtocol = (protocolId) => ({\n type: types.PROTOCOLS_DESELECTED,\n payload: protocolId\n});\n\nexport const deselectAllProtocols = (\n protocolIds = [] //List of ProtocolIds\n) => ({\n type: types.PROTOCOLS_ALL_DESELECTED,\n payload: protocolIds\n});\n","import {\n NoticeByDateRequest,\n NoticeByHourmeterRequest\n} from 'views/screens/vehicleMaintenance/types';\nimport * as types from 'views/screens/vehicleMaintenance/types/preventiveNotices/noticesByHourmeter';\n\nexport const startFetchingNotices = (filters = {}) => ({\n type: types.NOTICES_BY_HOURMETER_FETCH_STARTED,\n payload: filters\n});\n\nexport const completeFetchingNotices = (entities, order) => ({\n type: types.NOTICES_BY_HOURMETER_FETCH_COMPLETED,\n payload: {\n entities,\n order\n }\n});\n\nexport const failFetchingNotices = (error = { errorMessage: 'Error', errorNumber: 404 }) => ({\n type: types.NOTICES_BY_HOURMETER_FETCH_FAILED,\n payload: {\n error //error:{errorMessage:'Error', errorNumber:400}\n }\n});\n\nexport const startPartialFetchingNotices = (entityTypeId) => ({\n type: types.NOTICES_BY_HOURMETER_PARTIAL_FETCH_STARTED,\n payload: entityTypeId\n});\n\nexport const completePartialFetchingNotices = (entities, order) => ({\n type: types.NOTICES_BY_HOURMETER_PARTIAL_FETCH_COMPLETED,\n payload: {\n entities,\n order\n }\n});\n\nexport const failPartialFetchingNotices = (\n error = { errorMessage: 'Error', errorNumber: 404 }\n) => ({\n type: types.NOTICES_BY_HOURMETER_PARTIAL_FETCH_FAILED,\n payload: {\n error //error:{errorMessage:'Error', errorNumber:400}\n }\n});\n\nexport const startAddingNotice = (notice: NoticeByHourmeterRequest) => ({\n type: types.NOTICE_BY_HOURMETER_ADD_STARTED,\n payload: notice\n});\n\nexport const completeAddingNotice = (id: string, oldId: string, notice) => ({\n type: types.NOTICE_BY_HOURMETER_ADD_COMPLETED,\n payload: { id, oldId, notice }\n});\n\nexport const failAddingNotice = (oldId, error) => ({\n type: types.NOTICE_BY_HOURMETER_ADD_FAILED,\n payload: {\n oldId,\n error\n }\n});\n\nexport const startEditingNotice = (notice: NoticeByHourmeterRequest) => ({\n type: types.NOTICE_BY_HOURMETER_EDIT_STARTED,\n payload: notice\n});\n\nexport const completeEditingNotice = (notice) => ({\n type: types.NOTICE_BY_HOURMETER_EDIT_COMPLETED,\n payload: notice\n});\n\nexport const failEditingNotice = (oldNotice, error) => ({\n type: types.NOTICE_BY_HOURMETER_EDIT_FAILED,\n payload: {\n oldNotice,\n error\n }\n});\n\n//===================== RENEW ========================================\nexport const startRenewNotice = (notice: NoticeByDateRequest) => ({\n type: types.NOTICE_BY_HOURMETER_RENEW_STARTED,\n payload: notice\n});\n\nexport const completeRenewNotice = (notice) => ({\n type: types.NOTICE_BY_HOURMETER_RENEW_COMPLETED,\n payload: notice\n});\n\nexport const failRenewNotice = (oldNotice, error) => ({\n type: types.NOTICE_BY_HOURMETER_RENEW_FAILED,\n payload: {\n oldNotice,\n error\n }\n});\n\nexport const startRemovingNotice = (request: { noticeId: number; unitId: number }) => ({\n type: types.NOTICE_BY_HOURMETER_REMOVE_STARTED,\n payload: {\n ...request\n }\n});\n\nexport const completeRemovingNotice = (id) => ({\n type: types.NOTICE_BY_HOURMETER_REMOVE_COMPLETED,\n payload: {\n id\n }\n});\n\nexport const failRemovingNotice = (id, error) => ({\n type: types.NOTICE_BY_HOURMETER_REMOVE_FAILED,\n payload: {\n id,\n error\n }\n});\n","/* -------------------------------------------------------------------------- */\n/* Componente TimeRangeInput */\n/* -------------------------------------------------------------------------- */\n// Este componente contiene un daterange genĆ©rico que se utiliza en muchas pantallas de la aplicaciĆ³n.\n\nimport { Label, FormGroup, Row, Col } from 'reactstrap';\nimport moment from 'moment';\nimport Flatpickr from 'react-flatpickr';\nimport { Spanish } from 'flatpickr/dist/l10n/es';\nimport { english } from 'flatpickr/dist/l10n/default';\nimport { FormattedMessage } from 'react-intl';\nimport { appIntl } from '../../../utility/context/IntlGlobalProvider';\nimport { XSquare } from 'react-feather';\nimport { createDateWithHoursAndMinutes } from 'utility/Utils';\nimport { useEffect } from 'react';\n\ninterface Props {\n field: any;\n fieldstate: any;\n errorMessage?: any;\n required?: boolean;\n defaultHour?: number;\n defaultMinute?: number;\n maxTime?: any;\n minTime?: any;\n showTime?: boolean;\n enableTime?: boolean;\n label?: any;\n disabled?: boolean;\n allowNulls?: boolean;\n inFormat?: boolean;\n}\n\nconst TimeInput = (props: Props) => {\n const {\n field,\n fieldstate,\n required,\n maxTime,\n errorMessage,\n minTime,\n label,\n disabled,\n allowNulls = false,\n inFormat = false,\n defaultHour = 0,\n defaultMinute = 0\n } = props;\n\n const defaultDate: Date = createDateWithHoursAndMinutes(defaultHour, defaultMinute);\n\n useEffect(() => {\n if (!field?.value) field.onChange(defaultDate);\n }, []);\n\n return (\n \n \n \n \n ) => {\n const dateValue: Date = value[0];\n if (value.length > 0) {\n if (inFormat) field.onChange(moment(dateValue).format('HH:mm'));\n else field.onChange(dateValue);\n }\n }}\n onClose={(value) => {\n if (value.length === 0) field.onBlur(null);\n }}\n />\n \n {allowNulls && (\n \n {\n field.onChange(null);\n }}\n />\n \n )}\n \n {fieldstate.error && (\n
\n {fieldstate.error?.message || errorMessage || (\n \n )}\n
\n )}\n
\n );\n};\n\nTimeInput.defaultProps = {\n required: false,\n enableTime: false,\n showTime: true,\n disabled: false\n};\n\nexport default TimeInput;\n","const permissions = {\n addLocation: 'LO001',\n editLocation: 'LO002',\n removeLocation: 'LO003',\n searchLocation: 'LO004',\n listLocations: 'LO005',\n importLocation: 'LO006',\n listPrivateOrganizationLocations: 'LO007',\n listLocationsOnMap: 'LO008',\n searchLocations: 'LO009',\n searchExternalLocations: 'LO010'\n};\n\nexport default permissions;\n","const paths = {\n //Paths Catalogs\n sparepartsCatalog: '/vehicleMaintenance/catalog/sparepart',\n workshopCatalog: '/vehicleMaintenance/catalog/workshop',\n categoriesCatalog: '/vehicleMaintenance/catalog/categories',\n providersCatalog: '/vehicleMaintenance/catalog/providers',\n\n //reportes\n generalReport: '/vehicleMaintenance/report/general',\n byCategoryReport: '/vehicleMaintenance/report/byCategory',\n byUnitReport: '/vehicleMaintenance/report/byUnit',\n byWorkShopReport: '/vehicleMaintenance/report/byWorkshop',\n\n //tickets\n importTicket: '/vehicleMaintenance/ticket/import',\n\n //preventive notices\n preventiveNotices: '/vehicleMaintenance/preventiveNotices',\n\n //maintenanceLines\n maintenanceLineList: '/vehicleMaintenance/maintenanceLines/list',\n maintenanceLineEdit: '/vehicleMaintenance/maintenanceLines/edit',\n\n // workshop orders\n addWorkshopOrders: '/vehicleMaintenance/workshopOrders/add'\n};\n\nexport default paths;\n","import { combineReducers } from 'redux';\n\nimport { union, omit } from 'lodash';\n\nimport * as authTypes from '../../../../../redux/types/auth';\nimport * as types from '../../types/workplansExecutions';\nimport * as typesLocations from '../../types/workplansExecutionLocations';\nimport * as locationSelectors from '../../../Locations/reducers';\nimport { appIntl } from 'utility/context/IntlGlobalProvider';\n\nconst byId = (state = {}, action) => {\n switch (action.type) {\n case authTypes.AUTHENTICATION_IDENTITY_CLEARED: {\n return {};\n }\n //TYPES COMPLETED FETCH\n case types.WORKPLAN_EXECUTION_FETCH_COMPLETED: {\n const { workplanExecutionLocationsEntities, workplanExecutionLocationsOrder } =\n action.payload;\n const newState = { ...state };\n workplanExecutionLocationsOrder.forEach((workplanExecutionLocationId) => {\n newState[workplanExecutionLocationId] = {\n isSelected: false,\n workplanExecutionLocationId,\n ...state[workplanExecutionLocationId],\n ...workplanExecutionLocationsEntities[workplanExecutionLocationId],\n isConfirmed: true\n };\n });\n return newState;\n }\n\n case typesLocations.WORKPLANS_EXECUTION_LOCATION_ADD_COMPLETED: {\n const { oldId, workplanExecutionLocation } = action.payload;\n const newState = omit(state, oldId);\n newState[workplanExecutionLocation.workplanExecutionLocationId] = {\n ...state[oldId],\n ...workplanExecutionLocation,\n isConfirmed: true\n };\n return newState;\n }\n\n case typesLocations.WORKPLANS_EXECUTION_LOCATION_EDIT_COMPLETED: {\n const workplanExecutionLocation = action.payload;\n return {\n ...state,\n [workplanExecutionLocation.workplanExecutionLocationId]: {\n ...omit(state[workplanExecutionLocation.workplanExecutionLocationId], [\n 'oldWorkplanExecutionLocation'\n ]),\n ...omit(workplanExecutionLocation, ['oldWorkplanExecutionLocation']),\n isConfirmed: true\n }\n };\n }\n\n //TYPES STARTED ADD AND EDIT\n case typesLocations.WORKPLANS_EXECUTION_LOCATION_ADD_STARTED: {\n const workplanExecutionLocation = action.payload;\n const newState = { ...state };\n newState[workplanExecutionLocation.workplanExecutionLocationId] = {\n isSelected: false,\n ...workplanExecutionLocation,\n isConfirmed: false\n };\n return newState;\n }\n case typesLocations.WORKPLANS_EXECUTION_LOCATION_EDIT_STARTED: {\n const workplanExecutionLocation = action.payload;\n return {\n ...state,\n [workplanExecutionLocation.workplanExecutionLocationId]: {\n ...state[workplanExecutionLocation.workplanExecutionLocationId],\n oldWorkplanExecutionLocation:\n state[workplanExecutionLocation.workplanExecutionLocationId],\n ...workplanExecutionLocation,\n isConfirmed: false\n }\n };\n }\n\n //TYPES FAILED ADD AND EDIT\n case typesLocations.WORKPLANS_EXECUTION_LOCATION_ADD_FAILED: {\n const { oldId } = action.payload;\n if (state[oldId]) {\n return omit(state, oldId);\n }\n return state;\n }\n case typesLocations.WORKPLANS_EXECUTION_LOCATION_EDIT_FAILED: {\n const { oldWorkplanExecutionLocation } = action.payload;\n return {\n ...state,\n [oldWorkplanExecutionLocation.workplanId]: {\n ...omit(state[oldWorkplanExecutionLocation.workplanId], ['oldWorkplanExecutionLocation']),\n ...oldWorkplanExecutionLocation,\n isConfirmed: true\n }\n };\n }\n\n //TYPES REMOVE COMPLETED\n case typesLocations.WORKPLANS_EXECUTION_LOCATION_REMOVE_COMPLETED: {\n const { workplanExecutionLocationId } = action.payload;\n return omit(state, workplanExecutionLocationId);\n }\n\n //DEFAULT\n default: {\n return state;\n }\n }\n};\n\nconst order = (state = [], action) => {\n switch (action.type) {\n case authTypes.AUTHENTICATION_IDENTITY_CLEARED: {\n return [];\n }\n //CASE COMPLETED FETCH\n case types.WORKPLAN_EXECUTION_FETCH_COMPLETED: {\n const { workplanExecutionLocationsOrder } = action.payload;\n return union(workplanExecutionLocationsOrder);\n }\n\n case typesLocations.WORKPLANS_EXECUTION_LOCATION_ADD_COMPLETED: {\n const { oldId, workplanExecutionLocation } = action.payload;\n return state.map((workplanExecutionLocationId) =>\n workplanExecutionLocationId === oldId\n ? workplanExecutionLocation.workplanExecutionLocationId\n : workplanExecutionLocationId\n );\n }\n\n case typesLocations.WORKPLANS_EXECUTION_LOCATION_REMOVE_COMPLETED: {\n const { workplanExecutionLocationId } = action.payload;\n return state.filter(\n (workplanExecutionLocationIdState) =>\n workplanExecutionLocationIdState !== workplanExecutionLocationId\n );\n }\n\n //CASE ADD STARTED\n case typesLocations.WORKPLANS_EXECUTION_LOCATION_ADD_STARTED: {\n const workplanExecutionLocation = action.payload;\n return [...state, workplanExecutionLocation.workplanExecutionLocationId];\n }\n\n //CASE ADD FAILED\n case typesLocations.WORKPLANS_EXECUTION_LOCATION_ADD_FAILED: {\n const { oldId } = action.payload;\n return state.filter(\n (workplanExecutionLocationIdState) => workplanExecutionLocationIdState !== oldId\n );\n }\n\n //DEFAULT\n default: {\n return state;\n }\n }\n};\n\nconst isAdding = (state = false, action) => {\n switch (action.type) {\n case authTypes.AUTHENTICATION_IDENTITY_CLEARED: {\n return false;\n }\n case typesLocations.WORKPLANS_EXECUTION_LOCATION_ADD_STARTED: {\n return true;\n }\n case typesLocations.WORKPLANS_EXECUTION_LOCATION_ADD_COMPLETED:\n case typesLocations.WORKPLANS_EXECUTION_LOCATION_ADD_FAILED: {\n return false;\n }\n default: {\n return state;\n }\n }\n};\n\nconst isEditing = (state = false, action) => {\n switch (action.type) {\n case authTypes.AUTHENTICATION_IDENTITY_CLEARED: {\n return false;\n }\n case typesLocations.WORKPLANS_EXECUTION_LOCATION_EDIT_STARTED: {\n return true;\n }\n case typesLocations.WORKPLANS_EXECUTION_LOCATION_EDIT_COMPLETED:\n case typesLocations.WORKPLANS_EXECUTION_LOCATION_EDIT_FAILED: {\n return false;\n }\n default: {\n return state;\n }\n }\n};\n\nconst isRemoving = (state = false, action) => {\n switch (action.type) {\n case authTypes.AUTHENTICATION_IDENTITY_CLEARED: {\n return false;\n }\n case typesLocations.WORKPLANS_EXECUTION_LOCATION_REMOVE_STARTED: {\n return true;\n }\n case typesLocations.WORKPLANS_EXECUTION_LOCATION_REMOVE_COMPLETED:\n case typesLocations.WORKPLANS_EXECUTION_LOCATION_REMOVE_FAILED: {\n return false;\n }\n default: {\n return state;\n }\n }\n};\n\nconst errorAdding = (state = null, action) => {\n switch (action.type) {\n case authTypes.AUTHENTICATION_IDENTITY_CLEARED: {\n return null;\n }\n case typesLocations.WORKPLANS_EXECUTION_LOCATION_ADD_FAILED: {\n const { error } = action.payload;\n return error;\n }\n case typesLocations.WORKPLANS_EXECUTION_LOCATION_ADD_STARTED:\n case typesLocations.WORKPLANS_EXECUTION_LOCATION_ADD_COMPLETED: {\n return null;\n }\n default: {\n return state;\n }\n }\n};\n\nconst errorEditing = (state = null, action) => {\n switch (action.type) {\n case authTypes.AUTHENTICATION_IDENTITY_CLEARED: {\n return null;\n }\n case typesLocations.WORKPLANS_EXECUTION_LOCATION_EDIT_FAILED: {\n const { error } = action.payload;\n return error;\n }\n case typesLocations.WORKPLANS_EXECUTION_LOCATION_EDIT_STARTED:\n case typesLocations.WORKPLANS_EXECUTION_LOCATION_EDIT_COMPLETED: {\n return null;\n }\n default: {\n return state;\n }\n }\n};\n\nconst errorRemoving = (state = null, action) => {\n switch (action.type) {\n case authTypes.AUTHENTICATION_IDENTITY_CLEARED: {\n return null;\n }\n case typesLocations.WORKPLANS_EXECUTION_LOCATION_REMOVE_FAILED: {\n const { error } = action.payload;\n return error;\n }\n case typesLocations.WORKPLANS_EXECUTION_LOCATION_REMOVE_STARTED:\n case typesLocations.WORKPLANS_EXECUTION_LOCATION_REMOVE_COMPLETED: {\n return null;\n }\n default: {\n return state;\n }\n }\n};\n\nconst locations = combineReducers({\n byId,\n order,\n isAdding,\n isEditing,\n isRemoving,\n errorAdding,\n errorEditing,\n errorRemoving\n});\n\nexport default locations;\n\n//Own state\nexport const getOwnState = (state) => state.workplans.workplansExecutions.locations;\n\n//Information\nexport const getLocation = (state, workplanExecutionLocationId) => {\n const intl = appIntl();\n const style = getComputedStyle(document.body);\n const workplanExecutionLocation = getOwnState(state).byId[workplanExecutionLocationId];\n if (workplanExecutionLocation) {\n const location = locationSelectors.getLocation(state, workplanExecutionLocation.locationId);\n return {\n ...location,\n ...workplanExecutionLocation,\n boundsCustomColor: style.getPropertyValue(\n ['A', 'T', 'V'].includes(workplanExecutionLocation.locationVisitStatus)\n ? '--success'\n : '--danger'\n ),\n locationClassDefaultColor: style.getPropertyValue(\n ['A', 'T', 'V'].includes(workplanExecutionLocation.locationVisitStatus)\n ? '--success'\n : '--danger'\n ),\n jobStatusLabel: workplanExecutionLocation.jobStatus\n ? intl.formatMessage({\n id: 'jobs.jobStatus.' + workplanExecutionLocation.jobStatus\n })\n : '',\n sequenceComplianceLabel: ['0', '1', '2', 0, 1, 2].includes(\n workplanExecutionLocation.validSequence\n )\n ? intl.formatMessage({\n id:\n 'workplans.sequenceCompliance.' +\n // 0: Pending, 1: fulfilled, 2: unfulfilled\n workplanExecutionLocation.validSequence\n })\n : '',\n locationVisitStatusLabel: workplanExecutionLocation.locationVisitStatus\n ? intl.formatMessage({\n id: 'workplans.locationVisitStatus.' + workplanExecutionLocation.locationVisitStatus\n })\n : ''\n };\n } else return undefined;\n};\nexport const getLocationsList = (state) =>\n getOwnState(state).order.map((id) => getLocation(state, id));\nexport const getLocationsListByVisit = (state, visitId) =>\n getLocationsList(state).filter(\n (workplanExecutionLocation) => workplanExecutionLocation.visitId === visitId\n );\n\n//Status of sagas\nexport const isAddingLocation = (state) => getOwnState(state).isAdding;\nexport const isEditingLocation = (state) => getOwnState(state).isEditing;\nexport const isRemovingLocation = (state) => getOwnState(state).isRemoving;\n\n//Errors\nexport const getAddingLocationErrors = (state) => getOwnState(state).errorAdding;\nexport const getEditingLocationErrors = (state) => getOwnState(state).errorEditing;\nexport const getRemovingLocationErrors = (state) => getOwnState(state).errorRemoving;\n","import * as types from '../../types/workplansAssignments';\n\nexport const startFetchingAssignments = (filters = {}) => ({\n type: types.WORKPLAN_ASSIGNMENT_FETCH_STARTED,\n payload: filters\n});\nexport const completeFetchingAssignmentsWithSchedule = (entities, order) => ({\n type: types.WORKPLAN_ASSIGNMENT_BY_SCHEDULE_FETCH_COMPLETED,\n payload: {\n entities,\n order\n }\n});\nexport const completeFetchingAssignmentsWithDateTime = (entities, order) => ({\n type: types.WORKPLAN_ASSIGNMENT_BY_DATETIME_FETCH_COMPLETED,\n payload: {\n entities,\n order\n }\n});\nexport const failFetchingAssignments = (error = { errorMessage: 'Error', errorNumber: 404 }) => ({\n type: types.WORKPLAN_ASSIGNMENT_FETCH_FAILED,\n payload: {\n error //error:{errorMessage:'Error', errorNumber:400}\n }\n});\n\nexport const startRemovingAssignment = (assignmentId, assignmentType) => ({\n type: types.WORKPLAN_ASSIGNMENT_REMOVE_STARTED,\n payload: {\n assignmentId,\n assignmentType\n }\n});\nexport const completeRemovingAssignmentWithSchedule = (assignmentId) => ({\n type: types.WORKPLAN_ASSIGNMENT_BY_SCHEDULE_REMOVE_COMPLETED,\n payload: {\n assignmentId\n }\n});\nexport const completeRemovingAssignmentWithDateTime = (assignmentId) => ({\n type: types.WORKPLAN_ASSIGNMENT_BY_DATETIME_REMOVE_COMPLETED,\n payload: {\n assignmentId\n }\n});\nexport const failRemovingAssignment = (assignmentId, error) => ({\n type: types.WORKPLAN_ASSIGNMENT_REMOVE_FAILED,\n payload: {\n assignmentId,\n error\n }\n});\n\nexport const startEditingAssignmentWithSchedule = (assignment) => ({\n type: types.WORKPLAN_ASSIGNMENT_BY_SCHEDULE_EDIT_STARTED,\n payload: assignment\n});\nexport const completeEditingAssignmentWithSchedule = (assignment) => ({\n type: types.WORKPLAN_ASSIGNMENT_BY_SCHEDULE_EDIT_COMPLETED,\n payload: assignment\n});\nexport const failEditingAssignmentWithSchedule = (oldAssignment, error) => ({\n type: types.WORKPLAN_ASSIGNMENT_BY_SCHEDULE_EDIT_FAILED,\n payload: {\n oldAssignment,\n error\n }\n});\n\nexport const startEditingAssignmentWithDateTime = (assignment) => ({\n type: types.WORKPLAN_ASSIGNMENT_BY_DATETIME_EDIT_STARTED,\n payload: assignment\n});\nexport const completeEditingAssignmentWithDateTime = (assignment) => ({\n type: types.WORKPLAN_ASSIGNMENT_BY_DATETIME_EDIT_COMPLETED,\n payload: assignment\n});\nexport const failEditingAssignmentWithDateTime = (oldAssignment, error) => ({\n type: types.WORKPLAN_ASSIGNMENT_BY_DATETIME_EDIT_FAILED,\n payload: {\n oldAssignment,\n error\n }\n});\n","//** React Imports\nimport { useEffect, useState } from 'react';\nimport { useSelector } from 'react-redux';\nimport useDeepCompareEffect from 'use-deep-compare-effect';\nimport { ENTITY_OPERATORS, ENTITY_ORGANIZATIONS } from 'views/screens/Entities/constants';\nimport * as AuthSelectors from '../../../../redux/reducers/auth';\nimport * as entitySelectors from '../../../screens/Entities/reducers';\n\nexport interface Membership {\n operatorId: number | undefined;\n organizationId: number | undefined;\n divisionId: number | undefined;\n subdivisionId: number | undefined;\n groupId: number | undefined;\n}\n\nexport interface DefaultOptions {\n // TamaƱo de los inputs\n colSize?: any;\n // Permitir deseleccionar dropdowns\n showAllOperator?: boolean;\n showAllOrganization?: boolean;\n showAllAgent?: boolean;\n showAllDivision?: boolean;\n showAllSubdivision?: boolean;\n showAllGroup?: boolean;\n // Usar la membreship del usuario como valor por defecto\n useUserOperator?: boolean;\n useUserOrganization?: boolean;\n useUserAgent?: boolean;\n useUserDivision?: boolean;\n useUserSubdivision?: boolean;\n useUserGroup?: boolean;\n // Setear la membreship del usuario como valor por defecto aunque el usuario sea de nivel menor (Se usa para crear/editar una entidad)\n setUserOperator?: boolean;\n setUserOrganization?: boolean;\n setUserAgent?: boolean;\n setUserDivision?: boolean;\n setUserSubdivision?: boolean;\n setUserGroup?: boolean;\n // Filtrar por organizacion\n filterOrganization?: number;\n // Mostrar/ocultar un dropdown\n useOperator?: boolean;\n useOrganization?: boolean;\n useAgent?: boolean;\n useDivision?: boolean;\n useSubdivision?: boolean;\n useGroup?: boolean;\n // Habilitar/Deshabilitar un dropdown\n isOperatorDisabled?: boolean;\n isOrganizationDisabled?: boolean;\n isAgentDisabled?: boolean;\n isDivisionDisabled?: boolean;\n isSubdivisionDisabled?: boolean;\n isGroupDisabled?: boolean;\n // Placeholder de un dropdown\n subdivisionPlaceholder?: any;\n}\n\nconst defaultOptions = {\n colSize: '3',\n showAllOperator: false,\n showAllOrganization: false,\n showAllAgent: false,\n showAllDivision: false,\n showAllSubdivision: false,\n showAllGroup: false,\n useUserOperator: false,\n useUserOrganization: false,\n useUserAgent: false,\n useUserDivision: false,\n useUserSubdivision: false,\n useUserGroup: false,\n setUserOperator: true,\n setUserOrganization: true,\n setUserAgent: false,\n setUserDivision: true,\n setUserSubdivision: true,\n setUserGroup: true,\n useOperator: true,\n useOrganization: true,\n useAgent: false,\n useDivision: true,\n useSubdivision: true,\n useGroup: false,\n isOperatorDisabled: false,\n isOrganizationDisabled: false,\n isAgentDisabled: false,\n isDivisionDisabled: false,\n isSubdivisionDisabled: false,\n isGroupDisabled: false\n};\n\nexport const useMembership = (options, model) => {\n //Initialize State\n const [isInitialize, setIsInitialize] = useState(false);\n //State Model\n const [membershipDefaultValue, setMembershipDefaultValue] = useState(model);\n //State Options\n const [membershipOptions, setMembershipOptions] = useState({\n ...defaultOptions,\n ...options\n });\n\n //Al cambiar las opciones\n useDeepCompareEffect(() => {\n updateOptions(options);\n }, [options]);\n\n //Al cargar por primera vez el componente\n useEffect(() => {\n membershipAccessLevel();\n updateOptions({\n ...membershipOptions,\n ...membershipAccessLevel()\n });\n }, []);\n\n //Selectors\n const { user, areAllEntitiesUpdated } = useSelector((state) => ({\n user: AuthSelectors.getAuthUserForMembership(state),\n areAllEntitiesUpdated: entitySelectors.areAllEntitiesUpdated(state, [\n ENTITY_OPERATORS,\n ENTITY_ORGANIZATIONS\n ])\n }));\n\n //Al terminar de hacer update de las entities\n useEffect(() => {\n if (areAllEntitiesUpdated) {\n updateUserMembership({\n ...membershipOptions,\n ...membershipAccessLevel()\n });\n setIsInitialize(true);\n }\n }, [areAllEntitiesUpdated]);\n\n //Se restringe dependiendo del nivel de acceso del usuario\n const membershipAccessLevel = () => {\n var useOperator = membershipOptions.useOperator;\n var useOrganization = membershipOptions.useOrganization;\n var useDivision = membershipOptions.useDivision;\n var useSubdivision = membershipOptions.useSubdivision;\n if (user.accessLevelId == 11 || user.accessLevelId == 13) {\n useOperator = false;\n }\n if (user.accessLevelId == 7) {\n useOperator = false;\n useOrganization = false;\n }\n if (user.accessLevelId == 4) {\n useOperator = false;\n useOrganization = false;\n useDivision = false;\n }\n if (user.accessLevelId == 2 || user.accessLevelId == 20) {\n useOperator = false;\n useOrganization = false;\n useDivision = false;\n useSubdivision = false;\n }\n return {\n useOperator,\n useOrganization,\n useDivision,\n useSubdivision\n };\n };\n\n //Actualiza el modelo de defaultValues segun el membership del usuario\n const updateUserMembership = (membershipOptions) => {\n //Se cargan las membership del usuario\n var userMembership: any = membershipDefaultValue;\n //Se setea el operador del usuario en sesiĆ³n\n if (\n ((membershipOptions.useOperator && membershipOptions.useUserOperator) ||\n (membershipOptions.setUserOperator && ![9, 15].includes(parseInt(user.accessLevelId)))) &&\n (!membershipDefaultValue || !membershipDefaultValue.operatorId)\n ) {\n userMembership.operatorId = parseInt(user.operatorId);\n userMembership.operatorName = user.operatorName;\n }\n //Se setea la organizaciĆ³n del usuario en sesiĆ³n\n if (\n ((membershipOptions.useOrganization && membershipOptions.useUserOrganization) ||\n (membershipOptions.setUserOrganization &&\n ![9, 11, 13, 15].includes(parseInt(user.accessLevelId)))) &&\n (!membershipDefaultValue || !membershipDefaultValue.organizationId)\n ) {\n userMembership.organizationId = parseInt(user.organizationId);\n userMembership.organizationName = user.organizationName;\n }\n //Se setea la divisiĆ³n del usuario en sesiĆ³n\n if (\n ((membershipOptions.useDivision && membershipOptions.useUserDivision) ||\n (membershipOptions.setUserDivision &&\n ![7, 9, 11, 13, 15].includes(parseInt(user.accessLevelId)))) &&\n (!membershipDefaultValue || !membershipDefaultValue.divisionId)\n ) {\n userMembership.divisionId = parseInt(user.divisionId);\n userMembership.divisionName = user.divisionName;\n }\n //Se setea la subdivisiĆ³n del usuario en sesiĆ³n\n if (\n ((membershipOptions.useSubdivision && membershipOptions.useUserSubdivision) ||\n (membershipOptions.setUserSubdivision &&\n ![4, 7, 9, 11, 13, 15].includes(parseInt(user.accessLevelId)))) &&\n (!membershipDefaultValue || !membershipDefaultValue.subdivisionId)\n ) {\n userMembership.subdivisionId = parseInt(user.subdivisionId);\n userMembership.subdivisionName = user.subdivisionName;\n }\n updateModel(userMembership);\n };\n\n //Se actualiza todo el modelo\n const updateModel = (model) => {\n setMembershipDefaultValue({\n ...membershipDefaultValue,\n ...model\n });\n };\n\n //Se actualiza todas las opciones\n const updateOptions = (options) => {\n setMembershipOptions({\n ...membershipOptions,\n ...options\n });\n };\n\n return [membershipDefaultValue, membershipOptions, isInitialize];\n};\n","import { Fragment, useEffect, FC } from 'react';\nimport { Controller, useController } from 'react-hook-form';\nimport { useIntl } from 'react-intl';\nimport { useSelector } from 'react-redux';\nimport { Col, Spinner } from 'reactstrap';\nimport * as groupsSelectors from 'views/screens/Groups/reducers';\nimport * as agentsSelectors from 'views/screens/Agents/reducers';\nimport * as divisionSelectors from 'views/screens/Divisions/reducers';\nimport FetchEntities, { DefaultFilters } from 'views/screens/Entities/views/FetchEntities';\nimport * as operatorSelectors from 'views/screens/Operators/reducers';\nimport * as organizationSelectors from 'views/screens/Organizations/reducers';\nimport * as subdivisionSelectors from 'views/screens/Subdivisions/reducers';\nimport DropdownInput from '../DropdownInput';\nimport { DefaultOptions, useMembership } from './hooks/useMembership';\nimport { group } from 'console';\n\n/* -------------------------------------------------------------------------- */\n/* COMPONENTE MEMBERSHIP */\n/* -------------------------------------------------------------------------- */\n// Lista de opciones que se le puede enviar al componente\n// dentro del prop \"options\":\n// ----------------------------------------\n// | Option | Default Value |\n// ----------------------------------------\n// | colSize | \"3\" |\n// | showAllOperator | false |\n// | showAllOrganization | false |\n// | showAllAgent | false |\n// | showAllDivision | false |\n// | showAllSubdivision | false |\n// | useUserOperator | false |\n// | useUserOrganization | false |\n// | useUserAgent | false |\n// | useUserDivision | false |\n// | useUserSubdivision | false |\n// | useOperator | true |\n// | useOrganization | true |\n// | useAgent | false |\n// | useDivision | true |\n// | useSubdivision | true |\n// | isOperatorDisabled | false |\n// | isOrganizationDisabled | false |\n// | isDivisionDisabled | false |\n// | isSubdivisionDisabled | false |\n// | isAgentDisabled | false |\n// | operatorPlaceholder | null |\n// | organizationPlaceholder| null |\n// | agentPlaceholder | null |\n// | divisionPlaceholder | null |\n// | subdivisionPlaceholder | null |\n// ----------------------------------------\n\ninterface PropsDropDowns {\n name: any;\n control: any;\n shouldUnregister?: boolean;\n isInModal?: boolean;\n additionalonchangefunction?: (\n newMembership: DefaultFilters,\n options: DefaultOptions | MembershipOptions\n ) => void;\n membershipDefaultValue: any;\n membershipOptions: MembershipOptions;\n}\n\ninterface Props extends Omit {\n options: DefaultOptions;\n defaultValue?: any;\n fetchEntities?: any;\n}\n\ninterface MembershipOptions {\n useOperator: boolean;\n useOrganization: boolean;\n useDivision: boolean;\n useSubdivision: boolean;\n useAgent: boolean;\n useGroup: boolean;\n showAllOperator: boolean;\n showAllOrganization: boolean;\n showAllDivision: boolean;\n showAllSubdivision: boolean;\n showAllAgent: boolean;\n showAllGroup: boolean;\n filterOperator: boolean;\n filterOrganization: boolean;\n filterDivision: boolean;\n filterSubdivision: boolean;\n filterGroup: boolean;\n isOperatorDisabled: boolean;\n isOrganizationDisabled: boolean;\n isDivisionDisabled: boolean;\n isSubdivisionDisabled: boolean;\n isAgentDisabled: boolean;\n isGroupDisabled: boolean;\n //\n colSize: number;\n subdivisionPlaceholder: string;\n}\n\nconst Dropdowns: FC = (props) => {\n const {\n name,\n control,\n shouldUnregister = false,\n isInModal = false,\n additionalonchangefunction = (newMembership, options) => null,\n membershipDefaultValue,\n membershipOptions\n } = props;\n\n const { field: operatorField, fieldState: operatorFieldState } = useController({\n name: name + '.operatorId',\n control: control,\n shouldUnregister: shouldUnregister,\n defaultValue: membershipDefaultValue?.operatorId,\n rules: { required: membershipOptions.useOperator && !membershipOptions.showAllOperator }\n });\n\n const { field: organizationField, fieldState: organizationFieldState } = useController({\n name: name + '.organizationId',\n control: control,\n shouldUnregister: shouldUnregister,\n defaultValue: membershipDefaultValue?.organizationId,\n rules: { required: membershipOptions.useOrganization && !membershipOptions.showAllOrganization }\n });\n\n const { field: divisionField, fieldState: divisionFieldState } = useController({\n name: name + '.divisionId',\n control: control,\n shouldUnregister: shouldUnregister,\n defaultValue: membershipDefaultValue?.divisionId,\n rules: { required: membershipOptions.useDivision && !membershipOptions.showAllDivision }\n });\n\n const { field: subdivisionField, fieldState: subdivisionFieldState } = useController({\n name: name + '.subdivisionId',\n control: control,\n shouldUnregister: shouldUnregister,\n defaultValue: membershipDefaultValue?.subdivisionId,\n rules: { required: membershipOptions.useSubdivision && !membershipOptions.showAllSubdivision }\n });\n\n const { field: groupField, fieldState: groupFieldState } = useController({\n name: name + '.groupId',\n control: control,\n shouldUnregister: shouldUnregister,\n defaultValue: membershipDefaultValue?.groupId,\n rules: { required: membershipOptions.useGroup && !membershipOptions.showAllGroup }\n });\n\n const intl = useIntl();\n //Selectors de las listas para los dropdowns\n const {\n operatorsList,\n organizationsList,\n divisionsList,\n subdivisionsList,\n agentsList,\n groupList\n } = useSelector((state) => ({\n operatorsList: operatorSelectors.getOperatorsList(state).map((operator) => ({\n value: operator.operatorId,\n label: operator.operatorName\n })),\n organizationsList: membershipOptions.useOperator\n ? organizationSelectors\n .getOrganizationsListBySelectedOperator(state, {\n operatorId: operatorField.value\n })\n .map((organization) => ({\n value: organization.organizationId,\n label: organization.organizationName\n }))\n : organizationSelectors.getOrganizationsList(state).map((organization) => ({\n value: organization.organizationId,\n label: organization.organizationName\n })),\n divisionsList:\n membershipOptions.useOrganization || membershipOptions.filterOrganization\n ? divisionSelectors\n .getDivisionsListBySelectedOrganization(state, {\n operatorId: operatorField.value,\n organizationId: organizationField.value ?? membershipOptions.filterOrganization\n })\n .map((division) => ({\n value: division.divisionId,\n label: division.divisionName\n }))\n : divisionSelectors.getDivisionsList(state).map((division) => ({\n value: division.divisionId,\n label: division.divisionName\n })),\n subdivisionsList: membershipOptions.useDivision\n ? subdivisionSelectors\n .getSubdivisionsListBySelectedDivision(state, {\n operatorId: operatorField.value,\n organizationId: organizationField.value,\n divisionId: divisionField.value\n })\n .map((subdivision) => ({\n value: subdivision.subdivisionId,\n label: subdivision.subdivisionName\n }))\n : subdivisionSelectors.getSubdivisionsList(state).map((subdivision) => ({\n value: subdivision.subdivisionId,\n label: subdivision.subdivisionName\n })),\n agentsList: membershipOptions.useAgent\n ? agentsSelectors\n .getAgentsListByMembership(state, {\n operatorId: operatorField.value\n })\n .map((agent) => ({\n value: agent.agentId,\n label: agent.agentName\n }))\n : agentsSelectors.getAgentsList(state).map((agent) => ({\n value: agent.agentId,\n label: agent.agentName\n })),\n groupList: groupsSelectors.getGroupsList(state).map((group) => ({\n value: group.groupId,\n label: group.groupName\n }))\n }));\n\n //Actualizar el modelo que tiene el padre del componente\n useEffect(() => {\n finalOnChange({\n operatorId: operatorField.value,\n organizationId: organizationField.value,\n divisionId: divisionField.value,\n subdivisionId: subdivisionField.value,\n groupId: groupField.value\n });\n }, [\n operatorField.value,\n organizationField.value,\n divisionField.value,\n subdivisionField.value,\n groupField.value\n ]);\n\n const finalOnChange = (values) => {\n additionalonchangefunction(values, membershipOptions);\n };\n return (\n \n \n {membershipOptions.useOperator && (\n \n {\n if (operatorField.value !== value) {\n operatorField.onChange(value);\n organizationField.onChange(null);\n divisionField.onChange(null);\n subdivisionField.onChange(null);\n groupField.onChange(null);\n }\n }\n }}\n fieldstate={operatorFieldState}\n forceinitialvalue={membershipDefaultValue.operatorId}\n required={!membershipOptions.showAllOperator}\n isClearable={membershipOptions.showAllOperator}\n onClear={() => {\n operatorField.onChange(null);\n organizationField.onChange(null);\n divisionField.onChange(null);\n subdivisionField.onChange(null);\n groupField.onChange(null);\n }}\n id={'operatorInput'}\n isInModal={isInModal}\n isDisabled={membershipOptions.isOperatorDisabled}\n options={operatorsList}\n label={intl.formatMessage({\n id: 'operators.operator'\n })}\n placeholder={intl.formatMessage({\n id: membershipOptions.showAllOperator ? 'common.all' : 'operators.selectOperator'\n })}\n />\n \n )}\n {membershipOptions.useOrganization && (\n \n {\n if (organizationField.value !== value) {\n organizationField.onChange(value);\n divisionField.onChange(null);\n subdivisionField.onChange(null);\n groupField.onChange(null);\n }\n }\n }}\n fieldstate={organizationFieldState}\n forceinitialvalue={membershipDefaultValue.organizationId}\n required={!membershipOptions.showAllOrganization}\n isClearable={membershipOptions.showAllOrganization}\n onClear={() => {\n organizationField.onChange(null);\n divisionField.onChange(null);\n subdivisionField.onChange(null);\n groupField.onChange(null);\n }}\n id={'organizationInput'}\n isInModal={isInModal}\n isDisabled={membershipOptions.isOrganizationDisabled}\n options={organizationsList}\n label={intl.formatMessage({\n id: 'organizations.organization'\n })}\n placeholder={intl.formatMessage({\n id: membershipOptions.showAllOrganization\n ? 'common.all'\n : 'organizations.selectOrganization'\n })}\n />\n \n )}\n {membershipOptions.useDivision && (\n \n {\n if (divisionField.value !== value) {\n divisionField.onChange(value);\n subdivisionField.onChange(null);\n groupField.onChange(null);\n }\n }\n }}\n fieldstate={divisionFieldState}\n forceinitialvalue={membershipDefaultValue.divisionId}\n required={!membershipOptions.showAllDivision}\n isClearable={membershipOptions.showAllDivision}\n onClear={() => {\n divisionField.onChange(null);\n subdivisionField.onChange(null);\n groupField.onChange(null);\n }}\n id={'divisionInput'}\n isInModal={isInModal}\n isDisabled={membershipOptions.isDivisionDisabled}\n options={divisionsList}\n label={intl.formatMessage({\n id: 'divisions.division'\n })}\n placeholder={intl.formatMessage({\n id: membershipOptions.showAllDivision ? 'common.all' : 'divisions.selectDivision'\n })}\n />\n \n )}\n {membershipOptions.useSubdivision && (\n \n \n \n )}\n {membershipOptions.useAgent && (\n \n (\n \n )}\n />\n \n )}\n {membershipOptions.useGroup && (\n \n {\n if (groupField.value !== value) {\n groupField.onChange(value);\n }\n }\n }}\n fieldstate={groupFieldState}\n forceinitialvalue={membershipDefaultValue.groupId}\n required={!membershipOptions.showAllGroup}\n isClearable={membershipOptions.showAllGroup}\n onClear={() => {\n groupField.onChange(null);\n }}\n id={'groupInput'}\n isInModal={isInModal}\n isDisabled={membershipOptions.isGroupDisabled}\n options={groupList}\n label={intl.formatMessage({\n id: 'groups.group'\n })}\n placeholder={intl.formatMessage({\n id: membershipOptions.showAllGroup ? 'common.all' : 'users.selectGroup'\n })}\n />\n \n )}\n \n );\n};\n\nconst Membership: FC = (props) => {\n const {\n options = {},\n defaultValue = {\n groupId: null,\n agentId: null,\n operatorId: null,\n organizationId: null,\n divisionId: null,\n subdivisionId: null,\n operatorName: '',\n organizationName: '',\n divisionName: '',\n subdivisionName: '',\n agentName: '',\n groupName: ''\n },\n fetchEntities = true,\n additionalonchangefunction\n } = props;\n //Se inicializa model y options\n const [membershipDefaultValue, membershipOptions, isInitialize] = useMembership(\n options,\n defaultValue\n );\n\n return (\n \n {fetchEntities && }\n {isInitialize ? (\n \n ) : (\n \n \n \n )}\n \n );\n};\n\nexport default Membership;\n","/* -------------------------------------------------------------------------- */\n/* Componente Switch */\n/* -------------------------------------------------------------------------- */\n// Este componente contiene un Switch genĆ©rico que se utiliza en muchas pantallas de la aplicaciĆ³n.\nimport { useEffect, useState, Fragment } from 'react';\nimport { FormGroup, CustomInput, Tooltip } from 'reactstrap';\n\ninterface Props {\n field: any;\n label: any;\n tooltipMessage?: string;\n forceinitialvalue?: boolean;\n additionalonchangefunction?: Function;\n className?: string;\n disabled?: boolean;\n onAfterChange?: Function;\n}\n\nconst SwitchInput = (props: Props) => {\n const {\n field,\n label,\n forceinitialvalue,\n disabled = false,\n additionalonchangefunction,\n tooltipMessage = null,\n className = 'mt-2 mb-2',\n onAfterChange = (v, t) => {}\n } = props;\n const [tooltipOpen, setTooltipOpen] = useState(false);\n const toggle = () => setTooltipOpen(!tooltipOpen);\n useEffect(() => {\n if (field.value != undefined) onChangeFinal(field.value);\n }, [field.value]);\n\n useEffect(() => {\n if (forceinitialvalue != undefined) onChangeFinal(forceinitialvalue);\n }, [forceinitialvalue]);\n\n const onChangeFinal = (value) => {\n field.onChange(value);\n\n if (additionalonchangefunction) {\n additionalonchangefunction(value);\n }\n };\n\n return (\n <>\n \n {label}}\n checked={field.value ?? ''}\n onChange={() => {\n onChangeFinal(!field.value);\n onAfterChange(!field.value, field.name);\n }}\n disabled={disabled}\n />\n \n {tooltipMessage && (\n \n {tooltipMessage}\n \n )}\n \n );\n};\n\nSwitchInput.defaultProps = {\n label: '',\n initialValue: false\n};\n\nexport default SwitchInput;\n","import ReactHtmlParser from 'react-html-parser';\nimport {\n Badge,\n Card,\n CardBody,\n CardText,\n Col,\n ListGroup,\n ListGroupItem,\n Row,\n Media\n} from 'reactstrap';\nimport Icon from 'utility/icomoon';\nimport MapsBasic from 'views/components/Map';\nimport Avatar from '../../../../@core/components/avatar';\nimport { appIntl } from '../../../../utility/context/IntlGlobalProvider';\nimport FilesGallery from '../../../components/FilesGallery';\n\nconst style = getComputedStyle(document.body);\nconst successColor = style.getPropertyValue('--success');\nconst warningColor = style.getPropertyValue('--warning');\nconst dangerColor = style.getPropertyValue('--danger');\nconst infoColor = style.getPropertyValue('--info');\n\nexport const getJobDescriptionTemplate = (job) => {\n return job?.jobDescription ? ReactHtmlParser(job.jobDescription) : 'N/A';\n};\nexport const getJobPriorityColor = (priority) => {\n return priority == 1 ? dangerColor : priority == 2 ? warningColor : successColor;\n};\nexport const getImportedJobStatusColorClass = (success) => {\n return success ? 'light-success' : 'light-danger';\n};\nexport const getJobPriorityTemplate = (job) => {\n const color = job.jobPriority == 1 ? 'danger' : job.jobPriority == 2 ? 'warning' : 'success';\n const priorityColor = `light-${color}`;\n return (\n \n \n \n {appIntl().formatMessage({ id: `jobs.priority.${job.jobPriority}` })}\n \n \n );\n};\n\nexport const getJobTypeIcon = (jobBacklogTypeId) => {\n switch (parseInt(jobBacklogTypeId)) {\n case 1:\n return 'Pickup';\n case 2:\n return 'Delivery';\n case 3:\n return 'PickupAndDelivery';\n case 4:\n return 'LongProcess';\n case 5:\n return 'Maintainance';\n case 6:\n return 'Repair';\n case 7:\n return 'Assistance';\n case 8:\n return 'Visit';\n case 9:\n return 'Emergency';\n case 10:\n return 'Other';\n case 11:\n return 'Meeting';\n default:\n return 'JobsBacklog';\n }\n};\n\nexport const jobTypesList = [\n {\n jobTypeId: 1,\n icon: ,\n label: 'jobs.jobType.1'\n },\n {\n jobTypeId: 2,\n icon: ,\n label: 'jobs.jobType.2'\n },\n {\n jobTypeId: 3,\n icon: ,\n label: 'jobs.jobType.3'\n },\n {\n jobTypeId: 4,\n icon: ,\n label: 'jobs.jobType.4'\n },\n {\n jobTypeId: 5,\n icon: ,\n label: 'jobs.jobType.5'\n },\n {\n jobTypeId: 6,\n icon: ,\n label: 'jobs.jobType.6'\n },\n {\n jobTypeId: 7,\n icon: ,\n label: 'jobs.jobType.7'\n },\n {\n jobTypeId: 8,\n icon: ,\n label: 'jobs.jobType.8'\n },\n {\n jobTypeId: 9,\n icon: ,\n label: 'jobs.jobType.9'\n },\n {\n jobTypeId: 10,\n icon: ,\n label: 'jobs.jobType.10'\n },\n {\n jobTypeId: 11,\n icon: ,\n label: 'jobs.jobType.11'\n }\n];\n\nexport const getJobTypeTemplate = (job, center = true) => {\n return (\n
\n \n \n \n {appIntl().formatMessage({\n id: `jobs.jobType.${job.jobTypeId}`\n })}\n \n \n
\n );\n};\n\nexport const getJobRequesterTemplate = (job) => {\n return job.requesterUserName ? (\n \n \n \n ) : (\n 'N/A'\n );\n};\n\nexport const getJobRequesterInfoTemplate = (job) => {\n return job.requesterUserName ? (\n \n \n {`${job.requesterCompleteName}`}\n \n ) : (\n 'N/A'\n );\n};\n\nexport const getUsersText = (job) => {\n let users;\n if (!job.users) {\n users = [];\n } else {\n users = job.users.split(';');\n }\n\n return users.map((user) => user.split(',')[1]).join(' + ');\n};\n\nexport const getJobUsersRowTemplate = (job, center = true) => {\n let users;\n if (!job.users) {\n users = [];\n } else {\n users = job.users.split(';');\n }\n\n return (\n \n {users.map((userSplit, idx) => {\n const user = userSplit.split(',');\n const userName = user[0];\n const completeName = user[1];\n const userImageUrl = user[2];\n return (\n \n \n \n );\n })}\n \n );\n};\n\nexport const getJobNotificationEmailsTemplate = (job) => {\n let notificationEmails;\n if (!job.notificationEmails) {\n notificationEmails = [];\n } else {\n notificationEmails = job.notificationEmails.split(',');\n }\n return notificationEmails.length > 0 ? (\n \n {notificationEmails.map((nemail, idx) => {\n return (\n \n \n {`${nemail}`}\n \n );\n })}\n \n ) : (\n 'N/A'\n );\n};\n\nexport const getJobUsersInfoTemplate = (job) => {\n let users;\n if (!job.users) {\n users = [];\n } else {\n users = job.users.split(';');\n }\n return (\n \n {users.map((userSplit, idx) => {\n const user = userSplit.split(',');\n const userName = user[0];\n const completeName = user[1];\n const userImageUrl = user[2];\n return (\n \n \n {`${completeName} <${user[0]}>`}\n \n );\n })}\n \n );\n};\n\nexport const getJobFormsInfoTemplate = (job) => {\n let forms;\n if (!job.forms) {\n forms = [];\n } else {\n forms = job.forms.split(';');\n }\n\n return forms.length > 0 ? (\n \n {forms.map((formSplit, idx) => {\n const form = formSplit.split(',');\n const organicationFormId = form[0];\n const organizationFormName = form[1];\n const formResponsesCount = form[2];\n return (\n \n \n {`${organizationFormName}`}\n\n \n {formResponsesCount}\n \n \n );\n })}\n \n ) : (\n 'N/A'\n );\n};\n\nexport const getJobFilesInfoTemplate = (job) => {\n let files;\n if (!job.files) {\n files = [];\n } else {\n files = job.files.split(';');\n }\n\n return files.length > 0 ? (\n \n \n {\n const file = fileSplit.split(',');\n return {\n fileName: file[1],\n fileUrl: file[2],\n fileExtension: file[4]\n };\n })}\n />\n \n \n ) : (\n 'N/A'\n );\n};\n\nexport const getTotalEstimatedTimeTemplate = (job) => {\n return {job.estimatedDurationText};\n};\n\nexport const getTotalExecutionTimeTemplate = (job: {\n jobId?: string | number;\n estimatedDuration?: number;\n totalExecutionTime?: number;\n totalExecutionTimeText?: string;\n}) => {\n const totalExecutionIsOnTime =\n job?.totalExecutionTime &&\n job?.estimatedDuration &&\n job?.totalExecutionTime <= job?.estimatedDuration &&\n job.estimatedDuration != 0;\n // const totalExecutionIsLate =\n // job.totalExecutionTime > job.estimatedDuration && job.estimatedDuration != 0;\n const totalExecutionIsNotEstimated = job.estimatedDuration == 0;\n const totalExecutionTimeColor = totalExecutionIsNotEstimated\n ? 'light-warning'\n : totalExecutionIsOnTime\n ? 'light-success'\n : 'light-info';\n return (\n \n \n \n {job.totalExecutionTimeText ?? ''}\n \n \n );\n};\n\nexport const getJobStatusColor = (jobStatus) => {\n const colorsJobStatus = {\n canceled: '#490002',\n other: '#626262',\n finalized: '#2ed573',\n active: '#7D39F6',\n rescheduled: '#1AA6FB',\n scheduledFuture: '#FD9800',\n paused: '#ff7a00',\n incomplete: '#ff4459',\n backlog: '#00EAD5'\n };\n switch (parseInt(jobStatus)) {\n case 1:\n return colorsJobStatus.active;\n case 2:\n return colorsJobStatus.paused;\n case 3:\n return colorsJobStatus.finalized;\n case 4:\n return colorsJobStatus.incomplete;\n case 5:\n return colorsJobStatus.rescheduled;\n case 6:\n return colorsJobStatus.scheduledFuture;\n case 7:\n return colorsJobStatus.canceled;\n case 8:\n return colorsJobStatus.backlog;\n\n default:\n return colorsJobStatus.other;\n }\n};\n\nexport const getJobStatusColorClass = (jobStatus) => {\n switch (parseInt(jobStatus)) {\n case 1:\n return 'light-active';\n case 2:\n return 'light-paused';\n case 3:\n return 'light-finalized';\n case 4:\n return 'light-incomplete';\n case 5:\n return 'light-rescheduled';\n case 6:\n return 'light-scheduled';\n case 7:\n return 'light-canceled';\n case 8:\n return 'light-backlog';\n\n default:\n return 'light-other';\n }\n};\n\nexport const getJobStatusIcon = (jobStatus) => {\n switch (parseInt(jobStatus)) {\n case 1:\n return 'PlayCircle';\n case 2:\n return 'PauseCircle';\n case 3:\n return 'CheckCircle';\n case 4:\n return 'AlertTriangle';\n case 5:\n return 'RotateCw';\n case 6:\n return 'Calendar';\n case 7:\n return 'XCircle';\n case 8:\n return 'Server';\n default:\n return 'Jobs';\n }\n};\n\nexport const getJobStatusTemplate = (job) => {\n return (\n \n \n \n {job.jobStatusText}\n \n \n );\n};\n\nexport const cardJobTemplate = (job: any) => {\n return (\n
\n
\n
\n
{job.jobTitle}
\n
{getJobTypeTemplate(job, false)}
\n
\n
\n
\n
{getJobDescriptionTemplate(job)}
\n
\n
\n \n \n {getJobUsersRowTemplate(job, false)}\n \n \n
\n

{job.startDateFormat}

\n

{job.dueDateFormat}

\n
\n \n
\n
\n
\n );\n};\n\nexport const getJobStatusTitleColumnsTemplate = (job) => {\n return (\n \n \n {job.jobStatusText}\n \n \n {`${job.count} ${job.intlTasks}`}\n \n \n );\n};\n\nexport const getJobStatusText = (job) => {\n const today = new Date();\n if (\n job.startDate != null &&\n new Date(job.startDate).getDate() == today.getDate() &&\n job.jobStatus == 6\n ) {\n return appIntl().formatMessage({ id: `jobs.status.${job.jobStatus}.today` });\n }\n return appIntl().formatMessage({ id: `jobs.status.${job.jobStatus}` });\n};\n\nexport const getJobLocationTemplate = (job) => {\n return (\n job.locationId != null && (\n \n \n \n )\n );\n};\nexport const getJobLocationInfoTemplate = (job) => {\n return job.locationId != null ? (\n
\n \n
\n ) : null;\n};\n\nexport const followingJobsSuccessChangeStatus = ({\n messageId,\n propertyChange,\n status,\n successJobs,\n intl\n}) => {\n return (\n \n \n \n {intl.formatMessage(\n { id: messageId },\n { propertyChange: intl.formatMessage({ id: propertyChange }), status: status }\n )}\n \n \n {successJobs?.map((job, i) => {\n return (\n \n \n {job.jobId}\n \n {job.jobTitle}\n \n );\n })}\n \n \n \n );\n};\n\nexport const minsToDurationTimeText = (mins: number) => {\n // time definitions in order to make it explicit\n const minutesInADay = 3600;\n const secondsInAHour = 3600;\n const secondInAMinute = 60;\n const hoursInADay = 24;\n\n let seconds = Math.round(mins * secondInAMinute); // calculates all the seconds\n const days = Math.floor(seconds / (minutesInADay * hoursInADay)); //calculates the days\n\n seconds -= days * secondsInAHour * hoursInADay; // subtract the days from the seconds\n\n const hours = Math.floor(seconds / secondsInAHour); // calculates all the hours\n\n seconds -= hours * secondsInAHour; // subtract hour seconds from second\n\n const minutes = Math.floor(seconds / secondInAMinute); // calculates minutes\n\n seconds -= minutes * secondInAMinute; // subtract all the minute seconds from the seconds\n\n // ['12 d', '5 h', '15 m', '10 s']\n const timeArray: string[] = [];\n days && timeArray.push(days + 'd');\n (days || hours) && timeArray.push(hours + 'h');\n (days || hours || minutes) && timeArray.push(minutes + 'm');\n timeArray.push(seconds + 's');\n\n // '12d 5h 15m 10s'\n return timeArray.join(' ');\n};\n\nexport const convertHtmlToText = (html) => {\n // Create a new div element\n var tempDivElement = document.createElement('div');\n\n // Set the HTML content with the given value\n tempDivElement.innerHTML = html;\n\n // Retrieve the text property of the element\n return tempDivElement.textContent || tempDivElement.innerText || '';\n};\n","import { combineReducers } from 'redux';\n\nimport omit from 'lodash/omit';\nimport union from 'lodash/union';\nimport forEach from 'lodash/forEach';\nimport uniq from 'lodash/uniq';\nimport * as officeSelectors from 'views/screens/Offices/reducers';\n\nimport * as types from '../types';\n\nconst byId = (state = {}, action) => {\n switch (action.type) {\n //TYPES COMPLETED FETCH, ADD AND EDIT\n case types.CUSTOMERS_FETCH_COMPLETED:\n case types.CUSTOMERS_PARTIAL_FETCH_COMPLETED: {\n const { entities, order } = action.payload;\n const newState = { ...state };\n order.forEach((customerId) => {\n newState[customerId] = {\n isSelected: false,\n ...state[customerId],\n ...entities[customerId],\n isConfirmed: true\n };\n });\n return newState;\n }\n\n case types.CUSTOMER_ADD_COMPLETED: {\n const { oldId, customer } = action.payload;\n const newState = omit(state, oldId);\n newState[customer.customerId] = {\n ...state[oldId],\n ...customer,\n isConfirmed: true\n };\n return newState;\n }\n\n case types.CUSTOMER_EDIT_COMPLETED: {\n const { customer } = action.payload;\n return {\n ...state,\n [customer.customerId]: {\n ...omit(state[customer.customerId], ['oldCustomer']),\n ...omit(customer, ['oldCustomer']),\n isConfirmed: true\n }\n };\n }\n\n //TYPES STARTED ADD AND EDIT\n case types.CUSTOMER_ADD_STARTED: {\n const customer = action.payload;\n const newState = { ...state };\n newState[customer.customerId] = {\n isSelected: false,\n ...customer,\n isConfirmed: false\n };\n return newState;\n }\n case types.CUSTOMER_EDIT_STARTED: {\n const customer = action.payload;\n return {\n ...state,\n [customer.customerId]: {\n ...state[customer.customerId],\n oldCustomer: state[customer.customerId],\n ...customer,\n isConfirmed: false\n }\n };\n }\n\n //TYPES FAILED ADD AND EDIT\n case types.CUSTOMER_ADD_FAILED: {\n const { oldId } = action.payload;\n if (state[oldId]) {\n return omit(state, oldId);\n }\n return state;\n }\n case types.CUSTOMER_EDIT_FAILED: {\n const { oldCustomer } = action.payload;\n return {\n ...state,\n [oldCustomer.customerId]: {\n ...omit(state[oldCustomer.customerId], ['oldCustomer']),\n ...oldCustomer,\n isConfirmed: true\n }\n };\n }\n\n //TYPES REMOVE COMPLETED\n case types.CUSTOMER_REMOVE_COMPLETED: {\n const { customerId } = action.payload;\n return omit(state, customerId);\n }\n\n //TYPES SELECTED AND DESELECTED\n case types.CUSTOMER_SELECTED: {\n const customerId = action.payload;\n const newState = {\n ...state,\n [customerId]: {\n ...state[customerId],\n isSelected: true\n }\n };\n return newState;\n }\n\n case types.CUSTOMER_DESELECTED: {\n const customerId = action.payload;\n return {\n ...state,\n [customerId]: {\n ...state[customerId],\n isSelected: false\n }\n };\n }\n\n case types.CUSTOMERS_ALL_SELECTED: {\n const customerIds = action.payload;\n const newState = { ...state };\n if (customerIds.length == 0) {\n forEach(state, (customer: any, customerId) => {\n newState[customerId] = {\n ...customer,\n isSelected: true\n };\n });\n } else {\n customerIds.forEach((customerId) => {\n newState[customerId] = {\n ...state[customerId],\n isSelected: true\n };\n });\n }\n\n return newState;\n }\n\n case types.CUSTOMERS_ALL_DESELECTED: {\n const customerIds = action.payload;\n const newState = { ...state };\n if (customerIds.length == 0) {\n forEach(state, (customer: any, customerId) => {\n newState[customerId] = {\n ...customer,\n isSelected: false\n };\n });\n } else {\n customerIds.forEach((customerId) => {\n newState[customerId] = {\n ...state[customerId],\n isSelected: false\n };\n });\n }\n\n return newState;\n }\n\n //DEFAULT\n default: {\n return state;\n }\n }\n};\n\nconst order = (state = [], action) => {\n switch (action.type) {\n //CASE COMPLETED FETCH, ADD AND REMOVE\n case types.CUSTOMERS_FETCH_COMPLETED:\n case types.CUSTOMERS_PARTIAL_FETCH_COMPLETED: {\n const { order } = action.payload;\n return uniq([...state, ...order]);\n }\n\n case types.CUSTOMER_ADD_COMPLETED: {\n const { oldId, customer } = action.payload;\n return state.map((customerId) => (customerId === oldId ? customer.customerId : customerId));\n }\n\n case types.CUSTOMER_REMOVE_COMPLETED: {\n const { customerId } = action.payload;\n return state.filter((customerIdState) => customerIdState !== customerId);\n }\n\n //CASE ADD STARTED\n case types.CUSTOMER_ADD_STARTED: {\n const customer = action.payload;\n return [...state, customer.customerId];\n }\n\n //CASE ADD FAILED\n case types.CUSTOMER_ADD_FAILED: {\n const { oldId } = action.payload;\n return state.filter((customerIdState) => customerIdState !== oldId);\n }\n\n //DEFAULT\n default: {\n return state;\n }\n }\n};\n\n// STATES TO KNOW IF IT IS FETCHING, ADDING OR EDITING\nconst isFetchingList = (state = false, action) => {\n switch (action.type) {\n case types.CUSTOMERS_FETCH_STARTED: {\n return true;\n }\n case types.CUSTOMERS_FETCH_COMPLETED:\n case types.CUSTOMERS_FETCH_FAILED: {\n return false;\n }\n default: {\n return state;\n }\n }\n};\n\nconst isPartialFetchingList = (state = false, action) => {\n switch (action.type) {\n case types.CUSTOMERS_PARTIAL_FETCH_STARTED: {\n return true;\n }\n case types.CUSTOMERS_PARTIAL_FETCH_COMPLETED:\n case types.CUSTOMERS_PARTIAL_FETCH_FAILED: {\n return false;\n }\n default: {\n return state;\n }\n }\n};\n\nconst isAdding = (state = false, action) => {\n switch (action.type) {\n case types.CUSTOMER_ADD_STARTED: {\n return true;\n }\n case types.CUSTOMER_ADD_COMPLETED:\n case types.CUSTOMER_ADD_FAILED: {\n return false;\n }\n default: {\n return state;\n }\n }\n};\n\nconst isEditing = (state = false, action) => {\n switch (action.type) {\n case types.CUSTOMER_EDIT_STARTED: {\n return true;\n }\n case types.CUSTOMER_EDIT_COMPLETED:\n case types.CUSTOMER_EDIT_FAILED: {\n return false;\n }\n default: {\n return state;\n }\n }\n};\n\nconst isRemoving = (state = false, action) => {\n switch (action.type) {\n case types.CUSTOMER_REMOVE_STARTED: {\n return true;\n }\n case types.CUSTOMER_REMOVE_COMPLETED:\n case types.CUSTOMER_REMOVE_FAILED: {\n return false;\n }\n default: {\n return state;\n }\n }\n};\n\nconst errorFetchingList = (state = null, action) => {\n switch (action.type) {\n case types.CUSTOMERS_FETCH_FAILED: {\n const { error } = action.payload;\n return error;\n }\n case types.CUSTOMERS_FETCH_STARTED:\n case types.CUSTOMERS_FETCH_COMPLETED: {\n return null;\n }\n default: {\n return state;\n }\n }\n};\n\nconst errorPartialFetchingList = (state = null, action) => {\n switch (action.type) {\n case types.CUSTOMERS_PARTIAL_FETCH_FAILED: {\n const { error } = action.payload;\n return error;\n }\n case types.CUSTOMERS_PARTIAL_FETCH_STARTED:\n case types.CUSTOMERS_PARTIAL_FETCH_COMPLETED: {\n return null;\n }\n default: {\n return state;\n }\n }\n};\n\nconst errorAdding = (state = null, action) => {\n switch (action.type) {\n case types.CUSTOMER_ADD_FAILED: {\n const { error } = action.payload;\n return error;\n }\n case types.CUSTOMER_ADD_STARTED:\n case types.CUSTOMER_ADD_COMPLETED: {\n return null;\n }\n default: {\n return state;\n }\n }\n};\n\nconst errorEditing = (state = null, action) => {\n switch (action.type) {\n case types.CUSTOMER_EDIT_FAILED: {\n const { error } = action.payload;\n return error;\n }\n case types.CUSTOMER_EDIT_STARTED:\n case types.CUSTOMER_EDIT_COMPLETED: {\n return null;\n }\n default: {\n return state;\n }\n }\n};\n\nconst errorRemoving = (state = null, action) => {\n switch (action.type) {\n case types.CUSTOMER_REMOVE_FAILED: {\n const { error } = action.payload;\n return error;\n }\n case types.CUSTOMER_REMOVE_STARTED:\n case types.CUSTOMER_REMOVE_COMPLETED: {\n return null;\n }\n default: {\n return state;\n }\n }\n};\n\nconst customers = combineReducers({\n byId,\n order,\n isPartialFetchingList,\n isFetchingList,\n isAdding,\n isEditing,\n isRemoving,\n errorPartialFetchingList,\n errorFetchingList,\n errorAdding,\n errorEditing,\n errorRemoving\n});\n\nexport default customers;\n\n//Own state\nexport const getOwnState = (state) => state.customers;\n\n//Information\nexport const getCustomer = (state, customerId: number): types.Customer | undefined => {\n const customer = getOwnState(state).byId[customerId];\n if (customer) {\n const office = officeSelectors.getOffice(state, customer.officeId) ?? {};\n return {\n ...customer,\n ...omit(office, ['privateCode', 'isConfirmed', 'isSelected']),\n officePrivateCode: office?.privateCode\n };\n } else return undefined;\n};\nexport const getCustomersList = (state): types.Customer[] =>\n getOwnState(state)\n .order.map((id) => getCustomer(state, id))\n .filter((customer) => customer.customerStatus > 0);\n\nexport const getCustomersListByMembership = (state, membership) => {\n //Se filtra por membership\n return getCustomersList(state).filter(\n (customer) =>\n membership &&\n (!membership.organizationId || membership.organizationId === customer.organizationId) &&\n (!membership.divisionId || membership.divisionId === customer.divisionId) &&\n (!membership.subdivisionId || membership.subdivisionId === customer.subdivisionId)\n );\n};\n\nexport const getNotAssignedCustomersList = (state, locationId) =>\n getCustomersList(state).filter(\n // @ts-ignore location is saved on \"office\" not \"customer\" #TODO: Implement type for office\n (customer) => !customer?.locationId || (locationId && customer?.locationId === locationId)\n );\n\nexport const getSelectedCustomers = (state) => {\n const selectedCustomers = getCustomersList(state).filter((customer) => customer.isSelected);\n //Si no se selecciona ninguno devuelve null\n if (selectedCustomers.length === 0) return null;\n //Si se selecciona mƔs de cero se devuelve el arreglo de los seleccionados\n if (selectedCustomers.length > 0) return selectedCustomers;\n};\n\nexport const getSelectedCustomer = (state) => {\n const selectedCustomers = getCustomersList(state).filter((customer) => customer.isSelected);\n //Si se selecciona solo uno devuelve solo el seleccionado\n if (selectedCustomers.length === 1) return selectedCustomers[0];\n //De lo contrario se devuelve null\n else return null;\n};\n\n//Status of sagas\nexport const isPartialFetchingListCustomers = (state) => getOwnState(state).isPartialFetchingList;\nexport const isFetchingListCustomers = (state) => getOwnState(state).isFetchingList;\nexport const isAddingCustomer = (state) => getOwnState(state).isAdding;\nexport const isEditingCustomer = (state) => getOwnState(state).isEditing;\nexport const isRemovingCustomer = (state) => getOwnState(state).isRemoving;\n\n//Errors\nexport const getPartialFetchingListCustomersErrors = (state) =>\n getOwnState(state).errorPartialFetchingList;\nexport const getFetchingListCustomersErrors = (state) => getOwnState(state).errorFetchingList;\nexport const getAddingCustomerErrors = (state) => getOwnState(state).errorAdding;\nexport const getEditingCustomerErrors = (state) => getOwnState(state).errorEditing;\nexport const getRemovingCustomerErrors = (state) => getOwnState(state).errorRemoving;\n","const permissions = {\n addGeofence: 'GF002',\n editGeofence: 'GF004',\n removeGeofence: 'GF003',\n listGeofencesOnMap: 'GF001',\n listGeofences: 'GF005',\n listAsignedGeofences: 'GF006',\n asignGeofenceToUnit: 'GF007',\n unasignGeofenceToUnit: 'GF008'\n};\n\nexport default permissions;\n","import union from 'lodash/union';\nimport { combineReducers } from 'redux';\nimport { appIntl } from '../../../../utility/context/IntlGlobalProvider';\nimport Icon from '../../../../utility/icomoon';\nimport * as types from '../../../types/static-catalogs';\n\nconst byId = (state = {}, action) => {\n switch (action.type) {\n //TYPES COMPLETED FETCH, ADD AND EDIT\n case types.LOCATION_CLASSES_FETCH_COMPLETED: {\n const { entities, order } = action.payload;\n const newState = { ...state };\n order.forEach((locationClassId) => {\n newState[locationClassId] = {\n isSelected: false,\n ...state[locationClassId],\n ...entities[locationClassId],\n isConfirmed: true\n };\n });\n return newState;\n }\n\n //DEFAULT\n default: {\n return state;\n }\n }\n};\n\nconst order = (state = [], action) => {\n switch (action.type) {\n //CASE COMPLETED FETCH, ADD AND REMOVE\n case types.LOCATION_CLASSES_FETCH_COMPLETED: {\n const { order } = action.payload;\n return union(order);\n }\n\n //DEFAULT\n default: {\n return state;\n }\n }\n};\n\n// STATES TO KNOW IF IT IS FETCHING, ADDING OR EDITING\nconst isFetchingList = (state = false, action) => {\n switch (action.type) {\n case types.LOCATION_CLASSES_FETCH_STARTED: {\n return true;\n }\n case types.LOCATION_CLASSES_FETCH_COMPLETED:\n case types.LOCATION_CLASSES_FETCH_FAILED: {\n return false;\n }\n default: {\n return state;\n }\n }\n};\n\nconst hasAlreadyFetched = (state = false, action) => {\n switch (action.type) {\n case types.LOCATION_CLASSES_FETCH_COMPLETED: {\n return true;\n }\n default: {\n return state;\n }\n }\n};\n\nconst errorFetchingList = (state = null, action) => {\n switch (action.type) {\n case types.LOCATION_CLASSES_FETCH_FAILED: {\n const { error } = action.payload;\n return error;\n }\n case types.LOCATION_CLASSES_FETCH_STARTED:\n case types.LOCATION_CLASSES_FETCH_COMPLETED: {\n return null;\n }\n default: {\n return state;\n }\n }\n};\n\nconst locationClasses = combineReducers({\n byId,\n order,\n isFetchingList,\n hasAlreadyFetched,\n errorFetchingList\n});\n\nexport default locationClasses;\n\n//Own state\nexport const getOwnState = (state) => state.staticCatalogs.locationClasses;\n\n//Information\nexport const getLocationClass = (state, locationClassId) =>\n getOwnState(state).byId[locationClassId];\n\nexport const getLocationClassIconName = (state, locationClassId) => {\n let lc = getLocationClass(state, locationClassId);\n return lc ? (lc.locationClassIconName ? lc.locationClassIconName : 'MapPin') : 'MapPin';\n};\nexport const getLocationClassDropdownOption = (state, locationClassId) => {\n let lc = getLocationClass(state, locationClassId);\n return lc != undefined\n ? {\n ...lc,\n id: lc.locationClassId,\n value: lc.locationClassId,\n icon: (\n \n ),\n label: appIntl().formatMessage({ id: `locations.locationClass.${lc.locationClassId}` })\n }\n : null;\n};\n\nexport const getLocationClassesList = (state) =>\n getOwnState(state).order.map((id) => getLocationClass(state, id));\n\n//Status of sagas\nexport const isFetchingListLocationClasses = (state) => getOwnState(state).isFetchingList;\nexport const haveLocationClassesBeenFetched = (state) => getOwnState(state).hasAlreadyFetched;\n\n//Errors\nexport const getFetchingListLocationClassesErrors = (state) => getOwnState(state).errorFetchingList;\n","import { useState } from 'react';\nimport { useSelector } from 'react-redux';\nimport { Button, Tooltip } from 'reactstrap';\nimport Icon from 'utility/icomoon';\nimport * as authSelectors from '../../../redux/reducers/auth';\n\ninterface Props {\n id: string;\n icon: string;\n permissions?: any[];\n handleClick?: any;\n className?: string;\n tooltipMessage?: any;\n visible?: boolean;\n color?: string;\n cursor?: string;\n size?: number;\n}\n\nconst DefaultSimpleButton = (props: Props) => {\n const store = useSelector((state) => state);\n const {\n handleClick,\n tooltipMessage,\n icon,\n id,\n permissions,\n color,\n cursor = 'pointer',\n size,\n className,\n visible = true\n } = props;\n const [tooltipOpen, setTooltipOpen] = useState(false);\n const toggle = () => setTooltipOpen(!tooltipOpen);\n return !permissions || authSelectors.getAuthUserHasPermissionsAny(store, permissions) ? (\n
\n {visible ? (\n <>\n handleClick && handleClick()}\n />\n {tooltipMessage && (\n \n {tooltipMessage}\n \n )}\n \n ) : null}\n
\n ) : null;\n};\n\nDefaultSimpleButton.defaultProps = {\n id: 'DefaultSimpleButton',\n icon: 'Plus',\n isDisabled: false,\n className: ''\n};\n\nexport default DefaultSimpleButton;\n","import { combineReducers } from 'redux';\n\nimport omit from 'lodash/omit';\nimport union from 'lodash/union';\nimport forEach from 'lodash/forEach';\nimport uniq from 'lodash/uniq';\nimport { normalize } from 'normalizr';\nimport * as schemas from '../schemas';\nimport camelcaseKeys from 'camelcase-keys';\n\nimport * as authTypes from '../../../../redux/types/auth';\nimport * as types from '../types';\nimport localforage from 'localforage';\nimport autoMergeLevel2 from 'redux-persist/lib/stateReconciler/autoMergeLevel2';\nimport { persistReducer } from 'redux-persist';\n\nconst byId = (state = {}, action) => {\n switch (action.type) {\n case authTypes.AUTHENTICATION_IDENTITY_CLEARED: {\n return {};\n }\n\n //TYPES COMPLETED FETCH, ADD AND EDIT\n case types.GROUP_ADD_WITH_ENTITIES_COMPLETED:\n case types.GROUP_ADD_COMPLETED: {\n const { oldId, group } = action.payload;\n const newState = omit(state, oldId);\n newState[group.groupId] = {\n ...state[oldId],\n ...group\n };\n return newState;\n }\n\n case types.GROUP_EDIT_NOTIFICATIONS_CONFIGURATION_COMPLETED:\n case types.GROUP_EDIT_COMPLETED: {\n const group = action.payload;\n return {\n ...state,\n [group.groupId]: {\n ...omit(state[group.groupId], ['oldGroup']),\n ...omit(group, ['oldGroup'])\n }\n };\n }\n\n case types.GROUPS_FETCH_COMPLETED: {\n const { entities, order } = action.payload;\n const newState = {};\n order.forEach((groupId) => {\n const {\n entities: { users }\n } = normalize(\n entities[groupId].entities[0].map((entity) => camelcaseKeys(entity)),\n schemas.users\n ); //normalize data to byId for users\n const {\n entities: { locations }\n } = normalize(\n entities[groupId].entities[1].map((entity) => camelcaseKeys(entity)),\n schemas.locations\n ); //normalize data to byId for locations\n const {\n entities: { workplans }\n } = normalize(\n entities[groupId].entities[2].map((entity) => camelcaseKeys(entity)),\n schemas.workplans\n ); //normalize data to byId for workplans\n const {\n entities: { units }\n } = normalize(\n entities[groupId].entities[3].map((entity) => camelcaseKeys(entity)),\n schemas.units\n ); //normalize data to byId for units\n const {\n entities: { geofences }\n } = normalize(\n entities[groupId].entities[4].map((entity) => camelcaseKeys(entity)),\n schemas.geofences\n ); //normalize data to byId for geofences\n const {\n entities: { drivers }\n } = normalize(\n entities[groupId].entities[5].map((entity) => camelcaseKeys(entity)),\n schemas.drivers\n ); //normalize data to byId for drivers\n\n newState[groupId] = {\n ...state[groupId],\n isSelected: false,\n users: users ?? {},\n locations: locations ?? {},\n workplans: workplans ?? {},\n units: units ?? {},\n geofences: geofences ?? {},\n drivers: drivers ?? {},\n ...omit(entities[groupId], 'entities')\n };\n });\n return newState;\n }\n\n case types.GROUPS_PARTIAL_FETCH_COMPLETED: {\n const { entities, order } = action.payload;\n const newState = { ...state };\n order.forEach((groupId) => {\n const {\n entities: { users }\n } = normalize(\n entities[groupId].entities[0].map((entity) => camelcaseKeys(entity)),\n schemas.users\n ); //normalize data to byId for users\n const {\n entities: { locations }\n } = normalize(\n entities[groupId].entities[1].map((entity) => camelcaseKeys(entity)),\n schemas.locations\n ); //normalize data to byId for locations\n const {\n entities: { workplans }\n } = normalize(\n entities[groupId].entities[2].map((entity) => camelcaseKeys(entity)),\n schemas.workplans\n ); //normalize data to byId for workplans\n const {\n entities: { units }\n } = normalize(\n entities[groupId].entities[3].map((entity) => camelcaseKeys(entity)),\n schemas.units\n ); //normalize data to byId for units\n const {\n entities: { geofences }\n } = normalize(\n entities[groupId].entities[4].map((entity) => camelcaseKeys(entity)),\n schemas.geofences\n ); //normalize data to byId for geofences\n const {\n entities: { drivers }\n } = normalize(\n entities[groupId].entities[5].map((entity) => camelcaseKeys(entity)),\n schemas.drivers\n ); //normalize data to byId for drivers\n\n newState[groupId] = {\n ...state[groupId],\n isSelected: false,\n users: users ?? {},\n locations: locations ?? {},\n workplans: workplans ?? {},\n units: units ?? {},\n geofences: geofences ?? {},\n drivers: drivers ?? {},\n ...omit(entities[groupId], 'entities')\n };\n });\n return newState;\n }\n\n case types.GROUPS_ALL_ENTITIES_FETCH_COMPLETED: {\n const { entities, groupId } = action.payload;\n const newState = { ...state };\n newState[groupId] = {\n users: entities.users,\n locations: entities.locations,\n workplans: entities.workplans,\n units: entities.units,\n geofences: entities.geofences,\n drivers: entities.drivers,\n ...state[groupId]\n };\n return newState;\n }\n\n //TYPES STARTED ADD AND EDIT\n case types.GROUP_ADD_STARTED: {\n const { group, users, userInSession } = action.payload;\n const newState = { ...state };\n const usersToAdd = {};\n users\n .filter((user) => (group.isInGroup === 0 ? user.userName !== userInSession : user))\n .map((user) => {\n usersToAdd[user.userName] = user;\n });\n newState[group.groupId] = {\n isSelected: true,\n users: usersToAdd,\n locations: {},\n workplans: {},\n units: {},\n geofences: {},\n drivers: {},\n profileId: 1,\n locationsCount: 0,\n workPlansCount: 0,\n userCount: users.length,\n unitCount: 0,\n geofenceCount: 0,\n driverCount: 0,\n ...group,\n isInGroup: group.isInGroup\n };\n return newState;\n }\n\n case types.GROUP_ADD_WITH_ENTITIES_STARTED: {\n const { group, userInSession, entityType, entities, params } = action.payload;\n const newState = { ...state };\n const usersToAdd = { [`${userInSession.userName}`]: userInSession };\n const entitiesToAdd = entities.map((entity) =>\n entityType === 'users'\n ? {\n userId: entity.userId,\n userName: entity.userName,\n completeName: entity.completeName,\n userImage: entity.userImage,\n profileId: params.profileId\n }\n : entityType === 'locations'\n ? {\n locationId: entity.locationId,\n locationName: entity.locationName,\n radius: entity.radius,\n latitude: entity.latitude,\n longitude: entity.longitude,\n organizationName: entity.organizationName\n }\n : entityType === 'workplans'\n ? {\n workPlanId: entity.workplanId,\n workPlanName: entity.workplanName,\n organizationName: entity.organizationName\n }\n : entityType === 'units'\n ? {\n unitId: entity.unitId,\n groupName: group.groupName,\n unitName: entity.unitName,\n themeId: entity.themeId,\n privateCode: entity.privateCode,\n organizationName: entity.organizationName\n }\n : entityType === 'geofences'\n ? {\n geofenceId: entity.geofenceId,\n geofenceName: entity.geofenceName,\n notifyAdmin: params.notifyAdmin,\n notifyOwner: params.notifyOwner,\n shape: entity.shape,\n notifyEmails: params.notifyEmails\n }\n : entityType === 'drivers'\n ? {\n driverId: entity.driverId,\n driverName: entity.driverName,\n driverPhoto: entity.driverPhoto,\n licenseNumber: entity.licenseNumber,\n licenseType: entity.licenseType,\n licenseExpireDate: entity.licenseExpireDate\n }\n : entity\n );\n\n newState[group.groupId] = {\n isSelected: false,\n users: usersToAdd,\n locations: {},\n workplans: {},\n units: {},\n geofences: {},\n drivers: {},\n profileId: 1,\n locationsCount: 0,\n workPlansCount: 0,\n userCount: 1,\n unitCount: 0,\n geofenceCount: 0,\n driverCount: 0,\n ...group,\n isInGroup: group.isInGroup\n };\n\n entitiesToAdd.forEach((entity) => {\n newState[group.groupId] = {\n ...newState[group.groupId],\n [entityType]: {\n ...newState[group.groupId][entityType],\n [entityType === 'users'\n ? entity.userName\n : entityType === 'locations'\n ? entity.locationId\n : entityType === 'workplans'\n ? entity.workplanId\n : entityType === 'units'\n ? entity.unitId\n : entityType === 'geofences'\n ? entity.geofenceId\n : entityType === 'drivers'\n ? entity.driverId\n : entity.entityId]: entity\n },\n [entityType === 'users'\n ? 'userCount'\n : entityType === 'locations'\n ? 'locationsCount'\n : entityType === 'workplans'\n ? 'workPlansCount'\n : entityType === 'units'\n ? 'unitCount'\n : entityType === 'geofences'\n ? 'geofenceCount'\n : entityType === 'drivers'\n ? 'driverCount'\n : '']:\n newState[group.groupId][\n entityType === 'users'\n ? 'userCount'\n : entityType === 'locations'\n ? 'locationsCount'\n : entityType === 'workplans'\n ? 'workPlansCount'\n : entityType === 'units'\n ? 'unitCount'\n : entityType === 'geofences'\n ? 'geofenceCount'\n : entityType === 'drivers'\n ? 'driverCount'\n : ''\n ] + 1\n };\n });\n return newState;\n }\n\n case types.GROUP_EDIT_NOTIFICATIONS_CONFIGURATION_STARTED:\n case types.GROUP_EDIT_STARTED: {\n const group = action.payload;\n return {\n ...state,\n [group.groupId]: {\n ...state[group.groupId],\n oldGroup: state[group.groupId],\n ...group\n }\n };\n }\n\n //TYPES FAILED ADD AND EDIT\n case types.GROUP_EDIT_NOTIFICATIONS_CONFIGURATION_FAILED:\n case types.GROUP_EDIT_FAILED: {\n const { oldGroup } = action.payload;\n return {\n ...state,\n [oldGroup.groupId]: {\n ...omit(state[oldGroup.groupId], ['oldGroup']),\n ...oldGroup\n }\n };\n }\n\n //TYPES REMOVE AND ADD ENTITIES\n case types.GROUP_REMOVE_ENTITIES_COMPLETED: {\n const groupId = action.payload.groupId;\n const entityType = action.payload.entityType; // users, locations, workplans, units, geofences, drivers\n const entities = action.payload.entities;\n const newState = {\n ...state,\n [groupId]: {\n ...state[groupId],\n [entityType]: omit(state[groupId][entityType], entities),\n [entityType === 'users'\n ? 'userCount'\n : entityType === 'locations'\n ? 'locationsCount'\n : entityType === 'workplans'\n ? 'workPlansCount'\n : entityType === 'units'\n ? 'unitCount'\n : entityType === 'geofences'\n ? 'geofenceCount'\n : entityType === 'drivers'\n ? 'driverCount'\n : '']:\n state[groupId][\n entityType === 'users'\n ? 'userCount'\n : entityType === 'locations'\n ? 'locationsCount'\n : entityType === 'workplans'\n ? 'workPlansCount'\n : entityType === 'units'\n ? 'unitCount'\n : entityType === 'geofences'\n ? 'geofenceCount'\n : entityType === 'drivers'\n ? 'driverCount'\n : ''\n ] - entities.length\n }\n };\n return newState;\n }\n\n case types.GROUP_ADD_ENTITIES_COMPLETED: {\n const group = action.payload.group;\n const entityType = action.payload.entityType; // users, locations, workplans, units, geofences, drivers\n const entities = action.payload.entities;\n const params = action.payload.params;\n const newState = { ...state };\n\n const entitiesToAdd = entities.map((entity) =>\n entityType === 'users'\n ? {\n userId: entity.userId,\n userName: entity.userName,\n completeName: entity.completeName,\n userImage: entity.userImage,\n profileId: params.profileId\n }\n : entityType === 'locations'\n ? {\n locationId: entity.locationId,\n locationName: entity.locationName,\n radius: entity.radius,\n latitude: entity.latitude,\n longitude: entity.longitude,\n organizationName: entity.organizationName\n }\n : entityType === 'workplans'\n ? {\n workPlanId: entity.workPlanId,\n workPlanName: entity.workPlanName,\n organizationName: entity.organizationName\n }\n : entityType === 'units'\n ? {\n unitId: entity.unitId,\n groupName: group.groupName,\n unitName: entity.unitName,\n themeId: entity.themeId,\n privateCode: entity.privateCode,\n organizationName: entity.organizationName\n }\n : entityType === 'geofences'\n ? {\n geofenceId: entity.geofenceId,\n geofenceName: entity.geofenceName,\n notifyAdmin: params.notifyAdmin,\n notifyOwner: params.notifyOwner,\n shape: entity.shape,\n notifyEmails: params.notifyEmails\n }\n : entityType === 'drivers'\n ? {\n driverId: entity.driverId,\n driverName: entity.driverName,\n driverPhoto: entity.driverPhoto,\n licenseNumber: entity.licenseNumber,\n licenseType: entity.licenseType,\n licenseExpireDate: entity.licenseExpireDate\n }\n : entity\n );\n\n entitiesToAdd.forEach((entity) => {\n newState[group.groupId] = {\n ...state[group.groupId],\n [entityType]: {\n ...newState[group.groupId][entityType],\n [entityType === 'users'\n ? entity.userName\n : entityType === 'locations'\n ? entity.locationId\n : entityType === 'workplans'\n ? entity.workPlanId\n : entityType === 'units'\n ? entity.unitId\n : entityType === 'geofences'\n ? entity.geofenceId\n : entityType === 'drivers'\n ? entity.driverId\n : entity.entityId]: entity\n },\n [entityType === 'users'\n ? 'userCount'\n : entityType === 'locations'\n ? 'locationsCount'\n : entityType === 'workplans'\n ? 'workPlansCount'\n : entityType === 'units'\n ? 'unitCount'\n : entityType === 'geofences'\n ? 'geofenceCount'\n : entityType === 'drivers'\n ? 'driverCount'\n : '']:\n newState[group.groupId][\n entityType === 'users'\n ? 'userCount'\n : entityType === 'locations'\n ? 'locationsCount'\n : entityType === 'workplans'\n ? 'workPlansCount'\n : entityType === 'units'\n ? 'unitCount'\n : entityType === 'geofences'\n ? 'geofenceCount'\n : entityType === 'drivers'\n ? 'driverCount'\n : ''\n ] + 1\n };\n });\n return newState;\n }\n\n //TYPE EDIT USER PROFILE IN GROUP\n case types.GROUP_USER_PROFILE_EDIT_COMPLETED: {\n const { groupId, userName, userNameInSession, profileId } = action.payload;\n const users = { ...state[groupId].users };\n users[userName] = { ...users[userName], profileId: profileId };\n const newState = {\n ...state,\n [groupId]: {\n ...state[groupId],\n users: users,\n profileId: userNameInSession === userName ? profileId : state[groupId]['profileId']\n }\n };\n return newState;\n }\n\n //TYPES REMOVE COMPLETED\n case types.GROUP_REMOVE_COMPLETED: {\n const { groupId } = action.payload;\n return omit(state, groupId);\n }\n\n //TYPES LEAVE COMPLETED\n case types.GROUP_LEAVE_COMPLETED: {\n const { groupId, isAsesor, asesorUsername } = action.payload;\n if (isAsesor === true) {\n const newState = {\n ...state,\n [groupId]: {\n ...state[groupId],\n users: omit(state[groupId]['users'], asesorUsername),\n userCount: state[groupId]['userCount'] - 1,\n isInGroup: 0,\n profileId: 1\n }\n };\n return newState;\n }\n return omit(state, groupId);\n }\n\n //TYPES SELECTED AND DESELECTED\n case types.GROUP_SELECTED: {\n const groupId = action.payload;\n const newState = {\n ...state,\n [groupId]: {\n ...state[groupId],\n isSelected: true\n }\n };\n return newState;\n }\n\n case types.GROUP_DESELECTED: {\n const groupId = action.payload;\n return {\n ...state,\n [groupId]: {\n ...state[groupId],\n isSelected: false\n }\n };\n }\n\n case types.GROUPS_ALL_SELECTED: {\n const groupIds = action.payload;\n const newState = { ...state };\n if (groupIds.length == 0) {\n forEach(state, (group: any, groupId) => {\n newState[groupId] = {\n ...group,\n isSelected: true\n };\n });\n } else {\n groupIds.forEach((groupId) => {\n newState[groupId] = {\n ...state[groupId],\n isSelected: true\n };\n });\n }\n\n return newState;\n }\n\n case types.GROUPS_ALL_DESELECTED: {\n const groupIds = action.payload;\n const newState = { ...state };\n if (groupIds.length == 0) {\n forEach(state, (group: any, groupId) => {\n newState[groupId] = {\n ...group,\n isSelected: false\n };\n });\n } else {\n groupIds.forEach((groupId) => {\n newState[groupId] = {\n ...state[groupId],\n isSelected: false\n };\n });\n }\n\n return newState;\n }\n\n //DEFAULT\n default: {\n return state;\n }\n }\n};\n\nconst order = (state = [], action) => {\n switch (action.type) {\n case authTypes.AUTHENTICATION_IDENTITY_CLEARED: {\n return [];\n }\n //CASE COMPLETED FETCH, ADD AND REMOVE\n case types.GROUPS_FETCH_COMPLETED: {\n const { order } = action.payload;\n return union(order);\n }\n\n case types.GROUP_ADD_WITH_ENTITIES_COMPLETED:\n case types.GROUP_ADD_COMPLETED: {\n const { oldId, group } = action.payload;\n return state.map((groupId) => (groupId === oldId ? group.groupId : groupId));\n }\n\n case types.GROUPS_PARTIAL_FETCH_COMPLETED: {\n const { order } = action.payload;\n return uniq([...state, ...order]);\n }\n\n case types.GROUP_REMOVE_COMPLETED: {\n const { groupId } = action.payload;\n return state.filter((groupIdState) => groupIdState !== groupId);\n }\n\n case types.GROUP_LEAVE_COMPLETED: {\n const { groupId, isAsesor } = action.payload;\n return state.filter((groupIdState) =>\n isAsesor === true ? groupIdState : groupIdState !== groupId\n );\n }\n\n //CASE ADD STARTED\n case types.GROUP_ADD_WITH_ENTITIES_STARTED:\n case types.GROUP_ADD_STARTED: {\n const { group, user } = action.payload;\n return [...state, group.groupId];\n }\n\n //CASE ADD FAILED\n case types.GROUP_ADD_WITH_ENTITIES_FAILED:\n case types.GROUP_ADD_FAILED: {\n const { oldId } = action.payload;\n return state.filter((groupIdState) => groupIdState !== oldId);\n }\n\n //DEFAULT\n default: {\n return state;\n }\n }\n};\n\n// STATES TO KNOW IF IT IS FETCHING, ADDING OR EDITING\nconst isFetchingList = (state = false, action) => {\n switch (action.type) {\n case authTypes.AUTHENTICATION_IDENTITY_CLEARED: {\n return false;\n }\n case types.GROUPS_FETCH_STARTED: {\n return true;\n }\n case types.GROUPS_FETCH_COMPLETED:\n case types.GROUPS_FETCH_FAILED: {\n return false;\n }\n default: {\n return state;\n }\n }\n};\n\nconst isFetchingAllEntities = (state = false, action) => {\n switch (action.type) {\n case authTypes.AUTHENTICATION_IDENTITY_CLEARED: {\n return false;\n }\n case types.GROUPS_ALL_ENTITIES_FETCH_STARTED: {\n return true;\n }\n case types.GROUPS_ALL_ENTITIES_FETCH_COMPLETED:\n case types.GROUPS_ALL_ENTITIES_FETCH_FAILED: {\n return false;\n }\n default: {\n return state;\n }\n }\n};\n\nconst isPartialFetchingList = (state = false, action) => {\n switch (action.type) {\n case authTypes.AUTHENTICATION_IDENTITY_CLEARED: {\n return false;\n }\n case types.GROUPS_PARTIAL_FETCH_STARTED: {\n return true;\n }\n case types.GROUPS_PARTIAL_FETCH_COMPLETED:\n case types.GROUPS_PARTIAL_FETCH_FAILED: {\n return false;\n }\n default: {\n return state;\n }\n }\n};\n\nconst isAdding = (state = false, action) => {\n switch (action.type) {\n case authTypes.AUTHENTICATION_IDENTITY_CLEARED: {\n return false;\n }\n case types.GROUP_ADD_STARTED: {\n return true;\n }\n case types.GROUP_ADD_WITH_ENTITIES_FAILED:\n case types.GROUP_ADD_WITH_ENTITIES_COMPLETED:\n case types.GROUP_ADD_COMPLETED:\n case types.GROUP_ADD_FAILED: {\n return false;\n }\n default: {\n return state;\n }\n }\n};\n\nconst isEditing = (state = false, action) => {\n switch (action.type) {\n case authTypes.AUTHENTICATION_IDENTITY_CLEARED: {\n return false;\n }\n case types.GROUP_ADD_ENTITIES_STARTED:\n case types.GROUP_ADD_WITH_ENTITIES_STARTED:\n case types.GROUP_REMOVE_ENTITIES_STARTED:\n case types.GROUP_EDIT_STARTED: {\n return true;\n }\n case types.GROUP_ADD_COMPLETED:\n case types.GROUP_ADD_WITH_ENTITIES_COMPLETED:\n case types.GROUP_REMOVE_ENTITIES_COMPLETED:\n case types.GROUP_EDIT_COMPLETED:\n case types.GROUP_EDIT_FAILED: {\n return false;\n }\n default: {\n return state;\n }\n }\n};\n\nconst isRemoving = (state = false, action) => {\n switch (action.type) {\n case authTypes.AUTHENTICATION_IDENTITY_CLEARED: {\n return false;\n }\n case types.GROUP_REMOVE_STARTED: {\n return true;\n }\n case types.GROUP_REMOVE_COMPLETED:\n case types.GROUP_REMOVE_FAILED: {\n return false;\n }\n default: {\n return state;\n }\n }\n};\n\nconst isLeaving = (state = false, action) => {\n switch (action.type) {\n case authTypes.AUTHENTICATION_IDENTITY_CLEARED: {\n return false;\n }\n case types.GROUP_LEAVE_STARTED: {\n return true;\n }\n case types.GROUP_LEAVE_COMPLETED:\n case types.GROUP_LEAVE_FAILED: {\n return false;\n }\n default: {\n return state;\n }\n }\n};\n\nconst errorAdding = (state = null, action) => {\n switch (action.type) {\n case authTypes.AUTHENTICATION_IDENTITY_CLEARED: {\n return null;\n }\n case types.GROUP_ADD_WITH_ENTITIES_FAILED:\n case types.GROUP_ADD_FAILED: {\n const { error } = action.payload;\n return error;\n }\n case types.GROUP_ADD_WITH_ENTITIES_STARTED:\n case types.GROUP_ADD_WITH_ENTITIES_COMPLETED:\n case types.GROUP_ADD_STARTED:\n case types.GROUP_ADD_COMPLETED: {\n return null;\n }\n default: {\n return state;\n }\n }\n};\n\nconst errorEditing = (state = null, action) => {\n switch (action.type) {\n case authTypes.AUTHENTICATION_IDENTITY_CLEARED: {\n return null;\n }\n case types.GROUP_EDIT_FAILED: {\n const { error } = action.payload;\n return error;\n }\n case types.GROUP_EDIT_STARTED:\n case types.GROUP_ADD_ENTITIES_STARTED:\n case types.GROUP_ADD_ENTITIES_COMPLETED:\n case types.GROUP_REMOVE_ENTITIES_COMPLETED:\n case types.GROUP_REMOVE_ENTITIES_STARTED:\n case types.GROUP_EDIT_COMPLETED: {\n return null;\n }\n default: {\n return state;\n }\n }\n};\n\nconst errorRemoving = (state = null, action) => {\n switch (action.type) {\n case authTypes.AUTHENTICATION_IDENTITY_CLEARED: {\n return null;\n }\n case types.GROUP_REMOVE_FAILED: {\n const { error } = action.payload;\n return error;\n }\n case types.GROUP_REMOVE_STARTED:\n case types.GROUP_REMOVE_COMPLETED: {\n return null;\n }\n default: {\n return state;\n }\n }\n};\n\nconst errorLeaving = (state = null, action) => {\n switch (action.type) {\n case authTypes.AUTHENTICATION_IDENTITY_CLEARED: {\n return null;\n }\n case types.GROUP_LEAVE_FAILED: {\n const { error } = action.payload;\n return error;\n }\n case types.GROUP_LEAVE_STARTED:\n case types.GROUP_LEAVE_COMPLETED: {\n return null;\n }\n default: {\n return state;\n }\n }\n};\n\nconst errorFetchingList = (state = null, action) => {\n switch (action.type) {\n case authTypes.AUTHENTICATION_IDENTITY_CLEARED: {\n return null;\n }\n case types.GROUPS_FETCH_FAILED: {\n const { error } = action.payload;\n return error;\n }\n case types.GROUPS_FETCH_STARTED:\n case types.GROUPS_FETCH_COMPLETED: {\n return null;\n }\n default: {\n return state;\n }\n }\n};\n\nconst errorFetchingAllEntities = (state = null, action) => {\n switch (action.type) {\n case authTypes.AUTHENTICATION_IDENTITY_CLEARED: {\n return null;\n }\n case types.GROUPS_ALL_ENTITIES_FETCH_FAILED: {\n const { error } = action.payload;\n return error;\n }\n case types.GROUPS_ALL_ENTITIES_FETCH_STARTED:\n case types.GROUPS_ALL_ENTITIES_FETCH_COMPLETED: {\n return null;\n }\n default: {\n return state;\n }\n }\n};\n\nconst errorPartialFetchingList = (state = null, action) => {\n switch (action.type) {\n case authTypes.AUTHENTICATION_IDENTITY_CLEARED: {\n return null;\n }\n case types.GROUPS_PARTIAL_FETCH_FAILED: {\n const { error } = action.payload;\n return error;\n }\n case types.GROUPS_PARTIAL_FETCH_STARTED:\n case types.GROUPS_PARTIAL_FETCH_COMPLETED: {\n return null;\n }\n default: {\n return state;\n }\n }\n};\n\nconst groups: any = combineReducers({\n byId,\n order,\n isPartialFetchingList,\n isFetchingList,\n isFetchingAllEntities,\n isAdding,\n isEditing,\n isRemoving,\n isLeaving,\n errorPartialFetchingList,\n errorFetchingList,\n errorFetchingAllEntities,\n errorAdding,\n errorEditing,\n errorRemoving,\n errorLeaving\n});\n\nconst groupsPersistedConfig = {\n key: 'groups',\n storage: localforage,\n stateReconciler: autoMergeLevel2,\n blacklist: ['isAdding', 'isEditing', 'isRemoving', 'isFetchingList', 'isPartialFetchingList'],\n whitelist: ['byId', 'order']\n};\n\nexport default persistReducer(groupsPersistedConfig, groups);\n\n//Own state\nexport const getOwnState = (state) => state.groups;\n\n//Information\nexport const getGroup = (state, groupId) => {\n const group = getOwnState(state).byId[groupId];\n if (group) {\n return {\n ...group\n };\n } else return undefined;\n};\nexport const getUsersInGroup = (state, groupId) => {\n const group = getGroup(state, groupId);\n return group && group.users ? Object.values(group.users) : [];\n};\nexport const getLocationsInGroup = (state, groupId) => {\n const group = getGroup(state, groupId);\n return group && group.locations ? Object.values(group.locations) : [];\n};\nexport const getWorkplansInGroup = (state, groupId) => {\n const group = getGroup(state, groupId);\n return group && group.workplans ? Object.values(group.workplans) : [];\n};\nexport const getUnitsInGroup = (state, groupId) => {\n const group = getGroup(state, groupId);\n return group && group.units ? Object.values(group.units) : [];\n};\nexport const getGeofencesInGroup = (state, groupId) => {\n const group = getGroup(state, groupId);\n return group && group.geofences ? Object.values(group.geofences) : [];\n};\nexport const getDriversInGroup = (state, groupId) => {\n const group = getGroup(state, groupId);\n return group && group.divers ? Object.values(group.divers) : [];\n};\n\nexport const getGroupsList = (state) =>\n getOwnState(state)\n .order.map((id) => getGroup(state, id))\n .filter((group) => group.groupStatus > 0);\n\nexport const getAllGroupsList = (state) =>\n getOwnState(state).order.map((id) => getGroup(state, id));\n\nexport const getSelectedGroups = (state) => {\n const selectedGroups = getGroupsList(state).filter((group) => group.isSelected);\n //Si no se selecciona ninguno devuelve null\n if (selectedGroups.length === 0) return null;\n //Si se selecciona mƔs de cero se devuelve el arreglo de los seleccionados\n if (selectedGroups.length > 0) return selectedGroups;\n};\n\nexport const getUnfilteredSelectedGroup = (state) =>\n getAllGroupsList(state).find((group) => group.isSelected) ?? null;\n\nexport const getSelectedGroup = (state) => {\n const selectedGroups = getGroupsList(state).filter((group) => group.isSelected);\n //Si se selecciona solo uno devuelve solo el seleccionado\n if (selectedGroups.length === 1) return selectedGroups[0];\n //De lo contrario se devuelve null\n else return null;\n};\nexport const getGroupsListByMembership = (state, membership) => {\n return getGroupsList(state).filter(\n (group) =>\n membership &&\n (!membership.operatorId || membership.operatorId === group.operatorId) &&\n (!membership.organizationId || membership.organizationId === group.organizationId) &&\n (!membership.divisionId || membership.divisionId === group.divisionId) &&\n (!membership.subdivisionId || membership.subdivisionId === group.subdivisionId) &&\n group.unitStatus > 0\n );\n};\n\n//Status of sagas\nexport const isPartialFetchingListGroups = (state) => getOwnState(state).isPartialFetchingList;\nexport const isFetchingListGroups = (state) => getOwnState(state).isFetchingList;\nexport const isFetchingAllEntitiesGroups = (state) => getOwnState(state).isFetchingAllEntitities;\nexport const isAddingGroup = (state) => getOwnState(state).isAdding;\nexport const isEditingGroup = (state) => getOwnState(state).isEditing;\nexport const isRemovingGroup = (state) => getOwnState(state).isRemoving;\nexport const isLeavingGroup = (state) => getOwnState(state).isLeaving;\n\n//Errors\nexport const getPartialFetchingListGroupsErrors = (state) =>\n getOwnState(state).errorPartialFetchingList;\nexport const getFetchingListGroupsErrors = (state) => getOwnState(state).errorFetchingList;\nexport const getFetchingAllEntitiesErrors = (state) => getOwnState(state).errorFetchingAllEntities;\nexport const getAddingGroupErrors = (state) => getOwnState(state).errorAdding;\nexport const getEditingGroupErrors = (state) => getOwnState(state).errorEditing;\nexport const getRemovingGroupErrors = (state) => getOwnState(state).errorRemoving;\nexport const getLeavingGroupErrors = (state) => getOwnState(state).errorLeaving;\n","import { combineReducers } from 'redux';\n\nimport omit from 'lodash/omit';\nimport union from 'lodash/union';\nimport forEach from 'lodash/forEach';\nimport uniq from 'lodash/uniq';\n\nimport * as types from '../../types/configurations';\n\nconst byId = (state = {}, action) => {\n switch (action.type) {\n //TYPES COMPLETED FETCH, ADD AND EDIT\n case types.CONFIGURATIONS_FETCH_COMPLETED: {\n const { entities, order } = action.payload;\n const newState = { ...state };\n order.forEach((configurationId) => {\n newState[configurationId] = {\n isSelected: false,\n ...entities[configurationId],\n isConfirmed: true\n };\n });\n return newState;\n }\n\n //DEFAULT\n default: {\n return state;\n }\n }\n};\n\nconst order = (state = [], action) => {\n switch (action.type) {\n //CASE COMPLETED FETCH, ADD AND REMOVE\n case types.CONFIGURATIONS_FETCH_COMPLETED: {\n const { order } = action.payload;\n return union(order);\n }\n\n //DEFAULT\n default: {\n return state;\n }\n }\n};\n\n// STATES TO KNOW IF IT IS FETCHING, ADDING OR EDITING\nconst isFetchingList = (state = false, action) => {\n switch (action.type) {\n case types.CONFIGURATIONS_FETCH_STARTED: {\n return true;\n }\n case types.CONFIGURATIONS_FETCH_COMPLETED:\n case types.CONFIGURATIONS_FETCH_FAILED: {\n return false;\n }\n default: {\n return state;\n }\n }\n};\n\nconst errorFetchingList = (state = null, action) => {\n switch (action.type) {\n case types.CONFIGURATIONS_FETCH_FAILED: {\n const { error } = action.payload;\n return error;\n }\n case types.CONFIGURATIONS_FETCH_STARTED:\n case types.CONFIGURATIONS_FETCH_COMPLETED: {\n return null;\n }\n default: {\n return state;\n }\n }\n};\n\nconst configurations = combineReducers({\n byId,\n order,\n isFetchingList,\n errorFetchingList\n});\n\nexport default configurations;\n\n//Own state\nexport const getOwnState = (state) => state.staticCatalogs.brands.models.configurations;\n\n//Information\nexport const getConfiguration = (state, configurationId) =>\n getOwnState(state).byId[configurationId];\nexport const getConfigurationsList = (state) =>\n getOwnState(state).order.map((id) => getConfiguration(state, id));\n\nexport const getConfigurationsFromBrand = (state, brandId) =>\n getConfigurationsList(state).filter((configuration) => configuration.brandId === brandId);\n\n//Status of sagas\nexport const isFetchingListConfigurations = (state) => getOwnState(state).isFetchingList;\n\n//Errors\nexport const getFetchingListConfigurationsErrors = (state) => getOwnState(state).errorFetchingList;\n","import { SaveCategoryDTO } from 'views/screens/vehicleMaintenance/types';\nimport * as types from 'views/screens/vehicleMaintenance/types/catalogs/categories';\n\nexport const startFetchingCategories = (filters = {}) => ({\n type: types.CATEGORIES_FETCH_STARTED,\n payload: filters\n});\n\nexport const completeFetchingCategories = (entities, order) => ({\n type: types.CATEGORIES_FETCH_COMPLETED,\n payload: {\n entities,\n order\n }\n});\n\nexport const failFetchingCategories = (error = { errorMessage: 'Error', errorNumber: 404 }) => ({\n type: types.CATEGORIES_FETCH_FAILED,\n payload: {\n error //error:{errorMessage:'Error', errorNumber:400}\n }\n});\n\nexport const startPartialFetchingCategories = (entityTypeId) => ({\n type: types.CATEGORIES_PARTIAL_FETCH_STARTED,\n payload: entityTypeId\n});\n\nexport const completePartialFetchingCategories = (entities, order) => ({\n type: types.CATEGORIES_PARTIAL_FETCH_COMPLETED,\n payload: {\n entities,\n order\n }\n});\n\nexport const failPartialFetchingCategories = (\n error = { errorMessage: 'Error', errorNumber: 404 }\n) => ({\n type: types.CATEGORIES_PARTIAL_FETCH_FAILED,\n payload: {\n error //error:{errorMessage:'Error', errorNumber:400}\n }\n});\n\nexport const startAddingCategory = (category: SaveCategoryDTO) => ({\n type: types.CATEGORY_ADD_STARTED,\n payload: category\n});\n\nexport const completeAddingCategory = (id: string, oldId: string, category) => ({\n type: types.CATEGORY_ADD_COMPLETED,\n payload: { id, oldId, category }\n});\n\nexport const failAddingCategory = (oldId, error) => ({\n type: types.CATEGORY_ADD_FAILED,\n payload: {\n oldId,\n error\n }\n});\n\nexport const startEditingCategory = (category: SaveCategoryDTO) => ({\n type: types.CATEGORY_EDIT_STARTED,\n payload: category\n});\n\nexport const completeEditingCategory = (category) => ({\n type: types.CATEGORY_EDIT_COMPLETED,\n payload: category\n});\n\nexport const failEditingCategory = (oldCategory, error) => ({\n type: types.CATEGORY_EDIT_FAILED,\n payload: {\n oldCategory,\n error\n }\n});\n\nexport const startRemovingCategory = (request: { categoryId: number; categoryName: string }) => ({\n type: types.CATEGORY_REMOVE_STARTED,\n payload: {\n ...request\n }\n});\n\nexport const completeRemovingCategory = (id) => ({\n type: types.CATEGORY_REMOVE_COMPLETED,\n payload: {\n id\n }\n});\n\nexport const failRemovingCategory = (id, error) => ({\n type: types.CATEGORY_REMOVE_FAILED,\n payload: {\n id,\n error\n }\n});\n","import { NoticeByOdometerRequest } from 'views/screens/vehicleMaintenance/types';\nimport * as types from 'views/screens/vehicleMaintenance/types/preventiveNotices/noticesByOdometer';\n\nexport const startFetchingNotices = (filters = {}) => ({\n type: types.NOTICES_BY_ODOMETER_FETCH_STARTED,\n payload: filters\n});\n\nexport const completeFetchingNotices = (entities, order) => ({\n type: types.NOTICES_BY_ODOMETER_FETCH_COMPLETED,\n payload: {\n entities,\n order\n }\n});\n\nexport const failFetchingNotices = (error = { errorMessage: 'Error', errorNumber: 404 }) => ({\n type: types.NOTICES_BY_ODOMETER_FETCH_FAILED,\n payload: {\n error //error:{errorMessage:'Error', errorNumber:400}\n }\n});\n\nexport const startPartialFetchingNotices = (entityTypeId) => ({\n type: types.NOTICES_BY_ODOMETER_PARTIAL_FETCH_STARTED,\n payload: entityTypeId\n});\n\nexport const completePartialFetchingNotices = (entities, order) => ({\n type: types.NOTICES_BY_ODOMETER_PARTIAL_FETCH_COMPLETED,\n payload: {\n entities,\n order\n }\n});\n\nexport const failPartialFetchingNotices = (\n error = { errorMessage: 'Error', errorNumber: 404 }\n) => ({\n type: types.NOTICES_BY_ODOMETER_PARTIAL_FETCH_FAILED,\n payload: {\n error //error:{errorMessage:'Error', errorNumber:400}\n }\n});\n\nexport const startAddingNotice = (notice: NoticeByOdometerRequest) => ({\n type: types.NOTICE_BY_ODOMETER_ADD_STARTED,\n payload: notice\n});\n\nexport const completeAddingNotice = (id: string, oldId: string, notice) => ({\n type: types.NOTICE_BY_ODOMETER_ADD_COMPLETED,\n payload: { id, oldId, notice }\n});\n\nexport const failAddingNotice = (oldId, error) => ({\n type: types.NOTICE_BY_ODOMETER_ADD_FAILED,\n payload: {\n oldId,\n error\n }\n});\n\nexport const startEditingNotice = (notice: NoticeByOdometerRequest) => ({\n type: types.NOTICE_BY_ODOMETER_EDIT_STARTED,\n payload: notice\n});\n\nexport const completeEditingNotice = (notice) => ({\n type: types.NOTICE_BY_ODOMETER_EDIT_COMPLETED,\n payload: notice\n});\n\nexport const failEditingNotice = (oldNotice, error) => ({\n type: types.NOTICE_BY_ODOMETER_EDIT_FAILED,\n payload: {\n oldNotice,\n error\n }\n});\n\n//===================== RENEW ========================================\nexport const startRenewNotice = (notice: NoticeByOdometerRequest) => ({\n type: types.NOTICE_BY_ODOMETER_RENEW_STARTED,\n payload: notice\n});\n\nexport const completeRenewNotice = (notice) => ({\n type: types.NOTICE_BY_ODOMETER_RENEW_COMPLETED,\n payload: notice\n});\n\nexport const failRenewNotice = (oldNotice, error) => ({\n type: types.NOTICE_BY_ODOMETER_RENEW_FAILED,\n payload: {\n oldNotice,\n error\n }\n});\n\nexport const startRemovingNotice = (request: { noticeId: number; unitId: number }) => ({\n type: types.NOTICE_BY_ODOMETER_REMOVE_STARTED,\n payload: {\n ...request\n }\n});\n\nexport const completeRemovingNotice = (id) => ({\n type: types.NOTICE_BY_ODOMETER_REMOVE_COMPLETED,\n payload: {\n id\n }\n});\n\nexport const failRemovingNotice = (id, error) => ({\n type: types.NOTICE_BY_ODOMETER_REMOVE_FAILED,\n payload: {\n id,\n error\n }\n});\n","// ** React Imports\nimport { forwardRef } from 'react';\n\n// ** Third Party Components\nimport Proptypes from 'prop-types';\nimport { Badge } from 'reactstrap';\nimport classnames from 'classnames';\n\nconst Avatar = forwardRef((props, ref) => {\n // ** Props\n const {\n color,\n className,\n imgClassName,\n initials,\n size,\n badgeUp,\n content,\n icon,\n badgeColor,\n badgeText,\n img,\n imgHeight,\n imgWidth,\n status,\n tag: Tag,\n contentStyles,\n ...rest\n } = props;\n\n // ** Function to extract initials from content\n const getInitials = (str) => {\n const results = [];\n const wordArray = str.split(' ');\n wordArray.forEach((e) => {\n results.push(e[0]);\n });\n return results.join('');\n };\n\n return (\n \n {img === false || img === undefined ? (\n \n {initials ? getInitials(content) : content}\n\n {icon ? icon : null}\n {badgeUp ? (\n \n {badgeText ? badgeText : '0'}\n \n ) : null}\n \n ) : (\n \n )}\n {status ? (\n \n ) : null}\n \n );\n});\n\nexport default Avatar;\n\n// ** PropTypes\nAvatar.propTypes = {\n imgClassName: Proptypes.string,\n className: Proptypes.string,\n src: Proptypes.string,\n tag: Proptypes.oneOfType([Proptypes.func, Proptypes.string]),\n badgeUp: Proptypes.bool,\n content: Proptypes.string,\n icon: Proptypes.node,\n contentStyles: Proptypes.object,\n badgeText: Proptypes.string,\n imgHeight: Proptypes.oneOfType([Proptypes.string, Proptypes.number]),\n imgWidth: Proptypes.oneOfType([Proptypes.string, Proptypes.number]),\n size: Proptypes.oneOf(['sm', 'lg', 'xl']),\n status: Proptypes.oneOf(['online', 'offline', 'away', 'busy']),\n badgeColor: Proptypes.oneOf([\n 'primary',\n 'secondary',\n 'success',\n 'danger',\n 'info',\n 'warning',\n 'dark',\n 'light-primary',\n 'light-secondary',\n 'light-success',\n 'light-danger',\n 'light-info',\n 'light-warning',\n 'light-dark'\n ]),\n color: Proptypes.oneOf([\n 'primary',\n 'secondary',\n 'success',\n 'danger',\n 'info',\n 'warning',\n 'dark',\n 'light-primary',\n 'light-secondary',\n 'light-success',\n 'light-danger',\n 'light-info',\n 'light-warning',\n 'light-dark'\n ]),\n initials(props) {\n if (props['initials'] && props['content'] === undefined) {\n return new Error('content prop is required with initials prop.');\n }\n if (props['initials'] && typeof props['content'] !== 'string') {\n return new Error('content prop must be a string.');\n }\n if (typeof props['initials'] !== 'boolean' && props['initials'] !== undefined) {\n return new Error('initials must be a boolean!');\n }\n }\n};\n\n// ** Default Props\nAvatar.defaultProps = {\n tag: 'div'\n};\n","import deburr from 'lodash/deburr';\nimport { useState } from 'react';\nimport { renderToString } from 'react-dom/server';\nimport { FormattedMessage, useIntl } from 'react-intl';\nimport Select, { components } from 'react-select';\nimport CreatableSelect from 'react-select/creatable';\nimport { AutoSizer, CellMeasurer, CellMeasurerCache, List } from 'react-virtualized';\nimport {\n Badge,\n FormGroup,\n InputGroup,\n InputGroupAddon,\n Label,\n UncontrolledTooltip\n} from 'reactstrap';\nimport useDeepCompareEffect from 'use-deep-compare-effect';\nimport DefaultButton from 'views/components/DefaultButton';\nimport {\n isNullOrUndefined,\n isValidEmail,\n normalizeInputText,\n normalizeString\n} from '../../../utility/Utils';\nimport { appIntl } from '../../../utility/context/IntlGlobalProvider';\nimport Icon from '../../../utility/icomoon';\n\nconst { Option, SingleValue, MultiValue, NoOptionsMessage, MultiValueLabel } = components;\n\nconst filterOption = (candidate, input) => {\n let showOptionFilter = false;\n try {\n showOptionFilter =\n showOptionFilter ||\n (candidate.data &&\n candidate.data.label &&\n deburr(candidate.data.label.toLowerCase()).includes(deburr(input.toLowerCase())));\n } catch (err) {}\n try {\n showOptionFilter =\n showOptionFilter ||\n (candidate.data.label_intl &&\n deburr(candidate.data.label_intl.toLowerCase()).includes(deburr(input.toLowerCase())));\n } catch (err) {}\n\n return showOptionFilter;\n};\nconst IconOption = (props) => {\n return (\n \n );\n};\nconst IconSingleValue = (props) => {\n return (\n \n
\n {props.data.icon != null &&
{props.data.icon}
}\n {`${props.data.label}`}\n
\n
\n );\n};\n\nconst IconMultipleValue = (props) => {\n return (\n \n {props.data.identifierIcon && (\n
{props.data.identifierIcon}
\n )}\n
\n {props.data.icon != null &&
{props.data.icon}
}\n {`${props.data.label}`}\n
\n {props.data.edit && (\n
\n props.data.edit(props.data.id)} />\n
\n )}\n
\n );\n};\n\nconst MultiSelectInput = (props) => {\n const {\n field,\n fieldstate,\n options = [],\n isInModal = false,\n isMultiple = true,\n canCreate = false,\n isLoading = false,\n errorMessage,\n underText = '',\n ...inputProps\n } = props;\n const intl = useIntl();\n\n const [inputValue, setInputValue] = useState('');\n const [innerOptions, setOptions] = useState([]);\n useDeepCompareEffect(() => {\n if (field.value && options.length > 0) {\n if (typeof field.value === 'string') {\n const newValue = options\n .filter((option) =>\n field.value\n .split(',')\n .includes(isNaN(option.value) ? option.value : option.value.toString())\n )\n .map((option) => option.value)\n .join(',');\n if (field.value.length !== newValue.length) field.onChange(newValue);\n } else {\n field.onChange('');\n }\n }\n setOptions(options);\n }, [\n options.map((op) => ({\n ...op,\n icon: typeof op.icon === 'object' ? renderToString(op.icon) : op.icon\n })),\n intl.locale\n ]);\n\n const style = getComputedStyle(document.body);\n const primary = process.env.REACT_APP_PRIMARY_COLOR;\n const styles = {\n control: (provided, state) => {\n return {\n ...provided,\n\n boxShadow: state.isFocused ? 'none!important' : 'none!important',\n border: state.isFocused ? `1px solid ${primary} !important` : '1px solid #d8d6de !important'\n };\n },\n singleValue: (provided, state) => {\n return {\n ...provided,\n fontWeight: 400,\n fontSize: '1rem',\n lineHeight: 1.45,\n color: '#6e6b7b',\n transition: 'border-color 0.15s ease-in-out, box-shadow 0.15s ease-in-out'\n };\n },\n multiValue: (provided, state) => {\n return {\n ...provided,\n fontWeight: 400,\n fontSize: '1rem',\n lineHeight: 1.45,\n color: '#6e6b7b',\n // backgroundColor: 'rgba(0, 51, 204, 0.12)',\n transition: 'border-color 0.15s ease-in-out, box-shadow 0.15s ease-in-out'\n };\n },\n menuList: (provided, state) => {\n return {\n ...provided,\n\n fontWeight: 400,\n fontSize: '1rem',\n lineHeight: 1.45,\n color: '#6e6b7b',\n transition: 'border-color 0.15s ease-in-out, box-shadow 0.15s ease-in-out'\n };\n }\n };\n const SelectComponent = canCreate ? CreatableSelect : Select;\n\n const cache = new CellMeasurerCache({\n defaultHeight: 60,\n fixedWidth: true\n });\n\n const MenuList = (props) => {\n const rows = props.children;\n const rowRenderer = ({ key, index, parent, style }) => (\n \n {({ measure, registerChild }) => (\n
\n {rows[index]}\n
\n )}\n
\n );\n\n return rows.length > 0 ? (\n \n {({ height }) => (\n {\n const height = cache.rowHeight(ref);\n return height + height * 0.2;\n }}\n />\n )}\n \n ) : (\n \n );\n };\n\n const isOptionSelected = (option, value: string): boolean => {\n if (typeof value !== 'string') {\n return false;\n }\n const values = value.split(',');\n const optionValue = isNaN(option.value) ? option.value : option.value.toString();\n return values.includes(optionValue);\n };\n\n return (\n \n \n \n {props.prependcomponent}\n option.label.replace(/\\s+/g, ' ')}\n // formatOptionLabel={(option) => getValidOptions(option.label)}\n components={{\n Option: IconOption,\n SingleValue: IconSingleValue,\n MultiValue: IconMultipleValue,\n MenuList\n }}\n placeholder={\n inputProps.placeholder ?? appIntl().formatMessage({ id: 'common.selectOption' })\n }\n className={\n fieldstate.error != null ? 'has-error custom-dropdown-input' : 'custom-dropdown-input'\n }\n onChange={(selectedOptions, action) => {\n if (action.action === 'create-option') {\n if (inputProps.onCreate) inputProps.onCreate(selectedOptions);\n }\n\n if (action.action === 'input-change') {\n const inputValue = selectedOptions.inputValue.replace(/\\s+/g, ' ');\n return { ...selectedOptions, inputValue };\n }\n\n field.onChange(\n selectedOptions\n ? isMultiple\n ? selectedOptions.map((selected) => selected.value.toString()).join(',')\n : selectedOptions.value.toString()\n : null\n );\n if (inputProps.onSelect) inputProps.onSelect(selectedOptions);\n setInputValue('');\n }}\n onBlur={field.onBlur}\n isValidNewOption={canCreate ? (fieldValue) => isValidEmail(fieldValue) : null}\n options={innerOptions}\n filterOption={filterOption}\n isClearable={inputProps.isClearable === true}\n value={options.filter((option) =>\n typeof field.value === 'string'\n ? field.value\n .split(',')\n .map((value) => value)\n .includes(isNaN(option.value) ? option.value : option.value.toString())\n : ''\n )}\n noOptionsMessage={(currentValue) =>\n canCreate\n ? appIntl().formatMessage(\n { id: 'common.invalidEmail' },\n { value: currentValue.fieldValue }\n )\n : appIntl().formatMessage({ id: 'common.noOptions' })\n }\n maxMenuHeight={250}\n formatCreateLabel={\n canCreate\n ? (value) => appIntl().formatMessage({ id: 'common.create' }, { value })\n : undefined\n }\n menuPortalTarget={isInModal ? undefined : document.querySelector('body')} // fix issue https://github.com/JedWatson/react-select/issues/3263\n inputValue={inputValue}\n onInputChange={(inputValue, action, c) => {\n const inputValueNormalized = normalizeInputText(inputValue);\n if (inputProps.onInputChange) inputProps.onInputChange(inputValueNormalized, action);\n\n if (typeof inputValueNormalized === 'string') {\n setInputValue(inputValueNormalized);\n }\n }}\n />\n {props.appendcomponent}\n \n {fieldstate.error && (\n
\n {fieldstate.error?.message || errorMessage || (\n \n )}\n
\n )}\n {underText !== '' && (\n
\n {inputProps.underIcon &&\n (inputProps.underIcon.iconAction ? (\n \n ) : (\n \n ))}\n
\n {underText}\n
\n
\n )}\n
\n );\n};\n\nexport default MultiSelectInput;\n","import { combineReducers } from 'redux';\n\nimport omit from 'lodash/omit';\nimport union from 'lodash/union';\nimport forEach from 'lodash/forEach';\nimport uniq from 'lodash/uniq';\nimport { appIntl } from '../../../../utility/context/IntlGlobalProvider';\nimport { persistReducer } from 'redux-persist';\nimport localforage from 'localforage';\nimport autoMergeLevel2 from 'redux-persist/lib/stateReconciler/autoMergeLevel2';\nimport * as authTypes from '../../../../redux/types/auth';\nimport * as types from '../types';\nimport { type } from 'os';\nimport { DefaultFilters } from 'views/screens/Entities/views/FetchEntities';\n\nconst byId = (state = {}, action) => {\n switch (action.type) {\n case authTypes.AUTHENTICATION_IDENTITY_CLEARED: {\n return {};\n }\n //TYPES COMPLETED FETCH, ADD AND EDIT\n case types.DRIVERS_FETCH_COMPLETED: {\n const { entities, order } = action.payload;\n const newState = {};\n order.forEach((driverId) => {\n newState[driverId] = {\n isSelected: false,\n isShownInMap: false,\n ...state[driverId],\n ...entities[driverId],\n isConfirmed: true\n };\n });\n return newState;\n }\n\n case types.DRIVERS_PARTIAL_FETCH_COMPLETED: {\n const { entities, order } = action.payload;\n const newState = { ...state };\n order.forEach((driverId) => {\n newState[driverId] = {\n isSelected: false,\n isShownInMap: false,\n ...state[driverId],\n ...entities[driverId],\n isConfirmed: true\n };\n });\n return newState;\n }\n\n case types.DRIVER_ADD_COMPLETED: {\n const { oldId, driver } = action.payload;\n const newState = omit(state, oldId);\n newState[driver.driverId] = {\n isShownInMap: false,\n ...state[oldId],\n ...driver,\n isConfirmed: true\n };\n return newState;\n }\n\n case types.DRIVER_EDIT_COMPLETED: {\n const driver = action.payload;\n return {\n ...state,\n [driver.driverId]: {\n isShownInMap: false,\n ...omit(state[driver.driverId], ['oldDriver']),\n ...omit(driver, ['oldDriver']),\n isConfirmed: true\n }\n };\n }\n\n //TYPES STARTED ADD AND EDIT\n case types.DRIVER_ADD_STARTED: {\n const driver = action.payload;\n const newState = { ...state };\n newState[driver.driverId] = {\n isShownInMap: false,\n isSelected: false,\n ...omit(driver, 'files'),\n isConfirmed: false\n };\n return newState;\n }\n case types.DRIVER_EDIT_STARTED: {\n const driver = action.payload;\n return {\n ...state,\n [driver.driverId]: {\n isShownInMap: false,\n ...state[driver.driverId],\n oldDriver: state[driver.driverId],\n ...omit(driver, 'files'),\n isConfirmed: false\n }\n };\n }\n\n //TYPES FAILED ADD AND EDIT\n case types.DRIVER_ADD_FAILED: {\n const { oldId } = action.payload;\n if (state[oldId]) {\n return omit(state, oldId);\n }\n return state;\n }\n case types.DRIVER_EDIT_FAILED: {\n const { oldDriver } = action.payload;\n return {\n ...state,\n [oldDriver.driverId]: {\n isShownInMap: false,\n ...omit(state[oldDriver.driverId], ['oldDriver']),\n ...oldDriver,\n isConfirmed: true\n }\n };\n }\n\n //TYPES REMOVE COMPLETED\n case types.DRIVER_REMOVE_COMPLETED: {\n const { driverId } = action.payload;\n return omit(state, driverId);\n }\n\n //TYPES SELECTED AND DESELECTED\n case types.DRIVER_SELECTED: {\n const driverId = action.payload;\n const newState = {\n ...state,\n [driverId]: {\n ...state[driverId],\n isSelected: true\n }\n };\n return newState;\n }\n\n case types.DRIVER_DESELECTED: {\n const driverId = action.payload;\n return {\n ...state,\n [driverId]: {\n ...state[driverId],\n isSelected: false\n }\n };\n }\n\n case types.DRIVERS_ALL_SELECTED: {\n const driverIds = action.payload;\n const newState = { ...state };\n if (driverIds.length == 0) {\n forEach(state, (driver: any, driverId) => {\n newState[driverId] = {\n ...driver,\n isSelected: true\n };\n });\n } else {\n driverIds.forEach((driverId) => {\n newState[driverId] = {\n ...state[driverId],\n isSelected: true\n };\n });\n }\n\n return newState;\n }\n\n case types.DRIVERS_ALL_DESELECTED: {\n const driverIds = action.payload;\n const newState = { ...state };\n if (driverIds.length == 0) {\n forEach(state, (driver: any, driverId) => {\n newState[driverId] = {\n ...driver,\n isSelected: false\n };\n });\n } else {\n driverIds.forEach((driverId) => {\n newState[driverId] = {\n ...state[driverId],\n isSelected: false\n };\n });\n }\n\n return newState;\n }\n\n //TYPES SELECTED AND DESELECTED\n case types.DRIVER_ASSIGN_SENSOR_COMPLETED: {\n const driverId = action.payload.driverId;\n const sensor = action.payload.sensor;\n const newState = {\n ...state,\n [driverId]: {\n ...state[driverId],\n sensorId: sensor.sensorId,\n sensorName: sensor.sensorName\n }\n };\n return newState;\n }\n\n case types.DRIVER_UNASSIGN_SENSOR_COMPLETED: {\n const driverId = action.payload.driverId;\n return {\n ...state,\n [driverId]: {\n ...state[driverId],\n sensorId: null,\n sensorName: null\n }\n };\n }\n\n //DEFAULT\n default: {\n return state;\n }\n }\n};\n\nconst order = (state = [], action) => {\n switch (action.type) {\n case authTypes.AUTHENTICATION_IDENTITY_CLEARED: {\n return [];\n }\n //CASE COMPLETED FETCH, ADD AND REMOVE\n case types.DRIVERS_FETCH_COMPLETED: {\n const { order } = action.payload;\n return union(order);\n }\n\n case types.DRIVERS_PARTIAL_FETCH_COMPLETED: {\n const { order } = action.payload;\n return uniq([...state, ...order]);\n }\n\n case types.DRIVER_ADD_COMPLETED: {\n const { oldId, driver } = action.payload;\n return state.map((driverId) => (driverId === oldId ? driver.driverId : driverId));\n }\n\n case types.DRIVER_REMOVE_COMPLETED: {\n const { driverId } = action.payload;\n return state.filter((driverIdState) => driverIdState !== driverId);\n }\n\n //CASE ADD STARTED\n case types.DRIVER_ADD_STARTED: {\n const driver = action.payload;\n return [...state, driver.driverId];\n }\n\n //CASE ADD FAILED\n case types.DRIVER_ADD_FAILED: {\n const { oldId } = action.payload;\n return state.filter((driverIdState) => driverIdState !== oldId);\n }\n\n //DEFAULT\n default: {\n return state;\n }\n }\n};\n\nconst isAssigningDrivers = (state: any = null, action: any) => {\n switch (action.type) {\n case types.START_MASSIVE_DRIVERS_ASSIGNMENT: {\n return true;\n }\n case types.COMPLETE_MASSIVE_DRIVERS_ASSIGNMENT: {\n return false;\n }\n default: {\n return false;\n }\n }\n};\n\nconst importDriversAndUnits = (state: any = null, action) => {\n switch (action.type) {\n case types.START_IMPORT_DRIVERS_UNITS_IMPORT: {\n return [];\n }\n case types.COMPLETE_IMPORT_DRIVERS_UNITS_IMPORT: {\n return action.payload ?? [];\n }\n default: {\n return action.payload ?? [];\n }\n }\n};\nconst isImportingDriversAndUnitsList = (state: any = null, action: any) => {\n switch (action.type) {\n case types.START_IMPORT_DRIVERS_UNITS_IMPORT: {\n return true;\n }\n case types.COMPLETE_IMPORT_DRIVERS_UNITS_IMPORT: {\n return false;\n }\n default: {\n return false;\n }\n }\n};\n\n// STATES TO KNOW IF IT IS FETCHING, ADDING OR EDITING\nconst isFetchingList = (state = false, action) => {\n switch (action.type) {\n case authTypes.AUTHENTICATION_IDENTITY_CLEARED: {\n return false;\n }\n case types.DRIVERS_FETCH_STARTED: {\n return true;\n }\n case types.DRIVERS_FETCH_COMPLETED:\n case types.DRIVERS_FETCH_FAILED: {\n return false;\n }\n default: {\n return state;\n }\n }\n};\n\nconst isPartialFetchingList = (state = false, action) => {\n switch (action.type) {\n case authTypes.AUTHENTICATION_IDENTITY_CLEARED: {\n return false;\n }\n case types.DRIVERS_PARTIAL_FETCH_STARTED: {\n return true;\n }\n case types.DRIVERS_PARTIAL_FETCH_COMPLETED:\n case types.DRIVERS_PARTIAL_FETCH_FAILED: {\n return false;\n }\n default: {\n return state;\n }\n }\n};\n\nconst isAdding = (state = false, action) => {\n switch (action.type) {\n case authTypes.AUTHENTICATION_IDENTITY_CLEARED: {\n return false;\n }\n case types.DRIVER_ADD_STARTED: {\n return true;\n }\n case types.DRIVER_ADD_COMPLETED:\n case types.DRIVER_ADD_FAILED: {\n return false;\n }\n default: {\n return state;\n }\n }\n};\n\nconst isEditing = (state = false, action) => {\n switch (action.type) {\n case authTypes.AUTHENTICATION_IDENTITY_CLEARED: {\n return false;\n }\n case types.DRIVER_EDIT_STARTED: {\n return true;\n }\n case types.DRIVER_EDIT_COMPLETED:\n case types.DRIVER_EDIT_FAILED: {\n return false;\n }\n default: {\n return state;\n }\n }\n};\n\nconst isRemoving = (state = false, action) => {\n switch (action.type) {\n case authTypes.AUTHENTICATION_IDENTITY_CLEARED: {\n return false;\n }\n case types.DRIVER_REMOVE_STARTED: {\n return true;\n }\n case types.DRIVER_REMOVE_COMPLETED:\n case types.DRIVER_REMOVE_FAILED: {\n return false;\n }\n default: {\n return state;\n }\n }\n};\n\nconst errorFetchingList = (state = null, action) => {\n switch (action.type) {\n case authTypes.AUTHENTICATION_IDENTITY_CLEARED: {\n return null;\n }\n case types.DRIVERS_FETCH_FAILED: {\n const { error } = action.payload;\n return error;\n }\n case types.DRIVERS_FETCH_STARTED:\n case types.DRIVERS_FETCH_COMPLETED: {\n return null;\n }\n default: {\n return state;\n }\n }\n};\n\nconst errorPartialFetchingList = (state = null, action) => {\n switch (action.type) {\n case authTypes.AUTHENTICATION_IDENTITY_CLEARED: {\n return null;\n }\n case types.DRIVERS_PARTIAL_FETCH_FAILED: {\n const { error } = action.payload;\n return error;\n }\n case types.DRIVERS_PARTIAL_FETCH_STARTED:\n case types.DRIVERS_PARTIAL_FETCH_COMPLETED: {\n return null;\n }\n default: {\n return state;\n }\n }\n};\n\nconst errorAdding = (state = null, action) => {\n switch (action.type) {\n case authTypes.AUTHENTICATION_IDENTITY_CLEARED: {\n return null;\n }\n case types.DRIVER_ADD_FAILED: {\n const { error } = action.payload;\n return error;\n }\n case types.DRIVER_ADD_STARTED:\n case types.DRIVER_ADD_COMPLETED: {\n return null;\n }\n default: {\n return state;\n }\n }\n};\n\nconst errorEditing = (state = null, action) => {\n switch (action.type) {\n case authTypes.AUTHENTICATION_IDENTITY_CLEARED: {\n return null;\n }\n case types.DRIVER_EDIT_FAILED: {\n const { error } = action.payload;\n return error;\n }\n case types.DRIVER_EDIT_STARTED:\n case types.DRIVER_EDIT_COMPLETED: {\n return null;\n }\n default: {\n return state;\n }\n }\n};\n\nconst errorRemoving = (state = null, action) => {\n switch (action.type) {\n case authTypes.AUTHENTICATION_IDENTITY_CLEARED: {\n return null;\n }\n case types.DRIVER_REMOVE_FAILED: {\n const { error } = action.payload;\n return error;\n }\n case types.DRIVER_REMOVE_STARTED:\n case types.DRIVER_REMOVE_COMPLETED: {\n return null;\n }\n default: {\n return state;\n }\n }\n};\n\nconst hasAlreadyFetched = (state = false, action) => {\n switch (action.type) {\n case authTypes.AUTHENTICATION_IDENTITY_CLEARED: {\n return false;\n }\n case types.DRIVERS_FETCH_COMPLETED: {\n return true;\n }\n default: {\n return state;\n }\n }\n};\n\nconst drivers: any = combineReducers({\n byId,\n order,\n isPartialFetchingList,\n isFetchingList,\n isAdding,\n isEditing,\n isRemoving,\n errorPartialFetchingList,\n errorFetchingList,\n errorAdding,\n errorEditing,\n errorRemoving,\n hasAlreadyFetched,\n isImportingDriversAndUnitsList,\n importDriversAndUnits,\n isAssigningDrivers\n});\n\nconst driversPersistedConfig = {\n key: 'drivers',\n storage: localforage,\n stateReconciler: autoMergeLevel2,\n blacklist: ['isAdding', 'isEditing', 'isRemoving', 'isFetchingList', 'isPartialFetchingList'],\n whitelist: ['byId', 'order', 'importDriversAndUnits']\n // blackList: [],\n};\n\nexport default persistReducer(driversPersistedConfig, drivers);\n// export default drivers;\n\n//Own state\nexport const getOwnState = (state) => state.drivers;\n\n//Information\nexport const getDriver = (state, driverId): types.Driver | null =>\n getOwnState(state).byId[driverId] ?? null;\n\nexport const getDriversList = (state): types.Driver[] =>\n getOwnState(state)\n .order.map((id) => getDriver(state, id))\n .filter((driver) => driver.driverStatus > 0);\n\nexport const getDriversListByMembership = (state, membership) => {\n //Se filtra por membership\n return getDriversList(state).filter(\n (driver) =>\n membership &&\n (!membership.operatorId || membership.operatorId === driver.operatorId) &&\n (!membership.organizationId || membership.organizationId === driver.organizationId) &&\n (!membership.divisionId || membership.divisionId === driver.divisionId) &&\n (!membership.subdivisionId || membership.subdivisionId === driver.subdivisionId) &&\n (!membership.groupId ||\n driver.groups?.split(',').includes(String(membership.groupId)) ||\n membership.groupId + '' === driver.groups)\n );\n};\n\nexport const getDriverByPrivateCode = (state: any, driverPrivateCode: string) => {\n return getDriversList(state).find((driver) => driver?.privateCode === driverPrivateCode);\n};\n\nexport const getDriverByPrivateCodeByMembership = (\n state: any,\n driverPrivateCode: string,\n membership: DefaultFilters\n) => {\n return getDriversListByMembership(state, membership).find(\n (driver) => driver?.privateCode === driverPrivateCode\n );\n};\n\nexport const getSelectedDrivers = (state) => {\n const selectedDrivers = getDriversList(state).filter((driver) => driver.isSelected);\n //Si no se selecciona ninguno devuelve null\n if (selectedDrivers.length === 0) return null;\n //Si se selecciona mƔs de cero se devuelve el arreglo de los seleccionados\n if (selectedDrivers.length > 0) return selectedDrivers;\n};\n\nexport const getSelectedDriver = (state) => {\n const selectedDrivers = getDriversList(state).filter((driver) => driver.isSelected);\n //Si se selecciona solo uno devuelve solo el seleccionado\n if (selectedDrivers.length === 1) return selectedDrivers[0];\n //De lo contrario se devuelve null\n else return null;\n};\n\n// New list with the drivers info\nexport const getDriversByListOfIds = (state: any, driversIds: Array) => {\n return driversIds?.map((driverId) => getDriver(state, driverId));\n};\n\nexport const getDriversByListOfPrivateCodes = (state: any, driversPrivateCodes: Array) => {\n return driversPrivateCodes.map((driverPrivateCode) =>\n getDriverByPrivateCode(state, driverPrivateCode)\n );\n};\n\n/**\n * Get Driver by ID or privateCode\n * @param state Redux state\n * @param driverId Driver id\n * @param privateCode Driver private code\n * @returns founded driver or undefined\n */\nexport const getDriverByIdOrPrivateCode = (state: any, driverId: number, privateCode: string) => {\n if (driverId !== null && driverId !== undefined) {\n const driver = getDriver(state, driverId);\n if (driver) return driver;\n }\n if (privateCode !== null && privateCode !== undefined && !/^\\s$/.test(privateCode)) {\n const driver = getDriverByPrivateCode(state, privateCode);\n if (driver) return driver;\n }\n};\n\n//Status of sagas\nexport const isPartialFetchingListDrivers = (state) => getOwnState(state).isPartialFetchingList;\nexport const isFetchingListDrivers = (state) => getOwnState(state).isFetchingList;\nexport const haveDriversBeenFetched = (state) => getOwnState(state).hasAlreadyFetched;\nexport const isAddingDriver = (state) => getOwnState(state).isAdding;\nexport const isEditingDriver = (state) => getOwnState(state).isEditing;\nexport const isRemovingDriver = (state) => getOwnState(state).isRemoving;\nexport const isCopyingDriver = (state) => getOwnState(state).isCopying;\nexport const isAssigningGeofenceDriver = (state) => getOwnState(state).isAssigningGeofence;\n\n// importing\nexport const isImportingDriversAndUnits = (state) =>\n getOwnState(state).isImportingDriversAndUnitsList;\nexport const importedDriversAndUnits = (state) => getOwnState(state).importDriversAndUnits;\n\n// Massive assignment\nexport const isAssigningDriversMassively = (state: any) => getOwnState(state).isAssigningDrivers;\n\n//Errors\nexport const getPartialFetchingListDriversErrors = (state) =>\n getOwnState(state).errorPartialFetchingList;\nexport const getFetchingListDriversErrors = (state) => getOwnState(state).errorFetchingList;\nexport const getAddingDriverErrors = (state) => getOwnState(state).errorAdding;\nexport const getEditingDriverErrors = (state) => getOwnState(state).errorEditing;\nexport const getRemovingDriverErrors = (state) => getOwnState(state).errorRemoving;\n","import React from 'react';\nimport { FormattedMessage, injectIntl, IntlShape } from 'react-intl';\n/**\n * Componente \"tonto\" para mostrar tablas en catƔlogos\n * Props:\n * textId:\n * El id del texto a traducir\n */\nconst TitleH4 = ({ textId, center = false, textTransform = '', style = {} }) => (\n

\n \n

\n);\n\nexport default TitleH4;\n","import { combineReducers } from 'redux';\n\nimport omit from 'lodash/omit';\nimport union from 'lodash/union';\nimport forEach from 'lodash/forEach';\nimport uniq from 'lodash/uniq';\n\nimport * as types from '../types';\n\nconst byId = (state = {}, action) => {\n switch (action.type) {\n //TYPES COMPLETED FETCH, ADD AND EDIT\n case types.AGENTS_FETCH_COMPLETED: {\n const { entities, order } = action.payload;\n const newState = { ...state };\n order.forEach((agentId) => {\n newState[agentId] = {\n isSelected: false,\n ...entities[agentId],\n isConfirmed: true\n };\n });\n return newState;\n }\n\n case types.AGENTS_PARTIAL_FETCH_COMPLETED: {\n const { entities, order } = action.payload;\n const newState = { ...state };\n order.forEach((unitId) => {\n newState[unitId] = {\n isSelected: false,\n ...state[unitId],\n ...entities[unitId],\n isConfirmed: true\n };\n });\n return newState;\n }\n\n case types.AGENT_FETCH_COMPLETED: {\n const agent = action.payload;\n const newState = { ...state };\n newState[agent.agentId] = {\n isSelected: false,\n ...state[agent.agentId],\n ...agent,\n isConfirmed: true\n };\n return newState;\n }\n\n case types.AGENT_ADD_COMPLETED: {\n const { oldId, agent } = action.payload;\n const newState = omit(state, oldId);\n newState[agent.agentId] = {\n ...state[oldId],\n ...agent,\n isConfirmed: true\n };\n return newState;\n }\n\n case types.AGENT_EDIT_COMPLETED: {\n const agent = action.payload;\n return {\n ...state,\n [agent.agentId]: {\n ...omit(state[agent.agentId], ['oldAgent']),\n ...omit(agent, ['oldAgent']),\n isConfirmed: true\n }\n };\n }\n\n //TYPES STARTED ADD AND EDIT\n case types.AGENT_ADD_STARTED: {\n const agent = action.payload;\n const newState = { ...state };\n newState[agent.agentId] = {\n isSelected: false,\n ...agent,\n isConfirmed: false\n };\n return newState;\n }\n case types.AGENT_EDIT_STARTED: {\n const agent = action.payload;\n return {\n ...state,\n [agent.agentId]: {\n ...state[agent.agentId],\n oldAgent: state[agent.agentId],\n ...agent,\n isConfirmed: false\n }\n };\n }\n\n //TYPES FAILED ADD AND EDIT\n case types.AGENT_ADD_FAILED: {\n const { oldId } = action.payload;\n if (state[oldId]) {\n return omit(state, oldId);\n }\n return state;\n }\n case types.AGENT_EDIT_FAILED: {\n const oldAgent = action.payload;\n return {\n ...state,\n [oldAgent.agentId]: {\n ...omit(state[oldAgent.agentId], ['oldAgent']),\n ...oldAgent,\n isConfirmed: true\n }\n };\n }\n\n //TYPES REMOVE COMPLETED\n case types.AGENT_REMOVE_COMPLETED: {\n const { agentId } = action.payload;\n return omit(state, agentId);\n }\n\n //TYPES SELECTED AND DESELECTED\n case types.AGENT_SELECTED: {\n const agentId = action.payload;\n const newState = {\n ...state,\n [agentId]: {\n ...state[agentId],\n isSelected: true\n }\n };\n return newState;\n }\n\n case types.AGENT_DESELECTED: {\n const agentId = action.payload;\n return {\n ...state,\n [agentId]: {\n ...state[agentId],\n isSelected: false\n }\n };\n }\n\n case types.AGENTS_ALL_SELECTED: {\n const agentIds = action.payload;\n const newState = { ...state };\n if (agentIds.length == 0) {\n forEach(state, (agent: any, agentId) => {\n newState[agentId] = {\n ...agent,\n isSelected: true\n };\n });\n } else {\n agentIds.forEach((agentId) => {\n newState[agentId] = {\n ...state[agentId],\n isSelected: true\n };\n });\n }\n\n return newState;\n }\n\n case types.AGENTS_ALL_DESELECTED: {\n const agentIds = action.payload;\n const newState = { ...state };\n if (agentIds.length == 0) {\n forEach(state, (agent: any, agentId) => {\n newState[agentId] = {\n ...agent,\n isSelected: false\n };\n });\n } else {\n agentIds.forEach((agentId) => {\n newState[agentId] = {\n ...state[agentId],\n isSelected: false\n };\n });\n }\n\n return newState;\n }\n\n //DEFAULT\n default: {\n return state;\n }\n }\n};\n\nconst order = (state = [], action) => {\n switch (action.type) {\n //CASE COMPLETED FETCH, ADD AND REMOVE\n case types.AGENTS_FETCH_COMPLETED: {\n const { order } = action.payload;\n return union(order);\n }\n\n case types.AGENTS_PARTIAL_FETCH_COMPLETED: {\n const { order } = action.payload;\n return uniq([...state, ...order]);\n }\n\n case types.AGENT_FETCH_COMPLETED: {\n const agent = action.payload;\n return uniq([...state, agent.agentId]);\n }\n\n case types.AGENT_ADD_COMPLETED: {\n const { oldId, agent } = action.payload;\n return state.map((agentId) => (agentId === oldId ? agent.agentId : agentId));\n }\n\n case types.AGENT_REMOVE_COMPLETED: {\n const { agentId } = action.payload;\n return state.filter((agentIdState) => agentIdState !== agentId);\n }\n\n //CASE ADD STARTED\n case types.AGENT_ADD_STARTED: {\n const agent = action.payload;\n return [...state, agent.agentId];\n }\n\n //CASE ADD FAILED\n case types.AGENT_ADD_FAILED: {\n const { oldId } = action.payload;\n return state.filter((agentIdState) => agentIdState !== oldId);\n }\n\n //DEFAULT\n default: {\n return state;\n }\n }\n};\n\n// STATES TO KNOW IF IT IS FETCHING, ADDING OR EDITING\nconst isFetchingList = (state = false, action) => {\n switch (action.type) {\n case types.AGENTS_FETCH_STARTED: {\n return true;\n }\n case types.AGENTS_FETCH_COMPLETED:\n case types.AGENTS_FETCH_FAILED: {\n return false;\n }\n default: {\n return state;\n }\n }\n};\n\nconst isFetching = (state = false, action) => {\n switch (action.type) {\n case types.AGENT_FETCH_STARTED: {\n return true;\n }\n case types.AGENT_FETCH_COMPLETED:\n case types.AGENT_FETCH_FAILED: {\n return false;\n }\n default: {\n return state;\n }\n }\n};\n\nconst isAdding = (state = false, action) => {\n switch (action.type) {\n case types.AGENT_ADD_STARTED: {\n return true;\n }\n case types.AGENT_ADD_COMPLETED:\n case types.AGENT_ADD_FAILED: {\n return false;\n }\n default: {\n return state;\n }\n }\n};\n\nconst isEditing = (state = false, action) => {\n switch (action.type) {\n case types.AGENT_EDIT_STARTED: {\n return true;\n }\n case types.AGENT_EDIT_COMPLETED:\n case types.AGENT_EDIT_FAILED: {\n return false;\n }\n default: {\n return state;\n }\n }\n};\n\nconst isRemoving = (state = false, action) => {\n switch (action.type) {\n case types.AGENT_REMOVE_STARTED: {\n return true;\n }\n case types.AGENT_REMOVE_COMPLETED:\n case types.AGENT_REMOVE_FAILED: {\n return false;\n }\n default: {\n return state;\n }\n }\n};\n\nconst errorFetchingList = (state = null, action) => {\n switch (action.type) {\n case types.AGENTS_FETCH_FAILED: {\n const { error } = action.payload;\n return error;\n }\n case types.AGENTS_FETCH_STARTED:\n case types.AGENTS_FETCH_COMPLETED: {\n return null;\n }\n default: {\n return state;\n }\n }\n};\n\nconst errorFetching = (state = null, action) => {\n switch (action.type) {\n case types.AGENT_FETCH_FAILED: {\n const { error } = action.payload;\n return error;\n }\n case types.AGENT_FETCH_STARTED:\n case types.AGENT_FETCH_COMPLETED: {\n return null;\n }\n default: {\n return state;\n }\n }\n};\n\nconst errorAdding = (state = null, action) => {\n switch (action.type) {\n case types.AGENT_ADD_FAILED: {\n const { error } = action.payload;\n return error;\n }\n case types.AGENT_ADD_STARTED:\n case types.AGENT_ADD_COMPLETED: {\n return null;\n }\n default: {\n return state;\n }\n }\n};\n\nconst errorEditing = (state = null, action) => {\n switch (action.type) {\n case types.AGENT_EDIT_FAILED: {\n const { error } = action.payload;\n return error;\n }\n case types.AGENT_EDIT_STARTED:\n case types.AGENT_EDIT_COMPLETED: {\n return null;\n }\n default: {\n return state;\n }\n }\n};\n\nconst errorRemoving = (state = null, action) => {\n switch (action.type) {\n case types.AGENT_REMOVE_FAILED: {\n const { error } = action.payload;\n return error;\n }\n case types.AGENT_REMOVE_STARTED:\n case types.AGENT_REMOVE_COMPLETED: {\n return null;\n }\n default: {\n return state;\n }\n }\n};\n\nconst agents = combineReducers({\n byId,\n order,\n isFetching,\n isFetchingList,\n isAdding,\n isEditing,\n isRemoving,\n errorFetching,\n errorFetchingList,\n errorAdding,\n errorEditing,\n errorRemoving\n});\n\nexport default agents;\n\n//Own state\nexport const getOwnState = (state) => state.agents;\n\n//Information\nexport const getAgent = (state, agentId) => getOwnState(state).byId[agentId];\nexport const getAgentsList = (state) =>\n getOwnState(state)\n .order.map((id) => getAgent(state, id))\n .filter((agent) => agent.agentStatus > 0);\n\nexport const getAgentsListByMembership = (state, membership) => {\n return getAgentsList(state).filter(\n (agent) =>\n membership &&\n (!membership.operatorId || membership.operatorId === agent.operatorId) &&\n (!membership.organizationId || membership.organizationId === agent.organizationId) &&\n (!membership.divisionId || membership.divisionId === agent.divisionId) &&\n (!membership.subdivisionId || membership.subdivisionId === agent.subdivisionId)\n );\n};\nexport const getSelectedAgents = (state) => {\n const selectedAgents = getAgentsList(state).filter((agent) => agent.isSelected);\n //Si no se selecciona ninguno devuelve null\n if (selectedAgents.length === 0) return null;\n //Si se selecciona mĆ”s de cero se devuelve el arreglo de los seleccionados\n if (selectedAgents.length > 0) return selectedAgents;\n};\nexport const getSelectedAgent = (state) => {\n const selectedAgents = getAgentsList(state).filter((agent) => agent.isSelected);\n //Si se selecciona solo uno devuelve solo el seleccionado\n if (selectedAgents.length === 1) return selectedAgents[0];\n //De lo contrario se devuelve null\n else return null;\n};\n\n//Status of sagas\nexport const isFetchingAgent = (state) => getOwnState(state).isFetching;\nexport const isFetchingListAgents = (state) => getOwnState(state).isFetchingList;\nexport const isAddingAgent = (state) => getOwnState(state).isAdding;\nexport const isEditingAgent = (state) => getOwnState(state).isEditing;\nexport const isRemovingAgent = (state) => getOwnState(state).isRemoving;\n\n//Errors\nexport const getFetchingAgentErrors = (state) => getOwnState(state).errorFetching;\nexport const getFetchingListAgentsErrors = (state) => getOwnState(state).errorFetchingList;\nexport const getAddingAgentErrors = (state) => getOwnState(state).errorAdding;\nexport const getEditingAgentErrors = (state) => getOwnState(state).errorEditing;\nexport const getRemovingAgentErrors = (state) => getOwnState(state).errorRemoving;\n","const permissions = {\n addTicket: 'FT001',\n importTicket: 'FT002',\n byUnitReport: 'FT003',\n consolidatedReport: 'FT004',\n addLocation: 'LO001',\n recordMultiple: 'FT005'\n};\n\nexport default permissions;\n","import { HttpWebtrack } from 'utility/http';\nimport { ConfigActions } from '../../../../utility/http/http-events';\n\nimport configureInterceptors from 'utility/http/interceptors/configure-interceptors';\nimport { store } from 'redux/storeConfig/store';\n\nexport const baseUrl = '/workplan';\n\nexport interface deleteWorkplanExecutionLocationFilters {\n visitId: number;\n locationId: number;\n sequenceNumber: number;\n applyToWorkplan: boolean;\n locationName: string;\n}\n\nexport const getWorkplansListService = (request: any, configAction: ConfigActions) => {\n const httpWebtrack = new HttpWebtrack();\n configureInterceptors.ConfigureWebtrackInterceptor(store, httpWebtrack);\n httpWebtrack.setConfigActions(configAction);\n return httpWebtrack.post(`${baseUrl}/get`, request);\n};\n\nexport const getAssignedWorkplansWithScheduleService = (\n request: any,\n configAction: ConfigActions\n) => {\n const httpWebtrack = new HttpWebtrack();\n configureInterceptors.ConfigureWebtrackInterceptor(store, httpWebtrack);\n httpWebtrack.setConfigActions(configAction);\n return httpWebtrack.post(`${baseUrl}/getAssignedWithSchedule`, request);\n};\n\nexport const getAssignedWorkplansWithDateTimeService = (\n request: any,\n configAction: ConfigActions\n) => {\n const httpWebtrack = new HttpWebtrack();\n configureInterceptors.ConfigureWebtrackInterceptor(store, httpWebtrack);\n httpWebtrack.setConfigActions(configAction);\n return httpWebtrack.post(`${baseUrl}/getAssignedWithDateTime`, request);\n};\n\nexport interface BulkInsertRequest {\n workplanType: number;\n operatorId?: number;\n organizationId?: number;\n divisionId?: number;\n subdivisionId?: number;\n workplans: string; // JSON string\n}\nexport const workplansBulkInsert = (request: BulkInsertRequest, configAction: ConfigActions) => {\n const httpWebtrack = new HttpWebtrack();\n configureInterceptors.ConfigureWebtrackInterceptor(store, httpWebtrack);\n httpWebtrack.setConfigActions(configAction);\n return httpWebtrack.post(`${baseUrl}/workplansBulkInsert`, request);\n};\n\nexport const deleteWorkplanService = (request: any, configAction: ConfigActions) => {\n const httpWebtrack = new HttpWebtrack();\n configureInterceptors.ConfigureWebtrackInterceptor(store, httpWebtrack);\n httpWebtrack.setConfigMessage({\n name: `${request.workplanName}`,\n object: 'workplans.workplan',\n action: 'Delete',\n genderType: 'SingularMale'\n });\n httpWebtrack.setConfigActions(configAction);\n return httpWebtrack.post(`${baseUrl}/delete`, request);\n};\n\nexport const saveWorkplanService = (request: any, configAction: ConfigActions, isNew: boolean) => {\n const httpWebtrack = new HttpWebtrack();\n configureInterceptors.ConfigureWebtrackInterceptor(store, httpWebtrack);\n httpWebtrack.setConfigMessage({\n name: `${request.workplanName}`,\n object: 'workplans.workplan',\n action: isNew ? 'Create' : 'Edit',\n genderType: 'SingularMale'\n });\n httpWebtrack.setConfigActions(configAction);\n return httpWebtrack.post(`${baseUrl}/save`, request);\n};\n\nexport const deleteWorkplanExecutionLocationService = (\n request: deleteWorkplanExecutionLocationFilters,\n configAction: ConfigActions\n) => {\n const httpWebtrack = new HttpWebtrack();\n configureInterceptors.ConfigureWebtrackInterceptor(store, httpWebtrack);\n httpWebtrack.setConfigMessage({\n name: `${request.locationName}`,\n object: 'workplans.location',\n action: 'Delete',\n genderType: 'SingularFemale'\n });\n httpWebtrack.setConfigActions(configAction);\n return httpWebtrack.post(`${baseUrl}/deleteWorkplanExecutionLocation`, request);\n};\n\nexport const saveWorkplanExecutionLocationService = (request: any, configAction: ConfigActions) => {\n const httpWebtrack = new HttpWebtrack();\n configureInterceptors.ConfigureWebtrackInterceptor(store, httpWebtrack);\n httpWebtrack.setConfigMessage({\n name: `${request.locationName}`,\n object: 'workplans.location',\n action: 'Edit',\n genderType: 'SingularFemale'\n });\n httpWebtrack.setConfigActions(configAction);\n return httpWebtrack.post(`${baseUrl}/saveWorkplanExecutionLocation`, request);\n};\n","const permissions = {\n temperatureCatalog: 'TE001',\n temperatureStadistics: 'TE002',\n fuelCatalog: 'TE003',\n fuelReport: 'TE007',\n fuelStadistics: 'TE004',\n tirePressureCatalog: 'TE005',\n obd2Monitor: 'TE006',\n telemtryUnits: 'TU001',\n downtime: 'UP027'\n};\n \nexport default permissions;\n","import { NoticeByDateRequest } from 'views/screens/vehicleMaintenance/types';\nimport * as types from 'views/screens/vehicleMaintenance/types/preventiveNotices/noticesByDate';\n\nexport const startFetchingNotices = (filters = {}) => ({\n type: types.NOTICES_BY_DATE_FETCH_STARTED,\n payload: filters\n});\n\nexport const completeFetchingNotices = (entities, order) => ({\n type: types.NOTICES_BY_DATE_FETCH_COMPLETED,\n payload: {\n entities,\n order\n }\n});\n\nexport const failFetchingNotices = (error = { errorMessage: 'Error', errorNumber: 404 }) => ({\n type: types.NOTICES_BY_DATE_FETCH_FAILED,\n payload: {\n error //error:{errorMessage:'Error', errorNumber:400}\n }\n});\n\nexport const startPartialFetchingNotices = (entityTypeId) => ({\n type: types.NOTICES_BY_DATE_PARTIAL_FETCH_STARTED,\n payload: entityTypeId\n});\n\nexport const completePartialFetchingNotices = (entities, order) => ({\n type: types.NOTICES_BY_DATE_PARTIAL_FETCH_COMPLETED,\n payload: {\n entities,\n order\n }\n});\n\nexport const failPartialFetchingNotices = (\n error = { errorMessage: 'Error', errorNumber: 404 }\n) => ({\n type: types.NOTICES_BY_DATE_PARTIAL_FETCH_FAILED,\n payload: {\n error //error:{errorMessage:'Error', errorNumber:400}\n }\n});\n\nexport const startAddingNotice = (notice: NoticeByDateRequest) => ({\n type: types.NOTICE_BY_DATE_ADD_STARTED,\n payload: notice\n});\n\nexport const completeAddingNotice = (id: string, oldId: string, notice) => ({\n type: types.NOTICE_BY_DATE_ADD_COMPLETED,\n payload: { id, oldId, notice }\n});\n\nexport const failAddingNotice = (oldId, error) => ({\n type: types.NOTICE_BY_DATE_ADD_FAILED,\n payload: {\n oldId,\n error\n }\n});\n\nexport const startEditingNotice = (notice: NoticeByDateRequest) => ({\n type: types.NOTICE_BY_DATE_EDIT_STARTED,\n payload: notice\n});\n\nexport const completeEditingNotice = (notice) => ({\n type: types.NOTICE_BY_DATE_EDIT_COMPLETED,\n payload: notice\n});\n\nexport const failEditingNotice = (oldNotice, error) => ({\n type: types.NOTICE_BY_DATE_EDIT_FAILED,\n payload: {\n oldNotice,\n error\n }\n});\n\n//===================== RENEW ========================================\nexport const startRenewNotice = (notice: NoticeByDateRequest) => ({\n type: types.NOTICE_BY_DATE_RENEW_STARTED,\n payload: notice\n});\n\nexport const completeRenewNotice = (notice) => ({\n type: types.NOTICE_BY_DATE_RENEW_COMPLETED,\n payload: notice\n});\n\nexport const failRenewNotice = (oldNotice, error) => ({\n type: types.NOTICE_BY_DATE_RENEW_FAILED,\n payload: {\n oldNotice,\n error\n }\n});\n\nexport const startRemovingNotice = (request: { noticeId: number; unitId: number }) => ({\n type: types.NOTICE_BY_DATE_REMOVE_STARTED,\n payload: {\n ...request\n }\n});\n\nexport const completeRemovingNotice = (id) => ({\n type: types.NOTICE_BY_DATE_REMOVE_COMPLETED,\n payload: {\n id\n }\n});\n\nexport const failRemovingNotice = (id, error) => ({\n type: types.NOTICE_BY_DATE_REMOVE_FAILED,\n payload: {\n id,\n error\n }\n});\n","import { useEffect, useState } from 'react';\nimport L, { TileLayer } from 'leaflet';\nimport 'leaflet.gridlayer.googlemutant';\nimport 'leaflet-plugins/layer/tile/Bing'; //https://github.com/digidem/leaflet-bing-layer\nimport 'leaflet-providers';\nimport { useSelector } from 'react-redux';\nimport * as authSelectors from '../../../../../redux/reducers/auth';\nimport { useScript } from '../../utils';\nimport { useLeafletContext } from '@react-leaflet/core';\n\n/* -------------------------------------------------------------------------- */\n/* MapBaseLayers given User Properties */\n/* -------------------------------------------------------------------------- */\nexport interface MapBaseLayersOptions {\n forceUseMapquestMaps?: boolean;\n forceUseGoogleMaps?: boolean;\n forceUseHereMaps?: boolean;\n forceUseBingMaps?: boolean;\n position: 'topleft' | 'topright' | 'bottomleft' | 'bottomright';\n listenMapControlChanges?: any[];\n}\n\nconst MapBaseLayers = (props: MapBaseLayersOptions) => {\n const {\n forceUseMapquestMaps,\n forceUseGoogleMaps,\n forceUseHereMaps,\n forceUseBingMaps,\n position,\n listenMapControlChanges\n } = props;\n const user = useSelector(authSelectors.getAuthUser);\n const context = useLeafletContext();\n\n //Initialize mapquest and google maps\n //We get apikeys from usersession\n useScript(\n `https://www.mapquestapi.com/sdk/leaflet/v2.2/mq-map.js?key=${user.mapquestConsumerKey}`\n );\n useScript(\n `https://maps.googleapis.com/maps/api/js?key=${user.googleMapsApiKey}&libraries=places`\n );\n\n //Initialize Maps\n useEffect(() => {\n let osmmap: null | TileLayer = null;\n let gmRoadmap = null;\n let gmHybrid = null;\n let gmSatellite = null;\n let gmTerrain = null;\n let gmTraffic = null;\n let bing = null;\n let bing_satelite = null;\n let bing_hibrido = null;\n let here_layer = null;\n let here_satelite_layer = null;\n let mqOsm = null;\n let mqHybrid = null;\n let mqSatellite = null;\n let mqDark = null;\n let mqLight = null;\n let mapTilerBasic = null;\n let mapTilerLight = null;\n let mapTilerDark = null;\n\n const useMapquestMaps =\n //@ts-ignore MapQuest\n typeof MQ !== 'undefined' && (user.useMapquestMaps == 1 || forceUseMapquestMaps);\n const useGoogleMaps = user.useGoogleMaps == 1 || forceUseGoogleMaps;\n const useBingMaps = user.useBingMaps == 1 || forceUseBingMaps;\n const useHereMaps = user.useHereMaps == 1 || forceUseHereMaps;\n //Open Street Maps\n let osmurl = '//tile.openstreetmap.org/{z}/{x}/{y}.png';\n let osmAttrib = 'Map data © OpenStreetMap contributors';\n osmmap = new L.TileLayer(osmurl, {\n maxZoom: 19,\n attribution: osmAttrib\n });\n let baseMapLayers = { OpenStreetMap: osmmap };\n\n //Mapquest Maps\n if (useMapquestMaps) {\n // @ts-ignore MapQuest\n mqOsm = MQ.mapLayer();\n // @ts-ignore MapQuest\n mqHybrid = MQ.hybridLayer();\n // @ts-ignore MapQuest\n mqSatellite = MQ.satelliteLayer();\n // @ts-ignore MapQuest\n mqDark = MQ.darkLayer();\n // @ts-ignore MapQuest\n mqLight = MQ.lightLayer();\n\n baseMapLayers['MapQuest'] = mqOsm;\n baseMapLayers['MapQuest Hybrid'] = mqHybrid;\n baseMapLayers['MapQuest Satellite'] = mqSatellite;\n baseMapLayers['MapQuest Dark'] = mqDark;\n baseMapLayers['MapQuest Light'] = mqLight;\n }\n\n //Google Maps\n if (useGoogleMaps) {\n gmRoadmap = L.gridLayer.googleMutant({\n maxZoom: 24,\n type: 'roadmap'\n });\n gmHybrid = L.gridLayer.googleMutant({\n maxZoom: 24,\n type: 'hybrid'\n });\n gmSatellite = L.gridLayer.googleMutant({\n maxZoom: 24,\n type: 'satellite'\n });\n gmTerrain = L.gridLayer.googleMutant({\n maxZoom: 24,\n type: 'terrain'\n });\n gmTraffic = L.gridLayer.googleMutant({\n maxZoom: 24,\n type: 'roadmap'\n });\n if (gmTraffic) gmTraffic.addGoogleLayer('TrafficLayer');\n\n baseMapLayers['Google Maps'] = gmRoadmap;\n baseMapLayers['Google Maps Road & Satellite'] = gmHybrid;\n baseMapLayers['Google Maps Traffic'] = gmTraffic;\n baseMapLayers['Google Maps Terrain'] = gmTerrain;\n baseMapLayers['Google Maps Satellite'] = gmSatellite;\n }\n\n // Bing Maps\n const bing_api_key = user.bingMapsApiKey;\n if (useBingMaps) {\n bing_satelite = new L.BingLayer(bing_api_key, {\n type: 'Aerial'\n });\n bing_hibrido = new L.BingLayer(bing_api_key, {\n type: 'AerialWithLabels'\n });\n bing = new L.BingLayer(bing_api_key, {\n type: 'Road'\n });\n baseMapLayers['Bing Maps'] = bing;\n baseMapLayers['Bing Satellite'] = bing_satelite;\n baseMapLayers['Bing Hybrid'] = bing_hibrido;\n }\n\n //Here maps\n const hereMapsAppId = user.hereMapsAppId;\n const hereMapsAppCode = user.hereMapsAppCode;\n if (useHereMaps) {\n here_layer = L.tileLayer.provider('HERE.normalDay', {\n app_id: hereMapsAppId,\n app_code: hereMapsAppCode\n });\n here_satelite_layer = L.tileLayer.provider('HERE.hybridDay', {\n app_id: hereMapsAppId,\n app_code: hereMapsAppCode\n });\n\n baseMapLayers['Here Maps'] = here_layer;\n baseMapLayers['Here Maps Satellite'] = here_satelite_layer;\n }\n\n const layerGroup = new L.Control.Layers(baseMapLayers, {}, { position: position });\n const container = context.layerContainer || context.map;\n container.addLayer(osmmap);\n container.addControl(layerGroup);\n\n //Check if user has a prefered map\n //vamos a revisar si hay un layer escogido\n var homeLayer = null;\n const homeLayerId = parseInt(user.homeLayer);\n switch (homeLayerId) {\n case 0:\n homeLayer = osmmap;\n break;\n case 1:\n homeLayer = osmmap;\n break;\n case 2:\n homeLayer = useMapquestMaps ? mqOsm : osmmap;\n break;\n case 3:\n homeLayer = useGoogleMaps ? gmRoadmap : useBingMaps ? bing : osmmap;\n break;\n case 4:\n homeLayer = useGoogleMaps ? gmHybrid : useBingMaps ? bing : osmmap;\n break;\n case 5:\n homeLayer = useBingMaps ? bing : osmmap;\n break;\n case 6:\n homeLayer = osmmap;\n break;\n case 7:\n homeLayer = useBingMaps ? bing_satelite : osmmap;\n break;\n case 8:\n homeLayer = useBingMaps ? bing_hibrido : osmmap;\n break;\n case 9:\n homeLayer = useHereMaps ? here_layer : osmmap;\n break;\n case 10:\n homeLayer = useHereMaps ? here_satelite_layer : osmmap;\n break;\n case 11:\n homeLayer = useGoogleMaps ? gmSatellite : useBingMaps ? bing : osmmap;\n break;\n case 12:\n homeLayer = useGoogleMaps ? gmTraffic : useBingMaps ? bing : osmmap;\n break;\n case 13:\n homeLayer = useGoogleMaps ? gmTerrain : useBingMaps ? bing : osmmap;\n break;\n case 14:\n homeLayer = useMapquestMaps ? mqHybrid : osmmap;\n break;\n case 15:\n homeLayer = useMapquestMaps ? mqSatellite : osmmap;\n break;\n case 16:\n homeLayer = useMapquestMaps ? mqDark : osmmap;\n break;\n case 17:\n homeLayer = useMapquestMaps ? mqLight : osmmap;\n break;\n case 18:\n homeLayer = osmmap; // mapTilerBasic;\n break;\n case 19:\n homeLayer = osmmap; // mapTilerLight;\n break;\n case 20:\n homeLayer = osmmap; // mapTilerDark;\n break;\n }\n\n if (!homeLayer) homeLayer = osmmap;\n\n homeLayer.addTo(container);\n return () => {\n container.removeControl(layerGroup);\n };\n }, [...listenMapControlChanges]); //typeof MQ if MapQuest is still not defined\n\n return null;\n};\n\nMapBaseLayers.defaultProps = {\n forceUseMapquestMaps: false,\n forceUseGoogleMaps: false,\n forceUseHereMaps: false,\n forceUseBingMaps: false,\n position: 'bottomleft',\n listenMapControlChanges: []\n};\nexport default MapBaseLayers;\n","// @ts-nocheck\nimport { useLeafletContext } from '@react-leaflet/core';\nimport L from 'leaflet';\nimport 'leaflet.icon.glyph';\nimport { useEffect, useRef } from 'react';\nimport { Marker, Popup, Rectangle, useMap, Circle, GeoJSON, Polygon } from 'react-leaflet';\nimport { getRectBoundsFromLatLng } from '../../utils';\nimport wkx from 'wkx';\n\nexport interface MapGeofenceEditOptions {\n usePopovers?: boolean;\n geofence: any;\n onGeofenceDragend?: Function;\n onGeofenceEdit?: Function;\n showGeofence: boolean;\n isMapFullScreen?: boolean;\n}\n\n/* -------------------------------------------------------------------------- */\n/* MapGeofenceEdit to edit a geofence in map */\n/* -------------------------------------------------------------------------- */\nconst MapGeofenceEdit = (props: MapGeofenceEditOptions) => {\n const map = useMap();\n const { showGeofence, geofence, onGeofenceEdit, usePopovers, isMapFullScreen = false } = props;\n\n const zoomMapAfterEdit = !isMapFullScreen;\n const zoomMapToGeofence = (geofence) => {\n if (geofence.shape == 'C') {\n let geofenceGeoJSON = WKBtoGeoJSON(geofence, geofence.geofenceWktString);\n let feature = L.latLng(geofenceGeoJSON.coordinates[1], geofenceGeoJSON.coordinates[0]);\n map.flyToBounds(feature.toBounds(geofence.radius * 2 ?? 300), {});\n } else {\n let geofenceGeoJSON = WKBtoGeoJSON(geofence, geofence.geofenceWktString);\n let feature = L.geoJson(geofenceGeoJSON);\n // map.setView(feature.getBounds().getCenter(), 16);\n map.flyToBounds(feature.getBounds(), {});\n }\n };\n const WKBtoGeoJSON = (geofence, wkt) => {\n // let wkbBuffer = new Buffer(hex);\n if (wkt) {\n let geometry = wkx.Geometry.parse(wkt);\n if (geofence.shape == 'P') {\n geometry.type = 'LineString';\n }\n const geoJSON = geometry.toGeoJSON();\n\n return geoJSON;\n }\n return undefined;\n };\n\n useEffect(() => {\n try {\n geofenceRef.current.pm.enableLayerDrag();\n geofenceRef.current.pm.enable({ removeLayerBelowMinVertexCount: false, draggable: true });\n if (usePopovers) {\n geofenceRef.current.openPopup();\n }\n } catch {}\n if (geofence && Object.keys(geofence).length > 0) {\n if (zoomMapAfterEdit) zoomMapToGeofence(geofence);\n }\n }, [geofence.geofenceId]);\n\n useEffect(() => {\n try {\n if (geofenceRef.current) {\n geofenceRef.current.pm.enableLayerDrag();\n geofenceRef.current.pm.enable({ removeLayerBelowMinVertexCount: false, draggable: true });\n }\n } catch {}\n }, [geofence.geofenceWktString]);\n\n const style = getComputedStyle(document.body);\n const primary = process.env.REACT_APP_PRIMARY_COLOR;\n const geofenceRef = useRef(null);\n\n const geofenceGeoJSON = WKBtoGeoJSON(geofence, geofence.geofenceWktString);\n\n return (\n <>\n {showGeofence && geofenceGeoJSON && (\n
\n {geofence.shape == 'C' && (\n <>\n {},\n 'pm:edit': (e) => {\n var geometry = wkx.Geometry.parseGeoJSON(e.target.toGeoJSON().geometry);\n\n if (onGeofenceEdit)\n onGeofenceEdit({\n geofenceWktString: geometry.toWkt(),\n radius: e.target.getRadius()\n });\n if (zoomMapAfterEdit)\n zoomMapToGeofence({\n ...geofence,\n geofenceWktString: geometry.toWkt(),\n radius: e.target.getRadius()\n });\n },\n 'pm:dragend': (e) => {\n e.layer.pm.enableLayerDrag();\n e.layer.pm.enable({ draggable: true });\n var geometry = wkx.Geometry.parseGeoJSON(e.target.toGeoJSON().geometry);\n if (onGeofenceEdit)\n onGeofenceEdit({\n geofenceWktString: geometry.toWkt(),\n radius: e.target.getRadius()\n });\n if (zoomMapAfterEdit)\n zoomMapToGeofence({\n ...geofence,\n geofenceWktString: geometry.toWkt(),\n radius: e.target.getRadius()\n });\n }\n }}\n >\n {usePopovers && (\n \n \n {geofence.geofenceName}\n \n \n )}\n \n \n )}\n\n {geofence.shape == 'R' && (\n <>\n {},\n 'pm:edit': (e) => {\n var geometry = wkx.Geometry.parseGeoJSON(e.target.toGeoJSON().geometry);\n if (onGeofenceEdit) onGeofenceEdit({ geofenceWktString: geometry.toWkt() });\n if (zoomMapAfterEdit)\n zoomMapToGeofence({\n ...geofence,\n geofenceWktString: geometry.toWkt()\n });\n },\n\n 'pm:dragend': (e) => {\n e.layer.pm.enableLayerDrag();\n e.layer.pm.enable({ draggable: true });\n var geometry = wkx.Geometry.parseGeoJSON(e.target.toGeoJSON().geometry);\n\n if (onGeofenceEdit) onGeofenceEdit({ geofenceWktString: geometry.toWkt() });\n if (zoomMapAfterEdit)\n zoomMapToGeofence({\n ...geofence,\n geofenceWktString: geometry.toWkt()\n });\n }\n }}\n >\n {usePopovers && (\n \n \n {geofence.geofenceName}\n \n \n )}\n \n \n )}\n\n {geofence.shape == 'P' &&\n ['MultiPolygon', 'GeometryCollection'].includes(geofenceGeoJSON.type) && (\n <>\n {},\n 'pm:edit': (e) => {\n var geometry = wkx.Geometry.parseGeoJSON(e.layer.toGeoJSON().geometry);\n if (onGeofenceEdit) onGeofenceEdit({ geofenceWktString: geometry.toWkt() });\n if (zoomMapAfterEdit)\n zoomMapToGeofence({\n ...geofence,\n geofenceWktString: geometry.toWkt()\n });\n },\n 'pm:dragend': (e) => {\n e.layer.pm.enableLayerDrag();\n e.layer.pm.enable({ draggable: true });\n var geometry = wkx.Geometry.parseGeoJSON(e.layer.toGeoJSON().geometry);\n if (onGeofenceEdit) onGeofenceEdit({ geofenceWktString: geometry.toWkt() });\n if (zoomMapAfterEdit)\n zoomMapToGeofence({\n ...geofence,\n geofenceWktString: geometry.toWkt()\n });\n }\n }}\n >\n {usePopovers && (\n \n \n {geofence.geofenceName}\n \n \n )}\n \n \n )}\n {geofence.shape == 'P' &&\n !['MultiPolygon', 'GeometryCollection'].includes(geofenceGeoJSON.type) && (\n <>\n [coords[1], coords[0]])\n // geofenceGeoJSON.coordinates[0].map((coords) => [coords[1], coords[0]])\n L.GeoJSON.coordsToLatLngs(geofenceGeoJSON.coordinates[0])\n }\n pathOptions={{ color: geofence.color ?? primary }}\n eventHandlers={{\n click: (e) => {},\n 'pm:edit': (e) => {\n var geometry = wkx.Geometry.parseGeoJSON(e.layer.toGeoJSON().geometry);\n if (onGeofenceEdit) onGeofenceEdit({ geofenceWktString: geometry.toWkt() });\n if (zoomMapAfterEdit)\n zoomMapToGeofence({\n ...geofence,\n geofenceWktString: geometry.toWkt()\n });\n },\n 'pm:dragend': (e) => {\n e.layer.pm.enableLayerDrag();\n e.layer.pm.enable({ draggable: true });\n var geometry = wkx.Geometry.parseGeoJSON(e.layer.toGeoJSON().geometry);\n if (onGeofenceEdit) onGeofenceEdit({ geofenceWktString: geometry.toWkt() });\n if (zoomMapAfterEdit)\n zoomMapToGeofence({\n ...geofence,\n geofenceWktString: geometry.toWkt()\n });\n }\n }}\n >\n {usePopovers && (\n \n \n {geofence.geofenceName}\n \n \n )}\n \n \n )}\n {geofence.shape == 'U' && (\n \n {usePopovers && (\n \n \n {geofence.geofenceName}\n \n \n )}\n \n )}\n
\n )}\n )\n \n );\n};\n\nMapGeofenceEdit.defaultProps = {\n geofence: {},\n showGeofence: false,\n isMapFullScreen: false,\n usePopovers: true\n};\n\nexport default MapGeofenceEdit;\n","// @ts-nocheck\nimport L from 'leaflet';\nimport { createPathComponent } from '@react-leaflet/core';\nimport { renderToString } from 'react-dom/server';\nimport 'leaflet.markercluster';\n\nconst MarkerClusterGroup = createPathComponent(({ children: _c, icon = null, ...props }, ctx) => {\n const clusterProps = {\n spiderLegPolylineOptions: { pmIgnore: true, weight: 1.5, color: '#0d6efd', opacity: 0.5 },\n removeOutsideVisibleBounds: true,\n chunkedLoading: true,\n iconCreateFunction: function (cluster) {\n var childCount = cluster.getChildCount();\n\n var c = ' marker-cluster-';\n if (childCount < 10) {\n c += 'small';\n } else if (childCount < 100) {\n c += 'medium';\n } else {\n c += 'large';\n }\n\n return new L.DivIcon({\n html: icon\n ? renderToString(\n \n {childCount}\n {icon}\n \n )\n : renderToString(\n
\n {childCount}\n
\n ),\n className: 'marker-cluster' + c,\n iconSize: new L.Point(40, 40)\n });\n }\n };\n const clusterEvents = {};\n\n // Splitting props and events to different objects\n Object.entries(props).forEach(([propName, prop]) =>\n propName.startsWith('on') ? (clusterEvents[propName] = prop) : (clusterProps[propName] = prop)\n );\n\n // Creating markerClusterGroup Leaflet element\n const markerClusterGroup = new L.markerClusterGroup(clusterProps);\n markerClusterGroup._getExpandedVisibleBounds = function () {\n return markerClusterGroup._map.getBounds();\n };\n\n // Initializing event listeners\n Object.entries(clusterEvents).forEach(([eventAsProp, callback]) => {\n const clusterEvent = `cluster${eventAsProp.substring(2).toLowerCase()}`;\n markerClusterGroup.on(clusterEvent, callback);\n });\n\n return {\n instance: markerClusterGroup,\n context: { ...ctx, layerContainer: markerClusterGroup }\n };\n});\n\nexport default MarkerClusterGroup;\n","// @ts-nocheck\nimport { useLeafletContext } from '@react-leaflet/core';\nimport L from 'leaflet';\nimport 'leaflet.icon.glyph';\nimport React, { Fragment, useEffect, useState } from 'react';\nimport { Circle, GeoJSON, Polygon, Tooltip, Rectangle, useMapEvents } from 'react-leaflet';\nimport { useDispatch, useSelector } from 'react-redux';\nimport useDeepCompareEffect from 'use-deep-compare-effect';\nimport wkx from 'wkx';\nimport * as geofenceActions from '../../../../screens/Geofences/actions';\nimport * as geofenceSelectors from '../../../../screens/Geofences/reducers';\nimport SlidingpanelGeofenceInformation from '../../../../screens/Geofences/views/SlidingpanelGeofenceInformation';\nimport MarkerClusterGroup from '../MarkerClusterGroup';\n\nexport interface MapGeofencesOptions {\n isSelectedSomething?: any;\n setIsSelectedSomething?: Function;\n setMapPositionToGeofenceBounds?: boolean;\n useSlidingpanelGeofenceInformation?: boolean;\n usePopovers?: boolean;\n geofences?: any[];\n selectedGeofenceIds?: any[];\n showGeofences?: boolean;\n clusterMarkers?: boolean;\n isMapFullScreen?: boolean;\n useIsShownGeofence?: boolean; //param only when you have a property in each geofence isShownInMap to show geofences on map\n initialShowSlidingPanelGeofenceInformationOpen?: boolean;\n initialGeofenceInformationOpenId?: any;\n editingGeofenceParent?: any;\n setEditingGeofenceParent?: Function;\n editingGeofenceParentRef?: any;\n}\n\nconst WKBtoGeoJSON = (wkt) => {\n // let wkbBuffer = new Buffer(hex);\n let geometry = wkx.Geometry.parse(wkt);\n\n return geometry.toGeoJSON();\n};\n\nexport const zoomMapToGeofence = (map, isMapFullScreen, geofence) => {\n if (geofence.shape == 'C') {\n let geofenceGeoJSON = WKBtoGeoJSON(geofence.geofenceWktString);\n let feature = L.latLng(geofenceGeoJSON.coordinates[1], geofenceGeoJSON.coordinates[0]);\n map.flyToBounds(\n feature.toBounds(geofence.radius * 2.5 ?? 300),\n isMapFullScreen\n ? {\n paddingBottomRight: [550, 0],\n paddingTopLeft: [0, 70],\n maxZoom: 15,\n animate: 15 !== map.getZoom()\n }\n : {\n maxZoom: 15,\n animate: 15 !== map.getZoom()\n }\n );\n } else {\n let geofenceGeoJSON = WKBtoGeoJSON(geofence?.geofenceWktString);\n let feature = L.geoJson(geofenceGeoJSON);\n map.flyToBounds(\n feature.getBounds(),\n isMapFullScreen\n ? {\n paddingBottomRight: [550, 0],\n paddingTopLeft: [0, 70],\n maxZoom: 15,\n animate: 15 !== map.getZoom()\n }\n : {\n maxZoom: 15,\n animate: 15 !== map.getZoom()\n }\n );\n }\n};\n\nconst MapGeofences = (props: MapGeofencesOptions) => {\n const context = useLeafletContext();\n const map = useMapEvents({\n moveend: () => {\n displayGeofences();\n }\n });\n const {\n isSelectedSomething,\n setIsSelectedSomething,\n showGeofences = false,\n useIsShownGeofence = false,\n geofences = [],\n selectedGeofenceIds,\n setMapPositionToGeofenceBounds = false,\n useSlidingpanelGeofenceInformation = true,\n clusterMarkers = false,\n usePopovers,\n isMapFullScreen = false,\n initialShowSlidingPanelGeofenceInformationOpen = false,\n initialGeofenceInformationOpenId,\n editingGeofenceParent,\n setEditingGeofenceParent,\n editingGeofenceParentRef\n } = props;\n const store = useSelector((state) => state);\n const dispatch = useDispatch();\n const [showGeofenceInformationSlidepanel, setShowGeofenceInformationSlidepanel] = useState(false);\n const [initialGeofenceId, setInitialGeofenceId] = useState();\n const [selectedGeofence, setSelectedGeofence] = useState({});\n const { isEditing, isAdding, mainGeofence } = useSelector((state) => ({\n isEditing: geofenceSelectors.isEditingGeofence(state),\n isAdding: geofenceSelectors.isAddingGeofence(state),\n mainGeofence: geofenceSelectors.getGeofence(\n state,\n editingGeofenceParentRef?.current?.parentGeofenceId\n )\n }));\n\n useEffect(() => {\n if (mainGeofence?.geofenceId) {\n zoomMapToGeofence(map, isMapFullScreen, mainGeofence);\n dispatch(geofenceActions.showGeofenceInMap(mainGeofence.geofenceId));\n return () => {\n dispatch(geofenceActions.hideGeofenceInMap(mainGeofence.geofenceId));\n };\n }\n }, [mainGeofence?.geofenceId]);\n\n useEffect(() => {\n if (setIsSelectedSomething) {\n setIsSelectedSomething({\n ...isSelectedSomething,\n geofences: selectedGeofence?.geofenceId != null\n });\n }\n }, [selectedGeofence]);\n\n useEffect(() => {\n if (!isEditing && selectedGeofence.geofenceId) {\n setSelectedGeofence(geofenceSelectors.getGeofence(store, selectedGeofence.geofenceId));\n setShowGeofenceInformationSlidepanel(true);\n }\n }, [isEditing]);\n\n useEffect(() => {\n if (setMapPositionToGeofenceBounds && map && geofences.length > 0) {\n if (geofences.length == 1) {\n zoomMapToGeofence(map, isMapFullScreen, geofences[0]);\n } else {\n var bounds = [];\n geofences.map((geofence) => {\n let geofenceGeoJSON;\n\n geofenceGeoJSON = WKBtoGeoJSON(geofence.geofenceWktString);\n if (geofence.shape == 'C') {\n bounds = [\n ...bounds,\n L.latLng(geofenceGeoJSON.coordinates[1], geofenceGeoJSON.coordinates[0])\n ];\n } else if (geofence.shape == 'R') {\n bounds = [\n ...bounds,\n ...geofenceGeoJSON.coordinates[0].map((coords) => L.latLng([coords[1], coords[0]]))\n ];\n } else if (geofence.shape == 'P') {\n bounds = [\n ...bounds,\n ...(geofenceGeoJSON.type == 'LineString'\n ? geofenceGeoJSON.coordinates.map((coords) => L.latLng([coords[1], coords[0]]))\n : geofenceGeoJSON.coordinates[0].map((coords) => L.latLng([coords[1], coords[0]])))\n ];\n } else if (geofence.shape == 'U') {\n bounds = [\n ...bounds,\n _.flatten(\n geofenceGeoJSON.coordinates.map((coordinate) =>\n coordinate.map((coords) =>\n coords[1] && coords[0] ? L.latLng([coords[1], coords[0]]) : null\n )\n )\n )\n ];\n }\n });\n map.fitBounds(\n L.latLngBounds(bounds.filter((bound) => bound != null && bound instanceof L.LatLng))\n );\n }\n }\n }, [geofences.length, setMapPositionToGeofenceBounds]);\n\n //Open and select geofence if params are set\n useEffect(() => {\n if (initialShowSlidingPanelGeofenceInformationOpen && useSlidingpanelGeofenceInformation) {\n if (initialGeofenceInformationOpenId) {\n const initialGeofenceInformation = geofenceSelectors.getGeofence(\n store,\n initialGeofenceInformationOpenId\n );\n\n if (\n initialGeofenceId !== initialGeofenceInformationOpenId &&\n initialGeofenceInformation.shape\n ) {\n setInitialGeofenceId(initialGeofenceInformation.geofenceId);\n setSelectedGeofence(initialGeofenceInformation);\n zoomMapToGeofence(map, isMapFullScreen, initialGeofenceInformation);\n }\n setShowGeofenceInformationSlidepanel(true);\n }\n } else {\n setInitialGeofenceId(undefined);\n setSelectedGeofence({});\n setShowGeofenceInformationSlidepanel(false);\n }\n }, [initialGeofenceInformationOpenId]);\n const style = getComputedStyle(document.body);\n const primary = process.env.REACT_APP_PRIMARY_COLOR;\n\n // Check if you want to cluster markers\n let WrapperMarkerClusterGroup = Fragment;\n if (clusterMarkers) {\n WrapperMarkerClusterGroup = MarkerClusterGroup;\n }\n\n const [geofencesBounds, setGeofencesBounds] = useState([]);\n const displayGeofences = () => {\n setGeofencesBounds(\n geofences.filter((geofence) => {\n if (!geofence.geofenceWktString) return false;\n let geofenceGeoJSON = WKBtoGeoJSON(geofence.geofenceWktString);\n let feature = L.geoJson(geofenceGeoJSON);\n return map\n ? map.getBounds().contains(feature.getBounds()) ||\n map.getBounds().overlaps(feature.getBounds())\n : true;\n })\n );\n };\n useDeepCompareEffect(() => {\n displayGeofences();\n }, [showGeofences, isEditing, isAdding, geofences]);\n\n const onClickGeofence = (e, geofence) => {\n if (editingGeofenceParentRef?.current) {\n dispatch(geofenceActions.showGeofenceInMap(editingGeofenceParentRef?.current.geofenceId));\n if (setEditingGeofenceParent) setEditingGeofenceParent(undefined);\n }\n\n setSelectedGeofence({ ...geofence, layer: e.target });\n if (useSlidingpanelGeofenceInformation) {\n setShowGeofenceInformationSlidepanel(true);\n }\n zoomMapToGeofence(map, isMapFullScreen, geofence);\n };\n\n return (\n <>\n {(showGeofences || useIsShownGeofence) && (\n \n {geofencesBounds.map((geofence) => {\n const geofenceGeoJSON = WKBtoGeoJSON(geofence.geofenceWktString);\n if (\n geofenceGeoJSON.type == 'MultiPolygon' ||\n geofenceGeoJSON.type == 'GeometryCollection'\n ) {\n console.log('geofence = ', geofence.geofenceName);\n }\n return (\n ((showGeofences && !useIsShownGeofence) ||\n (useIsShownGeofence && geofence.isShownInMap)) && (\n
\n {geofence.shape == 'C' && (\n <>\n 0 &&\n selectedGeofenceIds.includes(geofence.geofenceId)\n ? 850\n : 800\n }\n center={L.latLng(\n geofenceGeoJSON.coordinates[1],\n geofenceGeoJSON.coordinates[0]\n )}\n radius={geofence.radius}\n pathOptions={{\n color:\n selectedGeofenceIds?.length > 0 &&\n !selectedGeofenceIds.includes(geofence.geofenceId)\n ? 'rgba(128, 128, 128, 0.6)'\n : geofence.color ?? primary\n }}\n eventHandlers={{\n click: (e) => {\n onClickGeofence(e, geofence);\n }\n }}\n >\n {usePopovers && (\n \n \n {geofence.geofenceName}\n \n \n )}\n \n \n )}\n {geofence.shape == 'R' && (\n <>\n 0 &&\n selectedGeofenceIds.includes(geofence.geofenceId)\n ? 850\n : 800\n }\n bounds={geofenceGeoJSON.coordinates[0].map((coords) => [\n coords[1],\n coords[0]\n ])}\n pathOptions={{\n color:\n selectedGeofenceIds &&\n selectedGeofenceIds.length > 0 &&\n !selectedGeofenceIds.includes(geofence.geofenceId)\n ? 'gray'\n : geofence.color ?? primary\n }}\n eventHandlers={{\n click: (e) => {\n onClickGeofence(e, geofence);\n }\n }}\n >\n {usePopovers && (\n \n \n {geofence.geofenceName}\n \n \n )}\n \n \n )}\n\n {geofence.shape == 'P' &&\n ['MultiPolygon', 'GeometryCollection'].includes(geofenceGeoJSON.type) && (\n <>\n 0 &&\n selectedGeofenceIds.includes(geofence.geofenceId)\n ? 850\n : 800\n }\n data={geofenceGeoJSON}\n pathOptions={{\n color:\n selectedGeofenceIds &&\n selectedGeofenceIds.length > 0 &&\n !selectedGeofenceIds.includes(geofence.geofenceId)\n ? 'gray'\n : geofence.color ?? primary\n }}\n eventHandlers={{\n click: (e) => {\n onClickGeofence(e, geofence);\n }\n }}\n >\n {usePopovers && (\n \n \n {geofence.geofenceName}\n \n \n )}\n \n \n )}\n\n {geofence.shape == 'P' &&\n !['MultiPolygon', 'GeometryCollection'].includes(geofenceGeoJSON.type) && (\n <>\n 0 &&\n selectedGeofenceIds.includes(geofence.geofenceId)\n ? 850\n : 800\n }\n positions={\n geofenceGeoJSON.type == 'LineString'\n ? geofenceGeoJSON.coordinates.map((coords) => [coords[1], coords[0]])\n : geofenceGeoJSON.coordinates[0].map((coords) => [\n coords[1],\n coords[0]\n ])\n }\n pathOptions={{\n color:\n selectedGeofenceIds &&\n selectedGeofenceIds.length > 0 &&\n !selectedGeofenceIds.includes(geofence.geofenceId)\n ? 'gray'\n : geofence.color ?? primary\n }}\n eventHandlers={{\n click: (e) => {\n onClickGeofence(e, geofence);\n }\n }}\n >\n {usePopovers && (\n \n \n {geofence.geofenceName}\n \n \n )}\n \n \n )}\n\n {geofence.shape == 'U' && (\n 0 &&\n selectedGeofenceIds.includes(geofence.geofenceId)\n ? 850\n : 800\n }\n // pmIgnore={true}\n style={{\n color:\n selectedGeofenceIds &&\n selectedGeofenceIds.length > 0 &&\n !selectedGeofenceIds.includes(geofence.geofenceId)\n ? 'gray'\n : geofence.color\n }}\n data={geofenceGeoJSON}\n >\n {usePopovers && (\n \n \n {geofence.geofenceName}\n \n \n )}\n \n )}\n
\n )\n );\n })}\n
\n )}\n\n {\n setShowGeofenceInformationSlidepanel(false);\n setSelectedGeofence({});\n }}\n isSlidepanelOpen={showGeofenceInformationSlidepanel}\n title={selectedGeofence.geofenceName}\n geofence={selectedGeofence}\n editingGeofenceParent={editingGeofenceParent}\n editingGeofenceParentRef={editingGeofenceParentRef}\n setEditingGeofenceParent={setEditingGeofenceParent}\n />\n \n );\n};\n\nMapGeofences.defaultProps = {\n setMapPositionToGeofenceBounds: false,\n useSlidingpanelGeofenceInformation: true,\n geofences: [],\n showGeofences: false,\n clusterMarkers: false,\n isMapFullScreen: false,\n initialShowSlidingPanelGeofenceInformationOpen: false,\n usePopovers: true,\n initialGeofenceInformationOpenId: undefined,\n useIsShownGeofence: false\n};\n\nexport default MapGeofences;\n","// @ts-nocheck\nimport { useLeafletContext } from '@react-leaflet/core';\nimport L from 'leaflet';\nimport 'leaflet.icon.glyph';\nimport { useEffect, useRef } from 'react';\nimport { Marker, Popup, Rectangle, useMap } from 'react-leaflet';\nimport { getRectBoundsFromLatLng } from '../../utils';\n\nexport interface MapLocationEditOptions {\n usePopovers?: boolean;\n location: any;\n onLocationDragend?: Function;\n showLocation: boolean;\n useRectangleBounds: boolean;\n isMapFullScreen?: boolean;\n}\n\n/* -------------------------------------------------------------------------- */\n/* MapLocationEdit to edit a marker in map */\n/* -------------------------------------------------------------------------- */\nconst MapLocationEdit = (props: MapLocationEditOptions) => {\n const map = useMap();\n const {\n showLocation,\n location,\n useRectangleBounds = true,\n useSlidingpanelLocationInformation,\n onLocationDragend,\n usePopovers,\n isMapFullScreen = false\n } = props;\n\n const zoomMapToLocation = (latLng) => {\n const maxZoom = Math.max(15, map.getZoom());\n setTimeout(function () {\n var ll;\n if (latLng instanceof L.LatLng) {\n ll = latLng;\n } else {\n ll = L.latLng(latLng);\n }\n map.flyToBounds(\n [ll],\n isMapFullScreen\n ? {\n paddingBottomRight: [550, 0],\n paddingTopLeft: [0, 70],\n maxZoom,\n animate: 15 > map.getZoom()\n }\n : {\n maxZoom,\n animate: 15 > map.getZoom()\n }\n );\n }, 500);\n };\n\n useEffect(() => {\n try {\n markerRef.current.pm.enable({ preventMarkerRemoval: true });\n if (usePopovers) {\n markerRef.current.openPopup();\n }\n } catch {}\n if (location.latitude != null && location.longitude != null) {\n zoomMapToLocation(L.latLng(location.latitude, location.longitude));\n }\n }, [location]);\n\n const style = getComputedStyle(document.body);\n const primary = process.env.REACT_APP_PRIMARY_COLOR;\n const markerRef = useRef(null);\n const popupRef = useRef(null);\n\n return (\n <>\n {showLocation && location?.latitude != null && location?.longitude != null && (\n
\n
`,\n iconSize: [30, 42],\n iconAnchor: [15, 42],\n popupAnchor: [0, -35]\n })}\n position={[location.latitude, location.longitude]}\n eventHandlers={{\n click: (e) => {\n zoomMapToLocation(e.latlng);\n },\n 'pm:dragend': (e) => {\n if (onLocationDragend) onLocationDragend(e.target.getLatLng());\n }\n }}\n >\n {usePopovers && (\n \n \n {location.locationName}\n \n \n )}\n \n\n {useRectangleBounds && (\n \n )}\n \n )}\n )\n \n );\n};\n\nMapLocationEdit.defaultProps = {\n location: {},\n showLocation: false,\n useRectangleBounds: true,\n isMapFullScreen: false,\n usePopovers: true\n};\n\nexport default MapLocationEdit;\n","// @ts-nocheck\nimport L from 'leaflet';\nimport 'leaflet.icon.glyph';\nimport { Fragment, useEffect, useState } from 'react';\nimport { Marker, Rectangle, Tooltip, useMapEvents } from 'react-leaflet';\nimport { useDispatch, useSelector } from 'react-redux';\nimport { Media } from 'reactstrap';\nimport useDeepCompareEffect from 'use-deep-compare-effect';\nimport Icon from 'utility/icomoon';\nimport { showUnitByZoomAndRadius } from 'views/screens/Locations/utils';\nimport * as authSelectors from '../../../../../redux/reducers/auth';\nimport * as locationActions from '../../../../screens/Locations/actions';\nimport * as locationSelectors from '../../../../screens/Locations/reducers';\nimport SlidingpanelLocationInformation from '../../../../screens/Locations/views/SlidingpanelLocationInformation';\nimport { getRectBoundsFromLatLng } from '../../utils';\nimport MarkerClusterGroup from '../MarkerClusterGroup';\n\nexport interface MapLocationsOptions {\n isSelectedSomething?: any;\n setIsSelectedSomething?: Function;\n setMapPositionToLocationBounds?: boolean;\n useSlidingpanelLocationInformation?: boolean;\n usePopovers?: boolean;\n locations?: any[];\n selectedLocationIds?: any[];\n showLocations?: boolean;\n useRectangleBounds?: boolean;\n clusterMarkers?: boolean;\n hideMarkersByZoom?: boolean;\n isMapFullScreen?: boolean;\n useIsShownLocation?: boolean; //param only when you have a property in each location isShownInMap to show locations on map\n initialShowSlidingPanelLocationInformationOpen?: boolean;\n initialLocationInformationOpenId?: any;\n editingLocationParent?: any;\n setEditingLocationParent?: Function;\n editingLocationParentRef?: any;\n selectedLocationInTable?: any;\n}\n\nconst MapLocations = (props: MapLocationsOptions) => {\n const map = useMapEvents({\n moveend: () => {\n displayMarkers();\n }\n });\n const {\n isSelectedSomething,\n setIsSelectedSomething,\n showLocations = false,\n useIsShownLocation = false,\n locations = [],\n selectedLocationIds,\n useRectangleBounds = true,\n setMapPositionToLocationBounds = false,\n useSlidingpanelLocationInformation = true,\n clusterMarkers = false,\n hideMarkersByZoom = true,\n usePopovers,\n isMapFullScreen = false,\n initialShowSlidingPanelLocationInformationOpen = false,\n initialLocationInformationOpenId,\n editingLocationParent,\n setEditingLocationParent,\n editingLocationParentRef,\n selectedLocationInTable\n } = props;\n const dispatch = useDispatch();\n const [showLocationInformationSlidepanel, setShowLocationInformationSlidepanel] = useState(false);\n const [initialLocationId, setInitialLocationId] = useState();\n const [selectedLocation, setSelectedLocation] = useState({});\n const { store, user, isEditing, isAdding } = useSelector((state) => ({\n store: state,\n user: authSelectors.getAuthUser(state),\n isEditing: locationSelectors.isEditingLocation(state),\n isAdding: locationSelectors.isAddingLocation(state)\n }));\n\n useEffect(() => {\n if (setIsSelectedSomething) {\n setIsSelectedSomething({\n ...isSelectedSomething,\n locations: selectedLocation?.locationId != null\n });\n }\n }, [selectedLocation]);\n\n useEffect(() => {\n if (!isEditing && selectedLocation.locationId) {\n setSelectedLocation(locationSelectors.getLocation(store, selectedLocation.locationId));\n setShowLocationInformationSlidepanel(true);\n }\n }, [isEditing]);\n\n const zoomMapToLocation = (latLng) => {\n var ll;\n if (latLng instanceof L.LatLng) {\n ll = latLng;\n } else {\n ll = L.latLng(latLng);\n }\n map.flyToBounds([ll], {\n paddingBottomRight: [selectedLocationInTable ? 0 : 550, 0],\n paddingTopLeft: [0, 70],\n maxZoom: 15,\n animate: 15 !== map.getZoom()\n });\n };\n\n useDeepCompareEffect(() => {\n if (setMapPositionToLocationBounds && map && locations.length > 0) {\n if (locations.length == 1) {\n if (locations[0].latitude != null && locations[0].longitude != null) {\n var ll = L.latLng(locations[0].latitude, locations[0].longitude);\n map.flyToBounds(ll.toBounds(800), {});\n }\n } else {\n let bounds = L.latLngBounds(locations.map((loc) => [loc.latitude, loc.longitude]));\n map.fitBounds(bounds);\n }\n }\n }, [\n locations?.map((location) => ({\n latitude: location?.latitude,\n longitude: location?.longitude,\n isShownInMap: location?.isShownInMap\n })),\n setMapPositionToLocationBounds\n ]);\n\n useEffect(() => {\n if (selectedLocationInTable) {\n var ll = L.latLng(selectedLocationInTable.latitude, selectedLocationInTable.longitude);\n zoomMapToLocation(ll);\n }\n }, [selectedLocationInTable]);\n\n //Open and select location if params are set\n useEffect(() => {\n if (initialShowSlidingPanelLocationInformationOpen && useSlidingpanelLocationInformation) {\n if (initialLocationInformationOpenId) {\n const initialLocationInformation = locationSelectors.getLocation(\n store,\n initialLocationInformationOpenId\n );\n\n if (\n initialLocationId !== initialLocationInformationOpenId &&\n initialLocationInformation.latitude != null &&\n initialLocationInformation.longitude != null\n ) {\n setInitialLocationId(initialLocationInformation.locationId);\n setSelectedLocation(initialLocationInformation);\n var ll = L.latLng(\n initialLocationInformation.latitude,\n initialLocationInformation.longitude\n );\n zoomMapToLocation(ll);\n }\n setShowLocationInformationSlidepanel(true);\n }\n } else {\n setInitialLocationId(undefined);\n setSelectedLocation({});\n setShowLocationInformationSlidepanel(false);\n }\n }, [initialLocationInformationOpenId]);\n const style = getComputedStyle(document.body);\n const primary = process.env.REACT_APP_PRIMARY_COLOR;\n\n // Check if you want to cluster markers\n let WrapperMarkerClusterGroup = Fragment;\n let icon = undefined;\n if (clusterMarkers) {\n WrapperMarkerClusterGroup = MarkerClusterGroup;\n icon = ;\n }\n\n const [locationsBounds, setLocationsBounds] = useState([]);\n const displayMarkers = () => {\n setLocationsBounds(\n locations.filter((location) =>\n map\n ? location?.latitude != null &&\n location?.longitude != null &&\n map.getBounds().contains(L.latLng(location.latitude, location.longitude)) &&\n (!hideMarkersByZoom ||\n showUnitByZoomAndRadius(map.getZoom(), location?.radius || 50) ||\n selectedLocationIds?.includes(location?.locationId))\n : true\n )\n );\n };\n useDeepCompareEffect(() => {\n displayMarkers();\n }, [\n showLocations,\n isEditing,\n isAdding,\n locations?.map((location) => ({\n latitude: location.latitude,\n longitude: location?.longitude,\n isShownInMap: location?.isShownInMap\n }))\n ]);\n\n return (\n <>\n {(showLocations || useIsShownLocation) && (\n \n {locationsBounds.map(\n (location) =>\n location.latitude != null &&\n location.longitude != null &&\n ((showLocations && !useIsShownLocation) ||\n (useIsShownLocation && location.isShownInMap)) && (\n
\n 0 &&\n selectedLocationIds.includes(location.locationId)\n ? 850\n : 800\n }\n riseOnHover={true}\n icon={L.divIcon({\n className: 'custom-div-icon',\n html: `
${\n location.locationClassContent ??\n ``\n }`,\n iconSize: [30, 42],\n iconAnchor: [15, 42],\n popupAnchor: [0, -35]\n })}\n position={[location.latitude, location.longitude]}\n eventHandlers={{\n click: (e) => {\n if (editingLocationParentRef?.current) {\n dispatch(\n locationActions.showLocationInMap(\n editingLocationParentRef?.current.locationId\n )\n );\n if (setEditingLocationParent) setEditingLocationParent(undefined);\n }\n setSelectedLocation(location);\n if (useSlidingpanelLocationInformation) {\n setShowLocationInformationSlidepanel(true);\n }\n zoomMapToLocation(e.latlng);\n }\n }}\n >\n {usePopovers && (\n \n \n {location.locationName}\n \n\n {location.fullImageUrl && (\n <>\n

\n \n \n )}\n \n )}\n \n\n {useRectangleBounds && (\n \n )}\n
\n )\n )}\n
\n )}\n\n {\n setShowLocationInformationSlidepanel(false);\n setSelectedLocation({});\n }}\n isSlidepanelOpen={showLocationInformationSlidepanel}\n title={selectedLocation.locationName}\n location={selectedLocation}\n editingLocationParent={editingLocationParent}\n editingLocationParentRef={editingLocationParentRef}\n setEditingLocationParent={setEditingLocationParent}\n />\n \n );\n};\n\nMapLocations.defaultProps = {\n setMapPositionToLocationBounds: false,\n useSlidingpanelLocationInformation: true,\n locations: [],\n showLocations: false,\n useRectangleBounds: true,\n clusterMarkers: false,\n hideMarkersByZoom: true,\n isMapFullScreen: false,\n initialShowSlidingPanelLocationInformationOpen: false,\n usePopovers: true,\n initialLocationInformationOpenId: undefined,\n useIsShownLocation: false\n};\n\nexport default MapLocations;\n","// @ts-nocheck\nimport { useLeafletContext } from '@react-leaflet/core';\nimport L from 'leaflet';\nimport 'leaflet.icon.glyph';\nimport { useEffect } from 'react';\nimport { useMap } from 'react-leaflet';\nimport { useSelector } from 'react-redux';\nimport useDeepCompareEffect from 'use-deep-compare-effect';\nimport { getRouteBounds } from 'views/screens/Routes/utils';\nimport wkx from 'wkx';\n\nexport interface MapObjectsBoundsOptions {\n isSelectedSomething?: any;\n setMapPositionToGeofenceBounds?: boolean;\n setMapPositionToLocationBounds?: boolean;\n setMapPositionToUnitBounds?: boolean;\n setMapPositionToUnitPositionsBounds?: boolean;\n setMapPositionToRouteBounds?: boolean;\n geofences?: any[];\n locations?: any[];\n units?: any[];\n routes?: any[];\n rerenderMapObjectBounds?: date;\n paddingBottomRight?: any[];\n paddingTopLeft?: any[];\n}\n\nconst MapObjectsBounds = (props: MapObjectsBoundsOptions) => {\n const context = useLeafletContext();\n\n const {\n isSelectedSomething,\n setMapPositionToGeofenceBounds = false,\n setMapPositionToLocationBounds = false,\n setMapPositionToUnitBounds = false,\n setMapPositionToUnitPositionsBounds = false,\n setMapPositionToRouteBounds = false,\n geofences = [],\n locations = [],\n units = [],\n routes = [],\n rerenderMapObjectBounds,\n paddingBottomRight,\n paddingTopLeft\n } = props;\n const store = useSelector((state) => state);\n const map = useMap();\n\n const zoomMapToObjects = () => {\n var bounds = [];\n if (setMapPositionToLocationBounds) {\n locations\n .filter((location) => location?.latitude != null && location?.longitude != null)\n .map((location) => {\n bounds = [...bounds, L.latLng(location.latitude, location.longitude)];\n });\n }\n if (setMapPositionToGeofenceBounds) {\n geofences.map((geofence) => {\n let geofenceGeoJSON;\n geofenceGeoJSON = WKBtoGeoJSON(geofence.geofenceWktString);\n if (geofence.shape == 'C') {\n bounds = [\n ...bounds,\n L.latLng(geofenceGeoJSON.coordinates[1], geofenceGeoJSON.coordinates[0])\n ];\n } else if (geofence.shape == 'R') {\n bounds = [\n ...bounds,\n ...geofenceGeoJSON.coordinates[0].map((coords) => L.latLng([coords[1], coords[0]]))\n ];\n } else if (geofence.shape == 'P') {\n bounds = [\n ...bounds,\n ...(geofenceGeoJSON.type == 'LineString'\n ? geofenceGeoJSON.coordinates.map((coords) => L.latLng([coords[1], coords[0]]))\n : geofenceGeoJSON.coordinates[0].map((coords) => L.latLng([coords[1], coords[0]])))\n ];\n } else if (geofence.shape == 'U') {\n bounds = [\n ...bounds,\n _.flatten(\n geofenceGeoJSON.coordinates.map((coordinate) =>\n coordinate.map((coords) =>\n coords[1] && coords[0] ? L.latLng([coords[1], coords[0]]) : null\n )\n )\n )\n ];\n }\n });\n }\n if (setMapPositionToUnitBounds) {\n units\n .filter((unit) => unit?.latitude != null && unit?.longitude != null)\n .map((unit) => {\n bounds = [...bounds, L.latLng(unit.latitude, unit.longitude)];\n });\n }\n if (setMapPositionToUnitPositionsBounds) {\n units\n .filter((unit) => unit?.historicalPositions?.polyline)\n .map((unit) => {\n unit.historicalPositions.polyline.map((position) => {\n bounds = [...bounds, L.latLng(position.latitude, position.longitude)];\n });\n });\n }\n if (setMapPositionToRouteBounds) {\n routes.map((route) => {\n bounds = [...bounds, ...getRouteBounds(route)];\n });\n }\n if (\n (setMapPositionToGeofenceBounds ||\n setMapPositionToLocationBounds ||\n setMapPositionToUnitBounds ||\n setMapPositionToUnitPositionsBounds ||\n setMapPositionToRouteBounds) &&\n bounds.length > 0\n ) {\n map.flyToBounds(\n L.latLngBounds(bounds.filter((bound) => bound != null && bound instanceof L.LatLng)),\n {\n paddingBottomRight: paddingBottomRight ?? undefined,\n paddingTopLeft: paddingTopLeft ?? undefined,\n maxZoom: 15,\n animate: 15 !== map.getZoom()\n }\n );\n }\n };\n\n const WKBtoGeoJSON = (wkt) => {\n // let wkbBuffer = new Buffer(hex);\n let geometry = wkx.Geometry.parse(wkt);\n\n return geometry.toGeoJSON();\n };\n useDeepCompareEffect(() => {\n if (\n isSelectedSomething == null ||\n Object.values(isSelectedSomething).filter((s) => s).length === 0\n )\n zoomMapToObjects();\n }, [\n isSelectedSomething,\n geofences,\n locations,\n setMapPositionToGeofenceBounds,\n rerenderMapObjectBounds\n ]);\n return null;\n};\n\nMapObjectsBounds.defaultProps = {\n setMapPositionToGeofenceBounds: false,\n setMapPositionToLocationBounds: false,\n geofences: [],\n locations: []\n};\n\nexport default MapObjectsBounds;\n","'use strict';\n\n/**\n * Based off of [the offical Google document](https://developers.google.com/maps/documentation/utilities/polylinealgorithm)\n *\n * Some parts from [this implementation](http://facstaff.unca.edu/mcmcclur/GoogleMaps/EncodePolyline/PolylineEncoder.js)\n * by [Mark McClure](http://facstaff.unca.edu/mcmcclur/)\n *\n * @module polyline\n */\n\nvar polyline = {};\n\nfunction encode(coordinate, factor) {\n coordinate = Math.round(coordinate * factor);\n coordinate <<= 1;\n if (coordinate < 0) {\n coordinate = ~coordinate;\n }\n var output = '';\n while (coordinate >= 0x20) {\n output += String.fromCharCode((0x20 | (coordinate & 0x1f)) + 63);\n coordinate >>= 5;\n }\n output += String.fromCharCode(coordinate + 63);\n return output;\n}\n\n/**\n * Decodes to a [latitude, longitude] coordinates array.\n *\n * This is adapted from the implementation in Project-OSRM.\n *\n * @param {String} str\n * @param {Number} precision\n * @returns {Array}\n *\n * @see https://github.com/Project-OSRM/osrm-frontend/blob/master/WebContent/routing/OSRM.RoutingGeometry.js\n */\npolyline.decode = function (str, precision) {\n var index = 0,\n lat = 0,\n lng = 0,\n coordinates = [],\n shift = 0,\n result = 0,\n byte = null,\n latitude_change,\n longitude_change,\n factor = Math.pow(10, precision || 5);\n\n // Coordinates have variable length when encoded, so just keep\n // track of whether we've hit the end of the string. In each\n // loop iteration, a single coordinate is decoded.\n while (index < str.length) {\n // Reset shift, result, and byte\n byte = null;\n shift = 0;\n result = 0;\n\n do {\n byte = str.charCodeAt(index++) - 63;\n result |= (byte & 0x1f) << shift;\n shift += 5;\n } while (byte >= 0x20);\n\n latitude_change = result & 1 ? ~(result >> 1) : result >> 1;\n\n shift = result = 0;\n\n do {\n byte = str.charCodeAt(index++) - 63;\n result |= (byte & 0x1f) << shift;\n shift += 5;\n } while (byte >= 0x20);\n\n longitude_change = result & 1 ? ~(result >> 1) : result >> 1;\n\n lat += latitude_change;\n lng += longitude_change;\n\n coordinates.push([lat / factor, lng / factor]);\n }\n\n return coordinates;\n};\n\n/**\n * Encodes the given [latitude, longitude] coordinates array.\n *\n * @param {Array.>} coordinates\n * @param {Number} precision\n * @returns {String}\n */\npolyline.encode = function (coordinates, precision) {\n if (!coordinates.length) {\n return '';\n }\n\n var factor = Math.pow(10, precision || 5),\n output = encode(coordinates[0][0], factor) + encode(coordinates[0][1], factor);\n\n for (var i = 1; i < coordinates.length; i++) {\n var a = coordinates[i],\n b = coordinates[i - 1];\n output += encode(a[0] - b[0], factor);\n output += encode(a[1] - b[1], factor);\n }\n\n return output;\n};\n\nfunction flipped(coords) {\n var flipped = [];\n for (var i = 0; i < coords.length; i++) {\n flipped.push(coords[i].slice().reverse());\n }\n return flipped;\n}\n\n/**\n * Encodes a GeoJSON LineString feature/geometry.\n *\n * @param {Object} geojson\n * @param {Number} precision\n * @returns {String}\n */\npolyline.fromGeoJSON = function (geojson, precision) {\n if (geojson && geojson.type === 'Feature') {\n geojson = geojson.geometry;\n }\n if (!geojson || geojson.type !== 'LineString') {\n throw new Error('Input must be a GeoJSON LineString');\n }\n return polyline.encode(flipped(geojson.coordinates), precision);\n};\n\n/**\n * Decodes to a GeoJSON LineString geometry.\n *\n * @param {String} str\n * @param {Number} precision\n * @returns {Object}\n */\npolyline.toGeoJSON = function (str, precision) {\n var coords = polyline.decode(str, precision);\n return {\n type: 'LineString',\n coordinates: flipped(coords)\n };\n};\n\nexport default polyline;\n","import polyline from './poliyline';\n\nL.Routing = L.Routing || {};\nL.Routing.Google = L.Class.extend({\n options: {},\n initialize: function (options) {\n this.options = L.extend(this.options, {\n travelMode: google.maps.TravelMode.DRIVING,\n unitSystem: google.maps.UnitSystem.METRIC,\n provideRouteAlternatives: true\n });\n this.directionsService = new google.maps.DirectionsService();\n L.Util.setOptions(this, options);\n },\n _flatten: function (arrs) {\n var arr = [],\n i;\n for (i = 0; i < arrs.length; i++) arr = arr.concat(arrs[i]);\n return arr;\n },\n _decodePolyline: function (geometry) {\n var coords = polyline.decode(geometry, 5),\n latlngs = new Array(coords.length),\n i;\n for (i = 0; i < coords.length; i++) {\n latlngs[i] = new L.LatLng(coords[i][0], coords[i][1]);\n }\n\n return latlngs;\n },\n _maneuverToInstructionType: function (maneuver) {\n switch (maneuver) {\n case 'turn-right':\n return 'Right';\n case 'turn-slight-right':\n case 'ramp-right':\n case 'fork-right':\n return 'SlightRight';\n case 'turn-sharp-right':\n return 'SharpRight';\n case 'turn-left':\n return 'Left';\n case 'turn-slight-left':\n case 'ramp-left':\n case 'fork-left':\n return 'SlightLeft';\n case 'turn-sharp-left':\n return 'SharpLeft';\n case 'uturn-right':\n case 'uturn-left':\n return 'TurnAround';\n case 'roundabout-left':\n case 'roundabout-right':\n return 'Roundabout';\n default:\n return 'Straight';\n }\n },\n route: function (waypoints, callback, context, options) {\n var that = this;\n var directions = L.extend({}, this.options);\n if (options.geometryOnly) {\n directions.provideRouteAlternatives = false;\n }\n directions.origin = waypoints[0].latLng.lat + ',' + waypoints[0].latLng.lng;\n directions.destination =\n waypoints[waypoints.length - 1].latLng.lat + ',' + waypoints[waypoints.length - 1].latLng.lng;\n directions.waypoints = waypoints.slice(1, waypoints.length - 1).map(function (waypoint) {\n return {\n location: waypoint.latLng.lat + ',' + waypoint.latLng.lng,\n stopover: false\n };\n });\n\n this.directionsService.route(directions, function (result, status) {\n if (status == google.maps.DirectionsStatus.OK) {\n var r = result.routes.map(function (route) {\n var iroute = {},\n i,\n j,\n step;\n iroute.name = route.summary;\n iroute.summary = {\n totalDistance: that\n ._flatten(\n route.legs.map(function (leg) {\n return leg.steps.map(function (step) {\n return step.distance.value;\n });\n })\n )\n .reduce(function (previousValue, currentValue) {\n return previousValue + currentValue;\n }),\n totalTime: that\n ._flatten(\n route.legs.map(function (leg) {\n return leg.steps.map(function (step) {\n return step.duration.value;\n });\n })\n )\n .reduce(function (previousValue, currentValue) {\n return previousValue + currentValue;\n })\n };\n\n iroute.coordinates = [];\n var indices = [],\n indicesSecondary = [];\n\n var waypointIndices = [0];\n var nWaypoint = 1;\n\n for (i = 0; i < route.legs.length; i++) {\n indicesSecondary = [];\n var stepsPoints = [];\n\n for (j = 0; j < route.legs[i].steps.length; j++) {\n step = route.legs[i].steps[j];\n var points = that._decodePolyline(step.polyline.points);\n stepsPoints[j] = points.length;\n indicesSecondary.push(iroute.coordinates.length);\n iroute.coordinates = iroute.coordinates.concat(points);\n }\n indices.push(indicesSecondary);\n\n for (var j = 0; j < route.legs[i].via_waypoints.length; j++) {\n var si = route.legs[i].via_waypoint[j].step_index;\n var sp = route.legs[i].via_waypoint[j].step_interpolation;\n\n waypointIndices[nWaypoint] = indicesSecondary[si] + Math.floor(stepsPoints[si] * sp);\n nWaypoint++;\n }\n }\n\n iroute.inputWaypoints = waypoints || [];\n iroute.waypoints = iroute.actualWaypoints = waypoints;\n\n waypointIndices[nWaypoint] = iroute.coordinates.length - 1;\n iroute.waypointIndices = waypointIndices;\n\n if (!options.geometryOnly) {\n iroute.instructions = [];\n for (i = 0; i < route.legs.length; i++)\n for (j = 0; j < route.legs[i].steps.length; j++) {\n step = route.legs[i].steps[j];\n iroute.instructions.push({\n type: that._maneuverToInstructionType(step.maneuver),\n text: step.instructions.replace(/<(?:.|\\n)*?>/gm, ''),\n distance: step.distance.value,\n time: step.duration.value,\n index: indices[i][j],\n exit: null //instr.exit_number\n });\n }\n }\n return iroute;\n });\n try {\n callback.call(context || callback, null, r);\n } catch {}\n } else {\n try {\n callback.call(context, {\n status: status,\n message: result\n });\n } catch {}\n }\n });\n return this;\n }\n});\n\nL.Routing.google = function (options) {\n return new L.Routing.Google(options);\n};\n","/* -------------------------------------------------------------------------- */\n/* Componente SlidingPaneForm */\n/* -------------------------------------------------------------------------- */\n// Este componente contiene un SlidingPaneForm genĆ©rico que se utiliza en muchas pantallas de la aplicaciĆ³n.\n\n// @ts-nocheck\nimport '@geoman-io/leaflet-geoman-free';\nimport 'leaflet-routing-machine';\nimport { useState } from 'react';\nimport { Edit2, MapPin, MoreVertical, Plus, Trash } from 'react-feather';\nimport { useIntl } from 'react-intl';\nimport { useSelector } from 'react-redux';\nimport { Col, InputGroupText, ListGroupItem, Media, Row, Tooltip } from 'reactstrap';\nimport { Controller } from 'react-hook-form';\nimport Icon from 'utility/icomoon';\nimport LocationsDropdownInput from 'views/formComponents/LocationDropDown';\nimport { appIntl } from '../../../../../utility/context/IntlGlobalProvider';\nimport * as locationSelectors from '../../../../screens/Locations/reducers';\nimport '../../utils/lrm-google';\n\ninterface Props {\n control: any;\n formValues: any;\n checkpoints: any[];\n createdLocations: any[];\n addCheckpoint: any;\n editCheckpoint: any;\n editPath: any;\n deleteCheckpoint: any;\n addNewMarkerOnMap: any;\n addGoogleLocationToCheckpoint: any;\n addLocationToCheckpoint: any;\n deleteLocationOfCheckpoint: any;\n item: any;\n index: number;\n}\n\nconst RouteItem = (props: Props) => {\n const {\n control,\n formValues,\n checkpoints,\n createdLocations,\n addCheckpoint,\n editCheckpoint,\n editPath,\n deleteCheckpoint,\n addNewMarkerOnMap,\n addGoogleLocationToCheckpoint,\n addLocationToCheckpoint,\n deleteLocationOfCheckpoint,\n item,\n index\n } = props;\n const intl = useIntl();\n const [mouseEnter, setMouseEnter] = useState(false);\n const [tooltipAddOpen, setTooltipAddOpen] = useState(false);\n const [tooltipEditOpen, setTooltipEditOpen] = useState(false);\n const [tooltipEditOpen2, setTooltipEditOpen2] = useState(false);\n const [tooltipEditSegmentOpen, setTooltipEditSegmentOpen] = useState(false);\n const [tooltipDeleteOpen, setTooltipDeleteOpen] = useState(false);\n\n const locations = useSelector((state) => {\n const dropDownLocations = [...locationSelectors.getLocationsList(state), ...createdLocations];\n return (\n item.locationId && !dropDownLocations.map((loc) => loc.locationId).includes(item.locationId)\n ? [...dropDownLocations, item]\n : dropDownLocations\n ).map((loc) =>\n loc.locationId === item.locationId ? { ...loc, locationName: item.checkpointName } : loc\n );\n });\n\n return (\n setMouseEnter(true)}\n onMouseLeave={() => setMouseEnter(false)}\n >\n \n \n item.latitude != null &&\n item.longitude != null &&\n editCheckpoint(\n item.checkpointId,\n index === 0 ? 1 : index === checkpoints.length - 1 ? 3 : 2,\n index\n )\n }\n >\n {index === 0 ? (\n \n ) : index === checkpoints.length - 1 ? (\n \n ) : (\n \n )}\n {item.latitude != null && item.longitude != null && (\n setTooltipEditOpen2(!tooltipEditOpen2)}\n trigger=\"click hover\"\n >\n {intl.formatMessage({\n id:\n index === 0\n ? 'routes.editOrigin'\n : index === checkpoints.length - 1\n ? 'routes.editDestination'\n : 'routes.editCheckpoint'\n })}\n \n )}\n \n \n (\n {\n value\n ? formValues['checkpointId-' + item.checkpointId.toString()] !== value &&\n (value?.googleLocation\n ? addGoogleLocationToCheckpoint(item.checkpointId, value)\n : addLocationToCheckpoint(item.checkpointId, value))\n : formValues['checkpointId-' + item.checkpointId.toString()] &&\n deleteLocationOfCheckpoint(item.checkpointId);\n }}\n isInModal={true}\n forceinitialvalue={item.locationId}\n options={locations.map((location) => ({\n value: location.locationId,\n label: location.locationName\n }))}\n appendcomponent={\n <>\n \n item.latitude != null && item.longitude != null\n ? editCheckpoint(\n item.checkpointId,\n index === 0 ? 1 : index === checkpoints.length - 1 ? 3 : 2,\n index\n )\n : addNewMarkerOnMap(index)\n }\n >\n {item.latitude != null && item.longitude != null ? (\n \n ) : (\n \n )}\n setTooltipEditOpen(!tooltipEditOpen)}\n trigger=\"click hover\"\n >\n {intl.formatMessage({\n id:\n item.latitude != null && item.longitude != null\n ? index === 0\n ? 'routes.editOrigin'\n : index === checkpoints.length - 1\n ? 'routes.editDestination'\n : 'routes.editCheckpoint'\n : 'routes.selectPointOnMap'\n })}\n \n \n {checkpoints.length > 2 && (\n deleteCheckpoint(item.checkpointId)}\n >\n \n {/* setTooltipDeleteOpen(!tooltipDeleteOpen)}\n trigger=\"click hover\"\n >\n {intl.formatMessage({\n id:\n index === 0\n ? 'routes.deleteOrigin'\n : index === checkpoints.length - 1\n ? 'routes.deleteDestination'\n : 'routes.deleteCheckpoint'\n })}\n */}\n \n )}\n \n }\n placeholder={intl.formatMessage({\n id: 'locations.locationPlaceholder'\n })}\n />\n )}\n />\n \n \n \n {index !== checkpoints.length - 1 && (\n <>\n editPath(index)}\n />\n setTooltipEditSegmentOpen(!tooltipEditSegmentOpen)}\n trigger=\"click hover\"\n >\n {intl.formatMessage({\n id: 'routes.editSegment'\n })}\n \n \n )}\n
\n {mouseEnter && (\n <>\n addCheckpoint(index)} />\n setTooltipAddOpen(!tooltipAddOpen)}\n trigger=\"click hover\"\n >\n {intl.formatMessage({\n id: 'routes.addNewCheckPoint'\n })}\n \n \n )}\n
\n
\n \n );\n};\n\nRouteItem.defaultProps = {\n inputs: [],\n initialTab: 0,\n hasButtonSubmit: true,\n hasButtonCancel: true\n};\n\nexport default RouteItem;\n","import { useEffect, useState } from 'react';\nimport { Minus } from 'react-feather';\nimport { Controller, useForm } from 'react-hook-form';\nimport { FormattedMessage, useIntl } from 'react-intl';\nimport { useDispatch, useSelector } from 'react-redux';\nimport SlidingPane from 'react-sliding-pane';\nimport { Button, Col, Media, Row } from 'reactstrap';\nimport useDeepCompareEffect from 'use-deep-compare-effect';\nimport DefaultSimpleButton from 'views/components/DefaultSimpleButton';\nimport DropdownInput from 'views/formComponents/DropdownInput';\nimport MapsBasic from '../..';\nimport * as routeCheckpointsActions from '../../../../screens/Routes/actions/routeCheckpoints';\nimport * as routeSelectors from '../../../../screens/Routes/reducers/routes';\n\ninterface Props {\n routeId: any;\n route: any;\n title: any;\n confirmText: any;\n isOpenSlidingPane: any;\n closeSlidingPane: any;\n hasButtonSubmit: boolean;\n hasButtonCancel: boolean;\n isGeneratingRoute: boolean;\n alternateRoutes: any;\n setAlternateRoutes: any;\n membership: any;\n}\n\nconst SlidingPaneAddAlternateRoute = (props: Props) => {\n const {\n routeId,\n route,\n title,\n confirmText,\n isOpenSlidingPane,\n closeSlidingPane,\n hasButtonSubmit,\n hasButtonCancel,\n isGeneratingRoute,\n alternateRoutes,\n setAlternateRoutes,\n membership\n } = props;\n\n const intl = useIntl();\n const dispatch = useDispatch();\n const { control, handleSubmit, watch } = useForm();\n const formValues = watch();\n const [rerenderMap, setRerenderMap] = useState(new Date());\n const [showOriginalRoute, setShowOriginalRoute] = useState(true);\n const [showAlternateRoute, setShowAlternateRoute] = useState(true);\n\n const { routes, routesOnMap } = useSelector((state) => {\n const selectedRoute = routeSelectors.getRoute(state, formValues?.alternateRoute);\n return {\n routes: routeSelectors.getRoutesListByMembership(state, membership),\n routesOnMap: [\n !isGeneratingRoute && showOriginalRoute ? route : undefined,\n selectedRoute && showAlternateRoute ? { ...selectedRoute, pathColor: 'darkRed' } : undefined\n ].filter((route) => route)\n };\n });\n useEffect(() => {\n if (formValues?.alternateRoute) {\n dispatch(routeCheckpointsActions.startFetchingRouteCheckpoints(formValues?.alternateRoute));\n }\n }, [formValues?.alternateRoute]);\n\n useDeepCompareEffect(() => {\n setRerenderMap(new Date());\n }, [routesOnMap]);\n\n return (\n closeSlidingPane()}\n >\n 0\n ? {\n showRoutes: true,\n isMapFullScreen: false,\n useSlidingPaneRouteInformation: false,\n routes: routesOnMap\n }\n : {}\n }\n mapObjectsBoundsOptions={{\n setMapPositionToRouteBounds: true,\n routes: routesOnMap,\n rerenderMapObjectBounds: rerenderMap\n }}\n >\n \n \n (\n \n routeId !== route.routeId &&\n !alternateRoutes.map((ar) => ar.routeId).includes(route.routeId) &&\n (!formValues?.membership?.organizationId ||\n formValues.membership.organizationId === route.organizationId)\n )\n .map((route) => ({\n id: route.routeId,\n value: route.routeId,\n label: route.routeName\n }))}\n label={intl.formatMessage({\n id: 'routes.alternateRoute'\n })}\n placeholder={intl.formatMessage({ id: 'routes.routePlaceholder' })}\n />\n )}\n />\n \n \n
\n \n \n \n \n {intl.formatMessage({ id: 'routes.originalRoute' })}\n setShowOriginalRoute(!showOriginalRoute)}\n id={'originalRouteEyeButton'}\n />\n \n \n \n \n \n {intl.formatMessage({ id: 'routes.alternateRoute' })}\n {formValues?.alternateRoute && (\n setShowAlternateRoute(!showAlternateRoute)}\n id={'alternateRouteEyeButton'}\n />\n )}\n \n \n \n \n \n {hasButtonSubmit && (\n {\n setAlternateRoutes([\n ...alternateRoutes,\n ...routes.filter((route) => route.routeId === values.alternateRoute)\n ]);\n closeSlidingPane();\n })}\n >\n {confirmText || }\n \n )}\n {hasButtonCancel && (\n closeSlidingPane()}\n >\n \n \n )}\n \n \n \n );\n};\n\nSlidingPaneAddAlternateRoute.defaultProps = {\n hasButtonSubmit: true,\n hasButtonCancel: true\n};\n\nexport default SlidingPaneAddAlternateRoute;\n","/* -------------------------------------------------------------------------- */\n/* Componente SlidingPaneForm */\n/* -------------------------------------------------------------------------- */\n// Este componente contiene un SlidingPaneForm genĆ©rico que se utiliza en muchas pantallas de la aplicaciĆ³n.\n\nimport { useState } from 'react';\nimport { Controller } from 'react-hook-form';\nimport { FormattedMessage, useIntl } from 'react-intl';\nimport { useSelector } from 'react-redux';\nimport SlidingPane from 'react-sliding-pane';\nimport { ReactSortable } from 'react-sortablejs';\nimport { Button, Col, FormGroup, Label, Row, Spinner } from 'reactstrap';\nimport useDeepCompareEffect from 'use-deep-compare-effect';\nimport AddButton from 'views/components/AddButton';\nimport DeleteButton from 'views/components/DeleteButton';\nimport Table from 'views/components/Table';\nimport TabsWrapper from 'views/components/TabsWrapper';\nimport Toolbar from 'views/components/Toolbar';\nimport DropdownInput from 'views/formComponents/DropdownInput';\nimport WebtrackCustomInput from 'views/formComponents/WebtrackCustomInput';\nimport * as authSelectors from '../../../../../redux/reducers/auth';\nimport * as routeSelectors from '../../../../screens/Routes/reducers/routes';\nimport RouteItem from '../RouteItem';\nimport SlidingPaneAddAlternateRoute from '../SlidingPaneAddAlternateRoute';\n\ninterface Props {\n routeId: any;\n width: any;\n title: any;\n subtitle: any;\n control: any;\n handleSubmit: any;\n formValues: any;\n errors: any;\n initialTab: number;\n confirmText: any;\n isOpenSlidingPane: any;\n closeSlidingPaneForm: any;\n inputs: any[];\n isLoading: boolean;\n hasButtonSubmit: boolean;\n hasButtonCancel: boolean;\n action: any;\n isGeneratingRoute: any;\n distanceRoute: any;\n paths: any[];\n checkpoints: any[];\n setCheckpoints: any;\n createdLocations: any[];\n addCheckpoint: any;\n editCheckpoint: any;\n editPath: any;\n deleteCheckpoint: any;\n addNewMarkerOnMap: any;\n addGoogleLocationToCheckpoint: any;\n addLocationToCheckpoint: any;\n deleteLocationOfCheckpoint: any;\n alternateRoutes: any;\n setAlternateRoutes: any;\n}\n\nconst columns = [\n {\n fieldName: 'routeId',\n headerText: 'common.id'\n },\n {\n fieldName: 'routeName',\n headerText: 'routes.name'\n },\n {\n fieldName: 'abbreviation',\n headerText: 'routes.abbreviation'\n },\n {\n fieldName: 'distanceFormat',\n headerText: 'routes.distance',\n metric: 'distance',\n type: 'number',\n formatColumn: 'N2'\n },\n {\n fieldName: 'sourceName',\n headerText: 'routes.origin'\n },\n {\n fieldName: 'targetName',\n headerText: 'routes.destination'\n },\n {\n fieldName: 'checkPoints',\n headerText: 'routes.checkpoints'\n }\n];\n\nconst SlidingPaneEditRoute = (props: Props) => {\n //const [touched, setTouched] = useState(false);\n const {\n routeId,\n width,\n title,\n subtitle,\n confirmText,\n initialTab,\n isOpenSlidingPane,\n closeSlidingPaneForm,\n inputs,\n hasButtonSubmit,\n hasButtonCancel,\n action,\n isGeneratingRoute,\n handleSubmit,\n control,\n formValues,\n errors,\n isLoading,\n distanceRoute,\n paths,\n checkpoints,\n setCheckpoints,\n createdLocations,\n addCheckpoint,\n editCheckpoint,\n editPath,\n deleteCheckpoint,\n addNewMarkerOnMap,\n addGoogleLocationToCheckpoint,\n addLocationToCheckpoint,\n deleteLocationOfCheckpoint,\n alternateRoutes,\n setAlternateRoutes\n } = props;\n\n const intl = useIntl();\n const [selectedTab, setSelectedTab] = useState(initialTab);\n const [selected, changeSelected] = useState([]);\n const [isOpenSlidingPaneAddAlternateRoute, setSlidingPaneAddAlternateRoute] =\n useState(false);\n\n const { routes, authSystems } = useSelector((state) => ({\n routes: routeSelectors.getRoutesList(state),\n authSystems: authSelectors.getAuthSystems(state)\n }));\n\n useDeepCompareEffect(() => {\n const errorsKeys = Object.keys(errors);\n if (errorsKeys.length > 0) {\n if (\n selectedTab === 0 &&\n errorsKeys.filter((key) => ['abbreviation', 'routeName'].includes(key)).length === 0\n )\n setSelectedTab(1);\n else if (\n selectedTab === 1 &&\n errorsKeys.filter((key) => key.includes('checkpointId')).length === 0\n )\n setSelectedTab(0);\n else if (\n selectedTab === 2 &&\n errorsKeys.filter((key) => ['abbreviation', 'routeName'].includes(key)).length === 0\n )\n setSelectedTab(1);\n else if (\n selectedTab === 2 &&\n errorsKeys.filter((key) => key.includes('checkpointId')).length === 0\n )\n setSelectedTab(0);\n else setSelectedTab(0);\n }\n }, [Object.keys(errors)]);\n\n const closeSlidingPane = (isSaving) => {\n closeSlidingPaneForm(isSaving);\n };\n\n return (\n <>\n closeSlidingPane(false)}\n >\n {\n setSelectedTab(tabIndex);\n }}\n useCardContent={false}\n tabs={[\n {\n tabId: 0,\n title: 'routes.generalInformation'\n },\n {\n tabId: 1,\n icon: 'Route',\n title: 'routes.routeDesign'\n },\n {\n tabId: 2,\n icon: 'Shuffle',\n title: 'routes.alternateRoutes'\n }\n ]}\n tabsContent={[\n {\n tabId: 0,\n component: (\n \n {inputs.map((input, i) => (\n \n {input.subtitle && (\n
\n {input.subtitle.split('\\n').map((i, key) => {\n return key === 0 ? (\n {i}\n ) : (\n \n
\n {i}\n
\n );\n })}\n
\n )}\n \n \n ))}\n
\n )\n },\n {\n tabId: 1,\n component: (\n \n {isLoading ? (\n \n
\n
\n \n
\n
\n \n ) : (\n \n \n
\n \n \n
\n
\n \n )}\n \n \n {checkpoints.map((item, index) => (\n \n ))}\n \n \n
\n )\n },\n {\n tabId: 2,\n component: (\n <>\n setSlidingPaneAddAlternateRoute(true)}\n />,\n {\n setAlternateRoutes(\n alternateRoutes.filter((route) => route.routeId !== selected[0].routeId)\n );\n }}\n />\n ]}\n />\n \n \n )\n }\n ]}\n />\n \n \n {hasButtonSubmit && (\n {\n action(values);\n closeSlidingPane(true);\n })}\n >\n {confirmText || }\n \n )}\n {hasButtonCancel && (\n closeSlidingPane(false)}\n >\n \n \n )}\n \n \n \n \n i === 0\n ? { ...chk, segmentPath: [] }\n : {\n ...chk,\n segmentPath: paths[i - 1]?.polyline?.getLatLngs()?.map((latlng) => ({\n latitude: latlng.lat,\n longitude: latlng.lng\n }))\n }\n )\n }}\n title={intl.formatMessage({ id: 'routes.alternateRoute' })}\n isGeneratingRoute={isGeneratingRoute}\n alternateRoutes={alternateRoutes}\n setAlternateRoutes={setAlternateRoutes}\n membership={formValues?.membership}\n isOpenSlidingPane={isOpenSlidingPaneAddAlternateRoute}\n closeSlidingPane={() => setSlidingPaneAddAlternateRoute(false)}\n confirmText={intl.formatMessage({ id: 'routes.addAlternateRoute' })}\n />\n \n );\n};\n\nSlidingPaneEditRoute.defaultProps = {\n inputs: [],\n initialTab: 0,\n hasButtonSubmit: true,\n hasButtonCancel: true\n};\n\nexport default SlidingPaneEditRoute;\n","// @ts-nocheck\nimport '@geoman-io/leaflet-geoman-free';\nimport L, { polyline } from 'leaflet';\nimport 'leaflet-toolbar';\nimport 'leaflet.icon.glyph';\nimport React, { useEffect, useState } from 'react';\nimport { useForm } from 'react-hook-form';\nimport { useIntl } from 'react-intl';\nimport { useMap } from 'react-leaflet';\nimport { useDispatch, useSelector } from 'react-redux';\nimport { FormGroup, Label } from 'reactstrap';\nimport simplify from 'simplify-geometry';\nimport useDeepCompareEffect from 'use-deep-compare-effect';\nimport { v4 as uuidv4 } from 'uuid';\nimport {\n getIcon,\n getMarker,\n globalNotificationFrecs,\n routesCheckpointsIcons,\n routesEvents,\n startTimeWindow\n} from 'views/screens/Routes/utils';\nimport { geocodeByLatLng } from 'react-google-places-autocomplete';\nimport * as authSelectors from '../../../../../redux/reducers/auth';\nimport * as locationSelectors from '../../../../screens/Locations/reducers';\nimport * as routeActions from '../../../../screens/Routes/actions/routes';\nimport { getRectBoundsFromLatLng } from '../../utils';\nimport useGetAlternateRoutes from 'views/screens/Routes/hooks/useGetAlternateRoutes';\n\nexport interface MapRouteEditOptions {\n showRoute: boolean;\n route: any;\n routeCheckpoints: any;\n routePaths: any;\n setEditingRouteParent?: any;\n}\n\nconst getNullIfNaN = (data: unknown): null | number => {\n const converted = Number(data);\n\n return isNaN(converted) ? null : converted;\n};\n\nexport const useMapRouteEdit = (props: MapRouteEditOptions) => {\n const { route, routePaths, routeCheckpoints, setEditingRouteParent } = props;\n const { control, handleSubmit, watch, formState } = useForm();\n const intl = useIntl();\n const map = useMap();\n const dispatch = useDispatch();\n\n const style = getComputedStyle(document.body);\n const primary = process.env.REACT_APP_PRIMARY_COLOR;\n\n //States to create new locations\n const isGeneratingRouteRef = React.useRef(false);\n const useCenterRoute = React.useRef(false);\n const [isStartingEdit, setIsStartingEdit] = useState(false);\n const [distanceRoute, setDistanceRoute] = useState({ distance: 0 });\n const counterGenerateRouteRef = React.useRef(0);\n const [checkpoints, setCheckpoints] = useState([]);\n const checkpointsRef = React.useRef(checkpoints);\n const [paths, setPaths] = useState(null);\n const pathsRef = React.useRef(paths);\n const [drawingRouteCheckpoint, setDrawingRouteCheckpoint] = useState(null);\n const drawingRouteCheckpointRef = React.useRef(drawingRouteCheckpoint);\n const [createdLocations, setCreatedLocations] = useState([]);\n const createdLocationsRef = React.useRef(createdLocations);\n const [isOpenSlidingPaneEditRoute, setOpenSlidingPaneEditRoute] = useState(false);\n const [widthSlidingPaneEditRoute, setWidthSlidingPaneEditRoute] = useState('50rem');\n const [isOpenSlidingPaneForm, setOpenSlidingPaneForm] = useState(false);\n const [slidingPaneEditRoutesProps, setSlidingPaneEditRouteProps] = useState({ inputs: [] });\n const [slidingPaneFormProps, setSlidingPaneFormProps] = useState({ inputs: [] });\n const slidingPaneFormPropsRef = React.useRef(slidingPaneFormProps);\n const [editingRoute, setEditingRoute] = useState(undefined);\n const editingRouteRef = React.useRef(editingRoute);\n const [copyPolylineLatLngs, setCopyPolylineLatLngs] = useState({});\n const copyPolylineLatLngsRef = React.useRef(copyPolylineLatLngs);\n const [alternateRoutes, setAlternateRoutes] = useState([]);\n const alternateRoutesRef = React.useRef(alternateRoutes);\n\n const formValues = watch();\n const { locations, parsers, authSystems } = useSelector((state) => ({\n locations: locationSelectors.getLocationsList(state),\n authSystems: authSelectors.getAuthSystems(state),\n parsers: authSelectors.getParsers(state)\n }));\n\n const { data, isFetching } = useGetAlternateRoutes(editingRoute?.routeId);\n\n useEffect(() => {\n if (!isFetching) setAlternateRoutes(data);\n }, [isFetching]);\n\n useEffect(() => {\n editingRouteRef.current = editingRoute;\n if (editingRoute != undefined) {\n editRoute();\n }\n }, [editingRoute]);\n\n //Se actualiza la distancia Format\n useEffect(() => {\n setDistanceRoute({\n ...distanceRoute,\n distanceFormat: parsers\n .convertMetersToAuthUserDistanceSystem(distanceRoute.distance)\n .toFixed(2)\n });\n }, [distanceRoute?.distance]);\n\n useEffect(() => {\n deleteObjectsOnMap();\n if (routePaths.length > 0) {\n setIsStartingEdit(true);\n const newLocations = routeCheckpoints\n .filter((checkpoint) => !checkpoint.locationId)\n .map((checkpoint) => ({\n locationId: uuidv4(),\n checkpointId: checkpoint.checkpointId,\n locationName: checkpoint.checkpointName,\n longitude: checkpoint.longitude,\n latitude: checkpoint.latitude,\n radius: checkpoint.radius\n }));\n setCreatedLocations(newLocations);\n setCheckpoints(\n routeCheckpoints.map((checkpoint) => {\n return checkpoint.locationId\n ? checkpoint\n : {\n ...checkpoint,\n locationId: newLocations.filter(\n (loc) => loc.checkpointId === checkpoint.checkpointId\n )[0].locationId\n };\n })\n );\n setPaths(\n routePaths.map((path, i) => {\n const polyline = path.polyline;\n polyline.addTo(map);\n polyline.on('click', (e) => {\n L.DomEvent.stopPropagation(e);\n editPath(i);\n });\n return {\n ...path,\n secondsSegmentStopTime:\n path?.segmentStopAuthorized && [false, 0].includes(path?.segmentWithoutStopTime)\n ? path?.segmentStopTime * 60\n : undefined,\n secondsSegmentTripMinTime: path?.segmentTripMinTime,\n secondsSegmentTripMaxTime: path?.segmentTripMaxTime,\n polyline\n };\n })\n );\n setDistanceRoute({ ...distanceRoute, distance: route.distance });\n } else {\n setCreatedLocations([]);\n setCheckpoints(routeCheckpoints);\n setPaths(routePaths);\n setDistanceRoute({ ...distanceRoute, distance: 0 });\n }\n setSlidingPaneEditRouteProps({ inputs: [] });\n setEditingRoute(route);\n }, [route]);\n\n useDeepCompareEffect(() => {\n if (!isGeneratingRouteRef.current) {\n const lastCheckpointsRef = checkpointsRef.current;\n let addedLocation = null;\n if (\n !(\n lastCheckpointsRef.length == checkpoints.length &&\n lastCheckpointsRef.every((element, index) => {\n //Si se agrego o cambio una referencia se guarda la informaccion del checkpoint\n if (\n !checkpoints\n .filter((chk) => chk.locationId)\n .map((chk) => chk.locationId)\n .includes(element.locationId)\n )\n addedLocation = [\n element.checkpointId,\n index === 0 ? 1 : index === checkpoints.length - 1 ? 3 : 2,\n index\n ];\n\n return (\n element.latitude === checkpoints[index].latitude &&\n element.longitude === checkpoints[index].longitude\n );\n })\n )\n ) {\n //Se eliminan los markers antiguos\n if (!isStartingEdit) deleteObjectsOnMap();\n //Se actualizan los markers\n updateMarkersOnMap();\n //Si se agrego o cambio una referencia se procede a editar el checkpoint\n if (addedLocation) editCheckpoint(...addedLocation);\n //Se actualizan los paths\n if (!isStartingEdit) updatePathsOnMap();\n else setIsStartingEdit(false);\n }\n }\n }, [checkpoints, isGeneratingRouteRef.current]);\n\n useEffect(() => {\n pathsRef.current = paths;\n //Se centra en el mapa\n if (!isOpenSlidingPaneForm) centerRoute();\n useCenterRoute.current = true;\n }, [paths]);\n\n useEffect(() => {\n slidingPaneFormPropsRef.current = slidingPaneFormProps;\n }, [slidingPaneFormProps]);\n\n useEffect(() => {\n copyPolylineLatLngsRef.current = copyPolylineLatLngs;\n }, [copyPolylineLatLngs]);\n\n useDeepCompareEffect(() => {\n createdLocationsRef.current = createdLocations;\n }, [createdLocations]);\n\n useEffect(() => {\n drawingRouteCheckpointRef.current = drawingRouteCheckpoint;\n }, [drawingRouteCheckpoint]);\n\n useEffect(() => {\n alternateRoutesRef.current = alternateRoutes;\n }, [alternateRoutes]);\n\n const refreshTooltips = (type) => {\n const customTranslation = {\n tooltips: {\n placeMarker: intl.formatMessage({\n id:\n type === 1\n ? 'routes.addingOrigin'\n : type === 3\n ? 'routes.addingDestination'\n : 'routes.addingCheckpoint'\n })\n }\n };\n map.pm.setLang('customTranslation', customTranslation, intl.locale);\n };\n\n useEffect(() => {\n map.on('pm:create', (e) => {\n if (e.shape == 'Marker' && drawingRouteCheckpointRef.current) {\n setWidthSlidingPaneEditRoute('50rem');\n const { marker } = e;\n const radius = 150;\n const { lat, lng } = marker.getLatLng();\n if (lat && lng) {\n geocodeByLatLng({ lat, lng })\n .then((results) => {\n const routePlace = results.filter((r) => r.types.includes('route'))[0];\n const location = {\n locationId: uuidv4(),\n locationName: routePlace\n ? routePlace.formatted_address\n : results[0]?.formatted_address,\n longitude: lng,\n latitude: lat,\n radius,\n radiusFormat: parsers.convertMetersToAuthUserDistance2System(150)\n };\n addCreatedLocationToCheckpoint(marker, location);\n })\n .catch(() => {\n const location = {\n locationId: uuidv4(),\n locationName: intl.formatMessage({ id: 'routes.newCheckPoint' }),\n longitude: lng,\n latitude: lat,\n radius,\n radiusFormat: parsers.convertMetersToAuthUserDistance2System(150)\n };\n addCreatedLocationToCheckpoint(marker, location);\n });\n }\n }\n });\n }, []);\n\n const deleteObjectsOnMap = () => {\n checkpointsRef.current\n .filter((checkpoint) => checkpoint.marker)\n .map((checkpoint) => {\n if (checkpoint.marker) map.removeLayer(checkpoint.marker);\n if (checkpoint.rectangle) map.removeLayer(checkpoint.rectangle);\n });\n if (paths?.length > 0)\n paths.map((path) => {\n if (path.polyline) map.removeLayer(path.polyline);\n });\n };\n\n const addNewMarkerOnMap = (index) => {\n setDrawingRouteCheckpoint(checkpoints[index]);\n setWidthSlidingPaneEditRoute('0rem');\n refreshTooltips(index === 0 ? 1 : index === checkpoints.length - 1 ? 3 : 2);\n map.pm.enableDraw('Marker', {\n continueDrawing: false, //Disable After Create\n markerEditable: true,\n markerStyle: {\n icon: getIcon(\n index === 0 ? 1 : index === checkpoints.length - 1 ? 3 : 2,\n index,\n checkpoints[index].iconId\n )\n }\n });\n };\n\n const updateMarkersOnMap = () => {\n checkpointsRef.current = checkpoints.map((checkpoint, i) => {\n if (checkpoint.latitude != null && checkpoint.longitude != null) {\n const marker = getMarker(\n i === 0 ? 1 : i === checkpoints.length - 1 ? 3 : 2,\n i,\n checkpoint.iconId === 0 ? undefined : checkpoint.iconId,\n L.latLng(checkpoint.latitude, checkpoint.longitude)\n );\n marker.addTo(map);\n marker.on('pm:dragend', (e) => {\n const { lat, lng } = e.target.getLatLng();\n useCenterRoute.current = false;\n setCheckpoints(\n checkpointsRef.current.map((chkpt) =>\n chkpt.checkpointId === checkpoint.checkpointId\n ? {\n ...chkpt,\n longitude: lng,\n latitude: lat\n }\n : chkpt\n )\n );\n });\n marker.on('click', (e) => {\n setTimeout(() => {\n if (!isGeneratingRouteRef.current)\n editCheckpoint(\n checkpoint.checkpointId,\n i === 0 ? 1 : i === checkpoints.length - 1 ? 3 : 2,\n i\n );\n }, 100);\n });\n marker.pm.enable({});\n\n const rectangle = L.rectangle(\n getRectBoundsFromLatLng(checkpoint.latitude, checkpoint.longitude, checkpoint.radius),\n { color: primary }\n );\n rectangle.addTo(map);\n\n return {\n ...checkpoint,\n //Se actualizan los markers\n marker,\n rectangle\n };\n } else return checkpoint;\n });\n\n //Se centra en el mapa\n centerRoute();\n\n if (checkpointsRef.current.filter((checkpoint) => checkpoint.marker).length > 1)\n setCheckpoints(checkpointsRef.current);\n };\n\n const updatePathsOnMap = () => {\n const checkpointsWithLatLng = checkpointsRef.current.filter((checkpoint) => checkpoint.marker);\n\n if (checkpointsWithLatLng.length > 1) {\n //Se crea el control de las rutas\n const control = L.Routing.control({\n waypoints: checkpointsWithLatLng.map((checkpoint) =>\n L.latLng(checkpoint.latitude, checkpoint.longitude)\n ),\n router:\n counterGenerateRouteRef.current >= 4\n ? L.Routing.google()\n : new L.Routing.OSRMv1({ serviceUrl: 'https://osrm.webtrack.online/route/v1' })\n });\n\n control.on('routingstart', () => {\n isGeneratingRouteRef.current = true;\n });\n\n control.on('routingerror', (error) => {\n if (error.error.status !== -3) {\n counterGenerateRouteRef.current = counterGenerateRouteRef.current + 1;\n updatePathsOnMap();\n }\n });\n\n control.on('routesfound', (waypoints) => {\n isGeneratingRouteRef.current = false;\n if (waypoints?.routes[0].coordinates) {\n const coordinates = waypoints?.routes[0].coordinates;\n const waypointIndices = waypoints?.routes[0].waypointIndices;\n const paths = waypointIndices\n .map((index, i) =>\n i !== waypointIndices.length - 1\n ? simplify(\n [\n [\n checkpointsRef.current.filter(\n (chk) => chk.latitude != null && chk.longitude != null\n )[i].latitude,\n checkpointsRef.current.filter(\n (chk) => chk.latitude != null && chk.longitude != null\n )[i].longitude\n ],\n ...coordinates\n .slice(index, waypointIndices[i + 1] + 1)\n .map((latLng) => [latLng.lat, latLng.lng]),\n [\n checkpointsRef.current.filter(\n (chk) => chk.latitude != null && chk.longitude != null\n )[i + 1].latitude,\n checkpointsRef.current.filter(\n (chk) => chk.latitude != null && chk.longitude != null\n )[i + 1].longitude\n ]\n ],\n 0.0005 //55.5m\n ).map((point) => L.latLng(point[0], point[1]))\n : undefined\n )\n .filter((path) => path);\n\n //Se actualizan los paths\n var distance = 0;\n setPaths(\n paths.map((path, i) => {\n const polyline = L.polyline(path, { color: 'blue' });\n polyline.addTo(map);\n polyline.on('click', (e) => {\n L.DomEvent.stopPropagation(e);\n editPath(i);\n });\n const segmentDistance = polyline\n .getLatLngs()\n .map((point, j) =>\n j === 0 ? 0 : map.distance(polyline.getLatLngs()[j - 1], point)\n )\n .reduce((acc, distance) => acc + distance, 0);\n distance = distance + segmentDistance;\n return {\n polyline,\n segmentDistance\n };\n })\n );\n setDistanceRoute({ ...distanceRoute, distance });\n }\n counterGenerateRouteRef.current = 0;\n });\n\n //Se genera la ruta\n control.route();\n } else {\n setPaths([]);\n setDistanceRoute({ ...distanceRoute, distance: 0 });\n }\n };\n\n const updateDistances = () => {\n if (pathsRef.current?.length > 0) {\n var distance = 0;\n setPaths(\n pathsRef.current.map((path) => {\n const segmentDistance = path.polyline\n .getLatLngs()\n .map((point, j) =>\n j === 0 ? 0 : map.distance(path.polyline.getLatLngs()[j - 1], point)\n )\n .reduce((acc, distance) => acc + distance, 0);\n distance = distance + segmentDistance;\n return {\n ...path,\n segmentDistance\n };\n })\n );\n setDistanceRoute({ ...distanceRoute, distance });\n }\n };\n\n const centerRoute = () => {\n if (useCenterRoute.current && checkpointsRef.current.filter((chk) => chk.marker).length > 0) {\n var latlngPolylines = [];\n if (pathsRef.current?.length > 0)\n pathsRef.current.map((path) =>\n path.polyline.getLatLngs().map((latLng) => latlngPolylines.push([latLng.lat, latLng.lng]))\n );\n\n const bounds = [\n ...checkpointsRef.current\n .filter((chk) => chk.marker)\n .map((chk) => [chk.latitude, chk.longitude]),\n ...latlngPolylines\n ];\n\n map.flyToBounds(bounds, {\n paddingBottomRight: [700, 0],\n paddingTopLeft: [0, 70],\n animate: map.getBoundsZoom(bounds, undefined, [700, 70]) !== map.getZoom()\n });\n }\n };\n\n const editRoute = () => {\n setOpenSlidingPaneEditRoute(false);\n setOpenSlidingPaneForm(false);\n setSlidingPaneEditRouteProps({\n title:\n editingRouteRef.current?.routeId && editingRouteRef.current?.routeName\n ? editingRouteRef.current?.routeName\n : intl.formatMessage({ id: 'routes.new' }),\n inputs: [\n {\n type: 'text',\n name: 'routeName',\n required: true,\n initialValue: editingRouteRef.current?.routeName || undefined,\n label: intl.formatMessage({ id: 'routes.name' })\n },\n {\n type: 'customersDropdown',\n name: 'customerId',\n initialValue: editingRouteRef.current?.customerId || undefined,\n isClearable: true,\n customersFilters: {}\n },\n {\n type: 'duration',\n name: 'completionTime',\n initialValue: editingRouteRef.current?.completionTimeByUser || undefined,\n label: intl.formatMessage({ id: 'routes.completionTime' })\n },\n {\n type: 'select',\n name: 'startTimeWindow',\n required: true,\n initialValue: editingRouteRef.current?.startTimeWindow || '0',\n options: startTimeWindow.map((option) => ({\n ...option,\n label: option.label + intl.formatMessage({ id: 'routes.minutes' })\n })),\n label: intl.formatMessage({ id: 'routes.startTimeWindow' })\n },\n {\n type: 'number',\n name: 'speedLimitFormat',\n initialValue: editingRouteRef.current?.speedLimitFormat || undefined,\n min: 0,\n max: parsers.convertKilometersPerHourToAuthUserSpeedSystem(120),\n metric: 'speed',\n label: intl.formatMessage({ id: 'routes.speedLimit' })\n },\n {\n type: 'text',\n name: 'abbreviation',\n required: true,\n initialValue: editingRouteRef.current?.abbreviation || undefined,\n label: intl.formatMessage({ id: 'routes.abbreviation' })\n },\n {\n type: 'text',\n name: 'privateCode',\n initialValue: editingRouteRef.current?.privateCode || undefined,\n label: intl.formatMessage({ id: 'routes.privateCode' })\n },\n {\n type: 'membership',\n name: 'membership',\n options: {\n colSize: '12',\n useOperator: false,\n useUserOrganization: true,\n useUserDivision: true,\n useUserSubdivision: true,\n setUserOrganization: true,\n setUserDivision: true,\n setUserSubdivision: true,\n showAllDivision: true,\n showAllSubdivision: true\n },\n initialValue: {\n organizationId: editingRouteRef.current?.organizationId || undefined,\n divisionId: editingRouteRef.current?.divisionId || undefined,\n subdivisionId: editingRouteRef.current?.subdivisionId || undefined\n }\n },\n {\n type: 'contactsDropdown',\n defaultContacts: editingRouteRef.current?.globalNotificationEmails || undefined,\n name: 'globalNotificationEmails',\n label: intl.formatMessage({ id: 'routes.globalNotificationEmails' })\n },\n {\n type: 'select',\n name: 'globalNotificationFrec',\n initialValue: editingRouteRef.current?.globalNotificationFrec || undefined,\n options: [\n {\n value: '0',\n label: intl.formatMessage({ id: 'routes.inactive' }),\n label_intl: intl.formatMessage({ id: 'routes.inactive' })\n },\n ...globalNotificationFrecs.map((option) => ({\n ...option,\n label: intl.formatMessage({ id: option.label }),\n label_intl: intl.formatMessage({ id: option.label })\n }))\n ],\n label: intl.formatMessage({ id: 'routes.globalNotificationFrec' }),\n isClearable: true\n },\n {\n type: 'contactsDropdown',\n defaultContacts: editingRouteRef.current?.notificationEmails || undefined,\n name: 'notificationEmails',\n initialFetch: false,\n label: intl.formatMessage({ id: 'routes.notificationEmails' })\n },\n {\n type: 'multiSelect',\n name: 'notificationEvents',\n initialValue: editingRouteRef.current?.notificationEvents || undefined,\n options: routesEvents.map((option) => ({\n ...option,\n label: intl.formatMessage({ id: option.label }),\n label_intl: intl.formatMessage({ id: option.label })\n })),\n label: intl.formatMessage({ id: 'routes.notificationEvents' })\n }\n ],\n action: (values) => {\n const action = editingRouteRef.current.routeId ? 'startEditingRoute' : 'startAddingRoute';\n var distances = [];\n var index = -1;\n var lastPointLatLngs = null;\n var distance = 0;\n dispatch(\n routeActions[action]({\n route: {\n routeId: editingRouteRef.current.routeId || editingRouteRef.current.newRouteId,\n ...values,\n ...values.membership,\n speedLimit: parsers.convertAuthUserSpeedSystemToKilometersPerHour(\n values.speedLimitFormat\n ),\n globalNotificationFrec: values?.globalNotificationFrec || '0',\n completionTimeByUser: values?.completionTime?.totalSeconds || 0,\n path: pathsRef.current\n .map((path, i) => {\n var segmentDistance = 0;\n return path.polyline\n .getLatLngs()\n .map((point, j) => {\n const pointDistance = lastPointLatLngs\n ? map.distance(lastPointLatLngs, point)\n : 0;\n lastPointLatLngs = point;\n segmentDistance = j === 0 ? 0 : segmentDistance + pointDistance;\n distance = distance + pointDistance;\n index = index + 1;\n if (path.polyline.getLatLngs().length - 1 === j)\n distances.push(segmentDistance);\n return (\n index.toString() +\n ',' +\n (i + 1).toString() +\n ',' +\n point.lat.toString() +\n ',' +\n point.lng.toString() +\n ',' +\n distance\n );\n })\n .join(';');\n })\n .join(';'),\n distance: distances.reduce((acc, distance) => acc + distance, 0),\n alternateRoutes: alternateRoutesRef.current.map((ar) => ar.routeId).join(',')\n },\n checkpoints: checkpointsRef.current.map((checkpoint, i) => ({\n checkpointId: i,\n routeId: editingRouteRef.current.routeId || editingRouteRef.current.newRouteId,\n locationId: Number.isInteger(checkpoint.locationId) ? checkpoint.locationId : null,\n checkpointName: checkpoint.checkpointName,\n latitude: checkpoint.latitude,\n longitude: checkpoint.longitude,\n radius: checkpoint.radius,\n correlative: i,\n distance:\n i === 0 ? 0 : distances.slice(0, i).reduce((acc, distance) => acc + distance, 0),\n iconId: checkpoint.iconId,\n stopType: checkpoint.stopType,\n stopMinTime: checkpoint.stopMinTime ?? null,\n stopMaxTime: checkpoint.stopMaxTime ?? null,\n segmentDistance: i === 0 ? 0 : getNullIfNaN(distances[i - 1]),\n segmentSpeedLimit:\n i === 0 ? null : getNullIfNaN(pathsRef.current[i - 1]?.segmentSpeedLimit),\n segmentStopAuthorized:\n i === 0 ? null : pathsRef.current[i - 1]?.segmentStopAuthorized,\n secondsSegmentStopTime:\n i === 0 ? null : getNullIfNaN(pathsRef.current[i - 1]?.secondsSegmentStopTime),\n secondsSegmentTripMinTime:\n i === 0 ? null : getNullIfNaN(pathsRef.current[i - 1]?.secondsSegmentTripMinTime),\n secondsSegmentTripMaxTime:\n i === 0 ? null : getNullIfNaN(pathsRef.current[i - 1]?.secondsSegmentTripMaxTime),\n notificationEmails: checkpoint.notificationEmails\n }))\n })\n );\n }\n });\n setOpenSlidingPaneEditRoute(true);\n };\n\n const addCheckpoint = (index) => {\n setCheckpoints([\n ...checkpoints.slice(0, index + 1),\n { checkpointId: uuidv4() },\n ...checkpoints.slice(index + 1)\n ]);\n };\n\n const editCheckpoint = (checkpointId, type, index) => {\n const checkpoint = checkpointsRef.current.filter(\n (checkpoint) => checkpoint.checkpointId === checkpointId\n )[0];\n if (!(checkpoint.latitude != null && checkpoint.longitude != null && checkpoint.marker))\n return null;\n map.flyToBounds([[checkpoint.latitude, checkpoint.longitude]], {\n paddingBottomRight: [700, 0],\n paddingTopLeft: [0, 70],\n maxZoom: 15,\n animate: 15 !== map.getZoom()\n });\n const inputCheckpoint =\n type === 2\n ? [\n {\n type: 'select',\n name: 'iconId',\n initialValue: checkpoint.iconId ?? 1,\n options: routesCheckpointsIcons.map((op) => ({\n ...op,\n label: intl.formatMessage({ id: op.label })\n })),\n label: intl.formatMessage({ id: 'routes.checkpointIcon' }),\n additionalonchangefunction: (value) => {\n if (!value && checkpoint.iconId)\n checkpoint.marker.setIcon(getIcon(type, index, checkpoint.iconId));\n else checkpoint.marker.setIcon(getIcon(type, index, value));\n }\n },\n {\n type: 'contactsDropdown',\n name: 'notificationEmails',\n initialValue: checkpoint.notificationEmails || undefined,\n label: intl.formatMessage({ id: 'routes.notify' })\n },\n {\n type: 'switch',\n name: 'stopType',\n initialValue: checkpoint.stopType || false,\n label: intl.formatMessage({ id: 'routes.stopType' }),\n additionalonchangefunction: (value) => {\n if (slidingPaneFormPropsRef?.current?.inputs)\n setSlidingPaneFormProps({\n ...slidingPaneFormPropsRef.current,\n inputs: value\n ? [\n ...slidingPaneFormPropsRef.current.inputs,\n {\n type: 'duration',\n name: 'stopMinTime',\n initialValue: checkpoint.stopMinTime || undefined,\n label: intl.formatMessage({ id: 'routes.stopMinTime' })\n },\n {\n type: 'duration',\n name: 'stopMaxTime',\n initialValue: checkpoint.stopMaxTime || undefined,\n label: intl.formatMessage({ id: 'routes.stopMaxTime' })\n }\n ]\n : slidingPaneFormPropsRef.current.inputs.slice(0, 5)\n });\n }\n }\n ]\n : [];\n\n setOpenSlidingPaneForm(false);\n setSlidingPaneFormProps({\n title:\n type === 1\n ? intl.formatMessage({ id: 'routes.editOrigin' })\n : type === 2\n ? intl.formatMessage({ id: 'routes.editCheckPoint' })\n : intl.formatMessage({ id: 'routes.editDestination' }),\n inputs: [\n {\n type: 'text',\n name: 'checkpointName',\n required: true,\n initialValue: checkpoint.checkpointName || undefined,\n label:\n type === 1\n ? intl.formatMessage({ id: 'routes.originName' })\n : type === 2\n ? intl.formatMessage({ id: 'routes.checkpointName' })\n : intl.formatMessage({ id: 'routes.destinationName' })\n },\n {\n type: 'number',\n name: 'radiusFormat',\n initialValue: checkpoint.radiusFormat || undefined,\n min: parsers.convertMetersToAuthUserDistance2System(10),\n max: parsers.convertMetersToAuthUserDistance2System(5000),\n metric: 'distance2',\n label: intl.formatMessage({ id: 'routes.radius' }),\n additionalonchangefunction: (value) =>\n checkpoint.rectangle.setBounds(\n getRectBoundsFromLatLng(\n checkpoint.latitude,\n checkpoint.longitude,\n parsers.convertAuthUserDistance2SystemToMeters(value)\n )\n )\n },\n ...inputCheckpoint\n ],\n action: (values) => {\n const radius = parsers.convertAuthUserDistance2SystemToMeters(values.radiusFormat);\n checkpoint.marker.setIcon(getIcon(type, index, values.iconId));\n checkpoint.rectangle.setBounds(\n getRectBoundsFromLatLng(checkpoint.latitude, checkpoint.longitude, radius)\n );\n checkpointsRef.current = checkpointsRef.current.map((chk) =>\n chk.checkpointId === checkpoint.checkpointId\n ? {\n ...chk,\n ...values,\n radius,\n stopMinTime: values.stopType ? values.stopMinTime?.totalSeconds : undefined,\n stopMaxTime: values.stopType ? values.stopMaxTime?.totalSeconds : undefined\n }\n : chk\n );\n setCheckpoints(checkpointsRef.current);\n },\n closeSlidingPaneForm: () => {\n centerRoute();\n checkpoint.marker.setIcon(getIcon(type, index, checkpoint.iconId));\n checkpoint.rectangle.setBounds(\n getRectBoundsFromLatLng(checkpoint.latitude, checkpoint.longitude, checkpoint.radius)\n );\n setOpenSlidingPaneForm(false);\n }\n });\n setOpenSlidingPaneForm(true);\n };\n\n const deleteCheckpoint = (checkpointId) => {\n if (!formValues.checkpointId) {\n deleteObjectsOnMap();\n setCheckpoints(\n checkpoints.filter((checkpoint) => {\n if (checkpoint.checkpointId === checkpointId && checkpoint.marker)\n setCreatedLocations(\n createdLocations.filter((loc) => loc.locationId !== checkpoint.locationId)\n );\n return checkpoint.checkpointId !== checkpointId;\n })\n );\n }\n };\n const editPath = (index) => {\n if (pathsRef.current) {\n const path = pathsRef.current[index];\n if (path) {\n //Si se estaba editando un tramo se resetea su informacion en el mapa\n if (copyPolylineLatLngsRef.current?.index != undefined) {\n pathsRef.current[copyPolylineLatLngsRef.current.index].polyline.setLatLngs(\n copyPolylineLatLngsRef.current.latLngs\n );\n pathsRef.current[copyPolylineLatLngsRef.current.index].polyline.pm.disable();\n pathsRef.current[copyPolylineLatLngsRef.current.index].polyline.setStyle({\n color: 'blue'\n });\n }\n setCopyPolylineLatLngs({\n latLngs: pathsRef.current[index].polyline.getLatLngs(),\n index: index\n });\n const type = index === pathsRef.current.length - 1 ? 2 : 1;\n path.polyline.pm.enable({ draggable: true });\n path.polyline.setStyle({ color: 'red' });\n map.flyToBounds(path.polyline.getBounds(), {\n paddingBottomRight: [700, 0],\n paddingTopLeft: [0, 70],\n animate:\n map.getBoundsZoom(path.polyline.getBounds(), undefined, [700, 70]) !== map.getZoom()\n });\n setOpenSlidingPaneForm(false);\n setEditPathInputs(\n {\n ...path,\n segmentSpeedLimitFormat: parsers\n .convertKilometersPerHourToAuthUserSpeedSystem(path.segmentSpeedLimit)\n .toFixed(0),\n segmentDistanceFormat: parsers\n .convertMetersToAuthUserDistanceSystem(path.segmentDistance)\n .toFixed(2)\n },\n index,\n type\n );\n setOpenSlidingPaneForm(true);\n }\n }\n };\n\n const setEditPathInputs = (path, index, type) => {\n setSlidingPaneFormProps({\n title: `${intl.formatMessage({ id: 'routes.editSegment' })} (${\n checkpointsRef.current[index]?.checkpointName\n } - ${checkpointsRef.current[index + 1]?.checkpointName})`,\n inputs: [\n {\n type: 'component',\n component: (\n \n
\n \n \n
\n
\n )\n },\n {\n type: 'number',\n name: 'segmentSpeedLimitFormat',\n initialValue: path?.segmentSpeedLimitFormat || undefined,\n additionalonchangefunction: (value) => {\n setEditPathInputs({ ...path, segmentSpeedLimitFormat: value }, index, type);\n },\n min: 0,\n max: parsers.convertKilometersPerHourToAuthUserSpeedSystem(120),\n metric: 'speed',\n label: intl.formatMessage({ id: 'routes.speedLimit' })\n },\n {\n type: 'duration',\n name: 'segmentTripMinTime',\n additionalonchangefunction: (value) => {\n setEditPathInputs({ ...path, segmentTripMinTime: value }, index, type);\n },\n initialValue: path?.segmentTripMinTime || undefined,\n label: intl.formatMessage({ id: 'routes.segmentTripMinTime' })\n },\n {\n type: 'duration',\n name: 'segmentTripMaxTime',\n additionalonchangefunction: (value) => {\n setEditPathInputs({ ...path, segmentTripMaxTime: value }, index, type);\n },\n initialValue: path?.segmentTripMaxTime || undefined,\n label: intl.formatMessage({ id: 'routes.segmentTripMaxTime' })\n },\n {\n type: 'switch',\n name: 'segmentStopAuthorized',\n initialValue:\n path?.segmentStopAuthorized != undefined ? path?.segmentStopAuthorized : true,\n label: intl.formatMessage({ id: 'routes.segmentStopAuthorized' }),\n additionalonchangefunction: (value) => {\n setEditPathInputs(\n {\n ...path,\n segmentStopAuthorized: value,\n segmentWithoutStopTime: undefined,\n segmentStopTime: undefined\n },\n index,\n type\n );\n }\n },\n path?.segmentStopAuthorized\n ? {\n type: 'switch',\n name: 'segmentWithoutStopTime',\n initialValue:\n path?.segmentWithoutStopTime != undefined ? path?.segmentWithoutStopTime : true,\n label: intl.formatMessage({ id: 'routes.segmentWithoutStopTime' }),\n additionalonchangefunction: (value) => {\n setEditPathInputs(\n { ...path, segmentWithoutStopTime: value, segmentStopTime: undefined },\n index,\n type\n );\n }\n }\n : undefined,\n path?.segmentStopAuthorized && [false, 0].includes(path?.segmentWithoutStopTime)\n ? {\n type: 'number',\n name: 'segmentStopTime',\n additionalonchangefunction: (value) => {\n setEditPathInputs({ ...path, segmentStopTime: value }, index, type);\n },\n initialValue: path?.segmentStopTime || undefined,\n appendcomponent: intl.formatMessage({ id: 'common.minutes' }),\n allowDecimals: true,\n label: intl.formatMessage({ id: 'routes.segmentStopTime' })\n }\n : undefined\n ],\n action: (values) => {\n updateDistances();\n setPaths(\n pathsRef.current.map((path, i) =>\n i === index\n ? {\n ...path,\n ...values,\n secondsSegmentStopTime:\n values?.segmentStopAuthorized &&\n [false, 0].includes(values?.segmentWithoutStopTime)\n ? values?.segmentStopTime * 60\n : undefined,\n segmentWithoutStopTime:\n values?.segmentStopTime > 0 ? values?.segmentWithoutStopTime : true,\n secondsSegmentTripMinTime: values?.segmentTripMinTime?.totalSeconds || undefined,\n secondsSegmentTripMaxTime: values?.segmentTripMaxTime?.totalSeconds || undefined,\n segmentSpeedLimit: parsers\n .convertAuthUserSpeedSystemToKilometersPerHour(values.segmentSpeedLimitFormat)\n .toFixed(0)\n }\n : path\n )\n );\n },\n onClose: () => {\n pathsRef.current[index].polyline.setLatLngs(copyPolylineLatLngsRef.current.latLngs);\n },\n closeSlidingPaneForm: () => {\n pathsRef.current[index].polyline.pm.disable();\n pathsRef.current[index].polyline.setStyle({ color: 'blue' });\n updateDistances();\n centerRoute();\n setOpenSlidingPaneForm(false);\n setCopyPolylineLatLngs({});\n }\n });\n };\n\n const addLocationToCheckpoint = (checkpointId, locationId) => {\n const location = locations.filter((location) => location.locationId === locationId)[0];\n if (location)\n setCheckpoints(\n checkpoints.map((checkpoint) =>\n checkpoint.checkpointId === checkpointId && checkpoint.locationId !== locationId\n ? {\n ...checkpoint,\n googleLocation: false,\n locationId: location.locationId,\n checkpointName: location.locationName,\n longitude: location.longitude,\n latitude: location.latitude,\n radius: location.radius,\n radiusFormat: parsers.convertMetersToAuthUserDistance2System(location.radius)\n }\n : checkpoint\n )\n );\n };\n\n const addCreatedLocationToCheckpoint = (marker, location) => {\n setCreatedLocations([...createdLocationsRef.current, location]);\n setCheckpoints(\n checkpointsRef.current.map((checkpoint) =>\n checkpoint.checkpointId === drawingRouteCheckpointRef.current.checkpointId\n ? {\n ...checkpoint,\n googleLocation: false,\n locationId: location.locationId,\n checkpointName: location.locationName,\n longitude: location.longitude,\n latitude: location.latitude,\n radius: location.radius,\n radiusFormat: parsers.convertMetersToAuthUserDistance2System(location.radius)\n }\n : checkpoint\n )\n );\n map.removeLayer(marker);\n setDrawingRouteCheckpoint(null);\n };\n\n const addGoogleLocationToCheckpoint = (checkpointId, location) => {\n if (location) {\n setCheckpoints(\n checkpoints.map((checkpoint) => {\n if (checkpoint.checkpointId === checkpointId) {\n const newLocation = {\n ...checkpoint,\n googleLocation: location.googleLocation,\n locationId: location.locationId,\n checkpointName: location.locationName,\n longitude: location.longitude,\n latitude: location.latitude,\n radius: location.radius,\n radiusFormat: parsers.convertMetersToAuthUserDistance2System(location.radius)\n };\n setCreatedLocations([\n ...createdLocations,\n { ...newLocation, locationName: location.locationName }\n ]);\n return newLocation;\n } else return checkpoint;\n })\n );\n }\n };\n\n const deleteLocationOfCheckpoint = (checkpointId) => {\n if (!formValues.checkpointId)\n setCheckpoints(\n checkpoints.map((checkpoint) => {\n if (checkpoint.checkpointId === checkpointId) {\n setCreatedLocations(\n createdLocations.filter((loc) => loc.locationId !== checkpoint.locationId)\n );\n if (checkpoint.marker) map.removeLayer(checkpoint.marker);\n return {\n ...checkpoint,\n googleLocation: undefined,\n locationId: undefined,\n checkpointName: undefined,\n marker: undefined,\n longitude: undefined,\n latitude: undefined,\n radius: undefined\n };\n } else return checkpoint;\n })\n );\n };\n\n return {\n formValues,\n control,\n handleSubmit,\n isGeneratingRouteRef,\n isOpenSlidingPaneEditRoute,\n distanceRoute,\n paths,\n checkpoints,\n setCheckpoints,\n createdLocations,\n addCheckpoint,\n editCheckpoint,\n editPath,\n deleteCheckpoint,\n addNewMarkerOnMap,\n addGoogleLocationToCheckpoint,\n addLocationToCheckpoint,\n deleteLocationOfCheckpoint,\n editingRouteRef,\n deleteObjectsOnMap,\n setOpenSlidingPaneEditRoute,\n setEditingRoute,\n setCreatedLocations,\n setPaths,\n setSlidingPaneEditRouteProps,\n setDistanceRoute,\n slidingPaneEditRoutesProps,\n isOpenSlidingPaneForm,\n setOpenSlidingPaneForm,\n slidingPaneFormProps,\n widthSlidingPaneEditRoute,\n errors: formState.errors,\n isGeneratingRoute: isGeneratingRouteRef.current,\n alternateRoutes,\n setAlternateRoutes\n };\n};\n","import '@geoman-io/leaflet-geoman-free';\nimport 'leaflet-toolbar';\nimport 'leaflet.icon.glyph';\nimport { useIntl } from 'react-intl';\nimport { useDispatch } from 'react-redux';\nimport SlidingPaneForm from 'views/formComponents/SlidingPaneForm';\nimport FetchEntities from 'views/screens/Entities/views/FetchEntities';\nimport * as routeActions from '../../../../screens/Routes/actions/routes';\nimport SlidingPaneEditRoute from '../SlidingPaneEditRoute';\nimport { useMapRouteEdit } from './useMapRouteEdit';\n\nexport interface MapRouteEditOptions {\n showRoute: boolean;\n route: any;\n routeCheckpoints: any;\n routePaths: any;\n setEditingRouteParent?: any;\n}\n\nconst MapRouteEdit = (props: MapRouteEditOptions) => {\n const { setEditingRouteParent } = props;\n const {\n formValues,\n control,\n handleSubmit,\n isGeneratingRouteRef,\n isOpenSlidingPaneEditRoute,\n distanceRoute,\n paths,\n checkpoints,\n setCheckpoints,\n createdLocations,\n addCheckpoint,\n editCheckpoint,\n editPath,\n deleteCheckpoint,\n addNewMarkerOnMap,\n addGoogleLocationToCheckpoint,\n addLocationToCheckpoint,\n deleteLocationOfCheckpoint,\n editingRouteRef,\n deleteObjectsOnMap,\n setOpenSlidingPaneEditRoute,\n setEditingRoute,\n setCreatedLocations,\n setPaths,\n setSlidingPaneEditRouteProps,\n setDistanceRoute,\n slidingPaneEditRoutesProps,\n isOpenSlidingPaneForm,\n setOpenSlidingPaneForm,\n slidingPaneFormProps,\n widthSlidingPaneEditRoute,\n errors,\n isGeneratingRoute,\n alternateRoutes,\n setAlternateRoutes\n } = useMapRouteEdit(props);\n const intl = useIntl();\n const dispatch = useDispatch();\n\n return (\n <>\n \n {\n if (!isSaving && editingRouteRef.current?.routeId)\n dispatch(routeActions.showRouteInMap(editingRouteRef.current.routeId));\n deleteObjectsOnMap();\n setOpenSlidingPaneEditRoute(false);\n setEditingRoute(undefined);\n setCreatedLocations([]);\n setCheckpoints([]);\n setPaths([]);\n setSlidingPaneEditRouteProps({ inputs: [] });\n setDistanceRoute({ ...distanceRoute, distance: 0 });\n setTimeout(() => setEditingRouteParent(undefined), 1000);\n }}\n {...slidingPaneEditRoutesProps}\n />\n {\n setOpenSlidingPaneForm(false);\n }}\n isInMap={true}\n {...slidingPaneFormProps}\n />\n \n );\n};\n\nMapRouteEdit.defaultProps = {\n route: {},\n showRoute: false,\n isMapFullScreen: false,\n usePopovers: true\n};\n\nexport default MapRouteEdit;\n","/* -------------------------------------------------------------------------- */\n/* Componente SlidingPaneForm */\n/* -------------------------------------------------------------------------- */\n// Este componente contiene un SlidingPaneForm genĆ©rico que se utiliza en muchas pantallas de la aplicaciĆ³n.\n// @ts-nocheck\nimport L from 'leaflet';\nimport { useEffect } from 'react';\nimport { useIntl } from 'react-intl';\nimport { useDispatch, useSelector } from 'react-redux';\nimport SlidingPane from 'react-sliding-pane';\nimport { FormGroup, Label, Spinner } from 'reactstrap';\nimport EditButton from 'views/components/EditButton';\nimport TitleH4 from 'views/components/TitleH4';\nimport Toolbar from 'views/components/Toolbar';\nimport * as authSelectors from '../../../../../redux/reducers/auth';\nimport * as routeActions from '../../actions/routes';\nimport routePermissions from '../../permissions';\n\ninterface Props {\n title: any;\n subtitle: any;\n route: any;\n isLoading: boolean;\n isOpenSlidingPane: any;\n closeSlidingPane: any;\n createRoute: any;\n}\n\nconst SlidingPaneEditRoute = (props: Props) => {\n //const [touched, setTouched] = useState(false);\n const { title, subtitle, route, isLoading, isOpenSlidingPane, closeSlidingPane, createRoute } =\n props;\n\n const intl = useIntl();\n\n const { authSystems } = useSelector((state) => ({\n authSystems: authSelectors.getAuthSystems(state)\n }));\n\n return (\n closeSlidingPane()}\n >\n \n {isLoading ? (\n
\n \n
\n ) : (\n <>\n createRoute(route)}\n permissions={[routePermissions.editRoute]}\n />\n ]}\n />\n \n
\n \n \n
\n \n \n
\n \n \n
\n \n \n
\n \n \n
\n \n \n
\n \n \n
\n \n \n
\n
\n \n )}\n \n );\n};\n\nSlidingPaneEditRoute.defaultProps = {};\n\nexport default SlidingPaneEditRoute;\n","// @ts-nocheck\nimport 'leaflet.icon.glyph';\nimport { Fragment, useEffect, useState } from 'react';\nimport { Marker, Polyline, Popup, Rectangle, useMapEvents } from 'react-leaflet';\nimport { useDispatch, useSelector } from 'react-redux';\nimport useDeepCompareEffect from 'use-deep-compare-effect';\nimport { v4 as uuidv4 } from 'uuid';\nimport { getIcon, getRouteBounds } from 'views/screens/Routes/utils';\nimport * as routeCheckpointsActions from '../../../../screens/Routes/actions/routeCheckpoints';\nimport * as routeActions from '../../../../screens/Routes/actions/routes';\nimport * as routeSelectors from '../../../../screens/Routes/reducers/routes';\nimport SlidingPaneRouteInformation from '../../../../screens/Routes/views/SlidingPaneRouteInformation';\nimport { getRectBoundsFromLatLng } from '../../utils';\n\nexport interface MapRoutesOptions {\n isSelectedSomething?: any;\n setIsSelectedSomething?: Function;\n setMapPositionToRouteBounds?: boolean;\n useSlidingPaneRouteInformation?: boolean;\n usePopovers?: boolean;\n routes?: any[];\n showRoutes?: boolean;\n isMapFullScreen?: boolean;\n useIsShownRoute?: boolean; //param only when you have a property in each route isShownInMap to show routes on map\n initialShowSlidingPanelRouteInformationOpen?: boolean;\n initialShowSlidingPanelRouteCreateOpen?: boolean;\n initialShowSlidingPanelRouteEditOpen?: boolean;\n initialRouteInformationOpenId?: any;\n editingRouteParent?: any;\n pathColor?: any;\n setEditingRouteParent?: Function;\n}\n\nconst MapRoutes = (props: MapRoutesOptions) => {\n const map = useMapEvents({\n moveend: () => {\n displayMarkers();\n }\n });\n const {\n isSelectedSomething,\n setIsSelectedSomething,\n showRoutes = false,\n useIsShownRoute = false,\n routes = [],\n setMapPositionToRouteBounds = false,\n useSlidingPaneRouteInformation = true,\n usePopovers,\n pathColor = null,\n initialShowSlidingPanelRouteInformationOpen = false,\n initialShowSlidingPanelRouteCreateOpen = false,\n initialShowSlidingPanelRouteEditOpen = false,\n initialRouteInformationOpenId,\n editingRouteParent,\n setEditingRouteParent,\n isMapFullScreen = true\n } = props;\n const store = useSelector((state) => state);\n const dispatch = useDispatch();\n const [showRouteInformationSlidingPane, setShowRouteInformationSlidingPane] = useState(false);\n const [openEditSlidingPane, setOpenEditSlidingPane] = useState(false);\n const [initialRouteId, setInitialRouteId] = useState();\n const [routesBounds, setRoutesBounds] = useState([]);\n const [selectedRoute, setSelectedRoute] = useState({});\n const style = getComputedStyle(document.body);\n const primary = process.env.REACT_APP_PRIMARY_COLOR;\n\n const { isEditing, isAdding, isFetchingCheckpoints } = useSelector((state) => ({\n isEditing: routeSelectors.isEditingRoute(state),\n isAdding: routeSelectors.isAddingRoute(state),\n isFetchingCheckpoints: routeSelectors.isFetchingListRouteCheckpoints(state)\n }));\n\n useEffect(() => {\n if (setIsSelectedSomething) {\n setIsSelectedSomething({\n ...isSelectedSomething,\n routes: selectedRoute?.routeId != null\n });\n }\n }, [selectedRoute]);\n\n const selectRoute = (route) => {\n if (editingRouteParent?.route?.routeId) {\n dispatch(routeActions.showRouteInMap(editingRouteParent.route.routeId));\n if (setEditingRouteParent) setEditingRouteParent(undefined);\n }\n setSelectedRoute(route);\n if (useSlidingPaneRouteInformation) {\n setShowRouteInformationSlidingPane(true);\n }\n zoomMapToRoutes([route]);\n };\n\n const createRoute = (route) => {\n setShowRouteInformationSlidingPane(false);\n setEditingRouteParent({\n showRoute: true,\n route,\n routeCheckpoints: route.checkpoints,\n routePaths: route.checkpoints\n .filter((chk) => chk.segmentPath.length > 0)\n .map((chk) => {\n return {\n polyline: L.polyline(\n chk.segmentPath.map((path) => [path.latitude, path.longitude]),\n { color: pathColor ?? 'blue' }\n ),\n segmentSpeedLimit: chk.segmentSpeedLimit,\n segmentTripMinTime: chk.segmentTripMinTime,\n segmentTripMaxTime: chk.segmentTripMaxTime,\n segmentStopAuthorized: chk.segmentStopAuthorized,\n segmentStopTime: chk.segmentStopTime,\n segmentDistance: chk.segmentDistance,\n segmentWithoutStopTime: chk.segmentWithoutStopTime\n };\n })\n });\n };\n\n const zoomMapToRoutes = (routes) => {\n var bounds = [];\n routes.map((route) => (bounds = [...bounds, ...getRouteBounds(route)]));\n if (bounds.length > 0)\n map.flyToBounds(bounds, {\n paddingBottomRight: isMapFullScreen ? [700, 0] : undefined,\n paddingTopLeft: isMapFullScreen ? [0, 70] : undefined,\n animate: map.getBoundsZoom(bounds, undefined, [700, 70]) !== map.getZoom()\n });\n };\n\n const displayMarkers = () => {\n if (routes.filter((route) => route.checkpoints.length > 0).length > 0)\n setRoutesBounds(\n routes.filter((route) =>\n map\n ? getRouteBounds(route).length > 0 && map.getBounds().intersects(getRouteBounds(route))\n : true\n )\n );\n };\n\n useEffect(() => {\n if (!isEditing && selectedRoute.routeId) {\n dispatch(routeActions.showRouteInMap(selectedRoute.routeId));\n setSelectedRoute(routeSelectors.getRoute(store, selectedRoute.routeId));\n setShowRouteInformationSlidingPane(true);\n }\n }, [isEditing]);\n\n useEffect(() => {\n if (editingRouteParent?.route?.routeId) {\n dispatch(routeActions.hideRouteInMap(editingRouteParent.route.routeId));\n }\n }, [editingRouteParent]);\n\n useDeepCompareEffect(() => {\n if (setMapPositionToRouteBounds && map && routes.length > 0) zoomMapToRoutes();\n }, [routes, setMapPositionToRouteBounds]);\n\n useEffect(() => {\n if (initialShowSlidingPanelRouteCreateOpen) {\n setShowRouteInformationSlidingPane(false);\n setEditingRouteParent({\n showRoute: true,\n route: { newRouteId: uuidv4() },\n routeCheckpoints: [\n { checkpointId: uuidv4() },\n { checkpointId: uuidv4() },\n { checkpointId: uuidv4() }\n ],\n routePaths: []\n });\n }\n }, [initialShowSlidingPanelRouteCreateOpen]);\n\n //Open and get route checkpoints if params are set\n useEffect(() => {\n if (initialShowSlidingPanelRouteInformationOpen && useSlidingPaneRouteInformation) {\n if (initialRouteInformationOpenId) {\n dispatch(\n routeCheckpointsActions.startFetchingRouteCheckpoints(initialRouteInformationOpenId)\n );\n }\n }\n }, [initialRouteInformationOpenId]);\n\n useEffect(() => {\n if (initialShowSlidingPanelRouteInformationOpen && useSlidingPaneRouteInformation) {\n if (initialRouteInformationOpenId && !isFetchingCheckpoints) {\n const initialRouteInformation = routeSelectors.getRoute(\n store,\n initialRouteInformationOpenId\n );\n if (\n initialRouteId !== initialRouteInformationOpenId &&\n initialRouteInformation?.checkpoints?.length > 0\n ) {\n setInitialRouteId(initialRouteInformation.routeId);\n setSelectedRoute(initialRouteInformation);\n zoomMapToRoutes([initialRouteInformation]);\n setShowRouteInformationSlidingPane(true);\n if (initialShowSlidingPanelRouteEditOpen) {\n setOpenEditSlidingPane(true);\n }\n }\n }\n }\n }, [isFetchingCheckpoints]);\n\n useEffect(() => {\n if (openEditSlidingPane) {\n setOpenEditSlidingPane(false);\n createRoute(selectedRoute);\n }\n }, [selectedRoute]);\n\n useDeepCompareEffect(() => {\n displayMarkers();\n }, [showRoutes, isEditing, isAdding, routes]);\n\n return (\n <>\n {(showRoutes || useIsShownRoute) && (\n \n {routesBounds.map(\n (route) =>\n ((showRoutes && !useIsShownRoute) || (useIsShownRoute && route.isShownInMap)) && (\n
\n {route.checkpoints.map(\n (checkpoint, index) =>\n checkpoint.latitude != null &&\n checkpoint.longitude != null && (\n
\n selectRoute(route)\n }}\n >\n {usePopovers && (\n \n \n {checkpoint?.checkpointName ?? route.routeName}\n \n \n )}\n \n {checkpoint.radius && (\n \n )}\n {checkpoint.segmentPath.length > 0 && (\n [\n path.latitude,\n path.longitude\n ])}\n eventHandlers={{\n click: () => {\n setOpenEditSlidingPane(true);\n selectRoute(route);\n }\n }}\n >\n {usePopovers && (\n \n \n {route.routeName}\n \n \n )}\n \n )}\n
\n )\n )}\n
\n )\n )}\n
\n )}\n\n {\n setShowRouteInformationSlidingPane(false);\n setSelectedRoute({});\n }}\n isOpenSlidingPane={showRouteInformationSlidingPane}\n title={selectedRoute.routeName}\n route={selectedRoute}\n createRoute={createRoute}\n />\n \n );\n};\n\nMapRoutes.defaultProps = {\n setMapPositionToRouteBounds: false,\n useSlidingPaneRouteInformation: true,\n routes: [],\n showRoutes: false,\n initialShowSlidingPanelRouteInformationOpen: false,\n usePopovers: true,\n initialRouteInformationOpenId: undefined,\n useIsShownRoute: false\n};\n\nexport default MapRoutes;\n","import 'leaflet-rotatedmarker';\nimport { useEffect, useRef } from 'react';\nimport { Marker } from 'react-leaflet';\n\nconst RotatedMarker = ({ children, ...props }: any) => {\n const markerRef = useRef();\n\n const { rotationAngle, rotationOrigin } = props;\n useEffect(() => {\n if (markerRef.current?.setRotationAngle && markerRef.current?.setRotationOrigin) {\n markerRef.current.setRotationAngle(rotationAngle);\n markerRef.current.setRotationOrigin(rotationOrigin);\n }\n }, [rotationAngle, rotationOrigin]);\n\n return (\n {\n if (ref) markerRef.current = ref;\n }}\n {...props}\n >\n {children}\n \n );\n};\n\nexport default RotatedMarker;\n","/* -------------------------------------------------------------------------- */\n/* Componente SlidingPaneUnitHistoricalPositionsReport */\n/* -------------------------------------------------------------------------- */\n// Este componente contiene un Sidebar para subir una imagen.\n\nimport moment from 'moment';\nimport { useContext, useEffect, useRef, useState } from 'react';\nimport { useForm, Controller } from 'react-hook-form';\nimport { renderToString } from 'react-dom/server';\nimport { MapPin } from 'react-feather';\nimport { FormattedMessage, useIntl } from 'react-intl';\nimport { Marker, Polyline, Tooltip, useMapEvents } from 'react-leaflet';\nimport { connect, useDispatch, useSelector } from 'react-redux';\nimport SlidingPane from 'react-sliding-pane';\nimport { Col, Label, Row, Spinner, Media, Button } from 'reactstrap';\nimport Icon from 'utility/icomoon';\nimport DateInput from 'views/formComponents/DateInput';\nimport RotatedMarker from 'views/components/Map/components/RotatedMarker';\nimport SwitchInput from 'views/formComponents/SwitchInput';\nimport Table from 'views/components/Table';\nimport Toolbar from 'views/components/Toolbar';\nimport DefaultButton from '../../../../components/DefaultButton';\nimport * as unitActions from '../../actions';\nimport * as unitSelectors from '../../reducers';\nimport { UNIT_IDLE_SPEED } from '../../types';\nimport { getDatesDifferenceString, getIconByDatesDifference } from '../../utils';\nimport ReportViewerButton from 'views/components/ReportViewerButton';\nimport { orderBy } from 'lodash';\nimport * as authSelectors from 'redux/reducers/auth';\nimport UnitsDropdown from 'views/formComponents/UnitsDropdown';\nimport { numberWithCommas } from 'utility/Utils';\nimport { getUnitHeadingIcon } from 'views/screens/Units/utils';\n// import { HeatmapLayer } from 'react-leaflet-heatmap-layer/src';\n\n/* -------------------------------------------------------------------------- */\n/* SlidingPaneUnitHistoricalPositionsReport */\n/* -------------------------------------------------------------------------- */\n\nexport interface ShowHistoricalPositions {\n show: boolean;\n showUnitHistoryMarkers: boolean;\n showUnitHistoryParkedMarkers: boolean;\n showUnitHistoryConsoleEventMarkers?: boolean;\n showUnitHistoryOnlyNormalPositionsMarkers?: boolean;\n useInterval?: number;\n reportType: number;\n startDate: string;\n endDate: string;\n idleSpeed?: number;\n selectedPositionId?: any;\n lineWidth?: any;\n}\n\ninterface Props {\n closeSlidingPane: Function;\n isSlidingPaneOpen: boolean;\n showHistoricalPositions?: ShowHistoricalPositions;\n title: string;\n subtitle: string;\n unit: any;\n setMapPositionToPositionsBounds: boolean;\n changeSetMapPositionToUnitsBounds: Function;\n selectedUnit?: any;\n setSelectedUnit?: Function;\n selectedUnitRef?: any;\n}\nconst SlidingPaneUnitHistoricalPositionsReport = (props: Props) => {\n const intl = useIntl();\n const columnInfo = [\n {\n fieldName: 'eventName',\n template: (position) =>\n position.eventId != null ? (\n \n \n \n \n \n \n ) : (\n \n \n {position.eventId ? (\n \n ) : (\n position.eventName\n )}\n \n ),\n maxWidth: '150',\n headerText: 'units.event'\n },\n {\n fieldName: 'locationName',\n template: (position) => (\n \n \n \n \n {position.locationName}\n \n ),\n maxWidth: '150',\n headerText: 'units.locationName'\n }, \n {\n fieldName: 'gpsDate',\n maxWidth: '150',\n headerText: 'units.date',\n type: 'dateTime',\n formatColumn: 'yyyy-MM-dd HH:mm'\n }\n ];\n function formatIgnitionStatus(ignitionValue) \n {\n return ignitionValue === 1 ? 'Encendido' : 'Apagado';\n }\n\n const {\n closeSlidingPane,\n isSlidingPaneOpen,\n showHistoricalPositions,\n title,\n subtitle,\n setMapPositionToPositionsBounds,\n unit,\n changeSetMapPositionToUnitsBounds,\n selectedUnit,\n setSelectedUnit,\n selectedUnitRef\n } = props;\n function formatToTwoDecimals(value) {\n if (value === null || value === undefined) return '';\n return parseFloat(value).toFixed(2);\n }\n const extraColumns = [\n {\n fieldName: 'gpsDate',\n headerText: 'units.date',\n type: 'dateTime',\n formatColumn: 'yyyy-MM-dd HH:mm'\n },\n {\n fieldName: 'systemDate',\n headerText: 'units.receptionDate',\n type: 'dateTime',\n formatColumn: 'yyyy-MM-dd HH:mm'\n },\n {\n fieldName: 'eventName',\n template: (position) => {\n return position.eventId != null ? (\n \n \n \n \n \n \n ) : (\n \n \n {position.eventName}\n \n );\n },\n headerText: 'units.event'\n },\n {\n fieldName: 'locationName',\n template: (position) => (\n \n \n \n \n {position.locationName}\n \n ),\n maxWidth: '150',\n headerText: 'units.locationName'\n }, \n {\n fieldName: 'speed',\n headerText: 'units.speed'\n },\n {\n fieldName: 'metric',\n headerText: unit.defaultMetricName+'('+unit.defaultMetricUnit+')',\n format: (value) => formatToTwoDecimals(value),\n\n },\n {\n fieldName: 'isIgnitionOn',\n headerText: 'sensors.ignition',\n format: formatIgnitionStatus,\n visible: unit.hasIgnitionInput,\n },\n {\n fieldName: 'odometer',\n headerText: 'units.odometer',\n format: (value: any) => numberWithCommas(value)\n },\n ];\n\n const { control, watch, reset, handleSubmit } = useForm();\n const formValues = watch();\n\n const dispatch = useDispatch();\n\n const style = getComputedStyle(document.body);\n const primary = process.env.REACT_APP_PRIMARY_COLOR;\n const [selected, changeSelected] = useState([]);\n const fetchInterval = useRef();\n const [size, changeSize] = useState('40rem');\n const [viewTable, changeViewTable] = useState(true);\n const [search, setSearch] = useState(new Date());\n const [rerender, changeRerender] = useState(new Date());\n const [historicalPositionsOnMapBounds, setHistoricalPositionsOnMapBounds] = useState(null);\n\n const { isFetching, user, dropDownUnit } = useSelector((state) => ({\n isFetching: unitSelectors.isFetchingUnitPositions(state),\n dropDownUnit: formValues?.selectedUnit\n ? unitSelectors.getUnit(state, formValues?.selectedUnit)\n : undefined,\n user: authSelectors.getUser(state)\n }));\n\n useEffect(() => {\n if (\n formValues?.selectedUnit &&\n dropDownUnit &&\n selectedUnit?.unitId !== formValues?.selectedUnit\n ) {\n //unitSelectors.getUnit(store, unit.unitId);\n setSelectedUnit ? setSelectedUnit(dropDownUnit) : '';\n changeSetMapPositionToUnitsBounds(true);\n }\n }, [formValues?.selectedUnit]);\n\n const map = useMapEvents({\n moveend: () => {\n displayObjects();\n }\n });\n const cleanup = () => {\n if (fetchInterval.current) clearInterval(fetchInterval.current);\n };\n\n useEffect(() => {\n return () => cleanup();\n }, []);\n\n const zoomMapToPositions = () => {\n if (\n setMapPositionToPositionsBounds &&\n unit?.historicalPositions?.positions?.filter(\n (position, index) => position?.latitude != null && position?.longitude != null\n ).length > 0\n ) {\n map.flyToBounds(\n L.latLngBounds(\n unit?.historicalPositions?.positions\n .filter((position, index) => position?.latitude != null && position?.longitude != null)\n .map((position) => L.latLng(position.latitude, position.longitude))\n ),\n {\n paddingBottomRight: [550, 0],\n paddingTopLeft: [0, 70],\n maxZoom: 15,\n animate: 15 !== map.getZoom()\n }\n );\n }\n };\n\n const displayObjects = () => {\n setHistoricalPositionsOnMapBounds({\n positions: unit?.historicalPositions?.positions?.filter(\n (position, index) =>\n showHistoricalPositions?.selectedPositionId === position.id ||\n (position?.latitude != null &&\n position?.longitude != null &&\n (map\n ? map.getBounds().contains(L.latLng(position.latitude, position.longitude))\n : true) &&\n (map?.getZoom() > 14 || (map?.getZoom() > 10 && index % 10 === 0) || index % 20 === 0))\n ),\n parkedPositions: unit?.historicalPositions?.parkedPositions?.filter(\n (position, index) =>\n showHistoricalPositions?.selectedPositionId === position.id ||\n (position?.latitude != null &&\n position?.longitude != null &&\n (map\n ? map.getBounds().contains(L.latLng(position.latitude, position.longitude))\n : true) &&\n (map?.getZoom() > 14 || (map?.getZoom() > 10 && index % 10 === 0) || index % 20 === 0))\n ),\n polyline:\n unit?.historicalPositions?.polyline?.length > 0\n ? map\n .getBounds()\n .intersects(\n unit?.historicalPositions?.polyline?.map((position) => [\n position.latitude,\n position.longitude\n ])\n )\n ? unit?.historicalPositions.polyline\n : []\n : undefined,\n consoleEvents: unit?.consoleEvents\n });\n };\n useEffect(() => {\n changeRerender(new Date());\n changeViewTable(false);\n setTimeout(() => changeViewTable(true), 200);\n }, [size]);\n\n useEffect(() => {\n if (selected.length > 0)\n map.flyToBounds(\n [[selected[selected.length - 1].latitude, selected[selected.length - 1].longitude]],\n {\n paddingBottomRight: [550, 0],\n paddingTopLeft: [0, 70],\n maxZoom: 15,\n animate: 15 !== map.getZoom()\n }\n );\n else zoomMapToPositions();\n }, [selected]);\n\n useEffect(() => {\n if (!isFetching) {\n zoomMapToPositions();\n displayObjects();\n }\n }, [isFetching]);\n\n useEffect(() => {\n if (unit?.unitId) {\n reset({\n dateRange: [\n formValues?.dateRange\n ? formValues?.dateRange[0]\n : moment().startOf('day').format('YYYY-MM-DD HH:mm'),\n formValues?.dateRange\n ? formValues?.dateRange[1]\n : moment().endOf('day').format('YYYY-MM-DD HH:mm')\n ],\n showUnitHistoryMarkers: true,\n groupPositionsIntoPraked: true,\n showUnitHistoryParkedMarkers: true,\n showUnitHeatMap: false\n });\n }\n }, [unit?.unitId, isSlidingPaneOpen]);\n\n useEffect(() => {\n if (\n unit?.unitId &&\n isSlidingPaneOpen &&\n formValues &&\n formValues.dateRange?.length === 2 &&\n formValues?.groupPositionsIntoPraked != undefined\n ) {\n dispatch(\n unitActions.startFetchingUnitPositions(\n unit?.unitId,\n formValues.groupPositionsIntoPraked ? 2 : 1,\n formValues.dateRange[0],\n formValues.dateRange[1],\n UNIT_IDLE_SPEED\n )\n );\n }\n }, [unit?.unitId, isSlidingPaneOpen, search, formValues?.groupPositionsIntoPraked]);\n\n useEffect(() => {\n cleanup();\n\n if (\n unit?.unitId &&\n showHistoricalPositions &&\n showHistoricalPositions.show &&\n showHistoricalPositions.startDate &&\n showHistoricalPositions.startDate !== '' &&\n showHistoricalPositions.endDate &&\n showHistoricalPositions.endDate !== '' &&\n showHistoricalPositions.reportType\n ) {\n if (showHistoricalPositions?.useInterval) {\n fetchInterval.current = setInterval(() => {\n dispatch(\n unitActions.startFetchingUnitPositions(\n unit.unitId,\n showHistoricalPositions.reportType,\n showHistoricalPositions.startDate,\n showHistoricalPositions.endDate,\n showHistoricalPositions.idleSpeed || UNIT_IDLE_SPEED\n )\n );\n }, showHistoricalPositions.useInterval);\n }\n\n dispatch(\n unitActions.startFetchingUnitPositions(\n unit.unitId,\n showHistoricalPositions.reportType,\n showHistoricalPositions.startDate,\n showHistoricalPositions.endDate,\n showHistoricalPositions.idleSpeed || UNIT_IDLE_SPEED\n )\n );\n }\n }, [\n unit?.unitId,\n showHistoricalPositions?.show,\n showHistoricalPositions?.useInterval,\n showHistoricalPositions?.reportType,\n showHistoricalPositions?.startDate,\n showHistoricalPositions?.endDate,\n showHistoricalPositions?.idleSpeed\n ]);\n\n useEffect(() => {\n if (showHistoricalPositions?.selectedPositionId) displayObjects();\n }, [showHistoricalPositions?.selectedPositionId]);\n\n function getArrowImage(heading) {\n if (heading >= 337.5 || heading < 22.5) {\n return 'ArrowUp'; //Norte\n } else if (heading >= 22.5 && heading < 67.5) {\n return 'ArrowUpRight'; //Noreste\n } else if (heading >= 67.5 && heading < 112.5) {\n return 'ArrowRight'; //Este\n } else if (heading >= 112.5 && heading < 157.5) {\n return 'ArrowDownRight'; //Sureste\n } else if (heading >= 157.5 && heading < 202.5) {\n return 'ArrowDown'; //Sur\n } else if (heading >= 202.5 && heading < 247.5) {\n return'ArrowDownLeft'; //Suroeste\n } else if (heading >= 247.5 && heading < 292.5) {\n return 'ArrowLeft'; //Oeste\n } else { \n return'ArrowUpLeft'; //Noroeste\n }\n \n }\n\n //Reporte exportable ----------------------------------------------------------\n const reportDataSource = {\n title: intl.formatMessage({ id: 'units.historicalPositions.report.tittle' }),\n subtitle: `Id: ${unit.unitId} - ${unit.unitName}`, // Id: Numero_ID - Nombre_Unidad \n filters:\n (formValues.dateRange ? formValues.dateRange[0] : '') +\n ' - ' +\n (formValues.dateRange ? formValues.dateRange[1] : ''),\n dataSets: [\n {\n value: orderBy(\n unit?.historicalPositions?.allPositions.map((position) => ({\n ...position,\n eventName: position.eventName || intl.formatMessage({ id: 'units.parked' }),\n headingArrows: process.env.NODE_ENV === 'production' ? process.env.PUBLIC_URL : window.location.origin + \"/assets/\"+getArrowImage(position.heading)+\".png\", \n speed: position.speed === null ? '' : position.speed,\n metric: position.metric === null ? '' : parseFloat(position.metric).toFixed(2),\n ignition: position.isIgnitionOn === 1 ? 'Encendido' : 'Apagado'\n })),\n 'gpsDate',\n 'asc'\n ),\n name: 'HistoricalPositionUnits'\n },\n {\n value: [\n {\n defaultMetricUnit: unit.defaultMetricUnit,\n defaultMetricName: unit.defaultMetricName\n }\n ],\n name: 'Metrics'\n },\n {\n value: [\n {\n distanceSystem: user.distanceSystem\n }\n ],\n name: 'User'\n },\n {\n value: [\n {\n distanceAllPositions: unit?.historicalPositions?.distance\n }\n ],\n name: 'DistancePositionsUnit'\n }\n ]\n };\n\n return (\n <>\n {historicalPositionsOnMapBounds?.positions?.length > 0 &&\n (isSlidingPaneOpen || showHistoricalPositions?.show) &&\n (showHistoricalPositions?.show\n ? showHistoricalPositions?.showUnitHistoryMarkers\n : formValues?.showUnitHistoryMarkers) &&\n historicalPositionsOnMapBounds.positions.map((position, index) =>\n position.eventId === 0 ? (\n 0 && selected[selected.length - 1].id === position.id) ||\n showHistoricalPositions?.selectedPositionId === position.id\n }`}\n // pmIgnore={true}\n zIndexOffset={750}\n riseOnHover={true}\n rotationAngle={position.heading}\n rotationOrigin=\"center\"\n icon={L.divIcon({\n className: 'custom-div-icon',\n html: `\n `,\n iconSize: [22, 22],\n iconAnchor: [11, 11]\n })}\n position={[position.latitude, position.longitude]}\n eventHandlers={{\n click: () => {}\n }}\n >\n 0 && selected[selected.length - 1].id === position.id) ||\n showHistoricalPositions?.selectedPositionId === position.id\n }\n >\n
\n \n {moment(position.gpsDate).format('YYYY-MM-DD HH:mm')}\n \n
\n {position.eventName}\n
\n\n {position?.locationName?.split(',').map((e) => {\n return (\n

{e}

\n );\n })}\n
\n \n \n ) : (\n (showHistoricalPositions?.showUnitHistoryOnlyNormalPositionsMarkers ?? false) ==\n false && (\n 0 && selected[selected.length - 1].id === position.id) ||\n showHistoricalPositions?.selectedPositionId === position.id\n }`}\n // pmIgnore={true}\n zIndexOffset={700}\n riseOnHover={true}\n icon={L.divIcon({\n className: 'custom-div-icon',\n html: renderToString(\n \n \n \n ),\n iconSize: [30, 30],\n iconAnchor: [15, 15]\n })}\n position={[position.latitude, position.longitude]}\n eventHandlers={{\n click: () => {}\n }}\n >\n 0 && selected[selected.length - 1].id === position.id) ||\n showHistoricalPositions?.selectedPositionId === position.id\n }\n >\n \n {moment(position.gpsDate).format('YYYY-MM-DD HH:mm')}\n \n
\n {position.eventName}\n
\n \n {position?.locationName?.split(',').map((e) => {\n return (\n

{e}

\n );\n })}\n
\n \n \n )\n )\n )}\n {historicalPositionsOnMapBounds?.parkedPositions?.length > 0 &&\n (isSlidingPaneOpen || showHistoricalPositions?.show) &&\n (showHistoricalPositions?.show\n ? showHistoricalPositions?.showUnitHistoryParkedMarkers\n : formValues?.groupPositionsIntoPraked && formValues?.showUnitHistoryParkedMarkers) &&\n historicalPositionsOnMapBounds.parkedPositions.map((position, index) => (\n 0 && selected[selected.length - 1].id === position.id) ||\n showHistoricalPositions?.selectedPositionId === position.id\n }`}\n // pmIgnore={true}\n zIndexOffset={700}\n riseOnHover={true}\n icon={L.divIcon({\n className: 'custom-div-icon',\n html: renderToString(\n \n ),\n iconSize: [30, 30],\n iconAnchor: [15, 15]\n })}\n position={[position.latitude, position.longitude]}\n eventHandlers={{\n click: () => {}\n }}\n >\n 0 && selected[selected.length - 1].id === position.id) ||\n showHistoricalPositions?.selectedPositionId === position.id\n }\n >\n \n {moment(position.gpsDate).format('YYYY-MM-DD HH:mm')}\n \n
\n \n {`${intl.formatMessage({ id: 'units.duration' })}: ${getDatesDifferenceString(\n position.endDate,\n position.gpsDate,\n intl\n )}`}\n \n
\n {position.locationName}\n \n \n ))}\n {/* {unit?.historicalPositions?.polyline?.length > 0 && isSlidingPaneOpen && (\n ({\n ...point,\n intensity: 1\n }))}\n latitudeExtractor={(m: any) => m.latitude}\n longitudeExtractor={(m: any) => m.longitude}\n intensityExtractor={(m: any) => parseFloat(m.intensity)}\n max={1}\n minOpacity={0.2}\n />\n )} */}\n {historicalPositionsOnMapBounds?.polyline?.length > 0 &&\n (isSlidingPaneOpen || showHistoricalPositions?.show) && (\n [\n point.latitude,\n point.longitude\n ])}\n eventHandlers={{\n click: () => {}\n }}\n >\n )}\n {historicalPositionsOnMapBounds?.consoleEvents?.length > 0 &&\n showHistoricalPositions?.showUnitHistoryConsoleEventMarkers === true &&\n (isSlidingPaneOpen || showHistoricalPositions?.show) &&\n historicalPositionsOnMapBounds.consoleEvents.map((position, index) => (\n 0 && selected[selected.length - 1].id === position.id) ||\n showHistoricalPositions?.selectedPositionId === position.id\n }`}\n // pmIgnore={true}\n zIndexOffset={700}\n riseOnHover={true}\n icon={L.divIcon({\n className: 'custom-div-icon',\n html: renderToString(\n \n \n \n ),\n iconSize: [30, 30],\n iconAnchor: [15, 15]\n })}\n position={[position.latitude, position.longitude]}\n eventHandlers={{\n click: () => {}\n }}\n >\n 0 && selected[selected.length - 1].id === position.id) ||\n showHistoricalPositions?.selectedPositionId === position.id\n }\n >\n \n {moment(position.gpsDate).format('YYYY-MM-DD HH:mm')}\n \n
\n \n {intl.formatMessage({\n id: `organizations.event${position.eventId}`\n })}\n \n
\n {position.locationName}\n \n \n ))}\n {\n if (closeSlidingPane) closeSlidingPane();\n }}\n >\n <>\n \n \n {unit && unit?.unitId && unit.organizationId && unit?.operatorId ? (\n (\n \n )}\n />\n ) : (\n ''\n )}\n \n \n \n \n (\n \n )}\n />\n \n \n {\n setSearch(new Date());\n })}\n >\n \n \n \n \n (\n }\n />\n )}\n />\n \n \n (\n }\n />\n )}\n />\n \n {formValues?.groupPositionsIntoPraked && (\n \n (\n }\n />\n )}\n />\n \n )}\n {/* \n (\n \n \n \n \n }\n />\n )}\n />\n */}\n {isFetching && (\n \n
\n \n
\n \n )}\n {!isFetching && (\n \n
\n \n \n
\n \n )}\n {!isFetching && unit?.historicalPositions?.positions?.length > 0 && (\n \n {\n changeSize(size === '40rem' ? '80rem' : '40rem');\n }}\n tooltipMessage={intl.formatMessage({\n id: size === '80rem' ? 'workplans.minimize' : 'workplans.maximize'\n })}\n >,\n {}}\n reportDataSource={reportDataSource}\n useEmbbededChannel={true}\n reportPath={'HistoricalPositionUnits.rdl'}\n />\n ]}\n />\n {viewTable && (\n column.visible !== false && column.headerText != \"null(null)\")\n .map(column => column)\n : columnInfo\n }\n onDeselect={() => changeSelected([])}\n data={unit?.historicalPositions?.allPositions.map((position) => ({\n ...position,\n eventName: position.eventName || intl.formatMessage({ id: 'units.parked' }),\n speed: position.speed === null ? '' : position.speed,\n metric: isNaN(position.metric) && position.metric === null? '' : position.metric,\n }))}\n selected={selected}\n changeSelected={changeSelected}\n />\n )}\n \n )}\n
\n \n \n \n );\n};\nSlidingPaneUnitHistoricalPositionsReport.defaultProps = {\n closeSlidingPane: () => null,\n isSlidingPaneOpen: false,\n showHistoricalPositions: { show: false },\n title: '',\n unit: {}\n};\n\nexport default SlidingPaneUnitHistoricalPositionsReport;\n","import SlidingPane from 'react-sliding-pane';\nimport * as organizationSelectors from 'views/screens/Organizations/reducers';\nimport { useEffect, FC, useMemo } from 'react';\nimport { useForm, Controller } from 'react-hook-form';\nimport { useSelector } from 'react-redux';\nimport useGetUnitScriptHistory from '../../hooks/useGetUnitScriptHistory';\nimport DateInput from 'views/formComponents/DateInput';\nimport moment from 'moment';\nimport { Row, Col, Spinner, Button, Badge } from 'reactstrap';\nimport Table from 'views/components/Table';\nimport Toolbar from 'views/components/Toolbar';\nimport ReportViewerButton from 'views/components/ReportViewerButton';\nimport { FormattedMessage, IntlShape, useIntl } from 'react-intl';\nimport * as authSelectors from '../../../../../redux/reducers/auth';\nimport { BroadcastChannel } from 'broadcast-channel';\nimport { useRerender } from 'hooks/useRerender';\nimport { TableColumn } from 'utility/types';\nimport { renderToString } from 'react-dom/server';\nimport Icon from 'utility/icomoon';\nimport { appIntl } from 'utility/context/IntlGlobalProvider';\nimport { isNotNullOrUndefined } from 'utility/Utils';\nimport { getStatusStyles } from 'views/screens/Reports/views/byUnit/reportScriptHistory/utils';\n\n/* -------------------------------------------------------------------------- */\n/* SlidingPaneUnitHistoricalScriptsReport */\n/* -------------------------------------------------------------------------- */\n\n//Columnas predefinidas para la tabla\nconst columns: TableColumn[] = [\n {\n fieldName: 'scriptDate',\n headerText: 'common.date',\n type: 'dateTime',\n formatColumn: 'yyyy-MM-dd HH:mm'\n },\n {\n fieldName: 'sentDirection',\n headerText: 'units.sentDirection',\n textAlign: 'Center',\n headerTemplate: renderToString(\n \n \n \n ),\n template: (script) => (\n \n \n \n \n \n )\n },\n {\n fieldName: 'scriptTypeDescription',\n headerText: 'forms.type'\n },\n {\n fieldName: 'scriptText',\n headerText: 'common.text'\n },\n {\n fieldName: 'deviceActionDescription',\n headerText: 'units.action'\n },\n {\n fieldName: 'userName',\n headerText: 'users.user'\n },\n {\n fieldName: 'status',\n headerText: 'units.status',\n template: (script) => {\n const styles = getStatusStyles(script.isProcessed);\n if (styles === null) {\n return <>;\n }\n\n const { color, icon, text } = styles;\n\n return (\n \n \n {text}\n \n );\n }\n },\n {\n fieldName: 'sentDate',\n headerText: 'units.sentDate',\n type: 'dateTime',\n formatColumn: 'yyyy-MM-dd HH:mm'\n }\n];\n\ninterface Props {\n closeSlidingPane: Function;\n isSlidingPaneOpen: boolean;\n title: string;\n subtitle: string;\n unit: any;\n}\n\nconst SlidingPaneUnitHistoricalScriptsReport: FC = ({\n closeSlidingPane,\n isSlidingPaneOpen,\n title,\n subtitle,\n unit\n}) => {\n //HOOKS\n const { control, watch, handleSubmit } = useForm<{ dateRange: [string, string] }>({\n defaultValues: {\n dateRange: [\n moment().startOf('day').format('YYYY-MM-DD HH:mm'),\n moment().endOf('day').format('YYYY-MM-DD HH:mm')\n ]\n }\n });\n const intl: IntlShape = useIntl();\n\n //VARIABLES\n const { dateRange } = watch();\n const [startDate, endDate] = dateRange;\n\n //HOOK CONSULTA A LA API\n const { scriptHistory, isFetchingScriptHistory, startRefresh } = useGetUnitScriptHistory(\n startDate,\n endDate,\n unit?.unitId,\n () => isSlidingPaneOpen\n );\n\n const { rerender } = useRerender([dateRange]);\n\n const { organizationName } = useSelector((state) => {\n const userOrganizationId = authSelectors.getAuthUserOrganizationId(state);\n const organizationName =\n organizationSelectors.getOrganization(state, userOrganizationId)?.organizationName ?? '';\n\n return { organizationName };\n });\n\n const scriptHistoryRpt = useMemo(() => {\n return scriptHistory.map((sh) => {\n return {\n ...sh,\n scriptDate: isNotNullOrUndefined(sh.scriptDate)\n ? moment(sh.scriptDate).format('YYYY-MM-DD HH:mm')\n : '',\n sentDate: isNotNullOrUndefined(sh.sentDate)\n ? moment(sh.sentDate).format('YYYY-MM-DD HH:mm')\n : '',\n status:\n sh.isProcessed === 0\n ? intl.formatMessage({ id: 'units.pending' })\n : sh.isProcessed === 1\n ? intl.formatMessage({ id: 'units.sent' })\n : sh.isProcessed === 2\n ? intl.formatMessage({ id: 'units.cancelled' })\n : '',\n deviceActionDescription: sh.deviceActionId\n ? intl.formatMessage({ id: `units.deviceActionId.${sh.deviceActionId}` })\n : ''\n };\n });\n }, [scriptHistory, intl]);\n\n const reportDataSource = {\n title: intl.formatMessage({ id: 'reports.historyOfScripts' }),\n subtitle: intl.formatMessage({ id: 'jobs.reports.organization' }) + (organizationName ?? ''),\n filters: startDate + ' - ' + endDate,\n dataSets: [\n {\n value: scriptHistoryRpt,\n name: 'scriptHistory'\n }\n ]\n };\n\n useEffect(() => {\n if (isSlidingPaneOpen && !isFetchingScriptHistory) {\n startRefresh();\n }\n }, [isSlidingPaneOpen]);\n\n return (\n <>\n {\n if (closeSlidingPane) closeSlidingPane();\n }}\n >\n <>\n \n \n (\n \n )}\n />\n \n \n {\n startRefresh();\n })}\n >\n \n \n \n \n {isFetchingScriptHistory ? (\n \n \n \n \n \n ) : (\n <>\n {}}\n reportDataSource={reportDataSource}\n useEmbbededChannel={true}\n reportPath={'ScriptsHistoricalData.rdl'}\n />\n ]}\n />\n ({\n ...script,\n scriptDate: moment(new Date(script.scriptDate)).format('YYYY-MM-DD HH:mm'),\n status:\n script.isProcessed === 0\n ? intl.formatMessage({ id: 'units.pending' })\n : script.isProcessed === 1\n ? intl.formatMessage({ id: 'units.sent' })\n : script.isProcessed === 2\n ? intl.formatMessage({ id: 'units.cancelled' })\n : '',\n deviceActionDescription: script.deviceActionId\n ? intl.formatMessage({ id: `units.deviceActionId.${script.deviceActionId}` })\n : ''\n }))}\n enablePersistence={false}\n rerender={rerender}\n />\n \n )}\n \n \n \n );\n};\n\nSlidingPaneUnitHistoricalScriptsReport.defaultProps = {\n closeSlidingPane: () => null,\n isSlidingPaneOpen: false,\n //showHistoricalPositions: { show: false },\n title: '',\n unit: {}\n};\n\nexport default SlidingPaneUnitHistoricalScriptsReport;\n","import SlidingPane from 'react-sliding-pane';\nimport { useEffect, useState, Fragment } from 'react';\nimport { useForm, Controller } from 'react-hook-form';\nimport { useIntl, FormattedMessage } from 'react-intl';\nimport { useSelector, useDispatch } from 'react-redux';\nimport {\n Row,\n Col,\n Spinner,\n Button,\n Collapse,\n InputGroupText,\n UncontrolledTooltip\n} from 'reactstrap';\nimport DropdownInput from 'views/formComponents/DropdownInput';\nimport ContactsDropdown from 'views/formComponents/ContactsDropdown';\nimport TextInput from 'views/formComponents/TextInput';\nimport Icon from '../../../../../utility/icomoon';\nimport * as unitSelectors from '../../../Units/reducers';\nimport * as unitActions from '../../../Units/actions';\n\n/* -------------------------------------------------------------------------- */\n/* SlidingPaneShareUnitLocation */\n/* -------------------------------------------------------------------------- */\n\ninterface Props {\n closeSlidingPane: Function;\n isSlidingPaneOpen: boolean;\n unit: any;\n}\n\nconst SlidingPaneShareUnitLocation = (props: Props) => {\n const { closeSlidingPane, isSlidingPaneOpen, unit } = props;\n\n //HOOKS\n const { control, watch, handleSubmit, reset } = useForm();\n const intl = useIntl();\n const dispatch = useDispatch();\n\n const formValues = watch();\n const [isLinkCreated, setIsLinkCreated] = useState(false);\n\n const { isCreatingSharedLink, sharedLinkUnit } = useSelector((state) => ({\n sharedLinkUnit: unitSelectors.sharedLinkUnit(state),\n isCreatingSharedLink: unitSelectors.isCreatingSharedLinkUnit(state)\n }));\n\n //TOPS\n const durations = [\n {\n id: 1,\n value: 1,\n label: `1 ${intl.formatMessage({ id: 'common.hour' })}`,\n label_intl: `1 ${intl.formatMessage({ id: 'common.hour' })}`\n },\n {\n id: 8,\n value: 8,\n label: `8 ${intl.formatMessage({ id: 'common.hours2' })}`,\n label_intl: `8 ${intl.formatMessage({ id: 'common.hours2' })}`\n },\n {\n id: 12,\n value: 12,\n label: `12 ${intl.formatMessage({ id: 'common.hours2' })}`,\n label_intl: `12 ${intl.formatMessage({ id: 'common.hours2' })}`\n },\n {\n id: 24,\n value: 24,\n label: `24 ${intl.formatMessage({ id: 'common.hours2' })}`,\n label_intl: `24 ${intl.formatMessage({ id: 'common.hours2' })}`\n }\n ];\n\n const onSubmit = () => {\n dispatch(\n unitActions.startCreatingShareLink(\n unit?.unitId,\n unit?.unitName,\n formValues?.receivers,\n formValues?.durationId * 3600\n )\n );\n };\n\n useEffect(() => {\n setIsLinkCreated(false);\n if (sharedLinkUnit !== '' && sharedLinkUnit !== undefined && sharedLinkUnit !== null) {\n setIsLinkCreated(true);\n reset({\n ...formValues,\n sharedLink: sharedLinkUnit\n });\n }\n }, [sharedLinkUnit]);\n\n return (\n unit && (\n \n \n
\n {unit?.unitName}\n
\n {unit?.locationName}\n
\n \n }\n width={'40rem'}\n onRequestClose={() => {\n if (closeSlidingPane) closeSlidingPane();\n dispatch(unitActions.clearSharedLink());\n }}\n >\n \n \n \n (\n \n )}\n />\n \n \n \n \n \n {isCreatingSharedLink ? (\n \n \n \n \n \n ) : (\n \n \n \n (\n \n \n {intl.formatMessage({ id: 'common.copyClipboard' })}\n \n \n navigator.clipboard.writeText(formValues?.sharedLink)\n }\n />\n \n }\n />\n )}\n />\n \n \n \n )}\n \n \n onSubmit())}\n >\n \n \n {\n reset({ durationId: 1 });\n dispatch(unitActions.clearSharedLink());\n }}\n >\n \n \n \n \n \n \n
\n )\n );\n};\n\nSlidingPaneShareUnitLocation.defaultProps = {\n closeSlidingPane: () => null,\n isSlidingPaneOpen: false,\n unit: {}\n};\n\nexport default SlidingPaneShareUnitLocation;\n","import { HttpWebtrack } from 'utility/http';\n\nimport configureInterceptors from 'utility/http/interceptors/configure-interceptors';\nimport { store } from 'redux/storeConfig/store';\n\nexport const baseUrl = '/unit';\n\ninterface UnitImage {\n unitId: number;\n imageId: number;\n imageTypeId: number;\n imageName: string;\n imageUrl: string;\n isDefault: boolean;\n}\n\ninterface UnitDeleteRequest {\n unitId: number;\n imageId: number;\n imageName: string;\n}\n\nexport const saveUnitImage = (request: UnitImage) => {\n const httpWebtrack = new HttpWebtrack();\n configureInterceptors.ConfigureWebtrackInterceptor(store, httpWebtrack);\n httpWebtrack.setConfigMessage({\n name: `${request.imageName}`,\n object: 'units.unitImage',\n action: request.imageId ? 'Edit' : 'Create',\n genderType: 'SingularFemale'\n });\n return httpWebtrack.post(`${baseUrl}/saveUnitImage`, request);\n};\n\nexport const deleteUnitImage = (request: UnitDeleteRequest) => {\n const httpWebtrack = new HttpWebtrack();\n configureInterceptors.ConfigureWebtrackInterceptor(store, httpWebtrack);\n httpWebtrack.setConfigMessage({\n name: `${request.imageName}`,\n object: 'units.unitImage',\n action: 'Delete',\n genderType: 'SingularFemale'\n });\n return httpWebtrack.post(`${baseUrl}/deleteUnitImage`, request);\n};\n","/* -------------------------------------------------------------------------- */\n/* Componente SlidingPaneUnitImages */\n/* -------------------------------------------------------------------------- */\n// Este componente contiene un Sidebar para subir una imagen.\n\nimport { useEffect, useState } from 'react';\nimport { FormattedMessage, useIntl } from 'react-intl';\nimport { Controller, useForm } from 'react-hook-form';\nimport { useDispatch, useSelector } from 'react-redux';\nimport SlidingPane from 'react-sliding-pane';\nimport { Button, Col, Form, FormGroup, Row, Spinner } from 'reactstrap';\nimport DeleteButton from 'views/components/DeleteButton';\nimport ImageUploader from 'views/formComponents/ImageUploader';\nimport TextInput from 'views/formComponents/TextInput';\nimport Toolbar from 'views/components/Toolbar';\nimport { deleteUnitImage, saveUnitImage } from 'views/screens/Units/services/unitImages';\nimport * as alerts from '../../../../../redux/utils/alerts';\nimport CheckboxInput from '../../../../formComponents/CheckBoxInput';\nimport DefaultButton from '../../../../components/DefaultButton';\nimport MediaGallery from '../../../../components/MediaGallery';\nimport TitleH4 from '../../../../components/TitleH4';\nimport * as unitActions from '../../actions';\nimport * as unitSelectors from '../../reducers';\n\n/* -------------------------------------------------------------------------- */\n/* SlidingPaneUnitImages */\n/* -------------------------------------------------------------------------- */\n\ninterface Props {\n closeSlidingPane: Function;\n isSlidingPaneOpen: boolean;\n title: string;\n unit: any;\n addImageInitial: boolean;\n}\nconst SlidingPaneUnitImages = (props: Props) => {\n const { closeSlidingPane, isSlidingPaneOpen, title, unit, addImageInitial } = props;\n const { control, handleSubmit } = useForm();\n const intl = useIntl();\n const dispatch = useDispatch();\n\n const [isLoadingUnitImages, setIsLoadingUnitImages] = useState(false);\n const [activeSlideImage, setActiveSlideImage] = useState(0);\n\n const { isFetching } = useSelector((state) => ({\n isFetching: unitSelectors.isFetchingUnitInformation(state)\n }));\n useEffect(() => {\n if (!isFetching) setIsLoadingUnitImages(false);\n }, [isFetching]);\n\n //addImage to use slide to add image instead of editing\n const [addImage, setAddImage] = useState(addImageInitial);\n useEffect(() => {\n setAddImage(addImageInitial);\n }, [addImageInitial]);\n const [uploadImage, setUploadImage] = useState({\n imageName: '',\n imageUrl: ''\n });\n\n //function to save an image on unitimages table\n const saveUnitImageAsync = async (values) => {\n setIsLoadingUnitImages(true);\n const defaultImageValues = !addImage ? unit.images[activeSlideImage] : {};\n const unitImageSave = {\n unitId: unit.unitId,\n ...defaultImageValues,\n ...values,\n imageUrl: !addImage\n ? defaultImageValues.imageUrl\n : values.imageTypeId == 1\n ? values.fileName\n : values.imageUrl,\n imageName: values.imageName,\n isDefault: values.isDefault\n };\n const response = await saveUnitImage(unitImageSave);\n if (response?.success) dispatch(unitActions.startFetchingUnitInformation(unitImageSave.unitId));\n };\n\n //function to delete unit image in unitimages table\n const deleteUnitImageAsync = async () => {\n const unitImageDelete = {\n unitId: unit.unitId,\n ...unit.images[activeSlideImage]\n };\n alerts.showDeleteConfirmationMessage({\n action: async () => {\n setIsLoadingUnitImages(true);\n const response = await deleteUnitImage(unitImageDelete);\n if (response?.success)\n dispatch(unitActions.startFetchingUnitInformation(unitImageDelete.unitId));\n },\n objectType: intl.formatMessage({ id: 'units.unitImage' }),\n objectName: unitImageDelete.imageName\n });\n };\n\n return (\n {\n if (closeSlidingPane) closeSlidingPane();\n }}\n >\n {unit.images ? (\n <>\n \n {/* Loading locaition images show spinner */}\n {isLoadingUnitImages && (\n
\n \n
\n )}\n\n {/* Toolbar for editing images */}\n {!isLoadingUnitImages && (\n <>\n {!addImage && (\n {\n setAddImage(true);\n }}\n tooltipMessage={intl.formatMessage({ id: 'units.addImage' })}\n />,\n unit.images.length > 0 && (\n {\n deleteUnitImageAsync();\n }}\n />\n )\n ]}\n />\n )}\n {/* unitimagesgallery to edit and its respective form */}\n {unit.images.length > 0 && !addImage && (\n ({\n ...image,\n fullImageUrl: image?.imageUrl\n }))}\n autoplay={false}\n onSlideChange={(slideId) => {\n setActiveSlideImage(slideId);\n }}\n navigation={true}\n pagination={true}\n useThumbs={true}\n className={'default-width-image'}\n classNameThumbs={'default-width-image'}\n heightThumbs={'10%'}\n />\n )}\n\n {unit.images.length > 0 && !addImage && (\n
\n
\n \n \n (\n }\n />\n )}\n />\n \n \n (\n \n )}\n />\n \n \n \n \n \n {\n saveUnitImageAsync(values);\n })}\n >\n \n \n {\n if (closeSlidingPane) closeSlidingPane();\n }}\n >\n \n \n \n \n \n
\n )}\n\n {/* Message to show if there are no images to edit */}\n {unit.images.length == 0 && !isLoadingUnitImages && !addImage && (\n
\n
\n

\n \n

\n

\n \n

\n {\n setAddImage(true);\n }}\n >\n \n \n
\n
\n )}\n\n {/* Image Uploader if addImage is in true */}\n {addImage && (\n {}} //Function to do after a succesfull upload\n onFailureChangeFunction={() => {}} //Function to do after a failure upload\n otherValues={{ unitId: unit.unitId }}\n inputs={[\n {\n type: 'text',\n name: 'imageName',\n label: intl.formatMessage({ id: 'common.imageName' }),\n required: true,\n initialValue: ''\n },\n {\n name: 'isDefault',\n forceinitialvalue: false,\n label: intl.formatMessage({ id: 'common.imageDefault' }),\n type: 'checkbox'\n }\n ]}\n onChangeImage={(value) => setUploadImage(value)}\n functionAfterUpload={(values) => {\n saveUnitImageAsync(values);\n }}\n closeSlidepanel={() => {\n if (addImageInitial) {\n closeSlidingPane();\n } else {\n setAddImage(false);\n }\n }}\n filesPath={'/gps/'}\n />\n )}\n \n )}\n
\n {addImage && !addImageInitial && (\n \n \n \n {\n setAddImage(false);\n }}\n >\n \n \n \n \n \n )}\n \n ) : (\n <>\n )}\n \n );\n};\nSlidingPaneUnitImages.defaultProps = {\n closeSlidingPane: () => null,\n isSlidingPaneOpen: false,\n title: '',\n unit: {},\n submitting: false,\n addImageInitial: false\n};\n\nexport default SlidingPaneUnitImages;\n","import { Fragment } from 'react';\nimport { useIntl } from 'react-intl';\nimport { useHistory } from 'react-router';\nimport { Col, Label, Row, UncontrolledTooltip } from 'reactstrap';\nimport Icon from 'utility/icomoon';\nimport DefaultSimpleButton from 'views/components/DefaultSimpleButton';\nimport { useSelector } from 'react-redux';\nimport * as authSelectors from 'redux/reducers/auth';\n/* -------------------------------------------------------------------------- */\n/* UnitFuel */\n/* -------------------------------------------------------------------------- */\nexport default function UnitFuel({ unit, sensors, authSystems }) {\n const intl = useIntl();\n const history = useHistory();\n const primary = process.env.REACT_APP_PRIMARY_COLOR;\n const sensorId = sensors[0]?.sensorId;\n const measureId = sensors[0]?.measureId;\n\n const { parsers } = useSelector((state) => {\n return {\n parsers: authSelectors.getParsers(state)\n };\n });\n\n return (\n \n {unit.deviceMetrics\n .filter((metric) => metric?.measureTypeId && metric.measureTypeId === 8)\n .map((metric, i) => {\n return (\n \n {i % 2 === 0 && i !== 0 &&
}\n \n \n\n \n \n
\n );\n })}\n
\n );\n}\n","import moment from 'moment';\nimport { Fragment, useEffect, useState } from 'react';\nimport { Thermometer } from 'react-feather';\nimport { Controller, useForm } from 'react-hook-form';\nimport { useIntl } from 'react-intl';\nimport { useSelector } from 'react-redux';\nimport { useHistory } from 'react-router';\nimport { Badge, Col, Dropdown, DropdownMenu, DropdownToggle, Label, Media, Row } from 'reactstrap';\nimport * as authSelectors from 'redux/reducers/auth';\nimport useDeepCompareEffect from 'use-deep-compare-effect';\nimport ControlChart from 'views/components/ControlChart';\nimport DefaultButton from 'views/components/DefaultButton';\nimport DefaultSimpleButton from 'views/components/DefaultSimpleButton';\nimport Table from 'views/components/Table';\nimport DateInput from 'views/formComponents/DateInput';\nimport DropdownInput from 'views/formComponents/DropdownInput';\nimport useGetUnitTemperatureHistory from '../../hooks/useGetUnitTemperatureHistory';\n\nconst columns = [\n {\n fieldName: 'systemDate',\n headerText: 'common.date',\n type: 'dateTime',\n formatColumn: 'yyyy-MM-dd HH:mm'\n },\n {\n fieldName: 'metricValue',\n type: 'number',\n formatColumn: 'N0'\n },\n {\n fieldName: 'locationName',\n headerText: 'sensors.locationName'\n },\n {\n fieldName: 'isIgnitionOn',\n headerText: 'sensors.ignition',\n type: 'boolean'\n },\n {\n fieldName: 'speedFormat',\n headerText: 'units.speed',\n metric: 'speed',\n type: 'number',\n formatColumn: 'N2'\n }\n];\n\n/* -------------------------------------------------------------------------- */\n/* UnitTemperature */\n/* -------------------------------------------------------------------------- */\nexport default function UnitTemperature({ unit, sensors }) {\n const intl = useIntl();\n const history = useHistory();\n const style = getComputedStyle(document.body);\n const primary = process.env.REACT_APP_PRIMARY_COLOR;\n const [showHistTemperature, setShowHistTemperature] = useState(false);\n const [showTable, setShowTable] = useState(false);\n const [isOpenDateRangeForm, setIsOpenDateRangeForm] = useState(false);\n const [isOpenSensorForm, setIsOpenSensorForm] = useState(false);\n const defaultValue = [\n moment().startOf('day').format('YYYY-MM-DD HH:mm'),\n moment().endOf('day').format('YYYY-MM-DD HH:mm')\n ];\n const [dateRange, setDateRange] = useState(defaultValue);\n const [sensorId, setSensorId] = useState(sensors[0]?.sensorId);\n const [measureId, setMeasureId] = useState(sensors[0]?.measureId);\n const { control: controlSensor, watch: watchSensor } = useForm();\n const { control, watch } = useForm({ defaultValues: { dateRange: defaultValue } });\n const { data, isFetching } = useGetUnitTemperatureHistory(\n showHistTemperature,\n unit?.unitId,\n sensorId,\n measureId,\n dateRange[0],\n dateRange[1]\n );\n\n const formValuesSensor = watchSensor('sensorId');\n const formValuesDateRange = watch('dateRange');\n const parsers = useSelector(authSelectors.getParsers);\n const deviceMetrics = unit.deviceMetrics.filter(\n (metric) => metric?.measureTypeId && metric.measureTypeId === 3\n );\n\n useDeepCompareEffect(() => {\n setMeasureId(sensors[0]?.measureId);\n setSensorId(sensors[0]?.sensorId);\n }, [sensors]);\n\n useEffect(() => {\n if (formValuesSensor != null) {\n setIsOpenSensorForm(false);\n setSensorId(formValuesSensor);\n setMeasureId(sensors.filter((s) => s.sensorId === formValuesSensor)[0]?.measureId);\n }\n }, [formValuesSensor]);\n\n useEffect(() => {\n if (formValuesDateRange) {\n setIsOpenDateRangeForm(false);\n setDateRange(formValuesDateRange);\n }\n }, [formValuesDateRange]);\n\n return (\n \n {!showHistTemperature ? (\n unit.deviceMetrics\n .filter((metric) => metric?.measureTypeId && metric.measureTypeId === 3)\n .map((metric, i) => (\n \n {i % 2 === 0 && i !== 0 &&
}\n \n \n\n \n \n
\n ))\n ) : (\n \n \n \n {\n if (\n !isOpenSensorForm ||\n (typeof event?.isDefaultPrevented === 'function' && !event.isDefaultPrevented())\n )\n setIsOpenSensorForm(!isOpenSensorForm);\n }}\n >\n \n \n {sensors.filter((s) => s.sensorId === sensorId)[0]?.uniqueIdentifier}\n \n \n \n
\n (\n ({\n id: s.sensorId,\n value: s.sensorId,\n label: s.uniqueIdentifier\n }))}\n />\n )}\n />\n
\n
\n \n {\n if (\n !isOpenDateRangeForm ||\n (typeof event?.isDefaultPrevented === 'function' && !event.isDefaultPrevented())\n )\n setIsOpenDateRangeForm(!isOpenDateRangeForm);\n }}\n >\n \n \n {`${dateRange[0]} - ${dateRange[1]}`}\n \n \n \n
\n (\n \n )}\n />\n
\n
\n \n {showHistTemperature && (\n {\n setShowTable(!showTable);\n }}\n />\n )}\n {\n setShowHistTemperature(!showHistTemperature);\n setShowTable(false);\n }}\n />\n
\n \n \n \n {\n history.push(\n { pathname: '/telemetry/temperature/monitor' },\n {\n unitId: unit?.unitId,\n sensorId,\n measureId,\n dateRange\n }\n );\n }}\n tooltipMessage={intl.formatMessage({ id: 'telemetry.showOnTelemetry' })}\n />\n \n \n {showTable ? (\n
\n \n c.fieldName === 'metricValue'\n ? {\n ...c,\n staticText: `${intl.formatMessage({\n id: 'units.temperature'\n })} (${deviceMetrics[0].measurementUnitName?.replace('°', '\\xB0')})`\n }\n : c\n )}\n data={data.map((d) => ({\n ...d,\n speedFormat: parsers.convertKilometersPerHourToAuthUserSpeedSystem(d.speed)\n }))}\n isFetching={isFetching}\n />\n
\n ) : (\n ({\n date: new Date(d.systemDate),\n value: d.metricValue,\n color:\n d.metricValue > sensors.filter((s) => s.sensorId === sensorId)[0]?.upperLimit ||\n d.metricValue < sensors.filter((s) => s.sensorId === sensorId)[0]?.lowerLimit\n ? '#FF4757'\n : '#1E90FF'\n }))}\n titleTooltip={intl.formatMessage({ id: 'units.temperature' })}\n metric={deviceMetrics[0].measurementUnitName?.replace('°', '\\xB0')}\n isFetching={isFetching}\n bulletRadius={0}\n upperLimit={sensors.filter((s) => s.sensorId === sensorId)[0]?.upperLimit}\n lowerLimit={sensors.filter((s) => s.sensorId === sensorId)[0]?.lowerLimit}\n max={\n sensors.filter((s) => s.sensorId === sensorId)[0]?.maxValue ??\n deviceMetrics[0].maxValue\n }\n min={\n sensors.filter((s) => s.sensorId === sensorId)[0]?.minValue ??\n deviceMetrics[0].minValue\n }\n />\n )}\n \n
\n )}\n
\n );\n}\n","import * as authSelectors from 'redux/reducers/auth';\nimport { useBoolean } from 'hooks/useBoolean';\nimport { FC, Fragment } from 'react';\nimport Icon from 'utility/icomoon';\nimport SlidingPaneManualHourmeterAdjustment from '../SlidingPaneManualHourmeterAdjustment';\nimport DefaultButton from 'views/components/DefaultButton';\nimport { useSelector } from 'react-redux';\n\nexport enum ButtonTypes {\n Icon = 1,\n Button = 2\n}\n\ninterface Props {\n unitId: number;\n size?: number;\n buttonType?: ButtonTypes;\n defaultValue?: number;\n isDisabled?: boolean;\n additionalOnSuccess?: () => void;\n}\n\nconst ManualHourmeterAdjustment: FC = ({\n size = 16,\n buttonType = ButtonTypes.Button,\n defaultValue = 0,\n isDisabled = false,\n unitId,\n additionalOnSuccess\n}) => {\n // validate permission\n const hasPermission = useSelector((store) =>\n authSelectors.getAuthUserHasPermissionsAny(store, ['OP005'])\n );\n if (!hasPermission) return <>;\n // validate permission\n\n const { value: isOpen, setTrue: open, setFalse: close } = useBoolean();\n const onClickIcon = (event) => {\n open();\n };\n\n return (\n \n {buttonType === ButtonTypes.Icon ? (\n \n ) : (\n {\n open();\n }}\n icon={'SetMaximumStopTime'}\n tooltipMessage=\"units.editOdometer\"\n isDisabled={isDisabled}\n />\n )}\n \n \n );\n};\n\nexport default ManualHourmeterAdjustment;\n","/* -------------------------------------------------------------------------- */\n/* SlidingPaneStartUnitDowntime */\n/* -------------------------------------------------------------------------- */\n// Componente que permite iniciar el estado downtime a una unidad seleccionada\n\nimport { FC, Fragment } from 'react';\nimport { Controller, useForm } from 'react-hook-form';\nimport { FormattedMessage, useIntl } from 'react-intl';\nimport SlidingPane from 'react-sliding-pane';\nimport { Button, Col, Row } from 'reactstrap';\nimport NumericalInput from '../NumericalInput';\nimport { useWebtrackServiceOnAction } from 'hooks/useWebtrackServiceOnAction';\nimport * as alerts from 'redux/utils/alerts';\nimport { updateHourmeter } from 'views/screens/Units/services';\nimport { useDispatch } from 'react-redux';\nimport * as unitActions from 'views/screens/Units/actions';\nimport { parseHoursToSeconds, parseSecondsToHours } from 'utility/Utils';\n\ninterface Props {\n close: () => void;\n isOpen: boolean;\n unitId: number;\n defaultValue?: number;\n additionalOnSuccess?: () => void;\n}\n\nconst SlidingPaneManualHourmeterAdjustment: FC = ({\n isOpen,\n close,\n defaultValue = 0,\n unitId,\n additionalOnSuccess\n}) => {\n //HOOKS\n const { control, handleSubmit, reset } = useForm<{ hourMeter: number }>();\n const intl = useIntl();\n const { handleAction } = useWebtrackServiceOnAction(updateHourmeter, {\n additionalOnSuccess: () => {\n dispatch(unitActions.startFetchingUnitsLiveStatus());\n if (typeof additionalOnSuccess === 'function') {\n additionalOnSuccess();\n }\n }\n });\n const dispatch = useDispatch();\n const onSubmit = (values: { hourMeter: number }) => {\n alerts.showConfirmationMessage({\n message: intl.formatMessage({ id: 'common.editConfirmationMessage' }),\n action: () => {\n const newHourMeter = parseHoursToSeconds(values.hourMeter);\n handleAction({ unitId, newHourmeter: newHourMeter });\n close();\n },\n actionNot: () => {\n close();\n }\n });\n };\n\n return (\n {\n close();\n }}\n >\n \n \n \n (\n \n )}\n />\n \n \n \n \n \n \n \n {\n reset();\n close();\n }}\n >\n \n \n \n \n \n \n );\n};\n\nexport default SlidingPaneManualHourmeterAdjustment;\n","import camelcaseKeys from 'camelcase-keys';\nimport { isEmpty } from 'lodash';\nimport moment from 'moment';\nimport { Fragment, useEffect, useRef, useState, useContext } from 'react';\nimport { Clock, MapPin, Menu, Settings, Terminal, User } from 'react-feather';\nimport Lightbox from 'react-image-lightbox';\nimport { useIntl, FormattedMessage } from 'react-intl';\nimport { useDispatch, useSelector } from 'react-redux';\nimport SlidingPane from 'react-sliding-pane';\nimport { Badge, Col, Label, Media, Row, Spinner, UncontrolledTooltip } from 'reactstrap';\nimport Icon from 'utility/icomoon';\nimport AppCollapse from 'views/components/Collapse';\nimport DefaultButton from 'views/components/DefaultButton';\nimport Toolbar from 'views/components/Toolbar';\nimport SlidingPaneForm from 'views/formComponents/SlidingPaneForm';\nimport { getUnitDeviceActionParametersService } from 'views/screens/Units/services';\nimport Avatar from '../../../../../@core/components/avatar';\nimport * as alerts from '../../../../../redux/utils/alerts';\nimport MediaGallery from '../../../../components/MediaGallery';\n\nimport * as unitActions from '../../actions';\nimport * as unitSelectors from '../../reducers';\nimport { UNIT_FETCH_INTERVAL } from '../../types';\nimport { getUnitActionIcon } from '../../utils';\nimport SlidingPaneUnitHistoricalPositionsReport from '../SlidingPaneUnitHistoricalPositionsReport';\nimport SlidingPaneUnitHistoricalScriptsReport from '../SlidingPaneUnitHistoricalScriptsReport';\nimport SlidingPaneStartUnitDowntime from 'views/formComponents/SlidingPaneStartUnitDowntime';\nimport SlidingPaneShareUnitLocation from '../SlidingPaneShareUnitLocation';\nimport SlidingPaneDowntimeBinnacle from 'views/formComponents/SlidingPaneDowntimeBinnacle';\nimport SlidingPanePreviewDriverImages from 'views/formComponents/SlidingPanePreviewDriverImages';\nimport SlidingPaneUnitImages from '../SlidingPaneUnitImages';\nimport UnitFuel from '../UnitFuel';\nimport UnitTemperature from '../UnitTemperature';\nimport unitPermissions from '../../permissions';\nimport DefaultSimpleButton from 'views/components/DefaultSimpleButton';\nimport * as authSelectors from '../../../../../redux/reducers/auth';\nimport { MainStateType, GetMainStateStyle, GetMainStateById } from 'views/screens/Units/utils';\nimport ManualOdometerAdjustment, {\n ButtonTypes\n} from 'views/formComponents/ManualOdometerAdjustment';\nimport { isNotNaNOrNullable } from 'utility/Utils';\nimport ManualHourmeterAdjustment from 'views/formComponents/ManualHourmeterAdjustment';\nimport { Metrics, searchUseMetric } from 'views/screens/Telemetry/utils';\n\n/* -------------------------------------------------------------------------- */\n/* SlidingPaneUnitInformation */\n/* -------------------------------------------------------------------------- */\nexport default function SlidingPaneUnitInformation({\n closeSlidingPane,\n isSlidingPaneOpen,\n showHistoricalPositions,\n setMapPositionToPositionsBounds = false,\n changeSetMapPositionToUnitsBounds,\n title = '',\n selectedUnit,\n setSelectedUnit,\n selectedUnitRef,\n unitId\n}) {\n const intl = useIntl();\n const dispatch = useDispatch();\n const style = getComputedStyle(document.body);\n const primary = process.env.REACT_APP_PRIMARY_COLOR;\n const fetchInformationInterval = useRef();\n const latitudeRef = useRef();\n const [showAddImageSlidingPane, setShowAddImageSlidingPane] = useState(false);\n const [showHistPositionsReportSlidingPane, setShowHistPositionsReportSlidingPane] =\n useState(false);\n const [downtimeBinnacleSlideOpen, openDowntimeBinnacleSlide] = useState(false);\n const [showShareUnitLocationSlidingPane, setShowShareUnitLocationSlidingPane] = useState(false);\n const [showHistScriptsReportSlidingPane, setShowHistScriptsReportSlidingPane] = useState(false);\n const [showChangeStatusSlidingPane, setShowChangeStatusPane] = useState(false);\n const [showUnitImagesSlidingPane, setShowUnitImagesSlidingPane] = useState(false);\n const [previewDriverImagesSlideOpen, openPreviewDriverImagesSlide] = useState(false);\n const [isOpenSlidingPaneForm, setOpenSlidingPaneForm] = useState(false);\n const [isLightboxOpen, setIsLightboxOpen] = useState(false);\n const [slidingPaneProps, setSlidingPaneProps] = useState({ inputs: [] });\n\n const {\n unit,\n isFetching,\n isAcknowledgeUnitEvent,\n isEditingDowntime,\n store,\n authSystems,\n userPermissions\n } = useSelector((state) => {\n const unit = unitSelectors.getUnit(state, unitId);\n return {\n unit: unitId\n ? {\n ...unit,\n intlLastEvent: intl.formatMessage({ id: `organizations.event${unit?.eventId ?? 0}` })\n }\n : undefined,\n isFetching: unitSelectors.isFetchingUnitInformation(state),\n isAcknowledgeUnitEvent: unitSelectors.isAcknowledgeUnitEvent(state),\n isEditingDowntime: unitSelectors.isEditingUnitDowntime(state),\n store: state,\n authSystems: authSelectors.getAuthSystems(state),\n userPermissions: authSelectors.getAuthUserPermissions(state)\n };\n });\n\n const permissionState = {\n ViewMetricsMonitor: 'TU001',\n showACCState: userPermissions.includes('TU002'),\n showAppVersion: userPermissions.includes('TU008'),\n showBackupBattery: userPermissions.includes('TU009'),\n showBattery: userPermissions.includes('TU010'),\n showCellNumber: userPermissions.includes('TU011'),\n showCoverTamperState: userPermissions.includes('TU012'),\n showDoorState: userPermissions.includes('TU013'),\n showICCID: userPermissions.includes('TU017'),\n showIsCharging: userPermissions.includes('TU018'),\n showMainVoltage: userPermissions.includes('TU019'),\n showMCC: userPermissions.includes('TU020'),\n showMNC: userPermissions.includes('TU021'),\n showPadlockAuthorizationType: userPermissions.includes('TU023'),\n showPadlockState: userPermissions.includes('TU024'),\n showPLMN: userPermissions.includes('TU025'),\n showSatellites: userPermissions.includes('TU026'),\n showTrailerID: userPermissions.includes('TU028'),\n showDriverID: userPermissions.includes('TU029')\n };\n\n const indicators = [\n {\n title: 'organizations.event2',\n currentStatus: searchUseMetric(unit.metricsMask, Metrics.Battery.BitNumber)\n ? unit?.battery ?? ''\n : '--',\n metric: unit?.battery ? '%' : '',\n icon: 'Battery',\n field: 'Battery',\n useInActive: true,\n useInPeople: true,\n hidden: !permissionState.showBattery\n },\n {\n title: 'metric.mainVoltage',\n currentStatus: searchUseMetric(unit.metricsMask, Metrics.MainVoltage.BitNumber)\n ? unit?.mainVoltage ?? ''\n : '--',\n metric: 'volt',\n icon: 'Lightning',\n sizeIcon: 30,\n field: 'MainVoltage',\n useInVehicles: true,\n hidden: !permissionState.showMainVoltage\n },\n {\n title: 'metric.isCharging',\n currentStatus: searchUseMetric(unit.metricsMask, Metrics.IsCharging.BitNumber)\n ? intl.formatMessage({ id: unit?.isCharging ? 'common.yes' : 'common.no' })\n : '--',\n metric: '',\n icon: 'Alert-350',\n field: 'IsCharging',\n customChartTooltip: 'bool',\n useInActive: true,\n isSelectable: false,\n hidden: !permissionState.showIsCharging\n },\n {\n title: 'metric.BB',\n currentStatus: searchUseMetric(unit.metricsMask, Metrics.BackupBattery.BitNumber)\n ? unit?.backupBattery ?? ''\n : '--',\n metric: unit?.backupBattery ? 'volt' : '',\n icon: 'backupEnergy',\n field: 'BackupBattery',\n useInActive: true,\n useInVehicles: true,\n hidden: !permissionState.showBackupBattery\n },\n {\n title: 'metric.DS',\n currentStatus: searchUseMetric(unit.metricsMask, Metrics.DoorState.BitNumber)\n ? intl.formatMessage({ id: unit?.doorState ? 'common.yes' : 'common.no' })\n : '--',\n metric: '',\n icon: 'OpenDoor',\n field: 'DoorState',\n useInActive: true,\n useInVehicles: true,\n isSelectable: false,\n hidden: !permissionState.showDoorState\n },\n {\n title: 'metric.CTS',\n currentStatus: searchUseMetric(unit.metricsMask, Metrics.CoverTamperState.BitNumber)\n ? intl.formatMessage({\n id: unit?.coverTamperState ? 'common.yes' : 'common.no'\n })\n : '--',\n metric: '',\n field: 'CoverTamperState',\n useInActive: true,\n isSelectable: false,\n hidden: !permissionState.showCoverTamperState\n },\n {\n title: 'metric.PLS',\n currentStatus: searchUseMetric(unit.metricsMask, Metrics.PadlockState.BitNumber)\n ? intl.formatMessage({\n id: unit?.padlockState ? 'trackingUnits.sat.open' : 'trackingUnits.sat.closed'\n })\n : '--',\n metric: '',\n field: 'PadlockState',\n useInActive: true,\n isSelectable: false,\n hidden: !permissionState.showPadlockState\n },\n {\n title: 'metric.PLA',\n currentStatus: searchUseMetric(unit.metricsMask, Metrics.PadlockAuthorizationType.BitNumber)\n ? intl.formatMessage({\n id: unit?.padlockAuthorizationType ? 'common.yes' : 'common.no'\n })\n : '--',\n metric: '',\n field: 'PadlockAuthorizationType',\n useInActive: true,\n isSelectable: false,\n hidden: !permissionState.showPadlockAuthorizationType\n },\n {\n title: 'metric.SAT',\n currentStatus: searchUseMetric(unit.metricsMask, Metrics.Satellites.BitNumber)\n ? unit?.satellites ?? ''\n : '--',\n metric: '',\n icon: 'satellite',\n field: 'Satellites',\n useInActive: true,\n useInVehicles: true,\n linealChart: true,\n hidden: !permissionState.showSatellites\n },\n {\n title: 'metric.abrev.plmn',\n currentStatus: searchUseMetric(unit.metricsMask, Metrics.PLMN.BitNumber)\n ? unit?.plmn ?? ''\n : '--',\n metric: '',\n field: 'PLMN',\n useInActive: true,\n useInVehicles: true,\n hidden: !unit?.plmn || !permissionState.showPLMN\n },\n {\n title: 'metric.abrev.mcc',\n currentStatus: searchUseMetric(unit.metricsMask, Metrics.MCC.BitNumber)\n ? unit?.mcc ?? ''\n : '--',\n metric: '',\n field: 'MCC',\n useInActive: true,\n useInVehicles: true,\n isSelectable: false,\n hidden: !unit?.mcc || !permissionState.showMCC\n },\n {\n title: 'metric.abrev.mnc',\n currentStatus: searchUseMetric(unit.metricsMask, Metrics.MNC.BitNumber)\n ? unit?.mnc ?? ''\n : '--',\n metric: '',\n field: 'MNC',\n useInActive: true,\n useInVehicles: true,\n isSelectable: false,\n hidden: !unit?.mnc || !permissionState.showMNC\n },\n {\n title: 'metric.CN',\n currentStatus: searchUseMetric(unit.metricsMask, Metrics.CellNumber.BitNumber)\n ? unit?.cellNumber ?? ''\n : '--',\n metric: '',\n icon: 'cellular-signal',\n field: 'CellNumber',\n useInActive: true,\n useInVehicles: true,\n hidden: !permissionState.showCellNumber\n },\n {\n title: 'metric.abrev.ICC',\n currentStatus: searchUseMetric(unit.metricsMask, Metrics.ICCID.BitNumber)\n ? unit?.iccid ?? ''\n : '--',\n metric: '',\n field: 'ICCID',\n isSelectable: false,\n useInActive: true,\n useInVehicles: true,\n hidden: !unit?.iccid || !permissionState.showICCID\n },\n /* indicadores de vehiculos */\n {\n title: 'metric.DI',\n currentStatus: searchUseMetric(unit.metricsMask, Metrics.DriverId.BitNumber)\n ? unit?.driverId ?? ''\n : '--',\n metric: '',\n field: 'DriverId',\n isSelectable: false,\n useInActive: false,\n useInVehicles: true,\n hidden: !unit?.driverId || !permissionState.showDriverID\n },\n {\n title: 'metric.TID',\n currentStatus: searchUseMetric(unit.metricsMask, Metrics.TrailerID.BitNumber)\n ? unit?.trailerId ?? ''\n : '--',\n metric: '',\n field: 'TrailerId',\n isSelectable: false,\n useInActive: false,\n useInVehicles: true,\n hidden: !unit?.trailerId || !permissionState.showTrailerID\n },\n {\n title: 'AppVersion',\n currentStatus: searchUseMetric(unit.metricsMask, Metrics.AppVersion.BitNumber)\n ? unit?.appVersion ?? ''\n : '--',\n metric: '',\n field: 'AppVersion',\n isSelectable: false,\n useInPeople: true,\n hidden: !permissionState.showAppVersion\n }\n ];\n\n const availableIndicators =\n unit?.unitTypeId === 2\n ? indicators.filter((indicator) => !indicator?.hidden && indicator.useInActive === true)\n : unit?.unitTypeId === 1\n ? indicators.filter((indicator) => !indicator?.hidden && indicator.useInVehicles === true)\n : unit?.unitTypeId === 0\n ? indicators.filter((indicator) => !indicator?.hidden && indicator.useInPeople === true)\n : [];\n\n /* \n useEffect(() => {\n if (unit) unitContext.changeUnitState({ ...unit, isSelected: true });\n }, [isSlidingPaneOpen]); */\n\n const cleanup = () => {\n if (fetchInformationInterval.current) clearInterval(fetchInformationInterval.current);\n };\n const [showAllButtonsRightToolbar, setShowAllButtonsRightToolbar] = useState(false);\n\n useEffect(() => {\n return () => cleanup();\n }, []);\n\n useEffect(() => {\n cleanup();\n if (isSlidingPaneOpen && unit?.unitId && isEditingDowntime === false) {\n dispatch(unitActions.startFetchingUnitInformation(unit?.unitId));\n fetchInformationInterval.current = setInterval(() => {\n dispatch(unitActions.startFetchingUnitInformation(unit?.unitId));\n }, UNIT_FETCH_INTERVAL);\n }\n }, [isSlidingPaneOpen, unit?.unitId, isEditingDowntime]);\n\n const copyLatLong = (latitude, longitude) => {\n navigator.clipboard.writeText(`${latitude.toFixed(6)},${longitude.toFixed(6)}`);\n\n alerts.showSuccessMessage({\n success: intl.formatMessage({ id: 'common.copyClipboardSuccessfully' })\n });\n };\n\n const doAction = (unit, action) => {\n if (action.requireUserConfirmation) {\n alerts.showConfirmationMessage({\n message: intl.formatMessage(\n { id: 'units.userConfirmationMessage' },\n {\n unit: unit.unitName,\n action: intl.formatMessage({\n id: 'units.deviceActionId.' + action.deviceActionId\n })\n }\n ),\n action() {\n dispatch(unitActions.executeDeviceAction(unit.unitId, action.deviceActionId));\n }\n });\n } else {\n if (action.requireParameters) {\n getUnitDeviceActionParametersService({\n unitId: unit.unitId,\n deviceActionId: action.deviceActionId\n }).then((response) => {\n if (response.success) {\n setSlidingPaneProps({\n title: intl.formatMessage({\n id: 'units.deviceActionId.' + action.deviceActionId\n }),\n width: '40rem',\n inputs: response.data.map((result) => {\n const param = camelcaseKeys(result);\n return {\n type: param.inputType,\n name: 'input-' + param.deviceActionParameterId,\n initialValue: param.inputValue,\n required: param.isRequired,\n label: param.parameterName,\n placeholder: param.parameterComments,\n appendcomponent: param.measurementUnitName,\n min: param.minValue != null ? param.minValue : undefined,\n max: param.maxValue != null ? param.maxValue : undefined\n };\n }),\n action: (values) =>\n dispatch(\n unitActions.executeDeviceAction(\n unit.unitId,\n action.deviceActionId,\n response.data\n .map((result) => {\n const param = camelcaseKeys(result);\n return (\n param.deviceActionParameterId +\n '~' +\n values['input-' + param.deviceActionParameterId]\n );\n })\n .join('^')\n )\n )\n });\n setOpenSlidingPaneForm(true);\n }\n });\n } else dispatch(unitActions.executeDeviceAction(unit.unitId, action.deviceActionId));\n }\n };\n\n return (\n <>\n \n {!isFetching && (unit?.images?.length ?? 0) > 0 && (\n ({\n ...image,\n fullImageUrl: image?.imageUrl\n })) ?? []\n }\n autoplay={{\n delay: 5000,\n disableOnInteraction: false,\n pauseOnMouseEnter: true\n }}\n navigation={true}\n pagination={true}\n className={'default-width-image'}\n classNameImg={'img-contain-nowidth'}\n />\n )}\n {/* Toolbar for unit information */}\n {unit?.latitude != null && unit?.longitude != null && (\n <>\n \n \n
\n \n \n
\n \n \n {\n showAllButtonsRightToolbar\n ? setShowAllButtonsRightToolbar(false)\n : setShowAllButtonsRightToolbar(true);\n }}\n tooltipMessage={intl.formatMessage({\n id: showAllButtonsRightToolbar\n ? 'common.hideAllButtons'\n : 'common.showAllButtons'\n })}\n />,\n {\n openDowntimeBinnacleSlide(true);\n }}\n tooltipMessage={intl.formatMessage({ id: 'trackingUnits.downtimeBinnacle' })}\n visible={showAllButtonsRightToolbar}\n />,\n {\n setShowHistScriptsReportSlidingPane(true);\n }}\n tooltipMessage={intl.formatMessage({\n id: 'units.showHistoricalScriptsReport'\n })}\n visible={showAllButtonsRightToolbar}\n />,\n {\n setShowAddImageSlidingPane(true);\n setShowUnitImagesSlidingPane(true);\n }}\n tooltipMessage={intl.formatMessage({ id: 'units.addImage' })}\n visible={showAllButtonsRightToolbar}\n />,\n {\n setShowAddImageSlidingPane(false);\n setShowUnitImagesSlidingPane(true);\n }}\n tooltipMessage={intl.formatMessage({ id: 'units.editImages' })}\n visible={showAllButtonsRightToolbar}\n />,\n {\n setShowShareUnitLocationSlidingPane(true);\n }}\n tooltipMessage={intl.formatMessage({ id: 'units.shareLocation' })}\n />,\n {\n setShowHistPositionsReportSlidingPane(true);\n }}\n tooltipMessage={intl.formatMessage({\n id: 'units.showHistoricalPositionsReport'\n })}\n />\n ]}\n />\n \n
\n\n {/* unit information */}\n
\n {unit?.driverId && (\n <>\n \n \n setIsLightboxOpen(true)}\n />\n
\n \n {unit?.driverPhoneNumber &&\n `${intl.formatMessage({ id: 'units.phone' })}: ${unit?.driverPhoneNumber}`}\n
\n
\n {(unit?.driverTotalFiles ?? 0) > 0 && (\n <>\n \n {intl.formatMessage({ id: 'drivers.seeAttachedImages' })}\n \n openPreviewDriverImagesSlide(true)}\n />\n \n )}\n
\n
\n
\n \n )}\n \n\n \n
\n\n \n {unit?.latitude != null && unit?.longitude != null && (\n \n \n {intl.formatMessage({ id: 'common.clickCopyClipboard' })}\n \n {\n copyLatLong(unit?.latitude, unit?.longitude);\n }}\n >\n \n \n \n \n )}\n {unit?.latitude != null && unit?.longitude != null && (\n \n \n {intl.formatMessage({ id: 'common.clickCopyClipboard' })}\n \n {\n copyLatLong(unit?.latitude, unit?.longitude);\n }}\n >\n \n \n \n \n )}\n
\n
\n\n \n \n \n {isEditingDowntime === true || isFetching === true ? (\n \n \n \n \n \n ) : (\n <>\n \n {unit.mainStateName}\n \n {authSelectors.getAuthUserHasPermissionsAny(store, [\n unitPermissions.downtime\n ]) &&\n (unit.downtimeReasonId === null || unit.downtimeReasonId === undefined) && (\n <>\n \n {intl.formatMessage({ id: 'units.startDowntime' })}\n \n setShowChangeStatusPane(true)}\n />\n \n )}\n {authSelectors.getAuthUserHasPermissionsAny(store, [\n unitPermissions.downtime\n ]) &&\n unit.downtimeReasonId !== undefined &&\n unit.downtimeReasonId !== null && (\n <>\n \n {intl.formatMessage({ id: 'units.endDowntime' })}\n \n dispatch(unitActions.startEndDowntimeUnit(unit?.unitId))}\n />\n \n )}\n \n )}\n \n \n \n {unit.eventId != undefined ? (\n isAcknowledgeUnitEvent ? (\n \n \n \n \n \n ) : (\n \n {unit?.intlLastEvent?.length >= 15 && (\n \n \n \n )}\n \n {unit.eventName || unit.eventId\n ? `${\n unit?.intlLastEvent.length >= 15\n ? unit?.intlLastEvent?.substring(0, 15) + '...'\n : unit.eventId != null\n ? unit?.intlLastEvent\n : ''\n }`\n : ''}\n \n {unit.eventId !== 0 && (\n {\n dispatch(unitActions.startAcknowledgeUnitEvent(unit.unitId));\n }}\n />\n )}\n \n )\n ) : null}\n \n \n
\n \n \n \n \n \n \n \n \n \n \n
\n \n \n \n \n \n \n \n \n \n \n
\n \n \n