{"version":3,"sources":["components/Cards/Attends/attendsCard.module.scss","components/Middle/Contacts/contactForm.module.scss","components/Middle/Clients/Trackers/inNumbers.module.scss","components/Modal/modalZoneInfo.module.scss","components/Header/headerDomain.module.scss","components/Middle/Reports/Companies/reportCompanyDetails.module.scss","components/Middle/Clients/Trackers/tracker.module.scss","components/Cards/customCardHOC.module.scss","components/Common/audioMenu.module.scss","components/Middle/Attends/ClosedComponents/attendHeader.module.scss","components/Middle/Attends/OpenComponents/extensionCaller.module.scss","components/Modal/modalDeleteCompany.module.scss","components/Common/errorComponent.module.scss","components/Chat/rocketChat.module.scss","components/Middle/Attends/ClosedComponents/attendInformation.module.scss","components/Common/softphoneKeyboard.module.scss","components/Modal/modalClientFilter.module.scss","components/Middle/Attends/ClosedComponents/attendComments.module.scss","components/Middle/Clients/Trackers/programming.module.scss","components/Middle/Attends/OpenComponents/attendCallType.module.scss","components/Middle/User/userForm.module.scss","components/Button/formButton.module.scss","components/Modal/modalAttendFilter.module.scss","components/Middle/Attends/attendOpen.module.scss","components/Middle/Dashboard/OpenAttends/openAttends.module.scss","components/Modal/customModal.module.scss","components/Middle/Attends/ClosedComponents/attendContacted.module.scss","components/Middle/Clients/clientPage.module.scss","components/Middle/Attends/ClosedComponents/attendReminders.module.scss","components/Middle/Attends/OpenComponents/attendMap.module.scss","components/Middle/Reports/Attend/reportAttend.module.scss","components/Header/headerActions.module.scss","components/Header/Trial/trial.module.scss","components/Middle/Dashboard/ClosedAttends/closedAttends.module.scss","components/Cards/Alarms/alarmsCard.module.scss","components/Middle/Dashboard/dashboard.module.scss","components/Middle/Clients/clientDetail.module.scss","components/Middle/Attends/accordion.module.scss","components/Middle/Attends/OpenComponents/attendWarningMessage.module.scss","components/Modal/Reminders/reminderModal.module.scss","components/Middle/Clients/History/history.module.scss","components/Middle/Manage/management.module.scss","css/form.module.scss","components/Error/errorBoundary.module.scss","components/Modal/modalConfirm.module.scss","components/Tooltips/tooltipContainer.module.scss","components/Middle/Attends/OpenComponents/Header/attendHeader.module.scss","components/Modal/modalConfirmRemove.module.scss","components/Middle/Attends/ClosedComponents/attendAudioInformation.module.scss","components/Middle/Attends/OpenComponents/attendComment.module.scss","components/Middle/Manage/Companies/companyForm.module.scss","components/Middle/Configuration/configuration.module.scss","components/Middle/Attends/attendsPage.module.scss","components/Middle/Contacts/contactPage.module.scss","components/Middle/Transmitters/transmitterPage.module.scss","components/Sidebar/sidebar.module.scss","components/Middle/Reports/Alarm/reportAlarm.module.scss","components/Middle/Reports/reportPage.module.scss","components/Middle/Reports/Attendant/reportAttendant.module.scss","components/Middle/Transmitters/transmitterForm.module.scss","components/Middle/Attends/ClosedComponents/attendSolvedBy.module.scss","components/Map/mapComponent.module.scss","components/Modal/modalPasswordChange.module.scss","components/Middle/Reports/reportButtonComponent.module.scss","components/Middle/Clients/Trackers/geofence.module.scss","store/configureStore.js","css/detail.module.scss","components/Middle/Manage/internetOfThings/iotDeviceList.module.scss","components/Middle/Attends/OpenComponents/attendClientComponent.module.scss","components/Middle/Reports/Companies/reportClientByCompany.module.scss","components/Middle/Reports/Client/reportLengthOfStay.module.scss","components/Middle/Clients/Form/clientForm.module.scss","components/Modal/modalReturnCall.module.scss","components/Middle/Clients/Trackers/alarmClock.module.scss","components/Modal/modalReminderNote.module.scss","actions/actionTypes.js","components/Middle/Manage/managementMenu.module.scss","components/Middle/Manage/AtaList/ataDeviceList.module.scss","components/Middle/Attends/OpenComponents/attendExtensionCall.module.scss","components/Middle/Manage/ClientLocation/clientLocation.module.scss","components/Middle/Manage/Alarms/alarmManagement.module.scss","components/Header/header.module.scss","components/Middle/Manage/OnlineAttendants/onlinePage.module.scss","pushstream/pushstream.js","components/Middle/Reports/reportComponent.module.scss","components/Middle/Manage/Companies/companiesManagement.module.scss","components/Cards/card.module.scss","components/Middle/Reports/Client/reportClientMonthlyFollowup.module.scss","components/Error/GlobalErrorBoundaryComponent.jsx","components/Hooks/usePageReloadDetection.js","icons/ArrowDown.jsx","components/Header/HeaderUser.jsx","components/Header/HeaderSipStatus.jsx","actions/errorsActions.js","globals/globals.js","BLL/environment.js","actions/authActions.js","icons/Order.jsx","components/Header/HeaderDomain.jsx","components/Button/FormButton.jsx","components/Modal/ModalConfirm.jsx","components/Header/HeaderActions.jsx","components/Header/Trial/Trial.jsx","components/Header/Header.jsx","icons/TecnoLogoNew.jsx","icons/Vidapoint-logo.jsx","icons/Vidapoint-text.jsx","icons/BunzlWhite1.png","components/Sidebar/SidebarV2.jsx","actions/userStatusActions.js","actions/attendsActions.js","components/Common/CallButtonV2.jsx","icons/alarms/AlarmiHelpEmergency.jsx","icons/alarms/AlarmEmerConsIco.jsx","icons/alarms/AlarmGeo1InIco.jsx","icons/alarms/AlarmGeo1OutIco.jsx","icons/alarms/AlarmGeo2InIco.jsx","icons/alarms/AlarmGeo2OutIco.jsx","icons/alarms/AlarmGeo3InIco.jsx","icons/alarms/AlarmGeo3OutIco.jsx","icons/alarms/AlarmGeo4InIco.jsx","icons/alarms/AlarmGeo4OutIco.jsx","icons/alarms/AlarmChargeDeviceIco.jsx","icons/alarms/AlarmLostMed1Ico.jsx","icons/alarms/AlarmLostMed2Ico.jsx","icons/alarms/AlarmLostMed3Ico.jsx","icons/alarms/AlarmEmerSensIco.jsx","icons/alarms/AlarmInactIco.jsx","icons/alarms/AlarmFireIcon.jsx","icons/alarms/AlarmHighTemp.jsx","icons/alarms/AlarmLowTemp.jsx","icons/alarms/AlarmCO2Ico.jsx","icons/alarms/AlarmLostFireIco.jsx","icons/alarms/AlarmEnergyIco.jsx","icons/alarms/AlarmBatConIcon.jsx","icons/alarms/AlarmExpReminderIco.jsx","icons/alarms/AlarmAwayIco.jsx","icons/alarms/AlarmAtHomeIco.jsx","icons/alarms/AlarmLostSensorIco.jsx","icons/alarms/AlarmCancelIcon.jsx","icons/alarms/AlarmAutoTestOkIco.jsx","icons/alarms/AlarmVoiceReqIco.jsx","icons/alarms/AlarmAutoTestFailIco.jsx","icons/alarms/AlarmLowBatSensIco.jsx","icons/alarms/AlarmMovementIco.jsx","icons/alarms/AlarmTiltIco.jsx","icons/AlarmIcon.jsx","BLL/locale/messagesAlarms.js","BLL/locale/messages.js","BLL/locale/messagesMonths.js","BLL/locale/messagesLogs.js","BLL/dictionary.js","BLL/locale/messagesMonthsAbrv.js","BLL/general.js","components/Cards/Attends/AttendsOpenCard.jsx","BLL/globals.js","icons/Arrow.jsx","components/Cards/CustomCardHOC.jsx","components/Middle/Dashboard/OpenAttends/OpenAttends.jsx","components/Cards/Attends/AttendsClosedCard.jsx","components/Middle/Dashboard/ClosedAttends/ClosedAttends.jsx","icons/Loading.jsx","components/Cards/Alarms/AlarmsCard.jsx","components/Charts/CustomChart.jsx","components/Charts/AttendByDayChart.jsx","components/Charts/CustomChart2.jsx","components/Charts/ClientTotalMonthlyChart.jsx","components/Middle/Dashboard/DashboardPage.jsx","components/Common/Paginate.jsx","BLL/locale/messagesBroadcast.js","components/Middle/Clients/ClientPageTableHeader.jsx","components/Middle/Clients/ClientPageMobileTableHeader.jsx","components/Middle/Clients/ClientPageButtonComponent.jsx","components/Middle/Clients/ClientFilter.jsx","icons/Edit.jsx","components/Middle/Clients/ClientRow.jsx","components/Middle/Clients/ClientMobileRow.jsx","components/Modal/ModalClientFilter.jsx","components/Hooks/useLocationQuery.js","components/Common/ToggleButton.jsx","actions/clientsActions.js","components/Middle/Clients/ClientPage.jsx","BLL/format.js","icons/Speak.jsx","icons/Listen.jsx","icons/TwoWayAudio.jsx","components/Common/AudioMenu.jsx","components/Modal/ModalReturnCall.jsx","BLL/locale/messagesCountries.js","icons/FemaleIcon.jsx","icons/MaleIcon.jsx","icons/TransexIcon.jsx","components/Middle/Clients/ClientDetail.jsx","BLL/validate.js","components/Common/InputContainer.jsx","components/Common/SelectInput.jsx","components/Common/CheckboxInput.jsx","components/Common/ErrorComponent.jsx","components/Middle/Clients/Form/ClientInfoForm.jsx","components/Middle/Clients/Form/SecondaryActionsForm.jsx","components/Middle/Clients/ClientValidations.jsx","components/Middle/Clients/Form/ClientActions.jsx","components/Middle/Clients/Form/ClientReducer.jsx","components/Middle/Clients/Form/ClientForm.jsx","components/Common/SelectInput2.jsx","components/Middle/Clients/Trackers/TrackeriHelpProgram.jsx","BLL/config.js","components/Middle/Clients/Trackers/TrackeriHelpGeofence.jsx","components/Tooltips/TooltipContainer.jsx","components/Middle/Clients/Trackers/TrackeriHelpInNumbers.jsx","components/Middle/Clients/Trackers/TrackeriHelpMedications.jsx","icons/trackerIcons.js","BLL/locale/messagesIHelpEventTypes.js","components/Middle/Clients/Trackers/TrackerMapPoint.jsx","components/Common/CustomDatePickerInput.jsx","components/Middle/Clients/Trackers/TrackerHistoryMenu.jsx","components/Modal/CustomModal.jsx","components/Middle/Clients/Trackers/TrackeriHelp.jsx","components/Middle/Clients/Trackers/TrackerIGOProgram.jsx","components/Middle/Clients/Trackers/TrackerIGO.jsx","components/Middle/Clients/Trackers/TrackerClimax.jsx","components/Middle/Clients/Trackers/TrackerEv07bProgram.jsx","components/Middle/Clients/Trackers/TrackerEv07bGeofence.jsx","components/Middle/Clients/Trackers/TrackerEv07bAlarmClock.jsx","components/Middle/Clients/Trackers/TrackerEv07b.jsx","components/Middle/Clients/History/ClientChangedRow.jsx","components/Middle/Clients/History/ClientComponent.jsx","components/Middle/Clients/History/ContactChangedRow.jsx","components/Middle/Clients/History/ContactsComponent.jsx","components/Middle/Clients/History/TransmitterChangedRow.jsx","components/Middle/Clients/History/TransmittersComponent.jsx","components/Middle/Clients/History/SecondaryChangedRow.jsx","components/Middle/Clients/History/SecondaryComponent.jsx","icons/User.jsx","components/Middle/Clients/History/HistoryComponent.jsx","components/Middle/Contacts/ContactRow.jsx","components/Middle/Contacts/ContactMobileRow.jsx","components/Modal/ModalConfirmRemove.jsx","actions/contactsActions.js","components/Middle/Contacts/ContactPage.jsx","components/Middle/Contacts/ContactDetail.jsx","components/Common/TextInputV2.jsx","icons/Delete.jsx","BLL/locale/countryCodes.js","components/Middle/Contacts/ContactPhone.jsx","BLL/locale/messagesRelationships.js","components/Middle/Contacts/ContactForm.jsx","components/Middle/Transmitters/TransmitterRow.jsx","components/Middle/Transmitters/TransmitterMobileRow.jsx","actions/transmittersActions.js","components/Middle/Transmitters/TransmitterPage.jsx","components/Middle/Transmitters/TransmitterComponent.jsx","components/Middle/Transmitters/TransmitterDetail.jsx","components/Middle/Transmitters/TransmitterForm.jsx","icons/Audio.jsx","icons/PriorityIcon.jsx","components/Middle/Attends/AttendRow.jsx","BLL/locale/messagesTags.js","components/Modal/ModalAttendFilter.jsx","components/Middle/Attends/AttendsPage.jsx","icons/MobileDeviceIcon.jsx","icons/HomeDeviceIcon.jsx","components/Middle/Attends/ClosedComponents/AttendHeader.jsx","components/Middle/Attends/ClosedComponents/AttendSolvedBy.jsx","components/Middle/Attends/ClosedComponents/AttendContacted.jsx","components/Middle/Attends/ClosedComponents/AttendInformation.jsx","components/Middle/Attends/ClosedComponents/AttendComments.jsx","components/Middle/Attends/ClosedComponents/AttendReminders.jsx","components/Middle/Attends/OpenComponents/AttendClientComponent.jsx","components/Middle/Attends/OpenComponents/AttendDetail.jsx","components/Map/MapComponentV2.jsx","components/Middle/Attends/OpenComponents/AttendMap.jsx","components/Middle/Attends/ClosedComponents/AttendAudioInformation.jsx","components/Middle/Attends/Accordion.jsx","components/Modal/ModalDraggable.jsx","components/Common/SoftphoneKeyboard.jsx","components/Middle/Attends/OpenComponents/ExtensionCaller.jsx","components/Error/ComponentFailedErrorBoundary.jsx","components/Middle/Attends/OpenComponents/AttendExtensionCall.jsx","components/Middle/Attends/AttendClosed.jsx","BLL/warningTimer.js","components/Middle/Attends/OpenComponents/AttendWarningMessages.jsx","components/Middle/Attends/OpenComponents/Header/ClientInfo.jsx","components/Middle/Attends/OpenComponents/Header/CallClock.jsx","components/Middle/Attends/OpenComponents/Header/AlexaStateComponent.jsx","components/Middle/Attends/OpenComponents/Header/CallControls.jsx","components/Middle/Attends/OpenComponents/Header/AttendHeader.jsx","components/Middle/Attends/OpenComponents/AttendContacts.jsx","components/Middle/Attends/OpenComponents/AttendAttendants.jsx","components/Middle/Attends/OpenComponents/AttendCallType.jsx","components/Middle/Attends/OpenComponents/AttendComment.jsx","components/Modal/ModalReminderNote.jsx","BLL/callTimer.js","BLL/callStopwatch.js","actions/reminderActions.js","components/Middle/Attends/AttendOpen.jsx","icons/Restore.jsx","components/Middle/Manage/Attendants/AttendantRow.jsx","components/Middle/Manage/Attendants/AttendantMobileRow.jsx","components/Middle/Manage/ManagementMenu.jsx","actions/attendantsActions.js","components/Middle/Manage/Attendants/AttendantManagement.jsx","components/Middle/Manage/Alarms/AlarmRow.jsx","actions/alarmsActions.js","components/Middle/Manage/Alarms/AlarmManagement.jsx","components/Modal/ModalDeleteCompany.jsx","components/Middle/Manage/Companies/CompanyUserRow.jsx","components/Middle/Manage/Companies/CompanyRow.jsx","actions/groupsActions.js","components/Middle/Manage/Companies/CompanyPage.jsx","components/Middle/Manage/OnlineAttendants/OnlineQueries.js","components/Middle/Manage/OnlineAttendants/OnlineHooks.js","components/Middle/Manage/OnlineAttendants/OnlinePage.jsx","components/Middle/Manage/internetOfThings/TrackerData.jsx","components/Middle/Manage/internetOfThings/IoTDeviceList.jsx","components/Middle/Manage/AtaList/AtaData.jsx","components/Middle/Manage/AtaList/AtaDeviceList.jsx","components/Modal/ModalPasswordChange.jsx","components/Middle/User/UserForm.jsx","components/Middle/User/UserCompanyForm.jsx","components/Middle/Manage/Alarms/AlarmForm.jsx","components/Middle/Manage/Companies/CompanyForm.jsx","components/Modal/ModalZoneInfo.jsx","components/Middle/Configuration/Configuration.jsx","components/Middle/Reports/ReportDateWrapper.jsx","components/Middle/Reports/ReportButtonComponent.jsx","components/Middle/Reports/Alarm/AlarmComponent.jsx","components/Middle/Reports/Attend/AttendPeriodComponent.jsx","components/Middle/Reports/Attend/AttendTagComponent.jsx","components/Middle/Reports/Attendant/AttendantComponent.jsx","components/Middle/Reports/Client/ClientByCompanyComponent.jsx","components/Middle/Reports/Client/ClientMonthlyFollowupComponent.jsx","components/Middle/Reports/Client/ClientTotalMonthlyComponent.jsx","components/Middle/Reports/Client/ClientLengthOfStayComponent.jsx","components/Middle/Reports/ReportPage.jsx","components/Middle/Reports/Alarm/ReportAlarmRow.jsx","icons/Download.jsx","components/Middle/Reports/Alarm/ReportAlarm.jsx","icons/NoAudio.jsx","components/Middle/Reports/Attend/ReportAttendPeriodRow.jsx","components/Middle/Reports/Attend/ReportAttendPeriod.jsx","components/Middle/Reports/Attend/ReportAttendByTagRow.jsx","components/Middle/Reports/Attend/ReportAttendsByTag.jsx","components/Middle/Reports/Attendant/ReportAttendantRow.jsx","components/Middle/Reports/Attendant/ReportAttendant.jsx","components/Charts/LengthOfStayChart.jsx","components/Middle/Reports/Client/ReportLengthOfStayRow.jsx","components/Middle/Reports/Client/ReportLengthOfStay.jsx","components/Charts/MonthlyFollowupChart.jsx","components/Middle/Reports/Client/ReportClientMonthlyFollowup.jsx","components/Middle/Reports/Client/ReportClientTotalMonthly.jsx","components/Middle/Reports/Companies/ReportCompanyDetailsRow.jsx","components/Middle/Reports/Companies/ReportCompanyDetails.jsx","components/Charts/ClientByCompanyChart.jsx","components/Middle/Reports/Companies/ReportClientByCompanyRow.jsx","components/Middle/Reports/Companies/ReportClientByCompany.jsx","components/Middle/Manage/ClientLocation/ClientLocationMapMarker.jsx","components/Middle/Manage/ClientLocation/ClientLocationMap.jsx","components/Middle/Manage/ClientLocation/ClientLocationPage.jsx","components/Middle/Activation/Activate.jsx","BLL/locale/messageDashboards.js","components/Middle/Manage/Quicksight/QuicksightPage.jsx","components/Middle/Middle.jsx","components/Chat/RocketChat.jsx","components/Common/AudioControlV2.jsx","icons/Close.jsx","components/Modal/ModalAlarm.jsx","actions/lowerPriorityAttendsActions.js","components/Modal/ModalNotificationV2.jsx","components/Modal/Reminders/ReminderInfo.jsx","components/Modal/Reminders/ContactInfo.jsx","components/Modal/Reminders/ReminderControls.jsx","components/Modal/Reminders/ReminderExtensionContactComponent.jsx","components/Modal/Reminders/ReminderExtensionCall.jsx","components/Modal/Reminders/ReminderComponent.jsx","BLL/timerHelper.js","components/Modal/ModalWarning.jsx","actions/localeActions.js","actions/attendsDashboardActions.js","actions/equipmentActions.js","actions/tenantStatusActions.js","actions/attendTagsActions.js","actions/globalConfigurationsActions.js","actions/localConfigurationsActions.js","actions/reminderComponentActions.js","AppV3.jsx","actions/loggedAttendantActions.js","actions/browserActions.js","img/logo-contactto-01 2.png","components/Login/LoginForm.jsx","BLL/locale/messagesLogin.js","components/Login/PasswordResetForm.jsx","components/Login/LoginPage.jsx","reportWebVitals.js","components/Common/DevTools.jsx","index.jsx","reducers/initialState.js","reducers/lowerPriorityAttendsReducer.js","reducers/reminderComponentReducer.js","reducers/index.js","reducers/alarmsReducer.js","reducers/attendantsReducer.js","reducers/attendsReducer.js","reducers/attendsDashboardReducer.js","reducers/authReducer.js","reducers/browserReducer.js","reducers/clientsReducer.js","reducers/localConfigurationReducer.js","reducers/globalConfigurationReducer.js","reducers/globalServerReducer.js","reducers/asteriskServerReducer.js","reducers/contactsReducer.js","reducers/errorsReducer.js","reducers/loggedAttendantReducer.js","reducers/transmittersReducer.js","reducers/userStatusReducer.js","reducers/equipmentReducer.js","reducers/importInfoReducer.js","reducers/tenantStatusReducer.js","reducers/localeReducer.js","reducers/groupsReducer.js","reducers/remindersReducer.js","reducers/attendTagsReducer.js","store/configureStore.prod.js","components/Middle/Attends/OpenComponents/attendDetail.module.scss","components/Middle/Activation/activate.module.scss","components/Middle/Clients/Trackers/medications.module.scss"],"names":["module","exports","require","LOAD_CLIENTS_SUCCESS","EDIT_CLIENT","RECEIVE_NEW_CLIENT_PAGE","SET_CLIENT_PAGE","IMPORT_CLIENTS_SUCCESS","LOAD_TRANSMITTERS_SUCCESS","NEW_TRANSMITTER","EDIT_TRANSMITTER","REMOVE_TRANSMITTER","LOAD_CONTACTS_SUCCESS","NEW_CONTACT","EDIT_CONTACT","REMOVE_CONTACT","LOAD_ATTENDANTS_SUCCESS","EDIT_ATTENDANT","NEW_ATTENDANT","LOGOUT","REMOVE_ERROR","SET_LOGGED_ATTENDANT","LOAD_ATTENDS_SUCCESS","RECEIVE_NEW_ATTEND_PAGE","SET_ATTEND_PAGE","EDIT_ATTEND","LOAD_ALARMS_SUCCESS","EDIT_ALARM","NEW_ALARM","AUTH_LOGIN_USER_REQUEST","AUTH_LOGIN_USER_SUCCESS","AUTH_LOGIN_USER_FAILURE","AUTH_LOGOUT_USER","LOAD_EQUIPMENT_SUCCESS","ADD_BROWSER_DIMENTIONS","RELOAD_LOCAL_CONFIGURATIONS","RELOAD_GLOBAL_CONFIGURATIONS","LOAD_TENANT_STATUS_SUCCESS","RELOAD_TENANT_STATUS_SUCCESS","LOAD_TENANT_STATUS_FAILURE","LOAD_GROUPS_SUCCESS","LOCALE_SET","LOAD_REMINDERS_SUCCESS","RELOAD_REMINDERS_SUCCESS","LOAD_SERVER_CONFIG_SUCCESS","LOAD_SERVER_LIST_SUCCESS","LOAD_ATTEND_TAGS_SUCCESS","LOAD_DASHBOARD_SUCCESS","LOAD_OPEN_DASHBOARD_SUCCESS","NEW_ATTEND_DASHBOARD","UPDATE_ATTEND_DASHBOARD","CLOSE_ATTEND_DASHBOARD","LOAD_BUSY_USERS_SUCCESS","REMOVE_BUSY_USER","ADD_BUSY_USER","AUTH_RESET_STORE","ADD_LOWER_ALARM","REMOVE_LOWER_ALARM","TOGGLE_REMINDER_COMPONENT","window","document","undefined","PushStream","Utils","days","months","valueToTwoDigits","value","dateToUTCString","date","time","getUTCHours","getUTCMinutes","getUTCSeconds","getUTCDay","getUTCDate","getUTCMonth","getUTCFullYear","extend","object","arguments","i","length","settings","attr","hasOwnProperty","validChars","validEscape","validTokens","validBraces","parseJSON","data","isString","replace","JSON","parse","e","test","Function","getControlParams","pushstream","tagArgument","timeArgument","eventIdArgument","messagesControlByArgument","Number","_etag","_lastModified","_lastEventId","getTime","Date","currentTimestampParam","objectToUrlParams","params","escape","substring","addParamsToUrl","url","indexOf","isArray","Array","obj","Object","prototype","toString","call","isDate","Log4js","logger","debug","LOG_LEVEL","_log","apply","info","error","_initLogger","console","log","bind","slice","logElement","getElementById","LOG_OUTPUT_ELEMENT_ID","str","innerHTML","lines","split","join","Ajax","_getXHRObject","crossDomain","xhr","XDomainRequest","XMLHttpRequest","e1","ActiveXObject","e2","e3","_send","post","timeout","clear","onload","afterReceive","success","responseText","onerror","ontimeout","status","onreadystatechange","readyState","beforeOpen","body","method","open","beforeSend","setRequestHeader","timeoutId","setTimeout","abort","send","_clear_xhr","_clear_script","script","parentNode","removeChild","_clear_timeout","clearTimer","_clear_jsonp","callbackFunctionName","callback","scriptId","jsonp","head","getElementsByTagName","createElement","startTime","endTime","eventLoad","afterSuccess","load","setAttribute","insertBefore","firstChild","escapeText","text","unescapeText","unescape","parseMessage","messageText","keys","msg","id","jsonIdKey","channel","jsonChannelKey","jsonTextKey","tag","jsonTagKey","jsonTimeKey","eventid","jsonEventIdKey","getChannelsPath","channels","withBacktrack","options","path","channelName","backtrack","getSubscriberUrl","prefix","extraParams","websocket","wrapper","type","WebSocketWrapper","TYPE","useSSL","port","normalizePort","host","channelsByArgument","channelParam","channelsArgument","getPublisherUrl","urlPrefixPublisher","extract_xss_domain","domain","match","domainParts","keepNumber","Math","max","isCrossDomainUrl","parser","href","srcPort","location","protocol","dstPort","hostname","linker","instance","timer","clearTimeout","onmessageCallback","event","this","message","_onmessage","onopenCallback","_onopen","onerrorCallback","OPEN","EventSourceWrapper","connection","EventSource","CONNECTING","_closeCurrentConnection","_onerror","code","WebSocket","MozWebSocket","connect","urlPrefixWebsocket","_useControlArguments","onclose","onopen","onmessage","disconnect","_onclose","close","sendMessage","urlPrefixEventsource","StreamWrapper","frameloadtimer","pingtimer","iframeId","urlPrefixStream","loadFrame","_clear_iframe","oldIframe","src","transferDoc","CollectGarbage","ifr","write","parentWindow","style","width","height","border","position","top","marginTop","zIndex","appendChild","register","iframeWindow","p","process","_onframeloaded","setPingTimer","pingtimeout","LongPollingWrapper","opentimer","messagesQueue","_linkedInternalListen","_internalListen","xhrSettings","urlWithBacktrack","urlPrefixLongpolling","urlWithoutBacktrack","useJSONP","_crossDomain","_listen","_internalListenTimeout","_keepConnected","getResponseHeader","lastMessage","messages","push","shift","PushStreamManager","reconnectOnTimeoutInterval","reconnectOnChannelUnavailableInterval","autoReconnect","lastEventId","messagesPublishedAfter","_reconnecttimer","modes","wrappers","onchanneldeleted","onstatuschange","channelsCount","CLOSED","addChannel","removeChannel","removeAllChannels","_setState","state","isNaN","_lastUsedMode","_connect","_disconnect","setTime","_reconnect","isLastMessageFromBatch","successCallback","errorCallback","iframe","matcher","unload","attachEvent","addEventListener","ErrorBoundaryComponent","props","resetErrorBoundary","className","main","onClick","usePageReloadDetection","useState","reloaded","setReloaded","useEffect","navigationEntries","performance","getEntriesByType","ArrowDown","fill","viewBox","xmlns","points","defaultProps","ownProps","loggedAttendant","attendantName","logout","toggleAdminModal","companyId","groups","filter","grp","includes","editUrl","to","defaultMessage","Phone","sipSessionType","sipStackType","isLoading","isOffline","isOnline","color","lineHeight","types","clientsOrdering","contactsOrdering","transmittersOrdering","attendantsOrdering","alarmsOrdering","getDomain","sessionStorage","activeDomain","localStorage","domainList","vidafoneDomain","find","defaultDomain","setItem","getToken","activeToken","domainInfo","token","authLoginUserSuccess","user","isPaid","isActive","config","userConfig","rcToken","us","assign","password","authLoginUserFailure","payload","statusText","authLoginUserRequest","authResetStore","authLogoutAndRedirect","dispatch","axios","Promise","resolve","reject","responseType","headers","Accept","Authorization","then","res","catch","Order","stroke","d","addNewDomain","history","useHistory","wrapperRef","useRef","setDomainList","isExpanded","setIsExpanded","newDomainList","clickedOutside","removeEventListener","evt","current","contains","target","container","ref","toUpperCase","rotate","map","removeItem","reload","changeDomains","marginRight","class","FormButton","cancelAction","submitAction","activeSubmit","nameBtn","btnStyle","componentStyle","btn","active","paddingRight","paddingTop","first","disabled","disable","second","ConfirmModal","setModalInfo","action","title","client","showModal","bottom","borderRadius","left","transform","HeaderActions","showConfirm","setShowModal","sessionDescription","sessionListener","description","hangupSip","audioAction","iconButton","turnOffAlarmAudio","Trial","activate","isAdmin","isOwner","content","trial","Header","sipEvtListener","evtListener","isSysUser","iconContainer","toggleChat","iconActive","fontSize","newChatMessage","chatDot","reminders","toggleReminder","reminderDot","reminderNumber","remindersDeactivated","localeContainer","localeButton","lang","localeChosen","setLocale","hasWebsocketConnection","icon","display","iconText","phone","microphoneConnection","microphoneName","TecnoLogoNew","svgClass","VidapointLogo","VidapointText","Sidebar","useSelector","expanded","toggleSidebar","pathname","isManagement","some","isFromCompany","sidebar","ul","li","backgroundColor","link","LogoOG1","alt","svg","cursor","outline","arrow","icons","user_info","can_access_quicksight","removeUserFromBusy","userId","addUserIntoBusy","attendId","loadBusyUsers","errorsActions","getState","get","response","loadAttendsSuccess","results","ordering","page","pageUrl","attendUpdated","attend","loadAttends","globals","changePage","pageNumber","attends","pages","setAttendPage","newPage","newAttendtPage","editAttend","resp","CallButton","isBusy","globalConfiguration","global","useDispatch","attendsActions","setLoading","redirectToAttendDetail","setUserBusy","close_ts","takeEmergency","statusActions","newAttend","attendant","audio_call","already_taken","closeAttend","attend_ts","moment","format","containerClass","buttonClass","isDisabled","buttonClick","buttonText","useAlarmZones","use_alarm_zones","greenClass","invalid","attendZone","tr_zone","parseInt","highest_code","highest_priority","setButton","AlarmiHelpEmergency","x","y","enableBackground","AlarmEmerConsIco","AlarmGeo1InIco","AlarmGeo1OutIco","AlarmGeo2InIco","AlarmGeo2OutIco","AlarmGeo3InIco","AlarmGeo3OutIco","AlarmGeo4InIco","version","xmlSpace","AlarmGeo4OutIco","AlarmChargeDeviceIco","AlarmLostMed1Ico","AlarmLostMed2Ico","AlarmLostMed3Ico","AlarmEmerSensIco","AlarmInactIco","AlarmFireIcon","AlarmHighTemp","AlarmLowTemp","AlarmCO2Ico","AlarmLostFireIco","AlarmEnergyIco","AlarmBatConIcon","AlarmExpReminderIco","AlarmAwayIco","AlarmAtHomeIco","AlarmLostSensorIco","AlarmCancelIcon","AlarmAutoTestOkIco","AlarmVoiceReqIco","AlarmAutoTestFailIco","AlarmLowBatSensIco","AlarmMovementIco","AlarmTiltIco","AlarmIcon","alarmComponents","Alarm","alarmCode","float","React","Component","en","pt","january","february","march","april","may","june","july","august","september","october","november","december","firstName","lastName","birthdate","generalInfo","gender","medications","healthPlan","hospital","limitations","removalPlan","cpf","rg","actionPriority","contacttoLang","userActionPriority","order","userGroup","equipmentTypes","checkMonth","num","language","messagesMonths","getMonth","contactActionPriority","fallDetectionMode","mode","geoFenceMode","ev07bGeoFenceMode","ev07bAlarmClockAudio","historyActionType","alarmNameLang","alarm","is_original","messagesAlarms","name","alarmPriorityLang","ataStatusLang","trDescriptionLang","historyField","messagesLogs","historyText","key","formatDate","exec","year","month","day","hour","minute","messagesMonth","formatDateFromString","dateString","DD","String","getDate","padStart","MM","YYYY","getFullYear","HH","getHours","mm","getMinutes","SS","getSeconds","broadcast","channelId","msgObj","removeByKey","myObj","arrayKeys","forEach","el","setMask","mask","mask2","maskIndex","val","index","splice","removeNonDigit","arr","adjustDigitCountry","country","formatOnlyNumbersDate","phonePT","getAttendantName","master_id","master_name","att_first_name","att_last_name","CellNumber","generalPhoneNumber","zipCode","cpfMask","birthJStoDjango","getBrowserMaxWidth","scrollWidth","documentElement","offsetWidth","clientWidth","renderPhoneDigit","booleanPT","generateRandomNumberString","size","result","floor","random","naturalSort","a","b","NUMBER_GROUPS","aa","bb","min","parseFloat","toLowerCase","returnColor","colorList","formatBirthdate","AttendsOpenCard","iconColor","showIcons","iconwrapper","paddingLeft","fontWeight","marginBottom","open_ts","tr_description","brazilCountryStateList","alarmBackgroundColor","alarmFooterIconColor","zoneBackgroundColor","zoneFooterIconColor","lightGrayBackgroundColor","grayFooterIconColor","callStates","Arrow","renderArrow","clickLeftArrow","clickRightArrow","calcHeadersSize","side","arrowWrapper","poligon","strokeWidth","strokeLinecap","strokeLinejoin","CustomCardHOC","Body","Footer","makeRandonNumber","randomColor","validateWordLenght","handleClick","moveComponentToLeft","moveComponentToRight","atual","childComponent","setState","limit","word","idx","charAt","theme","headerWrapper","leftContainer","calcMargin","rightContainer","h","headerItem","maxHeight","headerFontSize","header","footerComponent","footer","footerFloat","borderColor","minHeight","OpenAttends","useZoneColors","clientName","client_first_name","client_last_name","pop","is_from_secondary","secondary_first_name","secondary_last_name","AttendsOpen","empty","AttendsClosedCard","attend_id","ClosedAttends","attendsLength","values","closed","test_attend","AttendsClose","Loading","cx","cy","r","AlarmsCard","alarms","previous","urlCurrDate","urlPrevDate","flexDirection","cardStyle","field","marginLeft","prevDate","textAlign","prev_atts","prev_voice","currDate","curr_atts","curr_voice","CustomChart","generateRandomId","paintChart","checkColors","part1","part2","customId","colors","ctx","isMultiBar","Chart","labels","datasets","maintainAspectRatio","scales","xAxes","barPercentage","gridLines","yAxes","stacked","lineWidth","legend","displayLegend","styleChart","borderWidth","indexAxis","isHorizontal","tooltips","enabled","tooltipEnabled","minWidth","AttendByDayChart","alta","media","baixa","sistema","dias","highLabel","mediumLabel","lowLabel","systemLabel","numberOfAttends","priority_1","priority_2","priority_3","priority_4","label","backgroundColorHover","CustomChart2","beginAtZero","ClientTotalMonthlyChart","report","rpt","total","DashboardPage","attendsDashboard","browser","localConfiguration","local","locale","totalVoiceReport","setTotalVoiceReport","dailyTotalReport","setDailyTotalReport","clientsTotalMonthlyReport","setClientsTotalMonthlyReport","attendsOpen","setAttendsOpen","attendsClosed","setAttendsClosed","setUrlCurrDate","setUrlPrevDate","showClosedAttends","setShowClosedAttends","showAttendsCount","setShowAttendsCount","fetchAttendsTotalVoiceReport","setTotalVoiceReportDates","last_attends","attends_quantity","err","currLastDay","currFirst","currLast","prevLastDay","prevFirst","prevLast","setTextIconDetail","setEmptyText","show_icons","role","cards","totalVoiceReportComponent","attendChart","clientChart","Paginate","setPage","numPerPage","numberOfElements","startNumber","endNumber","outerClass","previousList","nextList","ClientTableHeader","orderByAccount","orderByName","iconDetail","svgAccountRotation","svgNameRotation","column","account","companyHeader","trackerActions","adminActions","otherActions","overflow","textOverflow","MobileTableHeader","ClientPageButtonComponent","clientList","browserHistory","removeFilter","showFilterModal","editFilter","transition","ClientFilterComponent","mobileEquipmentIds","equipment","eq","is_mobile","setFilter","newFilter","elm","subtitleContainer","subtitle","company","companies","Edit","ClientRow","isManager","buttonStatus","setButtonStatus","performFilter","clientCompany","comp","group_id","edit","client_id","detail","logs","transmitters","contacts","padding","row","is_deleted","removed","actions","first_name","last_name","tracker","equipment_id","list","setExpanded","tableRowWrapper","tableRow","toggleButtonWrapper","toggleButton","buttonMenuWrapper","onMouseOver","loggedUser","setAccount","setCompanyId","setTracker","setFirstName","setLastName","disableFilter","setDisableFilter","closeModal","htmlFor","formStyle","onChange","sort","compA","compB","localeCompare","item","maxLength","trackerFilter","filterClients","useQuery","URLSearchParams","useLocation","search","ToggleButton","isChecked","handleChange","hasPagination","toggle","loadClientsSuccess","loadClients","reloadClients","clients","activeUrl","activePage","setClientPage","newClientPage","editClient","ClientPage","queryParams","browserWidth","tenantStatus","queryAccount","clientsActions","loading","setClientList","selectedClient","setSelectedClient","setActivePage","setOrdering","totalClients","setTotalClients","activeClients","setActiveClients","next","setNext","setPrevious","setIconDetail","showDeleteRestoreButton","setDeleteRestoreButton","showFilter","setShowFilter","showConfirmRemoveModal","setShowConfirmRemoveModal","showInactives","setShowInactives","confirmMsg","setConfirmModalMsg","firstLoad","count","loadQueryClients","setConfirmModalInformations","clientAccount","updatedOrdering","clientId","table","cl","broadcastMessages","isSystemUser","checkUserRow","recoverClient","is_secondary","maxYear","monthLength","Speak","Listen","TwoWayAudio","AudioMenu","audioStatus","setAudioStatus","muteAudio","onMouseOut","mutePhone","autoCall","ModalPERS","callStage","setCallStage","durationFirstCall","setDurationFirstCall","durationLeft","setDuration","warningTimer","setWarningTimer","showWarningMessage","setShowWarningMessage","intervalId","setInterval","prev","clearInterval","makeSecondCall","isIndependent","startCall","clientPhone","sendPassword","sendPERSPassword","duration","extendCall","ModalClimax","ModalReturnCall","pos1","pos2","pos3","pos4","posX","setPosX","posY","setPosY","elementDrag","preventDefault","clientX","clientY","offsetLeft","offsetTop","closeDragElement","onmouseup","onmousemove","onMouseDown","FemaleIcon","MaleIcon","TransexIcon","ClientDetail","attendantList","attendants","isSysAdm","group","setClient","secondaryClient","setSecondaryClient","userAudioList","setUserAudioList","setUserAudioCount","setUserAudioNext","setUserAudioPrev","showReturnCallModal","setShowReturnCallModal","secondary","countryList","ctry","creator","created_by","modifier","modified_by","clientEquipment","equip","canMakeCall","use_voip","account_phone","sendDTMF","borderBottom","is_test","key_box","imei","general","group_name","internal_comments","street","number","complement","district","zip_code","city","contact_phone","extra_phone","general_info","health_plan","removal_plan","modified_date","created_date","audio","audio_ts","user_name","audio_s3_file","usernameReg","companyReg","validateEmail","email","validateMobile","validateCPF","strCPF","Soma","Resto","validateDate","InputContainer","validator","isRequired","required","validate","SelectInput","select","dictionary","items","setItems","setDictionary","ev","emptyOption","onBlur","CheckboxInput","checked","handleCheckbox","prevProps","ErrorComponent","errorCode","errorMsg","handleButton","button","ClientInfoForm","showForm","setClientState","rows","cols","SecondaryActionsForm","localDispatch","validateClientGeneral","equipmentList","uniqueFields","newValidator","findIndex","sosAppId","isValid","validateSecondaryGeneral","reducerActions","c","accountPhone","contactPhone","extraPhone","stateClient","ihelpId","dateMasked","equipmentId","useVoip","clientValidator","editClientValidator","valueLength","validateClientBR","validateClientMU","validateClientGB","editSecondary","stateSecondary","editSecondaryValidator","secondaryValidator","validateSecondaryBR","removeSecondary","initialState","invertClients","newClient","newSecondary","aditional_phones","reducer","func","immer","draftState","ClientForm","useReducer","createClient","setError","setErrorMsg","setErrorCode","showFirstDeleteModal","setFirstDeleteModal","showSecondDeleteModal","setSecondDeleteModal","showModalPhone","setModalPhone","showModalVoip","setModalVoip","showModalRange","setShowModalRange","showAddress","setShowAddress","showPrimaryUser","setShowPrimaryUser","showSecondaryUser","setShowSecondaryUser","setEquipment","equipmentName","voipMessage","countries","pers4200Id","pers3600Id","canUseVoipEquipment","setDeleteModalInfo","saveClient","serverClient","convertDataToServer","processError","errCode","errMsg","client_account","every","update","overflowX","equipId","placeholder","phoneLength","persList","showVoipModal","showAccountRangeModal","modalRange","range_list","range","maxRange","max_account","minRange","min_account","verifyAccountRange","selectClass","other","hasOther","TrackeriHelpProgram","setParams","param","setParameters","prevState","trackerMenuContainer","trackerMenuValue","trackerMenuText","blockValue","selectInput","FDMODE","checkbox","SOSBREADCRUMB","VOIPCALLING","selectInterval","AUTOPOST","trackerMenuBtn","commands","sendParams","convertAndSendParams","contacttoPublicApiKey","googleMapsApiKey","heartbeatServer","MapComponent","modeColor","setModeColor","setMap","isLoaded","useJsApiLoader","center","useMemo","latitude","longitude","lat","lng","onLoad","useCallback","onUnmount","mapContainerClassName","leafletContainer","zoom","changeGeofencePosition","disableDefaultUI","clickableIcons","radius","strokeColor","fillColor","clickable","searchbox","setSearchbox","places","setPlaces","openedGeofence","setOpenedGeofence","geofenceList","onSearchboxMounted","onPlacesChanged","newPlaces","getPlaces","geometry","setLatLon","charCode","keyCode","convertAndSendGeofence","command","renderGeofenceMenu","programmingData","geofenceSubmenuOption","StandaloneSearchBox","input","onKeyPress","geofenceSlider","step","geofenceSubMenuBtn","trackerMenu","geofence","geofenceMenuOption","geofenceTriangle","latLng","TooltipContainer","tooltipMessage","IHelpInNumbers","vin1","setVin1","vin1Auto","setVin1Auto","vin2","setVin2","vin2Auto","setVin2Auto","VIN1","VIN1AUTO","VIN2","VIN2AUTO","inputContainer","textLabel","tooltipContainer","MedicationComponent","medication","setMedication","ackMedication","setAckMedication","medOn","setMedOn","hours","minutes","submenuContainer","submenuLabel","maxWidth","selectContainer","selectContainerMin","submenuBtn","openedMedication","IHelpMedications","setOpenedMedication","medicationList","med","menuContainer","menuOption","menuText","menuTriangle","firstIcon","fillOpacity","scale","anchor","lastIcon","dotIcon","MapPoint","pointList","lastGeneralData","selectedElement","setSelectedElement","activeMarker","setActiveMarker","showInfoWindow","LATITUDE","LONGITUDE","mapWrapper","mapHeaderContainer","generalInfoContainer","mapHeaderSubtitleContainer","headerSubtitle","BATTERY","SIGNAL_STRENGTH","IS_CHARGING","CHARGE_COMPLETE","TIMESTAMP","mapButtonContainer","updateLocationBtn","margin","sendSingleLocate","continuousLocationBtn","sendContinuousLocate","generalInfoLastBtn","fetchLatestPoint","clusterer","point","sendDate","SENDTIME","DATETIME","visible","onCloseClick","ACCURACY","DIRECTION","GPSACCURACY","ONCHARGER","ALTITUDE","SPEED","CELLSIGNAL","EVENTTYPE","messagesTracker","FROM_WIFI","ADDRESS","CustomDatePickerInput","registerLocale","br","HistoryMenu","trackerMenuDate","wrapperClassName","customInput","selected","startDate","handleStartChange","showTimeSelect","timeFormat","timeIntervals","dateFormat","timeCaption","previousMonthButtonLabel","nextMonthButtonLabel","endDate","handleEndChange","fetchPoints","CustomModal","styles","btnAction","testId","btnText","loggedAttendantGroup","subtract","toDate","setStartDate","setEndDate","setPointList","trackerParams","setTrackerParams","programming","setProgramming","showMap","setShowMap","showHistory","setShowHistory","showProgramming","setShowProgramming","showInNumbers","setShowInNumbers","showGeofence","setShowGeofence","showMedicationsMenu","setShowMedicationsMenu","disableProgramming","setDisableProgramming","errorMessage","setErrorMessage","fetchClient","fetchParams","errorComponent","newErrorMessage","noData","MESSAGE","canProgram","rotateMap","rotateHistory","rotateProgram","rotateGeofences","rotateInNumbers","rotateMedications","fullName","modal","hideModal","trackerTitle","trackerContent","trackerMenuOption","trackerSvg","startDateString","endDateString","startHour","endHour","errorWrapper","trackerError","IGOProgrammingComponent","GSM","POWER_SAVING","VOICE_MONITOR","LED_INDICATOR","FALL_DETECTION","deviceInterval","OVERSPEED_INDICATOR","isOperator","Set","modifiedParams","setModifiedParams","showNormalized","setErrorComponent","helpUrl","setHelpUrl","newHelpUrl","newErrorComponent","respose","doesNotExist","newTrackerParams","INTERVAL","rotateNormalized","rel","newModifiedParams","add","cmdList","middleIcon","L","divIcon","html","ReactDOMServer","renderToString","mapDot","positions","SinglePointToHoC","Map","TileLayer","attribution","EVENT","substr","eventCode","Marker","Popup","RCV_TIMESTAMP","ON_BASE","LOCATION_BY","SIGNAL","trackerPositionBtn","TrackerEv07bProgram","sendConfiguration","FALLDOWN_ALERT","sensitivity_level","MOTION_ALERT","movement_activation","cooldown_period","NO_MOTION_ALERT","programmingInput","static_period","OVER_SPEED_ALERT","treshold","TILT_ALERT","angle_treshold","time_treshold","handleMapClick","geo","geoPoint","point_list","direction","GeofenceMenu","handleToggle","setPlacesLatLng","saveGeofences","setGeoList","geoList","newGeoList","IMEI","SET_GEOFENCE","GEO_ALERT","TrackerEv07bAlarmClock","openedAlarmClock","setOpenedAlarmClock","alarmClockList","setAlarmClockList","alarmClock","alm","newAlarmClockList","setDays","saveAlarmClock","SET_ALARM_CLOCK","ALARM_CLOCK","menuOptionBtn","menuOptionBtnText","submenuOption","submenuText","toggleContainer","rem","ring_audio","ring_time","workdayContainer","mon","tue","wed","thu","fri","sat","sun","menuSaveBtn","setClientEquipment","generalDataList","setGeneralData","showAlarmClock","setShowAlarmClock","showConfirmationModal","setShowConfirmationModal","fetchLatestGeneralData","program","rotateAlarmClock","rotateGeofence","SEND_SINGLE_LOCATE","SEND_CONTINUOUS_LOCATE","option","optionProperty","programObject","expandInfo","rowClient","nextClient","array","isTest","keybox","keyBox","groupId","actionType","isDeleted","tableBodyColumn","bodyDataColumn","actionDate","bodyChangedByColumn","actionUser","bodyToggleButton","rowExtraInfoWrapper","extraInfoTextWrapper","infoLabel","infoText","gql","RenderClientHistory","stopFetching","query","variables","offset","fetchPolicy","fetchMore","tableHeader","tableHeaderColumn","headerChangedByColumn","tableBody","onScroll","doc","scrollTop","offsetHeight","scrollHeight","clientHistory","updateQuery","fetchMoreResult","historyId","ContactChangedRow","rowContact","contact","nextContact","phones","nextPhoneList","rowActions","nextActions","nextAction","priority","receiveSms","receiveEmail","receiveTelegram","relationship","hasKeys","isContractor","rowPhoneHasEqual","pho1","pho2","rowActionsHasEqual","act1","act2","stringify","deletedText","phoneType","allContacts","RenderSingleContact","contactId","contactTableBody","contactHistory","RenderContacts","changeContactId","TransmitterChangedRow","rowTransmitter","transmitter","nextTransmitter","ac","zone","identifier","RenderTransmittersHistory","headerDataColumn","transmittersHistory","transmitterHistory","SecondaryChangedRow","rowSecondary","prevSecondary","RenderSecondaryAuditLog","secondaryHistory","User","HistoryComponent","selectedOption","setSelectedOption","headerTitle","buttonsContainer","changeButton","buttonSelected","ContactRow","is_contractor","is_family","ContactMobileRow","toggleLogExtra","ModalConfirmRemove","removeAction","loadContactsSuccess","contactAdded","contactUpdated","contactRemoved","loadContacts","editContact","loggedAttendantId","contactsActions","deleteContact","setContact","orderedContacts","setOrderedContacts","setIsChecked","loadClient","setContactList","show","newContact","newOrdering","contactsOrdered","svgPriorityRotation","divTitleHeader","divButtonHeader","paginate","serverContact","nameHeader","cont","ContactDetail","contactList","con","setUpContact","actionName","primaryPhone","phone_type","secondaryPhones","has_keys","country_code","phoneA","phoneB","flexWrap","can_use_whatsapp","actionA","actionB","paddingBottom","receive_email","receive_sms","receive_whatsapp","TextInput","setValue","hasError","setHasError","reduce","setMaxLength","errorClass","inputClass","newValue","minLength","oldValue","tempValue","tempMask","zipValue","onPaste","onDrop","textErrorClass","Delete","dataPos","countryCodes","dial_code","ContactPhone","removePhone","selectedCountryCode","handlePhone","masks","isSysAdmin","createContact","destroyContact","isSaving","setIsSaving","showWarningModal","setShowWarningModal","priorityList","setPriorityList","setPhones","phoneValidator","setPhoneValidator","messagesRelationships","selectedRelationship","setSelectedRelationship","is_whitelisted","whitelist_email","isFamily","setIsFamily","setValidator","setActions","whatsAppCellphone","actionValidator","setActionValidator","countryStateList","setCountryStateList","setContactUp","cellPhoneValidation","phoneValue","hasWhatsAppMarked","clientContacts","newPriorityList","phoneList","setContactState","setFormValue","setValidation","validLength","onPriorityList","newPhoneList","newPhoneValidator","handleActions","newActions","dataKey","isFormValidated","arePhonesValidated","isWhatsAppValid","haveOnePrimary","activeSaveBtn","relationshipList","setRelationship","newPhones","textTransform","actA","actB","serverPhones","serverActions","family_adm_flag","savetip","scrollTo","behavior","TransmitterRow","TransmitterMobileRow","loadTransmittersSuccess","transmitterAdded","transmitterUpdated","transmitterDeleted","transmitterId","loadTransmitters","TransmitterPage","deleteTransmitter","transmitterActions","setTransmitter","setOrder","transmitterList","setTransmitterList","orderedTransmitters","tr","svgZoneRotation","svgDescriptionRotation","TransmitterComponent","titleClass","persNumber","useForSecondary","TransmitterDetail","setUseForSecondary","transmittersActions","newTransmitter","TransmitterForm","editTransmitter","createTransmitter","setSecondary","zoneList","setZoneList","nValidator","setNValidator","secondaryList","clientTransmitters","newZoneList","setTransmitterState","newErrorCode","newErrorMsg","serverTransmitter","Audio","PriorityIcon","AttendRow","isUser","showClient","attendIsClosed","priorityIconColor","resolvedBy","dateOpen","dateClosed","audioIcon","audio_file","attendTags","setAttendId","attendTag","setAttendTag","hasAudio","setHasAudio","tagOptions","messageTags","optionA","optionB","attendAudio","companyIdUrl","filterAttends","attendsList","setAttendsList","totalAttends","setTotalAttends","setShowFilterModal","setAttends","iDetail","alarmPriority","svgIdRotation","svgUserRotation","svgAttendantRotation","svgSuccessRotation","svgStartRotation","svgEndRotation","filterBtn","filt","headerBtn","MobileIcon","HomeDeviceIcon","AttendHeader","canMakeExtension","openModalExtension","showSecondary","setShowSecondary","highestAlarm","event_type","mainTransmitter","tr_identifier","controls","AttendSolvedBy","mobile","contactedContacts","contactedAttendants","AttendInformation","tagId","toggleEdit","isEditing","setTag","updateTag","clientMessages","aditionalAudioList","tagList","from_client","AttendComments","setReport","updateReport","comment","AttendReminders","reminderAudioList","reminder","singleReminderAudioList","file","op_full_name","cl_full_name","audio_url","requested_time","noReminder","clientRow","contrastRow","observationLabel","bigtext","whiteSpace","wordWrap","AttendClientComponent","showPrimary","setShowPrimary","rotatePrimary","rotateSecondary","AttendDetail","timestamp","MapMarker","isFirstOrLastPoint","isInfoWindowOpen","setOpenWindow","address","setAddress","sendtime","openInfoWindow","GSM_SIGNAL","GPS_ACCURACY","pointsList","AttendMap","loadLatestPoint","isAttendOpen","firstPoint","evtMsg","SOS_ALARM","OVERSPEED","FALLDOWN","mapErrorComp","mapErrorBtn","mapErrorMsg","EVTTYPE","AudioDuration","Infinity","timeInSeconds","seconds","formatTime","toFixed","AttendantOrigin","fromId","setAttendant","newAttendant","att","extension_id","AttendAudioInformation","aditionalAudio","from_id","to_id","AccordionSection","children","isOpened","isOpen","setIsOpen","rotateOrder","accordionRow","accordionHeader","ModalDraggable","SoftphoneKeyboard","onConfirm","phoneNumber","setPhoneNumber","softphoneKeyboard","keyboard","handleButtonClick","backspace","confirm","ExtensionCaller","selectedLine","handleBackButton","callType","sipEventType","callState","setCallState","extensionId","padWithZero","handleMakeCall","lineType","typeNumbers","externalLine1","reminderLine1","externalLine2","reminderLine2","attendUid","typeNumber","callNumber","currentDate","timezoneOffsetInMs","getTimezoneOffset","localDate","toISOString","apiUrl","handleBackClick","ComponentFailed","ContactComponent","handleSelectButton","setData","AttendExtensionCall","outsideEquipmentList","setSelectedContact","showDetails","setShowDetails","showSoftphoneKeyboard","setShowSoftphoneKeyboard","line","justifyContent","FallbackComponent","customPhone","configurationGlobal","setAttend","setContacts","successAttendant","setSuccessAttendant","successContact","setSuccessContact","setContactedAttendants","setContactedContacts","remindersList","setRemindersList","setClientMessages","setTagId","setAttendAudio","editingComments","setEditingComments","editingTag","setEditingTag","currentServerTime","setCurrentServerTime","showExtensionCall","setShowExtensionCall","setCanMakeExtension","fetchAttend","fetchAudio","fetchAttendReminders","serverTime","attendClose","events","fetchClosedPoints","fetchSOSAppAttendPoint","filteredContacts","client_message","contacted_att","contacted_cont","tag_id","current_time","success_attendant","success_contact","fromEntries","entries","k","v","call_duration","aditional_audio","reminderAudio","Accordion","AttendContacted","remove_audio_files","updatedReport","WarningTimer","setInitialTimes","counter","WarningMessagesComponent","clock","setClock","clockInterval","setClockInterval","canDisableMsgs","setCanDisableMsgs","messagesDisabled","setMessagesDisabled","setSeconds","warningLimit","newClock","alarmTime","sendWarningMessages","interval","newTimer","newSeconds","startTimer","stopWarningMessages","ClientInfo","isAttendOperator","changeAttendant","btnTakeCall","CallClock","callTimer","AlexaStateComponent","replyMessage","setReplyMessage","sendResponseToAlexa","showReplyInput","setShowReplyInput","CallClosedComponent","toggleReminderNote","canReturn","openModalReturn","useZones","btnIcon","CallOpenComponent","attendSip","CallInProgressComponent","callMsg","NoCallComponent","IdleComponent","CallControls","ComponentToRender","computeState","ComponentFailedErrorBoundary","AttendWarningMessages","AttendContacts","setContacted","setPerson","querySelector","AttendAttendants","attendantId","is_active","AttendCallType","AttendComment","setAttendState","commentWrapper","textArea","onKeyDown","ModalReminderNote","setTitle","setHours","setMinutes","setLimit","showConfirmModal","setShowConfirmModal","isIndividual","setIsIndividual","ModalConfirm","textareaLen","getAttribute","reminderError","is_individual","createReminder","CallTimer","extraTime","CallStopwatch","start","now","loadRemindersSuccess","reloadRemindersSuccess","loadReminders","server_time","AttendOpen","climaxId","patchAttend","refAttend","refInterval","setContactId","setAttendantId","callLimit","setCallLimit","isCallOpened","setIsCallOpened","isCallClosed","setIsCallClosed","permissionToSave","setPermissionToSave","setAnInterval","callStateTimeout","setCallStateTimeout","stopwatch","setStopwatch","callStart","setCallStart","contacttoTimer","setContacttoTimer","contactedCont","setContactedCont","contactedAtt","setContactedAtt","setReminderError","showReminderNote","setShowReminderNote","showReminderMessage","setShowReminderMessage","showExtensionCallModal","setShowExtensionCallModal","setCallMsg","setWarningLimit","setAlarmTime","setSendWarningMessages","currentAttend","currentInterval","delay_warning_limit","voice_alarm_ts","send_warning_messages","voice_alarm_limit","stack","newCallStateTimeout","requestedCall","callReport","answeredCall","isAnswered","watch","newDuration","extendLimit","closeEmergencyCallback","reminderMessage","attendantsList","open_attendant","reminderActions","createReminderAction","clientMessage","ev07bId","confNumber","newCallStart","newStopwatch","oldUser","messagesBroadcast","alreadyClosed","contacts_list","attendant_list","attendRow","btnSave","btnDisabled","closedAttend","saveTooltip","Restore","AttendantRow","ownerOrAdm","managerOption","username","AttendantMobileRow","emptyButton","administrators","managers","owner","user_set","mngr","adm","isSysOwner","own","loadAttendantsSuccess","updatedAttendant","loadAttendants","users","createAttendant","editAttendant","attendantsActions","orderedAttendants","setOrderedAttendants","selectedAttendant","setSelectedAttendant","toggleChecked","setToggleCheck","newOrdered","atts","orderBy","newOrder","setConfirmModalInfo","svgEmailRotation","svgGroupRotation","userInfo","is_superuser","checkAttendant","AlarmRow","styleManagement","loadAlarmsSuccess","newAlarm","updatedAlarm","loadAlarms","editAlarm","AlarmManagement","alarmsOrdered","nameIsOrdered","codeIsOrdered","priorityIsOrdered","urlSearch","orderByCode","orderByPriority","toggleAlarm","setAlarm","firstItem","lastItem","svgCodeRotation","alarmsActions","ModalDeleteCompany","stages","deleteMap","deleteCompany","companyAndUsers","deleteCompanyAndUsers","deleteStage","setStage","deleteUsers","setDeleteUsers","textOption","checkboxContainer","setSelectedCompany","haveClients","haveUsers","CompanyUserRow","styleScss","CompanyRow","companyContainer","companyTitleContainer","isCompanyAdm","companyTitle","personBtn","editBtn","removeBtn","openDeleteModal","columnIcons","userA","userB","loadGroups","groupsData","loadGroupsSuccess","deleteGroup","groupsActions","deleteGroupAndUsers","selectedCompany","showDeleteModal","setShowDeleteModal","getItem","attendantToToggle","GET_ONLINE_USERS","useAllOnlineUsers","skip","pollInterval","allUsersOnlineStatus","OnlineAttendantsPage","svgCompanyNameRotation","svgLastOnlineAtRotation","headerStatus","headerName","headerCompanyName","headerGroupName","headerLastOnlineAt","bodyStatus","online","offline","bodyName","bodyCompanyName","companyName","bodyGroupName","bodyLastOnline","lastOnlineAt","allTrackerData","RenderTrackerData","trackerAllList","trackerA","trackerB","trckr","statusTableBodyField","tableImeiField","tableNameField","tableCompanyField","tableBatteryField","battery","tableLastEntryField","datetime","IoTDeviceList","selectedDevice","setSelectedDevice","svgIMEIRotation","svgCompanyRotation","svgBatteryRotation","svgDateRotation","iotHeaderText","iotMenu","iotButton","headerImeiContainer","headerNameContainer","headerCompanyContainer","headerBatteryContainer","headerLastEntryContainer","allClientAta","RenderAtaData","clientA","clientB","tableAtaField","tableAccountField","tablePortField","tableStatusField","trim","AtaDeviceList","svgNumberRotation","svgStatusRotation","headerAtaContainer","headerAccountContainer","headerPortText","headerStatusContainer","ModalPasswordChange","oldPassword","newPassword","newPassword2","setWrapperRef","setForm","changePasswordCallback","nextProps","wrongPassword","validateConfirm","node","passwords","old_password","new_password","changePassword","saveEnable","clearList","_","authActions","password2","is_staff","setUniqueFields","showChangePasswordModal","setShowPasswordModal","passwordError","setPasswordError","showLogoutMessage","setShowLogoutMessage","saveError","setSaveError","atd","setUpAttendant","setFormValidator","put","goBack","removeFields","serverAttendant","loadCompanies","createAlarm","alarmId","setAlarmObject","alarmList","setAlarmList","codesList","alrm","canSave","maxCharacters","minCharacters","saveAlarm","NUMBERS_REGEX","saveCompany","setCompanyName","clientValue","setClientValue","rangeList","setRangeList","rangeValidatorList","setRangeValidatorList","companyNameList","setCompanyNameList","cmpny","client_value","handleRange","attribute","newRangeList","newRangeValidatorList","removeRange","ModalZoneInfo","AdministratorOptions","outerCard","labelText","viewAttendantList","handleAttendantChange","divider","viewContactList","handleContactChange","viewIcons","handleViewIconsChange","playSecondaryAlarmSounds","handleSecondaryAlarmSoundsChange","automaticAlarmClosing","handleAutomaticAlarmClosing","handleUseAlarmZonesChange","LocalOptions","viewClosedAttends","handleCloseAtendsChange","viewAttendSummary","handleAttendsSummaryChange","EchoTest","echoCall","handleEchoTestHangup","handleEchoTestCall","Configuration","configurationLocal","setViewClosedAttends","setViewAttendSummary","setViewAttendantList","setViewContactList","setViewIcons","setPlaySecondaryAlarmSounds","setAutoCloseAlarms","setUseAlarmZones","showConfigEndModal","setShowConfigEndModal","showZoneInfoModal","setShowZoneInfoModal","setEchoCall","modalText","setModalText","secondary_alarm_sound","automatic_alarm_closing","updateGlobalConfig","updateLocalConfig","testEchoSip","makeUpdate","DateRangePickerWrapper","focusedInput","START_DATE","resetDate","onDatesChange","onFocusChange","setDate","startDatePlaceholderText","endDatePlaceholderText","displayFormat","isOutsideRange","minimumNights","orientation","daySize","Button","AlarmComponent","setAlarms","alarmsOptions","setAlarmsOptions","setPriority","setAlarmCode","setUrl","urlDate","setUrlDate","setFocusedInput","selectFocus","setSelectFocus","priorityFocus","setPriorityFocus","priorityOptions","filteredAlarms","al","handlePriority","prio","newAlarms","simpleValue","onClose","onOpen","clearable","multi","alrmCode","urlCode","isMulti","onFocus","focused","firstDate","lastDate","themeColor","AttendComponent","AttendTagComponent","AttendantComponent","attendantOptions","setAttendantOptions","ClientByCompanyComponent","years","setYears","selectedYear","setSelectedYear","selectedMonth","setSelectedMonth","begin","yearList","calcYearList","ClientMonthlyFollowupComponent","currentYear","ClientTotalMonthlyComponent","ClientLengthOfStayComponent","ReportPage","isCompanyMember","setAlarmsOrdered","attendantsOrdered","setAttendantsOrdered","showClientMonthlyFollowupComponent","setShowClientMonthlyFollowupComponent","showAlarmComponent","setShowAlarmComponent","showAttendantsComponent","setShowAttendantsComponent","showUsersByCompanyComponent","setShowUsersByCompanyComponent","showRetainTimeComponent","setShowRetainTimeComponent","showAttendByTimeComponent","setShowAttendByTimeComponent","showUsersByMonthComponent","setShowUsersByMonthComponent","showAttendsByTypeComponent","setShowAttendsByTypeComponent","alList","orderedAlarms","attList","setAttendantList","rotateClientsFollowup","rotateAlarms","rotateAttendants","rotateUsersByCompany","rotateRetainTime","rotateAttendByTime","rotateUsersByMonth","rotateAttendsByType","overflowY","AttendPeriodComponent","ReportAlarmRow","category","alarmDate","audioCallDuration","Download","strokeMiterlimit","ReportAlarm","reportPriority","csvUrl","setCsvUrl","pdfUrl","setPdfUrl","fetchAlarmReport","csv_url","pdf_url","handleIdChange","handleOrderChange","nameA","download","alarm_event_id","NoAudio","ReactAttendRow","audioCall","ReportAttendPeriod","fetchAttendsReport","company_name","ReportAttendBytTag","reportTag","setReportTag","tagName","ReportAttendByTagRow","ReportAttendantRow","milliseconds","numeral","ReportAttendant","fetchAttendantReport","LengthStayChart","names","deleted_date","days_length","calcClientsSize","tooltip","ReportLengthStayRow","ReportLengthOfStay","showChart","setShowChart","fetchLoSReport","LengthOfStayChart","MonthlyFollowupChart","added","inactivated","reactivated","inactivations","reactivations","ReportClienthMonthlyFollowup","fetchFollowupReport","getMonthString","ReportClientTotalMonthly","fetchTotalMonthlyReport","ReportCompanyDetailsRow","active_days","ReportCompanyDetails","setCompany","fetchCompanyDetailsReport","cli_list","ClientByCompanyChart","ReportClientByCompanyRow","filterDate","company_id","ReportClientByCompany","fetchClientByCompanyReport","isHovered","isGps","setIsInfoWindowOpen","is_charging","ClientLocationMap","setClients","hoveredClient","setHoveredClient","initialLoad","mapRef","fetchData","bounds","google","maps","LatLngBounds","fitBounds","getLatestTimestamp","timestamps","general_timestamp","wifi_timestamp","filteredClients","btnContainer","resetZoom","clientLocations","tableContent","headerAccount","headerTextContainer","clickableRow","rowHovered","onMouseEnter","onMouseLeave","panTo","setZoom","handleClientClick","bodyAccount","nameTextContainer","bodyTextContainer","ClientLocationPage","newState","checkValidation","row50","cpf_cnpj","URL","activatePlan","attendDashboardId","timeDashboardId","contactDashboardId","equipmentDashboardId","ev07BDashboardId","ataDashboardId","clientDashboardId","attendCountingDashboardId","embedUrl","setEmbedUrl","dashboardIds","setDashboardIds","sessionId","setSessionId","dashboards","dashboardId","newUrl","changeDashboard","dashboard","Middle","showChat","closeSidebar","app","toggleAudio","Children","child","cloneElement","passEmergencyToChildren","exact","render","compProps","ReportAttendsByTag","UserCompanyForm","redirect","RocketChat","realm","eventName","toggleNewMessage","isVisible","isHidden","errorMessageWrapper","errorTitle","errorText","AudioControl","audioRef","timeoutRef","playHslAudio","play","onended","currentTime","pause","paused","stopped","audioSrc","loop","Close","ModalAlarm","emergencyList","showAttendModal","busyUsers","shouldHideContainer","emergency","toggleAttendModal","removeLowerAlarm","ModalNotification","lowerPriorityAttends","lowerAlarms","refIntervalId","setCounter","alarmEvent","carouselLength","saveAttend","lowerPriorityAttendsActions","ReminderInfo","ContactInfo","phone_list","ReminderControls","closeReminder","rescheduleReminder","toggleReturnCallModal","canReceiveCall","openExtensionCaller","ReminderExtensionCall","selectedReminder","client_extra_phone","client_contact_phone","alignItems","contacts_info","ReminderWrapperComponent","openReminderComponent","updateReminder","remindersActions","setIndex","setSelectedReminder","timerSeconds","openTimestamp","requestedTime","diff","getRemainingTime","toggleHasReminders","toServerData","isLastReminder","close_attendant","cycleReminders","len","newIndex","userEquipment","client_equipment_id","hideReminder","client_phone","toggleReminderComponent","client_full_name","ownerAttendantId","setReminderAttendId","openReminderNote","client_can_receive_call","WarningModal","localeSet","loadOpenDashboardAttends","loadDashboardAttends","all","spread","loadEquipment","loadEquipmentSuccess","loadTenantStatusSuccess","loadTenantStatusFailure","loadTenantStatus","loadAttendTags","tags","loadAttendTagsSuccess","loadGlobalConfiguration","loadLocalConfiguration","App","pageReloaded","notificationList","setLoggedAttendant","loggedAttendantActions","reloadAttends","attendsDashboardActions","newAttendDashboard","updateAttendDashboard","closeAttendDashboard","addLowerAlarm","clientUpdated","addBrowserDimentions","dimentions","browserActions","loadGlobalConfig","globalConfigurationActions","loadLocalConfig","localConfigurationActions","notificationAudio","volume","refNotificationList","refEmergencyList","attendReloadInterval","openedPushstream","setPushstream","setUser","setTenantStatus","tenantIsPaid","setTenantIsPaid","tenantIsActive","setTenantIsActive","adminMessage","setAdminMessage","showAdmMessageModal","setShowAdmMessageModal","hasReminders","setHasReminders","showReminderComponent","setShowReminderComponent","setShowAttendModal","showActivationModal","setShowActivationModal","showInteractionModal","setShowInteractionModal","sidebarExpanded","setSidebarExpanded","setShowChat","setNewChatMessage","setAudioAction","reminderAttendId","setEmergencyList","setUpdateList","updateInfoNotificationText","setUpdateInfoNotificationText","setChannelId","setHasWebsocketConnection","sipStack","setSipStack","setSipStackType","setSipSessionType","setSipEventType","sipCall","setSipCall","setSipEventListener","setEventListener","setSessionListener","is_paid","getInfo","fetchChannelId","fetchTenantStatus","fetchAdminMessages","equipmentActions","attendTagsActions","innerWidth","innerHeight","methods","currentAttendReloadInterval","localUser","createSipStack","heartbeatInterval","socket","reconnectTimeout","connectHeartbeat","user_id","schema","reconnect","createPushstream","logoutUser","tenantStatusActions","trialLimit","expireAt","expireat","server","expires","newDomainInfoObj","storageChannelId","newChannelId","channel_id","messageReceived","isDifferentUser","processAttendMessage","isSysOrCompanyUser","hasClientsLoaded","indexNotification","indexEmergency","playSecondaryAudio","canPlayAudio","highestCode","playSecondaryAlarm","newEmergencyList","attendIndex","removeEmergencyItem","clearUpdateList","numberOfTimes","delay","firstTime","notificationIndex","emergencyIndex","pwd","impi","impu","SIPml","Stack","display_name","websocket_proxy_url","outbound_proxy_url","ice_servers","enable_rtcweb_breaker","events_listener","listener","eventListener","sip_headers","newSession","sipEventListener","sip_caps","makeSipCall","newSipCall","audio_remote","onSipEventSession","sleep","ms","dtmf","hangup","setUserIsBusy","rc_token","deactivatedRC","ModalWarning","localeActions","tone","LoginForm","loginFormClass","logo","errorElm","inputDomainClass","domainText","handleInputChange","inputUserClass","usernameText","inputPassClass","passwordText","handleSubmit","PasswordResetForm","setDomain","setEmail","setUsername","makePasswordReset","loadingResetEmail","onSubmit","errorEmailReset","resetEmailStatus","messagesLogin","showUsernameInput","auth","authLoginUser","btoa","email_or_username","configuration","user_config","setPassword","loginContainerClass","setLoginContainerClass","loginSuccessClass","setLoginSuccessClass","setLoginFormClass","setInputUserClass","setInputPassClass","setInputDomainClass","setErrorElm","setLoadingResetEmail","showErrorResetEmail","setShowErrorResetEmail","setShowUsernameInput","showLoginForm","setShowLoginForm","setResetEmailStatus","getCookie","cName","cookie","cStart","cEnd","errorAnimation","makeDomainValidationPost","isDomainValid","usr","tenantInfo","newDomain","unauthorized","tenant","minEl","reportWebVitals","createDevTools","toggleVisibilityKey","changePositionKey","defaultIsVisible","onPerfEntry","getCLS","getFID","getFCP","getLCP","getTTFB","ApolloClient","uri","store","configureStore","createRoot","component","LoginPage","userName","isAuthenticated","isAuthenticating","userConfiguration","errors","importInfo","clientsNotOk","clientsOk","localConfigurations","monitored_tenants","priority_attends","globalConfigurations","asteriskServer","serverList","lowerPriorityAttendsReducer","reminderComponentReducer","appReducer","combineReducers","dataList","concat","openAttends","closedAttends","attIndex","attA","attB","globalServer","server_url","server_name","asterisk_server","newContactList","rootReducer","createStore","applyMiddleware","thunk","withExtraArgument"],"mappings":"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AK,EACH,MAAiB,OAAb0B,EACK,SACe,OAAbA,EACF,SAEFC,GAAenL,GAAMyJ,OAC9B,KAAK,EACH,MAAiB,OAAbyB,EACK,WACe,OAAbA,EACF,YAEFC,GAAenL,GAAM0J,UAC9B,KAAK,GACH,MAAiB,OAAbwB,EACK,UACe,OAAbA,EACF,UAEFC,GAAenL,GAAM2J,QAC9B,KAAK,GACH,MAAiB,OAAbuB,EACK,WACe,OAAbA,EACF,WAEFC,GAAenL,GAAM4J,SAC9B,KAAK,GACH,MAAiB,OAAbsB,EACK,WACe,OAAbA,EACF,WAEFC,GAAenL,GAAM6J,SAC9B,QACE,MAAO,KAIAuB,GAAW,SAACpL,GACvB,OAAQA,GACN,IAAK,KACH,MAAO,CACL,UACA,YACA,WACA,QACA,OACA,QACA,QACA,SACA,WACA,UACA,WACA,YAEJ,IAAK,KACH,MAAO,CACL,UACA,WACA,QACA,QACA,MACA,OACA,OACA,SACA,YACA,UACA,WACA,YAEJ,QACE,MAAO,CACL,UACA,YACA,WACA,QACA,OACA,QACA,QACA,SACA,WACA,UACA,WACA,cAKKqL,GAAwB,SAACvpB,EAAO+oB,GAC3C,IAAM7K,EAAQ5H,aAAauS,cAAuBvS,aAAauS,cAApB,KAC3C,MAAc,eAAVE,EACY,IAAV/oB,EACKiR,GAASiN,GAAM,wBACH,IAAVle,EACFiR,GAASiN,GAAM,0BACH,IAAVle,EACFiR,GAASiN,GAAM,uBACH,IAAVle,EACFiR,GAASiN,GAAM,uBACH,QAAVle,EACFiR,GAASiN,GAAM,yBAEfle,EAEU,aAAV+oB,EACL/oB,IAAUiR,GAASiN,GAAM,wBACpB,EACEle,IAAUiR,GAASiN,GAAM,0BAC3B,EACEle,IAAUiR,GAASiN,GAAM,uBAC3B,EACEle,IAAUiR,GAASiN,GAAM,uBAC3B,EACEle,IAAUiR,GAASiN,GAAM,yBAC3B,MAEAle,OAZJ,GAiBIwpB,GAAoB,SAACC,GAChC,IAAMvL,EAAQ5H,aAAauS,cAAuBvS,aAAauS,cAApB,KAC3C,OAAQY,GACN,KAAM,EACJ,OAAOxY,GAASiN,GAAM,2BACxB,K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e,GAaFQ,UCjWA,IACbxgB,GAAI,CACF,CACEgD,KAAM,cACN7c,KAAM,MAER,CACE6c,KAAM,mBACN7c,KAAM,MAER,CACE6c,KAAM,UACN7c,KAAM,MAER,CACE6c,KAAM,UACN7c,KAAM,MAER,CACE6c,KAAM,iBACN7c,KAAM,MAER,CACE6c,KAAM,UACN7c,KAAM,MAER,CACE6c,KAAM,SACN7c,KAAM,MAER,CACE6c,KAAM,WACN7c,KAAM,MAER,CACE6c,KAAM,aACN7c,KAAM,MAER,CACE6c,KAAM,sBACN7c,KAAM,MAER,CACE6c,KAAM,YACN7c,KAAM,MAER,CACE6c,KAAM,UACN7c,KAAM,MAER,CACE6c,KAAM,QACN7c,KAAM,MAER,CACE6c,KAAM,YACN7c,KAAM,MAER,CACE6c,KAAM,UACN7c,KAAM,MAER,CACE6c,KAAM,aACN7c,KAAM,MAER,CACE6c,KAAM,UACN7c,KAAM,MAER,CACE6c,KAAM,UACN7c,KAAM,MAER,CACE6c,KAAM,aACN7c,KAAM,MAER,CACE6c,KAAM,WACN7c,KAAM,MAER,CACE6c,KAAM,UACN7c,KAAM,MAER,CACE6c,KAAM,UACN7c,KAAM,MAER,CACE6c,KAAM,SACN7c,KAAM,MAER,CACE6c,KAAM,QACN7c,KAAM,MAER,CACE6c,KAAM,UACN7c,KAAM,MAER,CACE6c,KAAM,SACN7c,KAAM,MAER,CACE6c,KAAM,UACN7c,KAAM,MAER,CACE6c,KAAM,yBACN7c,KAAM,MAER,CACE6c,KAAM,WACN7c,KAAM,MAER,CACE6c,KAAM,gBACN7c,KAAM,MAER,CACE6c,KAAM,SACN7c,KAAM,MAER,CACE6c,KAAM,iCACN7c,KAAM,MAER,CACE6c,KAAM,oBACN7c,KAAM,MAER,CACE6c,KAAM,WACN7c,KAAM,MAER,CACE6c,KAAM,eACN7c,KAAM,MAER,CACE6c,KAAM,UACN7c,KAAM,MAER,CACE6c,KAAM,WACN7c,KAAM,MAER,CACE6c,KAAM,WACN7c,KAAM,MAER,CACE6c,KAAM,SACN7c,KAAM,MAER,CACE6c,KAAM,aACN7c,KAAM,MAER,CACE6c,KAAM,iBACN7c,KAAM,MAER,CACE6c,KAAM,2BACN7c,KAAM,MAER,CACE6c,KAAM,OACN7c,KAAM,MAER,CACE6c,KAAM,QACN7c,KAAM,MAER,CACE6c,KAAM,QACN7c,KAAM,MAER,CACE6c,KAAM,mBACN7c,KAAM,MAER,CACE6c,KAAM,0BACN7c,KAAM,MAER,CACE6c,KAAM,WACN7c,KAAM,MAER,CACE6c,KAAM,UACN7c,KAAM,MAER,CACE6c,KAAM,QACN7c,KAAM,MAER,CACE6c,KAAM,6BACN7c,KAAM,MAER,CACE6c,KAAM,eACN7c,KAAM,MAER,CACE6c,KAAM,aACN7c,KAAM,MAER,CACE6c,KAAM,gBACN7c,KAAM,MAER,CACE6c,KAAM,UACN7c,KAAM,MAER,CACE6c,KAAM,OACN7c,KAAM,MAER,CACE6c,KAAM,SACN7c,KAAM,MAER,CACE6c,KAAM,iBACN7c,KAAM,MAER,CACE6c,KAAM,UACN7c,KAAM,MAER,CACE6c,KAAM,WACN7c,KAAM,MAER,CACE6c,KAAM,WACN7c,KAAM,MAER,CACE6c,KAAM,qBACN7c,KAAM,MAER,CACE6c,KAAM,UACN7c,KAAM,MAER,CACE6c,KAAM,QACN7c,KAAM,MAER,CACE6c,KAAM,cACN7c,KAAM,MAER,CACE6c,KAAM,oBACN7c,KAAM,MAER,CACE6c,KAAM,UACN7c,KAAM,MAER,CACE6c,KAAM,UACN7c,KAAM,MAER,CACE6c,KAAM,WACN7c,KAAM,MAER,CACE6c,KAAM,8BACN7c,KAAM,MAER,CACE6c,KAAM,gBACN7c,KAAM,MAER,CACE6c,KAAM,OACN7c,KAAM,MAER,CACE6c,KAAM,UACN7c,KAAM,MAER,CACE6c,KAAM,SACN7c,KAAM,MAER,CACE6c,KAAM,gBACN7c,KAAM,MAER,CACE6c,KAAM,mBACN7c,KAAM,MAER,CACE6c,KAAM,8BACN7c,KAAM,MAER,CACE6c,KAAM,QACN7c,KAAM,MAER,CACE6c,KAAM,SACN7c,KAAM,MAER,CACE6c,KAAM,UACN7c,KAAM,MAER,CACE6c,KAAM,UACN7c,KAAM,MAER,CACE6c,KAAM,QACN7c,KAAM,MAER,CACE6c,KAAM,YACN7c,KAAM,MAER,CACE6c,KAAM,SACN7c,KAAM,MAER,CACE6c,KAAM,YACN7c,KAAM,MAER,CACE6c,KAAM,UACN7c,KAAM,MAER,CACE6c,KAAM,aACN7c,KAAM,MAER,CACE6c,KAAM,OACN7c,KAAM,MAER,CACE6c,KAAM,YACN7c,KAAM,MAER,CACE6c,KAAM,WACN7c,KAAM,MAER,CACE6c,KAAM,SACN7c,KAAM,MAER,CACE6c,KAAM,gBACN7c,KAAM,MAER,CACE6c,KAAM,SACN7c,KAAM,MAER,CACE6c,KAAM,QACN7c,KAAM,MAER,CACE6c,KAAM,oCACN7c,KAAM,MAER,CACE6c,KAAM,gCACN7c,KAAM,MAER,CACE6c,KAAM,WACN7c,KAAM,MAER,CACE6c,KAAM,YACN7c,KAAM,MAER,CACE6c,KAAM,UACN7c,KAAM,MAER,CACE6c,KAAM,UACN7c,KAAM,MAER,CACE6c,KAAM,QACN7c,KAAM,MAER,CACE6c,KAAM,YACN7c,KAAM,MAER,CACE6c,KAAM,OACN7c,KAAM,MAER,CACE6c,KAAM,OACN7c,KAAM,MAER,CACE6c,KAAM,UACN7c,KAAM,MAER,CACE6c,KAAM,cACN7c,KAAM,MAER,CACE6c,KAAM,SACN7c,KAAM,MAER,CACE6c,KAAM,QACN7c,KAAM,MAER,CACE6c,KAAM,UACN7c,KAAM,MAER,CACE6c,KAAM,QACN7c,KAAM,MAER,CACE6c,KAAM,SACN7c,KAAM,MAER,CACE6c,KAAM,SACN7c,KAAM,MAER,CACE6c,KAAM,aACN7c,KAAM,MAER,CACE6c,KAAM,QACN7c,KAAM,MAER,CACE6c,KAAM,WACN7c,KAAM,MAER,CACE6c,KAAM,gBACN7c,KAAM,MAER,CACE6c,KAAM,gBACN7c,KAAM,MAER,CACE6c,KAAM,SACN7c,KAAM,MAER,CACE6c,KAAM,SACN7c,KAAM,MAER,CACE6c,KAAM,aACN7c,KAAM,MAER,CACE6c,KAAM,OACN7c,KAAM,MAER,CACE6c,KAAM,SACN7c,KAAM,MAER,CACE6c,KAAM,UACN7c,KAAM,MAER,CACE6c,KAAM,UACN7c,KAAM,MAER,CACE6c,KAAM,UACN7c,KAAM,MAER,CACE6c,KAAM,yBACN7c,KAAM,MAER,CACE6c,KAAM,gBACN7c,KAAM,MAER,CACE6c,KAAM,YACN7c,KAAM,MAER,CACE6c,KAAM,aACN7c,KAAM,MAER,CACE6c,KAAM,QACN7c,KAAM,MAER,CACE6c,KAAM,YACN7c,KAAM,MAER,CACE6c,KAAM,aACN7c,KAAM,MAER,CACE6c,KAAM,SACN7c,KAAM,MAER,CACE6c,KAAM,WACN7c,KAAM,MAER,CACE6c,KAAM,WACN7c,KAAM,MAER,CACE6c,KAAM,OACN7c,KAAM,MAER,CACE6c,KAAM,QACN7c,KAAM,MAER,CACE6c,KAAM,mBACN7c,KAAM,MAER,CACE6c,KAAM,aACN7c,KAAM,MAER,CACE6c,KAAM,aACN7c,KAAM,MAER,CACE6c,KAAM,YACN7c,KAAM,MAER,CACE6c,KAAM,UACN7c,KAAM,MAER,CACE6c,KAAM,SACN7c,KAAM,MAER,CACE6c,KAAM,aACN7c,KAAM,MAER,CACE6c,KAAM,UACN7c,KAAM,MAER,CACE6c,KAAM,SACN7c,KAAM,MAER,CACE6c,KAAM,WACN7c,KAAM,MAER,CACE6c,KAAM,aACN7c,KAAM,MAER,CACE6c,KAAM,UACN7c,KAAM,MAER,CACE6c,KAAM,aACN7c,KAAM,MAER,CACE6c,KAAM,UACN7c,KAAM,MAER,CACE6c,KAAM,UACN7c,KAAM,MAER,CACE6c,KAAM,QACN7c,KAAM,MAER,CACE6c,KAAM,QACN7c,KAAM,MAER,CACE6c,KAAM,cACN7c,KAAM,MAER,CACE6c,KAAM,uBACN7c,KAAM,MAER,CACE6c,KAAM,gBACN7c,KAAM,MAER,CACE6c,KAAM,cACN7c,KAAM,MAER,CACE6c,KAAM,YACN7c,KAAM,MAER,CACE6c,KAAM,QACN7c,KAAM,MAER,CACE6c,KAAM,UACN7c,KAAM,MAER,CACE6c,KAAM,OACN7c,KAAM,MAER,CACE6c,KAAM,iBACN7c,KAAM,MAER,CACE6c,KAAM,2BACN7c,KAAM,MAER,CACE6c,KAAM,SACN7c,KAAM,MAER,CACE6c,KAAM,OACN7c,KAAM,MAER,CACE6c,KAAM,WACN7c,KAAM,MAER,CACE6c,KAAM,QACN7c,KAAM,MAER,CACE6c,KAAM,kCACN7c,KAAM,MAER,CACE6c,KAAM,SACN7c,KAAM,MAER,CACE6c,KAAM,mBACN7c,KAAM,MAER,CACE6c,KAAM,WACN7c,KAAM,MAER,CACE6c,KAAM,OACN7c,KAAM,MAER,CACE6c,KAAM,cACN7c,KAAM,MAER,CACE6c,KAAM,WACN7c,KAAM,MAER,CACE6c,KAAM,SACN7c,KAAM,MAER,CACE6c,KAAM,WACN7c,KAAM,MAER,CACE6c,KAAM,cACN7c,KAAM,MAER,CACE6c,KAAM,QACN7c,KAAM,MAER,CACE6c,KAAM,UACN7c,KAAM,MAER,CACE6c,KAAM,UACN7c,KAAM,MAER,CACE6c,KAAM,qBACN7c,KAAM,MAER,CACE6c,KAAM,SACN7c,KAAM,MAER,CACE6c,KAAM,eACN7c,KAAM,MAER,CACE6c,KAAM,wBACN7c,KAAM,MAER,CACE6c,KAAM,cACN7c,KAAM,MAER,CACE6c,KAAM,4BACN7c,KAAM,MAER,CACE6c,KAAM,mCACN7c,KAAM,MAER,CACE6c,KAAM,QACN7c,KAAM,MAER,CACE6c,KAAM,aACN7c,KAAM,MAER,CACE6c,KAAM,wBACN7c,KAAM,MAER,CACE6c,KAAM,eACN7c,KAAM,MAER,CACE6c,KAAM,UACN7c,KAAM,MAER,CACE6c,KAAM,SACN7c,KAAM,MAER,CACE6c,KAAM,aACN7c,KAAM,MAER,CACE6c,KAAM,aACN7c,KAAM,MAER,CACE6c,KAAM,eACN7c,KAAM,MAER,CACE6c,KAAM,YACN7c,KAAM,MAER,CACE6c,KAAM,WACN7c,KAAM,MAER,CACE6c,KAAM,WACN7c,KAAM,MAER,CACE6c,KAAM,kBACN7c,KAAM,MAER,CACE6c,KAAM,UACN7c,KAAM,MAER,CACE6c,KAAM,eACN7c,KAAM,MAER,CACE6c,KAAM,+CACN7c,KAAM,MAER,CACE6c,KAAM,QACN7c,KAAM,MAER,CACE6c,KAAM,YACN7c,KAAM,MAER,CACE6c,KAAM,QACN7c,KAAM,MAER,CACE6c,KAAM,WACN7c,KAAM,MAER,CACE6c,KAAM,yBACN7c,KAAM,MAER,CACE6c,KAAM,YACN7c,KAAM,MAER,CACE6c,KAAM,SACN7c,KAAM,MAER,CACE6c,KAAM,cACN7c,KAAM,MAER,CACE6c,KAAM,uBACN7c,KAAM,MAER,CACE6c,KAAM,4BACN7c,KAAM,MAER,CACE6c,KAAM,aACN7c,KAAM,MAER,CACE6c,KAAM,WACN7c,KAAM,MAER,CACE6c,KAAM,WACN7c,KAAM,MAER,CACE6c,KAAM,cACN7c,KAAM,MAER,CACE6c,KAAM,OACN7c,KAAM,MAER,CACE6c,KAAM,UACN7c,KAAM,MAER,CACE6c,KAAM,QACN7c,KAAM,MAER,CACE6c,KAAM,sBACN7c,KAAM,MAER,CACE6c,KAAM,UACN7c,KAAM,MAER,CACE6c,KAAM,SACN7c,KAAM,MAER,CACE6c,KAAM,eACN7c,KAAM,MAER,CACE6c,KAAM,2BACN7c,KAAM,MAER,CACE6c,KAAM,SACN7c,KAAM,MAER,CACE6c,KAAM,SACN7c,KAAM,MAER,CACE6c,KAAM,UACN7c,KAAM,MAER,CACE6c,KAAM,uBACN7c,KAAM,MAER,CACE6c,KAAM,iBACN7c,KAAM,MAER,CACE6c,KAAM,gBACN7c,KAAM,MAER,CACE6c,KAAM,uCACN7c,KAAM,MAER,CACE6c,KAAM,UACN7c,KAAM,MAER,CACE6c,KAAM,aACN7c,KAAM,MAER,CACE6c,KAAM,UACN7c,KAAM,MAER,CACE6c,KAAM,YACN7c,KAAM,MAER,CACE6c,KAAM,WACN7c,KAAM,MAER,CACE6c,KAAM,0BACN7c,KAAM,MAER,CACE6c,KAAM,uBACN7c,KAAM,MAER,CACE6c,KAAM,oBACN7c,KAAM,MAER,CACE6c,KAAM,iBACN7c,KAAM,MAER,CACE6c,KAAM,QACN7c,KAAM,MAER,CACE6c,KAAM,SACN7c,KAAM,MAER,CACE6c,KAAM,WACN7c,KAAM,OAGV8Z,GAAI,CACF,CACE+C,KAAM,iBACN7c,KAAM,MAER,CACE6c,KAAM,mBACN7c,KAAM,MAER,CACE6c,KAAM,aACN7c,KAAM,MAER,CACE6c,KAAM,WACN7c,KAAM,MAER,CACE6c,KAAM,UACN7c,KAAM,MAER,CACE6c,KAAM,SACN7c,KAAM,MAER,CACE6c,KAAM,WACN7c,KAAM,MAER,CACE6c,KAAM,eACN7c,KAAM,MAER,CACE6c,KAAM,uBACN7c,KAAM,MAER,CACE6c,KAAM,oBACN7c,KAAM,MAER,CACE6c,KAAM,aACN7c,KAAM,MAER,CACE6c,KAAM,YACN7c,KAAM,MAER,CACE6c,KAAM,aACN7c,KAAM,MAER,CACE6c,KAAM,QACN7c,KAAM,MAER,CACE6c,KAAM,eACN7c,KAAM,MAER,CACE6c,KAAM,aACN7c,KAAM,MAER,CACE6c,KAAM,gBACN7c,KAAM,MAER,CACE6c,KAAM,UACN7c,KAAM,MAER,CACE6c,KAAM,UACN7c,KAAM,MAER,CACE6c,KAAM,aACN7c,KAAM,MAER,CACE6c,KAAM,WACN7c,KAAM,MAER,CACE6c,KAAM,UACN7c,KAAM,MAER,CACE6c,KAAM,aACN7c,KAAM,MAER,CACE6c,KAAM,SACN7c,KAAM,MAER,CACE6c,KAAM,QACN7c,KAAM,MAER,CACE6c,KAAM,WACN7c,KAAM,MAER,CACE6c,KAAM,aACN7c,KAAM,MAER,CACE6c,KAAM,2BACN7c,KAAM,MAER,CACE6c,KAAM,WACN7c,KAAM,MAER,CACE6c,KAAM,SACN7c,KAAM,MAER,CACE6c,KAAM,SACN7c,KAAM,MAER,CACE6c,KAAM,cACN7c,KAAM,MAER,CACE6c,KAAM,gBACN7c,KAAM,MAER,CACE6c,KAAM,UACN7c,KAAM,MAER,CACE6c,KAAM,WACN7c,KAAM,MAER,CACE6c,KAAM,aACN7c,KAAM,MAER,CACE6c,KAAM,cACN7c,KAAM,MAER,CACE6c,KAAM,UACN7c,KAAM,MAER,CACE6c,KAAM,YACN7c,KAAM,MAER,CACE6c,KAAM,cACN7c,KAAM,MAER,CACE6c,KAAM,iBACN7c,KAAM,MAER,CACE6c,KAAM,kBACN7c,KAAM,MAER,CACE6c,KAAM,QACN7c,KAAM,MAER,CACE6c,KAAM,QACN7c,KAAM,MAER,CACE6c,KAAM,QACN7c,KAAM,MAER,CACE6c,KAAM,SACN7c,KAAM,MAER,CACE6c,KAAM,YACN7c,KAAM,MAER,CACE6c,KAAM,cACN7c,KAAM,MAER,CACE6c,KAAM,UACN7c,KAAM,MAER,CACE6c,KAAM,QACN7c,KAAM,MAER,CACE6c,KAAM,qBACN7c,KAAM,MAER,CACE6c,KAAM,mBACN7c,KAAM,MAER,CACE6c,KAAM,kBACN7c,KAAM,MAER,CACE6c,KAAM,aACN7c,KAAM,MAER,CACE6c,KAAM,aACN7c,KAAM,MAER,CACE6c,KAAM,OACN7c,KAAM,MAER,CACE6c,KAAM,aACN7c,KAAM,MAER,CACE6c,KAAM,eACN7c,KAAM,MAER,CACE6c,KAAM,YACN7c,KAAM,MAER,CACE6c,KAAM,UACN7c,KAAM,MAER,CACE6c,KAAM,WACN7c,KAAM,MAER,CACE6c,KAAM,QACN7c,KAAM,MAER,CACE6c,KAAM,cACN7c,KAAM,MAER,CACE6c,KAAM,4BACN7c,KAAM,MAER,CACE6c,KAAM,UACN7c,KAAM,MAER,CACE6c,KAAM,cACN7c,KAAM,MAER,CACE6c,KAAM,gBACN7c,KAAM,MAER,CACE6c,KAAM,eACN7c,KAAM,MAER,CACE6c,KAAM,UACN7c,KAAM,MAER,CACE6c,KAAM,iBACN7c,KAAM,MAER,CACE6c,KAAM,aACN7c,KAAM,MAER,CACE6c,KAAM,aACN7c,KAAM,MAER,CACE6c,KAAM,OACN7c,KAAM,MAER,CACE6c,KAAM,YACN7c,KAAM,MAER,CACE6c,KAAM,eACN7c,KAAM,MAER,CACE6c,KAAM,YACN7c,KAAM,MAER,CACE6c,KAAM,WACN7c,KAAM,MAER,CACE6c,KAAM,YACN7c,KAAM,MAER,CACE6c,KAAM,OACN7c,KAAM,MAER,CACE6c,KAAM,aACN7c,KAAM,MAER,CACE6c,KAAM,YACN7c,KAAM,MAER,CACE6c,KAAM,oCACN7c,KAAM,MAER,CACE6c,KAAM,UACN7c,KAAM,MAER,CACE6c,KAAM,YACN7c,KAAM,MAER,CACE6c,KAAM,gBACN7c,KAAM,MAER,CACE6c,KAAM,YACN7c,KAAM,MAER,CACE6c,KAAM,0CACN7c,KAAM,MAER,CACE6c,KAAM,YACN7c,KAAM,MAER,CACE6c,KAAM,WACN7c,KAAM,MAER,CACE6c,KAAM,SACN7c,KAAM,MAER,CACE6c,KAAM,kBACN7c,KAAM,MAER,CACE6c,KAAM,WACN7c,KAAM,MAER,CACE6c,KAAM,sBACN7c,KAAM,MAER,CACE6c,KAAM,kBACN7c,KAAM,MAER,CACE6c,KAAM,QACN7c,KAAM,MAER,CACE6c,KAAM,UACN7c,KAAM,MAER,CACE6c,KAAM,WACN7c,KAAM,MAER,CACE6c,KAAM,YACN7c,KAAM,MAER,CACE6c,KAAM,UACN7c,KAAM,MAER,CACE6c,KAAM,WACN7c,KAAM,MAER,CACE6c,KAAM,cACN7c,KAAM,MAER,CACE6c,KAAM,sBACN7c,KAAM,MAER,CACE6c,KAAM,qBACN7c,KAAM,MAER,CACE6c,KAAM,cACN7c,KAAM,MAER,CACE6c,KAAM,aACN7c,KAAM,MAER,CACE6c,KAAM,gBACN7c,KAAM,MAER,CACE6c,KAAM,kBACN7c,KAAM,MAER,CACE6c,KAAM,cACN7c,KAAM,MAER,CACE6c,KAAM,eACN7c,KAAM,MAER,CACE6c,KAAM,cACN7c,KAAM,MAER,CACE6c,KAAM,aACN7c,KAAM,MAER,CACE6c,KAAM,eACN7c,KAAM,MAER,CACE6c,KAAM,4CACN7c,KAAM,MAER,CACE6c,KAAM,yDACN7c,KAAM,MAER,CACE6c,KAAM,iBACN7c,KAAM,MAER,CACE6c,KAAM,0BACN7c,KAAM,MAER,CACE6c,KAAM,iBACN7c,KAAM,MAER,CACE6c,KAAM,mCACN7c,KAAM,MAER,CACE6c,KAAM,gBACN7c,KAAM,MAER,CACE6c,KAAM,mBACN7c,KAAM,MAER,CACE6c,KAAM,mBACN7c,KAAM,MAER,CACE6c,KAAM,gBACN7c,KAAM,MAER,CACE6c,KAAM,uBACN7c,KAAM,MAER,CACE6c,KAAM,iCACN7c,KAAM,MAER,CACE6c,KAAM,6BACN7c,KAAM,MAER,CACE6c,KAAM,WACN7c,KAAM,MAER,CACE6c,KAAM,eACN7c,KAAM,MAER,CACE6c,KAAM,SACN7c,KAAM,MAER,CACE6c,KAAM,SACN7c,KAAM,MAER,CACE6c,KAAM,UACN7c,KAAM,MAER,CACE6c,KAAM,cACN7c,KAAM,MAER,CACE6c,KAAM,SACN7c,KAAM,MAER,CACE6c,KAAM,YACN7c,KAAM,MAER,CACE6c,KAAM,UACN7c,KAAM,MAER,CACE6c,KAAM,WACN7c,KAAM,MAER,CACE6c,KAAM,SACN7c,KAAM,MAER,CACE6c,KAAM,cACN7c,KAAM,MAER,CACE6c,KAAM,WACN7c,KAAM,MAER,CACE6c,KAAM,SACN7c,KAAM,MAER,CACE6c,KAAM,QACN7c,KAAM,MAER,CACE6c,KAAM,OACN7c,KAAM,MAER,CACE6c,KAAM,SACN7c,KAAM,MAER,CACE6c,KAAM,aACN7c,KAAM,MAER,CACE6c,KAAM,YACN7c,KAAM,MAER,CACE6c,KAAM,aACN7c,KAAM,MAER,CACE6c,KAAM,WACN7c,KAAM,MAER,CACE6c,KAAM,gBACN7c,KAAM,MAER,CACE6c,KAAM,cACN7c,KAAM,MAER,CACE6c,KAAM,aACN7c,KAAM,MAER,CACE6c,KAAM,QACN7c,KAAM,MAER,CACE6c,KAAM,wCACN7c,KAAM,MAER,CACE6c,KAAM,aACN7c,KAAM,MAER,CACE6c,KAAM,aACN7c,KAAM,MAER,CACE6c,KAAM,SACN7c,KAAM,MAER,CACE6c,KAAM,WACN7c,KAAM,MAER,CACE6c,KAAM,OACN7c,KAAM,MAER,CACE6c,KAAM,QACN7c,KAAM,MAER,CACE6c,KAAM,WACN7c,KAAM,MAER,CACE6c,KAAM,YACN7c,KAAM,MAER,CACE6c,KAAM,cACN7c,KAAM,MAER,CACE6c,KAAM,gBACN7c,KAAM,MAER,CACE6c,KAAM,UACN7c,KAAM,MAER,CACE6c,KAAM,YACN7c,KAAM,MAER,CACE6c,KAAM,gBACN7c,KAAM,MAER,CACE6c,KAAM,gBACN7c,KAAM,MAER,CACE6c,KAAM,UACN7c,KAAM,MAER,CACE6c,KAAM,YACN7c,KAAM,MAER,CACE6c,KAAM,cACN7c,KAAM,MAER,CACE6c,KAAM,aACN7c,KAAM,MAER,CACE6c,KAAM,aACN7c,KAAM,MAER,CACE6c,KAAM,SACN7c,KAAM,MAER,CACE6c,KAAM,aACN7c,KAAM,MAER,CACE6c,KAAM,QACN7c,KAAM,MAER,CACE6c,KAAM,QACN7c,KAAM,MAER,CACE6c,KAAM,eACN7c,KAAM,MAER,CACE6c,KAAM,WACN7c,KAAM,MAER,CACE6c,KAAM,aACN7c,KAAM,MAER,CACE6c,KAAM,OACN7c,KAAM,MAER,CACE6c,KAAM,UACN7c,KAAM,MAER,CACE6c,KAAM,oBACN7c,KAAM,MAER,CACE6c,KAAM,mBACN7c,KAAM,MAER,CACE6c,KAAM,SACN7c,KAAM,MAER,CACE6c,KAAM,8BACN7c,KAAM,MAER,CACE6c,KAAM,QACN7c,KAAM,MAER,CACE6c,KAAM,YACN7c,KAAM,MAER,CACE6c,KAAM,YACN7c,KAAM,MAER,CACE6c,KAAM,sBACN7c,KAAM,MAER,CACE6c,KAAM,eACN7c,KAAM,MAER,CACE6c,KAAM,WACN7c,KAAM,MAER,CACE6c,KAAM,OACN7c,KAAM,MAER,CACE6c,KAAM,wBACN7c,KAAM,MAER,CACE6c,KAAM,aACN7c,KAAM,MAER,CACE6c,KAAM,aACN7c,KAAM,MAER,CACE6c,KAAM,WACN7c,KAAM,MAER,CACE6c,KAAM,QACN7c,KAAM,MAER,CACE6c,KAAM,YACN7c,KAAM,MAER,CACE6c,KAAM,iBACN7c,KAAM,MAER,CACE6c,KAAM,+BACN7c,KAAM,MAER,CACE6c,KAAM,uCACN7c,KAAM,MAER,CACE6c,KAAM,0BACN7c,KAAM,MAER,CACE6c,KAAM,sBACN7c,KAAM,MAER,CACE6c,KAAM,aACN7c,KAAM,MAER,CACE6c,KAAM,SACN7c,KAAM,MAER,CACE6c,KAAM,kDACN7c,KAAM,MAER,CACE6c,KAAM,kBACN7c,KAAM,MAER,CACE6c,KAAM,0BACN7c,KAAM,MAER,CACE6c,KAAM,kBACN7c,KAAM,MAER,CACE6c,KAAM,kBACN7c,KAAM,MAER,CACE6c,KAAM,aACN7c,KAAM,MAER,CACE6c,KAAM,eACN7c,KAAM,MAER,CACE6c,KAAM,iBACN7c,KAAM,MAER,CACE6c,KAAM,oBACN7c,KAAM,MAER,CACE6c,KAAM,oCACN7c,KAAM,MAER,CACE6c,KAAM,gBACN7c,KAAM,MAER,CACE6c,KAAM,kBACN7c,KAAM,MAER,CACE6c,KAAM,+BACN7c,KAAM,MAER,CACE6c,KAAM,8BACN7c,KAAM,MAER,CACE6c,KAAM,UACN7c,KAAM,MAER,CACE6c,KAAM,aACN7c,KAAM,MAER,CACE6c,KAAM,YACN7c,KAAM,MAER,CACE6c,KAAM,WACN7c,KAAM,MAER,CACE6c,KAAM,aACN7c,KAAM,MAER,CACE6c,KAAM,YACN7c,KAAM,MAER,CACE6c,KAAM,iBACN7c,KAAM,MAER,CACE6c,KAAM,WACN7c,KAAM,MAER,CACE6c,KAAM,kBACN7c,KAAM,MAER,CACE6c,KAAM,YACN7c,KAAM,MAER,CACE6c,KAAM,cACN7c,KAAM,MAER,CACE6c,KAAM,WACN7c,KAAM,MAER,CACE6c,KAAM,WACN7c,KAAM,MAER,CACE6c,KAAM,kBACN7c,KAAM,MAER,CACE6c,KAAM,eACN7c,KAAM,MAER,CACE6c,KAAM,SACN7c,KAAM,MAER,CACE6c,KAAM,cACN7c,KAAM,MAER,CACE6c,KAAM,iDACN7c,KAAM,MAER,CACE6c,KAAM,qCACN7c,KAAM,MAER,CACE6c,KAAM,cACN7c,KAAM,MAER,CACE6c,KAAM,OACN7c,KAAM,MAER,CACE6c,KAAM,QACN7c,KAAM,MAER,CACE6c,KAAM,oBACN7c,KAAM,MAER,CACE6c,KAAM,sBACN7c,KAAM,MAER,CACE6c,KAAM,aACN7c,KAAM,MAER,CACE6c,KAAM,mBACN7c,KAAM,MAER,CACE6c,KAAM,UACN7c,KAAM,MAER,CACE6c,KAAM,SACN7c,KAAM,MAER,CACE6c,KAAM,aACN7c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pD,KAAM,MAER,CACEupD,UAAW,QACXvpD,KAAM,MAER,CACEupD,UAAW,MACXvpD,KAAM,MAER,CACEupD,UAAW,OACXvpD,KAAM,MAER,CACEupD,UAAW,OACXvpD,KAAM,MAER,CACEupD,UAAW,MACXvpD,KAAM,MAER,CACEupD,UAAW,MACXvpD,KAAM,MAER,CACEupD,UAAW,OACXvpD,KAAM,MAER,CACEupD,UAAW,QACXvpD,KAAM,MAER,CACEupD,UAAW,OACXvpD,KAAM,MAER,CACEupD,UAAW,OACXvpD,KAAM,MAER,CACEupD,UAAW,QACXvpD,KAAM,MAER,CACEupD,UAAW,OACXvpD,KAAM,MAER,CACEupD,UAAW,MACXvpD,KAAM,MAER,CACEupD,UAAW,OACXvpD,KAAM,MAER,CACEupD,UAAW,OACXvpD,KAAM,MAER,CACEupD,UAAW,QACXvpD,KAAM,MAER,CACEupD,UAAW,OACXvpD,KAAM,MAER,CACEupD,UAAW,OACXvpD,KAAM,MAER,CACEupD,UAAW,OACXvpD,KAAM,MAER,CACEupD,UAAW,OACXvpD,KAAM,MAER,CACEupD,UAAW,MACXvpD,KAAM,MAER,CACEupD,UAAW,OACXvpD,KAAM,MAER,CACEupD,UAAW,OACXvpD,KAAM,MAER,CACEupD,UAAW,OACXvpD,KAAM,MAER,CACEupD,UAAW,OACXvpD,KAAM,MAER,CACEupD,UAAW,OACXvpD,KAAM,MAER,CACEupD,UAAW,OACXvpD,KAAM,MAER,CACEupD,UAAW,OACXvpD,KAAM,MAER,CACEupD,UAAW,KACXvpD,KAAM,MAER,CACEupD,UAAW,OACXvpD,KAAM,MAER,CACEupD,UAAW,QACXvpD,KAAM,MAER,CACEupD,UAAW,OACXvpD,KAAM,MAER,CACEupD,UAAW,OACXvpD,KAAM,MAER,CACEupD,UAAW,MACXvpD,KAAM,MAER,CACEupD,UAAW,MACXvpD,KAAM,MAER,CACEupD,UAAW,MACXvpD,KAAM,MAER,CACEupD,UAAW,MACXvpD,KAAM,MAER,CACEupD,UAAW,MACXvpD,KAAM,MAER,CACEupD,UAAW,OACXvpD,KAAM,MAER,CACEupD,UAAW,OACXvpD,KAAM,MAER,CACEupD,UAAW,OACXvpD,KAAM,MAER,CACEupD,UAAW,OACXvpD,KAAM,MAER,CACEupD,UAAW,OACXvpD,KAAM,MAER,CACEupD,UAAW,OACXvpD,KAAM,MAER,CACEupD,UAAW,OACXvpD,KAAM,MAER,CACEupD,UAAW,MACXvpD,KAAM,MAER,CACEupD,UAAW,OACXvpD,KAAM,MAER,CACEupD,UAAW,OACXvpD,KAAM,MAER,CACEupD,UAAW,MACXvpD,KAAM,MAER,CACEupD,UAAW,OACXvpD,KAAM,MAER,CACEupD,UAAW,QACXvpD,KAAM,MAER,CACEupD,UAAW,QACXvpD,KAAM,MAER,CACEupD,UAAW,OACXvpD,KAAM,MAER,CACEupD,UAAW,MACXvpD,KAAM,MAER,CACEupD,UAAW,OACXvpD,KAAM,MAER,CACEupD,UAAW,OACXvpD,KAAM,MAER,CACEupD,UAAW,OACXvpD,KAAM,MAER,CACEupD,UAAW,OACXvpD,KAAM,MAER,CACEupD,UAAW,OACXvpD,KAAM,MAER,CACEupD,UAAW,OACXvpD,KAAM,MAER,CACEupD,UAAW,OACXvpD,KAAM,MAER,CACEupD,UAAW,OACXvpD,KAAM,MAER,CACEupD,UAAW,OACXvpD,KAAM,MAER,CACEupD,UAAW,MACXvpD,KAAM,MAER,CACEupD,UAAW,OACXvpD,KAAM,MAER,CACEupD,UAAW,OACXvpD,KAAM,MAER,CACEupD,UAAW,OACXvpD,KAAM,MAER,CACEupD,UAAW,OACXvpD,KAAM,MAER,CACEupD,UAAW,OACXvpD,KAAM,MAER,CACEupD,UAAW,MACXvpD,KAAM,MAER,CACEupD,UAAW,OACXvpD,KAAM,MAER,CACEupD,UAAW,OACXvpD,KAAM,MAER,CACEupD,UAAW,MACXvpD,KAAM,MAER,CACEupD,UAAW,OACXvpD,KAAM,MAER,CACEupD,UAAW,QACXvpD,KAAM,MAER,CACEupD,UAAW,OACXvpD,KAAM,MAER,CACEupD,UAAW,QACXvpD,KAAM,MAER,CACEupD,UAAW,OACXvpD,KAAM,MAER,CACEupD,UAAW,MACXvpD,KAAM,MAER,CACEupD,UAAW,OACXvpD,KAAM,MAER,CACEupD,UAAW,OACXvpD,KAAM,MAER,CACEupD,UAAW,OACXvpD,KAAM,MAER,CACEupD,UAAW,OACXvpD,KAAM,MAER,CACEupD,UAAW,OACXvpD,KAAM,MAER,CACEupD,UAAW,OACXvpD,KAAM,MAER,CACEupD,UAAW,OACXvpD,KAAM,MAER,CACEupD,UAAW,MACXvpD,KAAM,MAER,CACEupD,UAAW,OACXvpD,KAAM,MAER,CACEupD,UAAW,MACXvpD,KAAM,MAER,CACEupD,UAAW,MACXvpD,KAAM,MAER,CACEupD,UAAW,MACXvpD,KAAM,MAER,CACEupD,UAAW,OACXvpD,KAAM,MAER,CACEupD,UAAW,OACXvpD,KAAM,MAER,CACEupD,UAAW,MACXvpD,KAAM,MAER,CACEupD,UAAW,OACXvpD,KAAM,MAER,CACEupD,UAAW,MACXvpD,KAAM,MAER,CACEupD,UAAW,QACXvpD,KAAM,MAER,CACEupD,UAAW,MACXvpD,KAAM,MAER,CACEupD,UAAW,MACXvpD,KAAM,MAER,CACEupD,UAAW,OACXvpD,KAAM,MAER,CACEupD,UAAW,MACXvpD,KAAM,MAER,CACEupD,UAAW,OACXvpD,KAAM,MAER,CACEupD,UAAW,OACXvpD,KAAM,MAER,CACEupD,UAAW,OACXvpD,KAAM,MAER,CACEupD,UAAW,MACXvpD,KAAM,MAER,CACEupD,UAAW,OACXvpD,KAAM,MAER,CACEupD,UAAW,OACXvpD,KAAM,MAER,CACEupD,UAAW,OACXvpD,KAAM,MAER,CACEupD,UAAW,OACXvpD,KAAM,MAER,CACEupD,UAAW,OACXvpD,KAAM,MAER,CACEupD,UAAW,OACXvpD,KAAM,MAER,CACEupD,UAAW,OACXvpD,KAAM,MAER,CACEupD,UAAW,OACXvpD,KAAM,MAER,CACEupD,UAAW,OACXvpD,KAAM,MAER,CACEupD,UAAW,OACXvpD,KAAM,MAER,CACEupD,UAAW,OACXvpD,KAAM,MAER,CACEupD,UAAW,OACXvpD,KAAM,MAER,CACEupD,UAAW,OACXvpD,KAAM,MAER,CACEupD,UAAW,OACXvpD,KAAM,MAER,CACEupD,UAAW,OACXvpD,KAAM,MAER,CACEupD,UAAW,MACXvpD,KAAM,MAER,CACEupD,UAAW,OACXvpD,KAAM,MAER,CACEupD,UAAW,OACXvpD,KAAM,MAER,CACEupD,UAAW,OACXvpD,KAAM,MAER,CACEupD,UAAW,OACXvpD,KAAM,MAER,CACEupD,UAAW,OACXvpD,KAAM,MAER,CACEupD,UAAW,OACXvpD,KAAM,MAER,CACEupD,UAAW,OACXvpD,KAAM,MAER,CACEupD,UAAW,OACXvpD,KAAM,MAER,CACEupD,UAAW,MACXvpD,KAAM,MAER,CACEupD,UAAW,OACXvpD,KAAM,MAER,CACEupD,UAAW,OACXvpD,KAAM,MAER,CACEupD,UAAW,OACXvpD,KAAM,MAER,CACEupD,UAAW,OACXvpD,KAAM,MAER,CACEupD,UAAW,OACXvpD,KAAM,MAER,CACEupD,UAAW,QACXvpD,KAAM,MAER,CACEupD,UAAW,OACXvpD,KAAM,MAER,CACEupD,UAAW,OACXvpD,KAAM,MAER,CACEupD,UAAW,MACXvpD,KAAM,MAER,CACEupD,UAAW,OACXvpD,KAAM,MAER,CACEupD,UAAW,OACXvpD,KAAM,MAER,CACEupD,UAAW,OACXvpD,KAAM,MAER,CACEupD,UAAW,MACXvpD,KAAM,MAER,CACEupD,UAAW,OACXvpD,KAAM,MAER,CACEupD,UAAW,OACXvpD,KAAM,MAER,CACEupD,UAAW,MACXvpD,KAAM,MAER,CACEupD,UAAW,OACXvpD,KAAM,MAER,CACEupD,UAAW,OACXvpD,KAAM,MAER,CACEupD,UAAW,OACXvpD,KAAM,MAER,CACEupD,UAAW,OACXvpD,KAAM,MAER,CACEupD,UAAW,OACXvpD,KAAM,MAER,CACEupD,UAAW,QACXvpD,KAAM,MAER,CACEupD,UAAW,MACXvpD,KAAM,MAER,CACEupD,UAAW,OACXvpD,KAAM,MAER,CACEupD,UAAW,MACXvpD,KAAM,MAER,CACEupD,UAAW,OACXvpD,KAAM,MAER,CACEupD,UAAW,OACXvpD,KAAM,MAER,CACEupD,UAAW,OACXvpD,KAAM,MAER,CACEupD,UAAW,OACXvpD,KAAM,MAER,CACEupD,UAAW,OACXvpD,KAAM,MAER,CACEupD,UAAW,MACXvpD,KAAM,MAER,CACEupD,UAAW,MACXvpD,KAAM,MAER,CACEupD,UAAW,OACXvpD,KAAM,MAER,CACEupD,UAAW,MACXvpD,KAAM,MAER,CACEupD,UAAW,OACXvpD,KAAM,MAER,CACEupD,UAAW,QACXvpD,KAAM,MAER,CACEupD,UAAW,OACXvpD,KAAM,MAER,CACEupD,UAAW,MACXvpD,KAAM,MAER,CACEupD,UAAW,KACXvpD,KAAM,MAER,CACEupD,UAAW,OACXvpD,KAAM,MAER,CACEupD,UAAW,OACXvpD,KAAM,MAER,CACEupD,UAAW,OACXvpD,KAAM,MAER,CACEupD,UAAW,OACXvpD,KAAM,MAER,CACEupD,UAAW,QACXvpD,KAAM,MAER,CACEupD,UAAW,QACXvpD,KAAM,MAER,CACEupD,UAAW,OACXvpD,KAAM,MAER,CACEupD,UAAW,OACXvpD,KAAM,MAER,CACEupD,UAAW,QACXvpD,KAAM,MAER,CACEupD,UAAW,OACXvpD,KAAM,MAER,CACEupD,UAAW,OACXvpD,KAAM,MAER,CACEupD,UAAW,OACXvpD,KAAM,MAER,CACEupD,UAAW,OACXvpD,KAAM,MAER,CACEupD,UAAW,OACXvpD,KAAM,MAER,CACEupD,UAAW,OACXvpD,KAAM,MAER,CACEupD,UAAW,OACXvpD,KAAM,MAER,CACEupD,UAAW,OACXvpD,KAAM,MAER,CACEupD,UAAW,MACXvpD,KAAM,MAER,CACEupD,UAAW,OACXvpD,KAAM,MAER,CACEupD,UAAW,OACXvpD,KAAM,MAER,CACEupD,UAAW,OACXvpD,KAAM,MAER,CACEupD,UAAW,OACXvpD,KAAM,MAER,CACEupD,UAAW,MACXvpD,KAAM,MAER,CACEupD,UAAW,OACXvpD,KAAM,MAER,CACEupD,UAAW,OACXvpD,KAAM,MAER,CACEupD,UAAW,MACXvpD,KAAM,MAER,CACEupD,UAAW,MACXvpD,KAAM,MAER,CACEupD,UAAW,OACXvpD,KAAM,MAER,CACEupD,UAAW,OACXvpD,KAAM,MAER,CACEupD,UAAW,MACXvpD,KAAM,MAER,CACEupD,UAAW,OACXvpD,KAAM,MAER,CACEupD,UAAW,MACXvpD,KAAM,MAER,CACEupD,UAAW,MACXvpD,KAAM,MAER,CACEupD,UAAW,OACXvpD,KAAM,MAER,CACEupD,UAAW,OACXvpD,KAAM,MAER,CACEupD,UAAW,OACXvpD,KAAM,MAER,CACEupD,UAAW,OACXvpD,KAAM,MAER,CACEupD,UAAW,MACXvpD,KAAM,MAER,CACEupD,UAAW,OACXvpD,KAAM,MAER,CACEupD,UAAW,OACXvpD,KAAM,MAER,CACEupD,UAAW,OACXvpD,KAAM,MAER,CACEupD,UAAW,OACXvpD,KAAM,MAER,CACEupD,UAAW,QACXvpD,KAAM,MAER,CACEupD,UAAW,OACXvpD,KAAM,MAER,CACEupD,UAAW,MACXvpD,KAAM,MAER,CACEupD,UAAW,OACXvpD,KAAM,MAER,CACEupD,UAAW,QACXvpD,KAAM,MAER,CACEupD,UAAW,OACXvpD,KAAM,MAER,CACEupD,UAAW,OACXvpD,KAAM,MAER,CACEupD,UAAW,OACXvpD,KAAM,MAER,CACEupD,UAAW,OACXvpD,KAAM,MAER,CACEupD,UAAW,MACXvpD,KAAM,MAER,CACEupD,UAAW,KACXvpD,KAAM,MAER,CACEupD,UAAW,OACXvpD,KAAM,MAER,CACEupD,UAAW,OACXvpD,KAAM,MAER,CACEupD,UAAW,OACXvpD,KAAM,MAER,CACEupD,UAAW,MACXvpD,KAAM,MAER,CACEupD,UAAW,MACXvpD,KAAM,MAER,CACEupD,UAAW,QACXvpD,KAAM,MAER,CACEupD,UAAW,QACXvpD,KAAM,MAER,CACEupD,UAAW,OACXvpD,KAAM,MAER,CACEupD,UAAW,OACXvpD,KAAM,MAER,CACEupD,UAAW,OACXvpD,KAAM,MAER,CACEupD,UAAW,OACXvpD,KAAM,O,qBC37BJwpD,GAAe,SAAC,GAAiE,IAAD,EAA9D/pC,EAA8D,EAA9DA,MAAOiU,EAAuD,EAAvDA,SAAUtiB,EAA6C,EAA7CA,MAAOq4C,EAAsC,EAAtCA,YAAa3pC,EAAyB,EAAzBA,QAAS4f,EAAgB,EAAhBA,UAC9DgqB,EAAuBt4C,EAAMo2C,aAA2Ep2C,EAAMo2C,aAAxF,UAAsB8B,GAAalgD,MAAK,SAAAsnB,GAAG,OAAIA,EAAI1wB,OAAS8f,YAA5D,aAAsB,EAAgDypC,UAC5FI,EAAc,SAACvpB,EAAIyB,GACvBnO,EAAS0M,EAAIyB,EAASpiB,IAIpBmqC,EAAQ,GACZ,OAAQ9pC,GACN,IAAK,SACL,IAAK,KACH8pC,EAAQ,CAAC,iBAAkB,oBAC3B,MAEF,IAAK,KACHA,EAAQ,mBACR,MAEF,IAAK,KACHA,EAAQ,WACR,MAEF,QACEA,EAAQ,GAIZ,OACE,sBAAK1jD,UAAU,WAAf,UACE,sBAAKA,UAAU,gCAAf,UACE,wBAAOA,UAAU,aAAastB,QAAO,oBAAe/T,GAAS,6BAAqBA,GAAlF,UACE,cAAC,IAAD,CAAkB7jB,GAAG,2BAA2BmM,eAAe,sBADjE,KACmF,sBAAM7B,UAAU,gBAAhB,kBAEnF,wBACEtK,GAAE,uBAAkB6jB,GACpBvZ,UAAU,sBACV2W,KAAK,eACL6W,SAAUi2B,EACVh3D,MAAO+2D,GAA4C,MALrD,SAOGJ,GAAaz8C,KAAI,SAAA6jB,GAAG,OACnB,yBAAqC/9B,MAAO+9B,EAAI64B,UAAhD,UACqB,OAAlB74B,EAAI64B,UAAJ,UAA4B74B,EAAI1wB,KAAhC,OAA2C0wB,EAAI1wB,KADlD,IACyD0wB,EAAI64B,YAD7D,UAAgB74B,EAAI1wB,KAApB,YAA4Byf,YAOlC,sBAAKvZ,UAAU,gCAAf,UACE,wBAAOA,UAAU,aAAastB,QAAO,eAAU/T,GAAS,8BAAsBA,GAA9E,UACE,cAAC,IAAD,CAAkB7jB,GAAG,qBAAqBmM,eAAe,aAD3D,KAC0E,sBAAM7B,UAAU,gBAAhB,uBAEzD7T,IAAhB+e,EAAMA,OACL,cAAC,GAAD,CACExV,GAAE,eAAU6jB,GAEZviB,KAAK,OACL2f,KAAK,QACL+iB,UAAQ,EACRjtC,MAAOye,EAAMA,MACbiO,KAAMuqC,EACNhB,UAAYgB,EAAY,GAAJ,EACpBl2B,SAAUi2B,EACVV,SAAO,EACPC,QAAM,EACNR,WAAW,eACXD,WAAW,0BACXU,eAAgBvnD,KAAM,oBAdxB,eAEe6d,OAiBnB,sBAAKvZ,UAAU,gCAAf,UACE,wBAAOA,UAAU,aAAastB,QAAO,oBAAe/T,GAAS,6BAAqBA,GAAlF,UACE,cAAC,IAAD,CAAkB7jB,GAAG,oBAAoBmM,eAAe,SAD1D,KACqE,sBAAM7B,UAAU,gBAAhB,uBAE/C7T,IAArB+e,EAAMi2C,YACP,uBAAMnhD,UAAU,aAAhB,UACE,cAAC,GAAD,CACEtK,GAAE,oBAAe6jB,GACjB2nB,YAAY,sBACZnH,MA5Ec,CAAC,OAAQ,UAAW,OAAQ,aA6E1CD,WAAYhgB,GACZrtB,MAAOye,EAAMi2C,WACb3zB,SAAUA,EACV7W,KAAK,aACL4C,MAAOA,MAENA,GACH,sBAAMvZ,UAAU,mBAAhB,SACE,wBAAQhJ,KAAK,SAAS0E,MApFf,CAAEG,OAAQ,EAAG+vB,QAAS,EAAGxf,gBAAiB,eAoFVlM,QAASqjD,EAAa,qCAA6BhqC,GAA1F,SACE,cAAC,GAAD,CAAQvZ,UAAU,yCAAyCrE,MAAM,KAAKC,OAAO,KAAKunD,QAAS5pC,WAOjG,qBAAKvZ,UAAS,UAAKutB,KAAUr0B,QAAf,oBAA0CwC,MAAO,CAAEC,MAAO,OAAQkmB,UAAW,QAA3F,SACG2X,EAAUtgC,iBAQrBoqD,GAAatiD,aAAe,CAC1BwsB,SAAU,aACV5T,QAAS,MAmBI0pC,UC3IA,IACb3vC,GAAI,CACF,MACA,WACA,WACA,gBACA,aACA,kBACA,aACA,aACA,SACA,QACA,eACA,eACA,UACA,SACA,iBACA,gBACA,aACA,aACA,YACA,QACA,eACA,SAEFC,GAAI,CACF,QACA,QACA,OACA,OACA,QACA,OACA,QACA,QACA,WACA,WACA,UACA,UACA,WACA,UACA,UACA,UACA,QACA,QACA,gBACA,WACA,mBACA,U,OCgxCW3Z,0BA7Bf,SAAyB6E,EAAOmC,GAC9B,MAAO,CACL0qB,SAAU7sB,EAAM6sB,SAChBp8B,OAAQ0R,EAAS1R,OACjB46B,UAAWrrB,EAAMqrB,UAAU38B,OAAS,GAAKsR,EAAMqrB,UAAU,GAAGl8B,KAC5DwxD,kBAAmB3gD,EAAMoC,gBAAgBxL,GAAKoJ,EAAMoC,gBAAgBxL,GAAK,EACzEmU,UAAmD,IAAxC/K,EAAMoC,gBAAgBK,OAAO/T,OACxCm2D,aAAY7kD,EAAMoC,gBAAgBK,UACO,IAApCzC,EAAMoC,gBAAgBK,OAAO,IACQ,IAApCzC,EAAMoC,gBAAgBK,OAAO,KACS,IAAxCzC,EAAMoC,gBAAgBK,OAAO/T,QAEjCohB,oBAAqB9P,EAAM8P,oBAAoBC,WAInD,SAA4BpK,GAC1B,MAAO,CACL86C,aAAc,SAAChuB,EAAU7jB,GAAX,OACZjJ,EAASi7C,GAA6BnuB,EAAU7jB,KAClD8xC,YAAa,SAACjuB,EAAU+pB,GAAX,OACX72C,EAASi7C,GAA4BnuB,EAAU+pB,KACjDsI,cAAe,SAACryB,EAAU+pB,GAAX,OACb72C,ER9wCC,SAAuB8sB,EAAU+pB,GACtC,IAAMzjD,EAAS+K,IACTY,EAAQH,IAEd,OAAO,SAACoB,EAAU4I,EAAX,OAAuB3I,EAAvB,EAAuBA,MAAvB,OAAmC,IAAIC,SAAQ,SAACC,EAASC,GAAV,OACpDH,EAAM,CACJvR,OAAQ,OACR2R,aAAc,OACdnV,IAAI,WAAD,OAAakI,GAAb,O/I7CE,kB+I6CF,wBAA4C05B,EAA5C,cACHtjC,KAAMqtD,EACNv2C,QAAS,CAAEE,cAAc,SAAD,OAAWzB,MAEpC0B,MAAK,SAACC,GAAD,OAASP,EAAQH,EAAS26C,GAAaj6C,EAAIlX,KAAMsjC,QACtDnsB,OAAM,SAACxU,GAMN,OALIA,EAAM2c,UACsB,MAA1B3c,EAAM2c,SAASza,QACjB+R,EAAOJ,EAAS2I,MAGbvI,EAAOjU,UQ2vCL8uD,CAA8BnuB,EAAU+pB,KACnDuI,eAAgB,SAACtyB,EAAU+pB,GAAX,OACd72C,ERzsCC,SAAwB8sB,EAAU+pB,GACvC,IAAMzjD,EAAS+K,IACTY,EAAQH,IAEd,OAAO,SAACoB,EAAU4I,EAAX,OAAuB3I,EAAvB,EAAuBA,MAAvB,OAAmC,IAAIC,SAAQ,SAACC,EAASC,GAAV,OACpDH,EAAM,CACJvR,OAAQ,SACR2R,aAAc,OACdnV,IAAI,WAAD,OAAakI,GAAb,O/IpHE,kB+IoHF,wBAA4C05B,EAA5C,qBAAiE+pB,EAAQ5lD,GAAzE,aACHqP,QAAS,CAAEE,cAAc,SAAD,OAAWzB,MAEpC0B,MAAK,kBAAMN,EAAQH,EAAS66C,GAAehE,EAAS/pB,QACpDnsB,OAAM,SAACxU,GAMN,OALIA,EAAM2c,UACsB,MAA1B3c,EAAM2c,SAASza,QACjB2R,EAAS2I,KAGNvI,EAAOjU,UQurCL8uD,CAA+BnuB,EAAU+pB,QAIzCrhD,EAlyCK,SAAC6F,GAAW,IAAD,EACvB6K,EAAQ5H,aAAauS,cAAuBvS,aAAauS,cAApB,KAC3C,EAAgClV,oBAAS,GAAzC,mBAAO0jD,EAAP,KAAiBC,EAAjB,KACA,EAAgD3jD,oBAAS,GAAzD,mBAAO4jD,EAAP,KAAyBC,EAAzB,KACA,EAA4B7jD,wBAASjU,GAArC,mBAAOic,EAAP,KAAe0tB,EAAf,KACA,EAAwC11B,mBAAS,IAAjD,mBAAO8jD,EAAP,KAAqBC,EAArB,KACA,EAA0B/jD,oBAAS,GAAnC,mBAAOxP,EAAP,KAAcmtC,EAAd,KACA,EAAgC39B,mBAAS,IAAzC,mBAAOu6B,EAAP,KAAiBqD,EAAjB,KACA,EAAkC59B,mBAAS,GAA3C,mBAAOs6B,EAAP,KAAkBuD,EAAlB,KACA,EAA4B79B,mBAAS,CAAC,CAAE+gD,WAAY,UAAWj2C,MAAO,MAAtE,mBAAOswC,EAAP,KAAe4I,EAAf,KACA,EAA4ChkD,mBAAS,CACnD,CAAE+gD,YAAY,EAAMj2C,OAAO,EAAOhS,QAAS,MAD7C,mBAAOmrD,EAAP,KAAuBC,EAAvB,KAGA,EAAwDlkD,mBACtDmkD,GAAsB55C,GAAM45C,GAAsB55C,GAAMnd,OAAS,IADnE,mBAAOg3D,EAAP,KAA6BC,EAA7B,KAGA,EAA8BrkD,mBAAS,CACrC1K,QAAIvJ,EACJ8/B,WAAY,GACZC,UAAW,GACX2vB,SAAU,GACVI,aAAc,GACd7zC,OAAQtI,EAAMhI,MAAMvI,OAAOgiC,SAC3ByH,MAAO,GACPpB,OAAQ,GACRC,OAAQ,GACRC,WAAY,GACZC,SAAU,GACVE,KAAM,GACNn5B,MAAO,KACP8a,QAAS,KACTynC,UAAU,EACVrpB,SAAU,GACVwjB,OAAQ,GACRxvB,QAAS,GACT04B,gBAAgB,EAChBC,iBAAiB,EACjB9F,eAAe,IArBjB,mBAAOvD,EAAP,KAAgBsE,GAAhB,KAuBA,GAAkCx/C,oBAAS,GAA3C,qBAAQwkD,GAAR,MAAkBC,GAAlB,MACA,GAAkCzkD,mBAAS,CACzC6rB,WAAY,CAAE0N,UAAU,EAAMzgC,QAAS,IACvCgzB,UAAW,CAAEyN,UAAU,EAAMzgC,QAAS,IACtC2iD,SAAU,CAAEliB,UAAU,EAAMzgC,QAAS,IACrC+iD,aAAc,CAAEtiB,UAAU,EAAMzgC,QAAS,IACzC8/B,MAAO,CAAEW,UAAU,EAAMzgC,QAAS,MALpC,qBAAOsgC,GAAP,MAAkBsrB,GAAlB,MAOA,GAA8B1kD,mBAAS,CACrC,CACEy7C,SAAU,EACVkG,aAAa,EACbD,eAAe,EACfE,kBAAkB,GAEpB,CACEnG,SAAU,EACVkG,aAAa,EACbD,eAAe,EACfE,kBAAkB,GAEpB,CACEnG,SAAU,EACVkG,aAAa,EACbD,eAAe,EACfE,kBAAkB,GAEpB,CACEnG,SAAU,EACVkG,aAAa,EACbD,eAAe,EACfE,kBAAkB,KAvBtB,qBAAOh2B,GAAP,MAAgB+4B,GAAhB,MA0BA,GAA8C3kD,mBAAS,CACrD4kD,kBAAmB,CAAErpB,SAAS,EAAMziC,QAAS,MAD/C,qBAAO+rD,GAAP,MAAwBC,GAAxB,MAGA,GAAgD9kD,mBAC9Csc,IADF,qBAAOyoC,GAAP,MAAyBC,GAAzB,MAIQ7F,GAAiBz/C,EAAjBy/C,aAERh/C,qBAAU,WAENgkD,GAAsB55C,GAAMoB,MAAK,SAACumC,GAAD,OAASA,IAAQgJ,EAAQW,gBAE1DwI,EAAwBnJ,EAAQW,cAEhCwI,EACEF,GAAsB55C,GAAM45C,GAAsB55C,GAAMnd,OAAS,MAGpE,CAAC8tD,EAAQW,aAActxC,IAE1BpK,qBAAU,WACRy/C,GAAWlgD,EAAMhI,MAAMvI,OAAOgiC,UAC9BguB,GAAaz/C,EAAMhI,MAAMvI,OAAOgiC,YAC/B,CAACguB,GAAcz/C,EAAMhI,MAAMvI,OAAOgiC,WAErChxB,qBAAU,WACJT,EAAM6rB,SAASn+B,OAAS,GAC1B63D,GAAavlD,EAAM6rB,YAEpB,CAAC7rB,EAAM6rB,SAASn+B,SAEnB+S,qBAAU,WACR,IAAM2gD,EAAe1F,EAAOt4C,MAAK,SAAC7G,GAAD,MAAwB,YAAjBA,EAAE8kD,cAC1C,GAAID,EAAc,CAChB,IAAIoE,GAAsB,EACpBC,EAAa9tB,GAAuBypB,EAAah2C,OAAO,GACtC,OAApBowC,EAAQ1hC,SAAwC,WAApB0hC,EAAQ1hC,UACtC0rC,EAAsBrsB,GAAessB,IAEvC,IAAMC,EAAoBx5B,GAAQjgB,MAChC,SAAC7D,GAAD,OAAYA,EAAO85C,oBAInBkD,GADEM,IAAsBF,EAEtBt1D,OAAOiU,OAAO,CACZ+gD,kBAAmB,CACjBrpB,SAAS,EACTziC,QACE,8EAMNlJ,OAAOiU,OAAO,CAAE+gD,kBAAmB,CAAErpB,SAAS,EAAMziC,QAAS,UAIlE,CAAC8yB,GAASwvB,EAAQF,EAAQ1hC,UAE7B,IAMMomC,GAAa,SAACzuB,GAClB7sB,IACG4I,IADH,kBACkB1K,KADlB,OvJrKO,kBuJqKP,wBACsD2uB,EADtD,KACmE,CAC/DxsB,QAAS,CAAEE,cAAc,SAAD,OAAW5B,QAEpC6B,MAAK,SAACC,GAAD,OAAS2wB,EAAU3wB,EAAIlX,SAC5BmX,OAAM,SAACxU,GAAD,OAAWE,QAAQC,IAAIH,OAG5By0D,GAAe,SAACvE,GACpB,IAAQ3tD,EAAW2M,EAAMhI,MAAMvI,OAAvB4D,OACF4pD,EACO,SAAX5pD,GAAqBsd,SAAS3Q,EAAMhI,MAAMvI,OAAOwtD,UAAW,IACxD0I,EAAiB3E,EAAY59C,MACjC,SAACyoB,GAAD,OAAcA,EAAS4F,WAAazxB,EAAMhI,MAAMvI,OAAOgiC,YAEnDm0B,EAAkBD,EAAex3D,KAAK0Y,KAAI,SAACi6C,GAAD,OAAUA,EAAK/E,YAC/D,GAAe,SAAX1oD,EAAmB,CACrB,IAAM6tD,EAAeyE,EAAex3D,KAAKiV,MAAK,SAAC44B,GAAD,OAAOA,EAAEpmC,KAAOqnD,KAC1DtmB,EAAc/Z,GACW,OAAzBskC,EAAapnC,UACf6c,EAAc,CAAC,MAEjBouB,GAAY7D,EAAalC,WACzB,IAAM6G,EAAY3E,EAAaxF,OAAO70C,KAAI,SAACsS,GAAD,OACxCjpB,OAAOiU,OAAO,GAAIgV,EAAI,CACpB/N,MAAOusB,GAAyBxe,EAAG/N,MAAO81C,EAAapnC,cAG3DgmC,GACE5vD,OAAOiU,OAAO,GAAI+8C,EAAc,CAC9BhpB,SAAUP,GAAgBupB,EAAahpB,SAAU,gBAGrDosB,EAAUuB,EAAUl4B,MAAK,SAACnS,EAAGC,GAAJ,OAAUD,EAAE5lB,GAAK6lB,EAAE7lB,OAC5C4uD,EACEtD,EAAaxF,OAAO70C,KAAI,iBAAO,CAC7Bw6C,YAAY,EACZj2C,OAAO,EACPhS,QAAS,QAGb6rD,GAAW,YAAI/D,EAAah1B,UAC5Bo5B,GAAoB3uB,GAEtB0tB,EAAgBuB,IAGZE,GAAkB,SAAC1rB,GACvB,IAAMxY,EAAQwY,EAAG5zB,OAAOqQ,KAClBlqB,EAAQytC,EAAG5zB,OAAO7Z,MAExBo5D,GAAa,CAAEnkC,QAAOj1B,UACtBq5D,GAAc,CAAEpkC,QAAOj1B,WAGnBo5D,GAAe,SAAC,GAAsB,IAApBnkC,EAAmB,EAAnBA,MAAOj1B,EAAY,EAAZA,MACzB0zD,EAAanwD,OAAOiU,OAAO,GAAIq3C,GACnC,OAAQ55B,GACN,IAAK,WACHy+B,EAAWz+B,GACM,OAAfy+B,EAAsB1oB,GAAgBhrC,GAASA,EACjD,MAEF,IAAK,WACH0zD,EAAWz+B,GAASjR,SAAShkB,EAAO,IACpC,MAEF,QACE0zD,EAAWz+B,GAASj1B,EAExBmzD,GAAW5vD,OAAOiU,OAAO,GAAIk8C,KAoBzB2F,GAAgB,SAAC,GAAsB,IAApBpkC,EAAmB,EAAnBA,MAAOj1B,EAAY,EAAZA,MAC1B+uC,EAAexrC,OAAOiU,OAAO,GAAIu1B,IACrC,OAAQ9X,GACN,IAAK,aACL,IAAK,YACL,IAAK,QACH,IAAMqkC,EAAct5D,EAAMe,QAAU,EACpCguC,EAAa9Z,GAAOiY,SAAWosB,EAC1BA,GAQHvqB,EAAa9Z,GAAOiY,UAAW,EAC/B6B,EAAa9Z,GAAOxoB,QAAU,IAR9BsiC,EAAa9Z,GAAOxoB,QAClB,cAAC,IAAD,CACExD,GAAG,8BACHmM,eAAe,kDAOrB,MAEF,IAAK,eACH,IAAMkkD,EAAct5D,EAAMe,QAAU,EAEpC,GADAguC,EAAa9Z,GAAOiY,SAAWosB,EAC1BA,EAQwBt5D,EAAM,KAAOA,EAAM,GAAGga,eAE/C+0B,EAAa9Z,GAAOiY,UAAW,EAC/B6B,EAAa9Z,GAAOxoB,QAAU,KAE9BsiC,EAAa9Z,GAAOiY,UAAW,EAC/B6B,EAAa9Z,GAAOxoB,QAClB,cAAC,IAAD,CACExD,GAAG,kCACHmM,eAAe,kDAhBrB25B,EAAa9Z,GAAOxoB,QAClB,cAAC,IAAD,CACExD,GAAG,8BACHmM,eAAe,kDAkBrB,MAEF,IAAK,WACH,IAAMmkD,EAAiB9B,EAAaxiD,SAAS+O,SAAShkB,EAAO,KAC7D+uC,EAAa9Z,GAAOiY,UAAYqsB,EAC5BA,EACFxqB,EAAa9Z,GAAOxoB,QAClB,cAAC,IAAD,CACExD,GAAG,qCACHmM,eAAe,iDAInB25B,EAAa9Z,GAAOiY,UAAW,EAC/B6B,EAAa9Z,GAAOxoB,QAAU,IAOpC4rD,GAAa90D,OAAOiU,OAAO,GAAIu3B,KAkE3BioB,GAAc,SAACzqD,EAAO2iC,EAASpiB,GACnC,IAAM5C,EAAO3d,EAAMsN,OAAOqQ,KACpBlqB,EAAQuM,EAAMsN,OAAO7Z,MAAQuM,EAAMsN,OAAO7Z,MAAQ,IAElDw5D,EAAezK,EAAO70C,KAAI,SAACsS,EAAI1rB,GACnC,GAAIA,IAAMgsB,EAAO,CACf,GAAa,eAAT5C,EACF,OAAO3mB,OAAOiU,OAAO,GAAIgV,EAAI,CAAEkoC,WAAY10D,IAE7C,GAAa,UAATkqB,EACF,OAAO3mB,OAAOiU,OAAO,GAAIgV,EAAI,CAAE/N,MAAOze,IAExC,GAAa,iBAATkqB,EACF,OAAO3mB,OAAOiU,OAAO,GAAIgV,EAAI,CAAEqoC,aAAc70D,IAGjD,OAAOuD,OAAOiU,OAAO,GAAIgV,MAGrBitC,EAAoB7B,EAAe19C,KAAI,SAAC6yB,EAAWjsC,GACvD,GAAIA,IAAMgsB,EAAO,CACf,GAAa,eAAT5C,EAAuB,CACzB,GAAc,YAAVlqB,EAIF,GAFEw5D,EAAazkD,QAAO,SAAC0J,GAAD,MAAgC,YAArBA,EAAMi2C,cAClC3zD,OAAS,EAEZ,OAAOwC,OAAOiU,OACZ,GACAu1B,EACA,CAAE2nB,YAAY,GACd,CAAEjoD,QAAS,gDASjB,OAJsB+sD,EAAal6C,MACjC,SAAC1P,GAAD,MAAwB,YAAjBA,EAAE8kD,cAWJnxD,OAAOiU,OACZ,GACAu1B,EACA,CAAE2nB,WAAYxlB,GACd,CAAEziC,QAAS,KAXJlJ,OAAOiU,OACZ,GACAu1B,EACA,CAAE2nB,YAAY,GACd,CAAEjoD,QAAS,qDAUjB,GAAa,UAATyd,EACF,OAAO3mB,OAAOiU,OAAO,GAAIu1B,EAAW,CAAEtuB,MAAOywB,IAGjD,OAAO3rC,OAAOiU,OAAO,GAAIu1B,MAG3B4qB,EAAU6B,GACV3B,EAAkB4B,IAGdC,GAAgB,SAACntD,EAAOugB,GAC5B,IAAM5C,EAAO3d,EAAMsN,OAAOqQ,KACpBlqB,EAAQuM,EAAMsN,OAAO7Z,MAErB25D,EAAap6B,GAAQrlB,KAAI,SAACsS,EAAI1rB,GAClC,GAAIA,IAAMgsB,EAAO,CACf,GAAa,gBAAT5C,EACF,OAAO3mB,OAAOiU,OAAO,GAAIgV,EAAI,CAAE8oC,YAAat1D,IAE9C,GAAa,kBAATkqB,EACF,OAAO3mB,OAAOiU,OAAO,GAAIgV,EAAI,CAAE6oC,cAAer1D,IAEhD,GAAa,qBAATkqB,EACF,OAAO3mB,OAAOiU,OAAO,GAAIgV,EAAI,CAAE+oC,iBAAkBv1D,IAGrD,OAAOuD,OAAOiU,OAAO,GAAIgV,MAG3B8rC,GAAWqB,IAGPvmB,GAAe,SAAC1Y,GACpB,IAAM5Z,EAAW4Z,EAAI5Z,SACrB,GAAIA,EAAU,CACZ,IAAMuyB,EAAUvyB,EAASza,OACrBitC,EAAS,GACb,GAAIxyB,EAAStf,KAAM,CACjB6C,QAAQC,IAAIwc,EAAStf,MACrB,IAAMo4D,EAAUr2D,OAAOwF,KAAK+X,EAAStf,MAAM,GAC3C,OAAQo4D,GACN,IAAK,QACHtmB,EACE,cAAC,IAAD,CACErqC,GAAG,sBACHmM,eAAe,0CAGnB,MAEF,IAAK,mBAEDk+B,EADgC,qBAA9BxyB,EAAStf,KAAKo4D,GAAS,GAChB,cAAC,IAAD,CACP3wD,GAAG,0BACHmM,eAAe,sDAEsB,uBAA9B0L,EAAStf,KAAKo4D,GAAS,GACvB,cAAC,IAAD,CACP3wD,GAAG,6BACHmM,eAAe,oDAGR0L,EAAStf,KAAKo4D,GAAS,GAElC,MACF,QAEItmB,EAD6B,8BAA3BxyB,EAAStf,KAAKo4D,GACP,cAAC,IAAD,CACP3wD,GAAG,gCACHmM,eAAe,2DAGR0L,EAAStf,KAAKo4D,GAAS,IAMxCtoB,GAAS,GACTgmB,GAAY,GACZ9lB,EAAa6B,GACb9B,EAAY+B,KAqHVumB,GAAkBt2D,OAAOwF,KAAKgkC,IAAWyG,OAC7C,SAAChnB,GAAD,MAAwB,KAAhBqiC,EAAQriC,IAAcugB,GAAUvgB,GAAI0gB,YAExC4sB,GAAqBv2D,OAAOwF,KAAK6uD,GAAgBpkB,OACrD,SAAChnB,GAAD,OAC+B,IAA7BorC,EAAeprC,GAAI/N,QACe,IAAlCm5C,EAAeprC,GAAIkoC,cAEjBqF,GAAkBvB,GAAgBD,kBAAkBrpB,QACpD8qB,GAAiBjL,EAAOzvC,MAAK,SAAC1P,GAAD,MAAwB,YAAjBA,EAAE8kD,cACtCuF,GACJJ,IAAmBC,IAAsBE,IAAkBD,GACvDr+C,GAC0B,SAA9BrI,EAAMhI,MAAMvI,OAAO4D,OACjB,cAAC,IAAD,CACEuC,GAAG,0BACHmM,eAAe,sBAGjB,cAAC,IAAD,CACEnM,GAAG,yBACHmM,eAAe,yBAGrB,OACE,qCACGjR,GACC,cAAC,GAAD,CACE8pC,UAAWA,EACXC,SAAUA,EACVC,aAlgBgB,WACtBmD,GAAS,GACTC,EAAY,IACZC,EAAa,MAmgBV+lB,GACC,cAAC,GAAD,CACE97C,OArFe,WACrB,IAAM/S,EAAI,UAAMu8B,GAAkB/mB,GAAM,qBAA9B,YAAsD2wC,EAAQrvB,WAA9D,YAA4EqvB,EAAQpvB,UAApF,YAAiGwF,GAAkB/mB,GAAM,sBACnI7K,EACG+jD,eAAe/jD,EAAMhI,MAAMvI,OAAOgiC,SAAU+pB,GAC5Cp2C,MAAK,WACJuyB,GAAkB/yB,IAAO5E,EAAM6Y,UAAW,CACxC3hB,KAAM,UACN7D,OAAQ,OACRo+B,SAAUzxB,EAAMhI,MAAMvI,OAAOgiC,SAC7BvkB,OAAQlN,EAAM2/C,kBACdnE,UACAnmD,SAEF2K,EAAM2F,QAAQ9H,KAAd,6BAAyCmC,EAAMhI,MAAMvI,OAAOgiC,cAE7DnsB,OAAM,SAAC+hB,GAAD,OAASr2B,QAAQC,IAAIo2B,OAuExBlf,aAAc,kBAAMg8C,GAAoB,IACxC/qD,QAAQ,kGAIZ,sBAAK8G,UAAU,2BAA2BtE,MAAO,CAAEykC,UAAW,UAA9D,UACG/3B,GACC,sBAAKpI,UAAWtE,KAAMyM,MAAtB,UACGA,GAAO,IACR,sBAAMnI,UAAU,OAAhB,SACG,UAAGoI,EAAO6jB,WAAV,YAAwB7jB,EAAO8jB,WAAYzlB,mBAKjD60C,GACC,uBAAM5/C,MAAO,CAAEM,UAAW,QAA1B,UACE,qBAAKgE,UAAU,cAAf,SACE,cAAC,IAAD,CACEtK,GAAG,wBACHmM,eAAe,cAGnB,sBAAK7B,UAAU,qBAAf,UACGoI,GACC,sBACEpI,UAAU,oBACVtE,MAAO,CAAEiM,WAAY,QAFvB,UAIE,uBAAM3H,UAAU,aAAhB,UACE,cAAC,IAAD,CACEtK,GAAG,uBACHmM,eAAe,UAHnB,IAKI,OAEJ,sBAAM7B,UAAU,QAAhB,SAAyBoI,EAAO8gB,aAGpC,sBAAKlpB,UAAU,6BAAf,UACE,qBAAKA,UAAU,gCAAf,SACE,cAAC,GAAD,CACE2W,KAAK,aACLmX,UAAU,KACVN,SAAUo4B,GACVz9C,MACE,cAAC,IAAD,CACEzS,GAAG,2BACHmM,eAAe,WAGnB23B,UAAWA,GAAUvN,WACrBwN,YAAU,EACVhtC,MAAO6uD,EAAQrvB,eAGnB,qBAAKjsB,UAAU,gCAAf,SACE,cAAC,GAAD,CACE2W,KAAK,YACLmX,UAAU,KACVN,SAAUo4B,GACVz9C,MACE,cAAC,IAAD,CACEzS,GAAG,0BACHmM,eAAe,gBAGnB23B,UAAWA,GAAUtN,UACrBuN,YAAU,EACVhtC,MAAO6uD,EAAQpvB,cAGnB,qBAAKlsB,UAAU,gCAAf,SACE,cAAC,GAAD,CACE2W,KAAK,WACLmX,UAAU,IACVN,SAAUo4B,GACVz9C,MACE,cAAC,IAAD,CACEzS,GAAG,0BACHmM,eAAe,iBAGnB23B,UAAWA,GAAUqiB,SACrBpiB,YAAU,EACVziC,KAAK,SACLvK,MAAO6uD,EAAQO,aAGnB,sBAAK77C,UAAU,gCAAf,UACE,wBAAOA,UAAU,aAAastB,QAAQ,WAAtC,UACE,cAAC,IAAD,CACE53B,GAAG,4BACHmM,eAAe,8BAHnB,OAOA,cAAC,GAAD,CACEq/B,YAAY,eACZnH,MAAO,EAAC,GAAO,GACfD,WAAYrC,GACZhrC,MAAO6uD,EAAQuD,cACfrxB,SAAUo4B,GACVzrB,aAAa,EACbxjB,KAAK,qBAGT,sBAAK3W,UAAU,gCAAf,UACE,wBAAOA,UAAU,aAAastB,QAAQ,WAAtC,UACE,cAAC,IAAD,CACE53B,GAAG,wBACHmM,eAAe,2BAHnB,OAOA,cAAC,GAAD,CACEq/B,YAAY,eACZnH,MAAO,EAAC,GAAO,GACfD,WAAYrC,GACZhrC,MAAOm4D,GACPp3B,SAAU,SAACl/B,GAAD,OAAOu2D,GAAYv2D,EAAEgY,OAAO7Z,QACtC0tC,aAAa,EACbxjB,KAAK,iBAGT,sBAAK3W,UAAU,gCAAf,UACE,wBAAOA,UAAU,aAAastB,QAAQ,WAAtC,UACE,cAAC,IAAD,CACE53B,GAAG,uBACHmM,eAAe,kBAHnB,OAOA,cAAC,GAAD,CACEq/B,YAAY,eACZnH,MAAO,EAAC,GAAO,GACfD,WAAYrC,GACZhrC,MAAO6uD,EAAQ+F,SACf7zB,SAAUo4B,GACVjvC,KAAK,gBAGT,qBAAK3W,UAAU,uBAAf,SACE,cAAC,GAAD,CACE2W,KAAK,QACLmX,UAAU,MACVN,SAAUo4B,GACVz9C,MAAM,UACNqxB,UAAWA,GAAUR,MACrBS,YAAU,EACVhtC,MAAO6uD,EAAQtiB,UAGnB,sBAAKh5B,UAAU,gCAAf,UACE,wBAAOA,UAAU,aAAastB,QAAQ,mBAAtC,UACE,cAAC,IAAD,CACE53B,GAAG,8BACHmM,eAAe,oBAEjB,sBAAM7B,UAAU,gBAAhB,kBAEF,cAAC,GAAD,CACEtK,GAAG,mBACHwrC,YAAY,eACZnH,MAAO4sB,GAAiBh8C,GACxBle,MAAO+3D,EACPrqB,aAAa,EACb3M,SAAU,SAACl/B,GAAD,OAhmBJ,SAACA,GACvB,IAAM7B,EAAQ6B,EAAEgY,OAAO7Z,MACvBg4D,EAAwBn2D,EAAEgY,OAAO7Z,OAG/BA,IACA83D,GAAsB55C,GAAM45C,GAAsB55C,GAAMnd,OAAS,KAEjEoyD,GAAW5vD,OAAOiU,OAAO,GAAIq3C,EAAS,CAAEW,aAAcxvD,KACtDq4D,GACE90D,OAAOiU,OAAO,GAAIu1B,GAAW,CAC3ByiB,aAAc,CAAEtiB,UAAU,EAAMzgC,QAAS,QAqlBd0tD,CAAgBt4D,IACjCqoB,KAAK,wBAGR6tC,IACCD,GAAsB55C,GACpB45C,GAAsB55C,GAAMnd,OAAS,IAEvC,qBAAKwS,UAAU,gCAAf,SACE,cAAC,GAAD,CACE2W,KAAK,eACLmX,UAAU,KACVN,SAAUo4B,GACVz9C,MACE,cAAC,IAAD,CACEzS,GAAG,sCACHmM,eAAe,8BAGnB23B,UAAWA,GAAUyiB,aACrBxiB,YAAU,EACVhtC,MAAO6uD,EAAQW,uBAMzB,qBAAKj8C,UAAU,cAAf,SACE,cAAC,IAAD,CACEtK,GAAG,2BACHmM,eAAe,cAGnB,sBAAK7B,UAAU,qBAAf,UACE,sBACEA,UAAU,6BACVtE,MAAO,CAAEiM,WAAY,QAFvB,UAIE,qBAAK3H,UAAU,+BAAf,SACE,cAAC,GAAD,CACE2W,KAAK,SACLmX,UAAU,KACVN,SAAUo4B,GACVz9C,MACE,cAAC,IAAD,CACEzS,GAAG,wBACHmM,eAAe,iBAGnBpV,MAAO6uD,EAAQ1jB,WAGnB,qBAAK53B,UAAU,+BAAf,SACE,cAAC,GAAD,CACE2W,KAAK,SACLmX,UAAU,KACVN,SAAUo4B,GACVz9C,MACE,cAAC,IAAD,CACEzS,GAAG,wBACHmM,eAAe,gBAGnBpV,MAAO6uD,EAAQzjB,WAGnB,qBAAK73B,UAAU,+BAAf,SACE,cAAC,GAAD,CACE2W,KAAK,aACLmX,UAAU,KACVN,SAAUo4B,GACVz9C,MACE,cAAC,IAAD,CACEzS,GAAG,4BACHmM,eAAe,kBAGnBpV,MAAO6uD,EAAQxjB,eAGnB,qBAAK93B,UAAU,+BAAf,SACE,cAAC,GAAD,CACE2W,KAAK,WACLmX,UAAU,KACVN,SAAUo4B,GACVz9C,MACE,cAAC,IAAD,CACEzS,GAAG,0BACHmM,eAAe,aAGnBpV,MAAO6uD,EAAQvjB,aAGnB,qBAAK/3B,UAAU,+BAAf,SACE,cAAC,GAAD,CACE2W,KAAK,OACLmX,UAAU,KACVN,SAAUo4B,GACVz9C,MACE,cAAC,IAAD,CACEzS,GAAG,sBACHmM,eAAe,aAGnBpV,MAAO6uD,EAAQrjB,SAGnB,sBAAKj4B,UAAU,+BAAf,UACE,wBAAOA,UAAU,aAAastB,QAAQ,QAAtC,UACE,cAAC,IAAD,CACE53B,GAAG,qBACHmM,eAAe,WAHnB,IAMuB,OAApBy5C,EAAQ1hC,SACP,sBAAM5Z,UAAU,gBAAhB,kBAGJ,cAAC,GAAD,CACEkhC,YAAY,eACZnH,MAAOorB,GACP14D,MAAO6uD,EAAQx8C,MACfq7B,aAAa,EACb3M,SAAUo4B,GACVjvC,KAAK,aAGT,qBAAK3W,UAAU,+BAAf,SACE,cAAC,GAAD,CACE2W,KAAK,WACLmX,UAAU,KACVN,SAAUo4B,GACVz9C,MACE,cAAC,IAAD,CACEzS,GAAG,yBACHmM,eAAe,UAGnBpV,MAAO6uD,EAAQtjB,aAGnB,sBAAKh4B,UAAU,+BAAf,UACE,wBAAOA,UAAU,aAAastB,QAAQ,UAAtC,UACE,cAAC,IAAD,CACE53B,GAAG,kBACHmM,eAAe,YAHnB,IAKI,OAEJ,cAAC,GAAD,CACEq/B,YAAY,eACZnH,MAAOtD,GAAY9rB,GACnBle,MAAO6uD,EAAQ1hC,QACf4T,SAnqBQ,SAAC0M,GACzB,IAAMxY,EAAQwY,EAAG5zB,OAAOqQ,KAClBlqB,EAAQytC,EAAG5zB,OAAO7Z,MAElB0zD,EAAanwD,OAAOiU,OAAO,GAAIq3C,GAEvB,YAAV55B,GAAuBy+B,EAAWvmC,UAAYntB,IAChD0zD,EAAWvmC,QAAUntB,EACrB0zD,EAAWnoB,SAAW,GAER,OAAVvrC,GACF0zD,EAAWrhD,MAAQ,KACnBsmD,GAAoB,CAClB,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,SAGFjF,EAAWrhD,MAAQ,IACnBsmD,GAAoB,CAAC,OAEvBhB,EACE5I,EAAO70C,KAAI,SAACuE,GAAD,MAAY,CACrBA,MAAO,GACPi2C,WAAYj2C,EAAMi2C,WAClB7F,QAAS6E,EAAWzqD,QAGxB4uD,EACED,EAAe19C,KAAI,iBAAO,CACxBw6C,YAAY,EACZj2C,OAAO,EACPhS,QAAS,QAGb0mD,GAAW5vD,OAAOiU,OAAO,GAAIk8C,MAymBfxpC,KAAK,kBAIX,qBAAK3W,UAAU,kBAAf,SACGw7C,GACCA,EAAO70C,KAAI,SAACsS,EAAIM,GAAL,OACT,qBAA4BvZ,UAAU,WAAtC,SACE,cAAC,GAAD,CACEwtB,SAAUi2B,GACVv4C,MAAO+N,EACPM,MAAOA,EACPigB,UAAW6qB,EAAe9qC,GAC1BK,QAAS0hC,EAAQ1hC,QACjB2pC,YAAa,SAACrpB,GAAD,OA9Xf,SAAClhC,EAAOugB,GAC1B,IAAMstC,EAAS,sBAAOrL,EAAOvqD,MAAM,EAAGsoB,IAAvB,YAAkCiiC,EAAOvqD,MAAMsoB,EAAQ,KAChE2sC,EAAiB,sBAClB7B,EAAepzD,MAAM,EAAGsoB,IADN,YAElB8qC,EAAepzD,MAAMsoB,EAAQ,KAElC6qC,EAAUyC,GACVvC,EAAkB4B,GAuXuB3C,CAAYrpB,EAAI3gB,OAPzC,gBAAmBA,SAYzB,qBACEvZ,UAAU,sBACVtE,MAAO,CAAEgM,aAAc,MAAO2U,YAAa,OAF7C,SAIE,yBACErlB,KAAK,SACLgJ,UAAU,gEACVE,QAhaC,WACf,IAAM2mD,EAAS,sBACVrL,GADU,CAEb,CACE2F,WAAY,GACZj2C,MAAO,GACPowC,QAASx7C,EAAMhI,MAAMvI,OAAOwtD,aAG1BmJ,EAAiB,sBAClB7B,GADkB,CAErB,CACElD,YAAY,EACZj2C,OAAO,EACPhS,QAAS,MAIbkrD,EAAUyC,GACVvC,EAAkB4B,IA0YN,UAKE,sBAAMxqD,MAAO,CAAEgM,aAAc,UAA7B,SACE,mBAAG1H,UAAU,eAAe,cAAY,WAClC,IACR,cAAC,IAAD,CACEtK,GAAG,8BACHmM,eAAe,oCAMvB,qBAAK7B,UAAU,cAAf,SACE,cAAC,IAAD,CACEtK,GAAG,6BACHmM,eAAe,kBAGnB,qBAAK7B,UAAU,qBAAf,SACE,sBAAKA,UAAU,sBAAf,UACE,qBAAKA,UAAU,oBAAf,SACE,sBAAKA,UAAU,WAAf,UACE,qBAAKA,UAAU,UACf,qBACEA,UAAU,yBACVtE,MAAO,CACLorD,cAAe,YACfzqC,YAAa,QAJjB,SAOE,4CAEF,qBACErc,UAAU,yBACVtE,MAAO,CACLorD,cAAe,YACfzqC,YAAa,QAJjB,SAOE,0CAEDvc,EAAM+J,YAAN,UACC/J,EAAM8O,2BADP,aACC,EAA2B8yC,mBACzB,qBACE1hD,UAAU,yBACVtE,MAAO,CACLorD,cAAe,YACfzqC,YAAa,QAJjB,SAOE,oDAKT2P,IACCA,GACGyB,MAAK,SAACs5B,EAAMC,GAAP,OAAgBD,EAAKlL,SAAWmL,EAAKnL,YAC1Cl1C,KAAI,SAACuB,EAAQqR,GAAT,aACH,sBAEEvZ,UAAU,wCAFZ,UAIE,qBAAKA,UAAU,wBAAf,SACGgW,GAAsB9N,EAAO2zC,SAAU,gBAE1C,qBAAK77C,UAAU,QAAf,SACE,cAAC,GAAD,CACE2W,KAAK,gBACL3W,UAAS,UAAKtE,KAAMsmC,UACpB1H,QAAStO,GAAQzS,GAAOuoC,cACxBt0B,SAAU,SAAC0M,GAAD,OAAQisB,GAAcjsB,EAAI3gB,QAGxC,qBAAKvZ,UAAU,QAAf,SACE,cAAC,GAAD,CACE2W,KAAK,cACL3W,UAAS,UAAKtE,KAAMsmC,UACpB1H,QAAStO,GAAQzS,GAAOwoC,YACxBv0B,SAAU,SAAC0M,GAAD,OAAQisB,GAAcjsB,EAAI3gB,QAGvCzZ,EAAM+J,YAAN,UACC/J,EAAM8O,2BADP,aACC,EAA2B8yC,mBACzB,qBAAK1hD,UAAU,QAAf,SACE,cAAC,GAAD,CACE2W,KAAK,mBACL3W,UAAS,UAAKtE,KAAMsmC,UACpB1H,QAAStO,GAAQzS,GAAOyoC,iBACxBx0B,SAAU,SAAC0M,GAAD,OAAQisB,GAAcjsB,EAAI3gB,UA9B9C,gBACgBrR,EAAO2zC,cAmC7B,qBAAK77C,UAAU,gBAAgBtE,MAAO,CAAE6gB,aAAc,QAAtD,SACE,qBAAKvc,UAAWtE,KAAM,gBAAtB,SACGupD,GAAgBD,kBAAkB9rD,iBAK3C,sBAAK8G,UAAU,aAAatE,MAAO,CAAE6gB,aAAc,QAAnD,UACE,yBACEvlB,KAAK,SACLgJ,UAAS,uCACPF,EAAM6jD,YAA4C,SAA9B7jD,EAAMhI,MAAMvI,OAAO4D,OACnC,QACA,SAEN+M,QAAS,kBACPJ,EAAM2F,QAAQ9H,KAAd,6BACwBmC,EAAMhI,MAAMvI,OAAOgiC,YAT/C,UAaE,+BACE,mBACEvxB,UAAU,sBACV,cAAY,OACZtE,MAAO,CAAEgM,aAAc,OAAQC,WAAY,cAG/C,cAAC,IAAD,CACEjS,GAAG,sBACHmM,eAAe,gBAGlB6kD,GACC,yBACE1vD,KAAK,SACL6Q,SAAUi8C,EACV9jD,UAAS,8DAELF,EAAM6jD,YAA4C,SAA9B7jD,EAAMhI,MAAMvI,OAAO4D,OACnC,QACA,QAJC,YAKH2wD,EAAW,qBAAuB,IACxC5jD,QA7nBI,WAClBpP,QAAQC,IAAI6zD,IACZ,IAAQzxD,EAAW2M,EAAMhI,MAAMvI,OAAvB4D,OACFwX,EAAQ5H,aAAauS,cAEvBvS,aAAauS,cADb,KAEE2xC,EAAezL,EAAO70C,KAAI,SAACsS,GAAD,OAC9BjpB,OAAOiU,OAAO,GAAIgV,EAAI,CAAE/N,MAAOusB,GAAuBxe,EAAG/N,MAAO,aAE5Dg8C,EAAgBl7B,GAAQrlB,KAAI,SAACsS,GAAD,OAAQjpB,OAAOiU,OAAO,GAAIgV,MACtDynC,EAAgB1wD,OAAOiU,OAC3B,GACAq3C,EACA,CAAEzjB,OAAQyjB,EAAQzjB,OAASyjB,EAAQzjB,OAAS,GAC5C,CAAEG,SAAUP,GAAuB6jB,EAAQtjB,UAAU,IACrD,CAAEhM,QAASk7B,GACX,CAAE1L,OAAQyL,GACV,CAAEE,gBAAiBvC,KAEfzvD,EAAI,UAAMu8B,GAAkB/mB,GAAM,qBAA9B,YACR2wC,EAAQrvB,WADA,YAENqvB,EAAQpvB,UAFF,YAGG,SAAX/4B,EACIu+B,GAAkB/mB,GAAM,qBACxB+mB,GAAkB/mB,GAAM,oBAE9Bo5C,GAAY,GACG,SAAX5wD,EACF2M,EACG0/C,YAAY1/C,EAAMhI,MAAMvI,OAAOgiC,SAAUmvB,GACzCx7C,MAAK,WACJuyB,GAAkB/yB,IAAO5E,EAAM6Y,UAAW,CACxC3hB,KAAM,UACN7D,OAAQ,SACRo+B,SAAUzxB,EAAMhI,MAAMvI,OAAOgiC,SAC7BvkB,OAAQlN,EAAM2/C,kBACdnE,QAASoF,EACTvrD,SAEF2K,EAAM2F,QAAQ9H,KAAd,6BACwBmC,EAAMhI,MAAMvI,OAAOgiC,cAG5CnsB,OAAM,SAAC+hB,GAAD,OAAS0Y,GAAa1Y,MAE/BrnB,EACG8jD,cAAc9jD,EAAMhI,MAAMvI,OAAOgiC,SAAUmvB,GAC3Cx7C,MAAK,SAACC,GACLsyB,GAAkB/yB,IAAO5E,EAAM6Y,UAAW,CACxC3hB,KAAM,UACN7D,OAAQ,SACRo+B,SAAUzxB,EAAMhI,MAAMvI,OAAOgiC,SAC7BvkB,OAAQlN,EAAM2/C,kBACdnE,QAASn2C,EAAIm2C,QACbnmD,SAEF2K,EAAM2F,QAAQ9H,KAAd,6BACwBmC,EAAMhI,MAAMvI,OAAOgiC,cAG5CnsB,OAAM,SAAC+hB,GAAD,OAAS0Y,GAAa1Y,OAwjBrB,UAWE,iCACG,IACD,mBACEnnB,UAAU,oBACV,cAAY,OACZtE,MAAO,CAAEgM,aAAc,OAAQC,WAAY,eAEvC,IACR,cAAC,IAAD,CACEjS,GAAG,oBACHmM,eAAe,cAInB,yBACE7K,KAAK,SACLgJ,UAAS,wCACPF,EAAM6jD,YAA4C,SAA9B7jD,EAAMhI,MAAMvI,OAAO4D,OACnC,QACA,QAHG,YAILuI,KAAM0rD,SANZ,UAQE,iCACG,IACD,mBACEpnD,UAAU,oBACV,cAAY,OACZtE,MAAO,CAAEgM,aAAc,OAAQC,WAAY,eAG/C,cAAC,IAAD,CACEjS,GAAG,oBACHmM,eAAe,WAEjB,uBAAM7B,UAAWtE,KAAM,qBAAvB,UACE,sBACEsE,UAAWtE,KAAM,gBACjBA,MAAO,CAAE6gB,aAAc,QAFzB,SAIE,cAAC,IAAD,CACE7mB,GAAG,iBACHmM,eAAe,mFAGjBykD,IACA,sBAAMtmD,UAAWtE,KAAM,gBAAvB,SACE,cAAC,IAAD,CACEhG,GAAG,6BACHmM,eAAe,oEAInB0kD,IAAsBE,IACtB,sBAAMzmD,UAAWtE,KAAM,gBAAvB,SACE,cAAC,IAAD,CACEhG,GAAG,0BACHmM,eAAe,iDAO1B/B,EAAM6jD,YAA4C,SAA9B7jD,EAAMhI,MAAMvI,OAAO4D,QACtC,wBACE6D,KAAK,SACLgJ,UAAS,wBAAmBtE,KAAM,8BAAzB,UACTwE,QAAS,WACP+jD,GAAoB,GACpBh4D,OAAOo7D,SAAS,CAAEtrD,IAAK,EAAGurD,SAAU,YALxC,SAQE,uBAAM5rD,MAAO,CAAE4gB,WAAY,OAAQla,MAAO,SAA1C,UACE,mBACEpC,UAAU,oBACVtE,MAAO,CAAEgM,aAAc,OAAQC,WAAY,YAE7C,cAAC,IAAD,CACEjS,GAAG,sBACHmM,eAAe,gC,oBCtoCtB0lD,GAxFQ,SAAC,GAQjB,IAPLjK,EAOI,EAPJA,YACAh0C,EAMI,EANJA,QACAC,EAKI,EALJA,QACAwhB,EAII,EAJJA,UACArD,EAGI,EAHJA,kBACAzf,EAEI,EAFJA,aACAI,EACI,EADJA,UAKA,OACE,sBAAK3S,GAAE,0CAAqC4nD,EAAYG,MAAQz9C,UAAWtE,KAAMmwB,IAAjF,UACE,eAAC,IAAD,CAAM7rB,UAAWtE,KAAMswB,QAASpqB,GAAE,mCAA8B07C,EAAYl1C,OAA1C,YAAoDk1C,EAAY5nD,IAAlG,UACE,qBAAKsK,UAAS,UAAKtE,KAAMutB,OAAX,YAAqBvtB,KAAM+hD,MAAzC,SACGH,EAAYG,OAEf,qBAAKz9C,UAAS,UAAKtE,KAAMutB,OAAX,YAAqBvtB,KAAMqN,aAAzC,SACGu0C,EAAYv0C,iBAGjB,sBAAK/I,UAAS,UAAMsJ,GAAWC,GAAWwhB,EAAarvB,KAAM2tB,aAAe3tB,KAAM4tB,cAAlF,WASIhgB,GAAWC,GAAWwhB,IACtB,cAAC,IAAD,CACE/qB,UAAWtE,KAAMswB,QACjBY,YAAa,kBAAMlF,EAAkB,cAAC,IAAD,CAAkBhyB,GAAG,qBAAqBmM,eAAe,aAC9F2wB,WAAY,kBAAM9K,EAAkB,KACpC9lB,GAAE,sCAAiC07C,EAAYl1C,OAA7C,YAAuDk1C,EAAY5nD,IAJvE,SAME,cAAC,GAAD,CACAsK,UAAWtE,KAAMkR,MACjBjR,MAAM,KACNC,OAAO,KACPF,MAAO,CAACiM,WAAY,eAGtB2B,GAAWC,GAAWwhB,IACtB,wBACEr1B,GAAE,wCAAmC4nD,EAAYG,MACjD7wB,YAAa,kBACXlF,EAAkB,cAAC,IAAD,CAAkBhyB,GAAG,uBAAuBmM,eAAe,cAC/E2wB,WAAY,kBAAM9K,EAAkB,KACpCxnB,QAAS,WACFmI,GACHJ,GAAa,EAAMq1C,IAGvBt9C,UAAWtE,KAAMswB,QACjBtwB,MAAO,CAAEG,OAAQ,EAAGuQ,gBAAiB,cAAewf,QAAS,GAX/D,SAYE,qBAAK5rB,UAAWtE,KAAMswB,QAAtB,SACE,mBAAGhsB,UAAU,mBAAmBtE,MAAO,CAAEuO,SAAU,GAAI7H,MAAO,OAAQuF,WAAY,gBCkEjF6/C,G,oDA1Hb,WAAY1nD,GAAQ,IAAD,+BACjB,cAAMA,IACDhB,MAAQ,CACX6M,UAAU,EACVtD,WAAW,GAEb,EAAK22C,eAAiB,EAAKA,eAAehuD,KAApB,iBANL,E,mDASnB,WACEiI,KAAKulB,UAAS,SAAAijB,GAAS,MAAK,CAC1B91B,UAAW81B,EAAU91B,e,oBAIzB,WAAU,IAAD,OACCA,EAAa1S,KAAK6F,MAAlB6M,SACR,EAOI1S,KAAK6G,MANPw9C,EADF,EACEA,YACAh0C,EAFF,EAEEA,QACAC,EAHF,EAGEA,QACAwhB,EAJF,EAIEA,UACA9iB,EALF,EAKEA,aACAI,EANF,EAMEA,UAEQ,mCAA+Bi1C,EAAY5nD,IACnC,iCAA6B4nD,EAAY5nD,IACjD,sCAAkC4nD,EAAY5nD,IAExD,OACE,sBAAKsK,UAAWtE,KAAM6wB,gBAAiB7wB,MAAO,CAAEE,OAAO,GAAD,OAAK+P,EAAW,OAAS,IAAM4d,SAAU,UAA/F,UACE,sBACEvpB,UAAS,UAAKtE,KAAM8wB,UACpB9wB,MAAO,CAAEgM,aAAc,QAFzB,UAIE,qBAAK1H,UAAS,UAAKtE,KAAMutB,OAAX,YAAqBvtB,KAAM+hD,MAAzC,SACGH,EAAYG,OAEf,qBAAKz9C,UAAS,UAAKtE,KAAMutB,OAAX,YAAqBvtB,KAAMqN,aAAzC,SACGu0C,EAAYv0C,cAEf,qBAAK/I,UAAS,UAAKtE,KAAMutB,OAAX,YAAqBvtB,KAAM+wB,qBAAzC,SACE,wBAAQzsB,UAAWtE,KAAMgxB,aAAcxsB,QAASjH,KAAK+lD,eAArD,SACIrzC,EAEE,IADA,WAMV,sBAAK3L,UAAWtE,KAAMixB,kBAAtB,UAEE,cAAC,IAAD,CACE3sB,UAAWtE,KAAMswB,QACjBY,YAAa,kBAAM,EAAK9sB,MAAM4nB,kBAAkB,cAAC,IAAD,CAAkBhyB,GAAG,qBAAqBmM,eAAe,iBACzG2wB,WAAY,kBAAM,EAAK1yB,MAAM4nB,kBAAkB,KAC/C9lB,GAAE,mCAA8B07C,EAAYl1C,OAA1C,YAAoDk1C,EAAY5nD,IAJpE,SAME,mBAAGsK,UAAU,aAAatE,MAAO,CAAEuO,SAAU,GAAI7H,MAAO,OAAQuF,WAAY,QAW5E2B,GAAWC,GAAWwhB,IACtB,cAAC,IAAD,CACE/qB,UAAWtE,KAAMswB,QACjBY,YAAa,kBAAM,EAAK9sB,MAAM4nB,kBAAkB,cAAC,IAAD,CAAkBhyB,GAAG,qBAAqBmM,eAAe,aACzG2wB,WAAY,kBAAM,EAAK1yB,MAAM4nB,kBAAkB,KAC/C9lB,GAAE,sCAAiC07C,EAAYl1C,OAA7C,YAAuDk1C,EAAY5nD,IAJvE,SAME,cAAC,GAAD,CAAMsK,UAAWtE,KAAMkR,MAAOjR,MAAM,KAAKC,OAAO,UAGlD0N,GAAWC,GAAWwhB,IACtB,wBACE6B,YAAa,kBAAM,EAAK9sB,MAAM4nB,kBAAkB,cAAC,IAAD,CAAkBhyB,GAAG,uBAAuBmM,eAAe,cAC3G2wB,WAAY,kBAAM,EAAK1yB,MAAM4nB,kBAAkB,KAC/CxnB,QAAS,WACFmI,GACHJ,GAAa,EAAMq1C,IAGvBt9C,UAAWtE,KAAMswB,QACjBtwB,MAAO,CAAEG,OAAQ,EAAGuQ,gBAAiB,cAAewf,QAAS,GAT/D,SAWE,qBAAK5rB,UAAWtE,KAAMswB,QAAtB,SACE,mBAAGhsB,UAAU,mBAAmBtE,MAAO,CAAEuO,SAAU,GAAI7H,MAAO,OAAQuF,WAAY,mB,GA7F/D8L,IAAMC,WCLlC,SAAS+zC,GAAwB/7B,EAAc6F,EAAU7jB,GAC9D,MAAO,CAAE1W,KAAMsL,IAAiCopB,eAAc6F,WAAU7jB,YAGnE,SAASg6C,GAAiBpK,EAAa/rB,GAC5C,MAAO,CAAEv6B,KAAMsL,IAAuBg7C,cAAa/rB,YAG9C,SAASo2B,GAAmBrK,EAAa/rB,GAC9C,MAAO,CAAEv6B,KAAMsL,IAAwBg7C,cAAa/rB,YAG/C,SAASq2B,GAAmBC,EAAet2B,GAChD,MAAO,CAAEv6B,KAAMsL,IAA0BulD,gBAAet2B,YAGnD,SAASu2B,GAAiBv2B,GAAoD,IAA1C7jB,EAAyC,uDAA9BM,EAC9CnW,EAAS+K,IACTY,EAAQH,IAEd,OAAO,SAACoB,EAAU4I,EAAX,OAAuB3I,EAAvB,EAAuBA,MAAvB,OAAmCC,QAAQC,QAChDF,EAAM,CACJvR,OAAQ,MACRxD,IAAI,WAAD,OAAakI,GAAb,O1JrBE,kB0JqBF,wBAA4C05B,EAA5C,kCAA8E7jB,GACjF3I,QAAS,CAAEE,cAAc,SAAD,OAAWzB,MAEpC0B,MAAK,SAACuJ,GACLhK,EAASgjD,GAAwBh5C,EAAKxgB,KAAMsjC,EAAU7jB,OACrDtI,OAAM,SAACxU,GACJA,EAAM2c,UACsB,MAA1B3c,EAAM2c,SAASza,QACjB2R,EAAS2I,UCbnB,IAgMe26C,GAhMS,SAACjoD,GACvB,IAAMuvB,EAAe5U,KACrB,EAOI/O,uBAAY,SAAA5M,GAAK,MAAK,CACxB4sB,aAAc5sB,EAAM4sB,aACpBmB,WAAY/tB,EAAMoC,gBAClByJ,KAAM7L,EAAMgnB,OAAOnb,KACnBpB,UAASzK,EAAMoC,gBAAgBK,QAA6C,IAApCzC,EAAMoC,gBAAgBK,OAAO,GACrE+H,UAASxK,EAAMoC,gBAAgBK,QAA6C,IAApCzC,EAAMoC,gBAAgBK,OAAO,GACrEwpB,YAAWjsB,EAAMoC,gBAAgBK,QAA6C,IAApCzC,EAAMoC,gBAAgBK,OAAO,OAZvEmqB,EADF,EACEA,aACAmB,EAFF,EAEEA,WACAliB,EAHF,EAGEA,KACApB,EAJF,EAIEA,QACAD,EALF,EAKEA,QACAyhB,EANF,EAMEA,UAUItmB,EAAWqK,wBAEXk5C,EAAoB,SAACz2B,EAAUs2B,GAAX,OAA6BpjD,EDgDlD,SAA2B8sB,EAAUs2B,GAC1C,IAAMhwD,EAAS+K,IACTY,EAAQH,IAEd,OAAO,SAACoB,EAAU4I,EAAX,OAAuB3I,EAAvB,EAAuBA,MAAvB,OAAmCC,QAAQC,QAChDF,EAAM,CACJvR,OAAQ,SACRxD,IAAI,WAAD,OAAakI,GAAb,O1J3FE,kB0J2FF,wBAA4C05B,EAA5C,wBAAoEs2B,EAApE,KACH9iD,QAAS,CAAEE,cAAc,SAAD,OAAWzB,MAEpC0B,MAAK,kBAAMT,EAASmjD,GAAmBC,EAAet2B,OACtDnsB,OAAM,SAACxU,GACFA,EAAM2c,UACsB,MAA1B3c,EAAM2c,SAASza,QACjB2R,EAAS2I,UC9D+C66C,CAAqC12B,EAAUs2B,KAE/G,EAAsCznD,wBAASjU,GAA/C,mBAAOmxD,EAAP,KAAoB4K,EAApB,KACA,EAA4B9nD,wBAASjU,GAArC,mBAAOic,EAAP,KAAe0tB,EAAf,KACA,EAA0B11B,mBAAS,QAAnC,mBAAOoV,EAAP,KAAc2yC,EAAd,KACA,EAA8C/nD,mBAAS,IAAvD,mBAAOgoD,EAAP,KAAwBC,EAAxB,KACA,EAAoCjoD,mBAAS,IAA7C,mBAAO0oB,EAAP,KAAmBwH,EAAnB,KACA,EAAkClwB,oBAAS,GAA3C,mBAAOiI,EAAP,KAAkBO,EAAlB,KAEArI,qBAAU,WACR,IAAoBgxB,EAOhBzxB,EAAMhI,MAAMvI,OAAOgiC,WAPHA,EAQPzxB,EAAMhI,MAAMvI,OAAOgiC,SAP9B7sB,IAAM4I,IAAN,kBAAqB1K,KAArB,O3J/CK,kB2J+CL,wBAAyD2uB,EAAzD,KAAsE,CACpExsB,QAAS,CAAEE,cAAc,SAAD,OAAW5B,QAClC6B,MAAK,SAAAC,GAAG,OAAI2wB,EAAU3wB,EAAIlX,SAC5BmX,OAAM,SAAAxU,GAAK,OAAIE,QAAQC,IAAIH,SAM7B,CAACkP,EAAMhI,MAAMvI,OAAOgiC,WAEvBhxB,qBAAU,WACR,IAA0BgxB,EACpB+2B,EAAsB58B,EAAalqB,QAAO,SAAA+mD,GAAE,OAAIA,EAAG76C,WAAa8H,GAAS+yC,EAAGh3B,WAAazxB,EAAMhI,MAAMvI,OAAOgiC,YAAU,GAExH+2B,EACFD,EAAmB,YAAIC,EAAoBr6D,QAJnBsjC,EAMPzxB,EAAMhI,MAAMvI,OAAOgiC,SANW9sB,EAASwjD,GAAoC12B,EAM9C/b,OAE/C,CAACkW,EAAclW,EAAO1V,EAAMhI,MAAMvI,OAAOgiC,SAAU9sB,IAEtD,IAAMwD,EAAe,SAACI,EAAWi1C,GAC/B10C,EAAaP,GACb6/C,EAAe5K,IA8BXkL,EAA4B,UAAVhzC,EAAoB9Z,KAAMgL,OAAS,GACrD+hD,EAAmC,uBAAVjzC,EAAiC9Z,KAAMgL,OAAS,GAE/E,OACE,sBAAK1G,UAAU,2BAAf,UACGoI,GACC,sBAAKpI,UAAU,MAAf,UACE,uBAAMA,UAAWtE,KAAMyM,MAAOzM,MAAO,CAAC8X,MAAO,QAA7C,UACE,cAAC,IAAD,CAAkB9d,GAAG,2BAA2BmM,eAAe,sBADjE,QAEE,sBAAM7B,UAAWtE,KAAMgvB,SAAvB,SAAkC,WAAItiB,EAAO6jB,WAAX,YAAyB7jB,EAAO8jB,WAAYzlB,mBAE/E2hD,EAAgB56D,O/F1GI,K+F0GiC8b,GAAWC,GAAWwhB,IAC1E,wBACE/qB,UAAWtE,KAAM,WACjBwE,QAAS,kBAAMJ,EAAM2F,QAAQ9H,KAAd,qCAAiDmC,EAAMhI,MAAMvI,OAAOgiC,YACnFv6B,KAAK,SAHP,SAKE,uBAAMgJ,UAAWtE,KAAM,aAAvB,eACI,cAAC,IAAD,CAAkBhG,GAAG,cAAcmM,eAAe,mBAI1D,uBACA,sBAAK7B,UAAU,gBAAf,UACE,uBAAMA,UAAWtE,KAAMgvB,SAAvB,UAAiC,cAAC,IAAD,CAAkBh1B,GAAG,6BAA6BmM,eAAe,uBAAlG,QACA,sBAAM7B,UAAWtE,KAAMgvB,SAAvB,SACGtiB,EAAO8gB,gBAKfk/B,GACC,sBAAKpoD,UAAWtE,KAAM81B,MAAtB,UACGnpB,GACC,cAAC,GAAD,CACE62C,aApDc,WACxB,IAAM3tB,EAAWnpB,EAAO1S,GAClBP,EAAI,UAAMu8B,GAAkB/mB,GAAM,yBAA9B,YAA0D2yC,EAAYv0C,YAAtE,YAAqF2oB,GAAkB/mB,GAAM,kBAA7G,aAAmI2yC,EAAYG,KAA/I,aAAwJ/rB,GAAkB/mB,GAAM,sBAC1Lq9C,EAAkBz2B,EAAU+rB,EAAY5nD,IAAIwP,MAAK,WAC/CwT,GAAUhU,IAAO5E,EAAM6Y,UAAW,CAChC3hB,KAAM,cACN7D,OAAQ,SACRo+B,SAAUA,EACVvkB,OAAQ6f,EAAWn3B,GACnBmyD,cAAevK,EAAY5nD,GAC3BP,SAEFyT,GAAa,GACbs/C,OAAe/7D,OAwCP8b,aAAcA,IAGlB,sBAAKjI,UAAWtE,KAAM4jB,OAAtB,UACE,sBAAK5jB,MAAO,CAAEsP,QAAS,QAAvB,UACE,qBAAKhL,UAAWtE,KAAM+hD,KAAtB,SACE,yBACEz9C,UAAWtE,KAAM,iBACjBwE,QAvEI,WAElBioD,EAD2B,SAAV3yC,EAAmB,QAAU,SAuEhC9Z,MAAO,CAAE0G,MAAiB,SAAVoT,GAA8B,UAAVA,EAAoB,UAAY,QAHtE,UAKE,cAAC,IAAD,CAAkB9f,GAAG,oBAAoBmM,eAAe,SAAS,cAAC,EAAD,CAAOlG,MAAM,KAAKC,OAAO,KAAKoE,UAAWwoD,SAG9G,qBAAKxoD,UAAWtE,KAAMqN,YAAtB,SACE,yBACE/I,UAAWtE,KAAM,iBACjBwE,QA3EW,WAEzBioD,EAD2B,qBAAV3yC,EAA+B,qBAAuB,qBA2EzD9Z,MAAO,CAAE0G,MAAiB,qBAAVoT,GAAyC,uBAAVA,EAAiC,UAAY,QAH9F,UAKE,cAAC,IAAD,CAAkB9f,GAAG,2BAA2BmM,eAAe,oBAAc,cAAC,EAAD,CAAOlG,MAAM,KAAKC,OAAO,KAAKoE,UAAWyoD,YAI5H,qBAAKzoD,UAAS,UAAMsJ,GAAWC,EAAW7N,KAAM2tB,aAAe3tB,KAAM4tB,cAArE,SACGR,UAKRuG,EAAe,IAEZ,qBAAKrvB,UAAWtE,KAAM,qBAAtB,gBACG0sD,QADH,IACGA,OADH,EACGA,EAAiBzhD,KAAI,SAAA4hD,GAAE,OACtB,cAAC,GAAD,CAEEjL,YAAaiL,EACbj/C,QAASA,EACTC,QAASA,EACTwhB,UAAWA,EACXrD,kBAAmB4I,EACnBroB,aAAcA,GANTsgD,EAAG7yD,SAWd,qBAAKsK,UAAWtE,KAAM,cAAtB,gBACG0sD,QADH,IACGA,OADH,EACGA,EAAiBzhD,KAAI,SAAA4hD,GAAE,OACtB,cAAC,GAAD,CAEEjL,YAAaA,EACbh0C,QAASA,EACTC,QAASA,EACTwhB,UAAWA,EACXrD,kBAAmB4I,EACnBroB,aAAcA,GANTq1C,EAAY5nD,aC5L3BgzD,GAAuB,SAAC,GAAD,IAAGpL,EAAH,EAAGA,YAAa3mB,EAAhB,EAAgBA,QAASE,EAAzB,EAAyBA,SAAU8xB,EAAnC,EAAmCA,WAAYC,EAA/C,EAA+CA,WAAYC,EAA3D,EAA2DA,gBAA3D,OAC3B,gCACE,sBAAK7oD,UAAU,QAAf,UACE,qBAAKA,UAAS,sBAAiB2oD,GAA/B,SAA6C,cAAC,IAAD,CAAkBjzD,GAAG,iCAAiCmM,eAAe,wBAClH,sBAAK7B,UAAU,gBAAf,YACM4oD,GACJ,sBAAK5oD,UAAU,wCAAf,UACE,uBAAMA,UAAU,iCAAhB,UAAiD,cAAC,IAAD,CAAkBtK,GAAG,6BAA6BmM,eAAe,uBAAlH,QACA,sBAAM7B,UAAU,iCAAhB,SAAkD4oD,OAGpD,sBAAK5oD,UAAU,wCAAf,UACE,uBAAMA,UAAU,iCAAhB,UAAiD,cAAC,IAAD,CAAkBtK,GAAG,0BAA0BmM,eAAe,qBAA/G,OACA,sBAAM7B,UAAU,iCAAhB,SAAkDs9C,EAAYI,gBAEhE,sBAAK19C,UAAU,wCAAf,UACE,uBAAMA,UAAU,iCAAhB,UAAiD,cAAC,IAAD,CAAkBtK,GAAG,oBAAoBmM,eAAe,SAAzG,OACA,sBAAM7B,UAAU,iCAAhB,SAAkDs9C,EAAYG,UAEhE,sBAAKz9C,UAAU,wCAAf,UACE,uBAAMA,UAAU,iCAAhB,UAAiD,cAAC,IAAD,CAAkBtK,GAAG,2BAA2BmM,eAAe,oBAAhH,OACA,sBAAM7B,UAAU,iCAAhB,SAAkDs9C,EAAYv0C,iBAEhE,sBAAK/I,UAAU,wCAAf,UACE,uBAAMA,UAAU,iCAAhB,UACE,cAAC,IAAD,CAAkBtK,GAAG,kCAAkCmM,eAAe,iCADxE,OAGA,sBAAM7B,UAAU,iCAAhB,SACG6oD,EACG,cAAC,IAAD,CAAkBnzD,GAAG,4BAA4BmM,eAAe,QAChE,cAAC,IAAD,CAAkBnM,GAAG,2BAA2BmM,eAAe,gBAIvE,sBAAK7B,UAAU,wCAAf,UACE,uBAAMA,UAAU,iCAAhB,UAAiD,cAAC,IAAD,CAAkBtK,GAAG,4BAA4BmM,eAAe,sBAAjH,QACA,sBAAM7B,UAAU,iCAAhB,SAAkDs9C,EAAYllB,aAAeklB,EAAYllB,aAAe,eAI9G,sBAAKp4B,UAAU,QAAf,UACE,qBAAKA,UAAU,cAAf,kBACA,sBAAKA,UAAU,gBAAf,UACE,sBAAKA,UAAU,uDAAf,UACE,uBAAMA,UAAU,iCAAhB,UAAiD,cAAC,IAAD,CAAkBtK,GAAG,mBAAmBmM,eAAe,0BAAxG,QACA,sBAAM7B,UAAU,iCAAhB,SAAkDs9C,EAAY9kB,aAAef,GAA8B6lB,EAAY9kB,cAAgB,SAEzI,sBAAKx4B,UAAU,uDAAf,UACE,uBAAMA,UAAU,iCAAhB,UAAiD,cAAC,IAAD,CAAkBtK,GAAG,iBAAiBmM,eAAe,eAAtG,QACA,sBAAM7B,UAAU,iCAAhB,SAAkD22B,OAEpD,sBAAK32B,UAAU,uDAAf,UACE,uBAAMA,UAAU,iCAAhB,UAAiD,cAAC,IAAD,CAAkBtK,GAAG,oBAAoBmM,eAAe,8BAAzG,QACA,sBAAM7B,UAAU,iCAAhB,SAAkDs9C,EAAY9kB,aAAef,GAA8B6lB,EAAY/kB,eAAiB,SAE1I,sBAAKv4B,UAAU,uDAAf,UACE,uBAAMA,UAAU,iCAAhB,UAAiD,cAAC,IAAD,CAAkBtK,GAAG,kBAAkBmM,eAAe,mBAAvG,QACA,sBAAM7B,UAAU,iCAAhB,SAAkD62B,iBAO5D6xB,GAAqB1nD,aAAe,CAClC2nD,WAAY,GACZC,WAAY,GACZjyB,QAAS,IACTE,SAAU,KAsBG6xB,UCPAI,GA5EW,SAAChpD,GACzB,MAGIA,EAAMhI,MAAMvI,OAFdgiC,EADF,EACEA,SACAs2B,EAFF,EAEEA,cAGF,EAIIn8C,uBAAY,SAAA5M,GAAK,MAAK,CACxB+vB,QAAS/vB,EAAM+vB,QACfnD,aAAc5sB,EAAM4sB,aACpBiK,WAAY72B,EAAM62B,WAAWnoC,OAAS,EAA1B,YAAkCsR,EAAM62B,WAAW,GAAG1nC,MAAQ,OAL1Ey9B,GAFF,EACEmD,QADF,EAEEnD,cACAiK,EAHF,EAGEA,WAOIlxB,EAAWqK,wBAEjB,EAAsC1O,wBAASjU,GAA/C,mBAAOmxD,EAAP,KAAoB4K,EAApB,KACA,EAA4B9nD,wBAASjU,GAArC,mBAAOic,EAAP,KAAe0tB,EAAf,KACA,EAA8C11B,oBAAS,GAAvD,mBAAOyoD,EAAP,KAAwBE,EAAxB,KAEAxoD,qBAAU,YAEW,SAACgxB,GAClB7sB,IAAM4I,IAAN,kBAAqB1K,KAArB,O7J9BK,kB6J8BL,wBAAyD2uB,EAAzD,KAAsE,CACpExsB,QAAS,CAAEE,cAAc,SAAD,OAAW5B,QAClC6B,MAAK,SAAAC,GACN2wB,EAAU3wB,EAAIlX,SAEfmX,OAAM,SAAAxU,GAAK,OAAIE,QAAQC,IAAIH,MAE9BovD,CAAWzuB,GATc,SAACA,EAAU/b,GAAU/Q,EAASukD,GAAqCz3B,EAAU/b,IAUtGsyC,CAAiBv2B,EAAU,UAC1B,CAACA,EAAU9sB,IAEdlE,qBAAU,WACR,GAAImrB,EAAal+B,OAAS,EAAG,CAC3B,IACMy7D,EADqBv9B,EAAalqB,QAAO,SAAA+mD,GAAE,OAAIA,EAAGh3B,WAAaA,KAAU,GAAGtjC,KACxCiV,MAAK,SAAAqlD,GAAE,OAAIA,EAAG7yD,KAAO+a,SAASo3C,EAAe,OACvFK,EAAee,GACXA,EAAezyB,UAAY,GAC7BuyB,GAAmB,MAGtB,CAACr9B,EAAc6F,EAAUs2B,IAE5B,IAAMlxB,EAAU2mB,EAAc3nB,EAAWn0B,QAAO,SAAA+N,GAAS,OAAIA,EAAU7Z,KAAO4nD,EAAY1mB,cAAY,QAAKzqC,EACrG0qC,EAAWymB,EAAc3nB,EAAWn0B,QAAO,SAAA+N,GAAS,OAAIA,EAAU7Z,KAAO4nD,EAAYxmB,eAAa,QAAK3qC,EAE7G,OACE,qBAAK6T,UAAU,2BAA2BtE,MAAO,CAAEykC,UAAW,UAA9D,SACG/3B,GACC,sBAAKpI,UAAU,mBAAf,UACE,sBAAKstB,QAAQ,cAActtB,UAAU,eAArC,UACE,cAAC,IAAD,CAAkBtK,GAAG,8BAA8BmM,eAAe,4BADpE,IACiG,sBAAM7B,UAAU,OAAhB,SAAwB,UAAGoI,EAAO6jB,WAAV,YAAwB7jB,EAAO8jB,WAAYzlB,mBAEnK62C,GACC,cAAC,GAAD,CACEA,YAAaA,EACb3mB,QAASA,EAAO,UAAMA,EAAQ1K,WAAd,YAA4B0K,EAAQzK,WAAc,IAClE2K,SAAUA,EAAQ,UAAMA,EAAS5K,WAAf,YAA6B4K,EAAS3K,WAAc,IACtE28B,gBAAiBA,EACjBD,WAAYxgD,EAAO8gB,gB,qBC2SlBggC,GAlWS,SAACppD,GACvB,MAIIA,EAAMhI,MAAMvI,OAHdgiC,EADF,EACEA,SACAs2B,EAFF,EAEEA,cACA10D,EAHF,EAGEA,OAGF,EAIIuY,uBAAY,SAAA5M,GAAK,MAAK,CACxB4sB,aAAc5sB,EAAM4sB,aACpBmD,QAAS/vB,EAAM+vB,QACflkB,KAAM7L,EAAMgnB,OAAOnb,KACnBkiB,WAAY/tB,EAAMoC,oBAPlBwqB,EADF,EACEA,aACA/gB,EAFF,EAEEA,KACAkiB,EAHF,EAGEA,WAQIpoB,EAAWqK,wBAEXq6C,EAAkB,SAAC53B,EAAU+rB,GAAX,OAA2B74C,EJ2B9C,SAAyB8sB,EAAU+rB,GACxC,IAAMzlD,EAAS+K,IACTY,EAAQH,IAEd,OAAO,SAACoB,EAAU4I,EAAX,OAAuB3I,EAAvB,EAAuBA,MAAvB,OAAmC,IAAIC,SAAQ,SAACC,EAASC,GAAV,OACpDH,EAAM,CACJvR,OAAQ,MACR2R,aAAc,OACdnV,IAAI,WAAD,OAAakI,GAAb,O1JpEE,kB0JoEF,wBAA4C05B,EAA5C,wBAAoE+rB,EAAY5nD,GAAhF,KACHzH,KAAMqvD,EACNv4C,QAAS,CAAEE,cAAc,SAAD,OAAWzB,MAEpC0B,MAAK,kBAAMN,EAAQH,EAASkjD,GAAmBrK,EAAa/rB,QAC5DnsB,OAAM,SAACxU,GAMN,OALIA,EAAM2c,UACsB,MAA1B3c,EAAM2c,SAASza,QACjB+R,EAAOJ,EAAS2I,MAGbvI,EAAOjU,UI9C0Co4D,CAAoCz3B,EAAU+rB,KACpG8L,EAAoB,SAAC73B,EAAU+rB,GAAX,OAA2B74C,EJEhD,SAA2B8sB,EAAU+rB,GAC1C,IAAMzlD,EAAS+K,IACTY,EAAQH,IAEd,OAAO,SAACoB,EAAU4I,EAAX,OAAuB3I,EAAvB,EAAuBA,MAAvB,OAAmC,IAAIC,SAAQ,SAACC,EAASC,GAAV,OACpDH,EAAM,CACJvR,OAAQ,OACR2R,aAAc,OACdnV,IAAI,WAAD,OAAakI,GAAb,O1J5CE,kB0J4CF,wBAA4C05B,EAA5C,iBACHtjC,KAAMqvD,EACNv4C,QAAS,CAAEE,cAAc,SAAD,OAAWzB,MAEpC0B,MAAK,SAAAC,GAAG,OAAIP,EAAQH,EAASijD,GAAiBviD,EAAIlX,KAAMsjC,QACxDnsB,OAAM,SAACxU,GAMN,OALIA,EAAM2c,UACsB,MAA1B3c,EAAM2c,SAASza,QACjB+R,EAAOJ,EAAS2I,MAGbvI,EAAOjU,UIrB4Co4D,CAAsCz3B,EAAU+rB,KAE9G,EAA4Bl9C,wBAASjU,GAArC,mBAAOic,EAAP,KAAe0tB,EAAf,KACA,EAAkC11B,wBAASjU,GAA3C,mBAAOqqC,EAAP,KAAkB6yB,EAAlB,KACA,EAAgCjpD,mBAAS,IAAzC,mBAAOkpD,EAAP,KAAiBC,EAAjB,KACA,EAA0BnpD,oBAAS,GAAnC,mBAAOxP,EAAP,KAAcmtC,EAAd,KACA,EAAkC39B,mBAAS,GAA3C,mBAAOs6B,EAAP,KAAkBuD,EAAlB,KACA,EAAgC79B,mBAAS,IAAzC,mBAAOu6B,EAAP,KAAiBqD,EAAjB,KACA,EAA8C59B,oBAAS,GAAvD,mBAAOyoD,EAAP,KAAwBE,EAAxB,KACA,EAAsC3oD,mBAAS,CAC7C1K,GAAI,EACJ0S,OAAQtI,EAAMhI,MAAMvI,OAAOgiC,SAC3BksB,KAAM,GACN10C,YAAa,GACbqvB,aAAc,GACdslB,WAAY,GACZlnB,UAAW,IAPb,mBAAO8mB,EAAP,KAAoB4K,EAApB,KASA,EAAkC9nD,mBAAS,CACzCq9C,KAAoC,SAA9B39C,EAAMhI,MAAMvI,OAAO4D,OACzB4V,YAA2C,SAA9BjJ,EAAMhI,MAAMvI,OAAO4D,OAChCilC,cAAc,IAHhB,oBAAOoB,GAAP,MAAkBsrB,GAAlB,MAMA,GAAoC1kD,mBAAS,CAC3Cs9C,WAAY,CAAE/jB,UAAU,EAAMzgC,QAAS,IACvCukD,KAAM,CAAE9jB,UAAU,EAAMzgC,QAAS,IACjC6P,YAAa,CAAE4wB,UAAU,EAAMzgC,QAAS,MAH1C,qBAAOswD,GAAP,MAAmBC,GAAnB,MAMAlpD,qBAAU,YAEW,SAACgxB,GAClB7sB,IAAM4I,IAAN,kBAAqB1K,KAArB,O9JnEK,kB8JmEL,wBAAyD2uB,EAAzD,KAAsE,CACpExsB,QAAS,CAAEE,cAAc,SAAD,OAAW5B,QAClC6B,MAAK,SAAAC,GAAQ,IAAD,EACb2wB,EAAU3wB,EAAIlX,MACd,IAAMy7D,EAAa,UAAGvkD,EAAIlX,YAAP,aAAG,EAAUuoC,UAC5BkzB,EAAcl8D,OAAS,GACzB67D,EAAaK,EAAc,OAG9BtkD,OAAM,SAAAxU,GAAK,OAAIE,QAAQC,IAAIH,MAE9BovD,CAAWzuB,GAbc,SAACA,EAAU7jB,GAAajJ,EAASukD,GAAqCz3B,EAAU7jB,IAczGo6C,CAAiBv2B,EAAU,UAC1B,CAACA,EAAU9sB,IAEdlE,qBAAU,WACR,GAAImrB,EAAal+B,OAAS,EAAG,CAC3B,IAAMm8D,EAAqBj+B,EAAalqB,QAAO,SAAA+mD,GAAE,OAAIA,EAAGh3B,WAAaA,KAAU,GAAGtjC,KAC9E27D,EAAcD,EAElB,GAAe,SAAXx2D,EAAmB,CACrBy2D,EAAcA,EAAYpoD,QAAO,SAAA+mD,GAAE,OAAIA,EAAG7yD,KAAO+a,SAASo3C,EAAe,OACzE,IAAMoB,EAAiBU,EAAmBzmD,MAAK,SAAAqlD,GAAE,OAAIA,EAAG7yD,KAAO+a,SAASo3C,EAAe,OACvFK,EAAee,GACXA,EAAezyB,UAAY,GAC7BuyB,GAAmB,GAGvBa,EAAcA,EAAYjjD,KAAI,SAAA4hD,GAAE,OAAIA,EAAG9K,QACvC8L,EAAYK,MAGb,CAACl+B,EAAc6F,EAAUs2B,EAAe10D,IAE3C,IAAM02D,GAAsB,SAAC3vB,GAAwB,IAApByB,IAAmB,yDAC5Cja,EAAQwY,EAAG5zB,OAAOqQ,KAClBlqB,EAAQytC,EAAG5zB,OAAO7Z,MAEpBw8D,EAAiBj5D,OAAOiU,OAAO,GAAIq5C,GACnC9hB,EAAexrC,OAAOiU,OAAO,GAAIulD,IAErC,OAAQ9nC,GACN,IAAK,OACHunC,EAAevnC,GAASj1B,EACxB,IAAMktC,EAA4B,IAAjBltC,EAAMe,OACvBguC,EAAa9Z,GAAOiY,SAAWA,EAC1BA,GAIH6B,EAAa9Z,GAAOiY,UAAW,EAC/B6B,EAAa9Z,GAAOxoB,QAAU,IAJ9BsiC,EAAa9Z,GAAOxoB,QAClB,cAAC,IAAD,CAAkBxD,GAAG,yBAAyBmM,eAAe,kCAKjE,MAEF,IAAK,cACL,IAAK,aACHonD,EAAevnC,GAASj1B,EACxB,IAAMktC,EAAWltC,EAAMe,QAAU,EACjCguC,EAAa9Z,GAAOiY,SAAWA,EAC1BA,GAIH6B,EAAa9Z,GAAOiY,UAAW,EAC/B6B,EAAa9Z,GAAOxoB,QAAU,IAJ9BsiC,EAAa9Z,GAAOxoB,QAClB,cAAC,IAAD,CAAkBxD,GAAG,8BAA8BmM,eAAe,kDAKtE,MAEF,QACEonD,EAAevnC,GAASj1B,EAK5By7D,EAAel4D,OAAOiU,OAAO,GAAIglD,IACjCQ,GAAcz5D,OAAOiU,OAAO,GAAIu3B,IAEhCspB,GAAa90D,OAAOiU,OAAO,GAAIu1B,GAAlBxpC,OAAA,KAAAA,CAAA,GAAgC0xB,EAAQia,MAGjDkE,GAAe,SAAC1Y,GACpB,IAAM5Z,EAAW4Z,EAAI5Z,SACrB,GAAIA,EAAU,CACZ,IAAMu8C,EAAev8C,EAASza,OAC1Bi3D,EAAc,GAClB,GAAqB,MAAjBD,GAAwBv8C,EAAStf,KAAM,CACzC,IAAMo4D,EAAUr2D,OAAOwF,KAAK+X,EAAStf,MAAM,GAGvC87D,EAAcx8C,EAAStf,KAAKo4D,GAAS,QAIzC0D,EAAc,gBAEhBhsB,GAAS,GACTE,EAAa6rB,GACb9rB,EAAY+rB,KAsEV5hD,GAAmB,SAAXhV,EAAoB,cAAC,IAAD,CAAkBuC,GAAG,oCAAoCmM,eAAe,sBAAyB,cAAC,IAAD,CAAkBnM,GAAG,mCAAmCmM,eAAe,yBAE1M,OACE,sBAAK7B,UAAU,2BAA2BtE,MAAO,CAAEykC,UAAW,UAA9D,UACGvvC,GAAS,cAAC,GAAD,CAAgB8pC,UAAWA,EAAWC,SAAUA,EAAUC,aAtEhD,WACtBmD,GAAS,GACTE,EAAa,GACbD,EAAY,OAoEV,sBAAKh+B,UAAU,iBAAf,UACGoI,GACC,sBAAKpI,UAAWtE,KAAMyM,MAAtB,UACGA,GADH,IACU,sBAAMnI,UAAU,OAAhB,SAAwB,UAAGoI,EAAO6jB,WAAV,YAAwB7jB,EAAO8jB,WAAYzlB,mBAG9E62C,GACC,sBAAMt9C,UAAU,oCAAhB,SACE,sBAAKA,UAAU,QAAf,UACE,qBAAKA,UAAU,cAAf,SACE,cAAC,IAAD,CAAkBtK,GAAG,iCAAiCmM,eAAe,wBAEvE,sBAAK7B,UAAU,kBAAf,UACGoI,GACD,sBAAKpI,UAAU,uBAAuBtE,MAAO,CAAEiM,WAAY,QAA3D,UACE,uBAAM3H,UAAU,mBAAmBtE,MAAO,CAACimB,WAAY,SAAvD,UACE,cAAC,IAAD,CAAkBjsB,GAAG,6BAA6BmM,eAAe,uBADnE,QACgG,sBAAM7B,UAAU,QAAhB,SAAyBoI,EAAO8gB,aAIlI,qBAAKlpB,UAAU,gCAAf,SACE,cAAC,GAAD,CACEtK,GAAG,aACHihB,KAAK,aACL+rC,UAAW,EACX50B,UAAW,EACXrhC,MAAO6wD,EAAYI,WACnBlkB,UAAWgwB,GAAW9L,WACtBlwB,SAAUq8B,GACVpwB,YAAU,EACVtxB,MACE,cAAC,IAAD,CACEzS,GAAG,0BACHmM,eAAe,2BAKvB,qBAAK7B,UAAU,gCAAf,SACE,cAAC,GAAD,CACEtK,GAAG,OACHihB,KAAK,OACL+rC,UAAW,EACX50B,UAAW,EACX6L,SAjEG,SAACltC,GACpB,IACM6sB,EADM7sB,EAAM+E,MAAM,IACRgQ,QAAO,SAAAyX,GAAE,MAAI,KAAK1qB,KAAK0qB,MAAKxnB,KAAK,IAEjD,OAAqB,IAAjBhF,EAAMe,OACD,EAAC,EAAO,cAAC,IAAD,CAAkBkI,GAAG,gCAAgCmM,eAAe,iCAChE,QAAVpV,EACF,EAAC,EAAO,cAAC,IAAD,CAAkBiJ,GAAG,iCAAiCmM,eAAe,sBAC3EyX,IAAQ7sB,EACV6sB,GAC6B,IAA3BgwC,EAAS15D,QAAQ0pB,IAGrB,EAAC,EAAO,cAAC,IAAD,CAAkB5jB,GAAG,mCAAmCmM,eAAe,iDAqDtEpV,MAAO6wD,EAAYG,KACnBjkB,UAAWgwB,GAAW/L,KACtBjwB,SAAUq8B,GACVpwB,YAAU,EACVtxB,MACE,cAAC,IAAD,CACEzS,GAAG,oBACHmM,eAAe,eAKvB,qBAAK7B,UAAU,gCAAf,SACE,cAAC,GAAD,CACEtK,GAAG,cACHihB,KAAK,cACL+rC,UAAW,EACX50B,UAAW,GACXrhC,MAAO6wD,EAAYv0C,YACnBywB,UAAWgwB,GAAWzgD,YACtBykB,SAAUq8B,GACVpwB,YAAU,EACVtxB,MACE,cAAC,IAAD,CACEzS,GAAG,2BACHmM,eAAe,0BAKtB20B,GACC,sBAAK96B,MAAO,CAAEE,OAAQ,QAAUoE,UAAU,uBAA1C,UACE,wBAAOA,UAAU,uBAAuBstB,QAAQ,eAAhD,UAA+D,cAAC,IAAD,CAAkB53B,GAAG,8BAA8BmM,eAAe,iCAAjI,KAAkK20B,EAAUvK,WAA5K,IAAyLuK,EAAUtK,UAAnM,SACA,qBAAKxwB,MAAO,CAAEE,OAAQ,QAAUoE,UAAU,YAA1C,SACE,cAAC,GAAD,CAAeA,UAAU,eAAes6B,QAASuuB,EAAiBr7B,SAAU,kBAAMu7B,GAAoBF,WAI5G,sBAAKntD,MAAO,CAAEE,OAAQ,QAAUoE,UAAU,uBAA1C,UACE,wBAAOA,UAAU,uBAAuBstB,QAAQ,eAAhD,UAA+D,cAAC,IAAD,CAAkB53B,GAAG,4BAA4BmM,eAAe,sBAA/H,QACA,qBAAKnG,MAAO,CAAEE,OAAQ,QAAUoE,UAAU,YAA1C,SACE,0BACEA,UAAU,6BACVvT,MAAO6wD,EAAYllB,aACnBtK,UAAU,MACVN,SAAUq8B,GACVlzC,KAAK,eACLskB,KAAK,KACLC,KAAK,YAIX,sBAAKl7B,UAAU,aAAatE,MAAO,CAACiM,WAAY,QAAhD,UACE,yBAAQ3Q,KAAK,SAASgJ,UAAU,qCAAqCE,QAAS,kBAAMJ,EAAM2F,QAAQ9H,KAAd,iCAA6C4zB,EAA7C,OAApF,UACE,+BACE,mBAAGvxB,UAAU,sBAAsB,cAAY,OAAOtE,MAAO,CAACgM,aAAa,OAAOC,WAAY,cAEhG,cAAC,IAAD,CAAkBjS,GAAG,qBAAqBmM,eAAe,gBA9HlE7R,OAAOwF,KAAKgkC,IAAWyG,OAAM,SAAAhnB,GAAE,OAAsB,IAAlBugB,GAAUvgB,MAiIpC,yBAAQjiB,KAAK,SAAS6Q,UAAU,EAAO7H,UAAW,uCAAwCE,QA1KpF,WACtB,IAAM/K,EAAI,UAAMu8B,GAAkB/mB,GAAM,yBAA9B,YAA0D2yC,EAAYv0C,YAAtE,YACG,SAAX5V,EAAoBu+B,GAAkB/mB,GAAM,qBAAuB+mB,GAAkB/mB,GAAM,oBACvFq/C,EAAoBh6D,OAAOiU,OAC/B,GACAq5C,EACA,CAAEl1C,OAAQmpB,GACV,CAAEiF,UAAWqyB,EAAkBryB,EAAU9gC,GAAK,KAEjC,SAAXvC,EACFg2D,EAAgB53B,EAAUy4B,GAAmB9kD,MAAK,WAChDwT,GAAUhU,IAAO5E,EAAM6Y,UAAW,CAChC3hB,KAAM,cACN7D,OAAQ,OACRo+B,SAAUA,EACVvkB,OAAQ6f,EAAWn3B,GACnBP,OACA60D,sBAEFlqD,EAAM2F,QAAQ9H,KAAd,iCAA6C4zB,EAA7C,SACCnsB,OAAM,SAAC+hB,GACR0Y,GAAa1Y,MAGfiiC,EAAkB73B,EAAUy4B,GAAmB9kD,MAAK,SAACC,GACnDuT,GAAUhU,IAAO5E,EAAM6Y,UAAW,CAChC3hB,KAAM,cACN7D,OAAQ,SACRo+B,SAAUA,EACVvkB,OAAQ6f,EAAWn3B,GACnB4nD,YAAan4C,EAAIm4C,YACjBnoD,SAEF2K,EAAM2F,QAAQ9H,KAAd,iCAA6C4zB,EAA7C,SACCnsB,OAAM,SAAC+hB,GACR0Y,GAAa1Y,OAuID,UAAoH,qCAAO,mBAAGnnB,UAAU,oBAAoB,cAAY,OAAOtE,MAAO,CAACgM,aAAa,OAAOC,WAAY,eAAmB,cAAC,IAAD,CAAkBjS,GAAG,mBAAmBmM,eAAe,cAC/R,yBAAQ7K,KAAK,SAAS6Q,UAAQ,EAAC7H,UAAW,yCAA1C,UAAoF,qCAAO,mBAAGA,UAAU,oBAAoB,cAAY,OAAOtE,MAAO,CAACgM,aAAa,OAAOC,WAAY,eAAmB,cAAC,IAAD,CAAkBjS,GAAG,mBAAmBmM,eAAe,gCC9VjRooD,GAAQ,SAAC,GAAD,IAAGruD,EAAH,EAAGA,OAAQoE,EAAX,EAAWA,UAAWrE,EAAtB,EAAsBA,MAAtB,OACZ,sBAAKqE,UAAWA,EAAWrE,MAAOA,EAAOC,OAAQA,EAAQiF,QAAQ,YAAYC,MAAM,6BAAnF,UACE,sBACEF,KAAK,UAAU2E,EAAE,uNAGnB,sBAAM3E,KAAK,OAAO2E,EAAE,wBAIxB0kD,GAAMjpD,aAAe,CACnBpF,OAAQ,KACRoE,UAAW,GACXrE,MAAO,MASMsuD,UCrBTC,I,OAAe,SAAC,GAAD,IAAGlqD,EAAH,EAAGA,UAAWpE,EAAd,EAAcA,OAAQD,EAAtB,EAAsBA,MAAtB,OACnB,sBAAKqE,UAAWA,EAAWrE,MAAOA,EAAOC,OAAQA,EAAQiF,QAAQ,YAAYC,MAAM,6BAAnF,UACE,sBAAMF,KAAK,OAAO2E,EAAE,oBACpB,sBAAMA,EAAE,mEAIZ2kD,GAAalpD,aAAe,CAC1BhB,UAAW,GACXpE,OAAQ,KACRD,MAAO,MASMuuD,U,oBCVTC,I,OAAY,SAAC,GAaZ,IAZLC,EAYI,EAZJA,OACAt8C,EAWI,EAXJA,OACAu8C,EAUI,EAVJA,WACA3mD,EASI,EATJA,KACAwL,EAQI,EARJA,YACAyJ,EAOI,EAPJA,UACAhK,EAMI,EANJA,OACA+Y,EAKI,EALJA,kBACAC,EAII,EAJJA,aACAhd,EAGI,EAHJA,KACAlF,EAEI,EAFJA,QACAoa,EACI,EADJA,cAEIC,EAAU,UACZhS,EAAOiS,kBAAkBvuB,MAAM,KAAK,GADxB,YAEVsc,EAAOkS,iBAAiBxuB,MAAM,KAAKyuB,OACnCnS,EAAOoS,mBAAqBpS,EAAOqS,uBACrCL,EAAU,UACRhS,EAAOqS,qBAAqB3uB,MAAM,KAAK,GAD/B,YAENsc,EAAOsS,oBAAoB5uB,MAAM,KAAKyuB,QAE5C,IAAM/X,EAASkiD,EACX,iEACA,4DAEEE,EACc,UAAlBx8C,EAAOhb,OACH2kC,GAA8B3pB,EAAOqB,UACrC,IACFo7C,EAAoB,OACxB,OAAQz8C,EAAO6C,kBACb,KAAK,EACH45C,EAAoB,OACpB,MACF,KAAK,EACHA,EAAoB,SACpB,MACF,KAAK,EACHA,EAAoB,MACpB,MACF,KAAK,EACHA,EAAoB,SAMxB,OACE,sBAAKvqD,UAAWtE,KAAMmwB,IAAtB,UACE,qBAAK7rB,UAAS,UAAKtE,KAAMutB,OAAX,YAAqBvtB,KAAMhG,IAAzC,SAAgDoY,EAAOpY,MACvC,IAAf20D,GACC,qBAAKrqD,UAAS,UAAKtE,KAAMutB,OAAX,YAAqBvtB,KAAM0M,QAAzC,SAAoD0X,IAEtD,qBAAK9f,UAAS,UAAKtE,KAAMutB,OAAX,YAAqBvtB,KAAM6T,WAAzC,SACGwK,GAAiBjM,KAEnB+R,EACC,qBAAK7f,UAAS,UAAKtE,KAAMutB,OAAX,YAAqBvtB,KAAM8uD,YAAzC,SAC2B,QAAxB18C,EAAO4C,cAA0B5C,EAAO2O,eACrC3O,EAAO2O,eACP/F,GAAe/L,GAAMmD,EAAO4C,gBAGlC,qBAAK1Q,UAAS,UAAKtE,KAAMutB,OAAX,YAAqBvtB,KAAM8uD,YAAzC,SACG9zC,GAAe/L,GAAMmD,EAAO4C,gBAGjC,qBAAK1Q,UAAS,UAAKtE,KAAMutB,OAAX,YAAqBvtB,KAAM+uD,UAAzC,SACGhzB,GAA8B3pB,EAAO0O,WAExC,qBAAKxc,UAAS,UAAKtE,KAAMutB,OAAX,YAAqBvtB,KAAMgvD,YAAzC,SACGJ,IAEgB,UAAlBx8C,EAAOhb,OACN,qBAAKkN,UAAS,UAAKtE,KAAMutB,OAAX,YAAqBvtB,KAAMivD,WAAzC,SACG78C,EAAO88C,YAAoC,KAAtB98C,EAAO88C,WAC3B,cAAC,GAAD,IAEA98C,EAAO+S,aACL,qBACE+L,YAAa,kBAAMlF,EAAkB,UACrC8K,WAAY7K,EAFd,SAIE,mBACE3nB,UAAW,0BACX,cAAY,OACZtE,MAAO,CAAEsuB,WAAY,kBAO/B,qBACEhqB,UAAS,UAAKtE,KAAMutB,OAAX,YAAqBvtB,KAAMmgD,UACpCjvB,YACE/M,EACI,aACA,kBAAM6H,EAAkB5Z,EAAO6C,mBAErC6hB,WAAY7K,EAPd,UASI9H,GAAiB,cAAC,GAAD,CAAc7f,UAAWuqD,MAGhD,qBAAKvqD,UAAU,aAAf,SACE,cAAC,GAAD,CACE8N,OAAQA,EACR6K,UAAWA,EACX7I,eAAgB5H,EAChBxE,KAAMA,EACNwL,YAAaA,EACbP,OAA0B,SAAlBb,EAAOhb,QAAoB6b,EACnClJ,QAASA,WAOnB0kD,GAAUnpD,aAAe,CACvB2N,QAAQ,GA+DKw7C,UCrMA,IACbx2C,GAAI,CACF,EAAG,iBACH,EAAG,YACH,EAAG,eACH,EAAG,kBACH,EAAG,qBACH,EAAG,sBACH,EAAG,iBAELC,GAAI,CACF,EAAG,2BACH,EAAG,mBACH,EAAG,qBACH,EAAG,oBACH,EAAG,6BACH,EAAG,yBACH,EAAG,sB,qBCsNQ3Z,0BATf,SAAyB6E,GACvB,MAAO,CACL+tB,WAAY/tB,EAAMoC,gBAClB0pB,UAAW9rB,EAAMyC,OAAOC,QAAO,SAAAC,GAAG,OAAK,CAAC,EAAG,EAAG,EAAG,GAAGC,SAASD,EAAI/L,OACjEm1D,WAAY/rD,EAAM+rD,WAClBlgD,KAAM7L,EAAMgnB,OAAOnb,QAIR1Q,EA/NW,SAAC6F,GACzB,IAAM6F,EAAaC,iBAAO,MAC1B,EAAgCxF,mBAAS,IAAzC,mBAAO8M,EAAP,KAAiB49C,EAAjB,KACA,EAAkC1qD,mBAAS,IAA3C,mBAAOkB,EAAP,KAAkByrB,EAAlB,KACA,EAAkC3sB,mBAAS,IAA3C,mBAAO2qD,EAAP,KAAkBC,EAAlB,KACA,EAAgC5qD,oBAAU,GAA1C,mBAAO6qD,EAAP,KAAiBC,EAAjB,KAEA3qD,qBAAU,WAGR,OAFArU,SAAS0T,iBAAiB,YAAaqG,GAEhC,WACL/Z,SAASga,oBAAoB,YAAaD,MAE3C,IAEH,IAAMA,EAAiB,SAACi0B,GAClBv0B,EAAWS,UAAYT,EAAWS,QAAQC,SAAS6zB,EAAG5zB,SACxDxG,EAAMutB,cA8CJ89B,EAAarrD,EAAM+qD,WAAWlkD,KAAI,SAAA5Q,GAAG,MAAK,CAC9CtJ,MAAOsJ,EAAIL,GACXuvB,MAAOmmC,GAAYtrD,EAAM6K,MAAM5U,EAAIL,IACnCihB,KAAMy0C,GAAYtrD,EAAM6K,MAAM5U,EAAIL,QAGpC,OACE,qBAAKsK,UAAWtE,KAAM,kBAAtB,SACE,sBAAKsE,UAAWtE,KAAM,oBAAqB8K,IAAKb,EAAhD,UACE,qBAAK3F,UAAWtE,KAAM,iBAAtB,SACE,cAAC,IAAD,CAAkBhG,GAAG,uBAAuBmM,eAAe,2BAG7D,sBAAK7B,UAAU,aAAf,UACE,uBAAOA,UAAU,aAAatE,MAAO,CAAEuO,SAAU,UAAWqjB,QAASpgB,EAArE,SACE,cAAC,IAAD,CAAkBxX,GAAG,0BAA0BmM,eAAe,0BAEhE,uBACE7B,UAAU,eACV8tB,UAAU,KACVnX,KAAK,SACL6W,SAAU,SAAC0M,GAAD,OAAQ4wB,EAAY5wB,EAAG5zB,OAAO7Z,QACxCuK,KAAK,SACLvK,MAAOygB,EACPxR,MAAO,CAAEuO,SAAU,eAIvB,sBAAKjK,UAAU,aAAf,UACE,wBAAOA,UAAU,aAAatE,MAAO,CAAEuO,SAAU,UAAWqjB,QAAQ,WAApE,UACE,cAAC,IAAD,CAAkB53B,GAAG,yBAAyBmM,eAAe,iBAD/D,OAGA,yBACE7B,UAAS,iCACPutB,KAAU,mBAEZ5W,KAAK,WACLlqB,MAAOw+D,EACPz9B,SAAU,SAAC0M,GAAD,OAAQgxB,EAAYhxB,EAAG5zB,OAAO7Z,QACxCiP,MAAO,CAAEuO,SAAU,UAPrB,UASE,wBAAQxd,OAAQ,EAAhB,SAAoBiR,GAASoC,EAAM6K,MAAM,mBACzC,wBAAQle,MAAO,EAAf,SAAoBiR,GAASoC,EAAM6K,MAAM,iBACzC,wBAAQle,MAAO,EAAf,SAAoBiR,GAASoC,EAAM6K,MAAM,sBAI5C7K,EAAM+sB,YAAiD,IAAnC/sB,EAAM+sB,WAAWtrB,OAAO/T,QAC3C,sBAAKwS,UAAU,aAAf,UACE,wBAAOA,UAAU,aAAatE,MAAO,CAAEuO,SAAU,UAAWqjB,QAAQ,YAApE,UACE,cAAC,IAAD,CAAkB53B,GAAG,wBAAwBmM,eAAe,YAD9D,OAGA,yBACE7B,UAAS,iCACPutB,KAAU,mBAEZ5W,KAAK,YACLlqB,MAAO6U,EACPksB,SAAU,SAAC0M,GAAD,OAAQnN,EAAamN,EAAG5zB,OAAO7Z,QACzCiP,MAAO,CAAEuO,SAAU,UAPrB,UASE,wBAAQxd,MAAO,GAAf,SAAoBiR,GAASoC,EAAM6K,MAAM,mBACxC7K,EAAM8qB,WAAa9qB,EAAM8qB,UACzB6C,MAAK,SAACC,EAAOC,GAAR,OAAkBD,EAAM/W,KAAKiX,cAAcD,EAAMhX,SACtDhQ,KAAI,SAAAknB,GAAI,OACP,wBAAsBphC,MAAOohC,EAAKn4B,GAAlC,SACGm4B,EAAKlX,MADKkX,EAAKn4B,aAQ1B,sBAAKsK,UAAU,aAAf,UACE,wBAAOA,UAAU,aAAatE,MAAO,CAAEuO,SAAU,UAAWqjB,QAAQ,YAApE,UACE,cAAC,IAAD,CAAkB53B,GAAG,0BAA0BmM,eAAe,wBADhE,OAGA,yBACE7B,UAAS,iCACPutB,KAAU,mBAEZ5W,KAAK,YACLlqB,MAAOs+D,EACPv9B,SAAU,SAAC0M,GAAD,OAAQ8wB,EAAa9wB,EAAG5zB,OAAO7Z,QACzCiP,MAAO,CAAEuO,SAAU,UAPrB,UASE,wBAAQxd,MAAO,GAAf,SAAoBiR,GAASoC,EAAM6K,MAAM,mBACxCwgD,GAAcA,EACd19B,MAAK,SAAC49B,EAASC,GAAV,OAAsBD,EAAQ10C,KAAKiX,cAAc09B,EAAQ30C,SAC9DhQ,KAAI,SAAAknB,GAAI,OACP,wBAAyBphC,MAAOohC,EAAKphC,MAArC,SACGohC,EAAKlX,MADKkX,EAAKphC,gBAOxB,qBAAKuT,UAAU,aAAf,SACE,wBACEA,UAAWtE,KAAM,cACjBwE,QA9IoB,WAC5B,IACIqrD,EAAc,GACd71D,EAAK,GACL81D,EAAe,GACfz1D,EAAM,GAEV,OAAQ0a,SAASw6C,EAAU,KACzB,KAAM,EACJ,MACF,KAAK,EACHM,EAAc,iBACd,MAEF,KAAK,EACHA,EAAc,kBAOdjqD,IACFkqD,EAAY,kBAAclqD,IAGxB4L,IACFxX,EAAE,aAASwX,IAGT69C,IACFh1D,EAAG,qBAAiBg1D,IAGtB,IAAIp7D,EAAG,UAjCU,IAkCjBA,EAAG,UAAMA,GAAN,OAAY47D,EAAW,WAAOA,GAAgB,IACjD57D,EAAG,UAAMA,GAAN,OAAY67D,EAAY,WAAOA,GAAiB,IACnD77D,EAAG,UAAMA,GAAN,OAAY+F,EAAE,WAAOA,GAAO,IAC/B/F,EAAG,UAAMA,GAAN,OAAYoG,EAAG,WAAOA,GAAQ,IACjC+J,EAAM2rD,cAAc97D,IAwGZqH,KAAK,SAHP,SAKE,uBAAMgJ,UAAWtE,KAAM,sBAAvB,UACA,mBAAGsE,UAAU,eAAe,cAAY,SACtC,cAAC,IAAD,CAAkBtK,GAAG,aAAamM,eAAe,2BCmUhD5H,0BA7Bf,SAAyB6E,EAAOmC,GAC9B,MAAO,CACLkN,QAASrP,EAAMqP,QACf5e,OAAQ0R,EAAS1R,OACjBmU,KAAM5E,EAAMoC,gBACZyX,UAAW1X,EAAS0X,UACpBkyC,WAAY/rD,EAAM+rD,WAClBjgC,UAAW9rB,EAAMyC,OAAOC,QAAO,SAACC,GAAD,OAAU,CAAC,EAAG,EAAG,EAAG,GAAGC,SAASD,EAAI/L,OACnEiV,KAAM7L,EAAMgnB,OAAOnb,KACnBuE,YAAajO,EAASiO,YACtBN,oBAAqB9P,EAAM8P,oBAAoBC,OAC/CF,OACE7P,EAAMhM,OAAOtF,OAAS,GAClBsR,EAAMhM,OAAOiZ,MACX,SAACtf,GAAD,OAAWA,EAAMugB,SAAWlO,EAAMoC,gBAAgBxL,UAM9D,SAA4B+O,GAC1B,MAAO,CACLsJ,YAAa,SAACL,EAAUlM,GAAX,OACXiD,EAASsK,GAA2BrB,EAAUlM,KAChDyM,WAAY,SAACN,EAAMC,GAAP,OACVnJ,EAASsK,GAA0BpB,EAAMC,QAIhC3T,EAreK,SAAC6F,GACnB,IACA,EAA8BM,oBAAS,GAAvC,mBAAOqvB,EAAP,KAAgBzgB,EAAhB,KACA,EAAsC5O,mBAAS,IAA/C,mBAAOsrD,EAAP,KAAoBC,EAApB,KACA,EAA4BvrD,mBAAS,IAArC,mBAAOoB,EAAP,KAAe8oB,EAAf,KACA,EAAgClqB,mBAAS,IAAzC,mBAAOsN,EAAP,KAAiBoiB,EAAjB,KACA,EAAoC1vB,mBAAS,GAA7C,mBAAO2uB,EAAP,KAAmBc,EAAnB,KACA,EAAwCzvB,mBAAS,GAAjD,mBAAOwrD,EAAP,KAAqBC,EAArB,KACA,EAAwBzrD,mBAAS,IAAjC,mBAAO+vB,EAAP,KAAaC,EAAb,KACA,EAAgChwB,mBAAS,IAAzC,mBAAOihB,EAAP,KAAiBgP,EAAjB,KACA,EAA8CjwB,oBAAS,GAAvD,mBAAO0pB,EAAP,KAAwBgiC,EAAxB,KACA,EAAoC1rD,mBAAS,IAA7C,mBAAO0oB,EAAP,KAAmBwH,EAAnB,KAEA/vB,qBAAU,WACHT,EAAMqO,SAAiD,IAAtCne,OAAOwF,KAAKsK,EAAMqO,SAAS3gB,QAC/CsS,EAAMiO,gBAEP,IAEHxN,qBAAU,WACRwrD,EAAWjsD,EAAMqO,WAChB,CAACrO,EAAMqO,UAEV,IAAMuZ,EAAoB,SAACskC,GACzB,GAAgB,UAAZA,EACF17B,EACE,cAAC,IAAD,CAAkB56B,GAAG,iBAAiBmM,eAAe,eAElD,CACL,IAAMkJ,E1GuQL,SAAuByL,GAC5B,IAAM7L,EAAQ5H,aAAauS,cAAuBvS,aAAauS,cAApB,KAC3C,OAAQkB,GACN,KAAK,EACH,OAAO9Y,GAASiN,GAAM,wBACxB,KAAK,EACH,OAAOjN,GAASiN,GAAM,0BACxB,KAAK,EACH,OAAOjN,GAASiN,GAAM,uBACxB,KAAK,EACH,OAAOjN,GAASiN,GAAM,uBACxB,QACE,MAAO,I0GnRMshD,CAAcD,GAC3B17B,EAAcvlB,KAIZ4c,EAAe,WACnB2I,EAAc,KAGVy7B,EAAa,SAAC59C,GAClB,IAAM4gB,EAAa5gB,EAAQC,MACvBD,EAAQC,MAAMlL,MAAK,SAACjV,GAAD,OAAUA,EAAK0f,OAASQ,EAAQ4gB,mBACnD5iC,EACJw/D,EAAe58B,EAAaA,EAAWthB,QAAU,IACjD2iB,EAAQrB,EAAaA,EAAWoB,KAAO,IACvCE,EAAYtB,EAAaA,EAAW1N,SAAW,IAC/CyO,EAAY3hB,EAAQT,UACpB4c,EAAUnc,EAAQ3M,QAClBqqD,EAAgB19C,EAAQ+iB,OACxBrB,EAAc1hB,EAAQ4gB,YACtB/f,GAAW,IA8EPk9C,EAA6B,gBAAbx+C,EAA6BhS,KAAMgL,OAAS,GAC5DylD,EACS,uDAAbz+C,EACIhS,KAAMgL,OACN,GACA0lD,EACS,6DAAb1+C,EACIhS,KAAMgL,OACN,GACA2lD,EACS,0CAAb3+C,EAAuDhS,KAAMgL,OAAS,GAClE4lD,EAAgC,qBAAb5+C,EAAkChS,KAAMgL,OAAS,GACpE6lD,GAA8B,sBAAb7+C,EAAmChS,KAAMgL,OAAS,GAEzE,OACE,sBAAK1G,UAAU,2BAA2BtE,MAAO,CAAE6tB,SAAU,UAA7D,UACE,qBAAKvpB,UAAWtE,KAAMyM,MAAtB,SACE,cAAC,IAAD,CACEzS,GAAG,yBACHmM,eAAe,mBAGlBL,EACC,yBAAQxB,UAAWtE,KAAM8wD,UAAWtsD,QApFrB,WACnB8O,GAAW,GACXlP,EAAMiO,YAAYL,IAkFd,UACE,mBACE1N,UAAU,gBACV,cAAY,OACZtE,MAAO,CAAEsuB,WAAY,cAEvB,sBAAMtuB,MAAO,CAAEimB,WAAY,MAAOrF,WAAY,QAA9C,SACE,cAAC,IAAD,CACE5mB,GAAG,wBACHmM,eAAe,kBAKrB,yBACE7B,UAAWtE,KAAM8wD,UACjBtsD,QAAS,kBAAM4rD,GAAoBhiC,IAFrC,UAIE,mBACE9pB,UAAU,gBACV,cAAY,OACZtE,MAAO,CAAEsuB,WAAY,cAEvB,sBAAMtuB,MAAO,CAAEimB,WAAY,MAAOrF,WAAY,QAA9C,SACE,cAAC,IAAD,CACE5mB,GAAG,wBACHmM,eAAe,iBAKtBioB,GACC,cAAC,GAAD,CACE2hC,cA7Hc,SAACjqD,GACrBsqD,GAAmB,GACnB98C,GAAW,GACX6gB,EAAc,GAEd/vB,EAAMiO,YAAYL,EAAUlM,IAyHtB6rB,WAAY,kBAAMy+B,GAAoBhiC,MAGzCtoB,GACC,sBACE9F,MAAO,CACL8X,MAAO,OACP7X,MAAO,QACPK,UAAW,OACX2lB,WAAY,OACZvf,MAAO,WANX,UASE,sBAAK1G,MAAO,CAAE8X,MAAO,QAArB,UACE,cAAC,IAAD,CACE9d,GAAG,2BACHmM,eAAe,kBAHnB,OAOCL,EAAOE,SAAS,OACf,qBAAKhG,MAAO,CAAE8X,MAAO,OAAQmO,WAAY,QAAzC,SACE,cAAC,IAAD,CACEjsB,GAAG,mBACHmM,eAAe,0BAIpBL,EAAOE,SAAS,YACf,qBAAKhG,MAAO,CAAE8X,MAAO,OAAQmO,WAAY,QAAzC,SAEI7hB,EAAM8qB,UAAU1nB,MACd,SAACynB,GAAD,OACEA,EAAQj1B,KACR+a,SACEjP,EACGhQ,MAAM,KACN0R,MAAK,SAACupD,GAAD,OAAUA,EAAK/qD,SAAS,eAC7BlQ,MAAM,KAAK,GACd,OAEJmlB,OAIPnV,EAAOE,SAAS,cACf,sBAAKhG,MAAO,CAAE8X,MAAO,OAAQmO,WAAY,QAAzC,UACG,IACAngB,EAAOE,SAAS,kBACf,cAAC,IAAD,CACEhM,GAAG,yBACHmM,eAAe,iBAGjB,cAAC,IAAD,CACEnM,GAAG,wBACHmM,eAAe,mBAKtBL,EAAOE,SAAS,eACf,qBAAKhG,MAAO,CAAE8X,MAAO,OAAQmO,WAAY,QAAzC,SAEIypC,GAAYtrD,EAAM6K,MAChB7K,EAAM+qD,WAAW3nD,MACf,SAACnN,GAAD,OACEA,EAAIL,KACJ+a,SACEjP,EACGhQ,MAAM,KACN0R,MAAK,SAACupD,GAAD,OAAUA,EAAK/qD,SAAS,kBAC7BlQ,MAAM,KAAK,GACd,OAEJkE,MAKT8L,EAAOE,SAAS,YACf,sBAAKhG,MAAO,CAAE8X,MAAO,OAAQmO,WAAY,QAAzC,UACG,IACAngB,EAAOE,SAAS,gBACf,cAAC,IAAD,CACEhM,GAAG,uBACHmM,eAAe,wBAGjB,cAAC,IAAD,CACEnM,GAAG,wBACHmM,eAAe,wBAKtBL,EAAOE,SAAS,WACf,qBAAKhG,MAAO,CAAE8X,MAAO,OAAQmO,WAAY,QAAzC,SACE,cAAC,IAAD,CACEjsB,GAAG,wBACHmM,eAAe,eAMzB,sBAAK7B,UAAWtE,KAAM81B,MAAtB,UACE,cAAC,GAAD,CACEhJ,WAAY9sB,KAAM+kD,SAClBp4B,iBAAkBujC,EAClBxjC,WArSW,GAsSXD,QAnPW,SAACxa,GAClBqB,GAAW,GACX,IAAMpB,EAAUD,EAAOohB,EAAaoB,EAAO9O,EAC3CvhB,EAAMmO,WAAWN,EAAMC,IAiPjBD,KAAMohB,IAER,sBAAK/uB,UAAWtE,KAAM4jB,OAAtB,UACE,qBAAKtf,UAAS,UAAKtE,KAAMutB,OAAX,YAAqBvtB,KAAMhG,IAAzC,SACE,yBACEsK,UAAWtE,KAAM,iBACjBwE,QAvOM,WAChB,IAAMkgD,EACS,eAAb1yC,EAA4B,cAAgB,aAC9CsB,GAAW,GACX8gB,EAAYswB,GACZtgD,EAAMiO,YAAYqyC,EAAa5+C,IAmOrB9F,MAAO,CACL0G,MACe,eAAbsL,GAA0C,gBAAbA,EACzB,UACA,QAPV,eAWE,cAAC,EAAD,CAAO/R,MAAM,KAAKC,OAAO,KAAKoE,UAAWksD,SAG7C,qBAAKlsD,UAAS,UAAKtE,KAAMutB,OAAX,YAAqBvtB,KAAM0M,QAAzC,SACE,yBACEpI,UAAWtE,KAAM,iBACjBwE,QA9OQ,WAClB,IAAMkgD,EACS,oDAAb1yC,EACI,qDACA,kDACNsB,GAAW,GACX8gB,EAAYswB,GACZtgD,EAAMiO,YAAYqyC,EAAa5+C,IAwOrB9F,MAAO,CACL0G,MAEI,uDADFsL,GAEa,oDAAbA,EACI,UACA,QATV,UAYE,cAAC,IAAD,CACEhY,GAAG,uBACHmM,eAAe,eAEjB,cAAC,EAAD,CAAOlG,MAAM,KAAKC,OAAO,KAAKoE,UAAWmsD,SAG7C,qBAAKnsD,UAAS,UAAKtE,KAAMutB,OAAX,YAAqBvtB,KAAM6T,WAAzC,SACE,yBACEvP,UAAWtE,KAAM,iBACjBwE,QAxPa,WACvB,IAAMkgD,EACS,0DAAb1yC,EACI,2DACA,wDACNsB,GAAW,GACX8gB,EAAYswB,GACZtgD,EAAMiO,YAAYqyC,EAAa5+C,IAkPrB9F,MAAO,CACL0G,MAEI,0DADFsL,GAGE,6DADFA,EAEI,UACA,QAVV,UAaE,cAAC,IAAD,CACEhY,GAAG,oBACHmM,eAAe,cAEjB,cAAC,EAAD,CAAOlG,MAAM,KAAKC,OAAO,KAAKoE,UAAWosD,SAG7C,qBAAKpsD,UAAS,UAAKtE,KAAMutB,OAAX,YAAqBvtB,KAAM8uD,YAAzC,SACE,yBACExqD,UAAWtE,KAAM,iBACjBwE,QAnQS,WACnB,IAAMkgD,EACS,wCAAb1yC,EACI,wCACA,sCACNsB,GAAW,GACX8gB,EAAYswB,GACZtgD,EAAMiO,YAAYqyC,EAAa5+C,IA6PrB9F,MAAO,CACL0G,MACe,wCAAbsL,GACa,0CAAbA,EACI,UACA,QARV,UAWE,cAAC,IAAD,CACEhY,GAAG,oBACHmM,eAAe,mBAEjB,cAAC,EAAD,CAAOlG,MAAM,KAAKC,OAAO,KAAKoE,UAAWqsD,SAG7C,qBAAKrsD,UAAS,UAAKtE,KAAMutB,OAAX,YAAqBvtB,KAAM+uD,UAAzC,SACE,yBACEzqD,UAAWtE,KAAM,iBACjBwE,QA5Qa,WACvB,IAAMkgD,EACS,oBAAb1yC,EAAiC,mBAAqB,kBACxDsB,GAAW,GACX8gB,EAAYswB,GACZtgD,EAAMiO,YAAYqyC,EAAa5+C,IAwQrB9F,MAAO,CACL0G,MACe,oBAAbsL,GACa,qBAAbA,EACI,UACA,QARV,UAWE,cAAC,IAAD,CACEhY,GAAG,kBACHmM,eAAe,aAEjB,cAAC,EAAD,CAAOlG,MAAM,KAAKC,OAAO,KAAKoE,UAAWssD,SAG7C,qBAAKtsD,UAAS,UAAKtE,KAAMutB,OAAX,YAAqBvtB,KAAMgvD,YAAzC,SACE,yBACE1qD,UAAWtE,KAAM,iBACjBwE,QAvRW,WACrB,IAAMkgD,EACS,qBAAb1yC,EACI,oBACA,mBACNsB,GAAW,GACX8gB,EAAYswB,GACZtgD,EAAMiO,YAAYqyC,EAAa5+C,IAiRrB9F,MAAO,CACL0G,MACe,qBAAbsL,GACa,sBAAbA,EACI,UACA,QARV,UAWE,cAAC,IAAD,CACEhY,GAAG,kBACHmM,eAAe,eAEjB,cAAC,EAAD,CAAOlG,MAAM,KAAKC,OAAO,KAAKoE,UAAWusD,UAG7C,qBACEvsD,UAAS,UAAKtE,KAAMutB,OAAX,YAAqBvtB,KAAMmgD,UACpCngD,MAAO,CAAE2G,WAAY,OAFvB,SAIGymB,IAEH,qBAAK9oB,UAAS,UAAKtE,KAAMutB,OAAX,YAAqBvtB,KAAMgxD,gBAEzCj9B,EAsBA,cAAC,GAAD,CACEt6B,KACE,cAAC,IAAD,CACEO,GAAG,sBACHmM,eAAe,iBAzBrB,qBAAK7B,UAAWtE,KAAM,cAAtB,SACGgwD,GACCA,EAAY/kD,KAAI,SAACmH,GAAD,aACd,cAAC,GAAD,CAEEu8C,YAAU,EACV1xC,UAAW7Y,EAAM6Y,UACjB7K,OAAQA,EACRs8C,QAAQ,EACR1mD,KAAM5D,EAAM4D,KACZwL,YAAapP,EAAMoP,YACnBP,OAAQ7O,EAAM6O,OACd+Y,kBAAmBA,EACnBC,aAAcA,EACdhd,KAAM7K,EAAM6K,KACZlF,QAAS3F,EAAM2F,QACfoa,cAAa,UAAE/f,EAAM8O,2BAAR,aAAE,EAA2BwB,iBAZrCtC,EAAOpY,kBCrbxBi3D,GAAa,SAAC,GAAD,IAAG/wD,EAAH,EAAGA,OAAQoE,EAAX,EAAWA,UAAWrE,EAAtB,EAAsBA,MAAOiF,EAA7B,EAA6BA,KAAM6H,EAAnC,EAAmCA,UAAnC,OACjB,qBACEzI,UAAWA,EACXrE,MAAOA,EACPC,OAAQA,EACRgF,KAAMA,EACN6H,UAAWA,EACX5H,QAAQ,cACRC,MAAM,6BAPR,SASE,oBAAGpL,GAAG,YAAN,UACE,sBACE6P,EAAE,sqBAEJ,sBACEA,EAAE,4QAEJ,sBACEA,EAAE,+HAKVonD,GAAW3rD,aAAe,CACxBpF,OAAQ,KACRoE,UAAW,GACXrE,MAAO,KACPiF,KAAM,UACN6H,UAAW,kBAWEkkD,UCvCTC,GAAiB,SAAC,GAAD,IAAGhxD,EAAH,EAAGA,OAAQoE,EAAX,EAAWA,UAAWrE,EAAtB,EAAsBA,MAAOiF,EAA7B,EAA6BA,KAAM6H,EAAnC,EAAmCA,UAAnC,OACrB,qBACEzI,UAAWA,EACXrE,MAAOA,EACPC,OAAQA,EACRgF,KAAMA,EACN6H,UAAWA,EACX5H,QAAQ,cACRC,MAAM,6BAPR,SASE,oBAAGpL,GAAG,YAAN,UACE,sBACE6P,EAAE,mMAEJ,sBACEA,EAAE,uNAEJ,sBACEA,EAAE,kPAEJ,sBACEA,EAAE,0JAEJ,sBACEA,EAAE,qJAEJ,sBACEA,EAAE,mLAKVqnD,GAAe5rD,aAAe,CAC5BpF,OAAQ,KACRoE,UAAW,GACXrE,MAAO,KACPiF,KAAM,UACN6H,UAAW,kBAWEmkD,U,qBCtCTC,GAAe,SAAC,GAWf,IAVLzkD,EAUI,EAVJA,OACAouB,EASI,EATJA,UACA4xB,EAQI,EARJA,gBACAhnC,EAOI,EAPJA,OACA4S,EAMI,EANJA,SACA7J,EAKI,EALJA,UACAohC,EAII,EAJJA,YACAvgD,EAGI,EAHJA,QACA8hD,EAEI,EAFJA,iBACAC,EACI,EADJA,mBAEA,EAA0C3sD,oBAAS,GAAnD,mBAAO4sD,EAAP,KAAsBC,EAAtB,KACMC,EAAe9rC,GAAUA,EAAOqM,MAAK,SAACnS,EAAGC,GAAJ,OAAUD,EAAE6xC,WAAWtR,SAAWtgC,EAAE4xC,WAAWtR,YAAU,GAYpG,OAVAt7C,qBAAU,WACR,IAAgB,OAAZ2sD,QAAY,IAAZA,OAAA,EAAAA,EAAc18C,UAAW43C,EAAgB56D,OAAS,EAAI,CACxD,IAAM4/D,EAAkBhF,EAAgBllD,MAAK,SAAAqlD,GAAE,OAAIA,EAAG9K,OAASyP,EAAa18C,SAAW+3C,EAAG7K,aAAewP,EAAaG,kBACnG,OAAfD,QAAe,IAAfA,OAAA,EAAAA,EAAiB52B,WAAY,GAAKA,IACpC1lC,QAAQC,IAAI,cAAeq8D,GAC3BH,GAAiB,OAGpB,CAACC,EAAc9E,EAAiB5xB,IAGjC,sBAAKx2B,UAAWtE,KAAMmwB,IAAKnwB,MAAO,CAAEsP,QAASA,EAAU,GAAK,QAA5D,UACE,sBAAKhL,UAAU,8BAAf,UACE,uBAAMA,UAAWtE,KAAM,eAAvB,UAAyCsxD,EAAoCx2B,EAAUvK,WAA9B7jB,EAAO6jB,WAAhE,IAAqG+gC,EAAmCx2B,EAAUtK,UAA7B9jB,EAAO8jB,aAC3Hq/B,GAAe,uBAAOnwD,IAAKmwD,EAAav0D,KAAK,YAAYs2D,UAAQ,OAGpE,qBAAKttD,UAAU,8BAAf,SACG8sD,GACC,wBAAQ9sD,UAAS,UAAKtE,KAAM,qBAAX,YAAmCA,KAAM,aAAewE,QAAS6sD,EAAlF,SACE,cAAC,IAAD,CAAkBr3D,GAAG,4BAA4BmM,eAAe,gCAKtE,sBAAK7B,UAAS,sCAAiCtE,KAAM,kBAArD,UACE,qBAAKsE,UAAWtE,KAAM,eAAtB,SACE,sBAAKsE,UAAWtE,KAAM,gBAAtB,UAAyCs4B,GAAW,QAApD,SAEF,qBAAKt4B,MAAO,CAAE8X,MAAO,SAArB,SACG2W,EAAUE,UACP,cAAC,GAAD,CAAYjoB,MAAM,UAAUxG,OAAQ,OAAQD,MAAO,SACnD,cAAC,GAAD,CAAUyG,MAAM,UAAUxG,OAAQ,OAAQD,MAAO,WAGvD,sBAAKqE,UAAWtE,KAAM,cAAtB,UACIsxD,EAAoEp9C,MAASyH,OAASzH,IAAO4mB,EAAU7hB,WAAW0C,OAAlGzH,MAASyH,OAASzH,IAAOxH,EAAOuM,WAAW0C,OAC7D,sBAAMrX,UAAWtE,KAAM,aAAvB,SACE,cAAC,IAAD,CAAkBhG,GAAG,oBAAoBmM,eAAe,cAG1DmrD,EAQE,sBAAKtxD,MAAO,CAAE8X,MAAO,SAArB,UACwB,MAArBgjB,EAAU3hB,QAAkB,cAAC,GAAD,CAAUzS,MAAM,UAAUxG,OAAQ,OAAQD,MAAO,SACxD,MAArB66B,EAAU3hB,QAAkB,cAAC,GAAD,CAAYzS,MAAM,UAAUxG,OAAQ,OAAQD,MAAO,SAC1D,MAArB66B,EAAU3hB,QAAkB,cAAC,GAAD,CAAYzS,MAAM,UAAUxG,OAAQ,OAAQD,MAAO,YATlF,sBAAKD,MAAO,CAAE8X,MAAO,SAArB,UACqB,MAAlBpL,EAAOyM,QAAkB,cAAC,GAAD,CAAUzS,MAAM,UAAUxG,OAAQ,OAAQD,MAAO,SACxD,MAAlByM,EAAOyM,QAAkB,cAAC,GAAD,CAAYzS,MAAM,UAAUxG,OAAQ,OAAQD,MAAO,SAC1D,MAAlByM,EAAOyM,QAAkB,cAAC,GAAD,CAAYzS,MAAM,UAAUxG,OAAQ,OAAQD,MAAO,mBAc3FkxD,GAAa7rD,aAAe,CAC1BgK,SAAS,EACTugD,YAAa,IAqBAsB,U,qBCxGTU,I,OAAiB,SAAC,GAAD,IAAGh+C,EAAH,EAAGA,UAAW+rC,EAAd,EAAcA,QAAd,OACrB,sBAAKt7C,UAAWtE,KAAM,kBAAtB,UACG6T,GACC,sBAAKvP,UAAU,8BAAf,UACE,sBAAMA,UAAU,mBAAhB,SACE,cAAC,IAAD,CAAkBtK,GAAG,0BAA0BmM,eAAe,gBAEhE,sBAAK7B,UAAU,gBAAf,UACE,uBAAMA,UAAU,kBAAhB,UAAkC,cAAC,IAAD,CAAkBtK,GAAG,mBAAmBmM,eAAe,SAAzF,OACA,uBAAM7B,UAAU,iBAAhB,UAAkCuP,EAAU0c,WAA5C,IAAyD1c,EAAU2c,gBAErE,sBAAKlsB,UAAU,gBAAf,UACE,uBAAMA,UAAU,kBAAhB,UAAkC,cAAC,IAAD,CAAkBtK,GAAG,oBAAoBmM,eAAe,YAA1F,OACA,sBAAM7B,UAAU,iBAAhB,SAAmCuP,EAAU1C,UAAU2gD,OAAyBj+C,EAAU1C,UAAU2gD,OAApC,sBAIrElS,GACC,sBAAKt7C,UAAU,8BAAf,UACE,sBAAMA,UAAU,mBAAhB,SACE,cAAC,IAAD,CAAkBtK,GAAG,iCAAiCmM,eAAe,+BAEvE,sBAAK7B,UAAU,gBAAf,UACE,uBAAMA,UAAU,kBAAhB,UAAkC,cAAC,IAAD,CAAkBtK,GAAG,mBAAmBmM,eAAe,SAAzF,OACA,uBAAM7B,UAAU,iBAAhB,UAAkCs7C,EAAQrvB,WAA1C,IAAuDqvB,EAAQpvB,gBAEjE,sBAAKlsB,UAAU,gBAAf,UACE,uBAAMA,UAAU,kBAAhB,UAAkC,cAAC,IAAD,CAAkBtK,GAAG,wBAAwBmM,eAAe,eAA9F,OACA,sBAAM7B,UAAU,iBAAhB,SAAkCs7C,EAAQO,cAE5C,sBAAK77C,UAAU,gBAAf,UACE,uBAAMA,UAAU,kBAAhB,UAAkC,cAAC,IAAD,CAAkBtK,GAAG,4BAA4BmM,eAAe,kBAAlG,OACA,sBAAM7B,UAAU,iBAAhB,SAAkCs7C,EAAQW,kBAE5C,sBAAKj8C,UAAU,gBAAf,UACE,uBAAMA,UAAU,kBAAhB,UAAkC,cAAC,IAAD,CAAkBtK,GAAG,oBAAoBmM,eAAe,YAA1F,OACA,sBAAM7B,UAAU,iBAAhB,SAAmCs7C,EAAQE,OAAO,GAAGtwC,MAAwBowC,EAAQE,OAAO,GAAGtwC,MAAlC,2BAOvEqiD,GAAevsD,aAAe,CAC5BuqD,YAAa,GACbjQ,QAAS,KACT/rC,UAAW,MAoBEg+C,U,qBClETA,GAAiB,SAAC,GAAD,IACrBE,EADqB,EACrBA,kBACAC,EAFqB,EAErBA,oBAFqB,OAIrB,sBAAK1tD,UAAWtE,KAAM,sBAAtB,UACG+xD,EAAkBjgE,OAAS,GAC1B,sBAAKwS,UAAU,8BAA8BtE,MAAO,CAAE8X,MAAO,OAAQ+I,aAAc,QAAnF,UACE,sBAAMvc,UAAU,mBAAhB,SACE,cAAC,IAAD,CAAkBtK,GAAG,kCAAkCmM,eAAe,gCAEvE4rD,EAAkBhgC,MAAK,SAACnS,EAAGC,GAAJ,OAAWD,EAAEugC,SAAWtgC,EAAEsgC,YAAWl1C,KAAI,SAAA20C,GAAO,OACtE,sBAAKt7C,UAAU,gBAAf,UACE,uBAAMA,UAAU,kBAAhB,UAAkC,cAAC,IAAD,CAAkBtK,GAAG,mBAAmBmM,eAAe,SAAzF,OACA,uBAAM7B,UAAS,yBAAoBtE,KAAMvG,MAAzC,UAAkDmmD,EAAQrvB,WAA1D,IAAuEqvB,EAAQpvB,aAC/E,sBAAMlsB,UAAS,0BAAqBtE,KAAMupB,OAA1C,SAAmD,cAAC,IAAD,CAAkBvvB,GAAG,wBAAwBmM,eAAe,iBAC/G,sBAAM7B,UAAU,iBAAhB,SAAkCs7C,EAAQO,oBAKjD6R,EAAoBlgE,OAAS,GAC5B,sBAAKwS,UAAU,8BAAf,UACE,sBAAMA,UAAU,mBAAhB,SACE,cAAC,IAAD,CAAkBtK,GAAG,2BAA2BmM,eAAe,iBAEhE6rD,EAAoB/mD,KAAI,SAAA4I,GAAS,OAChC,sBAAKvP,UAAU,gBAAf,UACE,sBAAMA,UAAU,kBAAhB,SAAkC,cAAC,IAAD,CAAkBtK,GAAG,mBAAmBmM,eAAe,WACzF,uBAAM7B,UAAU,iBAAhB,UAAkCuP,EAAU0c,WAA5C,IAAyD1c,EAAU2c,sBAK3C,IAA/BwhC,EAAoBlgE,QAA6C,IAA7BigE,EAAkBjgE,QACrD,qBAAKwS,UAAWtE,KAAM,iBAAtB,SACE,cAAC,IAAD,CAAkBhG,GAAG,4BAA4BmM,eAAe,iCAMxE0rD,GAAevsD,aAAe,CAC5BuqD,YAAa,IAqBAgC,U,qBC5DTI,GAAoB,SAAC,GAAiI,IAA/Hv6D,EAA8H,EAA9HA,KAAM0a,EAAwH,EAAxHA,OAAQrT,EAAgH,EAAhHA,MAAOmzD,EAAyG,EAAzGA,MAAOjjD,EAAkG,EAAlGA,KAAMkjD,EAA4F,EAA5FA,WAAYC,EAAgF,EAAhFA,UAAWC,EAAqE,EAArEA,OAAQC,EAA6D,EAA7DA,UAAW1kD,EAAkD,EAAlDA,QAA6B2kD,GAAqB,EAAzCC,mBAAyC,EAArBD,gBAC5HE,EAAYziD,uBAAY,SAAA5M,GAAK,MAAK,CACxCqvD,QAASrvD,EAAM+rD,eADTsD,QAIR,OACE,sBAAKnuD,UAAWtE,KAAM,uBAAtB,UACE,sBAAKsE,UAAU,8BAAf,UACE,sBAAMA,UAAU,mBAAhB,SACE,cAAC,IAAD,CAAkBtK,GAAG,0BAA0BmM,eAAe,8BAEhE,sBAAK7B,UAAU,gBAAf,UACE,sBAAMA,UAAU,kBAAhB,SAAkC,cAAC,IAAD,CAAkBtK,GAAG,4BAA4BmM,eAAe,uBAClG,sBAAM7B,UAAU,iBAAhB,SAAkC4P,IAAOxc,GAAMyc,OAAO,8BAExD,sBAAK7P,UAAU,gBAAf,UACE,sBAAMA,UAAU,kBAAhB,SAAkC,cAAC,IAAD,CAAkBtK,GAAG,2BAA2BmM,eAAe,0BACjG,sBAAM7B,UAAU,iBAAhB,SAAkC4P,IAAO9B,GAAQ+B,OAAO,8BAE1D,sBAAK7P,UAAU,gBAAf,UACE,sBAAMA,UAAU,kBAAhB,SAAkC,cAAC,IAAD,CAAkBtK,GAAG,4BAA4BmM,eAAe,yBAClG,sBAAM7B,UAAU,iBAAhB,SAAkC4P,IAAOnV,GAAOoV,OAAO,8BAExDi+C,EAEC,sBAAK9tD,UAAU,gBAAf,UACE,sBAAMA,UAAU,kBAAhB,SAAkC,cAAC,IAAD,CAAkBtK,GAAG,0BAA0BmM,eAAe,0BAChG,qBAAK7B,UAAU,iBAAf,SACE,wBACEA,UAAU,gBACV2W,KAAK,aACLlqB,MAAOmhE,EACPpgC,SAAUugC,EAJZ,SAMGI,GAAWA,EAAQxnD,KAAI,SAAA5Q,GAAG,OACzB,wBAAqBtJ,MAAOsJ,EAAIL,GAAhC,SACG01D,GAAYzgD,GAAM5U,EAAIL,KADZK,EAAIL,WAMvB,wBAAQsK,UAAWtE,KAAM,iBAAmBwE,QAAS,kBAAM8tD,KAA3D,SACE,mBAAGhuD,UAAU,kBAEf,wBAAQA,UAAWtE,KAAM,mBAAoBwE,QAAS,kBAAM2tD,KAA5D,SACE,mBAAG7tD,UAAU,6BAIjB,sBAAKA,UAAU,gBAAf,UACE,sBAAMA,UAAU,kBAAhB,SAAkC,cAAC,IAAD,CAAkBtK,GAAG,0BAA0BmM,eAAe,0BAChG,sBAAM7B,UAAU,iBAAhB,SAAkCorD,GAAYzgD,GAAMijD,KACnDtkD,GACC,wBAAQtJ,UAAWtE,KAAM,iBAAkBwE,QAAS,kBAAM2tD,KAA1D,SACE,mBAAG7tD,UAAU,wBAMtBiuD,EAAezgE,OAAS,GACvB,sBAAKwS,UAAU,8BAAf,UACE,sBAAMA,UAAU,mBAAhB,SACE,cAAC,IAAD,CAAkBtK,GAAG,mCAAmCmM,eAAe,gCAExEosD,EAAetnD,KAAI,SAAC6jB,GAAD,OAClB,sBAAKxqB,UAAWtE,KAAM,YAAtB,UACE,sBAAMsE,UAAWtE,KAAMupB,MAAvB,SACGuF,EAAI4jC,YACD,cAAC,IAAD,CAAkB14D,GAAG,8BAA8BmM,eAAe,aAClE,cAAC,IAAD,CAAkBnM,GAAG,mCAAmCmM,eAAe,eAG7E,sBAAM7B,UAAWtE,KAAMjP,MAAvB,SACI+9B,EAAItxB,QAEFsxB,EAAItxB,QADJ,cAAC,IAAD,CAAkBxD,GAAG,2BAA2BmM,eAAe,kCAYnF8rD,GAAkB3sD,aAAe,CAC/B8sD,WAAW,GAYEH,U,qBCvGTU,GAAiB,SAAC,GAAD,IAAG/oC,EAAH,EAAGA,OAAQwoC,EAAX,EAAWA,UAAWD,EAAtB,EAAsBA,WAAYS,EAAlC,EAAkCA,UAAWC,EAA7C,EAA6CA,aAAcjlD,EAA3D,EAA2DA,QAA3D,OACrB,qBAAKtJ,UAAWtE,KAAM,mBAAtB,SACGoyD,EAEC,sBAAKpyD,MAAO,CAAEC,MAAO,OAAQ6X,MAAO,QAApC,UACE,0BACEmD,KAAK,SACL3W,UAAWtE,KAAM,aACjB8xB,SAAU8gC,EACV5yD,MAAO,CAAEG,OAAQ,kBACjBpP,MAAQ64B,GAAS,GACjBwI,UAAU,OACVmN,KAAK,KACLC,KAAK,OAEP,wBAAQl7B,UAAWtE,KAAM,oBAAqBwE,QAAS,kBAAMquD,KAA7D,SACE,mBAAGvuD,UAAU,kBAEf,wBAAQA,UAAWtE,KAAM,sBAAuBwE,QAAS,kBAAM2tD,KAA/D,SACE,mBAAG7tD,UAAU,6BAIjB,sBAAKtE,MAAO,CAAEC,MAAO,OAAQ6X,MAAO,QAApC,UACE,qBAAKxT,UAAWtE,KAAM8yD,QAAtB,SACIlpC,GAAS,cAAC,IAAD,CAAkB5vB,GAAG,gCAAgCmM,eAAe,yBAEhFyH,GACC,wBAAQtJ,UAAWtE,KAAM,oBAAqBwE,QAAS,kBAAM2tD,KAA7D,SACE,mBAAG7tD,UAAU,wBASzBquD,GAAertD,aAAe,CAC5B8sD,WAAW,EACXxkD,SAAS,GASI+kD,U,qBChDTI,GAAkB,SAAC,GAAD,IAAGrkD,EAAH,EAAGA,UAAWskD,EAAd,EAAcA,kBAAd,OACtB,sBAAK1uD,UAAWtE,KAAM,oBAAtB,UACG0O,EAAU5c,OAAS,GAAK4c,EAAUzD,KAAI,SAACgoD,EAAUp1C,GAChD,IAAMq1C,EAA0BF,EAAkBlhE,OAAS,EACvDkhE,EAAkBltD,QAAO,SAACi3B,GAC1B,IAAMo2B,EAAOp2B,EAAMmyB,WAEnB,GADmBn6C,SAASo+C,EAAKr9D,MAAM,KAAKq9D,EAAKr9D,MAAM,KAAKhE,OAAS,GAAGgE,MAAM,KAAK,GAAI,MACpEm9D,EAASj5D,GAC1B,OAAO+iC,KAGT,GACJ,OACA,sBAAuBz4B,UAAU,8BAA8BtE,MAAO,CAAE8X,MAAO,OAAQ+I,aAAc,QAArG,UACE,qBAAKvc,UAAU,oCACf,sBAAMA,UAAU,mCAAhB,SACE,cAAC,IAAD,CACEtK,GAAG,6BACHmM,eAAe,sCACf8e,OAAQ,CACNpW,eAAgBgP,EAAQ,OAI9B,sBAAKvZ,UAAU,gBAAf,UACE,sBAAMA,UAAU,kBAAhB,SAAkC,cAAC,IAAD,CAAkBtK,GAAG,gCAAgCmM,eAAe,qBACtG,sBAAM7B,UAAU,iBAAhB,SAAkC2uD,EAASG,kBAExB,WAApBH,EAAS77D,QACR,sBAAKkN,UAAU,gBAAf,UACE,sBAAMA,UAAU,kBAAhB,SAAkC,cAAC,IAAD,CAAkBtK,GAAG,iCAAiCmM,eAAe,kBACvG,sBAAM7B,UAAU,iBAAhB,SAAkC2uD,EAASI,kBAG/C,sBAAK/uD,UAAU,gBAAf,UACE,sBAAMA,UAAU,kBAAhB,SAAkC,cAAC,IAAD,CAAkBtK,GAAG,wBAAwBmM,eAAe,eAC9F,sBAAM7B,UAAU,iBAAhB,SAAkC2uD,EAASxmD,WAE7C,sBAAKnI,UAAU,gBAAf,UACE,sBAAMA,UAAU,kBAAhB,SAAkC,cAAC,IAAD,CAAkBtK,GAAG,0BAA0BmM,eAAe,eAChG,sBAAM7B,UAAU,iBAAhB,SAAkC4P,IAAO++C,EAASnyC,SAAS3M,OAAO,8BAEnE++C,EAAwBjoD,KAAI,SAAC6jB,EAAKjR,GAAN,OAC3B,sBAAKvZ,UAAU,gBAAf,UACE,uBAAMA,UAAU,kBAAhB,UACE,cAAC,IAAD,CAAkBtK,GAAG,6BAA6BmM,eAAe,oBADnE,MAC2F0X,EAAQ,KAEnG,sBAAMvZ,UAAU,iBAAhB,SAAkC4P,IAAO4a,EAAIkO,UAAU7oB,OAAO,2BAC9D,mBAAG7P,UAAWtE,KAAM,yBAA0BA,MAAO,CAAE0G,MAAO,QAASwpB,QAAS,OAASvzB,KAAMmyB,EAAIwkC,UAAnG,SACE,mBAAGhvD,UAAU,4BAIE,WAApB2uD,EAAS77D,QACR,sBAAKkN,UAAU,gBAAf,UACE,sBAAMA,UAAU,kBAAhB,SAAkC,cAAC,IAAD,CAAkBtK,GAAG,wBAAwBmM,eAAe,iBAC9F,sBAAM7B,UAAU,iBAAhB,SAAkC4P,IAAO++C,EAASx/C,UAAUU,OAAO,8BAGvE,sBAAK7P,UAAU,gBAAf,UACE,sBAAMA,UAAU,kBAAhB,SAAkC,cAAC,IAAD,CAAkBtK,GAAG,gCAAgCmM,eAAe,uBACtG,sBAAM7B,UAAS,yBAAoBtE,KAAM,qBAAzC,SAAiEizD,EAASM,iBAF5E,IAEmG,cAAC,IAAD,CAAkBv5D,GAAG,0BAA0BmM,eAAe,eAE5I,WAApB8sD,EAAS77D,OAER,sBAAKkN,UAAU,gBAAf,UACE,sBAAMA,UAAU,kBAAhB,SAAkC,cAAC,IAAD,CAAkBtK,GAAG,yBAAyBmM,eAAe,mBAC/F,sBAAM7B,UAAU,iBAAhB,SAAkC2uD,EAASrpC,YAG7C,sBAAKtlB,UAAU,gBAAf,UACE,sBAAMA,UAAU,kBAAhB,oBACA,sBAAMA,UAAU,iBAAhB,qCA3DI2uD,EAASj5D,OAiEC,IAArB0U,EAAU5c,QACT,qBAAKwS,UAAWtE,KAAMwzD,WAAtB,SACE,cAAC,IAAD,CAAkBx5D,GAAG,4BAA4BmM,eAAe,wBAMxE4sD,GAAgBztD,aAAe,CAC7BoJ,UAAW,IAkBEqkD,U,oBCrGTh5B,GAAe,SAAC31B,GAAD,OACnB,sBAAKE,UAAWtE,KAAM,kBAAmBA,MAAO,CAAEsP,QAASlL,EAAMogD,KAAO,GAAK,QAA7E,UACE,sBAAKlgD,UAAS,UAAKtE,KAAMyzD,UAAX,YAAwBzzD,KAAM0zD,aAA5C,UACE,sBAAMpvD,UAAWtE,KAAM2zD,iBAAvB,SACE,cAAC,IAAD,CAAkB35D,GAAG,mCAAmCmM,eAAe,wBAEzE,sBAAM7B,UAAWtE,KAAM4zD,QAAS5zD,MAAO,CAAE8X,MAAO,OAAQ+7C,WAAY,WAAYC,SAAU,cAA1F,SACG1vD,EAAMsI,OAAOgwB,aAAet4B,EAAMsI,OAAOgwB,aAAe,cAAC,IAAD,CAAkB1iC,GAAG,4BAA4BmM,eAAe,uBAG7H,sBAAK7B,UAAWtE,KAAMyzD,UAAtB,UACE,uBAAMnvD,UAAU,kBAAhB,UAAkC,cAAC,IAAD,CAAkBtK,GAAG,qBAAqBmM,eAAe,SAA3F,OACA,uBAAM7B,UAAU,iBAAiB,cAAY,cAA7C,UAA4DF,EAAMsI,OAAO6jB,WAAzE,IAAsFnsB,EAAMsI,OAAO8jB,gBAErG,sBAAKlsB,UAAWtE,KAAMyzD,UAAtB,UACE,uBAAMnvD,UAAU,kBAAhB,UAAkC,cAAC,IAAD,CAAkBtK,GAAG,uBAAuBmM,eAAe,SAA7F,OACA,uBAAM7B,UAAU,iBAAiB,cAAY,gBAA7C,UAC2B,MAAxBF,EAAMsI,OAAOyM,QAAkB,cAAC,IAAD,CAAkBnf,GAAG,mBAAmBmM,eAAe,cAC9D,MAAxB/B,EAAMsI,OAAOyM,QAAkB,cAAC,IAAD,CAAkBnf,GAAG,qBAAqBmM,eAAe,aAChE,MAAxB/B,EAAMsI,OAAOyM,QAA0C,MAAxB/U,EAAMsI,OAAOyM,QAAkB,cAAC,IAAD,CAAkBnf,GAAG,4BAA4BmM,eAAe,8BAGnI,sBAAK7B,UAAWtE,KAAMyzD,UAAtB,UACE,sBAAMnvD,UAAU,kBAAhB,iBACA,sBAAMA,UAAWtE,KAAM4zD,QAAS5zD,MAAO,CAAE8X,MAAO,OAAQ+7C,WAAY,WAAYC,SAAU,cAA1F,SACG1vD,EAAMsI,OAAO+M,IAAMsiB,GAAgB33B,EAAMsI,OAAO+M,KAAO,cAAC,IAAD,CAAkBzf,GAAG,4BAA4BmM,eAAe,uBAG5H,sBAAK7B,UAAWtE,KAAMyzD,UAAtB,UACE,sBAAMnvD,UAAU,kBAAhB,gBACA,sBAAMA,UAAWtE,KAAM4zD,QAAS5zD,MAAO,CAAE8X,MAAO,OAAQ+7C,WAAY,WAAYC,SAAU,cAA1F,SACG1vD,EAAMsI,OAAOgN,GAAKtV,EAAMsI,OAAOgN,GAAK,cAAC,IAAD,CAAkB1f,GAAG,4BAA4BmM,eAAe,uBAGzG,sBAAK7B,UAAWtE,KAAMyzD,UAAtB,UACE,sBAAMnvD,UAAU,kBAAhB,SAAkC,cAAC,IAAD,CAAkBtK,GAAG,0BAA0BmM,eAAe,yBAChG,sBAAM7B,UAAWtE,KAAM4zD,QAAS5zD,MAAO,CAAE8X,MAAO,OAAQ+7C,WAAY,WAAYC,SAAU,cAA1F,SACG1vD,EAAMsI,OAAOuM,UAAY8iB,GAAwB33B,EAAMsI,OAAOuM,WAAa,cAAC,IAAD,CAAkBjf,GAAG,4BAA4BmM,eAAe,uBAGhJ,sBAAK7B,UAAWtE,KAAMyzD,UAAtB,UACE,uBAAMnvD,UAAU,kBAAhB,UAAkC,cAAC,IAAD,CAAkBtK,GAAG,iCAAiCmM,eAAe,sBAAvG,OACA,sBAAM7B,UAAWtE,KAAM4zD,QAAS5zD,MAAO,CAAE8X,MAAO,OAAQ+7C,WAAY,WAAYC,SAAU,cAA1F,SACG1vD,EAAMsI,OAAOiwB,YAAcv4B,EAAMsI,OAAOiwB,YAAc,cAAC,IAAD,CAAkB3iC,GAAG,4BAA4BmM,eAAe,uBAG3H,sBAAK7B,UAAWF,EAAMsI,OAAOkwB,aAAe58B,KAAM0zD,YAAc1zD,KAAMyzD,UAAtE,UACE,uBAAMnvD,UAAWF,EAAMsI,OAAOkwB,aAAe58B,KAAM2zD,iBAAmB,kBAAtE,UAAyF,cAAC,IAAD,CAAkB35D,GAAG,8BAA8BmM,eAAe,2BAA3J,OACA,sBAAM7B,UAAWtE,KAAM4zD,QAAS5zD,MAAO,CAAE8X,MAAO,OAAQ+7C,WAAY,WAAYC,SAAU,aAAc7zD,MAAO,OAA/G,SACGmE,EAAMsI,OAAOkwB,aAAex4B,EAAMsI,OAAOkwB,aAAe,cAAC,IAAD,CAAkB5iC,GAAG,4BAA4BmM,eAAe,uBAG7H,sBAAK7B,UAAWtE,KAAMyzD,UAAtB,UACE,sBAAMnvD,UAAU,kBAAhB,uBACA,sBAAMA,UAAWtE,KAAM4zD,QAAS5zD,MAAO,CAAE8X,MAAO,OAAQ+7C,WAAY,WAAYC,SAAU,cAA1F,SACG1vD,EAAMsI,OAAO4M,SAAWlV,EAAMsI,OAAO4M,SAAW,cAAC,IAAD,CAAkBtf,GAAG,4BAA4BmM,eAAe,uBAGrH,sBAAK7B,UAAWtE,KAAMyzD,UAAtB,UACE,uBAAMnvD,UAAU,kBAAhB,UAAkC,cAAC,IAAD,CAAkBtK,GAAG,4BAA4BmM,eAAe,qBAAlG,OACA,sBAAM7B,UAAWtE,KAAM4zD,QAAS5zD,MAAO,CAAE8X,MAAO,OAAQ+7C,WAAY,WAAYC,SAAU,cAA1F,SACG1vD,EAAMsI,OAAO6M,YAAcnV,EAAMsI,OAAO6M,YAAc,cAAC,IAAD,CAAkBvf,GAAG,4BAA4BmM,eAAe,uBAG3H,sBAAK7B,UAAWtE,KAAMyzD,UAAtB,UACE,uBAAMnvD,UAAU,kBAAhB,UAAkC,cAAC,IAAD,CAAkBtK,GAAG,4BAA4BmM,eAAe,iBAAlG,OACA,sBAAM7B,UAAWtE,KAAM4zD,QAAS5zD,MAAO,CAAE8X,MAAO,OAAQ+7C,WAAY,WAAYC,SAAU,cAA1F,SACG1vD,EAAMsI,OAAO0M,YAAchV,EAAMsI,OAAO0M,YAAc,cAAC,IAAD,CAAkBpf,GAAG,4BAA4BmM,eAAe,2BAqIhH4tD,GA/He,SAAC3vD,GAC7B,IAAQotD,EAAqDptD,EAArDotD,aAAc9E,EAAuCtoD,EAAvCsoD,gBAAiBhgD,EAAsBtI,EAAtBsI,OAAQouB,EAAc12B,EAAd02B,UAC/C,EAAsCp2B,oBAAS,GAA/C,mBAAOsvD,EAAP,KAAoBC,EAApB,KACA,EAA0CvvD,oBAAS,GAAnD,mBAAO4sD,EAAP,KAAsBC,EAAtB,KAEA1sD,qBAAU,WACR,IAAgB,OAAZ2sD,QAAY,IAAZA,OAAA,EAAAA,EAAc18C,UAAW43C,EAAgB56D,OAAS,EAAI,CACxD,IAAM4/D,EAAkBhF,EAAgBllD,MAAK,SAAAqlD,GAAE,OAAIA,EAAG9K,OAASyP,EAAa18C,SAAW+3C,EAAG7K,aAAewP,EAAaG,kBACnG,OAAfD,QAAe,IAAfA,OAAA,EAAAA,EAAiB52B,WAAY,GAAKA,IACpC1lC,QAAQC,IAAI,cAAeq8D,GAC3BuC,GAAe,GACf1C,GAAiB,OAGpB,CAACC,EAAc9E,EAAiB5xB,IAEnC,IAAMsB,EAAa1vB,EAAO0vB,WAAP,YAAyB1vB,EAAO0vB,YAAe,GAC5D83B,EAAgBF,EAAch0D,KAAMgL,OAAS,GAC7CmpD,EAAkB7C,EAAgBtxD,KAAMgL,OAAS,GACvD,OACE,sBAAK1G,UAAU,8BAAf,UACE,sBAAMA,UAAU,mBAAhB,SACE,cAAC,IAAD,CAAkBtK,GAAG,oCAAoCmM,eAAe,wBAE1E,sBAAK7B,UAAWtE,KAAM,kBAAtB,UACE,sBAAKsE,UAAWtE,KAAMyzD,UAAtB,UACE,uBAAMnvD,UAAU,kBAAhB,UAAkC,cAAC,IAAD,CAAkBtK,GAAG,8BAA8BmM,eAAe,UAApG,OACA,sBAAM7B,UAAU,iBAAiB,cAAY,iBAA7C,SAA+DoI,EAAO8gB,aAExE,sBAAKlpB,UAAWtE,KAAMyzD,UAAtB,UACE,uBAAMnvD,UAAU,kBAAhB,UAAkC,cAAC,IAAD,CAAkBtK,GAAG,8BAA8BmM,eAAe,YAApG,OACA,sBAAM7B,UAAU,iBAAhB,SAAkCoI,EAAOsvB,gBAE3C,sBAAK13B,UAAWtE,KAAMyzD,UAAtB,UACE,uBAAMnvD,UAAU,kBAAhB,UAAkC,cAAC,IAAD,CAAkBtK,GAAG,8BAA8BmM,eAAe,gBAApG,OACA,sBAAM7B,UAAU,iBAAhB,mBAAqCoI,EAAOwvB,OAA5C,aACExvB,EAAOyvB,OADT,YAEIC,EAFJ,aAEmB1vB,EAAO6vB,KAF1B,cAEoC7vB,EAAOtJ,YAE7C,sBAAKkB,UAAWtE,KAAMyzD,UAAtB,UACE,uBAAMnvD,UAAU,kBAAhB,UAAkC,cAAC,IAAD,CAAkBtK,GAAG,wBAAwBmM,eAAe,QAA9F,OACA,sBAAM7B,UAAU,iBAAhB,SACGy3B,GAAgBrvB,EAAO4vB,SAAU,kBAGtC,sBAAKh4B,UAAWtE,KAAMyzD,UAAtB,UACE,sBAAMnvD,UAAU,kBAAhB,qBACA,sBAAMA,UAAU,iBAAhB,SACGoI,EAAOmvB,QAAUnvB,EAAOmvB,QAAU,cAAC,IAAD,CAAkB7hC,GAAG,4BAA4BmM,eAAe,uBAGvG,sBAAK7B,UAAWtE,KAAMyzD,UAAtB,UACE,uBAAMnvD,UAAU,kBAAkBtE,MAAO,CAAEE,OAAQ,QAAnD,UAA6D,cAAC,IAAD,CAAkBlG,GAAG,mCAAmCmM,eAAe,6BAApI,OACA,sBAAM7B,UAAU,iBAAhB,SACGoI,EAAO8uB,SAAW9uB,EAAO+uB,cAAgBM,GAAgBrvB,EAAO+uB,cAAe,qBAGpF,sBAAKn3B,UAAWtE,KAAMyzD,UAAtB,UACE,uBAAMnvD,UAAU,kBAAhB,UAAkC,cAAC,IAAD,CAAkBtK,GAAG,mCAAmCmM,eAAe,2BAAzG,SACA,sBAAM7B,UAAU,iBAAhB,SACGoI,EAAO8vB,cACJT,GAAgBrvB,EAAO8vB,cAAe,gBACtC,SAGR,sBAAKl4B,UAAWtE,KAAMyzD,UAAtB,UACE,uBAAMnvD,UAAU,kBAAhB,UAAkC,cAAC,IAAD,CAAkBtK,GAAG,mCAAmCmM,eAAe,2BAAzG,SACA,sBAAM7B,UAAU,iBAAhB,SACGoI,EAAO+vB,YACJV,GAAgBrvB,EAAO+vB,YAAa,gBACpC,YAIV,uBAAMn4B,UAAU,mBAAmBtE,MAAO,CAAEM,UAAW,MAAOyQ,OAAQ,WAAYvM,QAAS,kBAAMyvD,GAAgBD,IAAjH,UACE,cAAC,IAAD,CAAkBh6D,GAAG,8BAA8BmM,eAAe,6BAA0B,cAAC,EAAD,CAAOlG,MAAM,KAAKC,OAAO,KAAKoE,UAAW4vD,OAEvI,cAAC,GAAD,CAAcxnD,OAAQA,EAAQ83C,KAAMwP,KAC1B,OAATl5B,QAAS,IAATA,OAAA,EAAAA,EAAW9gC,KACV,sBAAKsK,UAAWtE,KAAM,kBAAtB,UACE,uBAAMsE,UAAU,mBAAmBtE,MAAO,CAAEM,UAAW,MAAOyQ,OAAQ,WAAYvM,QAAS,kBAAM+sD,GAAkBD,IAAnH,UACE,cAAC,IAAD,CAAkBt3D,GAAG,gCAAgCmM,eAAe,6BAA0B,cAAC,EAAD,CAAOlG,MAAM,KAAKC,OAAO,KAAKoE,UAAW6vD,OAEzI,cAAC,GAAD,CAAcznD,OAAQouB,EAAW0pB,KAAM8M,W,oBCHlC8C,GAzJM,SAAC,GAAqE,IAAnE1nD,EAAkE,EAAlEA,OAAQgZ,EAA0D,EAA1DA,OAAQzW,EAAkD,EAAlDA,KAAMwR,EAA4C,EAA5CA,UAAWqa,EAAiC,EAAjCA,UAAW4xB,EAAsB,EAAtBA,gBAC5D8E,EAAe9rC,GAAUA,EAAOqM,MAAK,SAACnS,EAAGC,GAC7C,GAAID,EAAE6xC,WAAWtR,WAAatgC,EAAE4xC,WAAWtR,SAAU,CACnD,GAA0B,QAAtBvgC,EAAE6xC,WAAWrzD,MAAwC,QAAtByhB,EAAE4xC,WAAWrzD,KAC9C,OAAO,EACF,GAA0B,QAAtBwhB,EAAE6xC,WAAWrzD,MAAwC,QAAtByhB,EAAE4xC,WAAWrzD,KACrD,OAAQ,EAGZ,OAAOwhB,EAAE6xC,WAAWtR,SAAWtgC,EAAE4xC,WAAWtR,YAC3C,GAOH,OACE,qBAAK77C,UAAWtE,KAAMmwB,IAAtB,SACGqhC,GACC,sBAAKltD,UAAWtE,KAAMmwB,IAAtB,UACE,cAAC,GAAD,CAAuBzjB,OAAQA,EAAQouB,UAAWA,EAAW4xB,gBAAiBA,EAAiB8E,aAAcA,IAE7G,sBAAKltD,UAAU,8BAAf,UACE,sBAAMA,UAAWtE,KAAM,gBAAvB,SACE,cAAC,IAAD,CAAkBhG,GAAG,kCAAkCmM,eAAe,yBAExE,qBAAKnG,MAAO,CAAEmmB,UAAW,UAAY,mCAA2BqrC,EAAeA,EAAaC,WAAWrzD,KAAO,OAA9G,SACGozD,GAAgB/wC,GACf,cAAC,GAAD,CACE5I,UAAW25C,EAAeA,EAAaC,WAAWrzD,KAAO,MACzDsI,MApBE,CAChB,EAAG,UACH,EAAG,UACH,EAAG,UACH,EAAG,WAgB4B8qD,EAAaC,WAAWtR,UACzCjgD,OAAQ,OACRD,MAAO,OACP6X,MAAO,YAIX2I,GAA8C,QAAjC+wC,EAAaC,WAAWrzD,MAAmD,QAAjCozD,EAAaC,WAAWrzD,OAC/E,sBAAKkG,UAAWtE,KAAM,aAAtB,UACE,sBAAMsE,UAAWtE,KAAMupB,MAAvB,SACE,cAAC,IAAD,CAAkBvvB,GAAG,0BAA0BmM,eAAe,WAEhE,uBAAM7B,UAAWtE,KAAMjP,MAAvB,UACGiqB,GAAe/L,GAAMuiD,EAAaC,WAAWrzD,MADhD,IACwDozD,EAAaC,WAAWrzD,KADhF,UAKHozD,GACC,sBAAKltD,UAAWtE,KAAM,aAAtB,UACE,sBAAMsE,UAAWtE,KAAMupB,MAAvB,SACE,cAAC,IAAD,CAAkBvvB,GAAG,8BAA8BmM,eAAe,gBAEpE,sBAAM7B,UAAWtE,KAAMjP,MAAvB,SACyC,MAAtCygE,EAAapzD,KAAKrK,UAAU,EAAG,GAC5B,cAAC,IAAD,CAAkBiG,GAAG,8BAA8BmM,eAAe,WAClE,cAAC,IAAD,CAAkBnM,GAAG,oCAAoCmM,eAAe,2BAKjFqrD,GAAgBA,EAAazwC,gBAC5B,sBAAKzc,UAAWtE,KAAM,aAAtB,UACE,sBAAMsE,UAAWtE,KAAMupB,MAAvB,SACE,cAAC,IAAD,CAAkBvvB,GAAG,0BAA0BmM,eAAe,WAEhE,sBAAM7B,UAAWtE,KAAMjP,MAAvB,SACGygE,EAAazwC,eAAb,WACOywC,EAAa18C,QADpB,aACgCsG,GAAkBo2C,EAAazwC,iBAE9D,cAAC,IAAD,CACE/mB,GAAG,8BACHmM,eAAgB,6BAChB8e,OAAQ,CAAEpN,UAAW25C,EAAapzD,KAAK7I,MAAM,GAAI,YAM3D,sBAAK+O,UAAWtE,KAAM,aAAtB,UACE,sBAAMsE,UAAWtE,KAAMupB,MAAvB,SACE,cAAC,IAAD,CAAkBvvB,GAAG,0BAA0BmM,eAAe,WAEhE,sBAAM7B,UAAWtE,KAAMjP,MAAvB,SAA+B0qB,GAAW+1C,EAAa6C,UAAW,sB,qBCjF1EC,GAAY,SAAC,GAAsD,IAApDl0D,EAAmD,EAAnDA,SAAUiP,EAAyC,EAAzCA,KAA0BwmB,GAAe,EAAnC0+B,mBAAmC,EAAf1+B,UACjD5mB,EAAQ5H,aAAauS,cAAuBvS,aAAauS,cAApB,KAC3C,EAA0ClV,oBAAS,GAAnD,mBAAO8vD,EAAP,KAAyBC,EAAzB,KACA,EAA8B/vD,mBAAS,IAAvC,mBAAOgwD,EAAP,KAAgBC,EAAhB,KACIN,EAAY,GAChB,GAAIj0D,EAASqvC,SAAU,CACrB,IAAMmlB,EAAWx0D,EAASqvC,SAAS39C,OAAS,GAAMijB,SAAS3U,EAASqvC,SAAU,IAAwC,IAAlC16B,SAAS3U,EAASqvC,SAAU,IAChH4kB,EAAYngD,IAAO0gD,GAAUzqC,QAAQhW,OAAO,4BAE5CkgD,EADSj0D,EAASsvC,SACNx7B,IAAO9T,EAASsvC,UAAUvlB,QAAQhW,OAAO,uBAEzCD,IAAO9T,EAASyuC,WAAW1kB,QAAQhW,OAAO,uBAmBxD,OAFA/e,QAAQC,IAAIq/D,GAGV,cAAC,KAAD,CACEt0D,SAAU,CACRwnC,IAAK1nB,WAAW9f,EAAS8tC,UACzBrG,IAAK3nB,WAAW9f,EAAS+tC,YAE3B3pC,QAAS,kBAtBU,WACrB,IAAM+qC,EAAK,cAAUnvC,EAAS8tC,SAAnB,gBAAmC9tC,EAAS+tC,WACvD/4C,QAAQC,IAAI,SACPq/D,GACH1rD,IAAM4I,IAAN,kBACa1K,KADb,O/KzBK,kB+KyBL,wBACiD2uB,EADjD,yBAC0E0Z,GACxE,CAAElmC,QAAS,CAAEE,cAAc,SAAD,OAAW5B,QACrC6B,MAAK,SAACC,GACNkrD,EAAWlrD,EAAIlX,KAAKmiE,YAGxBD,GAAc,GAWGI,IACfxlD,KAAMA,EANR,SAQGmlD,GACC,cAAC,KAAD,CAAY5kB,aAAc,kBAAM6kB,GAAc,IAA9C,SACE,sBAAKz0D,MAAO,CAAEsP,QAAS,OAAQwW,cAAe,UAA9C,UACG1lB,EAASquC,SACR,iCACE,cAAC,IAAD,CAAkBz0C,GAAG,yBAAyBmM,eAAe,YAD/D,SACkF/F,EAASquC,QAD3F,OAIF,iCACE,cAAC,IAAD,CAAkBz0C,GAAG,0BAA0BmM,eAAe,kBADhE,KACqFkuD,UAE7D5jE,IAAvB2P,EAAS4vC,WACR,iCACE,cAAC,IAAD,CAAkBh2C,GAAG,0BAA0BmM,eAAe,eADhE,KAE2B,SAAvB/F,EAAS4vC,UACL,cAAC,IAAD,CAAkBh2C,GAAG,cAAcmM,eAAe,QAClD,cAAC,IAAD,CAAkBnM,GAAG,aAAamM,eAAe,eAIzD/F,EAAS+vC,YAAc/vC,EAAS00D,aAChC,iCACE,cAAC,IAAD,CAAkB96D,GAAG,4BAA4BmM,eAAe,kBADlE,KACuF/F,EAAS+vC,WAAa/vC,EAAS+vC,WAAa/vC,EAAS00D,cAG9I,iCACE,cAAC,IAAD,CAAkB96D,GAAG,2BAA2BmM,eAAe,mBADjE,KACuF/F,EAASgwC,UAAYC,GAAgBphC,GAAM7O,EAASgwC,WAAa,iBAExJ,qCAAShwC,EAASmwC,QAAoBnwC,EAASmwC,QAAnBmkB,EAA5B,QACEt0D,EAASyvC,UAAYzvC,EAAS20D,eAC9B,iCACE,cAAC,IAAD,CAAkB/6D,GAAG,6BAA6BmM,eAAe,uBADnE,KAC0F/F,EAASyvC,SAAWzvC,EAASyvC,SAAWzvC,EAAS20D,aAD3I,YAIsBtkE,IAAvB2P,EAASkwC,WACR,iCACE,cAAC,IAAD,CAAkBt2C,GAAG,0BAA0BmM,eAAe,kBADhE,KACqF/F,EAASkwC,UAAY,QAAU,iBAU5HpJ,GAAe,SAAC,GAA8B,IAA5B8tB,EAA2B,EAA3BA,WAAYn/B,EAAe,EAAfA,SAC1ByR,EAAaC,aAAe,CAClCvtC,GAAI,oBACJgtC,iBAAkB7+B,GAAO6+B,mBAFnBM,SAIR,EAAsB5iC,mBAAS,MAA/B,mBAAY2iC,GAAZ,WACMG,EAASC,mBAAQ,WACrB,GAAIutB,EAAWljE,OAAS,EACtB,MAAQ,CACN81C,IAAK1nB,WAAW80C,EAAW,GAAG9mB,UAC9BrG,IAAK3nB,WAAW80C,EAAW,GAAG7mB,cAGjC,CAAC6mB,IAEEltB,EAASC,uBAAY,SAAC98B,GAC1Bo8B,EAAOp8B,KACN,IAEG+8B,EAAYD,uBAAY,SAAC98B,GAC7Bo8B,EAAO,QACN,IAEH,OAAKC,IAAa0tB,EAAWljE,OAAS,EAC7B,cAAC,GAAD,CAAS2H,KAAM,cAAC,IAAD,CAAkBO,GAAG,sBAAsBmM,eAAe,iBAIhF,cAAC,KAAD,CACE8hC,sBAAuBjoC,KAAM,iBAC7BwnC,OAAQA,EACRW,KAAM,GACNL,OAAQA,EACRE,UAAWA,EACXntC,QAAS,CACPwtC,kBAAkB,EAClBC,gBAAgB,GARpB,SAWE,cAAC,KAAD,UACG,SAACgH,GAAD,OACC0lB,EAAW/pD,KAAI,SAAC7K,EAAUyd,GACxB,GAAc,IAAVA,GAAeA,IAAUm3C,EAAWljE,OAAS,EAAG,CAClD,IAAIud,EAAO+9B,GAOX,OANc,IAAVvvB,EACFxO,EAAO+9B,GACEvvB,IAAUm3C,EAAWljE,OAAQ,IACtCud,EAAOm+B,IAIP,gCACE,cAAC,GAAD,CAAWptC,SAAUA,EAAUiP,KAAMA,EAAMklD,oBAAkB,EAAC1+B,SAAUA,IACxE,cAAC,KAAD,CACE2R,OAAQ,CAACI,IAAKxnC,EAAS8tC,SAAUrG,IAAKznC,EAAS+tC,WAC/C5F,OAAQnoC,EAASyvC,SAAWzvC,EAASyvC,SAAWzvC,EAAS20D,aACzDl6D,QAAS,CACP2tC,YAAa,UACbC,UAAW,UACXC,WAAW,OARP7qB,GAcd,OACE,cAAC,KAAD,CACEyxB,UAAWA,EAEXjgC,KAAMo+B,GACNrtC,SAAU,CACRwnC,IAAKxnC,EAAS8tC,SACdrG,IAAKznC,EAAS+tC,YAJXtwB,YAerBqpB,GAAa5hC,aAAe,CAC1BpF,OAAQ,QACR21B,SAAU,GAoBGqR,U,qBC7GA+tB,GAxFG,SAAC,GASZ,IARLtnB,EAQI,EARJA,UACAunB,EAOI,EAPJA,gBACArhB,EAMI,EANJA,eACAzhC,EAKI,EALJA,OACA1F,EAII,EAJJA,OACAuC,EAGI,EAHJA,KACAkmD,EAEI,EAFJA,aACA1mC,EACI,EADJA,UAEM2mC,EAAaznB,EAAUA,EAAU77C,OAAS,GAC5CujE,EAAS,IAYb,OAXID,IAEAC,EAD2B,IAAzBD,EAAWE,UACJ,aACyB,IAAzBF,EAAWG,UACX,uBACwB,IAAxBH,EAAWI,SACX,kBAEA,eAIX,qBAAKlxD,UAAWtE,KAAMmwB,IAAtB,SACG0jB,EAEG,sBAAKvvC,UAAWtE,KAAMy1D,aAAtB,UACGN,GAAiD,wBAAjC1mC,EAAUxT,KAAKkF,eAC9B,yBACE7b,UAAWtE,KAAM01D,YACjBlxD,QAAS,kBAAM0wD,EAAgBxoD,EAAO1S,GAAIoY,EAAOpY,KAFnD,UAIE,sBAAMgG,MAAO,CAAEgM,aAAc,UAA7B,SAAyC,mBAAG1H,UAAU,kBAAkB,cAAY,WACpF,cAAC,IAAD,CAAkBtK,GAAG,2BAA2BmM,eAAe,mCAGnE,qBAAK7B,UAAWtE,KAAM21D,YAAtB,SACG9hB,OAIL,sBAAK7zC,MAAO,CAAEC,MAAO,OAAQ6X,MAAO,QAApC,UACE,sBAAK9X,MAAO,CAAE8X,MAAO,OAAQ7X,MAAO,OAAQ+uC,OAAQ,QAApD,UACE,uBAAMhvC,MAAO,CAAE0G,MAAO,UAAW0kD,cAAe,YAAa78C,SAAU,SAAUqS,WAAY,QAA7F,UAAuG,cAAC,IAAD,CAAkB5mB,GAAG,uBAAuBmM,eAAe,WAAlK,QACCwnC,EAAU77C,OAAS,GAClB67C,EAAUA,EAAU77C,OAAS,GAAG8jE,QAC5BvlB,GAAgBphC,GAAM0+B,EAAUA,EAAU77C,OAAS,GAAG8jE,SACtDP,KAQR,cAAC,GAAD,CAAcL,WAAYrnB,EAAWztC,OAAO,QAAQ21B,SAAUnpB,EAAO1S,W,8BCtD3E67D,GAAgB,SAAC,GAAa,IAAX5hE,EAAU,EAAVA,IACvB,EAAgCyQ,mBAAS,MAAzC,mBAAO4zB,EAAP,KAAiBf,EAAjB,KAEA1yB,qBAAU,WACR,IAAMk4B,EAAQ,IAAIwxB,MAAMt6D,GACxB8oC,EAAM74B,iBAAiB,kBAAkB,WACvCqzB,EAAYwF,EAAMzE,eAEnB,CAACrkC,IAQJ,OAAIqkC,IAAaw9B,IAEb,sBAAMxxD,UAAU,eAAhB,SACE,cAAC,IAAD,CAAkBtK,GAAG,wBAAwBmM,eAAe,mBAMhE,sBAAM7B,UAAU,eAAhB,SACGg0B,EAhBc,SAACy9B,GAClB,IAAM3pB,EAAU7vC,KAAKkjB,MAAMs2C,EAAgB,IAAIvhE,WAAW8nB,SAAS,EAAG,KAChE05C,EAAUz5D,KAAKkjB,MAAMs2C,EAAgB,IAAIvhE,WAAW8nB,SAAS,EAAG,KACtE,MAAM,GAAN,OAAU8vB,EAAV,YAAqB4pB,GAcjBC,CAAW39B,EAAS49B,QAAQ,IAC5B,cAAC,IAAD,CAAkBl8D,GAAG,6BAA6BmM,eAAe,qBAMnEgwD,GAAkB,SAAC,GAAgB,IAAdC,EAAa,EAAbA,OACjBn8B,EAAejqB,uBAAY,SAAC5M,GAAD,YAAY,CAC7C62B,WAAU,UAAE72B,EAAM62B,WAAW,UAAnB,aAAE,EAAqB1nC,SAD3B0nC,WAGR,EAAkCv1B,wBAASjU,GAA3C,mBAAOojB,EAAP,KAAkBwiD,EAAlB,KAUA,OARAxxD,qBAAU,WACR,GAAIo1B,EAAWnoC,OAAS,EAAG,CACzB,IAAMwkE,EAAer8B,EAAWzyB,MAAK,SAAC+uD,GAAD,aAAY,OAAHA,QAAG,IAAHA,GAAA,UAAAA,EAAKplD,iBAAL,eAAgBqlD,gBAAiBzhD,SAASqhD,EAAQ,OAChGC,EAAaC,MAGd,CAACF,EAAQn8B,IAEPpmB,EASH,uBAAMvP,UAAU,eAAhB,UAAgCuP,EAAU0c,WAA1C,IAAuD1c,EAAU2c,aAP/D,sBAAMlsB,UAAU,eAAhB,SACE,cAAC,IAAD,CAAkBtK,GAAG,6BAA6BmM,eAAe,oBAyH1DswD,GA/GgB,SAAC,GAAwB,IAAtBC,EAAqB,EAArBA,eAGhC,OAFAthE,QAAQC,IAAIqhE,GAGV,qBAAKpyD,UAAWtE,KAAM3E,QAAtB,SACE,sBAAKiJ,UAAU,uBAAf,UACE,sBAAKA,UAAU,gBAAf,UACE,qBAAKA,UAAU,oCAAf,SACE,4BAAG,cAAC,IAAD,CAAkBtK,GAAG,0BAA0BmM,eAAe,yBAEnE,qBAAK7B,UAAU,oCAAf,SACE,4BAAG,cAAC,IAAD,CAAkBtK,GAAG,4BAA4BmM,eAAe,kBAErE,qBAAK7B,UAAU,oCAAf,SACE,4BAAG,cAAC,IAAD,CAAkBtK,GAAG,4BAA4BmM,eAAe,gBAErE,qBAAK7B,UAAU,oCAAf,SACE,4BAAG,cAAC,IAAD,CAAkBtK,GAAG,0BAA0BmM,eAAe,aAEnE,qBAAK7B,UAAU,oCAAf,SACE,4BAAG,cAAC,IAAD,CAAkBtK,GAAG,8BAA8BmM,eAAe,sBAEvE,qBAAK7B,UAAU,oCAAf,SACE,4BAAG,cAAC,IAAD,CAAkBtK,GAAG,8BAA8BmM,eAAe,kBAGzE,qBAAK7B,UAAU,cACdoyD,EAAezrD,KAAI,SAAC6jB,GAAD,OAClB,qBAAKxqB,UAAU,oBAAf,SACE,sBAAKA,UAAU,mBAAf,UAEE,sBAAKA,UAAU,gDAAf,UACE,sBAAMA,UAAU,qBAAhB,SACE,cAAC,IAAD,CAAkBtK,GAAG,0BAA0BmM,eAAe,uBAEhE,qBAAK7B,UAAU,iBAAf,SACE,sBAAMA,UAAU,eAAhB,SAAgC4P,IAAO4a,EAAIkO,UAAU7oB,OAAO,gCAIhE,sBAAK7P,UAAU,gDAAf,UACE,sBAAMA,UAAU,qBAAhB,SACE,cAAC,IAAD,CAAkBtK,GAAG,4BAA4BmM,eAAe,aAElE,qBAAK7B,UAAU,iBAAf,SACE,cAAC,GAAD,CAAiB8xD,OAAQtnC,EAAI6nC,eAIjC,sBAAKryD,UAAU,gDAAf,UACE,sBAAMA,UAAU,qBAAhB,SACE,cAAC,IAAD,CAAkBtK,GAAG,4BAA4BmM,eAAe,cAElE,qBAAK7B,UAAU,iBAAf,SACE,sBAAMA,UAAU,eAAhB,SACGwqB,EAAI8nC,aAKX,sBAAKtyD,UAAU,gDAAf,UACE,sBAAMA,UAAU,qBAAhB,SACE,cAAC,IAAD,CAAkBtK,GAAG,0BAA0BmM,eAAe,WAEhE,qBAAK7B,UAAU,iBAAf,SACGwqB,EAAIogC,WAAWlpD,SAAS,YACvB,cAAC,IAAD,CAAkBhM,GAAG,kCAAkCmM,eAAe,aACtE,cAAC,IAAD,CAAkBnM,GAAG,gCAAgCmM,eAAe,qBAK1E,sBAAK7B,UAAU,gDAAf,UACE,sBAAMA,UAAU,qBAAhB,SACE,cAAC,IAAD,CAAkBtK,GAAG,8BAA8BmM,eAAe,oBAEpE,qBAAK7B,UAAU,iBAAf,SACE,cAAC,GAAD,CAAerQ,IAAK66B,EAAIwkC,iBAI5B,sBAAKhvD,UAAU,gDAAf,UACE,sBAAMA,UAAU,qBAAhB,SACE,cAAC,IAAD,CAAkBtK,GAAG,8BAA8BmM,eAAe,aAEpE,qBAAK7B,UAAU,iBAAf,SACE,sBAAMA,UAAU,eAAhB,SACE,mBAAGA,UAAWtE,KAAM,gBAAiBA,MAAO,CAAE0G,MAAO,QAASwpB,QAAS,OAASvzB,KAAMmyB,EAAIwkC,UAA1F,SACE,mBAAGhvD,UAAU,iCA5DewqB,EAAIogC,qB,qBC7FhD2H,GAAmB,SAAC,GAAmC,IAAjCttC,EAAgC,EAAhCA,MAAOutC,EAAyB,EAAzBA,SAAUC,EAAe,EAAfA,SAC3C,EAA4BryD,mBAASqyD,GAArC,mBAAOC,EAAP,KAAeC,EAAf,KAEMC,EAAcF,EAASh3D,KAAMgL,OAAS,GAE5C,OACE,sBAAK1G,UAAWtE,KAAMm3D,aAAtB,UACE,yBACE7yD,UAAU,aACVtE,MAAO,CAAEM,UAAW,QACpBkE,QAAS,kBAAMyyD,GAAWD,IAH5B,UAKGztC,EACD,cAAC,EAAD,CACEtpB,MAAM,KACNC,OAAO,KACPoE,UAAS,UAAKtE,KAAMo3D,gBAAX,YAA8BF,QAG1CF,GAAU,mCAAGF,QAKpBD,GAAiBvxD,aAAe,CAC9ByxD,UAAU,GAUGF,UCnCTQ,GAAiB,SAACjzD,GACtB,IAAIs0B,EAAO,EACPC,EAAO,EACPC,EAAO,EACPC,EAAO,EACL5uB,EAAaC,iBAAO,MAC1B,EAAwBxF,mBAASN,EAAM00B,MAAvC,mBAAOA,EAAP,KAAaC,EAAb,KACA,EAAwBr0B,mBAASN,EAAM40B,MAAvC,mBAAOA,EAAP,KAAaC,EAAb,KAUMC,EAAc,SAACtmC,GACnBA,EAAEumC,iBACFT,EAAOE,EAAOhmC,EAAEwmC,QAChBT,EAAOE,EAAOjmC,EAAEymC,QAChBT,EAAOhmC,EAAEwmC,QACTP,EAAOjmC,EAAEymC,QAETN,EAAQ9uB,EAAWS,QAAQ4uB,WAAaZ,GACxCO,EAAQhvB,EAAWS,QAAQ6uB,UAAYZ,IAGnCa,EAAmB,WACvBhpC,SAASipC,UAAY,KACrBjpC,SAASkpC,YAAc,MAEzB,OACE,sBAAKp1B,UAAWtE,KAAM,oBAAqBA,MAAO,CAAE8M,KAAMgsB,EAAMz4B,IAAK24B,GAAQluB,IAAKb,EAAlF,UACE,sBAAKjQ,GAAG,SAASsK,UAAWtE,KAAM,gBAAiB25B,YAzBjC,SAAC/mC,GACrBA,EAAEumC,iBACFP,EAAOhmC,EAAEwmC,QACTP,EAAOjmC,EAAEymC,QACT7oC,SAASipC,UAAYD,EACrBhpC,SAASkpC,YAAcR,GAoBrB,UACE,sBAAOl5B,MAAO,CAAEimB,WAAY,QAA5B,SAAuC7hB,EAAM0+C,cAC7C,wBAAQt+C,QAASJ,EAAMutB,WAAYrtB,UAAWtE,KAAM,6BAApD,SACE,mBAAGsL,MAAM,sBAGZlH,EAAM0yD,aAKbO,GAAe/xD,aAAe,CAC5BwzB,KAAM,IACNE,KAAM,GACNf,eAAe,EACf6qB,YAAa,IAUAuU,U,qBCEAC,GA3DW,SAAC,GAAmB,IAAjBC,EAAgB,EAAhBA,UACnBtoD,EAASe,uBAAY,SAAC5M,GAAD,MAAY,CACvC6L,KAAM7L,EAAMgnB,OAAOnb,SADbA,KAGR,EAAsCvK,mBAAS,IAA/C,mBAAO8yD,EAAP,KAAoBC,EAApB,KAcA,OACE,sBAAKnzD,UAAWutC,KAAO6lB,kBAAvB,UACE,uBACEp8D,KAAK,MACLgJ,UAAWutC,KAAO7H,MAClBj5C,MAAOymE,EACP1lC,SAAU,SAACl/B,GAAD,OAAO6kE,EAAe7kE,EAAEgY,OAAO7Z,QACzCk5C,WAAY,SAAC3sC,GACN,eAAezK,KAAKyK,EAAMke,MAC7Ble,EAAM67B,kBAGVwL,YAAa3iC,GAASiN,GAAM,8BAE9B,qBAAK3K,UAAWutC,KAAO8lB,SAAvB,SACG,CAAC,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,EAAG,IAAK,EAAG,KAAK1sD,KAAI,SAACla,GAAD,OAC5C,wBAEEuT,UAAWutC,KAAOr2B,IAClBhX,QAAS,kBA/BO,SAACzT,GACzB0mE,EAAeD,EAAczmE,GA8BN6mE,CAAkB7mE,IAHnC,SAKGA,GAJIA,QAQX,sBAAKuT,UAAWutC,KAAOvhB,QAAvB,UACE,wBAAQhsB,UAAWutC,KAAOgmB,UAAWrzD,QAlCnB,WACtBizD,EAAeD,EAAYjiE,MAAM,GAAI,KAiCjC,uBAGA,wBAAQ+O,UAAWutC,KAAOimB,QAAStzD,QAjCnB,WACpB+yD,EAAUC,IAgCN,SACE,cAAC,IAAD,CAAkBx9D,GAAG,6BAA6BmM,eAAe,uB,qBC5CrE4xD,GAAkB,SAAC,GAA+G,IAA7GC,EAA4G,EAA5GA,aAAcC,EAA8F,EAA9FA,iBAAkB//B,EAA4E,EAA5EA,UAAW5qB,EAAiE,EAAjEA,UAAWqoB,EAAsD,EAAtDA,cAAenkB,EAAuC,EAAvCA,SAAU0mD,EAA6B,EAA7BA,SAAUC,EAAmB,EAAnBA,aAClH,EAAkCzzD,mBAAS,QAA3C,mBAAO0zD,EAAP,KAAkBC,EAAlB,KACAjjE,QAAQC,IAAI,oBAAqB8iE,GAEjCtzD,qBAAU,WACa,eAAjBszD,GACFE,EAAa,cAEd,CAACF,IAEJ,MAA8BnoD,uBAAY,SAAC5M,GAAD,MAAY,CACpD6L,KAAM7L,EAAMgnB,OAAOnb,KACnBqpD,YAAal1D,EAAMoC,gBAAgB2L,UAAUqlD,iBAFvCvnD,EAAR,EAAQA,KAAMqpD,EAAd,EAAcA,YAKRC,EAAc,SAACp8B,GAAD,OAAYA,EAAO3nC,WAAW8nB,SAAS,EAAG,MAExDk8C,EAAc,uCAAG,oEAAA54C,EAAA,6DAAO64C,EAAP,+BAAgB,EAC/BC,EAAc,CAClBC,cAAe,SACfC,cAAe,SACfC,cAAe,SACfC,cAAe,UAEXtpD,EAAQusB,GAAuBi8B,EAAaxoD,OAAO,GACnDupD,EAAYz5C,GAA2B,GACvC05C,EAA0B,WAAbd,EACfQ,EAAY,eAAD,OAAgBD,IAC3BC,EAAY,eAAD,OAAgBD,IACzBQ,EAZe,UAYCD,GAZD,OAYcrjC,GAZd,OAY8BojC,GAZ9B,OAY0CvpD,GAC/D6oD,EAAa,UACbngC,EAAU+gC,GACJC,EAAc,IAAIxlE,KAClBioB,EAAOu9C,EAAYz8C,cACnBb,EAAQs9C,EAAY7+C,WAAa,EACjCwB,EAAMq9C,EAAY78C,UAClB82C,EAnBe,UAmBLx9B,EAnBK,YAmBYnmB,EAnBZ,YAmBqBmM,GAnBrB,OAmB4B48C,EAAY38C,IAnBxC,OAmBiD28C,EAAY18C,GAnB7D,YAmBqEk9C,GAnBrE,OAmB8F,aAAbb,EAA0B,YAAc,GAnBzH,QAoBfiB,EAAuD,GAAlCD,EAAYE,oBAA2B,IAC5DC,EAAY,IAAI3lE,KAAKwlE,EAAcC,GACnCn8B,EAAWq8B,EAAUC,cAErBC,EAxBe,kBAwBKryD,KAxBL,OrLrBd,kBqLqBc,uBAwBwCsK,EAxBxC,0CA0BIxI,IAAMrS,KAAK4iE,EAAQ,CACxC5C,QAAS2B,EACT1B,MAAOpnD,EACP0/C,WAAW,GAAD,OAAKvzC,EAAL,YAAaC,EAAb,YAAsBC,EAAtB,YAA6Bs3C,GACvCn2B,YACC,CACD3zB,QAAS,CACP,eAAgB,mBAChB,cAAgB,SAAhB,OAA0B1B,QAlCX,QAqCM,OArCN,OAqCLvQ,QACZhC,QAAQF,MAAM,uCAtCG,mDAyCnBE,QAAQF,MAAM,sCAAd,MAzCmB,2DAAH,qDAkDdskE,EAAkB,WACtBlsD,IACA2qD,KAIF,OACE,gCACiB,SAAdG,GACC,mCACE,sBAAK9zD,UAAWutC,KAAM,UAAtB,UACE,8BACE,cAAC,IAAD,CAAkB73C,GAAG,0BAA0BmM,eAAe,mBAEhE,8BACE,iCACGnE,GAASiN,GAAT,oBAA4B+oD,EAAa18D,OAD5C,MACwD08D,EAAa/8C,KADrE,MAEI+8C,EAAaxoD,MAAM1d,OAAS,GAAKiqC,GAAgBi8B,EAAaxoD,MAAO,oBAAsBusB,GAAgBi8B,EAAaxoD,MAAO,uBAIrI,sBAAKlL,UAAWutC,KAAO,iBAAvB,UACE,qBAAKvtC,UAAWutC,KAAO,2BAAvB,SACE,wBAAQvtC,UAAWutC,KAAO,iBAAkBrtC,QAAS,kBAAMg0D,EAAe,IAA1E,SACE,cAAC,IAAD,CAAkBx+D,GAAG,qBAAqBmM,eAAe,+BAM7D,wBAAQ7B,UAAWutC,KAAO,YAAartC,QAASg1D,EAAhD,SACE,cAAC,IAAD,CAAkBx/D,GAAG,iBAAiBmM,eAAe,qBAMhD,WAAdiyD,GACC,mCACE,sBAAK9zD,UAAWutC,KAAM,UAAtB,UACE,cAAC,IAAD,CAAkB73C,GAAG,sBAAsBmM,eAAe,kDAD5D,MAEE,8BACE,cAAC,IAAD,CAAkBnM,GAAG,0BAA0BmM,eAAe,mBAEhE,8BACE,iCACGnE,GAASiN,GAAT,oBAA4B+oD,EAAa18D,OAD5C,MACwD08D,EAAa/8C,KADrE,MAEI+8C,EAAaxoD,MAAM1d,OAAS,GAAKiqC,GAAgBi8B,EAAaxoD,MAAO,oBAAsBusB,GAAgBi8B,EAAaxoD,MAAO,uBAIrI,wBAAQlL,UAAWutC,KAAO,YAAartC,QAAS,kBAvDxD6zD,EAAa,iBACb/qD,KAsDQ,SACE,cAAC,IAAD,CAAkBtT,GAAG,qBAAqBmM,eAAe,oBAKlD,aAAdiyD,GACC,mCACE,sBAAK9zD,UAAWutC,KAAM,UAAtB,UACE,cAAC,IAAD,CAAkB73C,GAAG,yBAAyBmM,eAAe,sBAC7D,wBAAQ7B,UAAWutC,KAAO,YAAartC,QAASg1D,EAAhD,SACE,cAAC,IAAD,CAAkBx/D,GAAG,iBAAiBmM,eAAe,sBASnE4xD,GAAgBzyD,aAAe,CAC7B4yD,SAAU,UAiBGH,UCnJA0B,GAlBS,SAACr1D,GACvB,IAAQlP,EAAUkP,EAAVlP,MAER,MAAoB,mBAAX,OAALA,QAAK,IAALA,OAAA,EAAAA,EAAO+lB,OAA+C,oGAAd,OAAL/lB,QAAK,IAALA,OAAA,EAAAA,EAAOsI,SAE1C,qBAAKwC,MAAO,CAAEC,MAAO,OAArB,mIAOF,wJ,oBCFEy5D,GAAmB,SAAC,GAAqC,IAAnC9Z,EAAkC,EAAlCA,QAAS+Z,EAAyB,EAAzBA,mBAC3B1qD,EAASe,uBAAY,SAAC5M,GAAD,MAAY,CACvC6L,KAAM7L,EAAMgnB,OAAOnb,SADbA,KAGR,EAAwBvK,wBAASjU,GAAjC,mBAAO8B,EAAP,KAAaqnE,EAAb,KAEA/0D,qBAAU,WACR,GAAI+6C,EAAS,CACX,IAAM4F,EAAe5F,EAAQE,OAAOt4C,MAClC,SAACgI,GAAD,MAAgC,YAArBA,EAAMi2C,cAGnBmU,EAAQ,CACN3+C,KAAK,GAAD,OAAK2kC,EAAQrvB,WAAb,YAA2BqvB,EAAQpvB,WACvChhB,MAAOg2C,EAAah2C,WAGvB,CAACowC,IAcJ,OACE,sBAAKt7C,UAAWutC,KAAO,gBAAvB,UACE,sBAAKvtC,UAAWutC,KAAO,qBAAvB,UACE,gCACE,uBAAMvtC,UAAWutC,KAAOtoB,MAAxB,UAA+B,cAAC,IAAD,CAAkBvvB,GAAG,oBAAoBmM,eAAe,SAAvF,OADF,IAC2G,iCAAOy5C,EAAQrvB,WAAf,IAA4BqvB,EAAQpvB,gBAE/I,gCACE,uBAAMlsB,UAAWutC,KAAOtoB,MAAxB,UACE,cAAC,IAAD,CAAkBvvB,GAAG,kBAAkBmM,eAAe,aADxD,OAGC5T,GACC,wBAAQxB,MAAOwB,EAAKid,MAAOsiB,SAAU,SAACl/B,GAAD,OAvBzB4rC,EAuB6C5rC,EAtBjEwC,QAAQC,IAAImpC,EAAG5zB,OAAO7Z,YACtB6oE,GAAQ,SAAC7zB,GAAD,oBAAC,gBACJA,GADG,IAENv2B,MAAOgvB,EAAG5zB,OAAO7Z,WAJA,IAACytC,GAuBiDl6B,UAAWutC,KAAO,oBAA/E,SACG+N,EAAQE,OAAO70C,KAAI,SAAC6jB,GAAD,OAClB,yBAAQ90B,GAAI80B,EAAI90B,GAAIjJ,MAAO+9B,EAAItf,MAA/B,UAEIsf,EAAItf,MAAM1d,OAAS,GAAKiqC,GAAgBjN,EAAItf,MAAO,oBAAuBusB,GAAgBjN,EAAItf,MAAO,kBAFzG,MAGOxN,GAASiN,GAAT,uBAA+B6f,EAAI22B,WAAWtlC,8BAO/D,wBAAQ3b,QAAS,WA1BnBm1D,EAAmBpnE,EAAM,YA0BqB+R,UAAWutC,KAAO,cAA9D,SACE,cAAC,IAAD,CAAkB73C,GAAG,mBAAmBmM,eAAe,qBA8KhD0zD,GAxKa,SAAC,GAAwE,IAAtEntD,EAAqE,EAArEA,OAAQujB,EAA6D,EAA7DA,SAAUiI,EAAmD,EAAnDA,UAAW5qB,EAAwC,EAAxCA,UAAWkE,EAA6B,EAA7BA,SAAU2mD,EAAmB,EAAnBA,aAC/E,EAAgCnoD,uBAAY,SAAC5M,GAAD,MAAY,CACtD6L,KAAM7L,EAAMgnB,OAAOnb,KACnB2wB,cAAex8B,EAAMqrB,UAAU38B,OAAS,EAAIsR,EAAMqrB,UAAU,GAAGl8B,KAAO,OAFhE0c,EAAR,EAAQA,KAKF6qD,EALN,EAAcl6B,cAK6B95B,QAAO,SAAA2oB,GAAS,OAAKA,EAAUxT,KAAKjV,SAAS,WAExF,EAA2CtB,mBAAS,MAApD,mBAAOszD,EAAP,KAAqB+B,EAArB,KACA,EAAsCr1D,oBAAS,GAA/C,mBAAOs1D,EAAP,KAAoBC,EAApB,KACA,EAA0Dv1D,oBAAS,GAAnE,mBAAOw1D,EAAP,KAA8BC,EAA9B,KAEMR,EAAqB,SAACpnE,EAAM+I,GAAwB,IAAlB4lD,EAAiB,uDAAP,GAC5CkZ,EAAO,CACT9+D,OACAkU,MAAO,GACPyL,KAAMjZ,GAASiN,GAAM,kBAEvB,GAAa,WAAT3T,EACF,OAAQ4lD,GACN,IAAK,UACHkZ,EAAK5qD,MAAQjd,EAAKiqC,cAClB,MACF,IAAK,QACH49B,EAAK5qD,MAAQjd,EAAKkqC,YAClB,MACF,QACE29B,EAAK5qD,MAAQjd,EAAKkpC,mBAItB2+B,EAAK5qD,MAAQjd,EAAKid,MAClB4qD,EAAKn/C,KAAO1oB,EAAK0oB,KAEnB8+C,EAAmBK,GACnBH,GAAe,IAoBjB,OAFA7kE,QAAQC,IAAI,cAAeykE,GAEpBE,EACL,qBAAK11D,UAAWutC,KAAOhnC,UAAvB,SACE,cAAC,GAAD,CACEmtD,aAAcA,EACdC,iBAVmB,WACvBgC,GAAe,IAUXtkC,cAAejpB,EAAO8gB,QACtBhc,SAAUA,EACV0mB,UAAWA,EACX5qB,UAAWA,EACX6qD,aAAcA,MAIlB,sBAAK7zD,UAAWutC,KAAOhnC,UAAvB,UACI,qBAAKvG,UAAWutC,KAAO,eAAvB,SACE,sBAAKvtC,UAAWutC,KAAO,oBAAvB,UACE,sBAAMvtC,UAAWutC,KAAO,gBAAxB,SACE,cAAC,IAAD,CAAkB73C,GAAG,uBAAuBmM,eAAe,sCAE7D,gCACE,uBAAM7B,UAAWutC,KAAOtoB,MAAxB,UAA+B,cAAC,IAAD,CAAkBvvB,GAAG,4BAA4BmM,eAAe,UAA/F,OADF,IACmH,+BAAOuG,EAAO8gB,aAEhI9gB,EAAO+uB,eAAiBq+B,EAAqBzpD,MAAK,SAAAoe,GAAS,OAAIA,EAAUz0B,KAAO0S,EAAOgkB,iBACtF,sBAAK1wB,MAAO,CAAEsP,QAAS,OAAQ+qD,eAAgB,gBAAiBx5C,aAAc,QAA9E,UACE,gCACE,uBAAMvc,UAAWutC,KAAOtoB,MAAxB,UAA+B,cAAC,IAAD,CAAkBvvB,GAAG,6BAA6BmM,eAAe,4BAAhG,OADF,IACsI,+BAAOuG,EAAO+uB,cAAc3pC,OAAS,GAAKiqC,GAAgBrvB,EAAO+uB,cAAe,oBAAsBM,GAAgBrvB,EAAO+uB,cAAe,uBAElR,wBAAQj3B,QAAS,kBAAMm1D,EAAmBjtD,EAAQ,SAAU,YAAYpI,UAAWutC,KAAO,cAAe7xC,MAAO,CAAEM,UAAW,KAA7H,SACE,cAAC,IAAD,CAAkBtG,GAAG,mBAAmBmM,eAAe,oBAI5DuG,EAAO8vB,eACN,sBAAKx8B,MAAO,CAAEsP,QAAS,OAAQ+qD,eAAgB,gBAAiBx5C,aAAc,QAA9E,UACE,gCACE,uBAAMvc,UAAWutC,KAAOtoB,MAAxB,UAA+B,cAAC,IAAD,CAAkBvvB,GAAG,6BAA6BmM,eAAe,wBAAhG,SADF,IACoI,+BAAOuG,EAAO8vB,cAAc1qC,OAAS,GAAKiqC,GAAgBrvB,EAAO8vB,cAAe,oBAAsBT,GAAgBrvB,EAAO8vB,cAAe,uBAEhR,wBAAQh4B,QAAS,kBAAMm1D,EAAmBjtD,EAAQ,SAAU,YAAYpI,UAAWutC,KAAO,cAAe7xC,MAAO,CAAEM,UAAW,KAA7H,SACE,cAAC,IAAD,CAAkBtG,GAAG,mBAAmBmM,eAAe,oBAI5DuG,EAAO+vB,aACN,sBAAKz8B,MAAO,CAAEsP,QAAS,OAAQ+qD,eAAgB,gBAAiBx5C,aAAc,QAA9E,UACE,gCACE,uBAAMvc,UAAWutC,KAAOtoB,MAAxB,UAA+B,cAAC,IAAD,CAAkBvvB,GAAG,6BAA6BmM,eAAe,wBAAhG,SADF,IACoI,+BAAOuG,EAAO+vB,YAAY3qC,OAAS,GAAKiqC,GAAgBrvB,EAAO+vB,YAAa,oBAAsBV,GAAgBrvB,EAAO+vB,YAAa,uBAE1Q,wBAAQj4B,QAAS,kBAAMm1D,EAAmBjtD,EAAQ,SAAU,UAAUpI,UAAWutC,KAAO,cAAe7xC,MAAO,CAAEM,UAAW,KAA3H,SACE,cAAC,IAAD,CAAkBtG,GAAG,mBAAmBmM,eAAe,qBAI3DuG,EAAO8vB,gBAAkB9vB,EAAO+vB,aAAe,cAAC,IAAD,CAAkBziC,GAAG,2BAA2BmM,eAAe,2DAGtH,uBACA,sBAAM7B,UAAWutC,KAAO,iBAAxB,SACE,cAAC,IAAD,CAAkB73C,GAAG,6BAA6BmM,eAAe,gCAEnE,cAAC,IAAD,CAAem0D,kBAAmBb,GAAlC,gBACGxpC,QADH,IACGA,OADH,EACGA,EAAUnqB,QAAO,SAAC85C,GAAD,OAAcA,EAAQxvB,cAAYnlB,KAAI,SAAC20C,GAAD,OACtD,cAAC,GAAD,CAAmCA,QAASA,EAAS+Z,mBAAoBA,GAAlD/Z,EAAQ5lD,SAGnC,uBACA,sBAAMsK,UAAWutC,KAAO,iBAAxB,SACE,cAAC,IAAD,CAAkB73C,GAAG,2BAA2BmM,eAAe,0BAEjE,qBAAK7B,UAAWutC,KAAO,uBAAvB,SACE,wBACErtC,QAAS,kBAAM21D,GAA0BD,IACzC51D,UAAWutC,KAAO,cAFpB,SAIGqoB,EACC,cAAC,IAAD,CAAkBlgE,GAAG,2BAA2BmM,eAAe,WAC/D,cAAC,IAAD,CAAkBnM,GAAG,0BAA0BmM,eAAe,cAGnE+zD,GACC,cAAC,GAAD,CAAmB3C,UAhGQ,SAACgD,GAC5BA,IACFR,EAAmB,CACjBz+D,KAAM,SACNkU,MAAO+qD,EACPt/C,KAAM,WAERg/C,GAAe,WCmUN17D,0BAnBf,SAAyB6E,EAAOmC,GAC9B,MAAO,CACL6/C,YAAahiD,EAAM6sB,SACnBhhB,KAAM7L,EAAMgnB,OAAOnb,KACnBurD,oBAAqBp3D,EAAM8P,oBAAoBC,OAC/CvF,UAASxK,EAAMoC,gBAAgBK,SACU,IAApCzC,EAAMoC,gBAAgBK,OAAO,IAAgD,IAApCzC,EAAMoC,gBAAgBK,OAAO,QAK/E,SAA4BkD,GAC1B,MAAO,CACL+J,WAAY,SAAAV,GAAM,OAAIrJ,EAASsK,GAA0BjB,KACzDkgD,UAAW,SAAC9gD,EAAUnX,GAAX,OAAmB0O,EzKvS3B,SAAmByI,EAAUnX,GAClC,IAAM8B,EAAS+K,IACTY,EAAQH,IAEd,OAAO,SAACoB,EAAU4I,EAAX,OAAuB3I,EAAvB,EAAuBA,MAAvB,OAAmC,IAAIC,SAAQ,SAACC,EAASC,GAAV,OACpDH,EAAM,CACJvR,OAAQ,MACR2R,aAAc,OACdnV,IAAI,WAAD,OAAakI,GAAb,Of9IE,kBe8IF,uBAA2CqV,EAA3C,gBACHjf,KAAM8H,EACNgP,QAAS,CAAEE,cAAc,SAAD,OAAWzB,MAEpC0B,MAAK,SAACuJ,GAAD,OAAU7J,EAAQH,EAASoJ,GAAcY,EAAKxgB,WACnDmX,OAAM,SAACxU,GACN,OAAIA,EAAM2c,UACsB,MAA1B3c,EAAM2c,SAASza,OACV+R,EAAOJ,EAAS2I,MAGpBvI,EAAOjU,UyKoRuBme,CAAyB7B,EAAUnX,KAC1EwpD,aAAc,SAAChuB,EAAU7jB,GAAX,OAAwBjJ,EAASi7C,GAA6BnuB,EAAU7jB,QAI3EzT,EAhaM,SAAC6F,GACpB,IAAQghD,EAAgBhhD,EAAhBghD,YACR,EAA4B1gD,wBAASjU,GAArC,mBAAO2hB,EAAP,KAAeqoD,EAAf,KACA,EAAkC/1D,wBAASjU,GAA3C,mBAAOqqC,EAAP,KAAkB6yB,EAAlB,KACA,EAA4BjpD,wBAASjU,GAArC,mBAAOic,EAAP,KAAe0tB,EAAf,KACA,EAAgC11B,mBAAS,IAAzC,mBAAOurB,EAAP,KAAiByqC,EAAjB,KACA,EAA8Ch2D,mBAAS,IAAvD,mBAAOgoD,EAAP,KAAwBC,EAAxB,KACA,EAAgDjoD,wBAASjU,GAAzD,mBAAOkqE,EAAP,KAAyBC,EAAzB,KACA,EAA4Cl2D,wBAASjU,GAArD,mBAAOoqE,EAAP,KAAuBC,EAAvB,KACA,EAAkCp2D,wBAASjU,GAA3C,mBAAOg+B,EAAP,KAAkB+U,EAAlB,KACA,EAAsD9+B,mBAAS,IAA/D,mBAAOstD,EAAP,KAA4B+I,EAA5B,KACA,EAAkDr2D,mBAAS,IAA3D,mBAAOqtD,EAAP,KAA0BiJ,EAA1B,KACA,EAA0Ct2D,mBAAS,IAAnD,mBAAOu2D,EAAP,KAAsBC,EAAtB,KACA,GAAkCx2D,mBAAS,IAA3C,qBAAOipC,GAAP,MAAkB2E,GAAlB,MACA,GAA4C5tC,mBAAS,IAArD,qBAAO6tD,GAAP,MAAuB4I,GAAvB,MACA,GAA4Bz2D,mBAAS,IAArC,qBAAOklB,GAAP,MAAegpC,GAAf,MACA,GAA0BluD,mBAAS,IAAnC,qBAAOwtD,GAAP,MAAckJ,GAAd,MACA,GAAsC12D,mBAAS,IAA/C,qBAAOmrD,GAAP,MAAoBwL,GAApB,MACA,GAA4C32D,mBAAS,IAArD,qBAAOmvC,GAAP,MAAuBqC,GAAvB,MACA,GAA8CxxC,oBAAS,GAAvD,qBAAO42D,GAAP,MAAwBC,GAAxB,MACA,GAAoC72D,oBAAS,GAA7C,qBAAO82D,GAAP,MAAmBC,GAAnB,MACA,GAAkD/2D,wBAASjU,GAA3D,qBAAOirE,GAAP,MAA0BC,GAA1B,MACA,GAAkDj3D,oBAAS,GAA3D,qBAAOk3D,GAAP,MAA0BC,GAA1B,MACA,GAAgDn3D,oBAAS,GAAzD,qBAAO0sD,GAAP,MAAyB0K,GAAzB,MAEAj3D,qBAAU,WACRk3D,GAAY33D,EAAMhI,MAAMvI,OAAOmG,MAC9B,IAEH6K,qBAAU,WACJuN,IACFwgD,GAAUxgD,EAAOwX,QAEbxX,EAAO88C,YACT8M,GAAW5pD,EAAOpY,IAGpBiiE,GAAqB7pD,EAAOpY,OAE7B,CAACoY,IAEJvN,qBAAU,WAIR,GAAIuN,EAAQ,CACV,IAAM8pD,EAAa,IAAIxoE,KAAKgoE,IACtBS,EAAc,IAAIzoE,KAAJ,OAAS0e,QAAT,IAASA,OAAT,EAASA,EAAQqB,UAErCqoD,IADoBI,EAAaC,GAAd,KACc,IAAsB/pD,EAN5CgqD,OAAO/rD,MAAK,SAAA/S,GAAK,MAA8B,QAA1BA,EAAMm0D,WAAWrzD,YAQlD,CAACgU,EAAQspD,KAEZ72D,qBAAU,WACR,GAAI6H,GAAU0F,EAAQ,CACpB,IAAMqxB,EAAgBhV,EAAUxT,KAAKkF,cACf,QAAlBsjB,GAA6C,UAAlBA,GAA+C,oBAAlBA,GAAyD,UAAlBA,GAA+C,eAAlBA,GAC9H44B,GAAkB3vD,EAAO1S,GAAIoY,EAAOpY,IAED,wBAAjCy0B,EAAUxT,KAAKkF,eACjBm8C,GAAuBlqD,EAAOpY,OAGjC,CAAC0S,EAAQ+hB,IAEZ5pB,qBAAU,WACJ6H,GACFtI,EAAMy/C,aAAan3C,EAAO1S,GAAI,cAE/B,CAAC0S,IAEJ7H,qBAAU,WACR,GAAI6H,GAAU04C,EAAYtzD,OAAS,GACTszD,EAAY/0C,MAAK,SAAC+vB,GAAD,OAAOA,EAAEvK,WAAanpB,EAAO1S,MACjD,CACnB,IAAMuiE,EAAmBnX,EAAYt/C,QACnC,SAACs6B,GAAD,OACErrB,SAASqrB,EAAEvK,SAAU,MAAQnpB,EAAO1S,IAAqB,aAAfomC,EAAEpuB,YAC9C,GACF0oD,EAAY,YAAI6B,EAAiBhqE,UAGpC,CAAC6yD,EAAa14C,IAEjB,IAAMqvD,GAAc,SAAC/hE,GACnB5E,QAAQC,IAAI,mBACZ2T,IACG4I,IADH,kBACkB1K,KADlB,OxLxGO,kBwLwGP,uBACqDlN,EADrD,KAC4D,CACxDqP,QAAS,CAAEE,cAAc,SAAD,OAAW5B,QAEpC6B,MAAK,SAACC,GACAA,EAAIlX,KAAK6f,OAAOqB,UACnBrP,EAAM2F,QAAQ9H,KAAd,4B,UAA6CmC,MAAMhI,MAAMvI,OAAOmG,GAAhE,MAEF,IAAMzH,EAAOkX,EAAIlX,KACXma,EAASna,EAAKma,OAWpB,GAVA0tB,EAAU9lC,OAAOiU,OAAO,GAAImE,IAC5B+tD,EAAUnmE,OAAOiU,OAAO,GAAIhW,EAAK6f,SACjCoxB,EAAalvC,OAAOiU,OAAO,GAAIhW,EAAKk8B,YACpCk+B,EAAmBp6D,EAAKy9B,cACxBmrC,GAAkB5oE,EAAKiqE,gBACvBzB,EAAuBxoE,EAAKkqE,eAC5BzB,EAAqBzoE,EAAKmqE,gBAC1BtB,GAAS7oE,EAAK6f,OAAOuqD,QACrBhB,GAAqBppE,EAAKqqE,cAEtBlwD,EAAOouB,UAAUhpC,OAAS,EAAG,CAC/B,IAAMgpC,EAAYpuB,EAAOouB,UAAU,GACnC6yB,EAAar5D,OAAOiU,OAAO,GAAIuyB,IAG7BvoC,EAAKsqE,mBACPjC,EAAoBroE,EAAKsqE,mBAEvBtqE,EAAKuqE,iBACPhC,EAAkBvoE,EAAKuqE,qBAKzBd,GAAa,SAAChiE,GAClBgP,IACG4I,IADH,kBACkB1K,KADlB,OxL3IO,kBwL2IP,8BAC4DlN,EAD5D,KACmE,CAC/DqP,QAAS,CAAEE,cAAc,SAAD,OAAW5B,QAEpC6B,MAAK,SAACC,GACDA,EAAIlX,KAAKyE,SACXqkE,GAAe5xD,EAAIlX,KAAKyE,YAG3B0S,OAAM,SAACxU,GACNE,QAAQC,IAAIH,OAIZ+mE,GAAuB,SAACjiE,GAC5BgP,IACG4I,IADH,kBACkB1K,KADlB,OxL1JO,kBwL0JP,kCACgElN,GAAM,CAClEqP,QAAS,CAAEE,cAAc,SAAD,OAAW5B,QAEpC6B,MAAK,SAACC,GACL,IAAMiF,EAAYjF,EAAIlX,KAAKA,KAC3B2oE,EAAiBxsD,MAElBhF,OAAM,SAACxU,GACNE,QAAQC,IAAIH,OAIZmnE,GAAoB,SAACxmC,EAAUrkB,GACnCxI,IAAM,CACJ/U,IAAI,WAAD,OAAaiT,KAAb,OxLzKE,kBwLyKF,wBAAiD2uB,EAAjD,+BAAgFrkB,EAAhF,KACH/Z,OAAQ,MACR2R,aAAc,OACdC,QAAS,CACPE,cAAc,SAAD,OAAW5B,QAG3B6B,MAAK,SAACC,GACDA,EAAIlX,KAAKT,OAAS,IACpBwgD,GAAa7oC,EAAIlX,MACjB2jD,GAAkB,QAGrBxsC,OAAM,SAAC+hB,GACN,GAAIA,EAAI5Z,SAAStf,KAAK2C,OAAqC,cAA5Bu2B,EAAI5Z,SAAStf,KAAK2C,MAAuB,CACtE,IACMohD,EAAoB,cAAC,IAAD,CAAkBt8C,GAAG,8BAA8BmM,eADxD,0DAErB+vC,GAAkBI,QACb,GAAI7qB,EAAI5Z,SAAStf,KAAKupC,KAAM,CACjC,IACMwa,EAAoB,cAAC,IAAD,CAAkBt8C,GAAG,6BAA6BmM,eADvD,4DAErB+vC,GAAkBI,QAKlBgmB,GAAyB,SAAC9qD,GAC9BxI,IAAM,CACJ/U,IAAI,WAAD,OAAaiT,KAAb,OxLrME,kBwLqMF,uBAAgDsK,EAAhD,kBACH/Z,OAAQ,MACR2R,aAAc,OACdC,QAAS,CACPE,cAAc,SAAD,OAAW5B,QAG3B6B,MAAK,SAACC,GACL,GAAIA,EAAIlX,KAAM,CACZ,IAAMg9C,EAAQj7C,OAAOyoE,YACnBzoE,OAAO0oE,QAAQvzD,EAAIlX,MAAM0Y,KAAI,mCAAEgyD,EAAF,KAAKC,EAAL,WAAY,CAACD,EAAElyD,cAAemyD,OAE7D5qB,GAAa,CAAC/C,IACd2G,GAAkB,QAGrBxsC,OAAM,SAAC+hB,GACN,GAAIA,EAAI5Z,SAAStf,MAAQk5B,EAAI5Z,SAAStf,KAAK2C,MAAM8Q,SAAS,kBAAmB,CAC3E,IACMswC,EAAoB,cAAC,IAAD,CAAkBt8C,GAAG,8BAA8BmM,eADxD,0DAErB+vC,GAAkBI,QA4BxB,IAAKlkC,IAAW1F,IAAW+hB,EACzB,OACE,qBAAKnqB,UAAU,2BAA2BtE,MAAO,CAAEykC,UAAW,UAA9D,oCAMJ,IAKMnM,GAAWlmB,EAAM,UAAMA,EAAO+qD,cAAcrnE,MAAM,KAAK,GAAtC,YAA4Csc,EAAO+qD,cAAcrnE,MAAM,KAAK,IAAO,QACpG4gE,GAAiBtkD,EAAOgrD,gBAAgBtrE,OAAS,EACnDsgB,EAAOgrD,gBAAgBt3D,QAAO,SAACi3B,GAAD,OAAYA,EAAMmyB,WAAWlpD,SAAS,eACpE,GACEq3D,GAAgBjrD,EAAOgrD,gBAAgBtrE,OAAS,EACpDsgB,EAAOgrD,gBAAgBt3D,QAAO,SAACi3B,GAAD,OAAWA,EAAMmyB,WAAWlpD,SAAS,eACnE,GAIF,OAFA5Q,QAAQC,IAAI,2BAA4B+7D,IAGtC,sBAAK9sD,UAAU,2BAA2BtE,MAAO,CAAEykC,UAAW,UAA9D,UACGm3B,IACC,cAAC,GAAD,CAAgBjqC,WAAY,kBAAMkqC,IAAqB,IAAQ/Y,YAAa9gD,GAASoC,EAAM6K,MAAM,yBAAjG,SACE,cAAC,GAAD,CACEvC,OAAQA,EACRujB,SAAUA,EACVze,SAAUY,EAAOpY,GACjB27B,cAAejpB,EAAO8gB,QACtB0K,UAAW9zB,EAAM8zB,UACjB5qB,UAAWlJ,EAAMkJ,UACjB6qD,aAAc/zD,EAAM+zD,iBAIzB/lD,GACC,sBACE9N,UAAU,yDACVtE,MAAO,CAAE6tB,SAAU,UACnB7zB,GAAG,mBAHL,UAKE,sBAAKsK,UAAU,kCAAf,UACE,cAAC,IAAD,CAAkBtK,GAAG,2BAA2BmM,eAAe,gBADjE,IACmFiM,EAAOpY,MAE1F,qBAAKsK,UAAU,gBACf,cAAC,GAAD,CACEw2B,UAAWA,EACX4xB,gBAAiBA,EACjBhgD,OAAQA,EACR+hB,UAAWA,EACX6J,SAAUA,GACVu3B,YAAaA,GACbnqC,OAAQtT,EAAOgqD,OACfhL,iBAAkBA,GAClBC,mBAAoB,kBAAMwK,IAAqB,MAEjD,cAACyB,GAAD,CACE/zC,MAAO,cAAC,IAAD,CAAkBvvB,GAAG,8BAA8BmM,eAAe,aAD3E,SAGE,cAAC,GAAD,CACEuG,OAAQA,EACRouB,UAAWA,EACX4xB,gBAAiBA,EACjBhnC,OAAQtT,EAAOgqD,OACfntD,KAAM7K,EAAM6K,KACZwR,UAAS,OAAErc,QAAF,IAAEA,OAAF,EAAEA,EAAOo2D,oBAAoBtuC,gBAGxCyuC,GAAoBE,IACpB,cAACyC,GAAD,CACE/zC,MAAO,cAAC,IAAD,CAAkBvvB,GAAG,2BAA2BmM,eAAe,kBADxE,SAGE,cAAC,GAAD,CACE0N,UAAW8mD,EACX/a,QAASib,MAIf,cAACyC,GAAD,CACE/zC,MAAO,cAAC,IAAD,CAAkBvvB,GAAG,iCAAiCmM,eAAe,uBAD9E,SAGE,cAACo3D,GAAD,CACEvL,oBAAqBA,EACrBD,kBAAmBA,MAGvB,cAACuL,GAAD,CACE/zC,MAAO,cAAC,IAAD,CAAkBvvB,GAAG,2BAA2BmM,eAAe,sBADxE,SAGE,cAAC,GAAD,CACEzO,KAAM0a,EAAO0O,QACb1O,OAAQA,EAAO6B,UACflV,MAAOqT,EAAOqB,SACd++C,mBAAoBkE,GACpBxE,MAAOA,GACPjjD,KAAM7K,EAAM6K,KACZmjD,UAAWoJ,GACXnJ,OA5FG,SAAC7zB,GACd,IAAMztC,EAAQytC,EAAG5zB,OAAO7Z,MACxBqqE,GAASrqE,IA2FCohE,WAAY,kBAAMsJ,IAAeD,KACjClJ,UA7HM,WAChB,IAAMj4D,EAAM/F,OAAOiU,OAAO,GAAI,CAAElO,IAAK63D,KACrClpD,IAAM,CACJvR,OAAQ,MACR2R,aAAc,OACdnV,IAAI,WAAD,OAAaiT,KAAb,OxLnOE,kBwLmOF,uBAAgD9C,EAAMhI,MAAMvI,OAAOmG,GAAnE,gBACHzH,KAAM8H,EACNgP,QAAS,CAAEE,cAAc,SAAD,OAAW5B,QAEpC6B,MAAK,WACJiyD,IAAc,MAEf/xD,OAAM,SAACxU,GACNE,QAAQC,IAAIH,EAAM2c,cAiHVjE,QAASxJ,EAAMwJ,QACf2kD,eAAgBA,SAGnB,OAACnuD,QAAD,IAACA,OAAD,EAACA,EAAOo2D,oBAAoBgD,sBAA4B,OAANprD,QAAM,IAANA,OAAA,EAAAA,EAAQgrD,gBAAgBtrE,QAAS,GAClF,cAACwrE,GAAD,CACE/zC,MAAO,cAAC,IAAD,CAAkBvvB,GAAG,0BAA0BmM,eAAe,0CADvE,SAGE,cAAC,GAAD,CAAwBuwD,eAAgBtkD,EAAOgrD,oBAGlD3uC,EAAUE,WACT,cAAC2uC,GAAD,CACE/zC,MAAO,cAAC,IAAD,CAAkBvvB,GAAG,+BAA+BmM,eAAe,sBAD5E,SAGE,cAAC,GAAD,CACEiM,OAAQA,EACR1F,OAAQA,EACRihC,UAAWA,GACXunB,gBAAiB,aACjBrhB,eAAgBA,GAChB5kC,KAAM7K,EAAM6K,KACZkmD,cAAc,MAIpB,cAACmI,GAAD,CACE/zC,MAAO,cAAC,IAAD,CAAkBvvB,GAAG,6BAA6BmM,eAAe,mBAD1E,SAGE,cAAC,GAAD,CACEyjB,OAAQA,GACRwoC,UAAWkJ,GACXnJ,WAAY,kBAAMoJ,IAAoBD,KACtC1I,UAAW,SAACp0B,GAAD,OAAQo0B,GAAUp0B,EAAG5zB,OAAO7Z,QACvC8hE,aA/IS,WACnB,IAAM4K,EAAgBnpE,OAAOiU,OAAO,GAAI,CAAEvO,GAAIoK,EAAMhI,MAAMvI,OAAOmG,IAAM,CAAE4vB,YACzE2xC,IAAmB,GACnBn3D,EAAM0O,WAAW2qD,IA6IP7vD,QAASxJ,EAAMwJ,YAGnB,cAAC0vD,GAAD,CACE/zC,MAAO,cAAC,IAAD,CAAkBvvB,GAAG,gCAAgCmM,eAAe,cAD7E,SAGE,cAAC,GAAD,CACEuI,UAAWusD,EACXjI,kBAAmBqK,gBC9YZK,G,WACnB,WAAYhzD,EAASoQ,EAAOiI,GAAQ,qBAClCxlB,KAAKogE,gBAAgBjzD,EAASoQ,EAAOiI,GACrCxlB,KAAK+6B,SAAW/6B,KAAKwlB,MAAQxlB,KAAKud,M,oDAGpC,SAAgBpQ,EAASoQ,EAAOiI,GAC9BxlB,KAAKud,MAAQ,IAAIpnB,KAAKonB,GACtBvd,KAAKwlB,MAAQ,IAAIrvB,KAAKqvB,GACtBxlB,KAAKmN,QAAU,IAAIhX,KAAKgX,GAGpBnN,KAAKmN,QAAUnN,KAAKud,QACtBvd,KAAKmN,QAAU,IAAIhX,KAAK6J,KAAKud,U,mBAIjC,SAAM8iD,GACJ,IAAM1sE,EAASqM,KAAKwlB,MAAQxlB,KAAKmN,QAAsB,IAAVkzD,EAC7C,OAAIrgE,KAAKmN,QAAUnN,KAAKwlB,OAAS7xB,GAAQqM,KAAK+6B,UAAYpnC,GAAQ,IACzDA,GAED,M,0BC0FG2sE,GA1GkB,SAACz5D,GAChC,MAA8BM,oBAAS,GAAvC,mBAAOqvB,EAAP,KAAgBzgB,EAAhB,KACA,EAA0B5O,wBAASjU,GAAnC,mBAAOqtE,EAAP,KAAcC,EAAd,KACA,EAA0Cr5D,wBAASjU,GAAnD,mBAAOutE,EAAP,KAAsBC,EAAtB,KACA,EAA4Cv5D,oBAAS,GAArD,mBAAOw5D,EAAP,KAAuBC,EAAvB,KACA,EAAgDz5D,oBAAS,GAAzD,mBAAO05D,EAAP,KAAyBC,EAAzB,KACA,EAA8B35D,wBAASjU,GAAvC,mBAAOulE,EAAP,KAAgBsI,EAAhB,KAEAz5D,qBAAU,WACR,GAAIT,EAAMm6D,aAAc,CACtB,IAAMC,EAAW,IAAId,GAAat5D,EAAMs3D,kBAAmBt3D,EAAMq6D,UAAWr6D,EAAMm6D,cAClFR,EAASS,MAEV,CAACp6D,EAAMm6D,aAAcn6D,EAAMs3D,kBAAmBt3D,EAAMq6D,UAAWr6D,EAAMs6D,sBAExE75D,qBAAU,WAkBJi5D,GAjBe,WACjB,IAAIF,EAAU,EACRe,EAAW9mC,aAAY,WAC3B,IAAM+mC,EAAWd,EAAM3gE,MAAMygE,GAC7BtqD,GAAW,GACX,IAAMurD,EAAa9pD,SAAS6pD,EAAS,KACrCN,EAAWO,IAEO,IAAdD,IACF7mC,cAAc4mC,GACdR,GAAkB,IAEpBP,GAAW,IACV,KACHK,EAAiBU,GAIjBG,KAGD,CAAChB,IAEJj5D,qBAAU,WACJm5D,IAA+C,IAA9B55D,EAAMs6D,sBACzBprD,GAAW,GACXykB,cAAcimC,GACdK,GAAoB,MAGrB,CAACj6D,EAAMs6D,oBAAqBV,IAQ/B,OAAIjqC,EAEA,sBAAKzvB,UAAU,6BAAf,UACE,cAAC,IAAD,CAAkBtK,GAAG,sBAAsBmM,eAAe,eAD5D,SAMAi4D,EAEA,qBAAK95D,UAAU,6BAAf,SACE,sBAAMtE,MAAO,CAAEC,MAAO,OAAQ6X,MAAO,QAArC,SACE,cAAC,IAAD,CAAkB9d,GAAG,wBAAwBmM,eAAe,uCAMpD,IAAZ6vD,EAEA,qBAAK1xD,UAAU,6BAAf,SACE,sBAAMtE,MAAO,CAAEC,MAAO,OAAQ6X,MAAO,QAArC,SACE,cAAC,IAAD,CAAkB9d,GAAG,sBAAsBmM,eAAe,qCAOhE,sBAAK7B,UAAU,6BAAf,UACE,sBAAMtE,MAAO,CAAEC,MAAO,OAAQ6X,MAAO,QAArC,SACE,cAAC,IAAD,CAAkB9d,GAAG,2BAA2BirB,OAAQ,CAAE+wC,QAASA,GAAW7vD,eAAe,2DAE/F,qBAAK7B,UAAWtE,KAAM6K,UAAtB,SACE,wBACEvG,UAAS,UAAKtE,KAAM,kBAAX,aAAiCk+D,GAAkBl+D,KAAM,4BAClEwE,QAAS,kBAzCf65D,GAAoB,GACpBtmC,cAAcimC,QACd55D,EAAM26D,uBAwCA5yD,UAAW+xD,EAHb,SAII,cAAC,IAAD,CAAkBlkE,GAAG,gCAAgCmM,eAAe,2B,oBCfjE64D,GAxEI,SAAC,GAA2G,IAAzGtyD,EAAwG,EAAxGA,OAAQouB,EAAgG,EAAhGA,UAAW4xB,EAAqF,EAArFA,gBAAiBhnC,EAAoE,EAApEA,OAAQ+I,EAA4D,EAA5DA,UAAWwwC,EAAiD,EAAjDA,iBAAkBrxD,EAA+B,EAA/BA,QAASsxD,EAAsB,EAAtBA,gBAClG5N,GAAgB,EACdE,EAAe9rC,GAAUA,EAAOqM,MAAK,SAACnS,EAAGC,GAAJ,OAAUD,EAAE6xC,WAAWtR,SAAWtgC,EAAE4xC,WAAWtR,YAAU,GACpG,IAAgB,OAAZqR,QAAY,IAAZA,OAAA,EAAAA,EAAc18C,UAAW43C,EAAgB56D,OAAS,EAAG,CACvD,IAAM4/D,EAAkBhF,EAAgBllD,MAAK,SAAAqlD,GAAE,OAAIA,EAAG9K,OAASyP,EAAa18C,SAAW+3C,EAAG7K,aAAewP,EAAaG,kBACnG,OAAfD,QAAe,IAAfA,OAAA,EAAAA,EAAiB52B,WAAY,GAAKA,IACpCw2B,GAAgB,GAGpB,OACE,sBAAKhtD,UAAWtE,KAAM,yBAAtB,UACE,uBAAMsE,UAAWtE,KAAM,eAAgBhG,GAAG,cAA1C,UACIs3D,EAAoCx2B,EAAUvK,WAA9B7jB,EAAO6jB,WAD3B,IACgE+gC,EAAmCx2B,EAAUtK,UAA7B9jB,EAAO8jB,cAErFyuC,GAAoBrxD,GACpB,qBAAKtJ,UAAWtE,KAAM,eAAtB,SACE,wBACEA,MAAO,CAAEK,IAAK,GACdiE,UAAWtE,KAAMm/D,YACjB36D,QAAS06D,EAHX,SAKE,cAAC,IAAD,CAAkBllE,GAAG,yBAAyBmM,eAAe,0BAIjEmrD,EAQE,sBAAKtxD,MAAO,CAAE8X,MAAO,SAArB,UACwB,MAArBgjB,EAAU3hB,QAAkB,cAAC,GAAD,CAAUzS,MAAM,UAAUxG,OAAQ,OAAQD,MAAO,SACxD,MAArB66B,EAAU3hB,QAAkB,cAAC,GAAD,CAAYzS,MAAM,UAAUxG,OAAQ,OAAQD,MAAO,SAC1D,MAArB66B,EAAU3hB,QAAkB,cAAC,GAAD,CAAYzS,MAAM,UAAUxG,OAAQ,OAAQD,MAAO,YATlF,sBAAKD,MAAO,CAAE8X,MAAO,SAArB,UACqB,MAAlBpL,EAAOyM,QAAkB,cAAC,GAAD,CAAUzS,MAAM,UAAUxG,OAAQ,OAAQD,MAAO,SACxD,MAAlByM,EAAOyM,QAAkB,cAAC,GAAD,CAAYzS,MAAM,UAAUxG,OAAQ,OAAQD,MAAO,SAC1D,MAAlByM,EAAOyM,QAAkB,cAAC,GAAD,CAAYzS,MAAM,UAAUxG,OAAQ,OAAQD,MAAO,YASnF,sBAAKqE,UAAWtE,KAAM,cAAtB,UACIsxD,EAAoEp9C,MAASyH,OAASzH,IAAO4mB,EAAU7hB,WAAW0C,OAAlGzH,MAASyH,OAASzH,IAAOxH,EAAOuM,WAAW0C,OAC7D,sBAAMrX,UAAWtE,KAAM,aAAvB,SACE,cAAC,IAAD,CAAkBhG,GAAG,oBAAoBmM,eAAe,cAG3DsoB,EAAUE,UACP,cAAC,GAAD,CAAYjoB,MAAM,UAAUxG,OAAQ,OAAQD,MAAO,SACnD,cAAC,GAAD,CAAUyG,MAAM,UAAUxG,OAAQ,OAAQD,MAAO,aCnC5Cm/D,GAnBG,SAAC,GAAwC,IAAtChH,EAAqC,EAArCA,UAAWiH,EAA0B,EAA1BA,UAAW/mC,EAAe,EAAfA,SACzC,OACE,qBAAKh0B,UAAWtE,KAAM,mBAAtB,SACE,qBAAKsE,UAAWtE,KAAM,eAAtB,SACiB,IAAdo4D,EACG,qBAAK9zD,UAAWtE,KAAM,gBAAtB,SAAwCq/D,IACxC,qBAAK/6D,UAAWtE,KAAM,gBAAtB,SAAyCs4B,GAAW,eC6DjDgnC,GA/Da,SAAC,GAAyF,IAAvF/M,EAAsF,EAAtFA,eAAgBgN,EAAsE,EAAtEA,aAAcC,EAAwD,EAAxDA,gBAA+BC,GAAyB,EAAvCpH,aAAuC,EAAzBoH,qBAC1F,EAA4C/6D,oBAAS,GAArD,mBAAOg7D,EAAP,KAAuBC,EAAvB,KAEA,OACE,qBAAKr7D,UAAWtE,KAAM,wBAAtB,SACI0/D,EAMA,cAAC,GAAD,CAAgB/tC,WAAY,kBAAMguC,GAAkB,IAAQ7c,YAAY,wBAAxE,SACE,sBAAKx+C,UAAWtE,KAAM,8BAAtB,UACGuyD,EAAetnD,KAAI,SAAC6jB,GAAD,OAClB,sBAAyCxqB,UAAWtE,KAAM,uBAA1D,UACE,sBAAMsE,UAAWtE,KAAM,sBAAvB,sCACA,+BACI8uB,EAAItxB,QAEFsxB,EAAItxB,QADH,cAAC,IAAD,CAAkBxD,GAAG,2BAA2BmM,eAAe,uBAJ9D2oB,EAAI90B,GAAK80B,EAAI90B,GAAK80B,EAAItxB,YAUlC,sBAAK8G,UAAWtE,KAAM,uBAAtB,UACE,0BACE1E,KAAK,WACL2f,KAAK,QACLlqB,MAAOwuE,EACPztC,SAAU,SAACl/B,GAAD,OAAO4sE,EAAgB5sE,EAAEgY,OAAO7Z,QAC1CuT,UAAU,eACV8tB,UAAU,OACVmN,KAAK,IACLC,KAAK,OAEP,wBACEl7B,UAAWtE,KAAM,YACjBwE,QAAS,WAEPi7D,KAJJ,SAOI,cAAC,IAAD,CAAkBzlE,GAAG,2BAA2BmM,eAAe,wBApCzE,qBAAK7B,UAAWtE,KAAM,eAAtB,SACE,wBAAQsE,UAAWtE,KAAM,YAAawE,QAAS,kBAAMm7D,GAAkB,IAAvE,SACE,cAAC,IAAD,CAAkB3lE,GAAG,uBAAuBmM,eAAe,2BCFjEy5D,GAAsB,SAAC,GAA6G,IAA5GC,EAA2G,EAA3GA,mBAAoBjpC,EAAuF,EAAvFA,eAAgBkpC,EAAuE,EAAvEA,UAAWC,EAA4D,EAA5DA,gBAAiB1O,EAA2C,EAA3CA,mBAAoB16B,EAAuB,EAAvBA,YAAa1nB,EAAU,EAAVA,KACrH+wD,EAAahwD,uBAAY,SAAC5M,GAAD,cAAY,CAC3C48D,SAAQ,UAAE58D,EAAM8P,2BAAR,iBAAE,EAA2BC,cAA7B,aAAE,EAAmCuB,oBADvCsrD,SAIR,OACE,qBAAK17D,UAAWtE,KAAM,2BAAtB,SACE,sBAAKsE,UAAWtE,KAAM,eAAtB,UACE,sBAAMsE,UAAWtE,KAAM,kBAAvB,SACE,cAAC,IAAD,CAAkBhG,GAAG,yBAAyBmM,eAAe,wBAE/D,wBACEnM,GAAG,yBACHsK,UAAWtE,KAAM,aACjBwE,QAASq7D,EACT3uC,YAAa,kBAAM0F,EAAe50B,GAASiN,GAAM,oCACjD6nB,WAAY,kBAAMF,EAAe,KALnC,SAOE,mBAAGtyB,UAAS,uBAAkBtE,KAAMigE,SAAW,cAAY,WAE5DtpC,GACC,qBAAKryB,UAAWtE,KAAM,qBAAtB,SACG22B,IAGJmpC,GACC,wBAAQx7D,UAAS,UAAKtE,KAAM,YAAX,YAA0BA,KAAM,aAAewE,QAASu7D,EAAzE,SACE,cAAC,IAAD,CAAkB/lE,GAAG,uBAAuBmM,eAAe,gCAG7D65D,GACA,wBAAQ17D,UAAS,UAAKtE,KAAM,qBAAX,YAAmCA,KAAM,aAAewE,QAAS6sD,EAAlF,SACE,cAAC,IAAD,CAAkBr3D,GAAG,4BAA4BmM,eAAe,oCAQtE+5D,GAAoB,SAAC,GAAD,IAAEC,EAAF,EAAEA,UAAF,OACxB,qBAAK77D,UAAWtE,KAAM,2BAAtB,SACE,qBAAKsE,UAAWtE,KAAM,eAAtB,SACE,wBAAQsE,UAAWtE,KAAM,YAAawE,QAAS27D,EAA/C,SACE,cAAC,IAAD,CAAkBnmE,GAAG,uBAAuBmM,eAAe,2BAM7Di6D,GAA0B,SAAC,GAAD,IAAE9yD,EAAF,EAAEA,UAAWmhB,EAAb,EAAaA,UAAWoI,EAAxB,EAAwBA,UAAWD,EAAnC,EAAmCA,eAAgBG,EAAnD,EAAmDA,UAAWC,EAA9D,EAA8DA,SAAUqpC,EAAxE,EAAwEA,QAAS1pC,EAAjF,EAAiFA,YAAjF,OAC9B,qBAAKryB,UAAWtE,KAAM,2BAAtB,SAEE,sBAAKsE,UAAWtE,KAAM,wBAAtB,UACE,qBAAKsE,UAAWtE,KAAM,eAAtB,SACE,wBAAQsE,UAAWtE,KAAM,YAAawE,QAAS8I,EAA/C,SACE,cAAC,IAAD,CAAkBtT,GAAG,qBAAqBmM,eAAe,mBAG1DsoB,EAAUE,WAAcF,EAAUE,WA7DnB,IA6DgCF,EAAUz0B,KAC1D,sBAAKsK,UAAWtE,KAAM,qBAAtB,UACE,wBACEsE,UAAS,UAAKtE,KAAM,oBAAX,YAAkCA,KAAM,oBACjDwE,QAASqyB,EACT3F,YAAa,kBAAM0F,EAAe,cAAC,IAAD,CAAkB58B,GAAG,oBAAoBmM,eAAe,YAC1F2wB,WAAY,kBAAMF,EAAe,KAJnC,SAME,cAAC,GAAD,MAEF,wBACEtyB,UAAS,UAAKtE,KAAM,oBAAX,YAAkCA,KAAM,qBACjDwE,QAASuyB,EACT7F,YAAa,kBAAM0F,EAAe,cAAC,IAAD,CAAkB58B,GAAG,qBAAqBmM,eAAe,YAC3F2wB,WAAY,kBAAMF,EAAe,KAJnC,SAME,cAAC,GAAD,MAEF,wBACEtyB,UAAS,UAAKtE,KAAM,oBAAX,YAAkCA,KAAM,4BACjDwE,QAASwyB,EACT9F,YAAa,kBAAM0F,EAAe,cAAC,IAAD,CAAkB58B,GAAG,6BAA6BmM,eAAe,oBACnG2wB,WAAY,kBAAMF,EAAe,KAJnC,SAME,cAAC,GAAD,MAEF,qBAAKtyB,UAAWtE,KAAM,qBAAtB,SACG22B,OAIP,sBAAMryB,UAAWtE,KAAM,qBAAvB,SACGqgE,UAMHC,GAAkB,SAAC,GAAoE,IAAnET,EAAkE,EAAlEA,mBAAoBjpC,EAA8C,EAA9CA,eAAgB3nB,EAA8B,EAA9BA,KAAMoiD,EAAwB,EAAxBA,mBAC1D2O,EAAahwD,uBAAY,SAAC5M,GAAD,cAAY,CAC3C48D,SAAQ,UAAE58D,EAAM8P,2BAAR,iBAAE,EAA2BC,cAA7B,aAAE,EAAmCuB,oBADvCsrD,SAIR,OACE,qBAAK17D,UAAWtE,KAAM,2BAAtB,SACE,sBAAKsE,UAAWtE,KAAM,eAAtB,UACE,sBAAMsE,UAAWtE,KAAM,kBAAvB,SACE,cAAC,IAAD,CAAkBhG,GAAG,2BAA2BmM,eAAe,6BAEjE,wBACEnM,GAAG,yBACHsK,UAAWtE,KAAM,aACjBwE,QAASq7D,EACT3uC,YAAa,kBAAM0F,EAAe50B,GAASiN,GAAM,oCACjD6nB,WAAY,kBAAMF,EAAe,KALnC,SAOE,mBAAGtyB,UAAS,uBAAkBtE,KAAMigE,SAAW,cAAY,YAE3DD,GACA,wBAAQ17D,UAAS,UAAKtE,KAAM,qBAAX,YAAmCA,KAAM,aAAewE,QAAS6sD,EAAlF,SACE,cAAC,IAAD,CAAkBr3D,GAAG,4BAA4BmM,eAAe,oCAQtEo6D,GAAgB,SAAC,GAAD,IAAGF,EAAH,EAAGA,QAAH,OACpB,qBAAK/7D,UAAWtE,KAAM,2BAAtB,SACE,qBAAKsE,UAAWtE,KAAM,eAAtB,SACE,sBAAMsE,UAAWtE,KAAM,qBAAvB,SACGqgE,SAyDMG,GAlDM,SAACp8D,GAAW,IAAD,EACtB6K,EAASe,uBAAY,SAAC5M,GAAD,MAAY,CACvC6L,KAAM7L,EAAMgnB,OAAOnb,SADbA,KAqBFwxD,GAXqB,GACzB,gBAAmBnB,GACnB,iBAAoB,kBAAM,cAAC,GAAD,6BAAyBl7D,GAAzB,IAAgC6K,KAAMA,OAFvC,eAGxBsS,GAAoB++C,IAHI,eAIxB/+C,IAAoB,kBAAM,cAAC,GAAD,6BAAyBnd,GAAzB,IAAgC6K,KAAMA,QAJxC,eAKxBsS,GAAkB2+C,IALM,eAMxB3+C,GAAwB6+C,IANA,eAOxB7+C,GAAkBg/C,IAPM,GANN,SAACn8D,GACpB,OAAyB,IAArBA,EAAMg0D,WAAoD,IAAhCh0D,EAAMmuD,eAAezgE,OAAqB,mBAC/C,IAArBsS,EAAMg0D,WAAoD,IAAhCh0D,EAAMmuD,eAAezgE,OAAqB,mBACjEsS,EAAMg0D,UAaMsI,CAAat8D,IAElC,OAAO,cAACq8D,EAAD,6BAAuBr8D,GAAvB,IAA8B6K,KAAMA,MCnF9BkiD,GAhFM,SAAC/sD,GACpB,OACE,sBAAKE,UAAWtE,KAAMmwB,IAAKnwB,MAAO,CAAEsP,QAASlL,EAAMkL,QAAU,GAAK,QAAlE,UACE,cAAC,GAAD,CACE5C,OAAQtI,EAAMsI,OACdouB,UAAW12B,EAAM02B,UACjB4xB,gBAAiBtoD,EAAMsoD,gBACvBhnC,OAAQthB,EAAMshB,OACd+I,UAAWrqB,EAAMqqB,UACjBwwC,iBAAkB76D,EAAM66D,iBACxBrxD,QAASxJ,EAAMwJ,QACfsxD,gBAAiB96D,EAAM86D,kBAEzB,cAAC,GAAD,CAAW9G,UAAWh0D,EAAMg0D,UAAWiH,UAAWj7D,EAAMi7D,UAAW/mC,SAAUl0B,EAAMk0B,WAClFl0B,EAAM66D,kBACL,cAAC,GAAD,CACExwC,UAAWrqB,EAAMqqB,UACjB2pC,UAAWh0D,EAAMg0D,UACjBzhC,YAAavyB,EAAMuyB,YACnB0pC,QAASj8D,EAAMi8D,QACfxpC,UAAWzyB,EAAMyyB,UACjBE,UAAW3yB,EAAM2yB,UACjBC,SAAU5yB,EAAM4yB,SAChBmpC,UAAW/7D,EAAM+7D,UACjB7yD,UAAWlJ,EAAMkJ,UACjBuyD,mBAAoBz7D,EAAMy7D,mBAC1BjpC,eAAgB,SAAChZ,GAAD,OAASxZ,EAAMwyB,eAAehZ,IAC9CmiD,gBAAiB,kBAAM37D,EAAM27D,iBAAiB37D,EAAMw2B,sBACpDy2B,mBAAoB,kBAAMjtD,EAAMitD,oBAAmB,IACnDkB,eAAgBnuD,EAAMmuD,eACtBgN,aAAcn7D,EAAMm7D,aACpBC,gBAAiBp7D,EAAMo7D,gBACvBC,oBAAqBr7D,EAAMq7D,oBAC3BpH,aAAcj0D,EAAMi0D,eAGxB,cAAC,IAAD,CAAeiC,kBAAmBqG,GAAlC,SACE,cAACC,GAAD,CACElC,oBAAqBt6D,EAAMs6D,oBAC3BH,aAAcn6D,EAAMm6D,aACpB7C,kBAAmBt3D,EAAMs3D,kBACzB+C,UAAWr6D,EAAMq6D,UACjBM,oBAAqB36D,EAAM26D,4B,qBC2ItB8B,GA5LQ,SAAC,GAAD,IAAG5wC,EAAH,EAAGA,SAAUoxB,EAAb,EAAaA,UAAWyf,EAAxB,EAAwBA,aAAcC,EAAtC,EAAsCA,UAAtC,OACrB,qBAAKz8D,UAAU,mBAAf,SAGE,sBAAKA,UAAU,uBAAf,UACE,sBAAKA,UAAU,gBAAf,UACE,qBAAKA,UAAU,oCAAf,SACE,4BAAG,cAAC,IAAD,CAAkBtK,GAAG,mBAAmBmM,eAAe,aAE5D,qBAAK7B,UAAU,oCAAf,SACE,4BAAG,cAAC,IAAD,CAAkBtK,GAAG,4BAA4BmM,eAAe,sBAErE,qBAAK7B,UAAU,oCAAf,SACE,4BAAG,cAAC,IAAD,CAAkBtK,GAAG,uBAAuBmM,eAAe,eAEhE,qBAAK7B,UAAU,oCAAf,SACE,4BAAG,cAAC,IAAD,CAAkBtK,GAAG,wBAAwBmM,eAAe,mBAEjE,qBAAK7B,UAAU,oCAAf,SACE,4BAAG,cAAC,IAAD,CAAkBtK,GAAG,wBAAwBmM,eAAe,mBAEjE,qBAAK7B,UAAU,oCAAf,SACE,mBAAGA,UAAWtE,KAAM,mBAApB,SACE,cAAC,IAAD,CAAkBhG,GAAG,wBAAwBmM,eAAe,gBAEhE,qBAAK7B,UAAU,oCAAf,SACE,mBAAGA,UAAWtE,KAAM,oBAApB,SACE,cAAC,IAAD,CAAkBhG,GAAG,yBAAyBmM,eAAe,qBAGnE,qBAAK7B,UAAU,cACd2rB,EAASnqB,QAAO,SAAA85C,GAAO,OAAKA,EAAQxvB,cAAYnlB,KAAI,SAAA20C,GAAO,OAC1D,qBAAKt7C,UAAU,oBAAf,SAGE,sBAAKA,UAAU,mBAAf,UAEE,sBAAKA,UAAU,gDAAf,UACE,sBAAMA,UAAU,qBAAhB,SACE,cAAC,IAAD,CAAkBtK,GAAG,mBAAmBmM,eAAe,WAEzD,qBAAK7B,UAAU,iBAAf,SACE,uBAAMA,UAAU,eAAhB,UAAgCs7C,EAAQrvB,WAAxC,IAAqDqvB,EAAQpvB,kBAIjE,sBAAKlsB,UAAU,kCAAf,UACE,sBAAMA,UAAU,qBAAhB,SACE,cAAC,IAAD,CAAkBtK,GAAG,4BAA4BmM,eAAe,oBAElE,qBAAK7B,UAAU,iBAAf,SACE,4BAAIs7C,EAAQW,oBAKhB,sBAAKj8C,UAAU,kCAAf,UACE,sBAAMA,UAAU,qBAAhB,SACE,cAAC,IAAD,CAAkBtK,GAAG,uBAAsBmM,eAAe,aAE5D,qBAAK7B,UAAU,iBAAf,SACE,4BAAIs7C,EAAQ+F,SACR,cAAC,IAAD,CAAkB3rD,GAAG,cAAcmM,eAAe,QAClD,cAAC,IAAD,CAAkBnM,GAAG,aAAamM,eAAe,kBAKzD,sBAAK7B,UAAU,kCAAf,UACE,sBAAMA,UAAU,qBAAhB,SACE,cAAC,IAAD,CAAkBtK,GAAG,wBAAwBmM,eAAe,iBAE9D,qBAAK7B,UAAU,iBAAf,SACE,4BAAIs7C,EAAQE,OAAR,UACGF,EAAQE,OAAOt4C,MAAK,SAAAgI,GAAK,MAAyB,YAArBA,EAAMi2C,cAA0BG,aAC5DhG,EAAQE,OAAOt4C,MAAK,SAAAgI,GAAK,MAAyB,YAArBA,EAAMi2C,cAA0BG,aAAe,MAFhF,YAEyFhG,EAAQE,OAAOt4C,MAAK,SAAAgI,GAAK,MAAyB,YAArBA,EAAMi2C,cAA0Bj2C,OACtJ,WAMR,sBAAKlL,UAAU,kCAAf,UACE,sBAAMA,UAAU,qBAAhB,SACE,cAAC,IAAD,CAAkBtK,GAAG,wBAAwBmM,eAAe,iBAE9D,qBAAK7B,UAAU,iBAAf,SACE,4BAAIs7C,EAAQE,QAAUF,EAAQE,OAAOh6C,QAAO,SAAA0J,GAAK,MAAyB,YAArBA,EAAMi2C,cAA0B3zD,QAAU,EAA3F,UACG8tD,EAAQE,OAAOh6C,QAAO,SAAA0J,GAAK,MAAyB,YAArBA,EAAMi2C,cAA0B,GAAGG,aACnEhG,EAAQE,OAAOh6C,QAAO,SAAA0J,GAAK,MAAyB,YAArBA,EAAMi2C,cAA0B,GAAGG,aAAe,MAFnF,YAE4FhG,EAAQE,OAAOh6C,QAAO,SAAA0J,GAAK,MAAyB,YAArBA,EAAMi2C,cAA0B,GAAGj2C,OAC9J,WAKR,sBAAKlL,UAAU,kCAAf,UACE,sBAAMA,UAAU,qBAAhB,SACE,cAAC,IAAD,CAAkBtK,GAAG,wBAAwBmM,eAAe,cAE9D,qBAAK7B,UAAU,iBAAf,SACE,4BACE,uBACE,yCAAiCs7C,EAAQ5lD,IACzCsB,KAAK,WACL6Q,SAAWk1C,GAAaA,IAAczB,EAAQ5lD,GAC9C4kC,QACGyiB,GAAaA,IAAczB,EAAQ5lD,GAEtCihB,KAAI,UAAK2kC,EAAQ5lD,IACjB83B,SAAU,SAAC0M,GACT,IAAM0mB,EAAO,CACX5pD,KAAM,UACN4pD,KAAMtF,EACNhhB,QAASJ,EAAG5zB,OAAOg0B,SAErBmiC,EAAU7b,GACN1mB,EAAG5zB,OAAOg0B,UAAYpuC,SAASwwE,cAAT,yBAAyCphB,EAAQ5lD,KAAM4kC,UAC/EpuC,SAASwwE,cAAT,yBAAyCphB,EAAQ5lD,KAAM4kC,SAAU,EACjEkiC,EAAa5b,cAQzB,sBAAK5gD,UAAU,kCAAf,UACE,sBAAMA,UAAU,qBAAhB,SACE,cAAC,IAAD,CAAkBtK,GAAG,yBAAyBmM,eAAe,gBAE/D,qBAAK7B,UAAU,iBAAf,SACE,4BACE,uBACEtK,GAAE,mBAAc4lD,EAAQ5lD,IACxBsB,KAAK,WACL2f,KAAI,UAAK2kC,EAAQ5lD,IACjB83B,SAAU,SAAC0M,GACT,IAAM0mB,EAAO,CACX5pD,KAAM,UACN4pD,KAAMtF,EACNhhB,QAASJ,EAAG5zB,OAAOg0B,SAErBkiC,EAAa5b,2BCxBpB+b,GAvHU,SAAC,GAAD,IACvBhnC,EADuB,EACvBA,WACAinC,EAFuB,EAEvBA,YACAJ,EAHuB,EAGvBA,aACAC,EAJuB,EAIvBA,UAJuB,OAMtB,qBAAKz8D,UAAU,mBAAf,SACE,sBAAKA,UAAU,uBAAf,UACE,sBAAKA,UAAU,gBAAf,UACE,qBAAKA,UAAU,oCAAf,SACE,4BAAG,cAAC,IAAD,CAAkBtK,GAAG,mBAAmBmM,eAAe,aAE5D,qBAAK7B,UAAU,oCAAf,SACE,4BAAG,cAAC,IAAD,CAAkBtK,GAAG,uBAAuBmM,eAAe,iBAEhE,qBAAK7B,UAAU,oCAAf,SACE,4BAAG,cAAC,IAAD,CAAkBtK,GAAG,wBAAwBmM,eAAe,gBAEjE,qBAAK7B,UAAU,oCAAf,SACE,4BAAG,cAAC,IAAD,CAAkBtK,GAAG,yBAAyBmM,eAAe,qBAGpE,qBAAK7B,UAAU,cACd21B,EAAWn0B,QAAO,SAAA+N,GAAS,OAAIA,EAAUstD,aAAWl2D,KAAI,SAAA4I,GAAS,OAChE,qBAAKvP,UAAU,oBAAf,SACE,sBAAKA,UAAU,mBAAf,UACE,sBAAKA,UAAU,gDAAf,UACE,sBAAMA,UAAU,qBAAhB,SACA,cAAC,IAAD,CAAkBtK,GAAG,mBAAmBmM,eAAe,WAEvD,qBAAK7B,UAAU,iBAAf,SACE,uBAAMA,UAAU,eAAhB,UAAgCuP,EAAU0c,WAA1C,IAAuD1c,EAAU2c,kBAGrE,sBAAKlsB,UAAU,kCAAf,UACE,sBAAMA,UAAU,qBAAhB,SACA,cAAC,IAAD,CAAkBtK,GAAG,uBAAuBmM,eAAe,eAE3D,qBAAK7B,UAAU,iBAAf,SACE,4BAAKuP,EAAU1C,UAAU2gD,OAAej+C,EAAU1C,UAAU2gD,OAA1B,WAGtC,sBAAKxtD,UAAU,kCAAf,UACE,sBAAMA,UAAU,qBAAhB,SACA,cAAC,IAAD,CAAkBtK,GAAG,wBAAwBmM,eAAe,cAE5D,qBAAK7B,UAAU,iBAAf,SACE,4BACE,uBACEhJ,KAAK,WACL6Q,SAAW+0D,GAAeA,IAAgBrtD,EAAU7Z,GACpD4kC,QACGsiC,GAAeA,IAAgBrtD,EAAU7Z,GAE5CihB,KAAI,UAAKpH,EAAU7Z,IACnB83B,SAAU,SAAC0M,GACT,IAAM+3B,EAAM,CACVj7D,KAAM,YACNi7D,IAAK1iD,EACL+qB,QAASJ,EAAG5zB,OAAOg0B,SAErBmiC,EAAUxK,GACN/3B,EAAG5zB,OAAOg0B,UAAYpuC,SAASwwE,cAAT,yBAAyCntD,EAAU7Z,KAAM4kC,UACjFpuC,SAASwwE,cAAT,yBAAyCntD,EAAU7Z,KAAM4kC,SAAU,EACnEkiC,EAAavK,cAQzB,sBAAKjyD,UAAU,kCAAf,UACE,uBAAMA,UAAU,qBAAhB,UACA,cAAC,IAAD,CAAkBtK,GAAG,yBAAyBmM,eAAe,cAD7D,QAEA,qBAAK7B,UAAU,iBAAf,SACE,4BACE,uBACEtK,GAAE,mBAAc6Z,EAAU7Z,IAC1BsB,KAAK,WACL2f,KAAI,UAAKpH,EAAU7Z,IACnB83B,SAAU,SAAC0M,GACT,IAAM+3B,EAAM,CACVj7D,KAAM,YACNi7D,IAAK1iD,EACL+qB,QAASJ,EAAG5zB,OAAOg0B,SAErBkiC,EAAavK,2BChErB6K,GArBQ,SAAC,GAAqB,IAAnB9R,EAAkB,EAAlBA,aACxB,EAA6Bt/C,uBAAY,SAAA5M,GAAK,MAAK,CACjD+rD,WAAY/rD,EAAM+rD,WAClBlgD,KAAM7L,EAAMgnB,OAAOnb,SAFbkgD,EAAR,EAAQA,WAAYlgD,EAApB,EAAoBA,KAKpB,OACE,qBAAK3K,UAAWtE,KAAMmwB,IAAtB,SACGg/B,EAAWlkD,KAAI,SAAC5Q,GAAD,OACd,sBAAKiK,UAAWtE,KAAM,oBAAtB,UACE,uBAAO1E,KAAK,QAAQvK,MAAOsJ,EAAIL,GAAIwK,QAAS,SAACg6B,GAAD,OAAQ8wB,EAAa9wB,EAAG5zB,OAAO7Z,QAAQkqB,KAAK,YAD1F,IACwGy0C,GAAYzgD,GAAM5U,EAAIL,a,qBCyBvHqnE,GArCO,SAAC,GAAD,IAAGjvD,EAAH,EAAGA,OAAQkvD,EAAX,EAAWA,eAAgBvd,EAA3B,EAA2BA,kBAA3B,OACpB,qBAAKz/C,UAAWtE,KAAMuhE,eAAtB,SACE,0BACEtmD,KAAK,SACL3W,UAAWtE,KAAMwhE,SACjBxhE,MAAO,CAAEG,OAAQ,kBACjBpP,MAAQqhB,EAAOwX,OAAcxX,EAAOwX,OAAZ,GACxBwI,UAAU,OACVqvC,UAAW,SAAC7uE,GACK,IACXA,EAAE62C,SACJ72C,EAAEumC,kBAGNrH,SAAUwvC,EACV/hC,KAAK,KACLC,KAAK,KACLrzB,WAEIiG,EAAOyB,YAAckwC,IACpB3xC,EAAOqB,e,oBC2IHiuD,GA5JW,SAACt9D,GACzB,IAAM6F,EAAaC,iBAAO,MAC1B,EAA0BxF,mBAAS,IAAnC,mBAAO+H,EAAP,KAAck1D,EAAd,KACA,EAA0Bj9D,mBAAS,GAAnC,mBAAOynC,EAAP,KAAcy1B,EAAd,KACA,EAA8Bl9D,mBAAS,GAAvC,mBAAO0nC,EAAP,KAAgBy1B,EAAhB,KACA,EAA0Bn9D,mBAAS,KAAnC,mBAAOqe,EAAP,KAAc++C,EAAd,KACA,EAAgDp9D,oBAAS,GAAzD,mBAAOq9D,EAAP,KAAyBC,EAAzB,KACA,EAAwCt9D,oBAAS,GAAjD,mBAAOu9D,EAAP,KAAqBC,EAArB,KAGAr9D,qBAAU,WAGR,OAFArU,SAAS0T,iBAAiB,YAAaqG,GAEhC,WACL/Z,SAASga,oBAAoB,YAAaD,MAE3C,IAEH,IAAMA,EAAiB,SAACi0B,GAClBv0B,EAAWS,UAAYT,EAAWS,QAAQC,SAAS6zB,EAAG5zB,SAExDo3D,GAAoB,IAmBlB71D,IAAaM,IAAU0/B,EAAQ,GAAKC,EAAU,IACpD,OACE,sBAAK9nC,UAAWtE,KAAM,sBAAuB8K,IAAKb,EAAlD,UACG83D,GACC,cAACI,GAAD,CACE51D,aAAc,kBAAMy1D,GAAqBD,IACzCv1D,OAAQ,kBAAMpI,EAAMutB,cACpBn0B,QAAS,cAAC,IAAD,CAAkBxD,GAAG,8BAA8BmM,eAAe,qDAG/E,sBAAK7B,UAAWtE,KAAM,mBAAtB,UACE,cAAC,IAAD,CAAkBhG,GAAG,kBAAkBmM,eAAe,gCACrD/B,EAAMoN,YAET,sBAAKlN,UAAWtE,KAAM,2BAAtB,UACE,wBAAOsE,UAAWtE,KAAM,uBAAwB4xB,QAAQ,WAAxD,UACE,cAAC,IAAD,CAAkB53B,GAAG,yBAAyBmM,eAAe,aAD/D,OAGA,qBAAK7B,UAAWtE,KAAM,uBAAtB,SACE,0BACEhG,GAAG,WACHsB,KAAK,WACL2f,KAAK,WACL3W,UAAWtE,KAAM,qBACjBjP,MAAO0b,EACP2lB,UAAU,MACVN,SAzCU,SAACx0B,GACnB,IAAM8kE,EAAcrtD,SAASvkB,SAASwwE,cAAc,qBAAqBqB,aAAa,aAAc,IACpGV,EAASrkE,EAAMsN,OAAO7Z,OACtB+wE,EAASM,EAAc9kE,EAAMsN,OAAO7Z,MAAMe,SAuClCytC,KAAK,IACLC,KAAK,SAGT,uBAAOl7B,UAAWtE,KAAM,uBAAwB4xB,QAAQ,QAAxD,SACG7O,OAGL,sBAAKze,UAAWtE,KAAM,4BAAtB,UACE,wBAAOsE,UAAWtE,KAAM,uBAAwB4xB,QAAQ,QAAxD,UACE,cAAC,IAAD,CAAkB53B,GAAG,iBAAiBmM,eAAe,UADvD,OAGA,sBAAK7B,UAAWtE,KAAM,wBAAtB,UACE,sBAAKsE,UAAWtE,KAAM,6BAAtB,UACE,sBAAMsE,UAAWtE,KAAM,wBAAvB,gBACA,wBACEhG,GAAG,QACHihB,KAAK,QACL3W,UAAWtE,KAAM,mBACjB8xB,SAAU,SAACl/B,GAAD,OAAOgvE,EAAShvE,EAAEgY,OAAO7Z,QAJrC,SAMG,YAAIqD,MAAM,IAAI0F,QAAQmR,KAAI,SAAA6Q,GAAI,OAC7B,iCACGA,YAKT,sBAAKxX,UAAWtE,KAAM,6BAAtB,UACE,uBAAOsE,UAAWtE,KAAM,wBAAyB4xB,QAAQ,UAAzD,gBACA,wBACE53B,GAAG,UACHihB,KAAK,UACL3W,UAAWtE,KAAM,mBACjB8xB,SAAU,SAACl/B,GAAD,OAAOivE,EAAWjvE,EAAEgY,OAAO7Z,QAJvC,SAMG,YAAIqD,MAAM,IAAI0F,QAAQmR,KAAI,SAAAgV,GAAG,OAC5B,iCACGA,kBAOb,sBAAK3b,UAAWtE,KAAM,6BAAtB,UACE,sBAAMsE,UAAWtE,KAAM,yBAAvB,SACE,cAAC,IAAD,CAAkBhG,GAAG,qBAAqBmM,eAAe,oCAE3D,qBAAKnG,MAAO,CAAE8X,MAAO,QAArB,SACE,cAAC,GAAD,CACEre,KAAK,GACLm5B,WAAYqvC,EACZpvC,aAAc,kBAAMqvC,GAAiBD,IACrCnvC,eAAe,SAIpB1uB,EAAMk+D,eACL,qBAAKh+D,UAAWtE,KAAM,6BAAtB,SACE,uBAAMsE,UAAWtE,KAAM,wBAAvB,cAAkDoE,EAAMk+D,cAAxD,SAGJ,sBAAKh+D,UAAWtE,KAAM,6BAAtB,UACGmM,GAAY,sBAAM7H,UAAWtE,KAAM,uBAAvB,SACX,cAAC,IAAD,CAAkBhG,GAAG,mBAAmBmM,eAAe,wDAEzD,wBACEgG,SAAUA,EACV7H,UAAS,UAAKtE,KAAM,gBAAX,YAA8BmM,EAAWnM,KAAM,yBAA2B,IACnFwE,QA1GwB,WAC9B,IAAMyuD,EAAW,CACfM,eAAuC,GAAtBx+C,SAASo3B,EAAO,IAAYp3B,SAASq3B,EAAS,IAC/Dm2B,cAAeN,EACfx1D,SAEFrI,EAAMo+D,eAAevP,IAqGf33D,KAAK,SAJP,SAME,sBAAMgJ,UAAWtE,KAAM,wBAAvB,SACE,cAAC,IAAD,CAAkBhG,GAAG,eAAemM,eAAe,qBC3H1Cs8D,G,WACnB,WAAY/3D,EAASoQ,EAAOiI,GAAQ,qBAClCxlB,KAAKogE,gBAAgBjzD,EAASoQ,EAAOiI,GACrCxlB,KAAK+6B,SAAW/6B,KAAKwlB,MAAQxlB,KAAKud,MAClCvd,KAAKmlE,UAAY,E,oDAGnB,SAAgBh4D,EAASoQ,EAAOiI,GAC9BxlB,KAAKud,MAAQ,IAAIpnB,KAAKonB,GACtBvd,KAAKwlB,MAAQ,IAAIrvB,KAAKqvB,GACtBxlB,KAAKmN,QAAU,IAAIhX,KAAKgX,GAGpBnN,KAAKmN,QAAUnN,KAAKud,QACtBvd,KAAKmN,QAAU,IAAIhX,KAAK6J,KAAKud,U,mBAIjC,SAAM8iD,GACJ,IAAM1sE,EAASqM,KAAKwlB,MAAQxlB,KAAKmN,QAAsB,IAAVkzD,EAAmBrgE,KAAKmlE,UACrE,OAAInlE,KAAKmN,QAAUnN,KAAKwlB,OAAS7xB,GAAQqM,KAAK+6B,UAAYpnC,GAAQ,IACzDgjB,IAAOhjB,GAAMijB,OAAO,UAErB,I,yBAGV,SAAYmkB,GACV/6B,KAAKmlE,WAAyB,IAAXpqC,M,KClDFqqC,G,WACnB,WAAYC,GAAQ,qBAClBrlE,KAAKqlE,MAAQA,E,0CAGf,WACE,IAAMC,EAAMnvE,KAAKmvE,MACXjF,EAAUiF,EAAMtlE,KAAKqlE,MAAQ,EAAIC,EAAMtlE,KAAKqlE,MAAQ,EAC1D,OAAO1uD,IAAO0pD,GAASzpD,OAAO,a,KCN3B,SAAS2uD,GAAqBp0D,EAAWwtD,GAC9C,MAAO,CAAE5gE,KAAMsL,IAA8B8H,YAAWwtD,cAGnD,SAAS6G,GAAuBr0D,EAAWwtD,GAChD,MAAO,CAAE5gE,KAAMsL,IAAgC8H,YAAWwtD,cAGrD,SAAS8G,KAA+B,IAAjB73D,EAAgB,wDACtChP,EAAS+K,IACTY,EAAQH,IAEd,OAAO,SAACoB,EAAU4I,EAAX,OAAuB3I,EAAvB,EAAuBA,MAAvB,OAAmCC,QAAQC,QAChDF,EAAM4I,IAAN,kBAAqBzV,GAArB,OvMVO,kBuMUP,+BAAmE,CACjEkN,QAAS,CAAEE,cAAc,SAAD,OAAWzB,MAClC0B,MAAK,SAACkF,GAEL3F,EADEoC,EACO23D,GAAqBp0D,EAAUnc,KAAKA,KAAMmc,EAAUnc,KAAK0wE,aAEzDF,GAAuBr0D,EAAUnc,KAAKA,KAAMmc,EAAUnc,KAAK0wE,iBAErEv5D,OAAM,SAACxU,GACJA,EAAM2c,UACsB,MAA1B3c,EAAM2c,SAASza,QACjB2R,EAAS2I,UAOZ,SAAS8wD,GAAevP,GAC7B,IAAM92D,EAAS+K,IACTY,EAAQH,IAEd,OAAO,SAACoB,EAAU4I,EAAX,OAAuB3I,EAAvB,EAAuBA,MAAvB,OAAmC,IAAIC,SAAQ,SAACC,EAASC,GAAV,OACpDH,EAAM,CACJvR,OAAQ,OACR2R,aAAc,OACdnV,IAAI,WAAD,OAAakI,GAAb,OvMpCE,kBuMoCF,mBACH5J,KAAM0gE,EACN5pD,QAAS,CAAEE,cAAc,SAAD,OAAWzB,MAEpC0B,MAAK,kBAAMN,EAAQH,EAASi6D,UAC5Bt5D,OAAM,SAACxU,GACN,OAAIA,EAAM2c,SACsB,MAA1B3c,EAAM2c,SAASza,OACV+R,EAAOJ,EAAS2I,MAElBvI,EAAOjU,EAAM2c,UAEf1I,EAAO,W,uCCq4BL+5D,GAj5BI,SAAC9+D,GAClB,MASI4L,uBAAY,SAAC5M,GAAD,cAAY,CAC1BgiD,YAAahiD,EAAM6sB,SACnBgK,WACE72B,EAAM62B,WAAWnoC,OAAS,EAA1B,YAAkCsR,EAAM62B,WAAW,GAAG1nC,MAAQ,GAChEwxD,kBAAmB3gD,EAAMoC,gBAAkBpC,EAAMoC,gBAAgBxL,GAAK,EACtE4T,WAAS,UAAAxK,EAAMoC,uBAAN,eAAuBK,UACQ,IAApCzC,EAAMoC,gBAAgBK,OAAO,IACO,IAApCzC,EAAMoC,gBAAgBK,OAAO,IAEjC20D,oBAAqBp3D,EAAM8P,oBAAoBC,OAC/CysB,cAAex8B,EAAMqrB,UAAU,IAAMrrB,EAAMqrB,UAAU,GAAGl8B,KACxD4wE,UACE,UAAA//D,EAAMqrB,UAAU,UAAhB,eAAoBl8B,KAAKT,QAAS,GAClCsR,EAAMqrB,UAAU,GAAGl8B,KAAKiV,MACtB,SAAC8zB,GAAD,MAAwC,oBAA7BA,EAAMrgB,KAAKkF,iBACtBnmB,GACJiV,KAAM7L,EAAMgnB,OAAOnb,SAxBnBm2C,EADF,EACEA,YACAnrB,EAFF,EAEEA,WACA8pB,EAHF,EAGEA,kBACAn2C,EAJF,EAIEA,QACA4sD,EALF,EAKEA,oBACA56B,EANF,EAMEA,cACAujC,EAPF,EAOEA,SACAl0D,EARF,EAQEA,KAoBIlG,EAAWqK,wBAGXgwD,EAAc,SAAC5xD,EAAUjf,GAAX,OAClBwW,EzLyCG,SAAqByI,EAAUjf,GACpC,IAAM4J,EAAS+K,IACTY,EAAQH,IAEd,OAAO,SAACoB,EAAU4I,EAAX,OAAuB3I,EAAvB,EAAuBA,MAAvB,OAAmC,IAAIC,SAAQ,SAACC,EAASC,GAAV,OAClDH,EAAM,CACJvR,OAAQ,MACR2R,aAAc,OACdnV,IAAI,WAAD,OAAakI,GAAb,OftHA,kBesHA,uBAA2CqV,EAA3C,KACHnI,QAAS,CAAEE,cAAc,SAAD,OAAWzB,IACnCvV,SAEDiX,MAAK,SAACuJ,GAAD,OAAU7J,EAAQH,EAASoJ,GAAcY,EAAKxgB,WACnDmX,OAAM,SAACxU,GACN,OAAIA,EAAM2c,UACsB,MAA1B3c,EAAM2c,SAASza,OACV+R,EAAOJ,EAAS2I,MAGpBvI,EAAOjU,UyL5DTme,CAA2B7B,EAAUjf,KAM1C8wE,EAAYn5D,mBACZo5D,EAAcp5D,mBAEpB,EAA4BxF,wBAASjU,GAArC,mBAAOic,EAAP,KAAe0tB,EAAf,KACA,EAAkC11B,wBAASjU,GAA3C,mBAAOqqC,EAAP,KAAkB6yB,EAAlB,KACA,EAA4BjpD,wBAASjU,GAArC,mBAAO2hB,EAAP,KAAeqoD,EAAf,KACA,EAAkC/1D,wBAASjU,GAA3C,mBAAOg+B,EAAP,KAAkB+U,EAAlB,KACA,EAA8C9+B,mBAAS,IAAvD,mBAAOgoD,EAAP,KAAwBC,EAAxB,KACA,EAAkCjoD,mBAAS,GAA3C,mBAAO28C,EAAP,KAAkBkiB,EAAlB,KACA,EAAsC7+D,mBAAS,GAA/C,mBAAOw8D,EAAP,KAAoBsC,EAApB,KACA,GAAwC9+D,mBAAS,IAAjD,qBAAO66D,GAAP,MAAqBC,GAArB,MACA,GAAkC96D,mBAAS6c,IAA3C,qBAAO62C,GAAP,MAAkBC,GAAlB,MACA,GAAkC3zD,mBAAS,IAA3C,qBAAO++D,GAAP,MAAkBC,GAAlB,MACA,GAAwCh/D,oBAAS,GAAjD,qBAAOi/D,GAAP,MAAqBC,GAArB,MACA,GAAwCl/D,oBAAS,GAAjD,qBAAOm/D,GAAP,MAAqBC,GAArB,MACA,GAAgDp/D,oBAAS,GAAzD,qBAAOq/D,GAAP,MAAyBC,GAAzB,MACA,GAAkCt/D,wBAASjU,GAA3C,qBAAOkuE,GAAP,MAAiBsF,GAAjB,MACA,GAAgDv/D,wBAASjU,GAAzD,qBAAOyzE,GAAP,MAAyBC,GAAzB,MACA,GAAkCz/D,wBAASjU,GAA3C,qBAAO2zE,GAAP,MAAkBC,GAAlB,MACA,GAAkC3/D,wBAASjU,GAA3C,qBAAO6zE,GAAP,MAAkBC,GAAlB,MACA,GAAgC7/D,wBAASjU,GAAzC,qBAAO6nC,GAAP,MAAiBf,GAAjB,MACA,GAAgC7yB,mBAAS,IAAzC,qBAAOurB,GAAP,MAAiByqC,GAAjB,MACA,GAA4Ch2D,mBAAS,SAArD,qBAAO8/D,GAAP,MAAuBC,GAAvB,MACA,GAA0B//D,wBAASjU,GAAnC,qBAAOqtE,GAAP,MAAcC,GAAd,MACA,GAAkCr5D,mBAAS,IAA3C,qBAAOipC,GAAP,MAAkB2E,GAAlB,MACA,GAA0C5tC,mBAAS,IAAnD,qBAAOggE,GAAP,MAAsBC,GAAtB,MACA,GAAwCjgE,mBAAS,IAAjD,qBAAOkgE,GAAP,MAAqBC,GAArB,MACA,GAA0CngE,mBAAS,IAAnD,qBAAO49D,GAAP,MAAsBwC,GAAtB,MACA,GAAgDpgE,oBAAS,GAAzD,qBAAOqgE,GAAP,MAAyBC,GAAzB,MACA,GAAsDtgE,oBAAS,GAA/D,qBAAOugE,GAAP,MAA4BC,GAA5B,MACA,GAA4CxgE,mBAAS,IAArD,qBAAOmvC,GAAP,MAAuBqC,GAAvB,MACA,GAA4CxxC,mBAAS,IAArD,qBAAO6tD,GAAP,MAAuB4I,GAAvB,MACA,GAAkCz2D,mBAAS,GAA3C,qBAAO2qD,GAAP,MAAkBC,GAAlB,MACA,GAAsD5qD,oBAAS,GAA/D,qBAAOk2B,GAAP,MAA4BC,GAA5B,MACA,GAA4Dn2B,oBAAS,GAArE,qBAAOygE,GAAP,MAA+BC,GAA/B,MACA,GAAwC1gE,mBAAS,IAAjD,qBAAO+uC,GAAP,MAAqBC,GAArB,MACA,GAAsChvC,mBAAS,IAA/C,qBAAOiyB,GAAP,MAAoBC,GAApB,MACA,GAA8BlyB,mBAAS,IAAvC,qBAAO27D,GAAP,MAAgBgF,GAAhB,MACA,GAAwC3gE,wBAASjU,GAAjD,qBAAO8tE,GAAP,MAAqB+G,GAArB,MACA,GAAkD5gE,wBAASjU,GAA3D,qBAAOirE,GAAP,MAA0BC,GAA1B,MACA,GAAkCj3D,wBAASjU,GAA3C,qBAAOguE,GAAP,MAAkB8G,GAAlB,MACA,GAAsD7gE,wBAASjU,GAA/D,qBAAOiuE,GAAP,MAA4B8G,GAA5B,MAEA3gE,qBAAU,WACR,OAAO,WACL,IAAM4gE,EAAgBpC,EAAU34D,QAC1Bg7D,EAAkBpC,EAAY54D,QACpC,GAAI+6D,GAA0C,gBAAzBA,EAAcruE,OAA0B,CAC3D,IAAMwyB,EAAS,CACb5vB,GAAIyrE,EAAczrE,GAClB4vB,OAAQ67C,EAAc77C,QAExBziB,eAAeO,QAAf,qBACgB+9D,EAAczrE,IAC5BtH,KAAKsuD,UAAUp3B,IAEjBmO,cAAc2tC,OAGjB,IAEH7gE,qBAAU,WACR,IAAqB2M,IAsCTpN,EAAMhI,MAAMvI,OAAOmG,GArC7BgP,IACG4I,IADH,kBACkB1K,KADlB,OxM1IK,kBwM0IL,uBACqDsK,EADrD,KACkE,CAC9DnI,QAAS,CAAEE,cAAc,SAAD,OAAW5B,QAEpC6B,MAAK,SAACC,GACDA,EAAIlX,KAAK6f,OAAOqB,UAClBrP,EAAM2F,QAAQ9H,KAAd,8BAA0CuP,EAA1C,MAEF,IAAMjf,EAAOkX,EAAIlX,KACXma,EAASna,EAAKma,OAYpB,GAXA0tB,EAAU9lC,OAAOiU,OAAO,GAAImE,IAC5B+tD,EAAUnmE,OAAOiU,OAAO,GAAIhW,EAAK6f,SACjCoxB,EAAalvC,OAAOiU,OAAO,GAAIhW,EAAKk8B,YACpCk+B,EAAmBp6D,EAAKy9B,cACxBmrC,GAAkB5oE,EAAKiqE,gBACvBgH,EAAejxE,EAAKshB,UAAU7Z,IAC9BsrE,GAAgB/yE,EAAKozE,qBACrBhK,GAAqBppE,EAAKqqE,cAC1B2I,GAAahzE,EAAKqzE,gBAClBJ,GAAuBjzE,EAAK6f,OAAOyzD,uBAE/Bn5D,EAAOouB,UAAUhpC,OAAS,EAAG,CAC/B,IAAMgpC,EAAYpuB,EAAOouB,UAAU,GACnC6yB,EAAar5D,OAAOiU,OAAO,GAAIuyB,IAGjC,GAAIvoC,EAAK6f,OAAO0B,WAAY,CAC1B,IAAM0qD,EAAW,IAAIiE,GACnBlwE,EAAKqqE,aACLrqE,EAAKqzE,eACLrzE,EAAKuzE,mBAEP/H,GAASS,SAMhB,CAACp6D,EAAMhI,MAAMvI,OAAOmG,GAAIoK,EAAM2F,UAEjClF,qBAAU,WACR,IAAsBgxB,EAGlBnpB,IAHkBmpB,EAIPnpB,EAAO1S,GAHpB+O,EAASi7C,GAA6BnuB,EAGd,gBAEzB,CAACnpB,EAAQ3D,IAEZlE,qBAAU,WACR,GAAI6H,GAAU04C,EAAYtzD,OAAS,GACTszD,EAAY/0C,MAAK,SAAC+vB,GAAD,OAAOA,EAAEvK,WAAanpB,EAAO1S,MACjD,CACnB,IAAMuiE,EAAmBnX,EAAYt/C,QACnC,SAACs6B,GAAD,OACErrB,SAASqrB,EAAEvK,SAAU,MAAQnpB,EAAO1S,IAAqB,aAAfomC,EAAEpuB,YAC9C,GACF0oD,GAAY,YAAI6B,EAAiBhqE,UAGpC,CAAC6yD,EAAa14C,IAEjB7H,qBAAU,WACR,IA8BMkhE,EAAQ3hE,EAAMkC,aACN,oBAAVy/D,GAA+B3N,KAAc72C,KAR/C82C,GAAa92C,IACbqiD,IAAgB,GAChBE,IAAgB,GAChBE,IAAoB,GACpBqB,GAAWrjE,GAASiN,GAAM,kCAOd,2BAAV82D,GAAuCZ,IAA0B/M,KAAc72C,GAE9D,0BAAVwkD,GAAsCZ,IAA0B/M,KAAc72C,IAnClFsiD,KACHzmE,aAAa8mE,IACb7L,GAAa92C,KACA,OAATkN,QAAS,IAATA,OAAA,EAAAA,EAAWz0B,MAAOmpE,EACpBkC,GAAWrjE,GAASiN,GAAM,wBAE1Bo2D,GAAWrjE,GAASiN,GAAM,+BAKV,WACpB,IAAK40D,GAAc,CACjB,IAAMmC,EAAsBluE,YAAW,WACrCugE,GAAa92C,IACb8jD,GAAWrjE,GAASiN,GAAM,kCACzB,KACHk1D,GAAoB6B,IAiBtBC,KAMD,CAAC7hE,EAAMkC,aAAc6+D,KAExBtgE,qBAAU,WACJi5D,IACFgB,OAGD,CAAChB,KAEJj5D,qBAAU,WACJ8+D,IAAgB7F,KAClB/lC,cAAc4mC,IACdG,QAID,CAAC6E,KAEJ9+D,qBAAU,WACR,GAAIuN,EAAQ,CACV,IAAMm9C,IAAWn9C,EAAOgqD,QACpBhqD,EAAOgqD,OAAO/rD,MAAK,SAACyK,GAAD,MAAqC,QAA1BA,EAAM22C,WAAWrzD,QAGnD,GADAi6D,GAAa9I,EAAWhuC,GAAkBA,SACQ9wB,IAA9C0W,eAAe,cAAD,OAAeiL,EAAOpY,KAAqB,CAC3D,IAAMksE,EAAaxzE,KAAKC,MACtBwU,eAAe,cAAD,OAAeiL,EAAOpY,MAEtCygE,EAAUnmE,OAAOiU,OAAO,GAAI6J,EAAQ,CAAEwX,OAAQs8C,EAAWt8C,UACzDziB,eAAe+D,WAAf,qBAAwCkH,EAAOpY,KAGjD,GAAIoY,EAAO0B,aACTkwD,IAAoB,QAEgCvzE,IAAhD0W,eAAe,gBAAD,OAAiBiL,EAAOpY,MAAqB,CAC7D,IAAMmsE,EAAezzE,KAAKC,MACxBwU,eAAe,gBAAD,OAAiBiL,EAAOpY,MAExC,GAAImsE,EAAaC,WAAY,CAC3B,IAAMC,EAAQ,IAAI1D,GAAcwD,EAAa7B,WAC7CD,GAAagC,GACbhO,GAAa92C,IACbqiD,GAAgBuC,EAAaC,YAC7B1C,GAAayC,EAAa1C,WAC1Bc,GAAa4B,EAAa7B,gBAE1B/sC,GAAY4uC,EAAa7tC,UACzBsrC,GAAgBuC,EAAaC,YAC7BtC,IAAgB,GAChBzL,GAAa92C,IACbyiD,IAAoB,GAI1BX,EAAU34D,QAAU0H,KAErB,CAACA,IAEJvN,qBAAU,WACR,GAAI4pB,EAAW,CACb,IAAMgV,EAAgBhV,EAAUxT,KAAKkF,cAEjB,UAAlBsjB,GACkB,QAAlBA,GACkB,oBAAlBA,GACkB,UAAlBA,GACkB,eAAlBA,GAEA4L,GAAiB3iC,EAAO1S,GAAIoY,EAAOpY,IAGf,wBAAlBypC,GACF64B,GAAuBlqD,EAAOpY,OAGjC,CAACy0B,EAAW/hB,EAAQ0F,IAEvB,IAAMi9B,GAAmB,SAACxZ,EAAUrkB,GAClCpc,QAAQC,IAAI,yBACZ6gD,GAAkB,IAClBltC,IAAM,CACJ/U,IAAI,WAAD,OAAaiT,KAAb,OxMpUE,kBwMoUF,wBAAiD2uB,EAAjD,+BAAgFrkB,EAAhF,KACH/Z,OAAQ,MACR2R,aAAc,OACdC,QAAS,CACPE,cAAc,SAAD,OAAW5B,QAGzB6B,MAAK,SAACC,GACDA,EAAIlX,KAAKT,OAAS,IACpBwgD,GAAa7oC,EAAIlX,MACjB2jD,GAAkB,QAGrBxsC,OAAM,SAAC+hB,GACN,GAAIA,EAAI5Z,SAAStf,KAAK2C,OAAqC,cAA5Bu2B,EAAI5Z,SAAStf,KAAK2C,MAAuB,CACtE,IAEMohD,EACJ,cAAC,IAAD,CACEt8C,GAAG,4BACHmM,eAJF,kKAOF+vC,GAAkBI,QAKpBgmB,GAAyB,SAAC9qD,GAC9BxI,IAAM,CACJ/U,IAAI,WAAD,OAAaiT,KAAb,OxMlWE,kBwMkWF,uBAAgDsK,EAAhD,kBACH/Z,OAAQ,MACR2R,aAAc,OACdC,QAAS,CACPE,cAAc,SAAD,OAAW5B,QAGzB6B,MAAK,SAACC,GAEL,GADArU,QAAQC,IAAI,YAAUoU,GAClBA,EAAIlX,KAAM,CACZ,IAAMg9C,EAAQj7C,OAAOyoE,YACnBzoE,OAAO0oE,QAAQvzD,EAAIlX,MAAM0Y,KAAI,mCAAEgyD,EAAF,KAAKC,EAAL,WAAY,CAACD,EAAElyD,cAAemyD,OAE7D5qB,GAAa,CAAC/C,IACd2G,GAAkB,QAGrBxsC,OAAM,SAAC+hB,GACN,GACEA,EAAI5Z,SAAStf,MACbk5B,EAAI5Z,SAAStf,KAAK2C,MAAM8Q,SAAS,kBACjC,CACA,IAEMswC,EACJ,cAAC,IAAD,CACEt8C,GAAG,8BACHmM,eAJF,0DAOF+vC,GAAkBI,QAKpBwoB,GAAa,WAEjB,GAAsB,UAAlB1sD,EAAOhb,OAAoB,CAC7B,IAAIwmE,EAAU,EACRe,EAAW9mC,aAAY,WAC3B,IAAM+mC,EAAWd,GAAM3gE,MAAMygE,GAE7B,GAAI+F,GACF,GAAiB,UAAb/E,EACFrmC,SACK,CACL,IAAM+tC,EAAclC,GAAU5uC,QAC9B+B,GAAY+uC,QAES,IAAd1H,GACT7mC,cAAc4mC,GACdtG,GAAa92C,IACbqiD,IAAgB,GAChBE,IAAgB,GAChBE,IAAoB,GACpBS,GAAkB,UAElBA,GAAkB7F,GAEpBhB,GAAW,IACV,KACHqG,GAActF,GACd2E,EAAY54D,QAAUi0D,IAoCpBoC,GAAY,SAAC1sE,GACA,YAAbA,EAAIiH,MACNioE,EAAalvE,EAAIuqC,QAAUvqC,EAAI6wD,KAAKlrD,GAAK,GACzCwpE,EAAe,IACO,cAAbnvE,EAAIiH,OACbioE,EAAa,GACbC,EAAenvE,EAAIuqC,QAAUvqC,EAAIkiE,IAAIv8D,GAAK,KAIxC8mE,GAAe,SAACzsE,GACH,YAAbA,EAAIiH,KACFjH,EAAIuqC,QACN+lC,GAAiB,CAACtwE,EAAI6wD,MAAN,mBAAewf,MAE/BC,GACED,GAAc5+D,QAAO,SAACo/C,GAAD,OAAUA,EAAKlrD,KAAO3F,EAAI6wD,KAAKlrD,OAGlC,cAAb3F,EAAIiH,OACTjH,EAAIuqC,QACNimC,GAAgB,CAACxwE,EAAIkiE,KAAN,mBAAcqO,MAE7BC,GAAgBD,GAAa9+D,QAAO,SAACywD,GAAD,OAASA,EAAIv8D,KAAO3F,EAAIkiE,IAAIv8D,SA+FhEu+B,GAAa,WACjB,GAAIn0B,EAAMm0B,WAAY,CAEpBmrC,GADiBD,GAAY,IAE7B3F,GAAMyI,YAAY,IAClB,IAAMJ,EAAe,CACnBnsE,GAAIoY,EAAOpY,GACXypE,UAAWA,GACXa,UAAWA,GACXhsC,SAAUA,GACV8tC,YAAY,GAEdj/D,eAAeO,QAAf,uBACkB0K,EAAOpY,IACvBtH,KAAKsuD,UAAUmlB,IAEjB/hE,EAAMm0B,eA8BJiuC,GAAyB,WA/hB7Bz9D,EAAS4K,GAgiBUowC,IACnB3/C,EAAMoP,aAAY,QACkC/iB,IAAhD0W,eAAe,gBAAD,OAAiBiL,EAAOpY,MACxCmN,eAAe+D,WAAf,uBAA0CkH,EAAOpY,UAEDvJ,IAA9C0W,eAAe,cAAD,OAAeiL,EAAOpY,MACtCmN,eAAe+D,WAAf,qBAAwCkH,EAAOpY,KAEjDoK,EAAM2F,QAAQ9H,KAAK,SAsErB,IAAKmQ,IAAW1F,IAAW+hB,EACzB,OACE,qBAAKnqB,UAAU,2BAA2BtE,MAAO,CAAEykC,UAAW,UAA9D,oCAMJ,IAAMgiC,GAAkBzkE,GAASiN,GAAM,2BACjCgwD,GAAmB7sD,GAAUA,EAAOyB,YAAckwC,EAExD3uD,QAAQC,KAAK0uE,IAAkC,IAAd1U,IAEjC,IAAIqX,GAAiB,GAYrB,OAXIh6D,IACFg6D,GACsB,IAApBh6D,EAAOijB,SACHsK,EAAWn0B,QACT,SAAC+N,GAAD,OACEA,EAAUhO,OAAOwK,MAAK,SAACtK,GAAD,OAASA,IAAQ2G,EAAOijB,aAClB,IAA5B9b,EAAUhO,OAAO/T,UAErBmoC,EAAWn0B,QAAO,SAAC+N,GAAD,OAA2C,IAA5BA,EAAUhO,OAAO/T,WAIxD,sBAAKwS,UAAU,2BAA2BtE,MAAO,CAAEykC,UAAW,UAA9D,UACG0gC,IACC,cAAC,GAAD,CAAgBxzC,WAAY,kBAAMyzC,IAA0B,IAAQtiB,YAAa9gD,GAASiN,GAAM,yBAAhG,SACE,cAAC,GAAD,CACEvC,OAAQA,EACRujB,SAAUA,GACVze,SAAUY,EAAOpY,GACjB27B,cAAejpB,EAAO8gB,QACtB0K,UAAW9zB,EAAM8zB,UACjB5qB,UAAWlJ,EAAMkJ,UACjB6qD,aAAc/zD,EAAM+zD,iBAIzBv9B,IACC,cAAC,GAAD,CACEzC,YAAazrB,EAAO+uB,cACpB9F,cAAejpB,EAAO8gB,QACtBhc,SAAUY,EAAOpY,GACjBk+B,UAAW9zB,EAAM8zB,UACjBG,iBAAkBj0B,EAAMi0B,iBACxB/qB,UAAWlJ,EAAMkJ,UACjBupB,UAAWzyB,EAAMyyB,UACjBE,UAAW3yB,EAAM2yB,UACjBC,SAAU,kBACR5yB,EAAMs3B,UACK,OAATjN,QAAS,IAATA,OAAA,EAAAA,EAAWxT,KAAKkF,cAAcna,SAAS,WAAY,EAAI,IAG3DM,aAAclC,EAAMkC,aACpBqrB,WAAY,kBAAMkJ,IAAwBD,KAC1CnM,UAAWA,IAGds2C,IACC,cAAC,GAAD,CACEvzD,SAAUY,EAAOpY,GACjBwoE,eAlIe,SAACvP,GACtB,IAAM1gE,EAAO0gE,EACb1gE,EAAK6E,OAAS,OACd7E,EAAK6f,OAASA,EAAOpY,GACrBzH,EAAKo0E,eAAiB5iB,EAljBK,SAACkP,GAAD,OAC3BlqD,EAAS69D,GAA+B3T,IAkjBxC4T,CAAqBt0E,GAClBiX,MAAK,WACCjX,EAAKgwE,eACRvlD,GAAUhU,IAAO5E,EAAM6Y,UAAW,CAChC3hB,KAAM,YACNkpC,OAAQ,YACRuf,kBAAmBA,EACnBzyC,OAAQyyC,IAGZihB,IAAoB,GACpBE,IAAuB,MAExBx7D,OAAM,SAACxU,GACe,MAAjBA,EAAMkC,QAAkBlC,EAAM3C,OAC5B2C,EAAM3C,KAAKo0E,eACb7B,GAAiB,+CAAD,OAC8B5vE,EAAM3C,KAAKo0E,eAAe,KAGxE7B,GAAiB,mBAAD,OAAoB5vE,EAAMyT,kBA0G5CgpB,WAAY,kBAAMqzC,IAAqBD,KACvCzC,cAAeA,KAGlB2C,IACC,cAAC,GAAD,CACElzB,OAAO,2BACPt4C,KAAMgtE,GACNz0B,QAAShwC,GAASiN,GAAM,qBACxB6iC,UAAW,kBAAMozB,IAAuB,IACxChlE,OAAO,UAGX,sBACEoE,UAAU,yDACVtE,MAAO,CAAE6tB,SAAU,UACnB7zB,GAAG,mBAHL,UAKE,sBAAKsK,UAAU,kCAAf,UACE,cAAC,IAAD,CACEtK,GAAG,2BACHmM,eAAe,gBACd,IACFiM,EAAOpY,MAEV,sBAAMsK,UAAWtE,KAAMyzC,aAAvB,SAAsCA,KACtC,qBAAKnvC,UAAU,gBACf,cAAC,GAAD,CACEgL,SAAS,EACT5C,OAAQA,EACRouB,UAAWA,EACX4xB,gBAAiBA,EACjBj+B,UAAWA,EACX2pC,UAAWA,GACXiH,UAAWmF,GACXlsC,SAAUA,GACV3B,YAAaA,GACb0pC,QAASA,GACTxpC,UAAWzyB,EAAMyyB,UACjBE,UAAW3yB,EAAM2yB,UACjBC,SAAU,kBAAM5yB,EAAMs3B,SAASjN,EAAUz0B,KAAOmpE,EAAW,EAAI,IAC/D5Q,eAAgBA,GAChBgN,aAAcA,GACdC,gBAAiBA,GACjBC,oBAhJoB,WAC1B,IAAMqH,EAAgB,CACpB10D,OAAQA,EAAOpY,GACfgO,KAAMoK,EAAOyB,UACbrW,QAAS+hE,IAGXv2D,IAAM,CACJvR,OAAQ,OACR2R,aAAc,OACdnV,IAAI,WAAD,OAAaiT,KAAb,OxM7pBE,kBwM6pBF,4BACH3U,KAAMu0E,EACNz9D,QAAS,CAAEE,cAAc,SAAD,OAAW5B,QAElC6B,MAAK,WACJ2xD,GAAkB,GAAD,mBAAK5I,IAAL,CAAqBuU,QAEvCp9D,OAAM,SAAC+hB,GACNr2B,QAAQC,IAAIo2B,GACZr2B,QAAQC,IAAIo2B,EAAI5Z,cA8HdsuD,UApUU,WAChB,IAAMngC,EACJJ,EAAc9tC,OAAS,EACnB8tC,EAAcp4B,MACZ,SAACinB,GAAD,MACmC,wBAAjCA,EAAUxT,KAAKkF,iBACjBnmB,GACF,EACAmpE,EACJvjC,EAAc9tC,OAAS,EACnB8tC,EAAcp4B,MACZ,SAACinB,GAAD,MAAgD,oBAAjCA,EAAUxT,KAAKkF,iBAC9BnmB,GACF,EACA+sE,EACJnnC,EAAc9tC,OAAS,EACnB8tC,EAAcp4B,MACZ,SAACinB,GAAD,MAAgD,eAAjCA,EAAUxT,KAAKkF,iBAC9BnmB,GACF,EACAymC,EACJb,EAAc9tC,OAAS,EACnB8tC,EAAcp4B,MACZ,SAACinB,GAAD,MAAgD,UAAjCA,EAAUxT,KAAKkF,iBAC9BnmB,GACF,EACA/I,EAAO,IAAIyC,KACbszE,EAAa,GAEfA,EADEt6D,EAAO8uB,UAAY9uB,EAAOgkB,eAAiB+P,EACnC,UAAM/zB,EAAO8gB,SAAb,OAAuB9gB,EAAOovB,MAExCpvB,EAAOgkB,eAAiByyC,GACxBz2D,EAAOgkB,eAAiBq2C,GACxBr6D,EAAOgkB,eAAiBsP,EAEd,gBAAYtzB,EAAO8gB,SAAnB,OAA6B9gB,EAAO+uB,eAEpC,UAAM/uB,EAAO8gB,SAAb,OAAuB9gB,EAAO+uB,eAE1C,IAAMwrC,EAAeh2E,EAAKwC,UAE1B,GAAI2Q,EAAM+7D,UAAW,CACnB,IAAM+G,EAAe,IAAIvE,GAAcsE,GACvC5O,GAAa92C,IACbuiD,IAAgB,GAChBE,IAAoB,GACpBO,GAAa0C,GACb5C,GAAa6C,GACb7B,GAAWrjE,GAASiN,GAAM,2BAC1B20D,IAAgB,GAChB,IAAMuC,EAAe,CACnBnsE,GAAIoY,EAAOpY,GACXypE,UAAWA,GACXa,UAAW2C,EACXb,YAAY,EACZ9tC,aAEFnxB,eAAeO,QAAf,uBACkB0K,EAAOpY,IACvBtH,KAAKsuD,UAAUmlB,IAGjB/hE,EAAM+7D,UAAU6G,KAuQZ15D,UAnQU,WAChB,GAAIlJ,EAAMkJ,UAAW,CACnByqB,cAAc4mC,IACdv6D,EAAMkJ,YACN+qD,GAAa92C,IACbqiD,IAAgB,GAChBE,IAAgB,GAChBE,IAAoB,GAEpB,IAAMmC,EAAe,CACnBnsE,GAAIoY,EAAOpY,GACXypE,UAAWA,GACXa,UAAWA,GACXhsC,SAAUA,GACV8tC,YAAY,GAGdj/D,eAAeO,QAAf,uBACkB0K,EAAOpY,IACvBtH,KAAKsuD,UAAUmlB,MAiPbtG,mBAAoB,kBAAMmF,IAAqBD,KAC/CnuC,eAAgB,SAAChZ,GAAD,OAASgZ,GAAehZ,IACxChQ,QAASA,EACTqxD,iBAAkBA,GAClBC,gBAtYgB,WACtB,IAAMtrD,EAAYtf,OAAOiU,OAAO,GAAI6J,EAAQ,CAC1CyB,UAAWkwC,IAEb/mC,GAAUhU,IAAO5E,EAAM6Y,UAAW,CAChC3hB,KAAM,UACNkpC,OAAQ,qBACR2iC,QAAS/0D,EAAOyB,UAChBpa,KAAM2tE,GAAkBn4D,GAAM,6BAGhCwrD,EAAU7mD,GA5WO,SAACxB,GAAD,OAAYrJ,EAASsK,GAA0BjB,IA+WhEU,CAAWc,GAAWlK,OAAM,SAAC+hB,GACvBA,EAAI5Z,SAAStf,MAAQk5B,EAAI5Z,SAAStf,KAAK80E,gBACzC3zB,GACE,yFAEF57C,YAAW,WACTsM,EAAM2F,QAAQ9H,KAAK,UAClB,UAkXDgN,KAAMA,EACN8wD,gBAAiB,kBAAMllC,IAAwBD,KAC/Cy2B,mBAAoB,kBAAM+T,IAA0B,IACpD7G,aAAcA,GACd7C,kBAAmBA,GACnB+C,UAAWA,GACXM,oBAvIoB,WAI1BqE,EAAYhxD,EAAOpY,GAHN,CACX6rE,uBAAuB,IAGtBr8D,MAAK,SAACuJ,GACL3d,QAAQC,IAAI0d,MAEbrJ,OAAM,SAAC+hB,GACNr2B,QAAQC,IAAIo2B,OA+HVizC,oBAAqBA,GACrBh5C,OAAQtT,EAAOgqD,OACf/D,aAAcA,KAEhB,cAACiF,GAAD,CACE/zC,MAAO,cAAC,IAAD,CAAkBvvB,GAAG,8BAA8BmM,eAAe,aACzE4wD,UAAQ,EAFV,SAIE,cAAC,GAAD,CACErqD,OAAQA,EACRouB,UAAWA,EACX4xB,gBAAiBA,EACjBhnC,OAAQtT,EAAOgqD,OACfntD,KAAMA,EACNwR,UAAW+5C,EAAoBtuC,eAGlCuC,EAAUE,WACT,cAAC2uC,GAAD,CACE/zC,MAAO,cAAC,IAAD,CAAkBvvB,GAAG,+BAA+BmM,eAAe,sBAD5E,SAGE,cAAC,IAAD,CAAem0D,kBAAmBb,GAAlC,SACE,cAAC,GAAD,CACErnD,OAAQA,EACR1F,OAAQA,EACRihC,UAAWA,GACXlf,UAAWA,EACXymC,gBAAiB7lB,GACjBwE,eAAgBA,GAChB5kC,KAAMA,EACNkmD,cAAY,QAKnBqF,GACCA,EAAoB8M,eACpBrI,IACE,cAAC3B,GAAD,CACE/zC,MAAO,cAAC,IAAD,CAAkBvvB,GAAG,kCAAkCmM,eAAe,8BAD/E,SAGE,cAAC,IAAD,CAAem0D,kBAAmBb,GAAlC,SACE,cAAC,GAAD,CACExpC,SAAUA,GACV6wC,aAAcA,GACdC,UAAWA,GACX1f,UAAWA,EACX6f,YAAaA,QAKtB1G,GACCA,EAAoB+M,gBACpBtI,IACE,cAAC3B,GAAD,CACE/zC,MAAO,cAAC,IAAD,CAAkBvvB,GAAG,iCAAiCmM,eAAe,0BAD9E,SAGE,cAAC,GAAD,CACE8zB,WAAYysC,GACZ5F,aAAcA,GACdC,UAAWA,GACX1f,UAAWA,EACX6f,YAAaA,MAIpBjC,IACC,gCACE,cAAC3B,GAAD,CACE/zC,MAAO,cAAC,IAAD,CAAkBvvB,GAAG,yBAAyBmM,eAAe,wBADtE,SAGE,cAAC,GAAD,CACEmpD,aAAcA,OAGlB,cAACgO,GAAD,CACE/zC,MAAO,cAAC,IAAD,CAAkBvvB,GAAG,yBAAyBmM,eAAe,mBADtE,SAGE,cAAC,GAAD,CACEiM,OAAQA,EACRkvD,eArcS,SAAC9iC,GACtB,IAAMxY,EAAQwY,EAAG5zB,OAAOqQ,KAClBlqB,EAAQytC,EAAG5zB,OAAO7Z,MACxB0pE,EAAUnmE,OAAOiU,OAAO,GAAI6J,EAAlB9d,OAAA,KAAAA,CAAA,GAA6B0xB,EAAQj1B,MAmcnCgzD,kBAAmBA,MAGvB,qBAAKz/C,UAAWtE,KAAMwnE,UAAtB,SACE,wBACElsE,KAAK,SACL6Q,UAAW43D,IAAkC,IAAd1U,GAC/B/qD,UAAS,UAAKtE,KAAMynE,QAAX,cAAwB1D,IAAkC,IAAd1U,KAAoBrvD,KAAM0nE,aAC/EljE,QA9TS,WACrB,IAAMmjE,EAAe,CACnB3tE,GAAIoY,EAAOpY,GACXyZ,SAAUS,MAASC,OAAO,2BAC1B/c,OAAQ,QACR0lE,gBAAiBzb,GAAwB,KACzCwb,kBAAmBqE,GAA4B,KAC/CptD,WAAY1B,EAAO0B,WACnBqpD,cAAe7kC,GACf1O,OAAQxX,EAAOwX,OACf86C,cAAeA,GACfE,aAAcA,GACdvV,UAAWA,IAEbrmD,IAAM,CACJvR,OAAQ,MACR2R,aAAc,OACdnV,IAAI,WAAD,OAAaiT,KAAb,OxM/lBE,kBwM+lBF,uBAAgDygE,EAAa3tE,GAA7D,KACHzH,KAAMo1E,EACNt+D,QAAS,CAAEE,cAAc,SAAD,OAAW5B,QAClC6B,MAAK,WACNixD,EAAUkN,GACVnB,SAoSQ,SAME,iCACE,mBACEliE,UAAU,oBACV,cAAY,OACZtE,MAAO,CAAEgM,aAAc,OAAQC,WAAY,YAE7C,cAAC,IAAD,CACEjS,GAAG,yBACHmM,eAAe,uBAEF,IAAdkpD,IACC,uBAAM/qD,UAAWtE,KAAM4nE,YAAvB,UACE,cAAC,IAAD,CAAkB5tE,GAAG,4BAA4BmM,eAAe,gBAAgB,uBAChF,cAAC,IAAD,CAAkBnM,GAAG,uCAAuCmM,eAAe,0EC/5B3F0hE,GAAU,SAAC,GAAD,IAAG3nE,EAAH,EAAGA,OAAQoE,EAAX,EAAWA,UAAWrE,EAAtB,EAAsBA,MAAtB,OACd,qBACEqE,UAAWA,EACXrE,MAAOA,EACPC,OAAQA,EACRgF,KAAK,UACLC,QAAQ,YACRmQ,iBAAiB,gBACjBlQ,MAAM,6BAPR,SASE,sBACEyE,EAAE,6pBAURg+D,GAAQviE,aAAe,CACrBpF,OAAQ,KACRoE,UAAW,GACXrE,MAAO,MASM4nE,U,oBCxBTC,GAAe,SAAC,GASf,IARLl6D,EAQI,EARJA,QACAC,EAOI,EAPJA,QACAgG,EAMI,EANJA,UACAlH,EAKI,EALJA,UACAqf,EAII,EAJJA,kBACAzf,EAGI,EAHJA,aACA/G,EAEI,EAFJA,gBACA0pB,EACI,EADJA,UAEMjD,EAAe,WACnBD,EAAkB,KAId+7C,EAAal6D,GAAWD,EACxBo6D,EAAyC,IAAxBn0D,EAAUhO,OAAO,IACH,IAA9BL,EAAgBK,OAAO,IAAagO,EAAUhO,OAAO,KAAOL,EAAgBK,OAAO,GAE1F,OACE,sBAAwBvB,UAAS,UAAKtE,KAAMmwB,IAAX,YAAkBtc,EAAUstD,UAAY,GAAKnhE,KAAMqwB,SAApF,UACE,qBAAK/rB,UAAS,UAAKtE,KAAMutB,OAAX,YAAqBvtB,KAAMioE,UAAzC,SAAsDp0D,EAAUo0D,WAChE,sBAAK3jE,UAAS,UAAKtE,KAAMutB,OAAX,YAAqBvtB,KAAMib,MAAzC,UAAkDpH,EAAU0c,WAA5D,IAAyE1c,EAAU2c,aACnF,qBAAKlsB,UAAS,UAAKtE,KAAMutB,OAAX,YAAqBvtB,KAAMs9B,OAAzC,SAAmDzpB,EAAUypB,QAC7D,qBAAKh5B,UAAS,UAAKtE,KAAMutB,OAAX,YAAqBvtB,KAAMm6B,OAAzC,SAEItmB,EAAUhO,OAAO/T,QAAU,EACvBioB,GAAUlG,EAAUhO,OAAO,IAC3BqpB,EAAU1nB,MAAK,SAAAynB,GAAO,OAAIA,EAAQj1B,KAAO6Z,EAAUhO,OAAO,MAAIoV,OAGtE,qBAAK3W,UAAWtE,KAAM,gBAAtB,UACI+nE,GAAcC,IAChB,gCACE,cAAC,IAAD,CACE1jE,UAAWtE,KAAMswB,QACjBY,YAAa,kBAAMlF,EAAkB,cAAC,IAAD,CAAkBhyB,GAAG,qBAAqBmM,eAAe,aAC9F2wB,WAAY7K,EACZ/lB,GAAE,8BAAyB2N,EAAU7Z,IAJvC,SAME,cAAC,GAAD,CAAMsK,UAAWtE,KAAMkR,MAAOjR,MAAM,KAAKC,OAAO,SAExB,IAAxB2T,EAAUhO,OAAO,IAAYgO,EAAU7Z,KAAOwL,EAAgBxL,IAC9D,wBACEk3B,YAAa,kBAAMlF,EAAkBnY,EAAUstD,UAAY,cAAC,IAAD,CAAkBnnE,GAAG,2BAA2BmM,eAAe,cAAiB,cAAC,IAAD,CAAkBnM,GAAG,wBAAwBmM,eAAe,gBACvM2wB,WAAY7K,EACZznB,QAAS,WAAamI,GAAaJ,GAAa,EAAMsH,IACtD7T,MAjCK,CAAEG,OAAQ,EAAGuQ,gBAAiB,cAAewf,QAAS,EAAGjkB,WAAY,QAASga,WAAY,QA6BjG,UAM2B,IAAxBpS,EAAUstD,UACT,qBAAK78D,UAAWtE,KAAMswB,QAAtB,SACE,cAAC,GAAD,CAAQhsB,UAAWtE,KAAMkR,MAAOjR,MAAM,KAAKC,OAAO,SAGpD,qBAAKoE,UAAWtE,KAAMswB,QAAtB,SACE,cAAC,GAAD,CAAShsB,UAAWtE,KAAMkR,MAAOjR,MAAM,KAAKC,OAAO,kBAnCvD2T,EAAU7Z,KAgDxB8tE,GAAaxiE,aAAe,CAC1BsI,SAAS,EACTC,SAAS,GAkGItP,mBAPf,SAAyB6E,EAAOmC,GAC9B,MAAO,CACLC,gBAAiBpC,EAAMoC,gBACvB0pB,UAAW9rB,EAAMyC,OAAOC,QAAO,SAAAC,GAAG,OAAK,CAAC,EAAG,EAAG,EAAG,GAAGC,SAASD,EAAI/L,UAItDuE,CAAyBupE,IAAzBvpE,ICvKT2pE,G,oDACJ,WAAY9jE,GAAQ,IAAD,+BACjB,cAAMA,IACDhB,MAAQ,CACX6M,UAAU,GAEZ,EAAKqzC,eAAiB,EAAKA,eAAehuD,KAApB,iBALL,E,mDAQnB,WACEiI,KAAKulB,UAAS,SAAAijB,GAAS,MAAK,CAC1B91B,UAAW81B,EAAU91B,e,oBAGzB,WACE,IAAQA,EAAa1S,KAAK6F,MAAlB6M,SACR,EASI1S,KAAK6G,MARPwJ,EADF,EACEA,QACAC,EAFF,EAEEA,QACAgG,EAHF,EAGEA,UACAlH,EAJF,EAIEA,UAEAJ,GANF,EAKEyf,kBALF,EAMEzf,cACA/G,EAPF,EAOEA,gBACA0pB,EARF,EAQEA,UAGI64C,EAAal6D,GAAWD,EACxBo6D,EAAyC,IAAxBn0D,EAAUhO,OAAO,IACL,IAA9BL,EAAgBK,OAAO,IAAagO,EAAUhO,OAAO,KAAOL,EAAgBK,OAAO,GAExF,OACE,sBAAKvB,UAAWtE,KAAM6wB,gBAAiB7wB,MAAO,CAAEE,OAAO,GAAD,OAAK+P,EAAW,OAAS,IAAM4d,SAAU,UAA/F,UACE,sBACEvpB,UAAS,UAAKtE,KAAM8wB,SAAX,YAAuBjd,EAAUstD,UAAY,GAAKnhE,KAAMqwB,SACjErwB,MAAO,CAAEgM,aAAc,QAFzB,UAKE,qBAAK1H,UAAS,UAAKtE,KAAMutB,OAAX,YAAqBvtB,KAAMioE,UAAzC,SAAsDp0D,EAAUo0D,WAChE,sBAAK3jE,UAAS,UAAKtE,KAAMutB,OAAX,YAAqBvtB,KAAMib,MAAzC,UAAkDpH,EAAU0c,WAA5D,IAAyE1c,EAAU2c,aACnF,qBAAKlsB,UAAS,UAAKtE,KAAMutB,OAAX,YAAqBvtB,KAAMs9B,OAAzC,SAAmDzpB,EAAUypB,QAC7D,qBAAKh5B,UAAS,UAAKtE,KAAMutB,OAAX,YAAqBvtB,KAAMm6B,OAAzC,SAEItmB,EAAUhO,OAAO/T,QAAU,EACvBioB,GAAUlG,EAAUhO,OAAO,IAC3BqpB,EAAU1nB,MAAK,SAAAynB,GAAO,OAAIA,EAAQj1B,KAAO6Z,EAAUhO,OAAO,MAAIoV,OAGtE,qBAAK3W,UAAS,UAAKtE,KAAMutB,OAAX,YAAqBvtB,KAAM+wB,qBAAzC,SACKnjB,GAAWC,GACRtQ,KAAK6G,MAAMirB,WAAaxb,EAAUhO,OAAOwK,MAC3C,SAAA8pB,GAAK,OAAc,IAAVA,GAAyB,IAAVA,KACtB,wBAAQ71B,UAAWtE,KAAMgxB,aAAcxsB,QAASjH,KAAK+lD,eAArD,SACIrzC,EAEE,IADA,MAKN,qBAAK3L,UAAWtE,KAAMmoE,mBAIhC,qBAAK7jE,UAAWtE,KAAMixB,kBAAtB,UACI82C,GAAcC,IACd,gCACE,cAAC,IAAD,CACE1jE,UAAWtE,KAAMswB,QACjBpqB,GAAE,8BAAyB2N,EAAU7Z,IAFvC,SAIE,cAAC,GAAD,CAAMsK,UAAWtE,KAAMkR,MAAOjR,MAAM,KAAKC,OAAO,SAExB,IAAxB2T,EAAUhO,OAAO,IAAYgO,EAAU7Z,KAAOwL,EAAgBxL,IAC9D,wBACEwK,QAAS,WAAamI,GAAaJ,GAAa,EAAMsH,IACtD7T,MAjDG,CAAEG,OAAQ,EAAGuQ,gBAAiB,cAAewf,QAAS,EAAGjkB,WAAY,QAASga,WAAY,QA+C/F,UAI2B,IAAxBpS,EAAUstD,UACT,qBAAK78D,UAAWtE,KAAMswB,QAAtB,SACE,mBAAGhsB,UAAU,mBAAmBtE,MAAO,CAAEuO,SAAU,GAAI7H,MAAO,OAAQuF,WAAY,OAIpF,qBAAK3H,UAAWtE,KAAMswB,QAAtB,SACE,mBAAGhsB,UAAU,2BAA2BtE,MAAO,CAAEuO,SAAU,GAAI7H,MAAO,OAAQuF,WAAY,qB,GApF/E8L,IAAMC,WAmGvCkwD,GAAmB5iE,aAAe,CAChCsI,SAAS,EACTC,SAAS,EACTwhB,WAAW,GAmGE9wB,0BAPf,SAAyB6E,EAAOmC,GAC9B,MAAO,CACLC,gBAAiBpC,EAAMoC,gBACvB0pB,UAAW9rB,EAAMyC,OAAOC,QAAO,SAAAC,GAAG,OAAK,CAAC,EAAG,EAAG,EAAG,GAAGC,SAASD,EAAI/L,UAItDuE,CAAyB2pE,I,oBCpEzB3pE,0BAVf,SAAyB6E,EAAOmC,GAC9B,MAAO,CACLC,gBAAiBpC,EAAMoC,gBACvBK,OAAQzC,EAAMyC,OACduiE,eAAgBhlE,EAAMyC,OAAO/T,OAAS,EAAIsR,EAAMyC,OAAO2B,MAAK,SAAAzB,GAAG,OAAe,IAAXA,EAAI/L,MAAY,GACnFquE,SAAUjlE,EAAMyC,OAAO/T,OAAS,EAAIsR,EAAMyC,OAAO2B,MAAK,SAAAzB,GAAG,OAAe,IAAXA,EAAI/L,MAAY,GAC7EsuE,MAAOllE,EAAMyC,OAAO/T,OAAS,EAAIsR,EAAMyC,OAAO2B,MAAK,SAAAzB,GAAG,OAAe,IAAXA,EAAI/L,MAAY,MAI/DuE,EA3IQ,SAAC,GAAmE,IAAD,MAAhEiH,EAAgE,EAAhEA,gBAAiB4iE,EAA+C,EAA/CA,eAAgBC,EAA+B,EAA/BA,SAAUC,EAAqB,EAArBA,MAAOv+D,EAAc,EAAdA,QACpE9V,EAAM1D,OAAOsM,SAASF,KAAOpM,OAAOsM,SAASF,KAAO,GACpD0yB,KAAag5C,GAA8C,IAAlC7iE,EAAgBK,OAAO/T,UAApC,UACdu2E,EAASE,gBADK,aACd,EAAmBl4D,MAAK,SAAAm4D,GAAI,OAAIA,EAAKxuE,KAAOwL,EAAgBxL,OAE1DiuD,KAAcmgB,GAAoD,IAAlC5iE,EAAgBK,OAAO/T,UAA1C,UACfs2E,EAAeG,gBADA,aACf,EAAyBl4D,MAAK,SAAAo4D,GAAG,OAAIA,EAAIzuE,KAAOwL,EAAgBxL,OAE9D0uE,KAAcJ,GAA2C,IAAlC9iE,EAAgBK,OAAO/T,UAAjC,UACfw2E,EAAMC,gBADS,aACf,EAAgBl4D,MAAK,SAAAs4D,GAAG,OAAIA,EAAI3uE,KAAOwL,EAAgBxL,OAE3D,OACE,qBAAKsK,UAAWtE,KAAM3E,QAAtB,SACE,qBAAKiJ,UAAWtE,KAAM2wB,KAAtB,SACE,qBAAIrsB,UAAWtE,KAAMwQ,GAArB,WACKy3C,GAAcygB,GAAcr5C,IAC7B,oBAAI/qB,UAAWtE,KAAMyQ,GAArB,SACE,wBACEnM,UAAS,UAAKtE,KAAMm/B,OAAX,aAAwD,IAAnClrC,EAAIC,QAAQ,kBAA2B8L,KAAM+L,OAAS,IACpFvH,QAAS,WAAQuF,EAAQ9H,KAAK,uBAFhC,SAIE,cAAC,IAAD,CAAkBjI,GAAG,8BAA8BmM,eAAe,oBAItE8hD,GAAcygB,GAAcr5C,IAC5B,oBAAI/qB,UAAWtE,KAAMyQ,GAArB,SACE,wBACEzQ,MAAO,CAAEC,MAAO,SAChBqE,UAAS,UAAKtE,KAAMm/B,OAAX,aAAyD,IAApClrC,EAAIC,QAAQ,mBAA4B8L,KAAM+L,OAAS,IACrFvH,QAAS,WAAQuF,EAAQ9H,KAAK,kCAHhC,iCASJ,oBAAIqC,UAAWtE,KAAMyQ,GAArB,SACE,wBACEnM,UAAS,UAAKtE,KAAMm/B,OAAX,aAAuD,IAAlClrC,EAAIC,QAAQ,iBAA0B8L,KAAM+L,OAAS,IACnFvH,QAAS,WAAQuF,EAAQ9H,KAAK,uBAFhC,SAIE,cAAC,IAAD,CAAkBjI,GAAG,0BAA0BmM,eAAe,gBAGlE,oBAAI7B,UAAWtE,KAAMyQ,GAArB,SACE,wBACEnM,UAAS,UAAKtE,KAAMm/B,OAAX,aAAyD,IAApClrC,EAAIC,QAAQ,mBAA4B8L,KAAM+L,OAAS,IACrFvH,QAAS,WAAQuF,EAAQ9H,KAAK,0BAFhC,SAIE,cAAC,IAAD,CAAkBjI,GAAG,6BAA6BmM,eAAe,iBAGrE,oBAAI7B,UAAWtE,KAAMyQ,GAArB,SACE,wBACEnM,UAAS,UAAKtE,KAAMm/B,OAAX,aAAyD,IAApClrC,EAAIC,QAAQ,mBAA4B8L,KAAM+L,OAAS,IACrFvH,QAAS,WAAQuF,EAAQ9H,KAAK,4BAFhC,SAIE,cAAC,IAAD,CAAkBjI,GAAG,4BAA4BmM,eAAe,qBAGpE,oBAAI7B,UAAWtE,KAAMyQ,GAArB,SACE,wBACEnM,UAAS,UAAKtE,KAAMm/B,OAAX,aAAqD,IAAhClrC,EAAIC,QAAQ,eAAwB8L,KAAM+L,OAAS,IACjFvH,QAAS,WAAQuF,EAAQ9H,KAAK,wBAFhC,oBAOF,oBAAIqC,UAAWtE,KAAMyQ,GAArB,SACE,wBACEzQ,MAAO,CAAEC,MAAO,SAChBqE,UAAS,UAAKtE,KAAMm/B,OAAX,aAAiE,IAA5ClrC,EAAIC,QAAQ,2BAAoC8L,KAAM+L,OAAS,IAC7FvH,QAAS,WAAQuF,EAAQ9H,KAAK,gCAHhC,0CCvEL,SAAS2mE,GAAsB3uC,EAAYjoB,GAChD,MAAO,CAAE1W,KAAMsL,IAA+BqzB,aAAYjoB,YAGrD,SAASskD,GAAaziD,GAC3B,MAAO,CAAEvY,KAAMsL,IAAqBiN,aAG/B,SAASg1D,GAAiBh1D,GAC/B,MAAO,CAAEvY,KAAMsL,IAAsBiN,aAIhC,SAASi1D,KAAuD,IAAxC92D,EAAuC,uDAA5BM,EAClCnW,EAAS+K,IACTY,EAAQH,IAEd,OAAO,SAACoB,EAAU4I,EAAX,OAAuB3I,EAAvB,EAAuBA,MAAvB,OAAmCC,QAAQC,QAChDF,EAAM4I,IAAN,kBAAqBzV,GAArB,O7MhBO,kB6MgBP,2CAAuE6V,GAAY,CACjF3I,QAAS,CAAEE,cAAc,SAAD,OAAWzB,MAClC0B,MAAK,SAACu/D,GACPhgE,EAAS6/D,GAAsBG,EAAMx2E,KAAMyf,OAC1CtI,OAAM,SAACxU,GACJA,EAAM2c,UACsB,MAA1B3c,EAAM2c,SAASza,QACjB2R,EAAS2I,UAOZ,SAASs3D,GAAgBn1D,GAC9B,IAAM1X,EAAS+K,IACTY,EAAQH,IAEd,OAAO,SAACoB,EAAU4I,EAAX,OAAuB3I,EAAvB,EAAuBA,MAAvB,OAAmC,IAAIC,SAAQ,SAACC,EAASC,GAAV,OACpDH,EAAM,CACJvR,OAAQ,OACR2R,aAAc,OACdnV,IAAI,WAAD,OAAakI,GAAb,O7MtCE,kB6MsCF,eACH5J,KAAMshB,EACNxK,QAAS,CAAEE,cAAc,SAAD,OAAWzB,MAEpC0B,MAAK,SAACC,GAAD,OAASP,EAAQH,EAASutD,GAAa7sD,EAAIlX,WAChDmX,OAAM,SAACxU,GACN,OAAIA,EAAM2c,SACsB,MAA1B3c,EAAM2c,SAASza,OACV+R,EAAOJ,EAAS2I,MAElBvI,EAAOjU,EAAM2c,UAEf1I,EAAO,WAKb,SAAS8/D,GAAcp1D,GAC5B,IAAM1X,EAAS+K,IACTY,EAAQH,IAEd,OAAO,SAACoB,EAAU4I,EAAX,OAAuB3I,EAAvB,EAAuBA,MAAvB,OAAmC,IAAIC,SAAQ,SAACC,EAASC,GAAV,OACpDH,EAAM,CACJvR,OAAQ,MACR2R,aAAc,OACdnV,IAAI,WAAD,OAAakI,GAAb,O7M/DE,kB6M+DF,sBAA0C0X,EAAU7Z,GAApD,KACHzH,KAAMshB,EACNxK,QAAS,CAAEE,cAAc,SAAD,OAAWzB,MAEpC0B,MAAK,kBAAMN,EAAQH,EAAS8/D,GAAiBh1D,QAC7CnK,OAAM,SAACxU,GACN,OAAIA,EAAM2c,SACsB,MAA1B3c,EAAM2c,SAASza,OACV+R,EAAOJ,EAAS2I,MAElBvI,EAAOjU,EAAM2c,UAEf1I,EAAO,WCyKL5K,0BAnBf,SAAyB6E,EAAOmC,GAC9B,MAAO,CACL0X,UAAW1X,EAAS0X,UACpBgd,WAAY72B,EAAM62B,WAClB8pB,kBAAmB3gD,EAAMoC,gBAAgBxL,GAAKoJ,EAAMoC,gBAAgBxL,GAAK,EACzE6T,UAASzK,EAAMoC,gBAAgBK,QAA6C,IAApCzC,EAAMoC,gBAAgBK,OAAO,GACrE+H,UAASxK,EAAMoC,gBAAgBK,QAA6C,IAApCzC,EAAMoC,gBAAgBK,OAAO,GACrEwpB,YAAWjsB,EAAMoC,gBAAgBK,QAA6C,IAApCzC,EAAMoC,gBAAgBK,OAAO,GACvEosC,qBAAsB7uC,EAAMoC,gBAAgBK,OAAO,OAIvD,SAA4BkD,GAC1B,MAAO,CACL+/D,eAAgB,SAAA92D,GAAQ,OAAIjJ,EAASmgE,GAAiCl3D,KACtEi3D,cAAe,SAAAp1D,GAAS,OAAI9K,EAASmgE,GAAgCr1D,QAI1DtV,EAnOa,SAAC6F,GAC3B,IAAQwJ,EAAqFxJ,EAArFwJ,QAASC,EAA4EzJ,EAA5EyJ,QAASwhB,EAAmEjrB,EAAnEirB,UAAW4K,EAAwD71B,EAAxD61B,WAAY8pB,EAA4C3/C,EAA5C2/C,kBAAmB9R,EAAyB7tC,EAAzB6tC,qBAEpE,GADqBlzB,KAC6Bra,mBAAS,KAA3D,mBAAOykE,EAAP,KAA0BC,EAA1B,KACA,EAAgC1kE,mBAAS4N,IAAzC,mBAAON,EAAP,KAAiBoiB,EAAjB,KACA,EAAkD1vB,mBAAS,MAA3D,mBAAO2kE,EAAP,KAA0BC,EAA1B,KACA,EAA4D5kE,oBAAS,GAArE,mBAAOuwB,EAAP,KAA+BC,EAA/B,KACA,EAAwCxwB,oBAAS,GAAjD,mBAAO6kE,EAAP,KAAsBC,EAAtB,KAEA3kE,qBAAU,WACR,IAAM4kE,EAAaxvC,EAAWn0B,QAAO,SAAA4jE,GAAI,OAAIA,EAAK13D,WAAaA,KAAU,GACrEy3D,GACFL,EAAqBK,EAAWl3E,QAEjC,CAAC0nC,EAAYjoB,IAEhB,IAAM23D,EAAU,SAAC1uD,GACf,IAAI2uD,EAAW,GAEbA,EADW,yBAAT3uD,EACSjJ,IAAaiJ,EAAb,yBAA+CA,EAE/CjJ,IAAaiJ,EAAb,WAAwBA,GAASA,EAE9C7W,EAAM0kE,eAAec,GACrBx1C,EAAYw1C,IAWRC,EAAsB,SAACl9D,EAAWkH,GACtCqhB,EAA0BvoB,GAC1B28D,EAAqBh1E,OAAOiU,OAAO,GAAIsL,KA2BnCyZ,EAA+B,2BAAbtb,EAAwC,sBAAwB,GAClFy+C,EAA+B,cAAbz+C,EAA2B,sBAAwB,GACrE83D,EAAgC,WAAb93D,EAAwB,sBAAwB,GACnE+3D,EAAgC,YAAb/3D,EAAyB,sBAAwB,GAE1E,OACE,sBAAK1N,UAAU,2BAA2BtE,MAAO,CAAEykC,UAAW,UAA9D,UACE,sBAAKngC,UAAU,MAAf,UACE,qBAAKA,UAAU,YAAf,SAA2B,cAAC,IAAD,CAAkBtK,GAAG,oBAAoBmM,eAAe,gBACnF,wBAAQ7K,KAAK,SAASgJ,UAAS,UAAKtE,KAAM8L,IAAX,YAAkB9L,KAAM,kBAAoBwE,QAAS,kBAAMJ,EAAM2F,QAAQ9H,KAAK,wBAA7G,SACE,8BAAK,uBAAMjC,MAAO,CAAE4gB,WAAY,QAA3B,eAAuC,cAAC,IAAD,CAAkB5mB,GAAG,cAAcmM,eAAe,wBAGlG,sBAAK7B,UAAWtE,KAAM8N,QAAtB,UACE,sBAAKxJ,UAAU,MAAf,UACE,sBAAKA,UAAU,qBAAf,cAAqC,cAAC,GAAD,CAAgByF,QAAS3F,EAAM2F,UAApE,OACA,qBAAKzF,UAAU,qBAAf,UAC6B,IAAzB2tC,GAAuD,IAAzBA,IAC9B,cAAC,GAAD,CAAcrf,UAAW22C,EAAe12C,aAAc,kBAAM22C,GAAgBD,WAIjFJ,EAAkBr3E,OAAS,GAC1B,sBAAKwS,UAAWtE,KAAM81B,MAAtB,UACGb,GACC,cAAC,GAAD,CAAoBuuB,aAjDR,WACtB,IAAMv0C,EAAQ5H,aAAauS,cAAuBvS,aAAauS,cAApB,KACrCowD,EAAW7sD,GAAYksD,EAAkBl4D,UAAW,CAAC,OAAQ,QAAS,iBACtE0C,EAAYvf,OAAOiU,OACvB,GACA8gE,EACA,CAAElI,WAAYkI,EAAkBlI,WAChC,CAAEhwD,UAAW64D,IAETvwE,EAAI,UAAMu8B,GAAkB/mB,GAAM,uBAA9B,YAAwDo6D,EAAkB94C,WAA1E,YAAwF84C,EAAkB74C,UAA1G,YACR64C,EAAkBlI,UAAYnrC,GAAkB/mB,GAAM,uBAAyB+mB,GAAkB/mB,GAAM,sBAEzG7K,EAAM6kE,cAAcp1D,GAAWrK,MAAK,WAClCwT,GAAUhU,IAAO5E,EAAM6Y,UAAW,CAChC3hB,KAAM,YACN7D,OAAQ,SACR6Z,OAAQyyC,EACRtqD,OACAoa,iBAGJg2D,GAAoB,EAAO,OA4BkCt9D,aAAcs9D,IAEnE,sBAAKvlE,UAAWtE,KAAM4jB,OAAtB,UACE,qBAAKtf,UAAWtE,KAAMioE,SAAtB,SACE,yBACE3jE,UAAWtE,KAAM,iBACjBA,MAAO,CAAE0G,OAAyC,IAAlCsL,EAAS9d,QAAQ,YAAqB,UAAY,QAClEsQ,QAAS,kBAAMmlE,EAAQ,aAHzB,UAKE,cAAC,IAAD,CAAkB3vE,GAAG,qBAAqBmM,eAAe,sBAAsB,cAAC,EAAD,CAAOlG,MAAM,KAAKC,OAAO,KAAKoE,UAAWmsD,SAG5H,qBAAKnsD,UAAWtE,KAAMib,KAAtB,SACE,yBACE3W,UAAWtE,KAAM,iBACjBA,MAAO,CAAE0G,OAA2C,IAApCsL,EAAS9d,QAAQ,cAAuB,UAAY,QACpEsQ,QAAS,kBAAMmlE,EAAQ,yBAHzB,UAKE,cAAC,IAAD,CAAkB3vE,GAAG,mBAAmBmM,eAAe,SAAS,cAAC,EAAD,CAAOlG,MAAM,KAAKC,OAAO,KAAKoE,UAAWgpB,SAG7G,qBAAKhpB,UAAWtE,KAAMs9B,MAAtB,SACE,yBACEh5B,UAAWtE,KAAM,iBACjBA,MAAO,CAAE0G,OAAsC,IAA/BsL,EAAS9d,QAAQ,SAAkB,UAAY,QAC/DsQ,QAAS,kBAAMmlE,EAAQ,UAHzB,kBAKO,cAAC,EAAD,CAAO1pE,MAAM,KAAKC,OAAO,KAAKoE,UAAWwlE,SAGlD,qBAAKxlE,UAAWtE,KAAMm6B,MAAtB,SACE,yBACE71B,UAAWtE,KAAM,iBACjBA,MAAO,CAAE0G,OAAuC,IAAhCsL,EAAS9d,QAAQ,UAAmB,UAAY,QAChEsQ,QAAS,kBAAMmlE,EAAQ,WAHzB,UAKE,cAAC,IAAD,CAAkB3vE,GAAG,kBAAkBmM,eAAe,UAAU,cAAC,EAAD,CAAOlG,MAAM,KAAKC,OAAO,KAAKoE,UAAWylE,SAG7G,qBAAKzlE,UAAWtE,KAAM,qBAGxB,qBAAKsE,UAAWtE,KAAM,cAAtB,SACGmpE,EACErjE,QAAO,SAAAywD,GAAG,OAAIA,EAAI1wD,OAAO/T,QAAU,KACnCmZ,KAAI,SAAA4I,GAAS,OA3GL,SAACA,GACtB,OAAIA,EAAUo2D,eAIPp2D,EAAUstD,WAAcoI,IAAkB11D,EAAUstD,YAAcvzD,GAAWC,IAuGtEq8D,CAAer2D,GAEb,cAAC,GAAD,CAEEA,UAAWA,EACXwb,UAAWA,EACXzhB,QAASA,EACTC,QAASA,EACTme,kBAAmB,aACnBzf,aAAcs9D,EACdl9D,UAAWsoB,GAPNphB,EAAU7Z,IAUjB,sB,oBCjKdmwE,GAAW,SAAC,GAQX,IAPHv8D,EAOE,EAPFA,QACAC,EAME,EANFA,QACAiN,EAKE,EALFA,MACAnO,EAIE,EAJFA,UACAqf,EAGE,EAHFA,kBACAzf,EAEE,EAFFA,aACA0pB,EACE,EADFA,aAEIhK,EAAe,WACnBD,EAAkB,KAEpB,OACE,sBAAoB1nB,UAAS,UAAKtE,KAAMmwB,IAAX,YAAkBrV,EAAMsV,WAAag6C,KAAgB/5C,QAAU,IAA5F,UACE,qBAAK/rB,UAAS,UAAKtE,KAAMutB,OAAX,YAAqBvtB,KAAMib,MAAzC,SAAkDJ,GAAcC,KAChE,qBAAKxW,UAAS,UAAKtE,KAAMutB,OAAX,YAAqBvtB,KAAM5B,MAAzC,SAAkD0c,EAAM1c,OACxD,qBAAKkG,UAAS,UAAKtE,KAAMutB,OAAX,YAAqBvtB,KAAMmgD,UAAzC,SAAsDxmC,GAAemB,EAAMqlC,YAC3E,sBAAK77C,UAAWtE,KAAM,gBAAtB,WACI4N,GAAWC,IAAYooB,IAAqC,IAArBnb,EAAMsV,YAC7C,cAAC,IAAD,CACE9rB,UAAU,oBACV4sB,YAAa,WAAQlF,EAAkB,cAAC,IAAD,CAAkBhyB,GAAG,qBAAqBmM,eAAe,aAChG2wB,WAAY7K,EACZ/lB,GAAE,gCAA2B4U,EAAM9gB,IAJrC,SAME,cAAC,GAAD,CAAMsK,UAAU,eAAerE,MAAM,KAAKC,OAAO,UAGnD0N,GAAWC,IAAYooB,IAAsC,IAAtBnb,EAAMC,aAC7C,wBACEzW,WAAgC,IAArBwW,EAAMsV,WAAuB,aAAe,+BACvDc,YAAa,WAAQlF,GAAuC,IAArBlR,EAAMsV,WAAuB,cAAC,IAAD,CAAkBp2B,GAAG,2BAA2BmM,eAAe,cAAiB,cAAC,IAAD,CAAkBnM,GAAG,wBAAwBmM,eAAe,gBAChN2wB,WAAY7K,EACZznB,QAAS,WAAamI,GAAaJ,GAAa,EAAMuO,IAJxD,UAMwB,IAArBA,EAAMsV,WAEL,mBAAG9rB,UAAU,mBAAmBtE,MAAO,CAAEuO,SAAU,GAAI7H,MAAO,OAAQuF,WAAY,KAElF,mBAAG3H,UAAU,2BAA2BtE,MAAO,CAAEuO,SAAU,GAAI7H,MAAO,OAAQuF,WAAY,YA1B1F6O,EAAM9gB,KAmCpBmwE,GAAS7kE,aAAe,CACtBsI,SAAS,EACTC,SAAS,EACTooB,cAAc,GAyBDk0C,UClFR,SAASE,GAAkB3kD,EAAQ1T,GACxC,MAAO,CAAE1W,KAAMsL,IAA2B8e,SAAQ1T,YAG7C,SAASs4D,GAASxvD,GACvB,MAAO,CAAExf,KAAMsL,IAAiBkU,SAG3B,SAASyvD,GAAazvD,GAC3B,MAAO,CAAExf,KAAMsL,IAAkBkU,SAG5B,SAAS0vD,KAA+C,IAApCx4D,EAAmC,uDAAxBM,EAC9BnW,EAAS+K,IACTY,EAAQH,IAEd,OAAO,SAACoB,EAAU4I,EAAX,OAAuB3I,EAAvB,EAAuBA,MAAvB,OAAmCC,QAAQC,QAChDF,EAAM4I,IAAN,kBACazV,GADb,OhNfO,kBgNeP,uDAC2E6V,GACzE,CAAE3I,QAAS,CAAEE,cAAc,SAAD,OAAWzB,MACrC0B,MAAK,SAACkc,GACN3c,EAASshE,GAAkB3kD,EAAOnzB,KAAMyf,OACvCtI,OAAM,SAACxU,GACJA,EAAM2c,UACsB,MAA1B3c,EAAM2c,SAASza,QACjB2R,EAAS2I,UAgCZ,SAAS+4D,GAAU3vD,GACxB,IAAM3e,EAAS+K,IACTY,EAAQH,IAEd,OAAO,SAACoB,EAAU4I,EAAX,OAAuB3I,EAAvB,EAAuBA,MAAvB,OAAmC,IAAIC,SAAQ,SAACC,EAASC,GAAV,OACpDH,EAAM,CACJvR,OAAQ,MACR2R,aAAc,OACdnV,IAAI,WAAD,OAAakI,GAAb,OhN/DE,kBgN+DF,kCAAsD2e,EAAM9gB,GAA5D,KACHzH,KAAMuoB,EACNzR,QAAS,CAAEE,cAAc,SAAD,OAAWzB,MAEpC0B,MAAK,kBAAMN,EAAQH,EAASwhE,GAAazvD,QACzCpR,OAAM,SAACxU,GACN,OAAIA,EAAM2c,SACsB,MAA1B3c,EAAM2c,SAASza,OACV+R,EAAOJ,EAAS2I,MAElBvI,EAAOjU,EAAM2c,UAEf1I,EAAO,W,WCxDPuhE,GAAb,oDACE,WAAYtmE,GAAQ,IAAD,+BACjB,cAAMA,IACDhB,MAAQ,CACXwK,QAAkC,IAAzB,EAAKxJ,MAAM2V,UACpBlM,QAAkC,IAAzB,EAAKzJ,MAAM2V,UACpB2L,OAAO,YAAK,EAAKthB,MAAMshB,QACvBilD,mBAAel6E,EACfuhB,SAAUM,GACVs4D,eAAe,EACfC,eAAe,EACfz9C,WAAY,GACZ09C,mBAAmB,EACnB74D,KAAM,EACNya,WrJxCoB,GqJyCpBq+C,UAAW,GACXp+D,WAAW,EACXmO,MAAO,GACP8X,WAAW,GAEb,EAAKzF,YAAc,EAAKA,YAAY73B,KAAjB,iBACnB,EAAK01E,YAAc,EAAKA,YAAY11E,KAAjB,iBACnB,EAAK21E,gBAAkB,EAAKA,gBAAgB31E,KAArB,iBACvB,EAAK02B,kBAAoB,EAAKA,kBAAkB12B,KAAvB,iBACzB,EAAKiX,aAAe,EAAKA,aAAajX,KAAlB,iBACpB,EAAK41E,YAAc,EAAKA,YAAY51E,KAAjB,iBACnB,EAAKm3B,QAAU,EAAKA,QAAQn3B,KAAb,iBACf,EAAKu9B,aAAe,EAAKA,aAAav9B,KAAlB,iBA1BH,EADrB,sDA8BE,WACEiI,KAAK4tE,SAAS5tE,KAAK6F,MAAM4O,YA/B7B,gCAkCE,SAAmB8sB,GAAY,IAAD,OAC5B,GAAIvhC,KAAK6G,MAAMshB,SAAWoZ,EAAUpZ,OAAQ,CAC1CnoB,KAAKulB,SAAS,CAAE4C,OAAO,YAAKnoB,KAAK6G,MAAMshB,UACvC,IAAMilD,EAAgBptE,KAAK6G,MAAMshB,OAAO5f,QAAO,SAAAgV,GAAK,OAAIA,EAAM9I,WAAa,EAAK5O,MAAM4O,YAAU,GAChGzU,KAAKulB,SAAS,CAAE6nD,cAAeA,EAAcp4E,OAG3CgL,KAAK6G,MAAM2V,YAAc+kB,EAAU/kB,WACrCxc,KAAKulB,SAAS,CACZlV,QAAkC,IAAzBrQ,KAAK6G,MAAM2V,UACpBlM,QAAkC,IAAzBtQ,KAAK6G,MAAM2V,cA5C5B,qBAiDE,SAAQ9H,GACN1U,KAAKulB,SAAS,CAAE7Q,WAlDpB,sBAqDE,SAASD,GACP,IAAM24D,EAAgBptE,KAAK6F,MAAMsiB,OAAO5f,QAAO,SAAAgV,GAAK,OAAIA,EAAM9I,WAAaA,KAAU,GACjFzU,KAAK6F,MAAMsiB,OAAO5zB,QAAU,IAAM64E,EACpCptE,KAAK6G,MAAMomE,WAAWx4D,GAEtBzU,KAAKulB,SAAS,CAAE6nD,cAAeA,EAAcp4E,SA1DnD,+BA8DE,SAAkB66B,GAChB7vB,KAAKulB,SAAS,CAAEsK,iBA/DpB,0BAkEE,SAAazgB,EAAWmO,GACtBvd,KAAKulB,SAAS,CACZnW,YACAmO,MAAOxmB,OAAOiU,OAAO,GAAIuS,OArE/B,yBAyEE,WAAe,IAAD,OACN7L,EAAQ5H,aAAauS,cAAuBvS,aAAauS,cAApB,KAErCkB,GADevd,KAAK6F,MAAlB4O,SACM1d,OAAOiU,OACnB,GACAhL,KAAK6F,MAAM0X,MACX,CAAEsV,YAAa7yB,KAAK6F,MAAM0X,MAAMsV,cAElC7yB,KAAK6G,MAAMqmE,UAAU3vD,GAAOtR,MAAK,WAC/B,IAAM/P,EAAI,UAAMu8B,GAAkB/mB,GAAM,mBAA9B,aAAqD6L,EAAM1c,KAA3D,aAAoE0c,EAAMG,KAA1E,YACRH,EAAMsV,WAAa4F,GAAkB/mB,GAAM,qBAAuB+mB,GAAkB/mB,GAAM,wBAC5F+N,GAAUhU,IAAO,EAAK5E,MAAM6Y,UAAW,CACrC3hB,KAAM,QACN7D,OAAQ,OACR6Z,OAAQ,EAAKlN,MAAM4D,KAAKhO,GACxBP,OACAqhB,aAGJvd,KAAKgP,cAAa,EAAO,MA5F7B,yBA+FE,WACE,IAAMyF,EAAmC,SAAxBzU,KAAK6F,MAAM4O,SAAsB,QAAU,OAC5DzU,KAAKulB,SAAS,CAAE9Q,aAChBzU,KAAK4tE,SAASn5D,KAlGlB,yBAqGE,WACE,IAAMA,EAAmC,SAAxBzU,KAAK6F,MAAM4O,SAAsB,QAAU,OAC5DzU,KAAKulB,SAAS,CAAE9Q,aAChBzU,KAAK4tE,SAASn5D,KAxGlB,6BA2GE,WACE,IAAMA,EAAmC,aAAxBzU,KAAK6F,MAAM4O,SAA0B,YAAc,WACpEzU,KAAKulB,SAAS,CAAE9Q,aAChBzU,KAAK4tE,SAASn5D,KA9GlB,0BAiHE,WACEzU,KAAKulB,UAAS,SAAAijB,GAAS,MAAK,CAC1BnT,WAAYmT,EAAUnT,gBAnH5B,oBAuHE,WAAU,IAAD,OACDlN,EAASnoB,KAAK6F,MAAMunE,cACpBS,GAAa7tE,KAAK6F,MAAM6O,KAAO,GAAK1U,KAAK6F,MAAMspB,WAC/C2+C,EAAW9tE,KAAK6F,MAAM6O,KAAO1U,KAAK6F,MAAMspB,WACxCY,EAA0C,UAAxB/vB,KAAK6F,MAAM4O,SAAuB,sBAAwB,GAC5Es5D,EAA0C,UAAxB/tE,KAAK6F,MAAM4O,SAAuB,sBAAwB,GAC5E4yC,EAA8C,cAAxBrnD,KAAK6F,MAAM4O,SAA2B,sBAAwB,GACpFikB,EAAe14B,KAAK6G,MAAMoB,iBACkB,IAA7CjI,KAAK6G,MAAMoB,gBAAgBK,OAAO/T,OACvC,EAA6ByL,KAAK6F,MAA1BwK,EAAR,EAAQA,QAASC,EAAjB,EAAiBA,QACjB,OACE,sBAAKvJ,UAAU,2BAA2BtE,MAAO,CAAEykC,UAAW,UAA9D,UACE,sBAAKngC,UAAU,MAAf,UACE,qBAAKA,UAAU,YAAf,SAA2B,cAAC,IAAD,CAAkBtK,GAAG,oBAAoBmM,eAAe,gBACjF5I,KAAK6G,MAAMoB,iBAAgE,IAA7CjI,KAAK6G,MAAMoB,gBAAgBK,OAAO/T,QAChE,wBAAQwJ,KAAK,SAASgJ,UAAWtE,KAAM8L,IAAKtH,QAAS,kBAAM,EAAKJ,MAAM2F,QAAQ9H,KAAK,yBAAnF,SACE,8BACE,uBAAMjC,MAAO,CAAE4gB,WAAY,QAA3B,eAAuC,cAAC,IAAD,CAAkB5mB,GAAG,cAAcmM,eAAe,wBAKjG,cAAC,GAAD,CAAgB4D,QAASxM,KAAK6G,MAAM2F,UAXtC,KAWoD6D,GAAWC,IACtDtQ,KAAK6G,MAAMoB,iBAAgE,IAA7CjI,KAAK6G,MAAMoB,gBAAgBK,OAAO/T,QAC9D,cAAC,GAAD,CAAc8gC,UAAWr1B,KAAK6F,MAAMwvB,UAAWC,aAAct1B,KAAKs1B,eAE3E,qBAAKvuB,UAAWtE,KAAM8N,QAAtB,SACI4X,GACF,sBAAKphB,UAAWtE,KAAM81B,MAAtB,UACE,cAAC,GAAD,CACEhJ,WAAY9sB,KAAM+kD,SAClBp4B,iBAAkBjH,EAAO5zB,OACzB46B,WAAYnvB,KAAK6F,MAAMspB,WACvBD,QAASlvB,KAAKkvB,QACdxa,KAAM1U,KAAK6F,MAAM6O,OAElB1U,KAAK6F,MAAMuJ,WACV,cAAC,GAAD,CACE62C,aAAcjmD,KAAK2tE,YACnB3+D,aAAchP,KAAKgP,eAGvB,sBAAKjI,UAAWtE,KAAM4jB,OAAtB,UACE,qBAAKtf,UAAWtE,KAAMib,KAAtB,SACE,yBACE3W,UAAWtE,KAAM,iBACjBwE,QAASjH,KAAK4vB,YACdntB,MAAO,CAAE0G,MAA+B,SAAxBnJ,KAAK6F,MAAM4O,UAA+C,UAAxBzU,KAAK6F,MAAM4O,SAAuB,UAAY,QAHlG,UAKE,cAAC,IAAD,CAAkBhY,GAAG,cAAcmM,eAAe,SAAS,cAAC,EAAD,CAAOlG,MAAM,KAAKC,OAAO,KAAKoE,UAAWgpB,SAGxG,qBAAKhpB,UAAWtE,KAAM5B,KAAtB,SACE,yBACEkG,UAAWtE,KAAM,iBACjBwE,QAASjH,KAAKytE,YACdhrE,MAAO,CAAE0G,MAA+B,SAAxBnJ,KAAK6F,MAAM4O,UAA+C,UAAxBzU,KAAK6F,MAAM4O,SAAuB,UAAY,QAHlG,UAKE,cAAC,IAAD,CAAkBhY,GAAG,cAAcmM,eAAe,cAAW,cAAC,EAAD,CAAOlG,MAAM,KAAKC,OAAO,KAAKoE,UAAWgnE,SAG1G,qBAAKhnE,UAAWtE,KAAMmgD,SAAtB,SACE,yBACE77C,UAAWtE,KAAM,iBACjBwE,QAASjH,KAAK0tE,gBACdjrE,MAAO,CAAE0G,MAA+B,aAAxBnJ,KAAK6F,MAAM4O,UAAmD,cAAxBzU,KAAK6F,MAAM4O,SAA2B,UAAY,QAH1G,UAKE,cAAC,IAAD,CAAkBhY,GAAG,kBAAkBmM,eAAe,eAAe,cAAC,EAAD,CAAOlG,MAAM,KAAKC,OAAO,KAAKoE,UAAWsgD,SAGlH,qBAAKtgD,UAAWtE,KAAM,gBAAtB,SAAwCzC,KAAK6F,MAAMgqB,gBAErD,qBAAK9oB,UAAU,qDAAf,SACGohB,EACEnwB,MAAM61E,EAAWC,GACjBpgE,KAAI,SAAA6P,GAAK,OACc,IAArBA,EAAMsV,aACqB,IAAzB,EAAKhtB,MAAMwvB,YACW,IAArB9X,EAAMsV,aACmB,KAAxBxiB,GAAWC,GACV,cAAC,GAAD,CAEEiN,MAAOA,EACPnO,UAAW,EAAKvJ,MAAMuJ,UACtBqf,kBAAmB,EAAKA,kBACxBpe,QAASA,EACTC,QAASA,EACTooB,aAAcA,EACd1pB,aAAc,EAAKA,cAPduO,EAAM1c,MAUb,sBAlNxB,GAAqC2Z,IAAMC,WAuR5BzZ,0BAhBf,SAAyB6E,EAAOmC,GAC9B,MAAO,CACLmgB,OAAQtiB,EAAMsiB,OACdlgB,gBAAiBpC,EAAMoC,gBACvBwC,KAAM5E,EAAMoC,gBACZuU,eAA4CtpB,IAAjC2S,EAAMoC,gBAAgBK,QAAwB,EAAIzC,EAAMoC,gBAAgBK,OAAO,OAI9F,SAA4BkD,GAC1B,MAAO,CACLyhE,WAAY,SAAAx4D,GAAQ,OAAIjJ,EAASwiE,GAAyBv5D,KAC1Dy4D,UAAW,SAAA3vD,GAAK,OAAI/R,EAASwiE,GAAwBzwD,QAI1Cvc,CAA6CmsE,I,qBCjM7Cc,GAxGY,SAACpnE,GAC1B,IAAMqnE,EACG,EADHA,EAEQ,EAFRA,EAGK,EAHLA,GAII,EAEJC,EAAY,CAChBz8C,QAAS7qB,EAAMunE,cACfC,gBAAiBxnE,EAAMynE,uBAEzB,EAAgCnnE,mBAAS+mE,GAAzC,mBAAOK,EAAP,KAAoBC,EAApB,KACA,EAAsCrnE,oBAAS,GAA/C,mBAAOsnE,EAAP,KAAoBC,EAApB,KACA,EAAgCvnE,mBAAS,IAAzC,mBAAOu6B,EAAP,KAAiBqD,EAAjB,KA0BA,OACE,sBAAKh+B,UAAWtE,KAAM3E,QAAtB,UACGywE,IAAgBL,GACf,gCACE,qBAAKnnE,UAAWtE,KAAMyM,MAAtB,SAA6B,cAAC,IAAD,CAAkBzS,GAAG,+BAA+BmM,eAAe,YAChG,qBAAK7B,UAAWtE,KAAMvG,KAAtB,SAA4B,cAAC,IAAD,CAAkBO,GAAG,4BAA4BmM,eAAe,iKAC5F,qBAAK7B,UAAWtE,KAAMvG,KAAtB,SAA4B,cAAC,IAAD,CAAkBO,GAAG,yBAAyBmM,eAAe,mEACzF,sBAAK7B,UAAWtE,KAAMksE,WAAtB,UACE,cAAC,IAAD,CAAkBlyE,GAAG,6BAA6BmM,eAAe,sDACjE,qBAAK7B,UAAWtE,KAAMmsE,kBAAtB,SACE,cAAC,GAAD,CAAelxD,KAAK,cAAc3W,UAAU,eAAes6B,QAASotC,EAAal6C,SAAU,kBAAMm6C,GAAgBD,WAGrH,sBAAK1nE,UAAU,gBAAgBtE,MAAO,CAACiM,WAAY,QAAnD,UACE,yBAAQjS,GAAG,iBAAiBsB,KAAK,SAASgJ,UAAU,qDAAqDE,QAAS,kBAAMJ,EAAMutB,cAA9H,UACE,+BACE,mBAAGrtB,UAAU,sBAAsB,cAAY,OAAOtE,MAAO,CAACgM,aAAa,OAAOC,WAAY,cAEhG,cAAC,IAAD,CAAkBjS,GAAG,mBAAmBmM,eAAe,cAEzD,yBAAQnM,GAAG,kBAAkBsB,KAAK,SAASgJ,UAAU,uDAAuDE,QAAS,kBA3C7HunE,EAASN,QAETC,EADkBM,EAAc,kBAAoB,WAC/B5nE,EAAMwB,WAAW4D,MAAK,SAACC,GAC1CrF,EAAMgoE,mBAAmB,KACzBL,EAASN,GACTr2E,QAAQC,IAAIoU,MACXC,OAAM,SAAC+hB,GACR,IAAMl5B,EAAOk5B,EAAIl5B,KACjBw5E,EAASN,GACLl5E,EAAK85E,aACP/pC,EACE,cAAC,IAAD,CAAkBtoC,GAAG,iCAAiCmM,eAAe,sFAIrE5T,EAAK+5E,WACPhqC,EACE,cAAC,IAAD,CAAkBtoC,GAAG,+BAA+BmM,eAAe,yDA0BjE,UACE,+BACE,mBAAG7B,UAAU,oBAAoB,cAAY,OAAOtE,MAAO,CAACgM,aAAa,OAAOC,WAAY,cAE9F,cAAC,IAAD,CAAkBjS,GAAG,oBAAoBmM,eAAe,iBAK/D2lE,IAAgBL,GACf,cAAC,GAAD,CAAShyE,KAAM,cAAC,IAAD,CAAkBO,GAAG,yBAAyBmM,eAAe,iBAE7E2lE,IAAgBL,GACf,gCACE,qBAAKnnE,UAAWtE,KAAMvG,KAAtB,SAA4B,cAAC,IAAD,CAAkBO,GAAG,yBAAyBmM,eAAe,oCACzF,qBAAK7B,UAAU,gBAAgBtE,MAAO,CAACiM,WAAY,QAAnD,SACE,wBAAQjS,GAAG,mBAAmBsB,KAAK,SAASgJ,UAAU,uCAAuCE,QAAS,kBAAMJ,EAAMutB,cAAlH,qBAMLm6C,IAAgBL,GACf,gCACE,qBAAKnnE,UAAWtE,KAAMvG,KAAtB,SAA4B,cAAC,IAAD,CAAkBO,GAAG,4BAA4BmM,eAAe,oDAC5F,qBAAK7B,UAAWtE,KAAMvG,KAAtB,SAA6BwlC,IAC7B,qBAAK36B,UAAU,gBAAgBtE,MAAO,CAACiM,WAAY,QAAnD,SACE,wBAAQjS,GAAG,mBAAmBsB,KAAK,SAASgJ,UAAU,uCAAuCE,QAAS,kBAAMJ,EAAMutB,cAAlH,yB,oBCpFN46C,GAAiB,SAAC,GASjB,IARL3+D,EAQI,EARJA,QACAC,EAOI,EAPJA,QACAgG,EAMI,EANJA,UACAlH,EAKI,EALJA,UAEAJ,GAGI,EAJJyf,kBAII,EAHJzf,cACA/G,EAEI,EAFJA,gBACAI,EACI,EADJA,UAGMmiE,EAAal6D,GAAWD,EACxBo6D,EAAyC,IAAxBn0D,EAAUhO,OAAO,IAA0C,IAA9BL,EAAgBK,OAAO,IACrEgO,EAAUhO,OAAO,KAAOL,EAAgBK,OAAO,GAErD,OACE,sBAAwBvB,UAAS,UAAKtE,KAAMmwB,IAAX,YAAkBtc,EAAUstD,UAAY,GAAKnhE,KAAMqwB,SAApF,UACE,qBAAK/rB,UAAS,UAAKtE,KAAMutB,OAAX,YAAqBi/C,KAAUvE,UAA7C,SAA0Dp0D,EAAUo0D,WACpE,sBAAK3jE,UAAS,UAAKtE,KAAMutB,OAAX,YAAqBi/C,KAAUvxD,MAA7C,UAAsDpH,EAAU0c,WAAhE,IAA6E1c,EAAU2c,aACvF,qBAAKlsB,UAAS,UAAKtE,KAAMutB,OAAX,YAAqBi/C,KAAUlvC,OAA7C,SAAuDzpB,EAAUypB,QACjE,qBAAKh5B,UAAWtE,KAAM,gBAAtB,UACI+nE,GAAcC,IAChB,gCACE,cAAC,IAAD,CACE1jE,UAAWtE,KAAMswB,QACjBpqB,GAAE,yBAAoBN,EAApB,2BAAgDiO,EAAU7Z,IAF9D,SAIE,cAAC,GAAD,CAAMsK,UAAWtE,KAAMkR,MAAOjR,MAAM,KAAKC,OAAO,SALpD,IAMU,sBAAMF,MAAO,CAAE2gB,YAAa,UACV,IAAxB9M,EAAUhO,OAAO,IAAYgO,EAAU7Z,KAAOwL,EAAgBxL,IAC9D,wBACEwK,QAAS,WAAamI,GAAaJ,GAAa,EAAMsH,EAAU7Z,KAChEgG,MAtBK,CAAEG,OAAQ,EAAGuQ,gBAAiB,cAAewf,QAAS,GAoB7D,UAI2B,IAAxBrc,EAAUstD,UACT,qBAAK78D,UAAWtE,KAAMswB,QAAtB,SACE,mBAAGhsB,UAAU,mBAAmBtE,MAAO,CAAEuO,SAAU,GAAI7H,MAAO,OAAQuF,WAAY,cAIpF,qBAAK3H,UAAWtE,KAAMswB,QAAtB,SACE,mBAAGhsB,UAAU,2BAA2BtE,MAAO,CAAEuO,SAAU,GAAI7H,MAAO,OAAQuF,WAAY,uBAzB9F4H,EAAU7Z,KAuCxBuyE,GAAejnE,aAAe,CAC5BsI,SAAS,EACTC,SAAS,GA6DItP,0BANf,SAAyB6E,EAAOmC,GAC9B,MAAO,CACLC,gBAAiBpC,EAAMoC,mBAIZjH,CAAyBguE,ICOzBE,GA9HI,SAACroE,GAAW,IAAD,EAC5B,EAA0CM,oBAAS,GAAnD,mBAAOywB,EAAP,KAAsBC,EAAtB,KAEA,OACE,sBAAK9wB,UAAWtE,KAAM0sE,iBAAtB,UACI,qBAAKpoE,UAAWtE,KAAM2sE,sBAAtB,SACGvoE,EAAMwoE,cACL,sBAAKtoE,UAAWtE,KAAM6sE,aAAtB,cAAuCzoE,EAAM6qB,QAAQhU,KAArD,SAGJ,8BACE,wBACE3f,KAAK,SACLgJ,UAAWtE,KAAM8sE,UACjBtoE,QAAS,kBAAMJ,EAAM2F,QAAQ9H,KAAd,yBAAqCmC,EAAM6qB,QAAQj1B,GAAnD,oBAHjB,SAKE,qCACE,sBAAMgG,MAAO,CAAE4gB,WAAY,QAA3B,gBADF,IACiD,cAAC,IAAD,CAAkB5mB,GAAG,sBAAsBmM,eAAe,kBAI/G,8BACE,wBACE7K,KAAK,SACLgJ,UAAWtE,KAAM+sE,QACjBvoE,QAAS,kBAAMJ,EAAM2F,QAAQ9H,KAAd,mCAA+CmC,EAAM6qB,QAAQj1B,MAH9E,SAKE,qCACE,mBACEsK,UAAU,cACVtE,MAAO,CAAE0G,MAAO,OAAQC,WAAY,KAAM0E,YAAa,QACvD,cAAY,SAEd,cAAC,IAAD,CAAkBrR,GAAG,iBAAiBmM,eAAe,kBAI3B,IAA/B/B,EAAM6tC,sBACL,8BACE,wBACE32C,KAAK,SACLgJ,UAAWtE,KAAMgtE,UACjBxoE,QAASJ,EAAM6oE,gBAHjB,SAKE,qCACE,mBACE3oE,UAAU,gBACVtE,MAAO,CAAE0G,MAAO,OAAQC,WAAY,KAAM0E,YAAa,QACvD,cAAY,SAEd,cAAC,IAAD,CAAkBrR,GAAG,mBAAmBmM,eAAe,4BAKhC,IAA/B/B,EAAM6tC,sBAA6D,IAA/B7tC,EAAM6tC,uBAC1C,cAAC,GAAD,CACErf,UAAWuC,EACXtC,aAAc,kBAAMuC,GAAkBD,MAG1C,sBAAK7wB,UAAWtE,KAAM81B,MAAtB,UACE,sBAAKxxB,UAAWtE,KAAM4jB,OAAtB,UACE,qBAAKtf,UAAWtE,KAAMioE,SAAtB,SACE,cAAC,IAAD,CAAkBjuE,GAAG,qBAAqBmM,eAAe,wBAE3D,qBAAK7B,UAAWtE,KAAMib,KAAtB,SACE,cAAC,IAAD,CAAkBjhB,GAAG,mBAAmBmM,eAAe,WAEzD,qBAAK7B,UAAWtE,KAAMs9B,MAAtB,qBACA,qBAAKh5B,UAAWtE,KAAMktE,iBAGxB,qBAAK5oE,UAAWtE,KAAMxI,KAAtB,mBACG4M,EAAM6qB,eADT,aACG,EAAes5C,SACbx2C,MAAK,SAACo7C,EAAOC,GAAR,OAAkBA,EAAMjM,UAAYgM,EAAMhM,aAC/Cr7D,QAAO,SAAAkC,GACN,OAAKmtB,EAGEntB,GAFoB,IAAlBA,EAAKm5D,aAIfl2D,KAAI,SAAAjD,GAAI,OACP,cAAC,GAAD,CAEE6L,UAAW7L,EACXpC,UAAWxB,EAAM6qB,QAAQj1B,GACzB4T,SAAO,EACPC,SAAO,EACPtB,aAAcnI,EAAMmI,aACpBI,WAAW,GANN3E,EAAKhO,gBCrFnB,SAASqzE,KACd,IAAMlxE,EAAS+K,IACTY,EAAQH,IAEd,OAAO,SAACoB,EAAU4I,EAAX,OAAuB3I,EAAvB,EAAuBA,MAAvB,OAAmCC,QAAQC,QAC9CF,EAAM4I,IAAN,kBAAqBzV,GAArB,OrNNK,kBqNML,qBAAyD,CACvDkN,QAAS,CAAEE,cAAc,SAAD,OAAWzB,MAClC0B,MAAK,SAAC3D,GACP,IAAMynE,EAAaznE,EAAOtT,KAAKT,OAAS,EAAI+T,EAAOtT,MAAQ,EAC3DwW,EAbD,SAA2BlD,GAChC,MAAO,CAAEvK,KAAMsL,IAA2Bf,UAY3B0nE,CAAkBD,OAC1B5jE,OAAM,SAACxU,GACJA,EAAM2c,UACsB,MAA1B3c,EAAM2c,SAASza,QACjB2R,EAAS2I,UCkNNnT,I,GAAAA,sBAnBf,SAAyB6E,EAAOmC,GAC9B,MAAO,CACLC,gBAAiBpC,EAAMoC,gBACvBysC,qBAAsB7uC,EAAMoC,gBAAgBK,OAAO,GACnDqpB,UAAW9rB,EAAMyC,OAAOC,QAAO,SAAAC,GAAG,OAAK,CAAC,EAAG,EAAG,EAAG,GAAGC,SAASD,EAAI/L,OACjEijB,UAAW1X,EAAS0X,UACpBgd,WAAY72B,EAAM62B,WAAW,GAAG1nC,SAIpC,SAA4BwW,GAC1B,MAAO,CACLkgE,cAAe,SAAAp1D,GAAS,OAAI9K,EAASmgE,GAAgCr1D,KACrE25D,YAAa,SAAChwB,GAAD,OAAaz0C,ED5KvB,SAAqBy0C,GAC1B,IAAMrhD,EAAS+K,IACTY,EAAQH,IAEd,OAAO,SAACoB,EAAU4I,EAAX,OAAuB3I,EAAvB,EAAuBA,MAAvB,OAAmC,IAAIC,SAAQ,SAACC,EAASC,GAAV,OACpDH,EAAM,CACJvR,OAAQ,SACR2R,aAAc,OACdnV,IAAI,WAAD,OAAakI,GAAb,OrNtDE,kBqNsDF,4BAAgDqhD,EAAhD,KACHn0C,QAAS,CAAEE,cAAc,SAAD,OAAWzB,MAEpC0B,MAAK,kBAAMN,EAAQH,EAASskE,UAC5B3jE,OAAM,SAACxU,GACN,OAAIA,EAAM2c,SACsB,MAA1B3c,EAAM2c,SAASza,OACV+R,EAAOJ,EAAS2I,MAElBvI,EAAOjU,EAAM2c,UAEf1I,EAAO,WCyJmBskE,CAA0BjwB,KAC7DkwB,oBAAqB,SAAClwB,GAAD,OAAaz0C,EDrJ/B,SAA6By0C,GAClC,IAAMrhD,EAAS+K,IACTY,EAAQH,IAEd,OAAO,SAACoB,EAAU4I,EAAX,OAAuB3I,EAAvB,EAAuBA,MAAvB,OAAmC,IAAIC,SAAQ,SAACC,EAASC,GAAV,OACpDH,EAAM,CACJvR,OAAQ,SACR2R,aAAc,OACdnV,IAAI,WAAD,OAAakI,GAAb,OrN9EE,kBqN8EF,uBAA2CqhD,EAA3C,WACHn0C,QAAS,CAAEE,cAAc,SAAD,OAAWzB,MAEpC0B,MAAK,kBAAMN,EAAQH,EAASskE,UAC5B3jE,OAAM,SAACxU,GACN,OAAIA,EAAM2c,SACsB,MAA1B3c,EAAM2c,SAASza,OACV+R,EAAOJ,EAAS2I,MAElBvI,EAAOjU,EAAM2c,UAEf1I,EAAO,WCkI2BskE,CAAkCjwB,KAC7E6vB,WAAY,kBAAMtkE,EAAS0kE,UAIhBlvE,EAtNK,SAAC6F,GAAW,IAAD,EACvBwoE,EAAexoE,EAAM8qB,UAAU7e,MACnC,SAAA4e,GAAO,OAAI7qB,EAAMoB,gBAAgBK,OAAOG,SAASipB,EAAQj1B,OAG3D,EAA8C0K,mBAAS,KAAvD,mBAAOipE,EAAP,KAAwBvB,EAAxB,KACA,EAAsC1nE,wBAASjU,GAA/C,mBAAOywE,EAAP,KAAoBsC,EAApB,KACA,EAA8C9+D,oBAAS,GAAvD,mBAAOkpE,EAAP,KAAwBC,EAAxB,KACA,EAAkCnpE,oBAAS,GAA3C,mBAAOiI,EAAP,KAAkBO,EAAlB,KAEArI,qBAAU,WACR,GAAI+nE,EACFR,EACEhoE,EAAM8qB,UAAU1nB,MAAK,SAAAynB,GAAO,OAC1B7qB,EAAMoB,gBAAgBK,OAAOG,SAASipB,EAAQj1B,OAC9CA,QAEC,CACL,IAAM+2C,EAAW1pC,aAAaymE,QAAQ,mBAClC1pE,EAAM8qB,UAAU7e,MAAK,SAAA4e,GAAO,OAAIA,EAAQj1B,KAAO+a,SAASg8B,OAC1Dq7B,EAAmBr7B,MAGtB,CAAC3sC,EAAM8qB,UAAW9qB,EAAMoB,gBAAiBonE,IAE5C,IAAMrgE,EAAe,SAACi4C,EAAM3wC,GAC1B3G,EAAas3C,GACbgf,EAAe3vD,IA6BjB,OACE,sBAAKvP,UAAU,2BAA2BtE,MAAO,CAAEykC,UAAW,UAA9D,UACE,sBAAKngC,UAAU,MAAf,UACE,qBAAKA,UAAU,YAAf,SACE,cAAC,IAAD,CAAkBtK,GAAG,oBAAoBmM,eAAe,iBAExDymE,GACA,wBAAQtxE,KAAK,SAASgJ,UAAWtE,KAAM8L,IAAKtH,QAAS,kBAAMJ,EAAM2F,QAAQ9H,KAAK,4BAA9E,SACE,8BACE,uBAAMjC,MAAO,CAAE4gB,WAAY,QAA3B,eAAuC,cAAC,IAAD,CAAkB5mB,GAAG,cAAcmM,eAAe,wBAKjG,cAAC,GAAD,CAAgB4D,QAAS3F,EAAM2F,UAC9B6jE,GACC,cAAC,GAAD,CACEj8C,WAAY,kBAAMk8C,GAAmB,IACrCjoE,UAAW+nE,EACXhC,cAAevnE,EAAMopE,YACrB3B,sBAAuBznE,EAAMspE,oBAC7BtB,mBAAoBA,IAGvBz/D,GACC,cAAC,GAAD,CACE62C,aApDgB,WACtB,IAAM3vC,EAAYzP,EAAM61B,WAAWzyB,MAAK,SAAA+uD,GAAG,OAAIA,EAAIv8D,KAAOknE,KACpD8I,EAAW7sD,GAAYtJ,EAAU1C,UAAW,CAAC,OAAQ,QAAS,iBAC9D48D,EAAoBz5E,OAAOiU,OAC/B,GACAsL,EACA,CAAEstD,WAAYttD,EAAUstD,WACxB,CAAEhwD,UAAW64D,IAET/6D,EAAQ5H,aAAauS,cAAuBvS,aAAauS,cAApB,KACrCngB,EAAI,UAAMu8B,GAAkB/mB,GAAM,uBAA9B,YAAwD8+D,EAAkBx9C,WAA1E,YAAwFw9C,EAAkBv9C,UAA1G,YACRu9C,EAAkB5M,UAAYnrC,GAAkB/mB,GAAM,uBAAyB+mB,GAAkB/mB,GAAM,sBAEzG7K,EAAM6kE,cAAc8E,GAAmBvkE,MAAK,WAC1CpF,EAAMipE,aACNrwD,GAAUhU,IAAO5E,EAAM6Y,UAAW,CAChC3hB,KAAM,YACN7D,OAAQ,SACR6Z,OAAQlN,EAAMoB,gBAAgBxL,GAC9B6Z,UAAWk6D,EACXt0E,YAGJ8S,GAAa,EAAO,OA8BdA,aAAcA,IAGlB,sBAAKjI,UAAWtE,KAAM8N,QAAtB,WACI8+D,GACA,yBACE5yE,GAAG,mBACHsK,UAAU,gBACVvT,MAAO48E,EACP77C,SAAU,SAACl/B,GACT,IAAM7B,EAAQ6B,EAAEgY,OAAO7Z,MACvBq7E,EAAmBx5E,EAAEgY,OAAO7Z,OAC5BsW,aAAaK,QAAQ,kBAAmB3W,IAP5C,UAUE,wBAAQA,MAAO,EAAf,kBACC,UAAAqT,EAAM8qB,iBAAN,eAAiBp9B,QAAS,GAAKsS,EAAM8qB,UAAU6C,MAAK,SAACC,EAAOC,GAAR,OAAkBD,EAAM/W,KAAKiX,cAAcD,EAAMhX,SAAOhQ,KAAI,SAAAgkB,GAAO,OACtH,wBAAyBl+B,MAAOk+B,EAAQj1B,GAAxC,SAA6Ci1B,EAAQhU,MAAxCgU,EAAQj1B,UAIK,IAA9B+a,SAAS44D,IACT,cAAC,GAAD,CACEf,aAAcA,EACd39C,QAAS7qB,EAAM8qB,UAAU1nB,MAAK,SAAAynB,GAAO,OAAIA,EAAQj1B,KAAO+a,SAAS44D,MACjE17B,qBAAsB7tC,EAAM6tC,qBAC5B1lC,aAAcA,EACd0gE,gBAAiB,kBAAMY,GAAmB,IAC1C9jE,QAAS3F,EAAM2F,mB,UC9HdikE,GAAmB3vB,aAAH,0OCed4vB,I,MAAAA,GAdf,SAA2BnmE,EAAOkK,GAChC,MAAiCugB,aAASy7C,GAAkB,CAC1DvvB,UAAW,CAAE32C,QAAOkK,YACpBk8D,MAAOpmE,EACPqmE,aAAc,MAHR57E,EAAR,EAAQA,KAAMwhC,EAAd,EAAcA,QAAS7+B,EAAvB,EAAuBA,MAMvB,MAAO,CACL3C,KAAI,OAAEA,QAAF,IAAEA,OAAF,EAAEA,EAAM67E,qBACZr6C,UACA7+B,U,oBC4GWm5E,GA9Gc,SAACjqE,GAC5B,MAAgCM,mBAAS,mBAAzC,mBAAOsN,EAAP,KAAiBoiB,EAAjB,KACA,EAAgC65C,GAAkB9mE,eAAeS,YAAaoK,GAAtEzf,EAAR,EAAQA,KAAMwhC,EAAd,EAAcA,QAAS7+B,EAAvB,EAAuBA,MAEjBo4B,EAA+B,UAAbtb,EAAuB,sBAAwB,GACjEs8D,EAAsC,kBAAbt8D,EAA+B,sBAAwB,GAChF+3D,EAAgC,WAAb/3D,EAAwB,sBAAwB,GACnEu8D,EAAuC,oBAAbv8D,EAAiC,sBAAwB,GAEzF,OAAI+hB,EAEA,sBAAKzvB,UAAU,2BAA2BtE,MAAO,CAAEykC,UAAW,UAA9D,UACE,qBAAKngC,UAAU,MAAf,SACE,qBAAKA,UAAU,YAAf,SAA2B,cAAC,IAAD,CAAkBtK,GAAG,oBAAoBmM,eAAe,kBAErF,cAAC,GAAD,CAAgB4D,QAAS3F,EAAM2F,UAC/B,cAAC,IAAD,CAAkB/P,GAAG,sBAAsBmM,eAAe,sBAK5DjR,EAEA,sBAAKoP,UAAU,2BAA2BtE,MAAO,CAAEykC,UAAW,UAA9D,2DAC8CvvC,EAAMsI,WAMtD,sBAAK8G,UAAU,2BAA2BtE,MAAO,CAAEykC,UAAW,UAA9D,UACE,qBAAKngC,UAAU,MAAf,SACE,qBAAKA,UAAU,YAAf,SACE,cAAC,IAAD,CAAkBtK,GAAG,oBAAoBmM,eAAe,kBAG5D,cAAC,GAAD,CAAgB4D,QAAS3F,EAAM2F,UAC/B,qBAAKzF,UAAWtE,KAAM8N,QAAtB,SACE,sBAAKxJ,UAAWtE,KAAM81B,MAAtB,UACE,sBAAKxxB,UAAWtE,KAAM4jB,OAAtB,UACE,qBAAKtf,UAAWtE,KAAMwuE,aAAtB,sBACA,qBAAKlqE,UAAWtE,KAAMyuE,WAAtB,SACE,yBACEnqE,UAAWtE,KAAMgxD,UACjBhxD,MAAO,CAAE0G,OAAqC,IAA9BsL,EAAS9d,QAAQ,QAAiB,UAAY,QAC9DsQ,QAAS,kBAAM4vB,EAAyB,SAAbpiB,EAAsB,QAAU,SAH7D,UAKE,cAAC,IAAD,CAAkBhY,GAAG,mBAAmBmM,eAAe,SACvD,cAAC,EAAD,CAAOlG,MAAM,KAAKC,OAAO,KAAKoE,UAAWgpB,SAG7C,qBAAKhpB,UAAWtE,KAAM0uE,kBAAtB,SACE,yBACEpqE,UAAWtE,KAAMgxD,UACjBhxD,MAAO,CAAE0G,OAA6C,IAAtCsL,EAAS9d,QAAQ,gBAAyB,UAAY,QACtEsQ,QAAS,kBAAM4vB,EAAyB,iBAAbpiB,EAA8B,gBAAkB,iBAH7E,UAKE,cAAC,IAAD,CAAkBhY,GAAG,sBAAsBmM,eAAe,YAC1D,cAAC,EAAD,CAAOlG,MAAM,KAAKC,OAAO,KAAKoE,UAAWgqE,SAG7C,qBAAKhqE,UAAWtE,KAAM2uE,gBAAtB,SACE,yBACErqE,UAAWtE,KAAMgxD,UACjBhxD,MAAO,CAAE0G,OAAsC,IAA/BsL,EAAS9d,QAAQ,SAAkB,UAAY,QAC/DsQ,QAAS,kBAAM4vB,EAAyB,UAAbpiB,EAAuB,SAAW,UAH/D,UAKE,cAAC,IAAD,CAAkBhY,GAAG,kBAAkBmM,eAAe,UACtD,cAAC,EAAD,CAAOlG,MAAM,KAAKC,OAAO,KAAKoE,UAAWylE,SAG7C,qBAAKzlE,UAAWtE,KAAM4uE,mBAAtB,SACE,yBACEtqE,UAAWtE,KAAMgxD,UACjBhxD,MAAO,CAAE0G,OAA+C,IAAxCsL,EAAS9d,QAAQ,kBAA2B,UAAY,QACxEsQ,QAAS,kBAAM4vB,EAAyB,mBAAbpiB,EAAgC,kBAAoB,mBAHjF,UAKE,cAAC,IAAD,CAAkBhY,GAAG,2BAA2BmM,eAAe,uBAC/D,cAAC,EAAD,CAAOlG,MAAM,KAAKC,OAAO,KAAKoE,UAAWiqE,YAK/C,qBAAKjqE,UAAWtE,KAAMxI,KAAtB,SACGjF,EAAK0Y,KAAI,SAACknB,GAAD,OACR,sBAAK7tB,UAAWtE,KAAMmwB,IAAtB,UACE,qBAAK7rB,UAAWtE,KAAM6uE,WAAtB,SACE,qBAAKvqE,UAAW6tB,EAAK1rB,SAAWzG,KAAM8uE,OAAS9uE,KAAM+uE,YAEvD,qBAAKzqE,UAAWtE,KAAMgvE,SAAtB,SACG78C,EAAKlX,OAER,qBAAK3W,UAAWtE,KAAMivE,gBAAtB,SACI98C,EAAK+8C,YAA0B/8C,EAAK+8C,YAAjB,YAEvB,qBAAK5qE,UAAWtE,KAAMmvE,cAAtB,SACGp1D,GAAUhF,SAASod,EAAKgI,UAE3B,qBAAK71B,UAAWtE,KAAMovE,eAAtB,SACGnzD,GAAqBkW,EAAKk9C,kBAdCl9C,EAAKlX,oB,oBCtF7Cq0D,GAAiBjxB,aAAH,uUA2ELkxB,GA3DW,SAAC,GAAuB,IAArB9+C,EAAoB,EAApBA,QAAS3W,EAAW,EAAXA,MACpC,EAAiCyY,aAAS+8C,GAAgB,CACxD7wB,UAAW,CACT32C,MAAOX,eAAeS,YACtBoK,SAAU8H,EACV2W,WAEF09C,aAAc,MANRp6C,EAAR,EAAQA,QAAS7+B,EAAjB,EAAiBA,MAAO3C,EAAxB,EAAwBA,KASxB,OAAIwhC,EACM,cAAC,GAAD,CAASt6B,KAAM,cAAC,IAAD,CAAkBO,GAAG,sBAAsBmM,eAAe,iBAG/EjR,EACM,4CAAeA,KAIvB,qBAAKoP,UAAWtE,KAAMxI,KAAtB,SACGjF,EAAKi9E,eAAe19E,OAAS,EAC5BS,EAAKi9E,eAAez9C,MAAK,SAAC09C,EAAUC,GAAX,OAAwBD,EAAS/xB,UAAYgyB,EAAShyB,aAAWzyC,KAAI,SAAA0kE,GAAK,OACjG,eAAC,IAAD,CAAMzpE,GAAE,uBAAkBuqB,EAAlB,YAA6Bk/C,EAAM95C,UAAiCvxB,UAAS,UAAKtE,KAAMmwB,IAAX,YAAkBw/C,EAAMjyB,WAAa19C,KAAMqwB,SAAhI,UACE,qBAAK/rB,UAAWtE,KAAM4vE,qBAAtB,SACE,qBAAKtrE,UAAWqrE,EAAMlpE,SAAWzG,KAAM8uE,OAAS9uE,KAAM+uE,YAExD,qBAAKzqE,UAAWtE,KAAM6vE,eAAtB,SACGF,EAAM7zC,OAET,sBAAKx3B,UAAWtE,KAAM8vE,eAAtB,UACGH,EAAMn7B,SAAS1+C,MAAM,KAAK,GAD7B,IACkC65E,EAAMn7B,SAAS1+C,MAAM,KAAKyuB,SAE5D,qBAAKjgB,UAAWtE,KAAM+vE,kBAAtB,SACGJ,EAAMT,cAET,qBAAK5qE,UAAWtE,KAAMgwE,kBAAtB,SACGL,EAAMM,UAET,qBAAK3rE,UAAWtE,KAAMkwE,oBAAtB,SACsB,OAAnBP,EAAMQ,SACL,cAAC,IAAD,CAAkBn2E,GAAG,iBAAiBmM,eAAe,cACxC,QAAZsqB,EACCvc,IAAOy7D,EAAM/a,UAAUzgD,OAAO,uBAC9BD,IAAOa,SAAS46D,EAAM/a,SAAU,KAAKzgD,OAAO,2BArBQw7D,EAAM95C,aA0BlE,sBAAKvxB,UAAWtE,KAAMmwB,IAAtB,cAA4B,cAAC,IAAD,CAAkBn2B,GAAG,oBAAoBmM,eAAe,gBAApF,UCoBKiqE,GAnFO,SAAChsE,GACrB,MAAgCM,mBAAS,QAAzC,mBAAOsN,EAAP,KAAiBoiB,EAAjB,KACA,EAA4C1vB,mBAAS,OAArD,mBAAO2rE,EAAP,KAAuBC,EAAvB,KAEMhjD,EAA+B,eAAbtb,EAA4B,sBAAwB,GACtEu+D,EAA+B,UAAbv+D,EAAuB,sBAAwB,GACjEw+D,EAAkC,kBAAbx+D,EAA+B,sBAAwB,GAC5Ey+D,EAAkC,aAAbz+D,EAA0B,sBAAwB,GACvE0+D,EAA+B,cAAb1+D,EAA2B,sBAAwB,GAE3E,OACE,sBAAK1N,UAAU,2BAA2BtE,MAAO,CAAEykC,UAAW,UAA9D,UACE,qBAAKngC,UAAU,MAAf,SACE,qBAAKA,UAAU,YAAf,SAA2B,cAAC,IAAD,CAAkBtK,GAAG,oBAAoBmM,eAAe,kBAErF,cAAC,GAAD,CAAgB4D,QAAS3F,EAAM2F,UAC/B,sBAAKzF,UAAWtE,KAAM8N,QAAtB,UACE,qBAAKxJ,UAAWtE,KAAM2wE,cAAtB,SACE,cAAC,IAAD,CAAkB32E,GAAG,wBAAwBmM,eAAe,0CAE9D,sBAAK7B,UAAWtE,KAAM4wE,QAAtB,UACE,wBAAQtsE,UAAS,UAAKtE,KAAM6wE,UAAX,YAA2C,QAAnBR,EAA2BrwE,KAAM+L,OAAS,IAAMvH,QAAS,kBAAM8rE,EAAkB,QAA1H,iBACA,wBAAQhsE,UAAS,UAAKtE,KAAM6wE,UAAX,YAA2C,UAAnBR,EAA6BrwE,KAAM+L,OAAS,IAAMvH,QAAS,kBAAM8rE,EAAkB,UAA5H,mBACA,wBAAQhsE,UAAS,UAAKtE,KAAM6wE,UAAX,YAA2C,UAAnBR,EAA6BrwE,KAAM+L,OAAS,IAAMvH,QAAS,kBAAM8rE,EAAkB,UAA5H,mBACA,wBAAQhsE,UAAS,UAAKtE,KAAM6wE,UAAX,YAA2C,WAAnBR,EAA8BrwE,KAAM+L,OAAS,IAAMvH,QAAS,kBAAM8rE,EAAkB,WAA7H,uBAEF,qBAAKhsE,UAAWtE,KAAM81B,MAAtB,SACE,sBAAKxxB,UAAWtE,KAAM4jB,OAAtB,UACE,qBAAKtf,UAAWtE,KAAMwuE,aAAtB,sBACA,qBAAKlqE,UAAWtE,KAAM8wE,oBAAtB,SACE,yBACExsE,UAAWtE,KAAMgxD,UACjBhxD,MAAO,CAAE0G,OAAqC,IAA9BsL,EAAS9d,QAAQ,QAAiB,UAAY,QAC9DsQ,QAAS,kBAAM4vB,EAAyB,SAAbpiB,EAAsB,QAAU,SAH7D,kBAKO,cAAC,EAAD,CAAO/R,MAAM,KAAKC,OAAO,KAAKoE,UAAWisE,SAGlD,qBAAKjsE,UAAWtE,KAAM+wE,oBAAtB,SACE,yBACEzsE,UAAWtE,KAAMgxD,UACjBhxD,MAAO,CAAE0G,OAA0C,IAAnCsL,EAAS9d,QAAQ,aAAsB,UAAY,QACnEsQ,QAAS,kBAAM4vB,EAAyB,cAAbpiB,EAA2B,aAAe,cAHvE,UAKE,cAAC,IAAD,CAAkBhY,GAAG,mBAAmBmM,eAAe,SAAS,cAAC,EAAD,CAAOlG,MAAM,KAAKC,OAAO,KAAKoE,UAAWgpB,SAG7G,qBAAKhpB,UAAWtE,KAAMgxE,uBAAtB,SACE,yBACE1sE,UAAWtE,KAAMgxD,UACjBhxD,MAAO,CAAE0G,OAAwC,IAAjCsL,EAAS9d,QAAQ,WAAoB,UAAY,QACjEsQ,QAAS,kBAAM4vB,EAAyB,iBAAbpiB,EAA8B,gBAAkB,iBAH7E,UAKE,cAAC,IAAD,CAAkBhY,GAAG,sBAAsBmM,eAAe,YAL5D,IAKyE,cAAC,EAAD,CAAOlG,MAAM,KAAKC,OAAO,KAAKoE,UAAWksE,SAGpH,qBAAKlsE,UAAWtE,KAAMixE,uBAAtB,SACE,yBACE3sE,UAAWtE,KAAMgxD,UACjBhxD,MAAO,CAAE0G,OAAwC,IAAjCsL,EAAS9d,QAAQ,WAAoB,UAAY,QACjEsQ,QAAS,kBAAM4vB,EAAyB,YAAbpiB,EAAyB,WAAa,YAHnE,UAKE,cAAC,IAAD,CAAkBhY,GAAG,yBAAyBmM,eAAe,YAL/D,IAK4E,cAAC,EAAD,CAAOlG,MAAM,KAAKC,OAAO,KAAKoE,UAAWmsE,SAGvH,qBAAKnsE,UAAWtE,KAAMkxE,yBAAtB,SACE,yBACE5sE,UAAWtE,KAAMgxD,UACjBhxD,MAAO,CAAE0G,OAAyC,IAAlCsL,EAAS9d,QAAQ,YAAqB,UAAY,QAClEsQ,QAAS,kBAAM4vB,EAAyB,aAAbpiB,EAA0B,YAAc,aAHrE,UAKE,cAAC,IAAD,CAAkBhY,GAAG,2BAA2BmM,eAAe,uBALjE,IAKsF,cAAC,EAAD,CAAOlG,MAAM,KAAKC,OAAO,KAAKoE,UAAWosE,cAKrI,cAAC,GAAD,CAAmBjgD,QAAS4/C,EAAgBv2D,MAAO9H,W,oBC5ErDm/D,GAAe9yB,aAAH,2QAiEH+yB,GAlDO,SAAC,GAAa,IAAZt3D,EAAW,EAAXA,MACtB,EAAiCyY,aAAS4+C,GAAc,CACtD1yB,UAAW,CACT32C,MAAOX,eAAeS,YACtBoK,SAAU8H,GAEZq0D,aAAc,MALRp6C,EAAR,EAAQA,QAAS7+B,EAAjB,EAAiBA,MAAO3C,EAAxB,EAAwBA,KAQxB,OAAIwhC,EACM,cAAC,GAAD,CAASt6B,KAAM,cAAC,IAAD,CAAkBO,GAAG,sBAAsBmM,eAAe,iBAG/EjR,EACM,4CAAeA,KAIvB,qBAAKoP,UAAWtE,KAAMxI,KAAtB,SACGjF,EAAK4+E,aAAar/E,OAAS,EACxBS,EAAK4+E,aAAap/C,MAAK,SAACs/C,EAASC,GAAV,OAAsBD,EAAQ3zB,UAAY4zB,EAAQ5zB,aAAWzyC,KAAI,SAAAyB,GAAM,OAC9F,eAAC,IAAD,CAAMxG,GAAE,8BAAyBwG,EAAOmpB,UAAkCvxB,UAAS,UAAKtE,KAAMmwB,IAAX,YAAkBzjB,EAAOgxC,WAAa19C,KAAMqwB,SAA/H,UACE,qBAAK/rB,UAAWtE,KAAMuxE,cAAtB,SACG7kE,EAAOyvB,SAEV,qBAAK73B,UAAWtE,KAAMwxE,kBAAtB,SACG9kE,EAAO8gB,UAEV,sBAAKlpB,UAAWtE,KAAM8vE,eAAtB,UACGpjE,EAAO8nC,SAAS1+C,MAAM,KAAK,GAD9B,IACmC4W,EAAO8nC,SAAS1+C,MAAM,KAAKP,OAAO,GAAG,MAExE,qBAAK+O,UAAWtE,KAAMyxE,eAAtB,SACG/kE,EAAOhR,OAEV,qBAAK4I,UAAWtE,KAAM0xE,iBAAtB,SACGv2D,GAAczO,EAAOtV,OAAOu6E,YAdwBjlE,EAAOmpB,aAkBhE,sBAAKvxB,UAAWtE,KAAMmwB,IAAtB,cAA4B,cAAC,IAAD,CAAkBn2B,GAAG,oBAAoBmM,eAAe,gBAApF,UCSKyrE,GA/DO,SAACxtE,GACrB,MAAgCM,mBAAS,WAAzC,mBAAOsN,EAAP,KAAiBoiB,EAAjB,KACM9G,EAA+B,eAAbtb,EAA4B,sBAAwB,GACtEqb,EAAkC,aAAbrb,EAA0B,sBAAwB,GACvE6/D,EAAiC,YAAb7/D,EAAyB,sBAAwB,GACrE8/D,EAAiC,YAAb9/D,EAAyB,sBAAwB,GAE3E,OACE,sBAAK1N,UAAU,2BAA2BtE,MAAO,CAAEykC,UAAW,UAA9D,UACE,qBAAKngC,UAAU,MAAf,SACE,qBAAKA,UAAU,YAAf,SAA2B,cAAC,IAAD,CAAkBtK,GAAG,oBAAoBmM,eAAe,kBAErF,cAAC,GAAD,CAAgB4D,QAAS3F,EAAM2F,UAC/B,sBAAKzF,UAAWtE,KAAM8N,QAAtB,UACE,qBAAKxJ,UAAWtE,KAAM81B,MAAtB,SACE,sBAAKxxB,UAAWtE,KAAM4jB,OAAtB,UACE,qBAAKtf,UAAWtE,KAAM+xE,mBAAtB,SACE,yBACEztE,UAAWtE,KAAMgxD,UACjBhxD,MAAO,CAAE0G,OAAuC,IAAhCsL,EAAS9d,QAAQ,UAAmB,UAAY,QAChEsQ,QAAS,kBAAM4vB,EAAyB,WAAbpiB,EAAwB,UAAY,WAHjE,iBAKM,cAAC,EAAD,CAAO/R,MAAM,KAAKC,OAAO,KAAKoE,UAAWutE,SAGjD,qBAAKvtE,UAAWtE,KAAMgyE,uBAAtB,SACE,yBACE1tE,UAAWtE,KAAMgxD,UACjBhxD,MAAO,CAAE0G,OAAwC,IAAjCsL,EAAS9d,QAAQ,WAAoB,UAAY,QACjEsQ,QAAS,kBAAM4vB,EAAyB,YAAbpiB,EAAyB,WAAa,YAHnE,UAKE,cAAC,IAAD,CAAkBhY,GAAG,4BAA4BmM,eAAe,UALlE,IAK6E,cAAC,EAAD,CAAOlG,MAAM,KAAKC,OAAO,KAAKoE,UAAW+oB,SAGxH,qBAAK/oB,UAAWtE,KAAM+wE,oBAAtB,SACE,yBACEzsE,UAAWtE,KAAMgxD,UACjBhxD,MAAO,CAAE0G,OAA0C,IAAnCsL,EAAS9d,QAAQ,aAAsB,UAAY,QACnEsQ,QAAS,kBAAM4vB,EAAyB,cAAbpiB,EAA2B,aAAe,cAHvE,UAKE,cAAC,IAAD,CAAkBhY,GAAG,mBAAmBmM,eAAe,SALzD,IAKmE,cAAC,EAAD,CAAOlG,MAAM,KAAKC,OAAO,KAAKoE,UAAWgpB,SAG9G,sBAAKhpB,UAAWtE,KAAMiyE,eAAtB,cAAuC,cAAC,IAAD,CAAkBj4E,GAAG,kBAAkBmM,eAAe,UAA7F,OACA,qBAAK7B,UAAWtE,KAAMkyE,sBAAtB,SACE,yBACE5tE,UAAWtE,KAAMgxD,UACjBhxD,MAAO,CAAE0G,OAAuC,IAAhCsL,EAAS9d,QAAQ,UAAmB,UAAY,QAChEsQ,QAAS,kBAAM4vB,EAAyB,WAAbpiB,EAAwB,UAAY,WAHjE,oBAKS,cAAC,EAAD,CAAO/R,MAAM,KAAKC,OAAO,KAAKoE,UAAWwtE,cAMxD,cAAC,GAAD,CAAeh4D,MAAO9H,W,qBCvDTmgE,G,oDACnB,WAAY/tE,GAAQ,IAAD,+BACjB,cAAMA,IACDhB,MAAQ,CACXgvE,YAAa,GACbC,YAAa,GACbC,aAAc,GACdx0C,UAAW,CACTs0C,YAAa,CACXn0C,UAAU,EACVzgC,QAAS,IAEX60E,YAAa,CACXp0C,UAAU,EACVzgC,QAAS,IAEX80E,aAAc,CACZr0C,UAAU,EACVzgC,QAAS,MAIf,EAAK+0E,cAAgB,EAAKA,cAAcj9E,KAAnB,iBACrB,EAAKiV,eAAiB,EAAKA,eAAejV,KAApB,iBACtB,EAAKk9E,QAAU,EAAKA,QAAQl9E,KAAb,iBACf,EAAK8zD,aAAe,EAAKA,aAAa9zD,KAAlB,iBACpB,EAAKm9E,uBAAyB,EAAKA,uBAAuBn9E,KAA5B,iBAzBb,E,uDA4BnB,WACE9E,SAAS0T,iBAAiB,YAAa3G,KAAKgN,kB,uCAG9C,SAA0BmoE,GACxB,IAAgC,IAA5BA,EAAUC,cAAwB,CACpC,IAAM7yC,EAAexrC,OAAOiU,OAAO,GAAIhL,KAAK6F,MAAM06B,WAClDgC,EAAasyC,YAAYn0C,UAAW,EACpC6B,EAAasyC,YAAY50E,QAAU,cAAC,IAAD,CAAkBxD,GAAG,mCAAmCmM,eAAe,2BAC1G5I,KAAKulB,SAAS,CAAEgb,UAAWgC,O,kCAI/B,WACEtvC,SAASga,oBAAoB,YAAajN,KAAKgN,kB,qBAGjD,SAAQi0B,GACN,IAAMvjB,EAAOujB,EAAG5zB,OAAOqQ,KACjBlqB,EAAQytC,EAAG5zB,OAAO7Z,MAExBwM,KAAK4sD,aAAa,CAAElvC,OAAMlqB,UAC1BwM,KAAK6rD,aAAa,CAAEnuC,OAAMlqB,Y,0BAG5B,YAA+B,IAAhBkqB,EAAe,EAAfA,KAAMlqB,EAAS,EAATA,MACN,gBAATkqB,GACF1d,KAAKulB,SAAS,CAAEsvD,YAAarhF,IAGlB,gBAATkqB,GACF1d,KAAKulB,SAAS,CAAEuvD,YAAathF,IAGlB,iBAATkqB,GACF1d,KAAKulB,SAAS,CAAEwvD,aAAcvhF,M,0BAIlC,YAA+B,IAAhBkqB,EAAe,EAAfA,KAAMlqB,EAAS,EAATA,MACb+uC,EAAexrC,OAAOiU,OAAO,GAAIhL,KAAK6F,MAAM06B,WAClD,OAAQ7iB,GACN,IAAK,cAEH,IAAMgjB,EAAWltC,EAAMe,QAAU,EACjCguC,EAAa7kB,GAAMgjB,SAAWA,EACzBA,IACH6B,EAAa7kB,GAAMzd,QAAU,cAAC,IAAD,CAAkBxD,GAAG,0CAA0CmM,eAAe,gDAE7G,MAEF,IAAK,cACH,IAAM83B,EAAWltC,EAAMe,QAAU,EAEjC,GADAguC,EAAa7kB,GAAMgjB,SAAWA,EACzBA,EAEE,CACL,IAAM20C,EAAkB7hF,IAAUwM,KAAK6F,MAAMkvE,aAC7CxyC,EAAawyC,aAAar0C,SAAW20C,EAChCA,IACH9yC,EAAawyC,aAAa90E,QAAU,cAAC,IAAD,CAAkBxD,GAAG,sCAAsCmM,eAAe,iDALhH25B,EAAa7kB,GAAMzd,QAAU,cAAC,IAAD,CAAkBxD,GAAG,0CAA0CmM,eAAe,+CAQ7G,MAEF,IAAK,eACH,IAAM83B,EAAWltC,IAAUwM,KAAK6F,MAAMivE,YACtCvyC,EAAa7kB,GAAMgjB,SAAWA,EACzBA,IACH6B,EAAa7kB,GAAMzd,QAAU,cAAC,IAAD,CAAkBxD,GAAG,sCAAsCmM,eAAe,4CAO7G5I,KAAKulB,SAAS,CAAEgb,UAAWgC,M,2BAG7B,SAAc+yC,GACZt1E,KAAK0M,WAAa4oE,I,4BAGpB,SAAer0C,GACTjhC,KAAK0M,aAAe1M,KAAK0M,WAAWU,SAAS6zB,EAAG5zB,SAClDrN,KAAK6G,MAAMutB,e,oCAIf,WACE,IAAMmhD,EAAY,CAChBC,aAAcx1E,KAAK6F,MAAMgvE,YACzBY,aAAcz1E,KAAK6F,MAAMivE,aAE3B90E,KAAK6G,MAAM6uE,eAAeH,K,oBAG5B,WACE,MAA8Dv1E,KAAK6F,MAA3D06B,EAAR,EAAQA,UAAWs0C,EAAnB,EAAmBA,YAAaC,EAAhC,EAAgCA,YAAaC,EAA7C,EAA6CA,aACvCY,EAAa5+E,OAAO2wB,OAAO6Y,GAAWyG,OAAM,SAAAhnB,GAAE,OAAIA,EAAG0gB,YAC3D,OACE,qBAAKnzB,IAAKvN,KAAKg1E,cAAf,SACE,sBAAKjuE,UAAWtE,KAAM3E,QAAtB,UACE,sBAAKiJ,UAAWwrB,KAAOjlB,UAAvB,UACE,qBAAKvG,UAAWwrB,KAAO,mBAAvB,SAA2C,cAAC,IAAD,CAAkB91B,GAAG,uCAAuCmM,eAAe,qBACtH,sBAAK7B,UAAWwrB,KAAO,qBAAvB,UACE,cAAC,GAAD,CACE7U,KAAK,cACL6W,SAAUv0B,KAAKi1E,QACf/lE,MAAO,cAAC,IAAD,CAAkBzS,GAAG,6BAA6BmM,eAAe,mBACxE7K,KAAK,WACLwiC,UAAWA,EAAUs0C,YACrBrhF,MAAOqhF,IAET,cAAC,GAAD,CACEn3D,KAAK,cACL6W,SAAUv0B,KAAKi1E,QACf/lE,MAAO,cAAC,IAAD,CAAkBzS,GAAG,6BAA6BmM,eAAe,iBACxE7K,KAAK,WACLwiC,UAAWA,EAAUu0C,YACrBthF,MAAOshF,IAET,cAAC,GAAD,CACEp3D,KAAK,eACL6W,SAAUv0B,KAAKi1E,QACf/lE,MAAO,cAAC,IAAD,CAAkBzS,GAAG,iCAAiCmM,eAAe,sBAC5E7K,KAAK,WACLwiC,UAAWA,EAAUw0C,aACrBvhF,MAAOuhF,UAIK,KAAjBA,GAAuBY,EACtB,wBACE53E,KAAK,SACL6Q,UAAU,EACV7H,UAAW,iCACXE,QAASjH,KAAKk1E,uBACdzyE,MAAO,CAAEC,MAAO,QALlB,SAOE,cAAC,IAAD,CAAkBjG,GAAG,mBAAmBmM,eAAe,aAEvD,wBACA7K,KAAK,SACL6Q,UAAQ,EAAC7H,UAAW,mCACpBtE,MAAO,CAAEC,MAAO,QAHhB,SAKA,cAAC,IAAD,CAAkBjG,GAAG,mBAAmBmM,eAAe,sB,GAhLpB4R,IAAMC,W,qBCyuBxCzZ,0BAtBf,SAAyB6E,EAAOmC,GAC9B,MAAO,CACL00B,WAAY72B,EAAM62B,WAClBjyB,KAAM5E,EAAMoC,gBACZyX,UAAW1X,EAAS0X,UACpBk2D,UAAW5tE,EAAS4tE,UACpBpvB,kBAAmB3gD,EAAMoC,gBAAgBxL,GAAKoJ,EAAMoC,gBAAgBxL,GAAK,EACzE4T,UAASxK,EAAMoC,gBAAgBK,QAA6C,IAApCzC,EAAMoC,gBAAgBK,OAAO,GACrEwpB,YAAWjsB,EAAMoC,gBAAgBK,QAA6C,IAApCzC,EAAMoC,gBAAgBK,OAAO,GACvEoJ,KAAM7L,EAAMgnB,OAAOnb,SAIvB,SAA4BlG,GAC1B,MAAO,CACL+/D,eAAgB,SAAAsK,GAAC,OAAIrqE,EAASmgE,OAC9BD,cAAe,SAAAp1D,GAAS,OAAI9K,EAASmgE,GAAgCr1D,KACrEm1D,gBAAiB,SAAAn1D,GAAS,OAAI9K,EAASmgE,GAAkCr1D,KACzE/K,sBAAuB,kBAAMC,EAASsqE,SAI3B90E,EA3tBE,SAAC6F,GAChB,IACE0kE,EAOE1kE,EAPF0kE,eACA7uC,EAME71B,EANF61B,WACA79B,EAKEgI,EALFhI,MACAwR,EAIExJ,EAJFwJ,QACAC,EAGEzJ,EAHFyJ,QACAwhB,EAEEjrB,EAFFirB,UACA00B,EACE3/C,EADF2/C,kBAEMzyC,EAAWlV,EAAMvI,OAAjByd,OACR,EAAkC5M,mBAAS,CACzC1K,GAAI,EACJiuE,SAAU,GACV13C,WAAY,GACZC,UAAW,GACX8M,MAAO,GACP90B,SAAU,GACV8qE,UAAW,GACXnS,WAAW,EACXoS,UAAU,EACVtJ,cAAc,EACd94D,UAAW,CACT2gD,OAAQ,GACR5zC,QAAS,MAEXrY,OAAQ,CAAC,KAfX,mBAAOgO,EAAP,KAAkBwiD,EAAlB,KAiBA,EAA8B3xD,mBAAS,CACrC,CACEy7C,SAAU,EACVkG,aAAa,EACbD,eAAe,GAEjB,CACEjG,SAAU,EACVkG,aAAa,EACbD,eAAe,GAEjB,CACEjG,SAAU,EACVkG,aAAa,EACbD,eAAe,GAEjB,CACEjG,SAAU,EACVkG,aAAa,EACbD,eAAe,KAnBnB,mBAAO91B,EAAP,KAAgB+4B,EAAhB,KAsBA,EAAkC3kD,mBAAS,CACzCmB,OAAQ,CAAEo4B,UAAU,EAAMzgC,QAAS,IACnC8/B,MAAO,CAAEW,UAAU,EAAMzgC,QAAS,IAClC+yB,WAAY,CAAE0N,UAAU,EAAMzgC,QAAS,IACvCgzB,UAAW,CAAEyN,UAAU,EAAMzgC,QAAS,IACtCgL,SAAU,CAAEy1B,UAAU,EAAMzgC,QAAS,IACrC81E,UAAW,CAAEr1C,UAAU,EAAMzgC,QAAS,IACtCs0D,OAAQ,CAAE7zB,UAAU,EAAMzgC,QAAS,IACnC0gB,QAAS,CAAE+f,UAAU,EAAMzgC,QAAS,IACpCyqE,SAAU,CAAEhqC,UAAU,EAAMzgC,QAAS,MATvC,mBAAOsgC,EAAP,KAAkBsrB,EAAlB,KAWA,EAAwC1kD,mBAAS,IAAjD,mBAAOm7B,EAAP,KAAqB2zC,EAArB,KACA,EAAwD9uE,oBAAS,GAAjE,mBAAO+uE,EAAP,KAAgCC,EAAhC,KACA,EAA0ChvE,oBAAS,GAAnD,mBAAOivE,EAAP,KAAsBC,EAAtB,KACA,EAAkDlvE,oBAAS,GAA3D,mBAAOmvE,EAAP,KAA0BC,EAA1B,KACA,EAAkCpvE,mBAAS,CACzClH,QAAS,GACTY,KAAM,EACNqoD,UAAU,IAHZ,mBAAOstB,EAAP,KAAkBC,EAAlB,KAMAnvE,qBAAU,WAC0B,QAA9BT,EAAMhI,MAAMvI,OAAO4D,QAAkD,SAA9B2M,EAAMhI,MAAMvI,OAAO4D,OAC5D2M,EAAM2F,QAAQ9H,KAAK,QACoB,SAA9BmC,EAAMhI,MAAMvI,OAAO4D,QAAsB2M,EAAMhI,MAAMvI,OAAOyd,QACrElN,EAAM2F,QAAQ9H,KAAK,UAEpB,CAACmC,EAAMhI,MAAMvI,OAAQuQ,EAAM2F,UAG9BlF,qBAAU,WA4BJo1B,EAAWnoC,QAAU,EACvBg3E,IA5BqB,SAAC7uC,EAAY3oB,GAClC,IAAMo1D,EAAiBzsC,EAAW,GAAG1nC,KAC7BkF,EAAW2E,EAAMvI,OAAjB4D,OAKFooC,GAHK,SAAXpoC,EACIivE,EAAe5gE,QAAO,SAAA+N,GAAS,OAAIA,EAAU7Z,KAAO+a,SAASzD,EAAQ,OACrEo1D,GACoCz7D,KAAI,SAAAgpE,GAAG,MAAK,CAClD32C,MAAO22C,EAAI32C,MACX2qC,SAAUgM,EAAIhM,aAIhB,GAFAuL,EAAgB3zC,GAED,SAAXpoC,EAAmB,CACrB,IAAM6+D,EAAeoQ,EAAe5gE,QAAO,SAAA8Z,GAAC,OAAIA,EAAE5lB,KAAO+a,SAASzD,EAAQ,OAAK,GACzEwgD,EAAS/1B,GAAgBu6B,EAAanlD,UAAU2gD,OAAQ,oBACxDkY,EAAW11E,OAAOiU,OAAO,GAAI+tD,EAAanlD,UAAW,CAAE2gD,WAC7DuE,EAAa/hE,OAAOiU,OAClB,GACA+tD,EACA,CAAEnlD,UAAW64D,GACb,CAAEsJ,UAAWhd,EAAa9tD,YAE5B6gD,EAAW,YAAIiN,EAAahmC,WAO9B4jD,CAAej6C,EAAY79B,EAAMvI,OAAOyd,UAGzC,CAAC2oB,EAAY6uC,EAAgB1sE,EAAMvI,SAEtC,IAAM2+E,EAAU,SAACh0C,GACf,IAAMvjB,EAAOujB,EAAG5zB,OAAOqQ,KACjBlqB,EAAQytC,EAAG5zB,OAAO7Z,MAExBo5D,EAAa,CAAElvC,OAAMlqB,UACrBojF,EAAiB,CAAEl5D,OAAMlqB,WAGrBo5D,EAAe,SAAC,GAAqB,IAAnBlvC,EAAkB,EAAlBA,KAAMlqB,EAAY,EAAZA,MACxBulE,EAAeziD,EAEnB,OAAQoH,GACN,IAAK,SACHq7C,EAAar7C,GAAQ,CAAClqB,GACtB,MAEF,IAAK,SACHulE,EAAanlD,UAAU8J,GAAQ8gB,GAAmBhrC,GAClD,MAEF,IAAK,UACHulE,EAAanlD,UAAU8J,GAAQlqB,EAC/B,MAEF,QACEulE,EAAar7C,GAAQlqB,EAKzBslE,EAAa/hE,OAAOiU,OAAO,GAAI+tD,KAG3B6d,EAAmB,SAAC,GAAqB,IAAnBl5D,EAAkB,EAAlBA,KAAMlqB,EAAY,EAAZA,MAC5B+uC,EAAehC,EAEnB,OAAQ7iB,GACN,IAAK,QACH,IAAMgjB,EAAWZ,GAActsC,GAC/B+uC,EAAa7kB,GAAMgjB,SAAWA,EACzBA,GAE4D,IAAtD4B,EAAaE,WAAU,SAAAxiB,GAAE,OAAIA,EAAG+f,QAAUvsC,MACnD+uC,EAAa7kB,GAAMgjB,UAAW,EAC9B6B,EAAa7kB,GAAMzd,QAAU,cAAC,IAAD,CAAkBxD,GAAG,4BAA4BmM,eAAe,qDAE7F25B,EAAa7kB,GAAMgjB,UAAW,EAC9B6B,EAAa7kB,GAAMzd,QAAU,IAN7BsiC,EAAa7kB,GAAMzd,QAAU,cAAC,IAAD,CAAkBxD,GAAG,+BAA+BmM,eAAe,sBAQlG,MAEF,IAAK,aACL,IAAK,YACH,IAAM83B,EAAWltC,EAAMe,QAAU,EACjCguC,EAAa7kB,GAAMgjB,SAAWA,EACzBA,GAGH6B,EAAa7kB,GAAMgjB,UAAW,EAC9B6B,EAAa7kB,GAAMzd,QAAU,IAH7BsiC,EAAa7kB,GAAMzd,QAAU,cAAC,IAAD,CAAkBxD,GAAG,uBAAuBmM,eAAe,kDAK1F,MAEF,IAAK,WACH,GAAIpV,EAAMe,OAAS,EAAG,CACpBguC,EAAa7kB,GAAMgjB,UAAW,EAC9B6B,EAAa7kB,GAAMzd,QAAU,cAAC,IAAD,CAAkBxD,GAAG,uBAAuBmM,eAAe,kDACxF,MAEGg3B,GAAYtqC,KAAK9B,IAI8C,IAAzD8uC,EAAaE,WAAU,SAAAxiB,GAAE,OAAIA,EAAG0qD,WAAal3E,MACtD+uC,EAAa7kB,GAAMgjB,UAAW,EAC9B6B,EAAa7kB,GAAMzd,QAAU,cAAC,IAAD,CAAkBxD,GAAG,+BAA+BmM,eAAe,kEAEhG25B,EAAa7kB,GAAMgjB,UAAW,EAC9B6B,EAAa7kB,GAAMzd,QAAU,KAR7BsiC,EAAa7kB,GAAMgjB,UAAW,EAC9B6B,EAAa7kB,GAAMzd,QACjB,cAAC,IAAD,CAAkBxD,GAAG,oCAAoCmM,eAAe,kEAQ5E,MAEF,IAAK,WACH,IAAM83B,EAAWltC,EAAMe,QAAU,EAEjC,GADAguC,EAAa7kB,GAAMgjB,SAAWA,EACzBA,EAEE,CACL,IAAM20C,EAAkB7hF,IAAU8iB,EAAUy/D,UAC5CxzC,EAAawzC,UAAUr1C,SAAW20C,EAC7BA,IACH9yC,EAAawzC,UAAU91E,QAAU,cAAC,IAAD,CAAkBxD,GAAG,sCAAsCmM,eAAe,iDAL7G25B,EAAa7kB,GAAMzd,QAAU,cAAC,IAAD,CAAkBxD,GAAG,0CAA0CmM,eAAe,+CAQ7G,MAEF,IAAK,YACH,IAAM83B,EAAWltC,IAAU8iB,EAAUrL,SACrCs3B,EAAa7kB,GAAMgjB,SAAWA,EACzBA,IACH6B,EAAa7kB,GAAMzd,QAAU,cAAC,IAAD,CAAkBxD,GAAG,sCAAsCmM,eAAe,4CAEzG,MAEF,IAAK,SACH,IAAM83B,EAAoD,KAAzClC,GAAuBhrC,GAAOe,OAC/CguC,EAAa7kB,GAAMgjB,SAAWA,EACzBA,IACH6B,EAAa7kB,GAAMzd,QAAU,cAAC,IAAD,CAAkBxD,GAAG,yBAAyBmM,eAAe,sCAE5F,MAEF,QACE25B,EAAa7kB,GAAMgjB,UAAW,EAKlCmrB,EAAa90D,OAAOiU,OAAO,GAAIu3B,KAG3B2qB,EAAgB,SAACntD,EAAOugB,GAC5B,IAAM5C,EAAO3d,EAAMsN,OAAOqQ,KACpBlqB,EAAQuM,EAAMsN,OAAO7Z,MAE3Bs4D,EAAW/4B,EAAQrlB,KAAI,SAACsS,EAAI1rB,GAC1B,OAAIA,IAAMgsB,EACDvpB,OAAOiU,OAAO,GAAIgV,EAAlBjpB,OAAA,KAAAA,CAAA,GAAyB2mB,EAAOlqB,IAElCuD,OAAOiU,OAAO,GAAIgV,QAIvB4mB,EAAe,SAAC1Y,GACpB,IAAM5Z,EAAW4Z,EACjB,GAAI5Z,EAAU,CACZ,IAAMmtB,EAAYntB,EAASza,OACvB6nC,EAAW,GACf,GAAIptB,EAAStf,KAAM,CACjB,IAAMo4D,EAAUr2D,OAAOwF,KAAK+X,EAAStf,MAAM,GAC3C,OAAQo4D,GACN,IAAK,QACH1rB,EAAW,cAAC,IAAD,CAAmBjlC,GAAG,mBAAmBmM,eAAe,6EACnE,MAEF,IAAK,WACH84B,EAAW,cAAC,IAAD,CAAmBjlC,GAAG,sBAAsBmM,eAAe,6EACtE,MAEF,QACE84B,EAAWptB,EAAStf,KAAKo4D,GAAS,IAKxCqpB,EAAa,CACXx2E,QAASyhC,EACT7gC,KAAM4gC,EACNynB,UAAU,MAsEV/gD,GAAS,WACbtB,EAAM0E,wBAAwBU,MAAK,WACjCnC,aAAa6D,WAAW,SACxB7D,aAAa6D,WAAW,QACxB7D,aAAa6D,WAAW,UACxB7D,aAAa6D,WAAW,WACxB9G,EAAM2F,QAAQ9H,KAAK,UACnB1R,OAAOsM,SAASsO,aAIdsB,GAAsC,SAA9BrI,EAAMhI,MAAMvI,OAAO4D,OAAoB,cAAC,IAAD,CAAkBuC,GAAG,qCAAqCmM,eAAe,qBAAwB,cAAC,IAAD,CAAkBnM,GAAG,oCAAoCmM,eAAe,wBACxN+sE,GAC6B,KAA/Br/D,EAAU1C,UAAU2gD,QACpBx9D,OAAO2wB,OAAOpR,GAAW0wB,OAAM,SAAAhnB,GAAE,MAAW,KAAPA,MACrCjpB,OAAO2wB,OAAO6Y,GAAWyG,OAAM,SAAAhnB,GAAE,OAAIA,EAAG0gB,YACxChD,GAAU,GACVE,GAAW,GACf,GAAkC,SAA9B/2B,EAAMhI,MAAMvI,OAAO4D,OAAmB,CACxC,IAAMwiC,GAAa71B,EAAM61B,WAAW,GAAG1nC,KACvC0oC,GAAUpnB,EACNomB,GAAWn0B,QAAO,SAAA8Z,GAAC,OAAIA,EAAE5lB,KAAO6Z,EAAU1C,UAAU+pB,cAAY,QAChEzqC,EACJ0qC,GAAWtnB,EACPomB,GAAWn0B,QAAO,SAAA8Z,GAAC,OAAIA,EAAE5lB,KAAO6Z,EAAU1C,UAAUiqB,eAAa,QACjE3qC,EAIN,OADA2E,QAAQC,IAAIwe,GAEV,sBAAKvP,UAAU,2BAAf,UACGyvE,EAAUttB,UACT,cAAC,GAAD,CAAgBznB,UAAW+0C,EAAU31E,KAAM6gC,SAAU80C,EAAUv2E,QAAS0hC,aAAc,kBAAM80C,EAAa,CAAEx2E,QAAS,GAAIY,KAAM,EAAG21E,WAAW,OAE7IF,GACC,qBACE7zE,MAAO,CACLC,MAAO,OACPkmB,UAAW,SACXzf,MAAO,UACPma,aAAc,OALlB,SAQE,cAAC,IAAD,CAAkB7mB,GAAG,iCAAiCmM,eAAe,gDAGxEstE,GACC,cAAC,GAAD,CACER,eAlEe,SAACH,GACtB9pE,IAAMorE,IAAN,kBAAqBltE,KAArB,O/N1VO,kB+N0VP,yBACE4rE,EACA,CAAEzpE,QAAS,CAAEE,cAAc,SAAD,OAAW5B,QACpC6B,MAAK,SAACC,GACLiqE,GAAqB,GACrBI,GAAqB,GACrBh8E,YAAW,WACT4N,OACC,QAEJgE,OAAM,SAAC+hB,GACFA,EAAI5Z,SAAStf,KAAKwgF,cACpBa,GAAiB,OAsDjBjiD,WAAY,kBAAM+hD,GAAqB,IACvCf,cAAegB,IAGlB/lE,GAAWyhB,GAAaxhB,GAAWk2C,IAAsBhvC,SAASzD,EAAQ,IACzE,sBAAKhN,UAAWutB,KAAUhnB,UAA1B,UACA,qBAAKvG,UAAWutB,KAAUplB,MAA1B,SACGA,KAEFs3C,IAAsBhvC,SAASzD,EAAQ,KAA+B,SAAxBlV,EAAMvI,OAAO4D,QAC1D,qBAAK6M,UAAWwrB,KAAOjlB,UAAvB,SACE,wBACErG,QAAS,kBAAMkvE,GAAqB,IACpC1zE,MAAO,CAAE8X,MAAO,SAChBxT,UAAW,iCAHb,SAKE,cAAC,IAAD,CAAkBtK,GAAG,gCAAgCmM,eAAe,sBAI1E,uBAAM7B,UAAWutB,KAAUhnB,UAA3B,UACE,sBAAKvG,UAAWwrB,KAAOjlB,UAAvB,UACE,qBAAKvG,UAAWwrB,KAAO,mBAAvB,SAA2C,cAAC,IAAD,CAAkB91B,GAAG,6BAA6BmM,eAAe,iCAC5G,sBAAK7B,UAAWwrB,KAAO,qBAAvB,UAC2B,QAAxB1zB,EAAMvI,OAAO4D,OACV,cAAC,GAAD,CACAwjB,KAAK,WACL6W,SAAU0gD,EACV/lE,MAAO,cAAC,IAAD,CAAkBzS,GAAG,0BAA0BmM,eAAe,yBACrE23B,UAAWA,EAAUmqC,SACrBl3E,MAAO8iB,EAAUo0D,WAGjB,qBAAK3jE,UAAU,WAAWtE,MAAO,CAAEC,MAAO,QAA1C,SACE,sBAAKqE,UAAU,gCAAf,UACE,uBAAMA,UAAU,aAAhB,UAA6B,cAAC,IAAD,CAAkBtK,GAAG,qBAAqBmM,eAAe,uBAAtF,QACA,sBAAM7B,UAAWwrB,KAAO/+B,MAAxB,SACG8iB,EAAUo0D,gBAKQ,IAA5Bp0D,EAAUhO,OAAO/T,QAAwC,SAAxBsK,EAAMvI,OAAO4D,QAC7C,sBAAK6M,UAAU,WAAf,UACE,sBAAKA,UAAU,gCAAf,UACE,sBAAMA,UAAU,aAAhB,0BACE,uBAAMA,UAAWwrB,KAAO/+B,MAAxB,UACG8iB,EAAUo0D,SADb,IACwB9gE,eAAe2mE,QAAQ,sBAGnD,sBAAKxpE,UAAU,gCAAf,UACE,sBAAMA,UAAU,aAAhB,6BACE,uBAAMA,UAAWwrB,KAAO/+B,MAAxB,UACG8iB,EAAU7Z,GADb,IACkBmN,eAAe2mE,QAAQ,gBADzC,IAC2Dj6D,EAAUo0D,kBAK7E,sBAAK3jE,UAAU,WAAf,UACE,qBAAKA,UAAU,gCAAf,SACE,cAAC,GAAD,CACE2W,KAAK,aACL6W,SAAU0gD,EACV/lE,MAAO,cAAC,IAAD,CAAkBzS,GAAG,2BAA2BmM,eAAe,WACtE23B,UAAWA,EAAUvN,WACrBx/B,MAAO8iB,EAAU0c,eAGrB,qBAAKjsB,UAAU,gCAAf,SACE,cAAC,GAAD,CACE2W,KAAK,YACL6W,SAAU0gD,EACV/lE,MAAO,cAAC,IAAD,CAAkBzS,GAAG,0BAA0BmM,eAAe,gBACrE23B,UAAWA,EAAUtN,UACrBz/B,MAAO8iB,EAAU2c,iBAIvB,sBAAKlsB,UAAU,WAAf,UACI,qBAAKA,UAAU,gCAAf,SACE,cAAC,GAAD,CACE2W,KAAK,QACL6W,SAAU0gD,EACV/lE,MAAM,UACNqxB,UAAWA,EAAUR,MACrBvsC,MAAO8iB,EAAUypB,UAGrB,qBAAKh5B,UAAU,gCAAf,SACE,cAAC,GAAD,CACE8tB,UAAU,KACVnX,KAAK,SACL6W,SAAU0gD,EACV/lE,MAAO,cAAC,IAAD,CAAkBzS,GAAG,wBAAwBmM,eAAe,cACnE23B,UAAWA,EAAUg0B,OACrB/gE,MAAO8iB,EAAU1C,UAAU2gD,OAASj+C,EAAU1C,UAAU2gD,OAAS,UAIvE,sBAAKxtD,UAAU,WAAf,WACIsJ,GAAWC,IACX,sBAAKvJ,UAAU,gCAAf,UACE,wBAAOA,UAAU,aAAastB,QAAQ,SAAtC,UACE,cAAC,IAAD,CAAkB53B,GAAG,kBAAkBmM,eAAe,UADxD,KACoE,sBAAM7B,UAAWutB,KAAUmM,SAA3B,kBAGpE,cAAC,GAAD,CACEhkC,GAAG,SACHwrC,YAAW,wBAAmB3T,KAAU,mBACxC1lB,YAAW0H,EAAU7Z,KAAkB,IAAZ6T,GAA4C,IAAxBgG,EAAUhO,OAAO,MAC7Dk+C,IAAsBlwC,EAAU7Z,IAA8B,IAAxB6Z,EAAUhO,OAAO,IAC1Dw4B,MAAgC,SAAxBjiC,EAAMvI,OAAO4D,QAA6C,IAAxBoc,EAAUhO,OAAO,GAAY,CAAC,GAAK,CAAC,EAAG,EAAG,GACpFu4B,WAAYrkB,GACZ0kB,aAAa,EACb1tC,MAAO8iB,EAAUhO,OAAO,GACxBisB,SAAU0gD,EACVv3D,KAAK,cAIX,sBAAK3W,UAAU,gCAAf,UACE,wBAAOA,UAAU,aAAastB,QAAQ,UAAtC,UACE,cAAC,IAAD,CAAkB53B,GAAG,oBAAoBmM,eAAe,YAD1D,KACqE,sBAAM7B,UAAWutB,KAAUmM,SAA3B,kBAGrE,cAAC,GAAD,CACEhkC,GAAG,UACHwrC,YAAW,wBAAmB3T,KAAU,mBACxCwM,MAAOtD,GAAY32B,EAAM6K,MACzBwvB,aAAa,EACb1tC,MAAQ8iB,EAAU1C,UAAU+M,QAAerK,EAAU1C,UAAU+M,QAAzB,GACtC4T,SAAU0gD,EACVv3D,KAAK,wBAMQ,QAAxB7e,EAAMvI,OAAO4D,QACZ,sBAAK6M,UAAWwrB,KAAOjlB,UAAvB,UACE,qBAAKvG,UAAWwrB,KAAO,mBAAvB,SAA2C,cAAC,IAAD,CAAkB91B,GAAG,gCAAgCmM,eAAe,YAC/G,sBAAK7B,UAAWwrB,KAAO,qBAAvB,UACE,cAAC,GAAD,CACE7U,KAAK,WACL6W,SAAU0gD,EACV/lE,MAAO,cAAC,IAAD,CAAkBzS,GAAG,0BAA0BmM,eAAe,YACrE7K,KAAK,WACLwiC,UAAWA,EAAUt1B,SACrBzX,MAAO8iB,EAAUrL,WAEnB,cAAC,GAAD,CACEyS,KAAK,YACL6W,SAAU0gD,EACV/lE,MAAO,cAAC,IAAD,CAAkBzS,GAAG,iCAAiCmM,eAAe,sBAC5E7K,KAAK,WACLwiC,UAAWA,EAAUw1C,UACrBviF,MAAO8iB,EAAUy/D,mBAMvBz/D,EAAUo2D,cACV,sBAAK3lE,UAAWwrB,KAAOjlB,UAAvB,UACE,qBAAKvG,UAAWwrB,KAAO,mBAAvB,SAA2C,cAAC,IAAD,CAAkB91B,GAAG,wBAAwBmM,eAAe,kBACvG,qBAAK7B,UAAU,sBAAf,SACE,qBAAKA,UAAU,oBAAf,SACE,sBAAKA,UAAU,oBAAf,UACE,sBAAKA,UAAU,WAAf,UACE,qBAAKA,UAAU,UACf,qBAAKA,UAAU,qCAAqCtE,MAAO,CAAEorD,cAAe,aAA5E,SAA2F,4CAC3F,qBAAK9mD,UAAU,qCAAqCtE,MAAO,CAAEorD,cAAe,aAA5E,SAA4F,6CAG7F96B,GACCA,EAAQrlB,KAAI,SAACuB,EAAQqR,GAAT,OACV,sBAA2BvZ,UAAU,wCAArC,UACE,qBAAKA,UAAU,wBAAf,SACGuV,GAAmBrN,EAAO2zC,SAAU,gBAGvC,cAAC,GAAD,CACEllC,KAAK,gBACL3W,UAAS,UAAKtE,KAAMsmC,SAAX,UACT1H,QAAStO,EAAQzS,GAAOuoC,cACxBt0B,SAAU,SAAA0M,GAAE,OAAIisB,EAAcjsB,EAAI3gB,MAEpC,cAAC,GAAD,CACE5C,KAAK,cACL3W,UAAS,UAAKtE,KAAMsmC,SAAX,UACT1H,QAAStO,EAAQzS,GAAOwoC,YACxBv0B,SAAU,SAAA0M,GAAE,OAAIisB,EAAcjsB,EAAI3gB,QAf5BrR,EAAO2zC,uBAwBN,SAAxB/jD,EAAMvI,OAAO4D,QACZ,sBAAK6M,UAAWwrB,KAAOjlB,UAAvB,UACE,qBAAKvG,UAAWwrB,KAAO,mBAAvB,kBACA,sBAAKxrB,UAAU,gBAAf,UACE,sBAAKA,UAAU,uDAAf,UACE,uBAAMA,UAAU,cAAhB,UAA8B,cAAC,IAAD,CAAkBtK,GAAG,mBAAmBmM,eAAe,0BAArF,QACA,sBAAM7B,UAAU,cAAhB,SACGuP,EAAU1C,UAAU2rB,aACjBf,GAA8BloB,EAAU1C,UAAU2rB,cAClD,SAGR,sBAAKx4B,UAAU,uDAAf,UACE,uBAAMA,UAAU,cAAhB,UAA8B,cAAC,IAAD,CAAkBtK,GAAG,iBAAiBmM,eAAe,eAAnF,QACC80B,GACG,sBAAM32B,UAAU,cAAhB,mBAAkC22B,GAAQ1K,WAA1C,YAAwD0K,GAAQzK,aAChE,sBAAMlsB,UAAU,cAAhB,oBAEN,sBAAKA,UAAU,uDAAf,UACE,uBAAMA,UAAU,cAAhB,UAA8B,cAAC,IAAD,CAAkBtK,GAAG,oBAAoBmM,eAAe,8BAAtF,QACA,sBAAM7B,UAAU,cAAhB,SACGuP,EAAU1C,UAAU0rB,cACjBd,GACAloB,EAAU1C,UAAU0rB,eAEpB,SAGR,sBAAKv4B,UAAU,uDAAf,UACE,uBAAMA,UAAU,cAAhB,UAA8B,cAAC,IAAD,CAAkBtK,GAAG,kBAAkBmM,eAAe,mBAApF,QACCg1B,GACG,sBAAM72B,UAAU,cAAhB,mBAAkC62B,GAAS5K,WAA3C,YAAyD4K,GAAS3K,aAClE,sBAAMlsB,UAAU,cAAhB,0BAIV,sBAAKA,UAAU,aAAf,UACE,yBACEhJ,KAAK,SACLgJ,UAAU,qCACVE,QAASJ,EAAM2F,QAAQsqE,OAHzB,UAKE,+BAAM,mBAAG/vE,UAAU,sBAAsB,cAAY,OAAOtE,MAAO,CAAEgM,aAAa,OAAQC,WAAY,cACtG,cAAC,IAAD,CAAkBjS,GAAG,qBAAqBmM,eAAe,gBAE1D+sE,GACG,yBACA53E,KAAK,SACL6Q,UAAU,EACV7H,UAAW,uCACXE,QA5WI,WAClB,IAAMstD,EAAS/1B,GAAuBloB,EAAU1C,UAAU2gD,OAAQ,QAC5DkY,EAAW11E,OAAOiU,OACtB,GACAwzB,GAAoBloB,EAAU1C,UAAW,CAAC,QAAS,OAAQ,iBAC3D,CAAE2gD,WAEEwiB,EAA6C,QAA9BlwE,EAAMhI,MAAMvI,OAAO4D,OAAmB,CAAC,YAAa,MAAQ,CAAC,aAC5E88E,EAAkBjgF,OAAOiU,OAC7B,GACAwzB,GAAoBloB,EAAWygE,GAC/B,CAAEzuE,OAAQ,CAACgO,EAAUhO,OAAO,KAC5B,CAAEsL,UAAW64D,GACb,CAAE15C,YAGErhB,EAAQ5H,aAAauS,cAAuBvS,aAAauS,cAApB,KACrCngB,EAAI,UAAMu8B,GAAkB/mB,GAAM,uBAA9B,YAAwDslE,EAAgBhkD,WAAxE,YAAsFgkD,EAAgB/jD,UAAtG,YAA2I,SAAxBp0B,EAAMvI,OAAO4D,OACtIu+B,GAAkB/mB,GAAM,qBACxB+mB,GAAkB/mB,GAAM,oBAGM,SAA9B7K,EAAMhI,MAAMvI,OAAO4D,OACrB2M,EAAM6kE,cAAcsL,GAAiB/qE,MAAK,WACxCuyB,GAAkB/yB,IAAO5E,EAAM6Y,UAAW,CACxC3hB,KAAM,YACN7D,OAAQ,OACR6Z,OAAQyyC,EACRtqD,OACA86E,oBAEFnwE,EAAM2F,QAAQ9H,KAAK,yBAClByH,OAAM,SAAC+hB,GAAD,OAAS0Y,EAAa1Y,MAE/BrnB,EAAM4kE,gBAAgBuL,GAAiB/qE,MAAK,SAACC,GAC3CsyB,GAAkB/yB,IAAO5E,EAAM6Y,UAAW,CACxC3hB,KAAM,YACN7D,OAAQ,SACR6Z,OAAQyyC,EACRlwC,UAAWpK,EAAIoK,UACfpa,SAEF2K,EAAM2F,QAAQ9H,KAAK,yBAClByH,OAAM,SAAC+hB,GAAD,OAAS0Y,EAAa1Y,OA6TnB,UAMA,qCAAO,mBAAGnnB,UAAU,oBAAoB,cAAY,OAAOtE,MAAO,CAAEgM,aAAa,OAAQC,WAAY,eACrG,cAAC,IAAD,CAAkBjS,GAAG,mBAAmBmM,eAAe,cAEvD,yBAAQ7K,KAAK,SAAS6Q,UAAQ,EAAC7H,UAAW,yCAA1C,UACA,qCAAO,mBAAGA,UAAU,oBAAoB,cAAY,OAAOtE,MAAO,CAAEgM,aAAa,OAAQC,WAAY,eACrG,cAAC,IAAD,CAAkBjS,GAAG,mBAAmBmM,eAAe,uBAKjE,qBAAK7B,UAAU,6BAAf,SACA,qBAAKA,UAAU,eAAf,SAA8B,cAAC,IAAD,CAAkBtK,GAAG,8BAA8BmM,eAAe,+EC+DzF5H,0BAzBf,SAAyB6E,EAAOmC,GAC9B,MAAO,CACL00B,WAAY72B,EAAM62B,WAClBjyB,KAAM5E,EAAMoC,gBACZyX,UAAW1X,EAAS0X,UACpBk2D,UAAW5tE,EAAS4tE,UACpBpvB,kBAAmB3gD,EAAMoC,gBAAgBxL,GAAKoJ,EAAMoC,gBAAgBxL,GAAK,EACzE4T,UAASxK,EAAMoC,gBAAgBK,QAA6C,IAApCzC,EAAMoC,gBAAgBK,OAAO,GACrEwpB,YAAWjsB,EAAMoC,gBAAgBK,QAA6C,IAApCzC,EAAMoC,gBAAgBK,OAAO,GACvEoJ,KAAM7L,EAAMgnB,OAAOnb,KACnBggB,QAAS7rB,EAAMyC,OAAOC,QAAO,SAAAC,GAAG,OAAK,CAAC,EAAG,EAAG,EAAG,GAAGC,SAASD,EAAI/L,OAC5DwN,MAAK,SAAAynB,GAAO,OAAIA,EAAQj1B,KAAO+a,SAASxP,EAASnJ,MAAMvI,OAAO+R,UAAW,WAIhF,SAA4BmD,GAC1B,MAAO,CACL+/D,eAAgB,SAAAsK,GAAC,OAAIrqE,EAASmgE,OAC9BD,cAAe,SAAAp1D,GAAS,OAAI9K,EAASmgE,GAAgCr1D,KACrEm1D,gBAAiB,SAAAn1D,GAAS,OAAI9K,EAASmgE,GAAkCr1D,KACzE/K,sBAAuB,kBAAMC,EAASsqE,MACtCmB,cAAe,kBAAMzrE,EAAS0kE,UAInBlvE,EA9sBE,SAAC6F,GAChB,IACE0kE,EASE1kE,EATF0kE,eACA0L,EAQEpwE,EARFowE,cACAv6C,EAOE71B,EAPF61B,WACA79B,EAMEgI,EANFhI,MACAwR,EAKExJ,EALFwJ,QACAC,EAIEzJ,EAJFyJ,QACAwhB,EAGEjrB,EAHFirB,UACA00B,EAEE3/C,EAFF2/C,kBACA90B,EACE7qB,EADF6qB,QAEM3d,EAAWlV,EAAMvI,OAAjByd,OACR,EAAkC5M,mBAAS,CACzC1K,GAAI,EACJiuE,SAAU,GACV13C,WAAY,GACZC,UAAW,GACX8M,MAAO,GACP90B,SAAU,GACV8qE,UAAW,GACXnS,WAAW,EACXoS,UAAU,EACVtJ,cAAc,EACd94D,UAAW,CACT2gD,OAAQ,GACR5zC,QAAS,MAEXrY,OAAQ,CAAC,KAfX,mBAAOgO,EAAP,KAAkBwiD,EAAlB,KAiBA,EAA8B3xD,mBAAS,CACrC,CACEy7C,SAAU,EACVkG,aAAa,EACbD,eAAe,GAEjB,CACEjG,SAAU,EACVkG,aAAa,EACbD,eAAe,GAEjB,CACEjG,SAAU,EACVkG,aAAa,EACbD,eAAe,GAEjB,CACEjG,SAAU,EACVkG,aAAa,EACbD,eAAe,KAnBnB,mBAAO91B,EAAP,KAAgB+4B,EAAhB,KAsBA,EAAkC3kD,mBAAS,CACzCmB,OAAQ,CAAEo4B,UAAU,EAAMzgC,QAAS,IACnC8/B,MAAO,CAAEW,UAAU,EAAMzgC,QAAS,IAClC+yB,WAAY,CAAE0N,UAAU,EAAMzgC,QAAS,IACvCgzB,UAAW,CAAEyN,UAAU,EAAMzgC,QAAS,IACtCgL,SAAU,CAAEy1B,UAAU,EAAMzgC,QAAS,IACrC81E,UAAW,CAAEr1C,UAAU,EAAMzgC,QAAS,IACtCs0D,OAAQ,CAAE7zB,UAAU,EAAMzgC,QAAS,IACnC0gB,QAAS,CAAE+f,UAAU,EAAMzgC,QAAS,IACpCyqE,SAAU,CAAEhqC,UAAU,EAAMzgC,QAAS,MATvC,mBAAOsgC,EAAP,KAAkBsrB,EAAlB,KAWA,EAAwC1kD,mBAAS,IAAjD,mBAAOm7B,EAAP,KAAqB2zC,EAArB,KACA,EAAwD9uE,oBAAS,GAAjE,mBAAO+uE,EAAP,KAAgCC,EAAhC,KACA,EAA0ChvE,oBAAS,GAAnD,mBAAOivE,EAAP,KAAsBC,EAAtB,KACA,EAAkDlvE,oBAAS,GAA3D,mBAAOmvE,EAAP,KAA0BC,EAA1B,KACA,EAAkCpvE,mBAAS,CACzClH,QAAS,GACTY,KAAM,EACNqoD,UAAU,IAHZ,mBAAOstB,EAAP,KAAkBC,EAAlB,KAMAnvE,qBAAU,WAC0B,QAA9BT,EAAMhI,MAAMvI,OAAO4D,QAAkD,SAA9B2M,EAAMhI,MAAMvI,OAAO4D,OAC5D2M,EAAM2F,QAAQ9H,KAAK,QACoB,SAA9BmC,EAAMhI,MAAMvI,OAAO4D,QAAsB2M,EAAMhI,MAAMvI,OAAOyd,QACrElN,EAAM2F,QAAQ9H,KAAK,UAEpB,CAACmC,EAAMhI,MAAMvI,OAAQuQ,EAAM2F,UAE9BlF,qBAAU,WA4BJo1B,EAAWnoC,QAAU,EACvBg3E,IA5BqB,SAAC7uC,EAAY3oB,GAClC,IAAMo1D,EAAiBzsC,EAAW,GAAG1nC,KAC7BkF,EAAW2E,EAAMvI,OAAjB4D,OAKFooC,GAHK,SAAXpoC,EACIivE,EAAe5gE,QAAO,SAAA+N,GAAS,OAAIA,EAAU7Z,KAAO+a,SAASzD,EAAQ,OACrEo1D,GACoCz7D,KAAI,SAAAgpE,GAAG,MAAK,CAClD32C,MAAO22C,EAAI32C,MACX2qC,SAAUgM,EAAIhM,aAIhB,GAFAuL,EAAgB3zC,GAED,SAAXpoC,EAAmB,CACrB,IAAM6+D,EAAeoQ,EAAe5gE,QAAO,SAAA8Z,GAAC,OAAIA,EAAE5lB,KAAO+a,SAASzD,EAAQ,OAAK,GACzEwgD,EAAS/1B,GAAgBu6B,EAAanlD,UAAU2gD,OAAQ,oBACxDkY,EAAW11E,OAAOiU,OAAO,GAAI+tD,EAAanlD,UAAW,CAAE2gD,WAC7DuE,EAAa/hE,OAAOiU,OAClB,GACA+tD,EACA,CAAEnlD,UAAW64D,GACb,CAAEsJ,UAAWhd,EAAa9tD,YAE5B6gD,EAAW,YAAIiN,EAAahmC,WAO9B4jD,CAAej6C,EAAY79B,EAAMvI,OAAOyd,UAGzC,CAAC2oB,EAAY6uC,EAAgB1sE,EAAMvI,SAEtCgR,qBAAU,WACHoqB,GACHulD,MAED,CAACA,EAAevlD,IAEnB,IAAMujD,EAAU,SAACh0C,GACf,IAAMvjB,EAAOujB,EAAG5zB,OAAOqQ,KACjBlqB,EAAQytC,EAAG5zB,OAAO7Z,MAExBo5D,EAAa,CAAElvC,OAAMlqB,UACrBojF,EAAiB,CAAEl5D,OAAMlqB,WAGrBo5D,EAAe,SAAC,GAAqB,IAAnBlvC,EAAkB,EAAlBA,KAAMlqB,EAAY,EAAZA,MACxBulE,EAAeziD,EAEnB,OAAQoH,GACN,IAAK,SACHq7C,EAAar7C,GAAQ,CAAClqB,GACtB,MAEF,IAAK,SACHulE,EAAanlD,UAAU8J,GAAQ8gB,GAAmBhrC,GAClD,MAEF,IAAK,UACHulE,EAAanlD,UAAU8J,GAAQlqB,EAC/B,MAEF,QACEulE,EAAar7C,GAAQlqB,EAKzBslE,EAAa/hE,OAAOiU,OAAO,GAAI+tD,KAG3B6d,EAAmB,SAAC,GAAqB,IAAnBl5D,EAAkB,EAAlBA,KAAMlqB,EAAY,EAAZA,MAC5B+uC,EAAehC,EAEnB,OAAQ7iB,GACN,IAAK,QACH,IAAMgjB,EAAWZ,GAActsC,GAC/B+uC,EAAa7kB,GAAMgjB,SAAWA,EACzBA,GAE4D,IAAtD4B,EAAaE,WAAU,SAAAxiB,GAAE,OAAIA,EAAG+f,QAAUvsC,MACnD+uC,EAAa7kB,GAAMgjB,UAAW,EAC9B6B,EAAa7kB,GAAMzd,QAAU,cAAC,IAAD,CAAkBxD,GAAG,4BAA4BmM,eAAe,qDAE7F25B,EAAa7kB,GAAMgjB,UAAW,EAC9B6B,EAAa7kB,GAAMzd,QAAU,IAN7BsiC,EAAa7kB,GAAMzd,QAAU,cAAC,IAAD,CAAkBxD,GAAG,+BAA+BmM,eAAe,sBAQlG,MAEF,IAAK,aACL,IAAK,YACH,IAAM83B,EAAWltC,EAAMe,QAAU,EACjCguC,EAAa7kB,GAAMgjB,SAAWA,EACzBA,GAGH6B,EAAa7kB,GAAMgjB,UAAW,EAC9B6B,EAAa7kB,GAAMzd,QAAU,IAH7BsiC,EAAa7kB,GAAMzd,QAAU,cAAC,IAAD,CAAkBxD,GAAG,uBAAuBmM,eAAe,kDAK1F,MAEF,IAAK,WACH,GAAIpV,EAAMe,OAAS,EAAG,CACpBguC,EAAa7kB,GAAMgjB,UAAW,EAC9B6B,EAAa7kB,GAAMzd,QAAU,cAAC,IAAD,CAAkBxD,GAAG,uBAAuBmM,eAAe,kDACxF,MAEGg3B,GAAYtqC,KAAK9B,IAI8C,IAAzD8uC,EAAaE,WAAU,SAAAxiB,GAAE,OAAIA,EAAG0qD,WAAal3E,MACtD+uC,EAAa7kB,GAAMgjB,UAAW,EAC9B6B,EAAa7kB,GAAMzd,QAAU,cAAC,IAAD,CAAkBxD,GAAG,+BAA+BmM,eAAe,kEAEhG25B,EAAa7kB,GAAMgjB,UAAW,EAC9B6B,EAAa7kB,GAAMzd,QAAU,KAR7BsiC,EAAa7kB,GAAMgjB,UAAW,EAC9B6B,EAAa7kB,GAAMzd,QACjB,cAAC,IAAD,CAAkBxD,GAAG,oCAAoCmM,eAAe,kEAQ5E,MAEF,IAAK,WACH,IAAM83B,EAAWltC,EAAMe,QAAU,EAEjC,GADAguC,EAAa7kB,GAAMgjB,SAAWA,EACzBA,EAEE,CACL,IAAM20C,EAAkB7hF,IAAU8iB,EAAUy/D,UAC5CxzC,EAAawzC,UAAUr1C,SAAW20C,EAC7BA,IACH9yC,EAAawzC,UAAU91E,QAAU,cAAC,IAAD,CAAkBxD,GAAG,sCAAsCmM,eAAe,iDAL7G25B,EAAa7kB,GAAMzd,QAAU,cAAC,IAAD,CAAkBxD,GAAG,0CAA0CmM,eAAe,+CAQ7G,MAEF,IAAK,YACH,IAAM83B,EAAWltC,IAAU8iB,EAAUrL,SACrCs3B,EAAa7kB,GAAMgjB,SAAWA,EACzBA,IACH6B,EAAa7kB,GAAMzd,QAAU,cAAC,IAAD,CAAkBxD,GAAG,sCAAsCmM,eAAe,4CAEzG,MAEF,IAAK,SACH,IAAM83B,EAAoD,KAAzClC,GAAuBhrC,GAAOe,OAC/CguC,EAAa7kB,GAAMgjB,SAAWA,EACzBA,IACH6B,EAAa7kB,GAAMzd,QAAU,cAAC,IAAD,CAAkBxD,GAAG,yBAAyBmM,eAAe,sCAE5F,MAEF,QACE25B,EAAa7kB,GAAMgjB,UAAW,EAKlCmrB,EAAa90D,OAAOiU,OAAO,GAAIu3B,KAG3B2qB,GAAgB,SAACntD,EAAOugB,GAC5B,IAAM5C,EAAO3d,EAAMsN,OAAOqQ,KACpBlqB,EAAQuM,EAAMsN,OAAO7Z,MAE3Bs4D,EAAW/4B,EAAQrlB,KAAI,SAACsS,EAAI1rB,GAC1B,OAAIA,IAAMgsB,EACDvpB,OAAOiU,OAAO,GAAIgV,EAAlBjpB,OAAA,KAAAA,CAAA,GAAyB2mB,EAAOlqB,IAElCuD,OAAOiU,OAAO,GAAIgV,QAIvB4mB,GAAe,SAAC1Y,GACpB,IAAM5Z,EAAW4Z,EACjB,GAAI5Z,EAAU,CACZ,IAAMmtB,EAAYntB,EAASza,OACvB6nC,EAAW,GACf,GAAIptB,EAAStf,KAAM,CACjB,IAAMo4D,EAAUr2D,OAAOwF,KAAK+X,EAAStf,MAAM,GAC3C,OAAQo4D,GACN,IAAK,QACH1rB,EAAW,cAAC,IAAD,CAAmBjlC,GAAG,mBAAmBmM,eAAe,6EACnE,MAEF,IAAK,WACH84B,EAAW,cAAC,IAAD,CAAmBjlC,GAAG,sBAAsBmM,eAAe,6EACtE,MAEF,QACE84B,EAAWptB,EAAStf,KAAKo4D,GAAS,IAKxCqpB,EAAa,CACXx2E,QAASyhC,EACT7gC,KAAM4gC,EACNynB,UAAU,MAsEV/gD,GAAS,WACbtB,EAAM0E,wBAAwBU,MAAK,WACjCnC,aAAa6D,WAAW,SACxB7D,aAAa6D,WAAW,QACxB7D,aAAa6D,WAAW,UACxB7D,aAAa6D,WAAW,WACxB9G,EAAM2F,QAAQ9H,KAAK,UACnB1R,OAAOsM,SAASsO,aAIdsB,GAAsC,SAA9BrI,EAAMhI,MAAMvI,OAAO4D,OAAoB,cAAC,IAAD,CAAkBuC,GAAG,6BAA6BmM,eAAe,kBAAqB,cAAC,IAAD,CAAkBnM,GAAG,4BAA4BmM,eAAe,qBACrM+sE,GAC6B,KAA/Br/D,EAAU1C,UAAU2gD,QACpBx9D,OAAO2wB,OAAOpR,GAAW0wB,OAAM,SAAAhnB,GAAE,MAAW,KAAPA,MACrCjpB,OAAO2wB,OAAO6Y,GAAWyG,OAAM,SAAAhnB,GAAE,OAAIA,EAAG0gB,YACxChD,GAAU,GACVE,GAAW,GACf,GAAkC,SAA9B/2B,EAAMhI,MAAMvI,OAAO4D,OAAmB,CACxC,IAAMwiC,GAAa71B,EAAM61B,WAAW,GAAG1nC,KACvC0oC,GAAUpnB,EACNomB,GAAWn0B,QAAO,SAAA8Z,GAAC,OAAIA,EAAE5lB,KAAO6Z,EAAU1C,UAAU+pB,cAAY,QAChEzqC,EACJ0qC,GAAWtnB,EACPomB,GAAWn0B,QAAO,SAAA8Z,GAAC,OAAIA,EAAE5lB,KAAO6Z,EAAU1C,UAAUiqB,eAAa,QACjE3qC,EAGN,OACE,sBAAK6T,UAAU,2BAAf,UACGyvE,EAAUttB,UACT,cAAC,GAAD,CAAgBznB,UAAW+0C,EAAU31E,KAAM6gC,SAAU80C,EAAUv2E,QAAS0hC,aAAc,kBAAM80C,EAAa,CAAEx2E,QAAS,GAAIY,KAAM,EAAG21E,WAAW,OAE7IF,GACC,qBACE7zE,MAAO,CACLC,MAAO,OACPkmB,UAAW,SACXzf,MAAO,UACPma,aAAc,OALlB,SAQE,cAAC,IAAD,CAAkB7mB,GAAG,iCAAiCmM,eAAe,gDAGxEstE,GACC,cAAC,GAAD,CACER,eAjEe,SAACH,GACtB9pE,IAAMorE,IAAN,kBAAqBltE,KAArB,OhOlWO,kBgOkWP,yBACE4rE,EACA,CAAEzpE,QAAS,CAAEE,cAAc,SAAD,OAAW5B,QACpC6B,MAAK,SAACC,GACLiqE,GAAqB,GACrBI,GAAqB,GACrBh8E,YAAW,WACT4N,OACC,QAEJgE,OAAM,SAAC+hB,GACFA,EAAI5Z,SAAStf,KAAKwgF,cACpBa,GAAiB,OAqDjBjiD,WAAY,kBAAM+hD,GAAqB,IACvCf,cAAegB,IAGlB/lE,GAAWyhB,GAAaxhB,GAAWk2C,IAAsBhvC,SAASzD,EAAQ,IACzE,sBAAKhN,UAAWutB,KAAUhnB,UAA1B,UACA,qBAAKvG,UAAWutB,KAAUplB,MAA1B,SACGA,KAEFs3C,IAAsBhvC,SAASzD,EAAQ,KAA+B,SAAxBlV,EAAMvI,OAAO4D,QAC1D,qBAAK6M,UAAWwrB,KAAOjlB,UAAvB,SACE,wBACErG,QAAS,kBAAMkvE,GAAqB,IACpC1zE,MAAO,CAAE8X,MAAO,SAChBxT,UAAW,iCAHb,SAKE,cAAC,IAAD,CAAkBtK,GAAG,gCAAgCmM,eAAe,sBAI1E,uBAAM7B,UAAWutB,KAAUhnB,UAA3B,UACE,sBAAKvG,UAAWwrB,KAAOjlB,UAAvB,UACE,qBAAKvG,UAAWwrB,KAAO,mBAAvB,SAA2C,cAAC,IAAD,CAAkB91B,GAAG,6BAA6BmM,eAAe,iCAC5G,sBAAK7B,UAAWwrB,KAAO,qBAAvB,UAC2B,QAAxB1zB,EAAMvI,OAAO4D,OACV,cAAC,GAAD,CACAwjB,KAAK,WACL6W,SAAU0gD,EACV/lE,MAAO,cAAC,IAAD,CAAkBzS,GAAG,0BAA0BmM,eAAe,yBACrE23B,UAAWA,EAAUmqC,SACrBl3E,MAAO8iB,EAAUo0D,WAEjB,sBAAK3jE,UAAU,WAAWtE,MAAO,CAAEC,MAAO,QAA1C,UACA,uBAAMqE,UAAU,aAAatE,MAAO,CAAEimB,WAAY,UAAlD,UAA8D,cAAC,IAAD,CAAkBjsB,GAAG,qBAAqBmM,eAAe,uBAAvH,QACA,sBAAM7B,UAAWwrB,KAAO/+B,MAAxB,SACG8iB,EAAUo0D,cAIjB,sBAAK3jE,UAAU,WAAf,UACE,qBAAKA,UAAU,gCAAf,SACE,cAAC,GAAD,CACE2W,KAAK,aACL6W,SAAU0gD,EACV/lE,MAAO,cAAC,IAAD,CAAkBzS,GAAG,2BAA2BmM,eAAe,WACtE23B,UAAWA,EAAUvN,WACrBx/B,MAAO8iB,EAAU0c,eAGrB,qBAAKjsB,UAAU,gCAAf,SACE,cAAC,GAAD,CACE2W,KAAK,YACL6W,SAAU0gD,EACV/lE,MAAO,cAAC,IAAD,CAAkBzS,GAAG,0BAA0BmM,eAAe,gBACrE23B,UAAWA,EAAUtN,UACrBz/B,MAAO8iB,EAAU2c,iBAIvB,sBAAKlsB,UAAU,WAAf,UACI,qBAAKA,UAAU,gCAAf,SACE,cAAC,GAAD,CACE2W,KAAK,QACL6W,SAAU0gD,EACV/lE,MAAM,UACNqxB,UAAWA,EAAUR,MACrBvsC,MAAO8iB,EAAUypB,UAGrB,qBAAKh5B,UAAU,gCAAf,SACE,cAAC,GAAD,CACE8tB,UAAU,KACVnX,KAAK,SACL6W,SAAU0gD,EACV/lE,MAAO,cAAC,IAAD,CAAkBzS,GAAG,wBAAwBmM,eAAe,cACnE23B,UAAWA,EAAUg0B,OACrB/gE,MAAO8iB,EAAU1C,UAAU2gD,OAASj+C,EAAU1C,UAAU2gD,OAAS,UAIvE,qBAAKxtD,UAAU,WAAf,SACE,sBAAKA,UAAU,gCAAf,UACE,wBAAOA,UAAU,aAAastB,QAAQ,UAAtC,UACE,cAAC,IAAD,CAAkB53B,GAAG,oBAAoBmM,eAAe,YAD1D,KACqE,sBAAM7B,UAAWutB,KAAUmM,SAA3B,kBAGrE,cAAC,GAAD,CACEhkC,GAAG,UACHwrC,YAAW,wBAAmB3T,KAAU,mBACxCwM,MAAOtD,GAAY32B,EAAM6K,MACzBwvB,aAAa,EACb1tC,MAAQ8iB,EAAU1C,UAAU+M,QAAerK,EAAU1C,UAAU+M,QAAzB,GACtC4T,SAAU0gD,EACVv3D,KAAK,uBAMQ,QAAxB7e,EAAMvI,OAAO4D,QACZ,sBAAK6M,UAAWwrB,KAAOjlB,UAAvB,UACE,qBAAKvG,UAAWwrB,KAAO,mBAAvB,SAA2C,cAAC,IAAD,CAAkB91B,GAAG,gCAAgCmM,eAAe,YAC/G,sBAAK7B,UAAWwrB,KAAO,qBAAvB,UACE,cAAC,GAAD,CACE7U,KAAK,WACL6W,SAAU0gD,EACV/lE,MAAO,cAAC,IAAD,CAAkBzS,GAAG,0BAA0BmM,eAAe,YACrE7K,KAAK,WACLwiC,UAAWA,EAAUt1B,SACrBzX,MAAO8iB,EAAUrL,WAEnB,cAAC,GAAD,CACEyS,KAAK,YACL6W,SAAU0gD,EACV/lE,MAAO,cAAC,IAAD,CAAkBzS,GAAG,iCAAiCmM,eAAe,sBAC5E7K,KAAK,WACLwiC,UAAWA,EAAUw1C,UACrBviF,MAAO8iB,EAAUy/D,mBAMvBz/D,EAAUo2D,cACV,sBAAK3lE,UAAWwrB,KAAOjlB,UAAvB,UACE,qBAAKvG,UAAWwrB,KAAO,mBAAvB,SAA2C,cAAC,IAAD,CAAkB91B,GAAG,wBAAwBmM,eAAe,kBACvG,qBAAK7B,UAAU,sBAAf,SACE,qBAAKA,UAAU,oBAAf,SACE,sBAAKA,UAAU,oBAAf,UACE,sBAAKA,UAAU,WAAf,UACE,qBAAKA,UAAU,UACf,qBAAKA,UAAU,qCAAqCtE,MAAO,CAAEorD,cAAe,aAA5E,SAA2F,4CAC3F,qBAAK9mD,UAAU,qCAAqCtE,MAAO,CAAEorD,cAAe,aAA5E,SAA4F,6CAG7F96B,GACCA,EAAQrlB,KAAI,SAACuB,EAAQqR,GAAT,OACV,sBAA2BvZ,UAAU,wCAArC,UACE,qBAAKA,UAAU,wBAAf,SACGuV,GAAmBrN,EAAO2zC,SAAU,gBAGvC,cAAC,GAAD,CACEllC,KAAK,gBACL3W,UAAS,UAAKtE,KAAMsmC,SAAX,UACT1H,QAAStO,EAAQzS,GAAOuoC,cACxBt0B,SAAU,SAAA0M,GAAE,OAAIisB,GAAcjsB,EAAI3gB,MAEpC,cAAC,GAAD,CACE5C,KAAK,cACL3W,UAAS,UAAKtE,KAAMsmC,SAAX,UACT1H,QAAStO,EAAQzS,GAAOwoC,YACxBv0B,SAAU,SAAA0M,GAAE,OAAIisB,GAAcjsB,EAAI3gB,QAf5BrR,EAAO2zC,uBAwBN,SAAxB/jD,EAAMvI,OAAO4D,QACZ,sBAAK6M,UAAWwrB,KAAOjlB,UAAvB,UACE,qBAAKvG,UAAWwrB,KAAO,mBAAvB,kBACA,sBAAKxrB,UAAU,gBAAf,UACE,sBAAKA,UAAU,uDAAf,UACE,uBAAMA,UAAU,cAAhB,UAA8B,cAAC,IAAD,CAAkBtK,GAAG,mBAAmBmM,eAAe,0BAArF,QACA,sBAAM7B,UAAU,cAAhB,SACGuP,EAAU1C,UAAU2rB,aACjBf,GAA8BloB,EAAU1C,UAAU2rB,cAClD,SAGR,sBAAKx4B,UAAU,uDAAf,UACE,uBAAMA,UAAU,cAAhB,UAA8B,cAAC,IAAD,CAAkBtK,GAAG,iBAAiBmM,eAAe,eAAnF,QACC80B,GACG,sBAAM32B,UAAU,cAAhB,mBAAkC22B,GAAQ1K,WAA1C,YAAwD0K,GAAQzK,aAChE,sBAAMlsB,UAAU,cAAhB,oBAEN,sBAAKA,UAAU,uDAAf,UACE,uBAAMA,UAAU,cAAhB,UAA8B,cAAC,IAAD,CAAkBtK,GAAG,oBAAoBmM,eAAe,8BAAtF,QACA,sBAAM7B,UAAU,cAAhB,SACGuP,EAAU1C,UAAU0rB,cACjBd,GACAloB,EAAU1C,UAAU0rB,eAEpB,SAGR,sBAAKv4B,UAAU,uDAAf,UACE,uBAAMA,UAAU,cAAhB,UAA8B,cAAC,IAAD,CAAkBtK,GAAG,kBAAkBmM,eAAe,mBAApF,QACCg1B,GACG,sBAAM72B,UAAU,cAAhB,mBAAkC62B,GAAS5K,WAA3C,YAAyD4K,GAAS3K,aAClE,sBAAMlsB,UAAU,cAAhB,0BAIV,sBAAKA,UAAU,aAAf,UACE,yBACEhJ,KAAK,SACLgJ,UAAU,qCACVE,QAASJ,EAAM2F,QAAQsqE,OAHzB,UAKE,+BAAM,mBAAG/vE,UAAU,sBAAsB,cAAY,OAAOtE,MAAO,CAAEgM,aAAa,OAAQC,WAAY,cACtG,cAAC,IAAD,CAAkBjS,GAAG,qBAAqBmM,eAAe,gBAE1D+sE,GACG,yBACA53E,KAAK,SACL6Q,UAAU,EACV7H,UAAW,uCACXE,QApUI,WAClB,IAAMstD,EAAS/1B,GAAuBloB,EAAU1C,UAAU2gD,OAAQ,QAC5DkY,EAAW11E,OAAOiU,OACtB,GACAwzB,GAAoBloB,EAAU1C,UAAW,CAAC,QAAS,OAAQ,iBAC3D,CAAE2gD,WAEEwiB,EAA6C,QAA9BlwE,EAAMhI,MAAMvI,OAAO4D,OAAmB,CAAC,YAAa,MAAQ,CAAC,aAC5E88E,EAAkBjgF,OAAOiU,OAC7B,GACAwzB,GAAoBloB,EAAWygE,GAC/B,CAAEzuE,OAAQ,CAAC,EAAGopB,EAAQj1B,KACtB,CAAEmX,UAAW64D,GACb,CAAE15C,YAGErhB,EAAQ5H,aAAauS,cAAuBvS,aAAauS,cAApB,KACrCngB,EAAI,UAAMu8B,GAAkB/mB,GAAM,uBAA9B,YAAwDslE,EAAgBhkD,WAAxE,YAAsFgkD,EAAgB/jD,UAAtG,YAA2I,SAAxBp0B,EAAMvI,OAAO4D,OACtIu+B,GAAkB/mB,GAAM,qBACxB+mB,GAAkB/mB,GAAM,oBAGM,SAA9B7K,EAAMhI,MAAMvI,OAAO4D,OACrB2M,EAAM6kE,cAAcsL,GAAiB/qE,MAAK,WACxCuyB,GAAkB/yB,IAAO5E,EAAM6Y,UAAW,CACxC3hB,KAAM,YACN7D,OAAQ,OACR6Z,OAAQyyC,EACRtqD,OACA86E,oBAEFnwE,EAAM2F,QAAQ9H,KAAK,4BAClByH,OAAM,SAAC+hB,GAAD,OAAS0Y,GAAa1Y,MAE/BrnB,EAAM4kE,gBAAgBuL,GAAiB/qE,MAAK,SAACC,GAC3CsyB,GAAkB/yB,IAAO5E,EAAM6Y,UAAW,CACxC3hB,KAAM,YACN7D,OAAQ,SACR6Z,OAAQyyC,EACRlwC,UAAWpK,EAAIoK,UACfpa,SAEF2K,EAAM2F,QAAQ9H,KAAK,4BAClByH,OAAM,SAAC+hB,GAAD,OAAS0Y,GAAa1Y,OAqRnB,UAMA,qCAAO,mBAAGnnB,UAAU,oBAAoB,cAAY,OAAOtE,MAAO,CAAEgM,aAAa,OAAQC,WAAY,eACrG,cAAC,IAAD,CAAkBjS,GAAG,mBAAmBmM,eAAe,cAEvD,yBAAQ7K,KAAK,SAAS6Q,UAAQ,EAAC7H,UAAW,yCAA1C,UACA,qCAAO,mBAAGA,UAAU,oBAAoB,cAAY,OAAOtE,MAAO,CAAEgM,aAAa,OAAQC,WAAY,eACrG,cAAC,IAAD,CAAkBjS,GAAG,mBAAmBmM,eAAe,uBAKjE,qBAAK7B,UAAU,6BAAf,SACA,qBAAKA,UAAU,eAAf,SAA8B,cAAC,IAAD,CAAkBtK,GAAG,8BAA8BmM,eAAe,+EChZzF5H,0BAhBf,SAAyB6E,EAAOmC,GAC9B,MAAO,CACLmgB,OAAQtiB,EAAMsiB,OACd1d,KAAM5E,EAAMoC,gBACZ3R,OAAQ0R,EAAS1R,WAIrB,SAA4BkV,GAC1B,MAAO,CACLyhE,WAAY,SAAA32E,GAAM,OAAIkV,EAASwiE,GAAyB13E,KACxD42E,UAAW,SAAA3vD,GAAK,OAAI/R,EAASwiE,GAAwBzwD,KACrD25D,YAAa,SAAA35D,GAAK,OAAI/R,EjBjNnB,SAAqB+R,GAC1B,IAAM3e,EAAS+K,IACTY,EAAQH,IAEd,OAAO,SAACoB,EAAU4I,EAAX,OAAuB3I,EAAvB,EAAuBA,MAAvB,OAAmC,IAAIC,SAAQ,SAACC,EAASC,GAAV,OACpDH,EAAM,CACJvR,OAAQ,OACR2R,aAAc,OACdnV,IAAI,WAAD,OAAakI,GAAb,OhNtCE,kBgNsCF,2BACH5J,KAAMuoB,EACNzR,QAAS,CAAEE,cAAc,SAAD,OAAWzB,MAEpC0B,MAAK,SAACC,GAAD,OAASP,EAAQH,EAASuhE,GAAS7gE,EAAIlX,WAC5CmX,OAAM,SAACxU,GACN,OAAIA,EAAM2c,SACsB,MAA1B3c,EAAM2c,SAASza,OACV+R,EAAOJ,EAAS2I,MAElBvI,EAAOjU,EAAM2c,UAEf1I,EAAO,WiB6LeoiE,CAA0BzwD,QAI9Cvc,EA1OG,SAAC6F,GACjB,IAAMomE,EAAapmE,EAAMomE,WACnB/yE,EAAS2M,EAAMhI,MAAMvI,OAAO4D,OAC5Bi9E,EAAUtwE,EAAMhI,MAAMvI,OAAO6gF,QACnC,EAAgChwE,mBAAS,CACvCuW,KAAM,GACN7c,KAAM,GACN9C,KAAM,MACN6kD,SAAU,EACVplC,aAAa,IALf,mBAAOD,EAAP,KAAc65D,EAAd,KAOA,EAAkCjwE,mBAAS,IAA3C,mBAAOkwE,EAAP,KAAkBC,EAAlB,KACA,EAAkCnwE,mBAAS,CACzCuW,KAAiB,SAAXxjB,EACN2G,KAAiB,SAAX3G,EACN6D,MAAM,EACN6kD,SAAqB,SAAX1oD,EACVsjB,aAAa,IALf,mBAAO+iB,EAAP,KAAkBsrB,EAAlB,KAQAvkD,qBAAU,WAeoB,IAAxBT,EAAMshB,OAAO5zB,OACf04E,IAfe,SAAC9kD,GAChB,GAAMA,GAAYA,EAAOnzB,KAAM,CAC7B,IAGMuiF,GAH4B,SAAXr9E,EACnBiuB,EAAOnzB,KAAKuT,QAAO,SAAAgV,GAAK,OAAIA,EAAM9gB,KAAO+a,SAAS2/D,EAAS,OAC3DhvD,EAAOnzB,MACsB0Y,KAAI,SAAA8pE,GAAI,OAAIA,EAAK32E,QAElD,GADAy2E,EAAaC,GACE,SAAXr9E,EAAmB,CACrB,IAAM6yE,EAAW5kD,EAAOnzB,KAAKiV,MAAK,SAAAutE,GAAI,OAAIA,EAAK/6E,KAAO+a,SAAS2/D,EAAS,OACxEC,EAAergF,OAAOiU,OAAO,GAAI+hE,MAQrCa,CAAS/mE,EAAMshB,OAAO,MAEvB,CAACthB,EAAMshB,OAAQ8kD,EAAYkK,EAASj9E,IAEvC,IAAMo7B,EAAe,SAAC2L,EAAIyB,GACxB,IAAMja,EAAQwY,EAAG5zB,OAAOqQ,KAClBlqB,EAAQytC,EAAG5zB,OAAO7Z,MAEtB4jF,EADY,aAAV3uD,EACa1xB,OAAOiU,OAAO,GAAIuS,EAAlBxmB,OAAA,KAAAA,CAAA,GAA4B0xB,EAAQnM,GAAmB9oB,EAAO,cAE9DuD,OAAOiU,OAAO,GAAIuS,EAAlBxmB,OAAA,KAAAA,CAAA,GAA4B0xB,EAAQj1B,KAErDq4D,EAAa90D,OAAOiU,OAAO,GAAIu1B,EAAlBxpC,OAAA,KAAAA,CAAA,GAAgC0xB,EAAQia,MA+CjD+0C,EAhCG1gF,OAAOwF,KAAKgkC,GAAWyG,OAAM,SAAAzV,GAAG,OAAuB,IAAnBgP,EAAUhP,MAiCjDriB,EAAmB,SAAXhV,EACV,cAAC,IAAD,CAAkBuC,GAAG,oBAAoBmM,eAAe,kBACxD,cAAC,IAAD,CAAkBnM,GAAG,mBAAmBmM,eAAe,qBACrDgG,EAAW2O,EAAMC,YAAc,WAAa,GAElD,OACE,qBAAKzW,UAAU,2BAA2BtE,MAAO,CAAEykC,UAAW,UAA9D,SACE,sBAAKngC,UAAU,iBAAf,UACE,qBAAKA,UAAU,aAAf,SAA6BmI,IAC7B,uBAAMnI,UAAU,YAAhB,UACE,sBAAKA,UAAU,eAAf,UACE,qBAAKA,UAAU,cAAf,SACE,cAAC,IAAD,CAAkBtK,GAAG,sBAAsBmM,eAAe,wBAE5D,sBAAK7B,UAAU,kBAAf,UACE,sBAAKA,UAAU,gCAAf,UACE,wBAAOA,UAAU,aAAastB,QAAQ,OAAtC,UACE,cAAC,IAAD,CAAkB53B,GAAG,cAAcmM,eAAe,cAClD,sBAAM7B,UAAU,gBAAhB,kBAEF,cAAC,GAAD,CACE05B,UAAQ,EACR1iC,KAAK,OACL2f,KAAK,OACLg6D,cAAe,EACf9oE,SAAUA,EACV8xB,SAvEK,SAACltC,GACpB,IACM6sB,EADM7sB,EAAM+E,MAAM,IACRgQ,QAAO,SAAAyX,GAAE,MAAI,KAAK1qB,KAAK0qB,MAAKxnB,KAAK,IACjD,OAAI6nB,IAAQ7sB,EACH6sB,GAC8B,IAA5Bg3D,EAAU1gF,QAAQ0pB,IAGtB,EAAC,EAAO,2CAgED7sB,MAAO+pB,EAAM1c,KACb0zB,SAAUe,EACVw0B,SAAO,EACPC,QAAM,EACNR,WAAW,yCACXD,WAAW,4CACXU,eAAe,oBAEjB,0BAEF,sBAAKjjD,UAAU,gCAAf,UACE,wBAAOA,UAAU,aAAastB,QAAQ,OAAtC,UAA6C,cAAC,IAAD,CAAkB53B,GAAG,cAAcmM,eAAe,SAA/F,IAAyG,sBAAM7B,UAAU,gBAAhB,eAAzG,OACA,cAAC,GAAD,CACE05B,UAAQ,EACR1iC,KAAK,OACL2f,KAAK,OACLi6D,cAAe,EACfD,cAAe,GACf9oE,SAAUA,EACVpb,MAAO8pB,GAAcC,GACrBgX,SAAUe,EACVi0B,WAAW,yCACXD,WAAW,4CACXU,eAAe,oBAEjB,0BAEF,sBAAKjjD,UAAU,gCAAf,UACE,wBAAOA,UAAU,aAAastB,QAAQ,WAAtC,UAAiD,cAAC,IAAD,CAAkB53B,GAAG,kBAAkBmM,eAAe,eACrG,sBAAM7B,UAAU,gBAAhB,eADF,OAEA,cAAC,GAAD,CACEkhC,YAAY,+CACZnH,MAAO,CAAC,EAAG,EAAG,EAAG,GACjBD,WAAYzkB,GACZ5oB,MAAO+pB,EAAMqlC,SACbruB,SAAUe,EACV5X,KAAK,sBAKb,sBAAK3W,UAAU,aAAatE,MAAO,CAAEI,SAAU,YAA/C,UACE,yBAAQ9E,KAAK,SAASgJ,UAAU,qCAAqCE,QAAS,kBAAMJ,EAAM2F,QAAQ9H,KAAK,uBAAvG,UACE,+BACE,mBAAGqC,UAAU,sBAAsB,cAAY,OAAOtE,MAAO,CAAEgM,aAAc,OAAQC,WAAY,cAEnG,cAAC,IAAD,CAAkBjS,GAAG,qBAAqBmM,eAAe,gBAE3D,yBACE7K,KAAK,SACL6Q,UAAW6oE,EACXxwE,QAAS,kBA5GH,WAChB,IAAMyK,EAAQ5H,aAAauS,cAAuBvS,aAAauS,cAApB,KACrCngB,EAAI,UAAMu8B,GAAkB/mB,GAAM,mBAA9B,aAAqD6L,EAAM1c,KAA3D,aAAoE0c,EAAMG,KAA1E,YACG,SAAXxjB,EAAoBu+B,GAAkB/mB,GAAM,qBAAuB+mB,GAAkB/mB,GAAM,oBAC9E,SAAXxX,EACF2M,EAAMqmE,UAAU3vD,GAAOtR,MAAK,WAC1BwT,GAAUhU,IAAO5E,EAAM6Y,UAAW,CAChC3hB,KAAM,QACN7D,OAAQ,OACR6Z,OAAQlN,EAAM4D,KAAKhO,GACnBP,OACAqhB,UAEF1W,EAAM2F,QAAQ9H,KAAK,yBAGrBmC,EAAMqwE,YAAY35D,GAAOtR,MAAK,SAACC,GAC7BuT,GAAUhU,IAAO5E,EAAM6Y,UAAW,CAChC3hB,KAAM,QACN7D,OAAQ,SACR6Z,OAAQlN,EAAM4D,KAAKhO,GACnB8gB,MAAOrR,EAAIqR,MACXrhB,SAEF2K,EAAM2F,QAAQ9H,KAAK,yBAoFEkzE,IACf7wE,UAAS,8BAAyB0wE,EAAU,mBAAqB,sBAJnE,UAME,+BAAM,mBAAG1wE,UAAU,oBAAoB,cAAY,OAAOtE,MAAO,CAAEgM,aAAc,OAAQC,WAAY,cACrG,cAAC,IAAD,CAAkBjS,GAAG,mBAAmBmM,eAAe,4B,qBCrL/DivE,GAAgB,WAqXP72E,0BAff,SAAyB6E,EAAOmC,GAC9B,MAAO,CACL2pB,UAAW9rB,EAAMyC,OAAOC,QAAO,SAAAC,GAAG,OAAK,CAAC,EAAG,EAAG,EAAG,GAAGC,SAASD,EAAI/L,OACjEnG,OAAQ0R,EAAS1R,OACjB2R,gBAAiBpC,EAAMoC,oBAI3B,SAA4BuD,GAC1B,MAAO,CACLyrE,cAAe,kBAAMzrE,EAAS0kE,OAC9B4H,YAAa,SAAApmD,GAAO,OAAIlmB,EbpWrB,SAAmBoxB,GACxB,IAAMh+B,EAAS+K,IACTY,EAAQH,IAEd,OAAO,SAACoB,EAAU4I,EAAX,OAAuB3I,EAAvB,EAAuBA,MAAvB,OAAmC,IAAIC,SAAQ,SAACC,EAASC,GAAV,OACpDH,EAAM,CACJvR,OAAQ0iC,EAAMngC,GAAK,EAAI,MAAQ,OAC/BoP,aAAc,OACdnV,IAAI,WAAD,OAAakI,GAAb,OrN7BE,kBqN6BF,4BAAgDg+B,EAAMngC,GAAN,UAAcmgC,EAAMngC,GAApB,KAA4B,IAC/EzH,KAAM4nC,EACN9wB,QAAS,CAAEE,cAAc,SAAD,OAAWzB,MAEpC0B,MAAK,kBAAMN,EAAQH,EAASskE,UAC5B3jE,OAAM,SAACxU,GACN,OAAIA,EAAM2c,SACsB,MAA1B3c,EAAM2c,SAASza,OACV+R,EAAOJ,EAAS2I,MAElBvI,EAAOjU,EAAM2c,UAEf1I,EAAO,WagViBskE,CAAwBx+C,QAI9C1wB,EAnXK,SAAC6F,GACnB,IACE8qB,EAIE9qB,EAJF8qB,UACAslD,EAGEpwE,EAHFowE,cACAp4E,EAEEgI,EAFFhI,MACAoJ,EACEpB,EADFoB,gBAGIonE,EAAe19C,EAAU7e,MAAK,SAAA4e,GAAO,OAAIzpB,EAAgBK,OAAOG,SAASipB,EAAQj1B,OAEvF,EAAkC0K,mBAAS,GAA3C,mBAAOkB,EAAP,KAAkByrB,EAAlB,KACA,EAAsC3sB,mBAAS,IAA/C,mBAAOwqE,EAAP,KAAoBoG,EAApB,KACA,EAAsC5wE,mBAAS,SAA/C,mBAAO6wE,EAAP,KAAoBC,EAApB,KACA,EAAkC9wE,mBAAS,IAA3C,mBAAO+wE,EAAP,KAAkBC,EAAlB,KACA,EAAoDhxE,mBAAS,IAA7D,mBAAOixE,EAAP,KAA2BC,EAA3B,KACA,EAA8ClxE,mBAAS,IAAvD,mBAAOmxE,EAAP,KAAwBC,EAAxB,KACA,EAAkCpxE,mBAAS,CACzCwqE,YAAqC,SAAxB9yE,EAAMvI,OAAO4D,SAD5B,mBAAOqmC,EAAP,KAAkBsrB,EAAlB,KAGA,EAA0B1kD,oBAAS,GAAnC,mBAAOxP,EAAP,KAAcmtC,EAAd,KACA,EAAgC39B,mBAAS,IAAzC,mBAAOu6B,EAAP,KAAiBqD,EAAjB,KACA,EAAkC59B,mBAAS,GAA3C,mBAAOs6B,EAAP,KAAkBuD,EAAlB,KAEA19B,qBAAU,WACJqqB,EAAUp9B,QAAU,GACtB0iF,MAED,CAACtlD,EAAWslD,IAEf3vE,qBAAU,WAKR,GAJGqqB,GACD4mD,EAAmB5mD,EAAUjkB,KAAI,SAAAgkB,GAAO,OAAIA,EAAQhU,SAG1B,SAAxB7e,EAAMvI,OAAO4D,OAAmB,CAAC,IAAD,EAC5Bw3B,EAAUC,EAAU1nB,MAAK,SAAAuuE,GAAK,OAAIA,EAAM/7E,KAAO+a,SAAS3Y,EAAMvI,OAAO+R,UAAW,OACtF0vE,EAAermD,EAAQhU,MACnBgU,EAAQgW,WAAWnzC,OAAS,IAC9B4jF,EAAazmD,EAAQgW,YACrB2wC,EAAsB3mD,EAAQgW,WAAWh6B,KAAI,iBAAO,CAClDm6B,YAAa,CAAEnH,UAAU,EAAMzgC,QAAS,IACxC8nC,YAAa,CAAErH,UAAU,EAAMzgC,QAAS,WAI5C,OAAIyxB,QAAJ,IAAIA,GAAJ,UAAIA,EAAS+mD,oBAAb,aAAI,EAAuBjlF,QACzBykF,EAAevmD,EAAQ+mD,aAAajlF,OAGtCsgC,EAAatc,SAAS3Y,EAAMvI,OAAO+R,eAEpC,CAACspB,EAAW9yB,EAAMvI,OAAO+R,UAAWxJ,EAAMvI,OAAO4D,SAEpD,IAAMo7B,EAAe,SAAC2L,EAAIyB,GAExB,IAAMlvC,EAAQytC,EAAG5zB,OAAO7Z,MAClBkqB,EAAOujB,EAAG5zB,OAAOqQ,KAGvB,OAFA7lB,QAAQC,IAAI,iBACZD,QAAQC,IAAImpC,EAAG5zB,OAAOqQ,MACdA,GACN,IAAK,cACEmiB,GAAWvqC,KAAK9B,IAMnBukF,EAAevkF,GACfq4D,EAAa,CACX8lB,YAAajvC,MAPfq1C,EAAevkF,GACfq4D,EAAa,CACX8lB,aAAa,KAQjB,MAEF,IAAK,cACHsG,EAAezkF,KAiEfklF,EAAc,SAACz3C,EAAI3gB,GACvB,IAAMq4D,EAAY13C,EAAG5zB,OAAOqQ,KAAKnlB,MAAM,KAAK,GACtC/E,EAAQytC,EAAG5zB,OAAO7Z,MAElBolF,EAAeV,EAAUxqE,KAAI,SAACsS,EAAI1rB,GACtC,OAAIA,IAAMgsB,EACDvpB,OAAOiU,OAAO,GAAIgV,EAAlBjpB,OAAA,KAAAA,CAAA,GAAyB4hF,EAAYnlF,IAEvCuD,OAAOiU,OAAO,GAAIgV,MAGrB64D,EAAwBT,EAAmB1qE,KAAI,SAAC6yB,EAAWjsC,GAC/D,GAAIA,IAAMgsB,EAAO,CACf,IAAIoiB,GAAU,EACVziC,EAAU,GASd,OARIzM,EAAMe,OAAS,IACjBmuC,GAAU,EACVziC,EAAU,oDAEP43E,GAAcviF,KAAK9B,KACtBkvC,GAAU,EACVziC,EAAU,oCAELlJ,OAAOiU,OAAO,GAAIu1B,EAAlBxpC,OAAA,KAAAA,CAAA,GACJ4hF,EAAY,CAAEj4C,SAAUgC,EAASziC,aAGtC,OAAOlJ,OAAOiU,OAAO,GAAIu1B,MAG3B83C,EAAsBQ,GACtBV,EAAaS,IA0BTnrB,EAzGG12D,OAAOwF,KAAKgkC,GAAWyG,OAAM,SAAAhnB,GAAE,OAAsB,IAAlBugB,EAAUvgB,MA0GhD9Q,GAAgC,SAAxBrQ,EAAMvI,OAAO4D,OAAoB,cAAC,IAAD,CAAkBuC,GAAG,uBAAuBmM,eAAe,mBAAsB,cAAC,IAAD,CAAkBnM,GAAG,sBAAsBmM,eAAe,sBAI1L,OAFA/Q,QAAQC,IAAI65B,GAGV,gCACGh6B,GACC,cAAC,GAAD,CAAgB8pC,UAAWA,EAAWC,SAAUA,EAAUC,aAdxC,WACtBmD,GAAS,GACTC,EAAY,IACZC,EAAa,MAaX,qBAAKj+B,UAAU,2BAA2BtE,MAAO,CAAEykC,UAAW,UAA9D,SACE,sBAAKngC,UAAU,iBAAf,UACE,qBAAKA,UAAU,aAAf,SAA6BmI,KAC7B,uBAAMnI,UAAU,SAAhB,UACE,qBAAKA,UAAU,cAAf,SAA6B,cAAC,IAAD,CAAkBtK,GAAG,sBAAsBmM,eAAe,wBACvF,sBAAK7B,UAAU,WAAf,UACE,qBAAKA,UAAU,WAAf,SACE,sBAAKA,UAAU,aAAf,UACE,wBAAOA,UAAU,aAAastB,QAAQ,cAAtC,UAAoD,cAAC,IAAD,CAAkB53B,GAAG,iBAAiBmM,eAAe,SAAzG,IAAmH,sBAAM7B,UAAU,gBAAhB,kBACnH,cAAC,GAAD,CACEhJ,KAAK,OACL2f,KAAK,cACL+iB,UAAQ,EACRi3C,cAAe,EACfh3C,SAzIG,SAACltC,GACpB,OAAIA,EAAMe,QAAU,EACX,EAAC,EAAO,KAET+jF,EAAgB7vE,SAASjV,IAsIjBA,MAAOm+E,EACPp9C,SAAUe,EACVw0B,SAAO,EACPC,QAAM,EACNR,WAAW,yCACXD,WAAW,4CACXU,eAAgBvnD,KAAM,qBAExB,6BAGF4sE,GACA,qBAAKtoE,UAAU,WAAf,SACE,sBAAKA,UAAU,aAAf,UACE,wBAAOA,UAAU,aAAastB,QAAQ,cAAtC,UAAoD,cAAC,IAAD,CAAkB53B,GAAG,wBAAwBmM,eAAe,8BAAhH,IAA4I,sBAAM7B,UAAU,gBAAhB,kBAC5I,cAAC,GAAD,CACEhJ,KAAK,OACL2f,KAAK,cACL+iB,UAAQ,EACRi3C,cAAe,EACflkF,MAAOwkF,EACPzjD,SAAUe,EACVpV,KAAM,CAAC,QAAS,UAChB4pC,SAAO,EACPC,QAAM,EACNR,WAAW,yCACXD,WAAW,4CACXU,eAAgBvnD,KAAM,qBAExB,gCAKN4sE,GACA,sBAAK5sE,MAAO,CAAEM,UAAW,QAAzB,UACE,qBAAKgE,UAAU,cAAf,SAA6B,cAAC,IAAD,CAAkBtK,GAAG,wBAAwBmM,eAAe,sBAD3F,OAEGsvE,QAFH,IAEGA,OAFH,EAEGA,EAAWxqE,KAAI,SAACsS,EAAIM,GAAL,OACd,sBAA4BvZ,UAAU,qBAAtC,UACE,qBAAKA,UAAU,WAAf,SACE,cAAC,GAAD,CACE2W,KAAI,sBAAiB4C,GACrBuU,UAAU,IACV3lB,MAAO,cAAC,IAAD,CAAkBzS,GAAG,4BAA4BmM,eAAe,oBACvEpV,MAAOwsB,EAAG+nB,YACVxH,UAAW63C,EAAmB93D,GAAOynB,YACrCxT,SAAU,SAAC0M,GAAD,OAAQy3C,EAAYz3C,EAAI3gB,QAGtC,qBAAKvZ,UAAU,WAAf,SACE,cAAC,GAAD,CACE2W,KAAI,sBAAiB4C,GACrBuU,UAAU,IACV3lB,MAAO,cAAC,IAAD,CAAkBzS,GAAG,4BAA4BmM,eAAe,oBACvEpV,MAAOwsB,EAAG6nB,YACVtH,UAAW63C,EAAmB93D,GAAOunB,YACrCtT,SAAU,SAAC0M,GAAD,OAAQy3C,EAAYz3C,EAAI3gB,QAGtC,qBAAKvZ,UAAU,WAAf,SACE,wBAAQA,UAAU,MAAMtE,MAAO,CAAEC,MAAO,OAAQK,UAAW,QAAUkE,QAAS,SAACg6B,GAAD,OApG9E,SAACA,EAAI3gB,GACvB2gB,EAAGrF,iBACHu8C,EAAa,GAAD,mBAAKD,EAAUlgF,MAAM,EAAGsoB,IAAxB,YAAmC43D,EAAUlgF,MAAMsoB,EAAQ,MACvE+3D,EAAsB,GAAD,mBAChBD,EAAmBpgF,MAAM,EAAGsoB,IADZ,YAEhB83D,EAAmBpgF,MAAMsoB,EAAQ,MA+FkEw4D,CAAY73C,EAAI3gB,IAAtG,SACE,mBAAGvS,MAAM,2BAvBf,gBAAmBuS,OA4BrB,qBAAKvZ,UAAU,aACf,qBAAKA,UAAU,MAAMtE,MAAO,CAAE6gB,aAAc,OAAQvgB,UAAW,QAA/D,SACE,qBAAKgE,UAAU,SAAf,SACE,yBAAQhJ,KAAK,SAASgJ,UAAU,uCAAuCE,QArHxE,WACfkxE,EAAa,GAAD,mBAAKD,GAAL,CAAgB,CAAEnwC,YAAa,GAAIF,YAAa,OAC5DwwC,EAAsB,GAAD,mBAAKD,GAAL,CAAyB,CAC5CvwC,YAAa,CAAEnH,UAAU,EAAMzgC,QAAS,IACxC8nC,YAAa,CAAErH,UAAU,EAAMzgC,QAAS,SAiH1B,UACE,mBAAG8N,MAAM,iBAAiBtL,MAAO,CAAEgM,aAAc,UACjD,cAAC,IAAD,CAAkBhS,GAAG,0BAA0BmM,eAAe,8BAMxE,sBAAK7B,UAAU,aAAf,UACE,yBAAQhJ,KAAK,SAASgJ,UAAU,qCAAqCE,QAAS,kBAAMJ,EAAM2F,QAAQ9H,KAAK,0BAAvG,UACE,+BACE,mBAAGqC,UAAU,sBAAsB,cAAY,OAAOtE,MAAO,CAAEgM,aAAc,OAAQC,WAAY,cAEnG,cAAC,IAAD,CAAkBjS,GAAG,qBAAqBmM,eAAe,gBAE1D6kD,EACC,yBAAQ1vD,KAAK,SAAS6Q,UAAU,EAAO7H,UAAW,uCAAwCE,QAxMpF,WAClBJ,EAAMixE,YAZU,CACdr7E,GAAI4L,EACJqV,KAAMi0D,EACNjqC,WAAYwwC,EACZO,aAAc,CACZjlF,MAAOwkF,KAO8B/rE,MAAK,WAC5CpF,EAAM2F,QAAQ9H,KAAK,4BAClByH,OAAM,SAAC+hB,GACR,IAAMl5B,EAAOk5B,EAAIl5B,KAEjB,OADgBA,EAAO+B,OAAOwF,KAAKvH,GAAM,QAAK9B,GAE5C,IAAK,SACH6xC,EAAY,cAAC,IAAD,CAAkBtoC,GAAG,yBAAyBmM,eAAe,kEACzEk8B,GAAS,GACTE,EAAa,KACb,MAEF,IAAK,aACHD,EAAY,cAAC,IAAD,CAAkBtoC,GAAG,6BAA6BmM,eAAe,iDAC7Ek8B,GAAS,GACTE,EAAa,KACb,MAEF,IAAK,YACHD,EAAY,cAAC,IAAD,CAAkBtoC,GAAG,4BAA4BmM,eAAe,yFAC5Ek8B,GAAS,GACTE,EAAa,KAOjBntC,QAAQC,IAAIo2B,OA2KF,UACE,+BACE,mBAAGnnB,UAAU,oBAAoB,cAAY,OAAOtE,MAAO,CAAEgM,aAAc,OAAQC,WAAY,cAEjG,cAAC,IAAD,CAAkBjS,GAAG,mBAAmBmM,eAAe,cAGzD,yBAAQ7K,KAAK,SAAS6Q,UAAQ,EAAC7H,UAAW,yCAA1C,UACE,+BACE,mBAAGA,UAAU,oBAAoB,cAAY,OAAOtE,MAAO,CAAEgM,aAAc,OAAQC,WAAY,cAEjG,cAAC,IAAD,CAAkBjS,GAAG,mBAAmBmM,eAAe,+B,qBC3UnEmwE,GAAgB,SAAClyE,GAAD,OACpB,sBAAKE,UAAWtE,KAAM3E,QAAS2E,MAAO,CAAEE,OAAQkE,EAAMlE,QAAtD,UACE,sBAAKoE,UAAWtE,KAAMswB,QAAtB,UACE,qBAAKhsB,UAAWtE,KAAMyM,MAAtB,mBACA,gCACE,qBAAKnI,UAAWtE,KAAMvG,KAAtB,2FACA,qBAAK6K,UAAWtE,KAAMvG,KAAtB,+HACA,qBAAK6K,UAAWtE,KAAMvG,KAAtB,mDACA,qBAAK6K,UAAWtE,KAAMvG,KAAtB,oDACA,qBAAK6K,UAAWtE,KAAMvG,KAAtB,sDACA,qBAAK6K,UAAWtE,KAAMvG,KAAtB,qDACA,qBAAK6K,UAAWtE,KAAMvG,KAAtB,8IACA,qBAAK6K,UAAWtE,KAAMvG,KAAtB,mKAGJ,wBAAQ6K,UAAWtE,KAAM8L,IAAKtH,QAASJ,EAAM0tC,UAAW,cAAa1tC,EAAM2tC,OAA3E,SACG3tC,EAAM4tC,cAKbskC,GAAchxE,aAAe,CAC3BpF,OAAQ,GACR6xC,OAAQ,IAUKukC,U,oBCvBTC,GAAuB,SAACnyE,GAAD,OAC3B,sBAAKE,UAAWtE,KAAMw2E,UAAtB,UACE,qBAAKlyE,UAAWtE,KAAMmwB,IAAtB,SACE,qBAAK7rB,UAAWtE,KAAMy2E,UAAtB,SACE,cAAC,IAAD,CAAkBz8E,GAAG,yBAAyBmM,eAAe,4CAGjE,sBAAK7B,UAAWtE,KAAMmyB,KAAtB,UACE,sBAAK7tB,UAAWtE,KAAMnF,QAAtB,UACE,uBAAOyJ,UAAWtE,KAAMvG,KAAxB,SACE,cAAC,IAAD,CAAkBO,GAAG,4BAA4BmM,eAAe,qCAElE,qBAAKnM,GAAG,yBAAyBsK,UAAWtE,KAAM+yB,OAAlD,SACE,cAAC,GAAD,CACEt5B,KAAK,GACLm5B,UAAWxuB,EAAMsyE,kBACjB7jD,aAAczuB,EAAMuyE,sBACpB7jD,eAAe,SAIrB,qBAAKxuB,UAAWtE,KAAM42E,UACtB,sBAAKtyE,UAAWtE,KAAMnF,QAAtB,UACE,uBAAOyJ,UAAWtE,KAAMvG,KAAxB,SACE,cAAC,IAAD,CAAkBO,GAAG,0BAA0BmM,eAAe,mCAEhE,qBAAKnM,GAAG,uBAAuBsK,UAAWtE,KAAM+yB,OAAhD,SACE,cAAC,GAAD,CACEt5B,KAAK,GACLm5B,UAAWxuB,EAAMyyE,gBACjBhkD,aAAczuB,EAAM0yE,oBACpBhkD,eAAe,SAIrB,qBAAKxuB,UAAWtE,KAAM42E,UACtB,sBAAKtyE,UAAWtE,KAAMnF,QAAtB,UACE,uBAAOyJ,UAAWtE,KAAMvG,KAAxB,SACE,cAAC,IAAD,CAAkBO,GAAG,mBAAmBmM,eAAe,qCAEzD,qBAAKnM,GAAG,oBAAoBsK,UAAWtE,KAAM+yB,OAA7C,SACE,cAAC,GAAD,CACEt5B,KAAK,GACLm5B,UAAWxuB,EAAM2yE,UACjBlkD,aAAczuB,EAAM4yE,sBACpBlkD,eAAe,SAIrB,qBAAKxuB,UAAWtE,KAAM42E,UACtB,sBAAKtyE,UAAWtE,KAAMnF,QAAtB,UACE,uBAAOyJ,UAAWtE,KAAMvG,KAAxB,SACE,cAAC,IAAD,CAAkBO,GAAG,yBAAyBmM,eAAe,4CAE/D,qBAAKnM,GAAG,qBAAqBsK,UAAWtE,KAAM+yB,OAA9C,SACE,cAAC,GAAD,CACEt5B,KAAK,GACLm5B,UAAWxuB,EAAM6yE,yBACjBpkD,aAAczuB,EAAM8yE,iCACpBpkD,eAAe,SAIrB,qBAAKxuB,UAAWtE,KAAM42E,UACrBxyE,EAAMyJ,SACL,qCACE,sBAAKvJ,UAAWtE,KAAMnF,QAAtB,UACE,uBAAOyJ,UAAWtE,KAAMvG,KAAxB,SACE,cAAC,IAAD,CAAkBO,GAAG,yBAAyBmM,eAAe,oDAE/D,qBAAKnM,GAAG,oBAAoBsK,UAAWtE,KAAM+yB,OAA7C,SACE,cAAC,GAAD,CACEt5B,KAAK,GACLm5B,UAAWxuB,EAAM+yE,sBACjBtkD,aAAczuB,EAAMgzE,4BACpBtkD,eAAe,SAIrB,qBAAKxuB,UAAWtE,KAAM42E,UACtB,sBAAKtyE,UAAWtE,KAAMnF,QAAtB,UACE,uBAAOyJ,UAAWtE,KAAMvG,KAAxB,SACE,cAAC,IAAD,CAAkBO,GAAG,uBAAuBmM,eAAe,kCAE7D,qBAAKnM,GAAG,oBAAoBsK,UAAWtE,KAAM+yB,OAA7C,SACE,cAAC,GAAD,CACEt5B,KAAK,GACLm5B,UAAWxuB,EAAMqQ,cACjBoe,aAAczuB,EAAMizE,0BACpBvkD,eAAe,SAIrB,qBAAKxuB,UAAWtE,KAAM42E,oBAO1BU,GAAe,SAAClzE,GAAD,OACnB,sBAAKE,UAAWtE,KAAMw2E,UAAtB,UACE,qBAAKlyE,UAAWtE,KAAMmwB,IAAtB,SACE,sBAAM7rB,UAAWtE,KAAMy2E,UAAvB,SACE,cAAC,IAAD,CAAkBz8E,GAAG,wBAAwBmM,eAAe,+CAGhE,sBAAK7B,UAAWtE,KAAMmyB,KAAtB,UACE,sBAAK7tB,UAAWtE,KAAMnF,QAAtB,UACE,uBAAOyJ,UAAWtE,KAAMvG,KAAxB,SACE,cAAC,IAAD,CAAkBO,GAAG,2BAA2BmM,eAAe,uCAEjE,qBAAK7B,UAAWtE,KAAM+yB,OAAtB,SACE,cAAC,GAAD,CACEt5B,KAAK,GACLm5B,UAAWxuB,EAAMmzE,kBACjB1kD,aAAczuB,EAAMozE,wBACpB1kD,eAAe,SAIrB,qBAAKxuB,UAAWtE,KAAM42E,UACtB,sBAAKtyE,UAAWtE,KAAMnF,QAAtB,UACE,uBAAOyJ,UAAWtE,KAAMvG,KAAxB,SACE,cAAC,IAAD,CAAkBO,GAAG,oBAAoBmM,eAAe,yCAE1D,qBAAK7B,UAAWtE,KAAM+yB,OAAtB,SACE,cAAC,GAAD,CACEt5B,KAAK,GACLm5B,UAAWxuB,EAAMqzE,kBACjB5kD,aAAczuB,EAAMszE,2BACpB5kD,eAAe,SAIrB,qBAAKxuB,UAAWtE,KAAM42E,iBAKtBe,GAAW,SAACvzE,GAAD,OACf,sBAAKE,UAAWtE,KAAMw2E,UAAtB,UACE,qBAAKlyE,UAAWtE,KAAMmwB,IAAtB,SACE,sBAAM7rB,UAAWtE,KAAMy2E,UAAvB,SACE,cAAC,IAAD,CAAkBz8E,GAAG,2BAA2BmM,eAAe,oDAGnE,sBAAK7B,UAAWtE,KAAMmyB,KAAtB,UACE,sBAAK7tB,UAAWtE,KAAMnF,QAAtB,UACE,uBAAOyJ,UAAWtE,KAAMvG,KAAxB,SACE,cAAC,IAAD,CAAkBO,GAAG,mBAAmBmM,eAAe,mBAEzD,qBAAK7B,UAAWtE,KAAM+yB,OAAtB,SACG3uB,EAAMwzE,SACP,wBAAQpzE,QAASJ,EAAMyzE,qBAAsBvzE,UAAS,6BAAwBtE,KAAMynE,SAApF,SACE,cAAC,IAAD,CAAkBztE,GAAG,qBAAqBmM,eAAe,qBAG3D,wBAAQ3B,QAASJ,EAAM0zE,mBAAoBxzE,UAAS,+BAA0BtE,KAAMynE,SAApF,SACE,cAAC,IAAD,CAAkBztE,GAAG,mBAAmBmM,eAAe,kBAK7D,qBAAK7B,UAAWtE,KAAM42E,iBAmMbmB,GA9LO,SAAC3zE,GACrB,IAAMoB,EAAkBwK,uBAAY,SAAA5M,GAAK,OAAIA,EAAMoC,mBAC7CwyE,EAAqBhoE,uBAAY,SAAA5M,GAAK,OAAIA,EAAM8mB,mBAAmBC,SACnEqwC,EAAsBxqD,uBAAY,SAAA5M,GAAK,OAAIA,EAAM8P,oBAAoBC,UAE3E,EAAkDzO,oBAAS,GAA3D,mBAAO6yE,EAAP,KAA0BU,EAA1B,KACA,EAAkDvzE,oBAAS,GAA3D,mBAAO+yE,EAAP,KAA0BS,EAA1B,KACA,EAAkDxzE,oBAAS,GAA3D,mBAAOgyE,EAAP,KAA0ByB,EAA1B,KACA,EAA8CzzE,oBAAS,GAAvD,mBAAOmyE,EAAP,KAAwBuB,EAAxB,KACA,EAAkC1zE,oBAAS,GAA3C,mBAAOqyE,EAAP,KAAkBsB,EAAlB,KACA,EAAgE3zE,oBAAS,GAAzE,mBAAOuyE,EAAP,KAAiCqB,EAAjC,KACA,EAAoD5zE,oBAAS,GAA7D,mBAAOyyE,EAAP,KAA8BoB,EAA9B,KACA,EAA0C7zE,oBAAS,GAAnD,mBAAO+P,EAAP,KAAsB+jE,EAAtB,KACA,EAAoD9zE,oBAAS,GAA7D,mBAAO+zE,EAAP,KAA2BC,EAA3B,KACA,EAAkDh0E,oBAAS,GAA3D,mBAAOi0E,EAAP,KAA0BC,EAA1B,KACA,EAAgCl0E,oBAAS,GAAzC,mBAAOkzE,GAAP,KAAiBiB,GAAjB,KACA,GAAkCn0E,mBAAS,IAA3C,qBAAOo0E,GAAP,MAAkBC,GAAlB,MAEAl0E,qBAAU,WACJmzE,IACFC,EAAqBD,EAAmBzsD,cACxC2sD,EAAqBF,EAAmBxsD,qBAEzC,CAACwsD,IAEJnzE,qBAAU,WACJ21D,IACF6d,EAAa7d,EAAoBtuC,YACjCisD,EAAqB3d,EAAoB+M,gBACzC6Q,EAAmB5d,EAAoB8M,eACvCgR,EAA4B9d,EAAoBwe,uBAChDT,EAAmB/d,EAAoBye,yBACvCT,EAAiBhe,EAAoB9lD,oBAEtC,CAAC8lD,IAEJ,IA2BM0e,GAAqB,WACzB,IAAM3mF,EAAO,CACXg1E,eAAgBmP,EAChBpP,cAAeuP,EACf3qD,WAAY6qD,EACZiC,sBAAuB/B,EACvBgC,wBAAyB9B,EACzBziE,gBAAiBD,GAEnBzL,IAAMorE,IAAN,kBACaltE,KADb,OpOxPO,kBoOwPP,uBAEExU,KAAKsuD,UAAUzuD,GACf,CACE8W,QAAS,CACPC,OAAQ,mBACR,eAAgB,mBAChBC,cAAc,SAAD,OAAW5B,QAG5B6B,MAAK,WACL2vE,QACCzvE,OAAM,SAAC+hB,GACRr2B,QAAQC,IAAIo2B,GACZstD,GAAa,cAAC,IAAD,CAAkB/+E,GAAG,mBAAmBmM,eAAe,sDACpEuyE,GAAsB,OAIpBS,GAAoB,WACxB,IAAMlqE,EAAQ5H,aAAauS,cAAuBvS,aAAauS,cAApB,KACrCrnB,EAAO,CACXg5B,aAAcgsD,EACd/rD,iBAAkBisD,GAEpBzuE,IAAMorE,IAAN,kBACaltE,KADb,OpOjRO,kBoOiRP,iCAC0D1B,EAAgBxL,GAD1E,KAEEtH,KAAKsuD,UAAUzuD,GACf,CACE8W,QAAS,CACPC,OAAQ,mBACR,eAAgB,mBAChBC,cAAc,SAAD,OAAW5B,QAG5B6B,MAAK,WACLuvE,GAAa,cAAC,IAAD,CAAkB/+E,GAAG,qBAAqBmM,eAAe,iCACtEuyE,GAAsB,GACtB17D,GAAUhU,IAAO5E,EAAM6Y,UAAW,CAChC3hB,KAAM,SACNkpC,OAAQ,iBACRta,mBAAoB8tD,EACpB9kE,oBAAoBsnD,EACpB/gE,KAAMu8B,GAAkB/mB,GAAM,kCAE/BvF,OAAM,SAAC+hB,GACRr2B,QAAQC,IAAIo2B,GACZstD,GAAa,cAAC,IAAD,CAAkB/+E,GAAG,mBAAmBmM,eAAe,sDACpEuyE,GAAsB,OAI1B,OACE,qBAAKp0E,UAAU,2BAA2BtE,MAAO,CAAE6tB,SAAU,UAA7D,SACE,sBAAKvpB,UAAWtE,KAAM3E,QAAtB,UACE,qBAAKiJ,UAAWq0E,EAAoB34E,KAAMy0C,MAAQz0C,KAAM00C,UAAxD,SACE,cAAC,GAAD,CAAe1C,QAAQ,KAAKF,UAAW,WAAQ8mC,GAAqB,QAEtE,qBAAKt0E,UAAWm0E,EAAqBz4E,KAAMy0C,MAAQz0C,KAAM00C,UAAzD,SACE,cAAC,GAAD,CACEj7C,KAAMq/E,GACN9mC,QAAQ,KACRF,UAAW,WAAQ4mC,GAAsB,QAG7C,cAAC,GAAD,CACEnB,kBAAmBA,EACnBE,kBAAmBA,EACnBD,wBAAyB,kBAAMS,GAAsBV,IACrDG,2BAA4B,kBAAMQ,GAAsBT,OAExDrzE,EAAMwJ,SAAWxJ,EAAMyJ,UAA+C,IAAlCrI,EAAgBK,OAAO/T,QAC3D,cAAC,GAAD,CACE4kF,kBAAmBA,EACnBG,gBAAiBA,EACjBE,UAAWA,EACXlpE,QAASzJ,EAAMyJ,QACfopE,yBAA0BA,EAC1BE,sBAAuBA,EACvB1iE,cAAeA,EACfkiE,sBAAuB,kBAAMwB,GAAsBzB,IACnDI,oBAAqB,kBAAMsB,GAAoBvB,IAC/CG,sBAAuB,kBAAMqB,GAActB,IAC3CG,iCAAkC,kBAAMoB,GAA6BrB,IACrEG,4BAA6B,kBAAMmB,GAAoBpB,IACvDE,0BAzHqB,WACxB5iE,GACHmkE,GAAqB,GAEvBJ,GAAkB/jE,MAwHd,cAAC,GAAD,CACEmjE,SAAUA,GACVC,qBAlHqB,WAC3BgB,IAAY,GACZz0E,EAAMkJ,aAiHAwqE,mBAxHmB,WACzBe,IAAY,GACZz0E,EAAMg1E,iBAwHF,qBAAK90E,UAAU,SAAStE,MAAO,CAAEI,SAAU,WAAYwM,OAAQ,QAA/D,SACE,yBACEtI,UAAS,+BAA0BtE,KAAMynE,SAAWznE,MAAO,CAAEC,MAAO,OACpEuE,QAAS,kBAnHA,WACjB,IAAKkyE,IAAsBG,EAGzB,OAFAkC,GAAa,cAAC,IAAD,CAAkB/+E,GAAG,0BAA0BmM,eAAe,0HAC3EuyE,GAAsB,GAIxBQ,KA4GuBG,IAFjB,UAIE,+BACE,mBAAG/0E,UAAU,oBAAoB,cAAY,OAAOtE,MAAO,CAAEgM,aAAc,OAAQC,WAAY,cAEjG,cAAC,IAAD,CAAkBjS,GAAG,qBAAqBmM,eAAe,sB,oBC9V/DmzE,I,2DACJ,WAAYl1E,GAAQ,IAAD,+BACjB,cAAMA,IACDhB,MAAQ,CACXm2E,aAAcC,cACdxoC,UAAW,KACXS,QAAS,KACTgoC,UAAW,EAAKr1E,MAAMq1E,WAGxB,EAAKC,cAAgB,EAAKA,cAAcpkF,KAAnB,iBACrB,EAAKqkF,cAAgB,EAAKA,cAAcrkF,KAAnB,iBAVJ,E,qEAanB,YAAiD,IAAdmkF,EAAa,EAAbA,UAC7BA,IAAcl8E,KAAK6G,MAAMq1E,YAA2B,IAAdA,GACxCl8E,KAAKulB,SAAS,CACZkuB,UAAW,KACXS,QAAS,S,2BAKf,YAAuC,IAAvBT,EAAsB,EAAtBA,UAAWS,EAAW,EAAXA,QACzBl0C,KAAK6G,MAAMw1E,QAAQ5oC,EAAWS,GAC9Bl0C,KAAKulB,SAAS,CAAEkuB,YAAWS,c,2BAG7B,SAAc8nC,GACZh8E,KAAK6G,MAAMm1E,aAAaA,GACxBh8E,KAAKulB,SAAS,CAAEy2D,mB,oBAGlB,WACE,MAAwDh8E,KAAK6F,MAArDm2E,EAAR,EAAQA,aAAcvoC,EAAtB,EAAsBA,UAAWS,EAAjC,EAAiCA,QAI3BxiC,GAJN,EAA0CwqE,UAI5BpyE,aAAauS,cAAuBvS,aAAauS,cAApB,MACrC5Z,EAAQ1L,OAAOiU,OAAO,GAJT,CACjBtI,MAAO,QAGmC1C,KAAK6G,MAAMpE,OACvD,OACE,qBAAKsE,UAAU,qBAAqBtE,MAAOA,EAA3C,SACE,cAAC,mBAAD,CACE05E,cAAen8E,KAAKm8E,cACpBC,cAAep8E,KAAKo8E,cACpBJ,aAAcA,EACdvoC,UAAWA,EACXS,QAASA,EACTooC,yBAA0B73E,GAASiN,GAAM,kBACzC6qE,uBAAwB93E,GAASiN,GAAM,gBACvC8qE,cAAc,aACdC,eAAgB,kBAAM,GACtBC,cAAe,EACfC,YAAa38E,KAAK6G,MAAM81E,YACxBC,QAAS,GACT71E,UAAU,oC,GAvDiByT,IAAMC,YA8D3CshE,GAAuBh0E,aAAe,CACpCs0E,QAAS,aACTH,WAAW,EACXS,YAAa,aACbX,aAAc,aACdv5E,MAAO,IAaMs5E,U,qBCjFTc,GAAS,SAAC,GAAD,IAAG3gF,EAAH,EAAGA,KAAMxF,EAAT,EAASA,IAAT,OACb,eAAC,IAAD,CACEqQ,UAAWtE,KAAM8L,IACjB5F,GAAIjS,EACJ+L,MAAQ,CAACM,UAAW,UAHtB,UAKA,mBAAGgE,UAAU,oBALb,KAKsC7K,MAIxC2gF,GAAO90E,aAAe,CACpBrR,IAAK,IACLwF,KAAM,YAQO2gF,U,oBC4HAC,GA1IQ,SAACj2E,GACtB,MAA4BM,mBAAS,IAArC,mBAAOghB,EAAP,KAAe40D,EAAf,KACA,EAA0C51E,mBAAS,IAAnD,mBAAO61E,EAAP,KAAsBC,EAAtB,KACA,EAAgC91E,mBAAS,IAAzC,mBAAOy7C,EAAP,KAAiBs6B,EAAjB,KACA,EAAkC/1E,mBAAS,KAA3C,mBAAOmT,EAAP,KAAkB6iE,EAAlB,KACA,EAAsBh2E,mBAAS,IAA/B,mBAAOzQ,EAAP,KAAY0mF,EAAZ,KACA,EAA8Bj2E,mBAAS,IAAvC,mBAAOk2E,EAAP,KAAgBC,EAAhB,KACA,EAAwCn2E,mBAAS,MAAjD,mBAAO60E,EAAP,KAAqBuB,EAArB,KACA,EAAsCp2E,oBAAS,GAA/C,mBAAOq2E,EAAP,KAAoBC,EAApB,KACA,EAA0Ct2E,oBAAS,GAAnD,mBAAOu2E,EAAP,KAAsBC,EAAtB,KACMC,EAAkB,CACtB,CAAEpqF,MAAO,IAAKw4B,MAAOrO,GAAkB,IACvC,CAAEnqB,MAAO,IAAKw4B,MAAOrO,GAAkB,IACvC,CAAEnqB,MAAO,IAAKw4B,MAAOrO,GAAkB,IACvC,CAAEnqB,MAAO,IAAKw4B,MAAOrO,GAAkB,IACvC,CAAEnqB,MAAO,MAAOw4B,MAAOrO,GAAkB,SAG3CrW,qBAAU,WACJT,EAAMshB,OAAO5zB,OAAS,GACxBwoF,EAAUl2E,EAAMshB,UAEjB,CAACthB,EAAMshB,SAEV7gB,qBAAU,WACR,GAAI6gB,EAAO5zB,OAAS,EAAG,CACrB,IAAMspF,EAAiB11D,EAAO5f,QAAO,SAAAu1E,GAAE,MAAgB,QAAZA,EAAGj9E,QAC9Co8E,EAAiBY,EAAenwE,KAAI,SAAA6P,GAAK,MAAK,CAC5C/pB,MAAO+pB,EAAM1c,KACbmrB,MAAM,IAAD,OAAMzO,EAAM1c,KAAZ,aAAqByc,GAAcC,IACxCG,KAAK,IAAD,OAAMH,EAAM1c,KAAZ,aAAqByc,GAAcC,YAG1C,CAAC4K,IAEJ,IAuBM41D,EAAiB,SAACC,GACtB,IAAQxqF,EAAUwqF,EAAVxqF,MACFyqF,EAAsB,QAAVzqF,EACdqT,EAAMshB,OACNthB,EAAMshB,OAAO5f,QAAO,SAAA8Z,GAAC,OAAIA,EAAEugC,WAAaprC,SAAShkB,EAAO,OAC5D0pF,EAAYc,GACZjB,EAAUkB,GACVb,EAAO,qCAAD,OAAsC5pF,KAG9C,OACE,sBAAKuT,UAAWtE,KAAM3E,QAAS2E,MAAOu5E,EAAe,CAAEr5E,OAAQ,QAAW,GAA1E,UACE,qBAAKoE,UAAWtE,KAAM5B,KAAM4B,MAAOi7E,EAAgB,CAAE/6E,OAAQ,QAAW,GAAxE,SACE,cAAC,KAAD,CACEnP,MAAOovD,EACPtlD,QAASsgF,EACTlgE,KAAK,SACL6W,SAAUwpD,EACVG,aAAW,EACX92C,YAAa,cAAC,IAAD,CAAkB3qC,GAAG,gCAAgCmM,eAAe,2BACjFu1E,QAAS,kBAAMR,GAAiB,IAChCS,OAAQ,kBAAMT,GAAiB,IAC/BU,WAAW,MAGD,KAAbz7B,GACC,qBAAK77C,UAAWtE,KAAM5B,KAAM4B,MAAO+6E,EAAc,CAAE76E,OAAQ,QAAW,GAAtE,SACE,cAAC,KAAD,CACE27E,OAAK,EACL9qF,MAAO8mB,EACPhd,QAAS0/E,EACTt/D,KAAK,OACL6W,SA7CS,SAACgqD,GAElB,GADApB,EAAaoB,GACTA,EAAShqF,OAAS,EAAG,CACvB,IAAIiqF,EAAU,GACdD,EAASx+D,SAAQ,SAAAlf,GACf29E,EAAO,UAAMA,GAAN,OAAgB39E,EAAKrN,MAArB,QAET4pF,EAAO,iCAAD,OAAkCoB,SAExCT,EAAen7B,IAqCT67B,SAAO,EACPP,aAAW,EACX92C,YAAa,cAAC,IAAD,CAAkB3qC,GAAG,iCAAiCmM,eAAe,oCAClFu4B,OAAQ,kBAAMs8C,GAAe,IAC7BiB,QAAS,kBAAMjB,GAAe,QAItB,KAAb76B,GACC,cAAC,GAAD,CACEo5B,aAAc,SAAC2C,GAAD,OAAapB,EAAgBoB,IAC3CtC,QAnEQ,SAAC5oC,EAAWS,GAC1B,IAAM0qC,EAAYnrC,EAAS,iBACbA,EAAU78B,OAAO,eAC3B,oBACEioE,EAAkB,eAAP3qC,EACLA,EAAQt9B,OAAO,cACfD,MAASC,OAAO,eAC5B0mE,EAAW,GAAD,OAAIsB,GAAJ,OAAgBC,KA6DpB3C,UAAuB,KAAZmB,EACXV,YAAa91E,EAAMuvB,aAAe,IAAM,aAAe,WACvD3zB,MAAO,CAAEM,UAAW,OAAQL,MAAO,UAGzB,KAAbkgD,IAAoBo5B,GACnB,cAAC,GAAD,CACE8C,WAAYj4E,EAAMi4E,WAClBpoF,IAAG,UAAKA,GAAL,OAAW2mF,GACdnhF,KAAM,cAAC,IAAD,CAAkBO,GAAG,yBAAyBmM,eAAe,6BCpE9Dm2E,GA9CS,SAACl4E,GACvB,MAA8BM,mBAAS,IAAvC,mBAAOk2E,EAAP,KAAgBC,EAAhB,KACA,EAAwCn2E,mBAAS,MAAjD,mBAAO60E,EAAP,KAAqBuB,EAArB,KAYA,OACE,sBAAKx2E,UAAWtE,KAAM3E,QAAS2E,MAAOu5E,EAAe,CAAEr5E,OAAQ,SAAY,GAA3E,UACI,cAAC,GAAD,CACEq5E,aAAc,SAAC2C,GAAD,OAAapB,EAAgBoB,IAC3CtC,QAdQ,SAAC5oC,EAAWS,GAC1B,IAAM0qC,EAAYnrC,EAAS,iBACbA,EAAU78B,OAAO,eAC3B,oBACEioE,EAAkB,eAAP3qC,EACLA,EAAQt9B,OAAO,cACfD,MAASC,OAAO,eAC5B0mE,EAAW,GAAD,OAAIsB,GAAJ,OAAgBC,KAQpB3C,UAAuB,KAAZmB,EACXV,YAAa91E,EAAMuvB,aAAe,IAAM,aAAe,WACvD3zB,MAAO,CAAEM,UAAW,OAAQL,MAAO,YAElC26E,GACD,cAAC,GAAD,CACEyB,WAAYj4E,EAAMi4E,WAClBpoF,IAAG,oCAA+B2mF,GAClCnhF,KAAM,cAAC,IAAD,CAAkBO,GAAG,yBAAyBmM,eAAe,6BC+ChEo2E,GAxEY,SAACn4E,GAC1B,MAA0BM,mBAAS,GAAnC,mBAAOwtD,EAAP,KAAckJ,EAAd,KACA,EAAsB12D,mBAAS,IAA/B,mBAAOzQ,EAAP,KAAY0mF,EAAZ,KACA,EAA8Bj2E,mBAAS,IAAvC,mBAAOk2E,EAAP,KAAgBC,EAAhB,KACA,EAAwCn2E,mBAAS,MAAjD,mBAAO60E,EAAP,KAAqBuB,EAArB,KACA,EAAsCp2E,oBAAS,GAA/C,mBAAoBs2E,GAApB,WACMvrB,EAAarrD,EAAM+qD,WAAWlkD,KAAI,SAAA5Q,GAAG,MAAK,CAC9CtJ,MAAOsJ,EAAIL,GACXuvB,MAAOmmC,GAAYtrD,EAAM6K,MAAM5U,EAAIL,IACnCihB,KAAMy0C,GAAYtrD,EAAM6K,MAAM5U,EAAIL,QAkBpC,OACE,sBAAKsK,UAAWtE,KAAM3E,QAAS2E,MAAOu5E,EAAe,CAAEr5E,OAAQ,QAAW,GAA1E,UACE,cAAC,KAAD,CACEnP,MAAOmhE,EACPr3D,QAAS40D,EACTx0C,KAAK,MACL6W,SAXkB,SAACz3B,GACvB+gE,EAAS/gE,GACTsgF,EAAO,8BAAD,OAA+BtgF,EAAItJ,SAUrC0qF,aAAW,EACX92C,YAAa,cAAC,IAAD,CAAkB3qC,GAAG,4BAA4BmM,eAAe,oCAC7Eu1E,QAAS,kBAAMV,GAAe,IAC9BW,OAAQ,kBAAMX,GAAe,IAC7BY,WAAW,IAEF,IAAV1pB,GACC,cAAC,GAAD,CACEqnB,aAAc,SAAC2C,GAAD,OAAapB,EAAgBoB,IAC3CtC,QA/BQ,SAAC5oC,EAAWS,GAC1B,IAAM0qC,EAAYnrC,EAAS,iBACbA,EAAU78B,OAAO,eAC3B,oBACEioE,EAAkB,eAAP3qC,EACLA,EAAQt9B,OAAO,cACfD,MAASC,OAAO,eAC5B0mE,EAAW,GAAD,OAAIsB,GAAJ,OAAgBC,KAyBpB3C,UAAuB,KAAZmB,EACXV,YAAa91E,EAAMuvB,aAAe,IAAM,aAAe,WACvD3zB,MAAO,CAAEM,UAAW,OAAQL,MAAO,YAGpCiyD,IAAUqnB,GACX,cAAC,GAAD,CACE8C,WAAYj4E,EAAMi4E,WAClBpoF,IAAG,UAAKA,GAAL,OAAW2mF,GACdnhF,KAAM,cAAC,IAAD,CAAkBO,GAAG,yBAAyBmM,eAAe,6BCuD9Dq2E,GA7GY,SAACp4E,GAC1B,MAAgDM,mBAAS,IAAzD,mBAAO+3E,EAAP,KAAyBC,EAAzB,KACA,EAAkCh4E,mBAAS,GAA3C,mBAAOmP,EAAP,KAAkBwiD,EAAlB,KACA,EAAsB3xD,mBAAS,IAA/B,mBAAOzQ,EAAP,KAAY0mF,EAAZ,KACA,EAA8Bj2E,mBAAS,IAAvC,mBAAOk2E,EAAP,KAAgBC,EAAhB,KACA,EAAwCn2E,mBAAS,MAAjD,mBAAO60E,EAAP,KAAqBuB,EAArB,KACA,EAAsCp2E,oBAAS,GAA/C,mBAAOq2E,EAAP,KAAoBC,EAApB,KAEAn2E,qBAAU,WACJT,EAAM61B,WAAWnoC,OAAS,GAC5B4qF,EACEt4E,EAAM61B,WAAWhvB,KAAI,SAAA4I,GAAS,MAC5B,CACE9iB,MAAO8iB,EAAU7Z,GACjBuvB,MAAM,GAAD,OAAK1V,EAAU0c,WAAf,YAA6B1c,EAAU2c,WAC5CvV,KAAK,GAAD,OAAKpH,EAAU0c,WAAf,YAA6B1c,EAAU2c,kBAKlD,CAACpsB,EAAM61B,aAkBV,OACE,sBAAK31B,UAAWtE,KAAM3E,QAAS2E,MAAOu5E,EAAe,CAAEr5E,OAAQ,SAAY,GAA3E,UACE,qBAAKoE,UAAWtE,KAAM5B,KAAM4B,MAAO+6E,EAAc,CAAE76E,OAAQ,SAAY,GAAvE,SACE,cAAC,KAAD,CACEnP,MAAO8iB,EACPhZ,QAAS4hF,EACTxhE,KAAK,SACL6W,SAbgB,SAACje,GACvB,IAAQ9iB,EAAU8iB,EAAV9iB,MACRslE,EAAaxiD,GACb8mE,EAAO,0CAAD,OAA2C5pF,KAW3C0qF,aAAW,EACX92C,YAAa,cAAC,IAAD,CAAkB3qC,GAAG,qCAAqCmM,eAAe,0BACtFu1E,QAAS,kBAAMV,GAAe,IAC9BW,OAAQ,kBAAMX,GAAe,IAC7BY,WAAW,QAGZ/nE,GACD,cAAC,GAAD,CACE0lE,aAAc,SAAC2C,GAAD,OAAapB,EAAgBoB,IAC3CtC,QAlCQ,SAAC5oC,EAAWS,GAC1B,IAAM0qC,EAAYnrC,EAAS,iBACbA,EAAU78B,OAAO,eAC3B,oBACEioE,EAAkB,eAAP3qC,EACLA,EAAQt9B,OAAO,cACfD,MAASC,OAAO,eAC5B0mE,EAAW,GAAD,OAAIsB,GAAJ,OAAgBC,KA4BpB3C,UAAuB,KAAZmB,EACXV,YAAa91E,EAAMuvB,aAAe,IAAM,aAAe,WACvD3zB,MAAO,CAAEM,UAAW,OAAQL,MAAO,YAGpC4T,IAAc0lE,GACf,cAAC,GAAD,CACE8C,WAAYj4E,EAAMi4E,WAClBpoF,IAAG,UAAKA,GAAL,OAAW2mF,GACdnhF,KAAM,cAAC,IAAD,CAAkBO,GAAG,yBAAyBmM,eAAe,6BCqB9Dw2E,GAtFkB,SAACv4E,GAChC,IAAM6K,EAAOe,uBAAY,SAAA5M,GAAK,OAAIA,EAAMgnB,OAAOnb,QAC/C,EAA0BvK,mBAAS,IAAnC,mBAAOk4E,EAAP,KAAcC,EAAd,KACA,EAAwCn4E,mBAASwP,MAASkW,OAAO,SAASzO,QAA1E,mBAAOmhE,EAAP,KAAqBC,EAArB,KACA,EAA0Cr4E,mBAASwP,MAASkW,OAAO,SAASxO,QAAU,GAAtF,mBAAOohE,EAAP,KAAsBC,EAAtB,KACA,EAA8Bv4E,mBAAS,IAAvC,mBAAOk2E,EAAP,KAAgBC,EAAhB,KACA,EAAwCn2E,oBAAS,GAAjD,mBAAO60E,EAAP,UAEA10E,qBAAU,WACR,IAAMg+D,EAAM3uD,MAASkW,OAAO,SAC5BywD,EAAW,QAAD,OAAShY,EAAIlnD,OAAb,kBAA6BknD,EAAIjnD,QAAQ,MAClD,IAEH/W,qBAAU,YACa,WAMnB,IALA,IACM6F,GADK,IAAIhX,MACI+oB,cACfygE,EAAQxyE,EAAU,EAChByyE,EAAW,GAEVD,GAASxyE,GACdyyE,EAASl7E,KAAK,CAAElR,MAAM,GAAD,OAAKmsF,GAAS3zD,MAAM,GAAD,OAAK2zD,KAC7CA,IAEFL,EAASM,GAGXC,KACC,IAEHv4E,qBAAU,WACRg2E,EAAW,QAAD,OAASiC,EAAT,kBAA+BE,MACxC,CAACF,EAAcE,IAQlB,OAFA5nF,QAAQC,IAAI,UAAWulF,GAGrB,sBAAKt2E,UAAWtE,KAAM3E,QAAS2E,MAAOu5E,EAAe,CAAEr5E,OAAQ,QAAW,GAA1E,UACE,sBAAKoE,UAAU,qBAAqBtE,MAAO,CAAEM,UAAW,OAAQL,MAAO,QAAvE,UACE,wBACEqE,UAAU,gBACVwtB,SAAU,SAACl/B,GAAD,OAAOmqF,EAAgBnqF,EAAEgY,OAAO7Z,QAC1CA,MAAO+rF,EAHT,SAKGF,EAAM3xE,KAAI,SAACknB,GAAD,OACT,wBAAyBphC,MAAOohC,EAAKphC,MAArC,SAA6CohC,EAAKphC,OAArCohC,EAAKphC,YAGtB,yBACEuT,UAAU,gBACVtE,MAAO,CAAEM,UAAW,QACpBwxB,SAAU,SAACl/B,GAAD,OAAOqqF,EAAiBrqF,EAAEgY,OAAO7Z,QAC3CA,MAAOisF,EAJT,UAME,yBAAQjsF,MAAO,EAAf,cAAoBqpB,GAAenL,GAAf,QAApB,OACA,yBAAQle,MAAO,EAAf,cAAoBqpB,GAAenL,GAAf,SAApB,OACA,yBAAQle,MAAO,EAAf,cAAoBqpB,GAAenL,GAAf,MAApB,OACA,yBAAQle,MAAO,EAAf,cAAoBqpB,GAAenL,GAAf,MAApB,OACA,yBAAQle,MAAO,EAAf,cAAoBqpB,GAAenL,GAAf,IAApB,OACA,yBAAQle,MAAO,EAAf,cAAoBqpB,GAAenL,GAAf,KAApB,OACA,yBAAQle,MAAO,EAAf,cAAoBqpB,GAAenL,GAAf,KAApB,OACA,yBAAQle,MAAO,EAAf,cAAoBqpB,GAAenL,GAAf,OAApB,OACA,yBAAQle,MAAO,EAAf,cAAoBqpB,GAAenL,GAAf,UAApB,OACA,yBAAQle,MAAO,GAAf,cAAqBqpB,GAAenL,GAAf,QAArB,OACA,yBAAQle,MAAO,GAAf,cAAqBqpB,GAAenL,GAAf,SAArB,OACA,yBAAQle,MAAO,GAAf,cAAqBqpB,GAAenL,GAAf,SAArB,aAGJ,cAAC,GAAD,CACEotE,WAAYj4E,EAAMi4E,WAClBpoF,IAAG,4CAAuC2mF,GAC1CnhF,KAAM,cAAC,IAAD,CAAkBO,GAAG,yBAAyBmM,eAAe,6BC3B5Dk3E,GApDwB,SAACj5E,GACtC,IAAMk5E,GAAc,IAAI5pF,MAAO+oB,cAC/B,EAA0B/X,mBAAS,IAAnC,mBAAOk4E,EAAP,KAAcC,EAAd,KACA,EAAsCn4E,oBAAS,GAA/C,mBAAOq2E,EAAP,KAAoBC,EAApB,KACA,EAAwCt2E,oBAAS,GAAjD,mBAAO60E,EAAP,KACA,GADA,KACwC70E,mBAAS,KAAjD,mBAAOo4E,EAAP,KAAqBC,EAArB,KAEAl4E,qBAAU,WACRu4E,MACC,IAEH,IAAMA,EAAe,WAMnB,IALA,IACM1yE,GADK,IAAIhX,MACI+oB,cACfygE,EAAQxyE,EAAU,EAChByyE,EAAW,GAEVD,GAASxyE,GACdyyE,EAASl7E,KAAK,CAAElR,MAAM,GAAD,OAAKmsF,GAAS3zD,MAAM,GAAD,OAAK2zD,KAC7CA,IAEFL,EAASM,IAOX,OACE,sBAAK74E,UAAWtE,KAAM3E,QAAS2E,MAAOu5E,EAAe,CAAEr5E,OAAQ,SAAY,GAA3E,UACE,qBAAKoE,UAAWtE,KAAM5B,KAAM4B,MAAO+6E,EAAc,CAAE76E,OAAQ,SAAY,GAAvE,SACE,cAAC,KAAD,CACEnP,MAAO+rF,EACPjiF,QAAS+hF,EACT3hE,KAAK,gBACL6W,SAXiB,SAACx0B,GACxBy/E,EAAgBz/E,IAWVqnC,YAAa,cAAC,IAAD,CAAkB3qC,GAAG,qBAAqBmM,eAAe,oBACtEu1E,QAAS,kBAAMV,GAAe,IAC9BW,OAAQ,kBAAMX,GAAe,IAC7BY,WAAW,MAIf,cAAC,GAAD,CACES,WAAYj4E,EAAMi4E,WAClBpoF,IAAG,+CAA0C6oF,EAAeA,EAAa/rF,MAAQusF,GACjF7jF,KAAM,cAAC,IAAD,CAAkBO,GAAG,yBAAyBmM,eAAe,6BCM5Do3E,GApDqB,SAACn5E,GACnC,IAAMk5E,GAAc,IAAI5pF,MAAO+oB,cAC/B,EAA0B/X,mBAAS,IAAnC,mBAAOk4E,EAAP,KAAcC,EAAd,KACA,EAAwCn4E,mBAAS,IAAjD,mBAAOo4E,EAAP,KAAqBC,EAArB,KACA,EAAsCr4E,oBAAS,GAA/C,mBAAOq2E,EAAP,KAAoBC,EAApB,KAEAn2E,qBAAU,WACRu4E,MACC,IAEH,IAAMA,EAAe,WAMnB,IALA,IACM1yE,GADK,IAAIhX,MACI+oB,cACfygE,EAAQxyE,EAAU,EAChByyE,EAAW,GAEVD,GAASxyE,GACdyyE,EAASl7E,KAAK,CAAElR,MAAM,GAAD,OAAKmsF,GAAS3zD,MAAM,GAAD,OAAK2zD,KAC7CA,IAEFL,EAASM,IAOX,OACE,sBAAK74E,UAAWtE,KAAM3E,QAAtB,UACI,qBAAKiJ,UAAWtE,KAAM5B,KAAM4B,MAAO+6E,EAAc,CAAE76E,OAAQ,SAAY,GAAvE,SACE,cAAC,KAAD,CACEnP,MAAO+rF,EACPjiF,QAAS+hF,EACT3hE,KAAK,qBACL6W,SAXe,SAACx0B,GACxBy/E,EAAgBz/E,IAWRqnC,YAAa,cAAC,IAAD,CAAkB3qC,GAAG,qBAAqBmM,eAAe,oBACtEu1E,QAAS,kBAAMV,GAAe,IAC9BW,OAAQ,kBAAMX,GAAe,IAC7BY,WAAW,MAIf,cAAC,GAAD,CACES,WAAYj4E,EAAMi4E,WAClBpoF,IAAG,gDAA2C6oF,EAAeA,EAAa/rF,MAAQusF,GAClF7jF,KAAM,cAAC,IAAD,CAAkBO,GAAG,yBAAyBmM,eAAe,6BChC9Dq3E,GAdqB,SAAC,GAAD,IAAGnB,EAAH,EAAGA,WAAH,OAClC,qBAAK/3E,UAAWtE,KAAM3E,QAAtB,SACE,cAAC,GAAD,CACEghF,WAAYA,EACZpoF,IAAI,oCACJwF,KAAM,cAAC,IAAD,CAAkBO,GAAG,yBAAyBmM,eAAe,4B,oBCuO1Ds3E,GA9NI,SAACr5E,GAClB,IAAMsC,EAAQ,UACRO,EAAiBqL,GACjBtL,EAAqBsL,GAErBrD,EAAOe,uBAAY,SAAA5M,GAAK,OAAIA,EAAMgnB,OAAOnb,QACzCgrB,EAAajqB,uBAAY,SAAA5M,GAAK,OAAIA,EAAM62B,cACxCvU,EAAS1V,uBAAY,SAAA5M,GAAK,OAAIA,EAAMsiB,UACpCg4D,EAAkB1tE,uBAAY,SAAA5M,GAAK,OAAIA,EAAMoC,gBAAgBK,OAAO/T,OAAS,KAC7Eq9D,EAAan/C,uBAAY,SAAA5M,GAAK,OAAIA,EAAM+rD,cACxCj8C,EAAsBlD,uBAAY,SAAA5M,GAAK,OAAIA,EAAM8P,oBAAoBC,UAErEpK,EAAWqK,wBAEjB,EAA0C1O,mBAAS,IAAnD,mBAAOimE,EAAP,KAAsBgT,EAAtB,KACA,EAAkDj5E,mBAAS,IAA3D,mBAAOk5E,EAAP,KAA0BC,EAA1B,KACA,EAAoFn5E,oBAAS,GAA7F,mBAAOo5E,EAAP,KAA2CC,EAA3C,KACA,EAAoDr5E,oBAAS,GAA7D,mBAAOs5E,EAAP,KAA2BC,EAA3B,KACA,EAA8Dv5E,oBAAS,GAAvE,mBAAOw5E,EAAP,KAAgCC,EAAhC,KACA,EAAsEz5E,oBAAS,GAA/E,mBAAO05E,EAAP,KAAoCC,EAApC,KACA,EAA8D35E,oBAAS,GAAvE,mBAAO45E,EAAP,KAAgCC,EAAhC,KACA,EAAkE75E,oBAAS,GAA3E,mBAAO85E,EAAP,KAAkCC,EAAlC,KACA,EAAkE/5E,oBAAS,GAA3E,mBAAOg6E,EAAP,KAAkCC,EAAlC,KACA,EAAoEj6E,oBAAS,GAA7E,oBAAOk6E,GAAP,MAAmCC,GAAnC,MAEAh6E,qBAAU,YAIa,SAACi6E,GACpB,IAAMC,EAAgBD,EAAOt3E,MAAK,SAAAoY,GAAC,OAAIA,EAAE5N,WAAa/K,KAClD83E,EACFpB,EAAiBoB,EAAcxsF,MANFwW,EAASwiE,GAQ3BtkE,IAaf4tE,CAAanvD,GATY,SAACs5D,GACxB,IAAM7V,EAAoB6V,EAAQx3E,MAAK,SAAAoY,GAAC,OAAIA,EAAE5N,WAAahL,KACvDmiE,EACF0U,EAAqB1U,EAAkB52E,MAdNwW,EAASmgE,GAgB3BliE,IAKnBi4E,CAAiBhlD,KAChB,CAACvU,EAAQuU,EAAYjzB,EAAoBC,EAAgB8B,IAE5D,IAAMm2E,GAAwBpB,EAAqC99E,KAAMgL,OAAS,GAC5Em0E,GAAenB,EAAqBh+E,KAAMgL,OAAS,GACnDo0E,GAAmBlB,EAA0Bl+E,KAAMgL,OAAS,GAC5Dq0E,GAAuBjB,EAA8Bp+E,KAAMgL,OAAS,GACpEs0E,GAAmBhB,EAA0Bt+E,KAAMgL,OAAS,GAC5Du0E,GAAqBf,EAA4Bx+E,KAAMgL,OAAS,GAChEw0E,GAAqBd,EAA4B1+E,KAAMgL,OAAS,GAChEy0E,GAAsBb,GAA6B5+E,KAAMgL,OAAS,GAClEyJ,GAAa,OAAGvB,QAAH,IAAGA,OAAH,EAAGA,EAAqBwB,gBAE3C,OACE,sBAAKpQ,UAAU,2BAA2BtE,MAAO,CAAE0/E,UAAW,QAA9D,UACE,qBAAKp7E,UAAWtE,KAAMyM,MAAtB,SACE,cAAC,IAAD,CAAkBzS,GAAG,sBAAsBmM,eAAe,oBAI5D,qBAAKnG,MAAO,CAAEC,MAAO,OAAQ6X,MAAO,QAApC,SACE,yBAAQxT,UAAWtE,KAAM,cAAewE,QAAS,kBAAMu5E,GAAuCD,IAA9F,UACE,cAAC,IAAD,CAAkB9jF,GAAG,sCAAsCmM,eAAe,yCAC1E,cAAC,EAAD,CAAOlG,MAAM,KAAKC,OAAO,KAAKoE,UAAS,UAAKtE,KAAM80C,WAAX,YAAyBoqC,WAGnEpB,GACC,qBAAKx5E,UAAWtE,KAAMosB,MAAtB,SACE,qBAAK9nB,UAAWtE,KAAM,cAAeA,MAAO,CAAE8X,MAAO,QAArD,SACE,cAAC,GAAD,CAAgCukE,WAAY31E,EAAO1G,MAAO,CAAEC,MAAO,eAMvEwU,IACA,qBAAKzU,MAAO,CAAEC,MAAO,OAAQ6X,MAAO,QAApC,SACE,yBAAQxT,UAAWtE,KAAM,cAAewE,QAAS,kBAAMy5E,GAAuBD,IAA9E,UACE,cAAC,IAAD,CAAkBhkF,GAAG,+BAA+BmM,eAAe,YACnE,cAAC,EAAD,CAAOlG,MAAM,KAAKC,OAAO,KAAKoE,UAAS,UAAKtE,KAAM80C,WAAX,YAAyBqqC,WAKrEnB,GACC,qBAAK15E,UAAWtE,KAAMosB,MAAtB,SACGu+C,EAAc74E,OAAS,GACtB,qBAAKwS,UAAWtE,KAAM,cAAeA,MAAO,CAAE8X,MAAO,SAArD,SACE,cAAC,GAAD,CACE4N,OAAQilD,EACR0R,WAAY31E,EACZitB,aAAc5U,KACd/e,MAAO,CAAEC,MAAO,eAQxBy9E,GACA,qBAAK19E,MAAO,CAAEC,MAAO,OAAQ6X,MAAO,QAApC,SACE,yBAAQxT,UAAWtE,KAAM,cAAewE,QAAS,kBAAM25E,GAA4BD,IAAnF,UACE,cAAC,IAAD,CAAkBlkF,GAAG,mCAAmCmM,eAAe,eACvE,cAAC,EAAD,CAAOlG,MAAM,KAAKC,OAAO,KAAKoE,UAAS,UAAKtE,KAAM80C,WAAX,YAAyBsqC,WAIrElB,GACC,qBAAK55E,UAAWtE,KAAMosB,MAAtB,SACGwxD,EAAkB9rF,OAAS,GAC1B,qBAAKwS,UAAWtE,KAAM,cAAeA,MAAO,CAAE8X,MAAO,QAArD,SACE,cAAC,GAAD,CACEmiB,WAAY2jD,EACZvB,WAAY31E,EACZitB,aAAc5U,KACd/e,MAAO,CAAEC,MAAO,cAQ1B,qBAAKD,MAAO,CAAEC,MAAO,OAAQ6X,MAAO,QAApC,SACE,yBAAQxT,UAAWtE,KAAM,cAAewE,QAAS,kBAAMi6E,GAA8BD,IAArF,UACE,cAAC,IAAD,CAAkBxkF,GAAG,qCAAqCmM,eAAe,+BACzE,cAAC,EAAD,CAAOlG,MAAM,KAAKC,OAAO,KAAKoE,UAAS,UAAKtE,KAAM80C,WAAX,YAAyByqC,WAGnEf,GACC,qBAAKl6E,UAAWtE,KAAMosB,MAAtB,SACE,qBAAK9nB,UAAWtE,KAAM,cAAeA,MAAO,CAAE8X,MAAO,SAArD,SACE,cAAC6nE,GAAD,CAAuBtD,WAAY31E,EAAOitB,aAAc5U,KAAsB/e,MAAO,CAAEC,MAAO,cAMpG,qBAAKD,MAAO,CAAEC,MAAO,OAAQ6X,MAAO,QAApC,SACE,yBAAQxT,UAAWtE,KAAM,cAAewE,QAAS,kBAAMq6E,IAA+BD,KAAtF,UACE,cAAC,IAAD,CAAkB5kF,GAAG,mCAAmCmM,eAAe,yBACvE,cAAC,EAAD,CAAOlG,MAAM,KAAKC,OAAO,KAAKoE,UAAS,UAAKtE,KAAM80C,WAAX,YAAyB2qC,WAGnEb,IACC,qBAAKt6E,UAAWtE,KAAMosB,MAAOpsB,MAAO,CAAE6gB,aAAc,QAApD,SACE,qBAAKvc,UAAWtE,KAAM,cAAeA,MAAO,CAAE8X,MAAO,QAArD,SACE,cAAC,GAAD,CACEq3C,WAAYA,EACZx7B,aAAc5U,KACd9P,KAAMA,EACNotE,WAAY31E,EACZ1G,MAAO,CAAEC,MAAO,cAOxB,qBAAKD,MAAO,CAAEC,MAAO,OAAQ6X,MAAO,QAApC,SACE,yBAAQxT,UAAWtE,KAAM,cAAewE,QAAS,kBAAM+5E,GAA4BD,IAAnF,UACE,cAAC,IAAD,CAAkBtkF,GAAG,qCAAqCmM,eAAe,4BACzE,cAAC,EAAD,CAAOlG,MAAM,KAAKC,OAAO,KAAKoE,UAAS,UAAKtE,KAAM80C,WAAX,YAAyBwqC,WAGnEhB,GACC,qBAAKh6E,UAAWtE,KAAMosB,MAAtB,SACE,qBAAK9nB,UAAWtE,KAAM,cAAeA,MAAO,CAAE8X,MAAO,QAArD,SACE,cAAC,GAAD,CAA6BukE,WAAY31E,EAAO1G,MAAO,CAAEC,MAAO,eAMpEy9E,GACA,qBAAK19E,MAAO,CAAEC,MAAO,OAAQ6X,MAAO,QAApC,SACE,yBAAQxT,UAAWtE,KAAM,cAAewE,QAAS,kBAAM65E,GAAgCD,IAAvF,UACE,cAAC,IAAD,CAAkBpkF,GAAG,+BAA+BmM,eAAe,kCACnE,cAAC,EAAD,CAAOlG,MAAM,KAAKC,OAAO,KAAKoE,UAAS,UAAKtE,KAAM80C,WAAX,YAAyBuqC,WAIrEjB,GACC,qBAAK95E,UAAWtE,KAAMosB,MAAtB,SACE,qBAAK9nB,UAAWtE,KAAM,cAAeA,MAAO,CAAE8X,MAAO,SAArD,SACE,cAAC,GAAD,CAA0BukE,WAAY31E,EAAOuI,KAAMA,EAAMjP,MAAO,CAAEC,MAAO,cAM/E,qBAAKD,MAAO,CAAEC,MAAO,OAAQ6X,MAAO,QAApC,SACE,yBAAQxT,UAAWtE,KAAM,cAAewE,QAAS,kBAAMm6E,GAA8BD,IAArF,UACE,cAAC,IAAD,CAAkB1kF,GAAG,qCAAqCmM,eAAe,oCACzE,cAAC,EAAD,CAAOlG,MAAM,KAAKC,OAAO,KAAKoE,UAAS,UAAKtE,KAAM80C,WAAX,YAAyB0qC,WAGnEd,GACG,qBAAKp6E,UAAWtE,KAAMosB,MAAtB,SACE,qBAAK9nB,UAAWtE,KAAM,cAAeA,MAAO,CAAE8X,MAAO,SAArD,SACE,cAAC,GAAD,CAA6BukE,WAAY31E,EAAO1G,MAAO,CAAEC,MAAO,kB,oBCxM/D2/E,GApBQ,SAAC,GAAD,IAAG9kE,EAAH,EAAGA,MAAH,OACrB,eAAC,IAAD,CAAM5U,GAAE,uBAAmC,UAAjB4U,EAAM1jB,OAAqB,SAAW,OAAxD,YAAkE0jB,EAAM9gB,GAAxE,KAA+EsK,UAAWtE,KAAMmwB,IAAxG,UACE,qBAAK7rB,UAAS,UAAKtE,KAAMutB,OAAX,YAAqBvtB,KAAMhG,IAAzC,SAAgD8gB,EAAM9gB,GAAK8gB,EAAM9gB,GAAK,MACtE,qBAAKsK,UAAS,UAAKtE,KAAMutB,OAAX,YAAqBvtB,KAAM0M,QAAzC,SAAoDoO,EAAM9S,KAAO8S,EAAM9S,KAAO,MAC9E,qBAAK1D,UAAS,UAAKtE,KAAMutB,OAAX,YAAqBvtB,KAAM0M,QAAzC,SAAoDoO,EAAMyhB,KAAOzhB,EAAMyhB,KAAO,MAC9E,qBAAKj4B,UAAS,UAAKtE,KAAMutB,OAAX,YAAqBvtB,KAAM0M,QAAzC,SAAoDoO,EAAMmU,QAAUnU,EAAMmU,QAAU,MACpF,qBAAK3qB,UAAS,UAAKtE,KAAMutB,OAAX,YAAqBvtB,KAAM8a,OAAzC,oBAAuDA,EAAM1c,KAA7D,aAAsEyc,GAAcC,MACpF,qBAAKxW,UAAS,UAAKtE,KAAMutB,OAAX,YAAqBvtB,KAAM8a,OAAzC,SAAsE,MAAnBA,EAAM+kE,SACrD,cAAC,IAAD,CAAkB7lF,GAAG,gBAAgBmM,eAAe,WACpD,cAAC,IAAD,CAAkBnM,GAAG,sBAAsBmM,eAAe,wBAC9D,qBAAK7B,UAAS,UAAKtE,KAAMutB,OAAX,YAAqBvtB,KAAM6T,WAAzC,SAAuDiH,EAAMjH,UAAYiH,EAAMjH,UAAY,MAC3F,qBAAKvP,UAAS,UAAKtE,KAAMutB,OAAX,YAAqBvtB,KAAM/O,MAAzC,SAAkD6pB,EAAMglE,UAAY5rE,IAAO4G,EAAMglE,WAAW3rE,OAAO,sBAAwB,MAC3H,qBAAK7P,UAAS,UAAKtE,KAAMutB,OAAX,YAAqBvtB,KAAMs4B,UAAzC,SAAsDxd,EAAMilE,kBAAoBjlE,EAAMilE,kBAAoB,UClBxGC,GAAW,SAAC,GAAD,IAAG9/E,EAAH,EAAGA,OAAQoE,EAAX,EAAWA,UAAWrE,EAAtB,EAAsBA,MAAOiF,EAA7B,EAA6BA,KAAM6H,EAAnC,EAAmCA,UAAnC,OACf,sBACEzI,UAAWA,EACXrE,MAAOA,EACPC,OAAQA,EACRgF,KAAMA,EACN6H,UAAWA,EACX5H,QAAQ,cACRC,MAAM,6BAPR,UAQE,sBAAMyE,EAAE,oBAAoB3E,KAAK,OAAO0E,OAAO,OAAOq2E,iBAAiB,KAAKj+D,YAAY,MACxF,sBAAMnY,EAAE,2PACR,sBAAMA,EAAE,u4BAIZm2E,GAAS16E,aAAe,CACtBhB,UAAW,GACXrE,MAAO,KACPC,OAAQ,KACRgF,KAAM,UACN6H,UAAW,kBAWEizE,UClBTE,GAAc,SAAC97E,GACnB,IAAM+7C,EAAW/7C,EAAMhI,MAAMvI,OAAOiS,OAAOE,SAAS,OAAS,MAAQ+O,SAAS3Q,EAAMhI,MAAMvI,OAAOiS,OAAOod,OAAO,GAAI,IAC7GzW,EAAQrI,EAAMhI,MAAMvI,OAAOiS,OAAOE,SAAS,Y1L2DrB,SAACjV,GAC7B,IAAMke,EAAQ5H,aAAauS,cAAuBvS,aAAauS,cAApB,KAC3C,OAAQ7oB,GACN,KAAK,EACH,OAAOiR,GAASiN,GAAM,wBACxB,KAAK,EACH,OAAOjN,GAASiN,GAAM,0BACxB,KAAK,EACH,OAAOjN,GAASiN,GAAM,uBACxB,KAAK,EACH,OAAOjN,GAASiN,GAAM,uBACxB,IAAK,MACH,OAAOjN,GAASiN,GAAM,yBAExB,QACE,OAAOle,G0L1EoDovF,CAAehgC,GAAY,wBAE1F,EAA4Bz7C,wBAASjU,GAArC,mBAAOm5B,EAAP,KAAegpC,EAAf,KACA,EAAwBluD,mBAAS,GAAjC,mBAAOuN,EAAP,KAAawa,EAAb,KACA,EAAgC/nB,mBAAS,OAAzC,mBAAOsN,EAAP,KAAiBoiB,EAAjB,KACA,EAA8B1vB,oBAAS,GAAvC,mBAAOqvB,EAAP,KAAgBzgB,EAAhB,KACA,EAA4B5O,mBAAS,IAArC,mBAAO07E,EAAP,KAAeC,EAAf,KACA,EAA4B37E,mBAAS,IAArC,mBAAO47E,EAAP,KAAeC,EAAf,KAEA17E,qBAAU,WACJT,EAAMhI,MAAMvI,OAAOiS,QACrB06E,EAAiBp8E,EAAMhI,MAAMvI,OAAOiS,UAErC,CAAC1B,EAAMhI,MAAMvI,OAAOiS,SAEvB,IAAM06E,EAAmB,SAAC16E,GACxBkD,IAAM,CACJvR,OAAQ,MACRxD,IAAI,WAAD,OAAaiT,KAAb,OlP7BE,kBkP6BF,gCAAyDpB,GAC5DuD,QAAS,CAAEE,cAAc,SAAD,OAAW5B,QAClC6B,MAAK,SAACuJ,GACP6/C,EAAU7/C,EAAKxgB,KAAKqiF,UAAU7iD,MAAK,SAACnS,EAAGC,GAAJ,OAAUA,EAAE7lB,GAAK4lB,EAAE5lB,OACtDqmF,EAAUttE,EAAKxgB,KAAKkuF,SACpBF,EAAUxtE,EAAKxgB,KAAKmuF,SACpBj0D,EAAQ,GACRnZ,GAAW,MACV5J,OAAM,SAAC+hB,GACRr2B,QAAQC,IAAIo2B,EAAI5Z,cAId8uE,EAAiB,SAAC/W,GAClB53D,IAAa43D,GACfhX,EAAUhpC,EAAOmI,MAAK,SAACnS,EAAGC,GAAJ,OAAUD,EAAE5lB,GAAK6lB,EAAE7lB,OACzCo6B,EAAYw1C,KAEZhX,EAAUhpC,EAAOmI,MAAK,SAACnS,EAAGC,GAAJ,OAAUA,EAAE7lB,GAAK4lB,EAAE5lB,OACzCo6B,EAAY,IAAD,OAAKw1C,MAsBdgX,EAAoB,SAAChX,GACrB53D,IAAa43D,GACfhX,EAAUhpC,EAAOmI,MAAK,SAACnS,EAAGC,GAGxB,OAAOF,GAFI,UAAMC,EAAEgqD,GAAUzpD,eAAlB,OAAkCP,EAAE5lB,IACpC,UAAM6lB,EAAE+pD,GAAUzpD,eAAlB,OAAkCN,EAAE7lB,SAGjDo6B,EAAYw1C,KAEZhX,EAAUhpC,EAAOmI,MAAK,SAACnS,EAAGC,GACxB,IAAMghE,EAAK,UAAMjhE,EAAEgqD,GAAUzpD,eAAlB,OAAkCP,EAAE5lB,IAE/C,OAAO2lB,GADI,UAAME,EAAE+pD,GAAUzpD,eAAlB,OAAkCN,EAAE7lB,IACrB6mF,OAE5BzsD,EAAY,IAAD,OAAKw1C,MAIdwB,EA5Ea,IA4EAn5D,EAAO,GACpBo5D,EA7Ea,GA6EFp5D,EAEjB,OACE,sBAAK3N,UAAU,wCAAf,UACGslB,GACC,qBAAKtlB,UAAS,UAAKtE,KAAMyM,MAAX,2BAAd,SACE,sBAAKnI,UAAU,iBAAf,UACE,cAAC,IAAD,CAAkBtK,GAAG,mBAAmBmM,eAAe,oBADzD,OAEE,uBAAMnG,MAAO,CAAE0G,MAAO,OAAQ6H,SAAU,SAAUtO,MAAO,QAAzD,UACE,cAAC,IAAD,CAAkBjG,GAAG,0BAA0BmM,eAAe,eADhE,SACwFsG,EAAM1B,sBAKpG,sBAAKzG,UAAU,yBAAf,UACE,qBAAKtE,MAAO,CAAEimB,WAAY,OAA1B,SACE,mBAAGtpB,KAAMyjF,EAAT,SACE,qBAAK97E,UAAS,UAAKtE,KAAM8gF,SAAX,aAAgCr0E,MAAM,WAApD,SACE,cAAC,GAAD,CACEvH,KAAK,OACLjF,MAAM,OACNC,OAAO,eAKf,qBAAKF,MAAO,CAAEimB,WAAY,OAA1B,SACE,mBAAGtpB,KAAM2jF,EAAT,SACE,qBAAKh8E,UAAS,UAAKtE,KAAM8gF,SAAX,aAAgCr0E,MAAM,MAAMzM,MAAO,CAAEkwB,QAAS,OAA5E,SACE,sBAAMlwB,MAAO,CAAE0G,MAAO,QAAtB,SAAgC,mBAAGpC,UAAU,qCAKpDyvB,EACG,cAAC,GAAD,CAASt6B,KAAM,cAAC,IAAD,CAAkBO,GAAG,sBAAsBmM,eAAe,iBACzEyjB,GACA,sBAAKtlB,UAAS,UAAKtE,KAAM81B,MAAX,UAAd,UACE,cAAC,GAAD,CACEhJ,WAAY9sB,KAAM+kD,SAClBp4B,iBAAkB/C,EAAO93B,OACzB46B,WAtHO,GAuHPD,QAAS,SAAC+R,GAAD,OAAQ/R,EAAQ+R,IACzBvsB,KAAMA,IAER,sBAAK3N,UAAWtE,KAAM4jB,OAAtB,UACE,yBACEtf,UAAWtE,KAAM,iBACjBwE,QAAS,kBAAMm8E,EAAe,OAC9B3gF,MAAO,CAAE0G,MAAoB,OAAbsL,EAAoB,UAAY,QAHlD,eAME,cAAC,EAAD,CACE/R,MAAM,KACNC,OAAO,KACPoE,UAAS,UAAkB,OAAb0N,EAAoBhS,KAAMgL,OAAS,GAAxC,mBAGb,yBACE1G,UAAWtE,KAAM,iBACjBwE,QAAS,kBAAMo8E,EAAkB,SACjC5gF,MAAO,CAAE0G,MAAoB,SAAbsL,EAAsB,UAAY,QAHpD,UAKE,cAAC,IAAD,CAAkBhY,GAAG,iBAAiBmM,eAAe,eACrD,cAAC,EAAD,CACElG,MAAM,KACNC,OAAO,KACPoE,UAAS,UAAkB,SAAb0N,EAAsBhS,KAAMgL,OAAS,GAA1C,kBAGb,yBACE1G,UAAWtE,KAAM,iBACjBwE,QAAS,kBAAMo8E,EAAkB,SACjC5gF,MAAO,CAAE0G,MAAoB,SAAbsL,EAAsB,UAAY,QAHpD,UAKE,cAAC,IAAD,CAAkBhY,GAAG,eAAemM,eAAe,WACnD,cAAC,EAAD,CACElG,MAAM,KACNC,OAAO,KACPoE,UAAS,UAAkB,SAAb0N,EAAsBhS,KAAMgL,OAAS,GAA1C,kBAGb,yBACE1G,UAAWtE,KAAM,iBACjBwE,QAAS,kBAAMo8E,EAAkB,YACjC5gF,MAAO,CAAE0G,MAAoB,YAAbsL,EAAyB,UAAY,QAHvD,UAKE,cAAC,IAAD,CAAkBhY,GAAG,kBAAkBmM,eAAe,YACtD,cAAC,EAAD,CACElG,MAAM,KACNC,OAAO,KACPoE,UAAS,UAAkB,YAAb0N,EAAyBhS,KAAMgL,OAAS,GAA7C,kBAGb,yBACE1G,UAAWtE,KAAM,iBACjBwE,QAAS,WArIE,IAAColE,EACpB53D,KADoB43D,EAqIoB,SAnI1ChX,EAAUhpC,EAAOmI,MAAK,SAACnS,EAAGC,GAGxB,OAAOF,GAFI,UAAMC,EAAExhB,MAAR,OAAewhB,EAAE/L,UAAUsM,eAA3B,OAA2CP,EAAE5lB,IAC7C,UAAM6lB,EAAEzhB,MAAR,OAAeyhB,EAAEhM,UAAUsM,eAA3B,OAA2CN,EAAE7lB,SAG1Do6B,EAAYw1C,KAEZhX,EAAUhpC,EAAOmI,MAAK,SAACnS,EAAGC,GACxB,IAAMghE,EAAK,UAAMjhE,EAAExhB,MAAR,OAAewhB,EAAE/L,UAAUsM,eAA3B,OAA2CP,EAAE5lB,IAExD,OAAO2lB,GADI,UAAME,EAAEzhB,MAAR,OAAeyhB,EAAEhM,UAAUsM,eAA3B,OAA2CN,EAAE7lB,IAC9B6mF,OAE5BzsD,EAAY,IAAD,OAAKw1C,MAwHN5pE,MAAO,CAAE0G,MAAoB,SAAbsL,EAAsB,UAAY,QAHpD,UAKE,cAAC,IAAD,CAAkBhY,GAAG,gBAAgBmM,eAAe,WACpD,cAAC,EAAD,CACElG,MAAM,KACNC,OAAO,KACPoE,UAAS,UAAkB,SAAb0N,EAAsBhS,KAAMgL,OAAS,GAA1C,kBAGb,qBAAK1G,UAAWtE,KAAM,iBAAtB,SACE,cAAC,IAAD,CAAkBhG,GAAG,mBAAmBmM,eAAe,gBAEzD,yBACE7B,UAAWtE,KAAM,iBACjBwE,QAAS,kBAAMo8E,EAAkB,cACjC5gF,MAAO,CAAE0G,MAAoB,cAAbsL,EAA2B,UAAY,QAHzD,UAKE,cAAC,IAAD,CAAkBhY,GAAG,oBAAoBmM,eAAe,cAAc,cAAC,EAAD,CACpElG,MAAM,KACNC,OAAO,KACPoE,UAAS,UAAkB,cAAb0N,EAA2BhS,KAAMgL,OAAS,GAA/C,kBAGb,yBACE1G,UAAWtE,KAAM,iBACjBwE,QAAS,kBAAMm8E,EAAe,OAC9B3gF,MAAO,CAAE0G,MAAoB,OAAbsL,EAAoB,UAAY,QAHlD,UAKE,cAAC,IAAD,CAAkBhY,GAAG,eAAemM,eAAe,SACnD,cAAC,EAAD,CACElG,MAAM,KACNC,OAAO,KACPoE,UAAS,UAAkB,OAAb0N,EAAoBhS,KAAMgL,OAAS,GAAxC,mBAGb,qBAAK1G,UAAWtE,KAAM,iBAAtB,SACE,cAAC,IAAD,CAAkBhG,GAAG,mBAAmBmM,eAAe,uBAG3D,qBAAK7B,UAAS,UAAKtE,KAAMxI,KAAX,aAAd,SACwB,qBAAdoyB,EAAO,GACXA,EACCr0B,MAAM61E,EAAWC,GACjBpgE,KAAI,SAAC6P,EAAO+C,GAAR,OACH,cAAC,GAAD,CAA2C/C,MAAOA,GAA7BA,EAAMimE,mBAE7B,qBAAKz8E,UAAWtE,KAAMmwB,IAAtB,SAA2B,cAAC,IAAD,CAAkBn2B,GAAG,sBAAsBmM,eAAe,kCAQvG+5E,GAAY56E,aAAe,CACzB0C,UAAMvX,GAsCOyvF,UC3RTc,GAAU,SAAC,GAAD,IAAG9gF,EAAH,EAAGA,OAAQoE,EAAX,EAAWA,UAAWrE,EAAtB,EAAsBA,MAAtB,OACd,sBACEqE,UAAWA,EACXrE,MAAOA,EACPC,OAAQA,EACRiF,QAAQ,YACRC,MAAM,6BALR,UAOE,sBAAMyE,EAAE,oWACR,sBAAMA,EAAE,gBAAgB3E,KAAK,aAGjC87E,GAAQ17E,aAAe,CACrBpF,OAAQ,KACRoE,UAAW,GACXrE,MAAO,MASM+gF,U,oBCMAC,GAxBQ,SAAC,GAAD,IAAGr3D,EAAH,EAAGA,OAAH,OACrB,eAAC,IAAD,CAAM1jB,GAAE,8BAAyB0jB,EAAO9E,WAAaxgB,UAAWtE,KAAMmwB,IAAtE,UACE,qBAAK7rB,UAAS,UAAKtE,KAAMutB,OAAX,YAAqBvtB,KAAMhG,IAAzC,SAAgD4vB,EAAO9E,YACvD,qBAAKxgB,UAAS,UAAKtE,KAAMutB,OAAX,YAAqBvtB,KAAM0M,QAAzC,SAAoDkd,EAAOld,SAC3D,qBAAKpI,UAAS,UAAKtE,KAAMutB,OAAX,YAAqBvtB,KAAMwtB,SAAzC,SAAqD5D,EAAO4D,UAC5D,qBAAKlpB,UAAS,UAAKtE,KAAMutB,OAAX,YAAqBvtB,KAAM+uD,UAAzC,SAAsD76C,IAAO0V,EAAOlyB,MAAMyc,OAAO,wBACjF,qBAAK7P,UAAS,UAAKtE,KAAMutB,OAAX,YAAqBvtB,KAAMgvD,YAAzC,SAAwD96C,IAAO0V,EAAO7qB,OAAOoV,OAAO,wBACpF,qBAAK7P,UAAS,UAAKtE,KAAMutB,OAAX,YAAqBvtB,KAAM6T,WAAzC,SAAuD+V,EAAO/V,YAC9D,qBAAKvP,UAAS,UAAKtE,KAAMutB,OAAX,YAAqBvtB,KAAMkhF,WAAzC,SAAuDt3D,EAAO9V,WAAa,cAAC,GAAD,IAAY,cAAC,GAAD,UCHrFqtE,GAAqB,SAAC/8E,GAC1B,IACA,EAA4BM,wBAASjU,GAArC,mBAAOm5B,EAAP,KAAegpC,EAAf,KACA,EAAwBluD,mBAAS,GAAjC,mBAAOuN,EAAP,KAAawa,EAAb,KACA,EAAgC/nB,mBAAS,OAAzC,mBAAOsN,EAAP,KAAiBoiB,EAAjB,KACA,EAA8B1vB,oBAAS,GAAvC,mBAAOqvB,EAAP,KAAgBzgB,EAAhB,KACA,EAA4B5O,mBAAS,IAArC,mBAAO07E,EAAP,KAAeC,EAAf,KACA,EAA4B37E,mBAAS,IAArC,mBAAO47E,EAAP,KAAeC,EAAf,KAEA17E,qBAAU,WACJT,EAAMhI,MAAMvI,OAAOiS,QACrBs7E,EAAmBh9E,EAAMhI,MAAMvI,OAAOiS,UAEvC,CAAC1B,EAAMhI,MAAMvI,OAAOiS,SAEvB,IAAMs7E,EAAqB,SAACt7E,GAC1BkD,IAAM,CACJvR,OAAQ,MACRxD,IAAI,WAAD,OAAaiT,KAAb,OrPzBE,kBqPyBF,kDAA2EpB,GAC9EuD,QAAS,CAAEE,cAAc,SAAD,OAAW5B,QAClC6B,MAAK,SAACuJ,GACP6/C,EAAU7/C,EAAKxgB,KAAKA,KAAKw/B,MAAK,SAACnS,EAAGC,GAAJ,OAAUA,EAAEiF,UAAYlF,EAAEkF,cACxDu7D,EAAUttE,EAAKxgB,KAAKkuF,SACpBF,EAAUxtE,EAAKxgB,KAAKmuF,SACpBj0D,EAAQ,GACRnZ,GAAW,MACV5J,OAAM,SAAC+hB,GACRr2B,QAAQC,IAAIo2B,EAAI5Z,cAcd+uE,EAAoB,SAAChX,GACrB53D,IAAa43D,GACfhX,EAAUhpC,EAAOmI,MAAK,SAACnS,EAAGC,GAGxB,OAAOF,GAFI,UAAMC,EAAEgqD,GAAUzpD,eAAlB,OAAkCP,EAAEkF,WACpC,UAAMjF,EAAE+pD,GAAUzpD,eAAlB,OAAkCN,EAAEiF,gBAGjDsP,EAAYw1C,KAEZhX,EAAUhpC,EAAOmI,MAAK,SAACnS,EAAGC,GACxB,IAAMghE,EAAK,UAAMjhE,EAAEgqD,GAAUzpD,eAAlB,OAAkCP,EAAEkF,WAE/C,OAAOnF,GADI,UAAME,EAAE+pD,GAAUzpD,eAAlB,OAAkCN,EAAEiF,WACrB+7D,OAE5BzsD,EAAY,IAAD,OAAKw1C,MAIdwB,EA1Da,IA0DAn5D,EAAO,GACpBo5D,EA3Da,GA2DFp5D,EAEjB,OACE,sBAAK3N,UAAU,wCAAf,UACE,sBAAKA,UAAS,UAAKtE,KAAMyM,MAAX,2BAAd,UACE,cAAC,IAAD,CAAkBzS,GAAG,mBAAmBmM,eAAe,oBADzD,QAEE,cAAC,IAAD,CAAkBnM,GAAG,gCAAgCmM,eAAe,oBAEtE,sBAAK7B,UAAU,yBAAf,UACE,qBAAKtE,MAAO,CAAEimB,WAAY,OAA1B,SACE,mBAAGtpB,KAAMyjF,EAAT,SACE,qBAAK97E,UAAS,UAAKtE,KAAM8gF,SAAX,aAAgCr0E,MAAM,WAApD,SACE,cAAC,GAAD,CACEvH,KAAK,OACLjF,MAAM,OACNC,OAAO,eAKf,qBAAKF,MAAO,CAAEimB,WAAY,OAA1B,SACE,mBAAGtpB,KAAM2jF,EAAT,SACE,qBAAKh8E,UAAS,UAAKtE,KAAM8gF,SAAX,aAAgCr0E,MAAM,MAAMzM,MAAO,CAAEkwB,QAAS,OAA5E,SACE,sBAAMlwB,MAAO,CAAE0G,MAAO,QAAtB,SAAgC,mBAAGpC,UAAU,qCAKpDyvB,EACG,cAAC,GAAD,CAASt6B,KAAM,cAAC,IAAD,CAAkBO,GAAG,sBAAsBmM,eAAe,iBACzEyjB,GACA,sBAAKtlB,UAAS,UAAKtE,KAAM81B,MAAX,UAAd,UACE,cAAC,GAAD,CACEhJ,WAAY9sB,KAAM+kD,SAClBp4B,iBAAkB/C,EAAO93B,OACzB46B,WA9FO,GA+FPD,QAAS,SAACqC,GAAD,OAASrC,EAAQqC,IAC1B7c,KAAMA,IAER,sBAAK3N,UAAWtE,KAAM4jB,OAAtB,UACE,qBAAKtf,UAAWtE,KAAMhG,GAAtB,SACE,yBACEsK,UAAWtE,KAAM,iBACjBwE,QAAS,WAxEF,IAAColE,EAClB53D,KADkB43D,EAwEsB,OAtE1ChX,EAAUhpC,EAAOmI,MAAK,SAACnS,EAAGC,GAAJ,OAAUD,EAAEkF,UAAYjF,EAAEiF,cAChDsP,EAAYw1C,KAEZhX,EAAUhpC,EAAOmI,MAAK,SAACnS,EAAGC,GAAJ,OAAUA,EAAEiF,UAAYlF,EAAEkF,cAChDsP,EAAY,IAAD,OAAKw1C,MAmEJ5pE,MAAO,CAAE0G,MAAoB,OAAbsL,EAAoB,UAAY,QAHlD,eAME,cAAC,EAAD,CACE/R,MAAM,KACNC,OAAO,KACPoE,UAAS,UAAkB,OAAb0N,EAAoBhS,KAAMgL,OAAS,GAAxC,qBAIf,qBAAK1G,UAAWtE,KAAM0M,OAAtB,SACE,yBACEpI,UAAWtE,KAAM,iBACjBwE,QAAS,kBAAMo8E,EAAkB,WACjC5gF,MAAO,CAAE0G,MAAoB,WAAbsL,EAAwB,UAAY,QAHtD,UAKE,cAAC,IAAD,CAAkBhY,GAAG,iBAAiBmM,eAAe,eAAY,cAAC,EAAD,CAC/DlG,MAAM,KACNC,OAAO,KACPoE,UAAS,UAAkB,WAAb0N,EAAwBhS,KAAMgL,OAAS,GAA5C,qBAIf,qBAAK1G,UAAWtE,KAAMwtB,QAAtB,SACE,yBACElpB,UAAWtE,KAAM,iBACjBwE,QAAS,kBAAMo8E,EAAkB,YACjC5gF,MAAO,CAAE0G,MAAoB,YAAbsL,EAAyB,UAAY,QAHvD,UAKE,cAAC,IAAD,CAAkBhY,GAAG,kBAAkBmM,eAAe,UACtD,cAAC,EAAD,CACElG,MAAM,KACNC,OAAO,KACPoE,UAAS,UAAkB,YAAb0N,EAAyBhS,KAAMgL,OAAS,GAA7C,qBAIf,qBAAK1G,UAAWtE,KAAM+uD,SAAtB,SAAgC,cAAC,IAAD,CAAkB/0D,GAAG,kBAAkBmM,eAAe,eACtF,qBAAK7B,UAAWtE,KAAMgvD,WAAtB,SAAkC,cAAC,IAAD,CAAkBh1D,GAAG,kBAAkBmM,eAAe,mBACxF,qBAAK7B,UAAWtE,KAAM6T,UAAtB,SAAiC,cAAC,IAAD,CAAkB7Z,GAAG,oBAAoBmM,eAAe,gBACzF,qBAAK7B,UAAWtE,KAAMkhF,UAAtB,SAAiC,cAAC,IAAD,CAAkBlnF,GAAG,2BAA2BmM,eAAe,kBAElG,qBAAK7B,UAAS,UAAKtE,KAAMxI,KAAX,aAAd,SACGoyB,EAAO93B,OAAS,EAAI83B,EAAOr0B,MAAM61E,EAAWC,GAC1CpgE,KAAI,SAAA4e,GAAG,OACN,cAAC,GAAD,CAAqCD,OAAQC,GAAvBA,EAAI/E,cAG9B,qBAAKxgB,UAAWtE,KAAMmwB,IAAtB,SAA2B,cAAC,IAAD,CAAkBn2B,GAAG,sBAAsBmM,eAAe,kCASnGg7E,GAAmB77E,aAAe,CAChC0C,UAAMvX,GAyCO0wF,UCtLAF,GA1BQ,SAAC,GAAD,IAAGr3D,EAAH,EAAGA,OAAH,OACrB,eAAC,IAAD,CAAM1jB,GAAE,8BAAyB0jB,EAAO9E,WAAaxgB,UAAWtE,KAAMmwB,IAAtE,UACE,qBAAK7rB,UAAS,UAAKtE,KAAMutB,OAAX,YAAqBvtB,KAAMhG,IAAzC,SAAgD4vB,EAAO9E,YACvD,qBAAKxgB,UAAS,UAAKtE,KAAMutB,OAAX,YAAqBvtB,KAAM0M,QAAzC,SAAoDkd,EAAOld,SAC3D,qBAAKpI,UAAS,UAAKtE,KAAMutB,OAAX,YAAqBvtB,KAAMwtB,SAAzC,SAAqD5D,EAAO4D,UAC5D,qBAAKlpB,UAAS,UAAKtE,KAAMutB,OAAX,YAAqBvtB,KAAM0M,QAAzC,SAAoDkd,EAAO2S,OAC3D,qBAAKj4B,UAAS,UAAKtE,KAAMutB,OAAX,YAAqBvtB,KAAM+uD,UAAzC,SAAsD76C,IAAO0V,EAAOlyB,MAAMyc,OAAO,wBACjF,qBAAK7P,UAAS,UAAKtE,KAAMutB,OAAX,YAAqBvtB,KAAMgvD,YAAzC,SAAwD96C,IAAO0V,EAAO7qB,OAAOoV,OAAO,wBACpF,qBAAK7P,UAAS,UAAKtE,KAAMutB,OAAX,YAAqBvtB,KAAM6T,WAAzC,SAAuD+V,EAAO/V,YAC9D,qBAAKvP,UAAS,UAAKtE,KAAMutB,OAAX,YAAqBvtB,KAAM6T,WAAzC,SAAuD+V,EAAOy3D,eAC9D,qBAAK/8E,UAAS,UAAKtE,KAAMutB,OAAX,YAAqBvtB,KAAMkhF,WAAzC,SAAuDt3D,EAAO9V,WAAa,cAAC,GAAD,IAAY,cAAC,GAAD,UCLrFwtE,GAAqB,SAACl9E,GAC1B,IACA,EAA4BM,wBAASjU,GAArC,mBAAOm5B,EAAP,KAAegpC,EAAf,KACA,EAAkCluD,mBAAS,IAA3C,mBAAO68E,EAAP,KAAkBC,EAAlB,KACA,EAAwB98E,mBAAS,GAAjC,mBAAOuN,EAAP,KAAawa,EAAb,KACA,EAAgC/nB,mBAAS,OAAzC,mBAAOsN,EAAP,KAAiBoiB,EAAjB,KACA,EAA8B1vB,oBAAS,GAAvC,mBAAOqvB,EAAP,KAAgBzgB,EAAhB,KACA,EAA4B5O,mBAAS,IAArC,mBAAO07E,EAAP,KAAeC,EAAf,KACA,EAA4B37E,mBAAS,IAArC,mBAAO47E,EAAP,KAAeC,EAAf,KAEA17E,qBAAU,WACJT,EAAMhI,MAAMvI,OAAOiS,QACrBs7E,EAAmBh9E,EAAMhI,MAAMvI,OAAOiS,UAEvC,CAAC1B,EAAMhI,MAAMvI,OAAOiS,SAEvB,IAAMs7E,EAAqB,SAACt7E,GAC1BkD,IAAM,CACJvR,OAAQ,MACRxD,IAAI,WAAD,OAAaiT,KAAb,OvP1BE,kBuP0BF,sCAA+DpB,GAClEuD,QAAS,CAAEE,cAAc,SAAD,OAAW5B,QAClC6B,MAAK,SAACuJ,GACP6/C,EAAU7/C,EAAKxgB,KAAKA,KAAKw/B,MAAK,SAACnS,EAAGC,GAAJ,OAAUA,EAAEiF,UAAYlF,EAAEkF,cACxDu7D,EAAUttE,EAAKxgB,KAAKkuF,SACpBF,EAAUxtE,EAAKxgB,KAAKmuF,SACpBj0D,EAAQ,GACRnZ,GAAW,GACXkuE,EAAazuE,EAAKxgB,KAAKA,MAAQwgB,EAAKxgB,KAAKoqE,WACxCjzD,OAAM,SAAC+hB,GACRr2B,QAAQC,IAAIo2B,EAAI5Z,cAcd+uE,EAAoB,SAAChX,GACrB53D,IAAa43D,GACfhX,EAAUhpC,EAAOmI,MAAK,SAACnS,EAAGC,GAGxB,OAAOF,GAFI,UAAMC,EAAEgqD,GAAUzpD,eAAlB,OAAkCP,EAAEkF,WACpC,UAAMjF,EAAE+pD,GAAUzpD,eAAlB,OAAkCN,EAAEiF,gBAGjDsP,EAAYw1C,KAEZhX,EAAUhpC,EAAOmI,MAAK,SAACnS,EAAGC,GACxB,IAAMghE,EAAK,UAAMjhE,EAAEgqD,GAAUzpD,eAAlB,OAAkCP,EAAEkF,WAE/C,OAAOnF,GADI,UAAME,EAAE+pD,GAAUzpD,eAAlB,OAAkCN,EAAEiF,WACrB+7D,OAE5BzsD,EAAY,IAAD,OAAKw1C,MAIdwB,EA5Da,IA4DAn5D,EAAO,GACpBo5D,EA7Da,GA6DFp5D,EACXhD,EAAQ5H,aAAauS,cAAuBvS,aAAauS,cAApB,KACrC6nE,EAAU/xB,GAAYzgD,GAAMsyE,GAElC,OACE,sBAAKj9E,UAAU,wCAAf,UACE,sBAAKA,UAAS,UAAKtE,KAAMyM,MAAX,2BAAd,UACE,cAAC,IAAD,CAAkBzS,GAAG,mBAAmBmM,eAAe,oBADzD,QAEE,cAAC,IAAD,CAAkBnM,GAAG,uBAAuBmM,eAAe,iBAF7D,OAGI,cAAC,IAAD,CAAkBnM,GAAG,iBAAiBmM,eAAe,YAHzD,OAIE,uBAAK,sBAAM7B,UAAWtE,KAAMgvB,SAAvB,SAAkCyyD,OAEzC,sBAAKn9E,UAAU,yBAAf,UACE,qBAAKtE,MAAO,CAAEimB,WAAY,OAA1B,SACE,mBAAGtpB,KAAMyjF,EAAT,SACE,qBAAK97E,UAAS,UAAKtE,KAAM8gF,SAAX,aAAgCr0E,MAAM,WAApD,SACE,cAAC,GAAD,CAAUvH,KAAK,OAAOjF,MAAM,OAAOC,OAAO,eAIhD,qBAAKF,MAAO,CAAEimB,WAAY,OAA1B,SACE,mBAAGtpB,KAAM2jF,EAAT,SACE,qBAAKh8E,UAAS,UAAKtE,KAAM8gF,SAAX,aAAgCr0E,MAAM,MAAMzM,MAAO,CAAEkwB,QAAS,OAA5E,SACE,sBAAMlwB,MAAO,CAAE0G,MAAO,QAAtB,SAAgC,mBAAGpC,UAAU,qCAKpDyvB,EACG,cAAC,GAAD,CAASt6B,KAAM,cAAC,IAAD,CAAkBO,GAAG,sBAAsBmM,eAAe,iBACzEyjB,GACA,sBAAKtlB,UAAS,UAAKtE,KAAM81B,MAAX,UAAd,UACE,cAAC,GAAD,CACEhJ,WAAY9sB,KAAM+kD,SAClBp4B,iBAAkB/C,EAAO93B,OACzB46B,WAhGO,GAiGPD,QAAS,SAACqC,GAAD,OAASrC,EAAQqC,IAC1B7c,KAAMA,IAER,sBAAK3N,UAAWtE,KAAM4jB,OAAtB,UACE,qBAAKtf,UAAWtE,KAAMhG,GAAtB,SACE,yBACEsK,UAAWtE,KAAM,iBACjBwE,QAAS,WAxEF,IAAColE,EAClB53D,KADkB43D,EAwEsB,OAtE1ChX,EAAUhpC,EAAOmI,MAAK,SAACnS,EAAGC,GAAJ,OAAUD,EAAEkF,UAAYjF,EAAEiF,cAChDsP,EAAYw1C,KAEZhX,EAAUhpC,EAAOmI,MAAK,SAACnS,EAAGC,GAAJ,OAAUA,EAAEiF,UAAYlF,EAAEkF,cAChDsP,EAAY,IAAD,OAAKw1C,MAmEJ5pE,MAAO,CAAE0G,MAAoB,OAAbsL,EAAoB,UAAY,QAHlD,eAME,cAAC,EAAD,CACE/R,MAAM,KACNC,OAAO,KACPoE,UAAS,UAAkB,OAAb0N,EAAoBhS,KAAMgL,OAAS,GAAxC,qBAIf,qBAAK1G,UAAWtE,KAAM0M,OAAtB,SACE,yBACEpI,UAAWtE,KAAM,iBACjBwE,QAAS,kBAAMo8E,EAAkB,WACjC5gF,MAAO,CAAE0G,MAAoB,WAAbsL,EAAwB,UAAY,QAHtD,UAKE,cAAC,IAAD,CAAkBhY,GAAG,iBAAiBmM,eAAe,eAAY,cAAC,EAAD,CAC/DlG,MAAM,KACNC,OAAO,KACPoE,UAAS,UAAkB,WAAb0N,EAAwBhS,KAAMgL,OAAS,GAA5C,qBAIf,qBAAK1G,UAAWtE,KAAMwtB,QAAtB,SACE,yBACElpB,UAAWtE,KAAM,iBACjBwE,QAAS,kBAAMo8E,EAAkB,YACjC5gF,MAAO,CAAE0G,MAAoB,YAAbsL,EAAyB,UAAY,QAHvD,UAKE,cAAC,IAAD,CAAkBhY,GAAG,kBAAkBmM,eAAe,UACtD,cAAC,EAAD,CACElG,MAAM,KACNC,OAAO,KACPoE,UAAS,UAAkB,YAAb0N,EAAyBhS,KAAMgL,OAAS,GAA7C,qBAIf,qBAAK1G,UAAWtE,KAAM0M,OAAtB,SACE,yBACEpI,UAAWtE,KAAM,iBACjBwE,QAAS,kBAAMo8E,EAAkB,SACjC5gF,MAAO,CAAE0G,MAAoB,SAAbsL,EAAsB,UAAY,QAHpD,UAKE,cAAC,IAAD,CAAkBhY,GAAG,eAAemM,eAAe,WAAW,cAAC,EAAD,CAC5DlG,MAAM,KACNC,OAAO,KACPoE,UAAS,UAAkB,SAAb0N,EAAsBhS,KAAMgL,OAAS,GAA1C,qBAIf,qBAAK1G,UAAWtE,KAAM+uD,SAAtB,SAAgC,cAAC,IAAD,CAAkB/0D,GAAG,kBAAkBmM,eAAe,eACtF,qBAAK7B,UAAWtE,KAAMgvD,WAAtB,SAAkC,cAAC,IAAD,CAAkBh1D,GAAG,kBAAkBmM,eAAe,mBACxF,qBAAK7B,UAAWtE,KAAM6T,UAAtB,SAAiC,cAAC,IAAD,CAAkB7Z,GAAG,oBAAoBmM,eAAe,gBACzF,qBAAK7B,UAAWtE,KAAM6T,UAAtB,SAAiC,cAAC,IAAD,CAAkB7Z,GAAG,kBAAkBmM,eAAe,cACvF,qBAAK7B,UAAWtE,KAAMkhF,UAAtB,SAAiC,cAAC,IAAD,CAAkBlnF,GAAG,2BAA2BmM,eAAe,kBAElG,qBAAK7B,UAAS,UAAKtE,KAAMxI,KAAX,aAAd,SACGoyB,EAAO93B,OAAS,EAAI83B,EAAOr0B,MAAM61E,EAAWC,GAC1CpgE,KAAI,SAAA4e,GAAG,OACN,cAAC63D,GAAD,CAA0C93D,OAAQC,GAAvBA,EAAI/E,cAGnC,qBAAKxgB,UAAWtE,KAAMmwB,IAAtB,SAA2B,cAAC,IAAD,CAAkBn2B,GAAG,sBAAsBmM,eAAe,kCAWnGm7E,GAAmBh8E,aAAe,CAChC0C,UAAMvX,GAyCO6wF,U,yCCvMAK,GA5BY,SAAC,GAAgB,IAAd/3D,EAAa,EAAbA,OACtBg4D,EAAe,IAAIluF,KAAKk2B,EAAO7qB,OAAS,IAAIrL,KAAKk2B,EAAOlyB,MACxDs+D,EAAUz5D,KAAKkjB,MAAMmiE,EAAe,KAC1C,OACE,eAAC,IAAD,CAAM17E,GAAE,8BAAyB0jB,EAAO9E,UAAhC,KAA8CxgB,UAAWtE,KAAMmwB,IAAvE,UACE,qBAAK7rB,UAAS,UAAKtE,KAAMutB,OAAX,YAAqBvtB,KAAMhG,IAAzC,SAAgD4vB,EAAO9E,YACvD,qBAAKxgB,UAAS,UAAKtE,KAAMutB,OAAX,YAAqBvtB,KAAM0M,QAAzC,SAAoDkd,EAAOld,SAC3D,qBAAKpI,UAAS,UAAKtE,KAAMutB,OAAX,YAAqBvtB,KAAMwtB,SAAzC,SAAqD5D,EAAO4D,UAC5D,qBAAKlpB,UAAS,UAAKtE,KAAMutB,OAAX,YAAqBvtB,KAAM+uD,UAAzC,SAAsD76C,IAAO0V,EAAOlyB,MAAMyc,OAAO,wBACjF,qBAAK7P,UAAS,UAAKtE,KAAMutB,OAAX,YAAqBvtB,KAAMgvD,YAAzC,SAAwD96C,IAAO0V,EAAO7qB,OAAOoV,OAAO,wBACpF,qBAAK7P,UAAS,UAAKtE,KAAMutB,OAAX,YAAqBvtB,KAAMs4B,UAAzC,SAAsDupD,KAAQ7rB,GAAS7hD,OAAO,cAC9E,qBAAK7P,UAAS,UAAKtE,KAAMutB,OAAX,YAAqBvtB,KAAM8uD,YAAzC,SAAwDllC,EAAO5yB,cCJ/D8qF,GAAkB,SAAC19E,GACvB,IACA,EAAkCM,wBAASjU,GAA3C,mBAAOojB,EAAP,KAAkBwiD,EAAlB,KACA,EAA4B3xD,wBAASjU,GAArC,mBAAOm5B,EAAP,KAAegpC,EAAf,KACA,EAAwBluD,mBAAS,GAAjC,mBAAOuN,EAAP,KAAawa,EAAb,KACA,EAAgC/nB,mBAAS,OAAzC,mBAAOsN,EAAP,KAAiBoiB,EAAjB,KACA,EAA8B1vB,oBAAS,GAAvC,mBAAOqvB,EAAP,KAAgBzgB,EAAhB,KACA,EAA4B5O,mBAAS,IAArC,mBAAO07E,EAAP,KAAeC,EAAf,KACA,EAA4B37E,mBAAS,IAArC,mBAAO47E,EAAP,KAAeC,EAAf,KAEA17E,qBAAU,WACJT,EAAMhI,MAAMvI,OAAOiS,QACrBi8E,EAAqB39E,EAAMhI,MAAMvI,OAAOiS,UAEzC,CAAC1B,EAAMhI,MAAMvI,OAAOiS,SAEvB,IAAMi8E,EAAuB,SAACj8E,GAC5BkD,IAAM,CACJvR,OAAQ,MACRxD,IAAI,WAAD,OAAaiT,KAAb,OzP3BE,kByP2BF,oCAA6DpB,GAChEuD,QAAS,CAAEE,cAAc,SAAD,OAAW5B,QAClC6B,MAAK,SAACuJ,GACPsjD,EAAa,CACX5wD,cAAesN,EAAKxgB,KAAKshB,UACzBsmB,MAAOpnB,EAAKxgB,KAAK4nC,MACjBxK,SAAU5c,EAAKxgB,KAAKo9B,SACpB7F,MAAO/W,EAAKxgB,KAAKu3B,QAEnB8oC,EAAU7/C,EAAKxgB,KAAKq3B,OAAOmI,MAAK,SAACnS,EAAGC,GAAJ,OAAUA,EAAEiF,UAAYlF,EAAEkF,cAC1Du7D,EAAUttE,EAAKxgB,KAAKkuF,SACpBF,EAAUxtE,EAAKxgB,KAAKmuF,SACpBj0D,EAAQ,GACRnZ,GAAW,MACV5J,OAAM,SAAC+hB,GACRr2B,QAAQC,IAAIo2B,EAAI5Z,cAcd+uE,EAAoB,SAAChX,GACrB53D,IAAa43D,GACfhX,EAAUhpC,EAAOmI,MAAK,SAACnS,EAAGC,GAGxB,OAAOF,GAFI,UAAMC,EAAEgqD,GAAUzpD,eAAlB,OAAkCP,EAAEkF,WACpC,UAAMjF,EAAE+pD,GAAUzpD,eAAlB,OAAkCN,EAAEiF,gBAGjDsP,EAAYw1C,KAEZhX,EAAUhpC,EAAOmI,MAAK,SAACnS,EAAGC,GACxB,IAAMghE,EAAK,UAAMjhE,EAAEgqD,GAAUzpD,eAAlB,OAAkCP,EAAEkF,WAE/C,OAAOnF,GADI,UAAME,EAAE+pD,GAAUzpD,eAAlB,OAAkCN,EAAEiF,WACrB+7D,OAE5BzsD,EAAY,IAAD,OAAKw1C,MAIdwB,EAjEa,IAiEAn5D,EAAO,GACpBo5D,EAlEa,GAkEFp5D,EAEjB,OACE,sBAAK3N,UAAU,wCAAf,UACGuP,GACC,sBAAKvP,UAAS,UAAKtE,KAAMyM,MAAX,uBAAd,UACE,cAAC,IAAD,CAAkBzS,GAAG,mBAAmBmM,eAAe,oBADzD,OACgF,cAAC,IAAD,CAAkBnM,GAAG,+BAA+BmM,eAAe,oBACjJ,uBACA,uBAAM7B,UAAWtE,KAAMgvB,SAAvB,oBAAqCnb,EAAUpO,cAAcsF,eAA7D,UACE,cAAC,IAAD,CAAkB/Q,GAAG,2BAA2BmM,eAAe,UADjE,eACiF4T,GAAUlG,EAAU8b,UAAwB5kB,eAD7H,IAC8I,uBAC5I,cAAC,IAAD,CAAkB/Q,GAAG,kCAAkCmM,eAAe,0BAFxE,KAEqG0N,EAAUiW,YAInH,sBAAKxlB,UAAU,yBAAf,UACE,qBAAKtE,MAAO,CAAEimB,WAAY,OAA1B,SACE,mBAAGtpB,KAAMyjF,EAAT,SACE,qBAAK97E,UAAS,UAAKtE,KAAM8gF,SAAX,aACZr0E,MAAM,WADR,SAGE,cAAC,GAAD,CAAUvH,KAAK,OAAOjF,MAAM,OAAOC,OAAO,eAIhD,qBAAKF,MAAO,CAAEimB,WAAY,OAA1B,SACE,mBAAGtpB,KAAM2jF,EAAT,SACE,qBAAKh8E,UAAS,UAAKtE,KAAM8gF,SAAX,aAAgCr0E,MAAM,MAAMzM,MAAO,CAAEkwB,QAAS,OAA5E,SACE,sBAAMlwB,MAAO,CAAE0G,MAAO,QAAtB,SAAgC,mBAAGpC,UAAU,qCAKpDyvB,EACG,cAAC,GAAD,CAASt6B,KAAM,cAAC,IAAD,CAAkBO,GAAG,sBAAsBmM,eAAe,iBACzEyjB,GACA,sBAAKtlB,UAAS,UAAKtE,KAAM81B,MAAX,UAAd,UACE,cAAC,GAAD,CACEhJ,WAAY9sB,KAAM+kD,SAClBp4B,iBAAkB/C,EAAO93B,OACzB46B,WAzGO,GA0GPD,QAAS,SAACqC,GAAD,OAASrC,EAAQqC,IAC1B7c,KAAMA,IAER,sBAAK3N,UAAWtE,KAAM4jB,OAAtB,UACE,qBAAKtf,UAAWtE,KAAMhG,GAAtB,SACE,yBACEsK,UAAWtE,KAAM,iBACjBwE,QAAS,WA5EF,IAAColE,EAClB53D,KADkB43D,EA4EsB,OA1E1ChX,EAAUhpC,EAAOmI,MAAK,SAACnS,EAAGC,GAAJ,OAAUD,EAAEkF,UAAYjF,EAAEiF,cAChDsP,EAAYw1C,KAEZhX,EAAUhpC,EAAOmI,MAAK,SAACnS,EAAGC,GAAJ,OAAUA,EAAEiF,UAAYlF,EAAEkF,cAChDsP,EAAY,IAAD,OAAKw1C,MAuEJ5pE,MAAO,CAAE0G,MAAoB,OAAbsL,EAAoB,UAAY,QAHlD,eAME,cAAC,EAAD,CACE/R,MAAM,KACNC,OAAO,KACPoE,UAAS,UAAkB,OAAb0N,EAAoBhS,KAAMgL,OAAS,GAAxC,qBAIf,qBAAK1G,UAAWtE,KAAM0M,OAAtB,SACE,yBACEpI,UAAWtE,KAAM,iBACjBwE,QAAS,kBAAMo8E,EAAkB,WACjC5gF,MAAO,CAAE0G,MAAoB,WAAbsL,EAAwB,UAAY,QAHtD,UAKE,cAAC,IAAD,CAAkBhY,GAAG,iBAAiBmM,eAAe,eAAY,cAAC,EAAD,CAC/DlG,MAAM,KACNC,OAAO,KACPoE,UAAS,UAAkB,WAAb0N,EAAwBhS,KAAMgL,OAAS,GAA5C,qBAIf,qBAAK1G,UAAWtE,KAAMwtB,QAAtB,SACE,yBACElpB,UAAWtE,KAAM,iBACjBwE,QAAS,kBAAMo8E,EAAkB,YACjC5gF,MAAO,CAAE0G,MAAoB,YAAbsL,EAAyB,UAAY,QAHvD,UAKE,cAAC,IAAD,CAAkBhY,GAAG,kBAAkBmM,eAAe,UACtD,cAAC,EAAD,CACElG,MAAM,KACNC,OAAO,KACPoE,UAAS,UAAkB,YAAb0N,EAAyBhS,KAAMgL,OAAS,GAA7C,qBAIf,qBAAK1G,UAAWtE,KAAM+uD,SAAtB,SAAgC,cAAC,IAAD,CAAkB/0D,GAAG,kBAAkBmM,eAAe,eACtF,qBAAK7B,UAAWtE,KAAMgvD,WAAtB,SAAkC,cAAC,IAAD,CAAkBh1D,GAAG,kBAAkBmM,eAAe,mBACxF,qBAAK7B,UAAWtE,KAAMs4B,SAAtB,SAAgC,cAAC,IAAD,CAAkBt+B,GAAG,mBAAmBmM,eAAe,oBACvF,qBAAK7B,UAAWtE,KAAM8uD,WAAtB,SACE,yBACExqD,UAAWtE,KAAM,iBACjBwE,QAAS,kBAAMo8E,EAAkB,YACjC5gF,MAAO,CAAE0G,MAAoB,YAAbsL,EAAyB,UAAY,QAHvD,UAKE,cAAC,IAAD,CAAkBhY,GAAG,mBAAmBmM,eAAe,kBAAkB,cAAC,EAAD,CACvElG,MAAM,KACNC,OAAO,KACPoE,UAAS,UAAkB,YAAb0N,EAAyBhS,KAAMgL,OAAS,GAA7C,wBAKjB,qBAAK1G,UAAS,UAAKtE,KAAMxI,KAAX,aAAd,SACGoyB,EAAO93B,OAAS,EAAI83B,EAAOr0B,MAAM61E,EAAWC,GAC1CpgE,KAAI,SAAA4e,GAAG,OACN,cAAC,GAAD,CAAwCD,OAAQC,GAAvBA,EAAI/E,cAGjC,qBAAKxgB,UAAWtE,KAAMmwB,IAAtB,SAA2B,cAAC,IAAD,CAAkBn2B,GAAG,sBAAsBmM,eAAe,kCAUnG27E,GAAgBx8E,aAAe,CAC7B0C,UAAMvX,GAsCOqxF,UC1OTE,GAAkB,SAAC,GAA+B,IAA7B9hF,EAA4B,EAA5BA,OAAQ0pB,EAAoB,EAApBA,OAAQ3pB,EAAY,EAAZA,MACnCgiF,EAAQ,GACRh9D,EAAS,GACT+B,EAAS,GACL,YACL4C,EAAO3e,KAAI,SAAC4e,GACY,MAArBA,EAAIq4D,cACND,EAAMhgF,KAAK4nB,EAAInd,QACfuY,EAAOhjB,KAAK4nB,EAAIs4D,aAChBn7D,EAAO/kB,KAAK,eAEZggF,EAAMhgF,KAAK4nB,EAAInd,QACfuY,EAAOhjB,KAAK4nB,EAAIs4D,aAChBn7D,EAAO/kB,KAAK,gBAWlB,OACE,qBAAKqC,UAAU,OAAOtE,MAAO,CAAEE,SAAQD,SAAvC,SACE,cAAC,GAAD,CACEmnB,OAAQ66D,EACR1vF,KAAM0yB,EACN+B,OAAQA,EACRgB,WAAW,MACXG,cAAY,EACZlE,UAdkB,WACtB,GAAIg+D,EAAMnwF,OAAS,GACjB,MAAO,SAYMswF,GACXt6D,QAAM,EACNu6D,SAAO,OAMfL,GAAgB18E,aAAe,CAC7BpF,OAAQ,QACRD,MAAO,SAgBM+hF,U,oBCpCAM,GAtBa,SAAC,GAAgB,IAAd14D,EAAa,EAAbA,OAC7B,OACE,sBAAKtlB,UAAS,UAAKtE,KAAMmwB,IAAX,eAAd,UACE,qBAAK7rB,UAAS,UAAKtE,KAAMwtB,QAAX,YAAsBxtB,KAAMutB,QAA1C,SAAqD3D,EAAO4D,UAC5D,qBAAKlpB,UAAS,UAAKtE,KAAMgI,KAAX,YAAmBhI,KAAMutB,QAAvC,SAAkD3D,EAAOld,SACzD,qBAAKpI,UAAS,UAAKtE,KAAM6b,IAAX,YAAkB7b,KAAMutB,QAAtC,SAAiD3D,EAAOu4D,cACxD,qBAAK79E,UAAS,UAAKtE,KAAM,gBAAX,YAA8BA,KAAMutB,QAAlD,SAA6DrZ,IAAO0V,EAAOkT,cAAc3oB,OAAO,wBAChG,qBAAK7P,UAAS,UAAKtE,KAAM,gBAAX,YAA8BA,KAAMutB,QAAlD,SAAqF,MAAxB3D,EAAOs4D,aAAuBt4D,EAAOs4D,aAAehuE,IAAO0V,EAAOs4D,cAAc/tE,OAAO,4BCEpJouE,GAAqB,SAACn+E,GAC1B,IAAM6K,EAAQ5H,aAAauS,cAAuBvS,aAAauS,cAApB,KAE3C,EAA4BlV,wBAASjU,GAArC,mBAAOm5B,EAAP,KAAegpC,EAAf,KACA,EAAwBluD,mBAAS,GAAjC,mBAAOuN,EAAP,KAAawa,EAAb,KACA,EAAgC/nB,mBAAS,OAAzC,mBACA,GADA,UAC8BA,oBAAS,IAAvC,mBAAOqvB,EAAP,KAAgBzgB,EAAhB,KACA,EAA4B5O,mBAAS,IAArC,mBAAO07E,EAAP,KAAeC,EAAf,KACA,EAA4B37E,mBAAS,IAArC,mBAAO47E,EAAP,KAAeC,EAAf,KACA,EAAkC77E,oBAAS,GAA3C,mBAAO89E,EAAP,KAAkBC,EAAlB,KAEA59E,qBAAU,WACR69E,MACC,IAEH,IAAMA,EAAiB,WACrB15E,IAAM,CACJvR,OAAQ,MACRxD,IAAI,WAAD,OAAaiT,KAAb,O5PzBE,kB4PyBF,gCACHmC,QAAS,CAAEE,cAAc,SAAD,OAAW5B,QAClC6B,MAAK,SAACuJ,GACP6/C,EAAU7/C,EAAKxgB,KAAKq3B,QACpBy2D,EAAUttE,EAAKxgB,KAAKkuF,SACpBF,EAAUxtE,EAAKxgB,KAAKmuF,SACpBptE,GAAW,OAIT83D,EA1Ba,IA0BAn5D,EAAO,GACpBo5D,EA3Ba,GA2BFp5D,EAEjB,OACE,sBAAK3N,UAAU,wCAAf,UACE,sBAAKA,UAAS,UAAKtE,KAAMyM,MAAX,2BAAd,UACE,cAAC,IAAD,CAAkBzS,GAAG,mBAAmBmM,eAAe,oBADzD,QACiF,sBAAMnG,MAAO,CAAE0G,MAAO,QAAtB,SAC7E,cAAC,IAAD,CAAkB1M,GAAG,oCAAoCmM,eAAe,iDAG5E,sBAAK7B,UAAU,yBAAf,UACE,qBAAKtE,MAAO,CAAEimB,WAAY,OAA1B,SACE,wBACE3qB,KAAK,SACLgJ,UAAS,UAAKtE,KAAM8gF,SAAX,aACTt8E,QAAS,kBAAMi+E,GAAcD,IAC7BxiF,MAAO,CAAEG,OAAQ,qBACjBsM,MAAK,UAAK+1E,EAAYxgF,GAASiN,GAAM,wBAA0BjN,GAASiN,GAAM,0BALhF,SAOE,mBACE3K,UAAS,cACPk+E,EAAY,cAAgB,eADrB,UAGT,cAAY,OACZxiF,MAAO,CAAEsuB,WAAY,kBAI3B,qBAAKtuB,MAAO,CAAEimB,WAAY,OAA1B,SACE,mBAAGtpB,KAAMyjF,EAAT,SACE,qBAAK97E,UAAS,UAAKtE,KAAM8gF,SAAX,aAAgCr0E,MAAM,WAApD,SACE,cAAC,GAAD,CAAUvH,KAAK,OAAOjF,MAAM,OAAOC,OAAO,eAIhD,qBAAKF,MAAO,CAAEimB,WAAY,OAA1B,SACE,mBAAGtpB,KAAM2jF,EAAT,SACE,qBAAKh8E,UAAS,UAAKtE,KAAM8gF,SAAX,aAAgCr0E,MAAM,MAAMzM,MAAO,CAAEkwB,QAAS,OAA5E,SACE,sBAAMlwB,MAAO,CAAE0G,MAAO,QAAtB,SAAgC,mBAAGpC,UAAU,qCAKpDyvB,EACG,cAAC,GAAD,CAASt6B,KAAM,cAAC,IAAD,CAAkBO,GAAG,sBAAsBmM,eAAe,iBACxEyjB,IACG44D,EA0CE,8BACGF,GAAoBxwF,OAAS,GAC5B,cAAC6wF,GAAD,CACE/4D,OAAQA,EACR3pB,MAAM,OACNC,OAAM,UACJ,GAAK0pB,EAAO93B,OAAS,IAAM,IAAM,GAAK83B,EAAO93B,OADzC,UA7CZ,sBAAKwS,UAAS,UAAKtE,KAAM81B,MAAX,UAAd,UACE,cAAC,GAAD,CACEhJ,WAAY9sB,KAAM+kD,SAClBp4B,iBAAkB/C,EAAO93B,OACzB46B,WA9EC,GA+EDD,QAAS,SAACqC,GAAD,OAASrC,EAAQqC,IAC1B7c,KAAMA,IAER,sBAAK3N,UAAWtE,KAAM4jB,OAAtB,UACE,qBAAKtf,UAAS,UAAKtE,KAAM,iBAAX,YAA+BA,KAAMwtB,SAAnD,SACE,cAAC,IAAD,CAAkBxzB,GAAG,wBAAwBmM,eAAe,qBAE9D,qBAAK7B,UAAS,UAAKtE,KAAM,iBAAX,YAA+BA,KAAMgI,MAAnD,SACE,cAAC,IAAD,CAAkBhO,GAAG,iBAAiBmM,eAAe,iBAEvD,qBAAK7B,UAAS,UAAKtE,KAAM,iBAAX,YAA+BA,KAAM6b,KAAnD,SACE,cAAC,IAAD,CAAkB7hB,GAAG,4BAA4BmM,eAAe,6BAElE,qBAAK7B,UAAS,UAAKtE,KAAM,iBAAX,YAA+BA,KAAM,iBAAnD,SACE,cAAC,IAAD,CAAkBhG,GAAG,6BAA6BmM,eAAe,4BAEnE,qBAAK7B,UAAS,UAAKtE,KAAM,iBAAX,YAA+BA,KAAM,iBAAnD,SACE,cAAC,IAAD,CAAkBhG,GAAG,6BAA6BmM,eAAe,+BAGrE,qBAAK7B,UAAS,UAAKtE,KAAMxI,KAAX,aAAd,SACGoyB,EAAO93B,OAAS,EACf83B,EACGr0B,MAAM61E,EAAWC,GACjBpgE,KAAI,SAAA4e,GAAG,OACN,cAAC,GAAD,CAAuCD,OAAQC,GAArBA,EAAI2D,YAG9B,qBAAKlpB,UAAWtE,KAAMxI,KAAtB,SACE,cAAC,IAAD,CAAkBwC,GAAG,sBAAsBmM,eAAe,mCAyBtFo8E,GAAmBj9E,aAAe,CAChC0C,UAAMvX,GAmCO8xF,UChLTK,GAAuB,SAAC,GAA+B,IAA7B1iF,EAA4B,EAA5BA,OAAQ0pB,EAAoB,EAApBA,OAAQ3pB,EAAY,EAAZA,MACxCgP,EAAQ5H,aAAauS,cAAuBvS,aAAauS,cAApB,KACrCipE,EAAQ,GACRC,EAAc,GACdC,EAAc,GACd52E,EAAW,GACXyP,EAAQ,GAYRyL,GAVI,YACLuC,EAAO3e,KAAI,SAAA4e,GAAG,MAAI,CACnBjO,EAAM3Z,KAAKgY,GAAW4P,EAAIjO,QAC1BinE,EAAM5gF,KAAK4nB,EAAIg5D,MAAQh5D,EAAIg5D,MAAQ,GACnCC,EAAY7gF,KAAK4nB,EAAIm5D,cAAgBn5D,EAAIm5D,cAAgB,GACzDD,EAAY9gF,KAAK4nB,EAAIo5D,cAAgBp5D,EAAIo5D,cAAgB,GACzD92E,EAASlK,KAAK4nB,EAAI1d,SAAW0d,EAAI1d,SAAW,QAI/B,CACf,CACEod,MAAOvnB,GAASiN,GAAM,8BACtByB,gBAAiB,UACjB8Y,qBAAsB,UACtBj3B,KAAMswF,EACN39E,MAAM,GAER,CACEqkB,MAAOvnB,GAASiN,GAAM,oCACtByB,gBAAiB,UACjB8Y,qBAAsB,UACtBj3B,KAAMuwF,EACN59E,MAAM,GAER,CACEqkB,MAAOvnB,GAASiN,GAAM,oCACtByB,gBAAiB,UACjB8Y,qBAAsB,UACtBj3B,KAAMwwF,EACN79E,MAAM,GAER,CACEqkB,MAAOvnB,GAASiN,GAAM,iCACtByB,gBAAiB,UACjB8Y,qBAAsB,UACtBj3B,KAAM4Z,EACNjH,MAAM,KAIV,OACE,qBAAKZ,UAAU,OAAOtE,MAAO,CAAEE,SAAQD,QAAOyjB,UAAW,SAAzD,SACE,cAAC,GAAD,CAAa0D,OAAQxL,EAAOrpB,KAAM80B,EAAUH,YAAU,OAK5D07D,GAAqBt9E,aAAe,CAClCpF,OAAQ,QACRD,MAAO,SAQM2iF,U,oBC6EAM,GA5IsB,SAAC9+E,GACpC,IAAM6K,EAAQ5H,aAAauS,cAAuBvS,aAAauS,cAApB,KAC3C,EAA4BlV,wBAASjU,GAArC,mBAAOm5B,EAAP,KAAegpC,EAAf,KACA,EAA8BluD,oBAAS,GAAvC,mBAAOqvB,EAAP,KAAgBzgB,EAAhB,KACA,EAA4B5O,mBAAS,IAArC,mBAAO07E,EAAP,KAAeC,EAAf,KACA,EAA4B37E,mBAAS,IAArC,mBAAO47E,EAAP,KAAeC,EAAf,KACA,EAAkC77E,oBAAS,GAA3C,mBAAO89E,EAAP,KAAkBC,EAAlB,KAEA59E,qBAAU,WACJT,EAAMhI,MAAMvI,OAAOiS,QACrBq9E,EAAoB/+E,EAAMhI,MAAMvI,OAAOiS,UAExC,CAAC1B,EAAMhI,MAAMvI,OAAOiS,SAEvB,IAAMq9E,EAAsB,SAACr9E,GAC3BkD,IAAM,CACJvR,OAAQ,MACRxD,IAAI,WAAD,OAAaiT,KAAb,O9PtBE,kB8PsBF,gDAAyEpB,GAC5EuD,QAAS,CAAEE,cAAc,SAAD,OAAW5B,QAClC6B,MAAK,SAACuJ,GACP6/C,EAAU7/C,EAAKxgB,KAAKA,MACpB8tF,EAAUttE,EAAKxgB,KAAKkuF,SACpBF,EAAUxtE,EAAKxgB,KAAKmuF,SACpBptE,GAAW,MACV5J,OAAM,SAAC+hB,GACRr2B,QAAQC,IAAIo2B,EAAI5Z,cAIduxE,EAAiB,SAACxnE,GACtB,OAAQA,GACN,KAAK,EACH,OAAOI,GAAc/M,GAAMkJ,QAC7B,KAAK,EACH,OAAO6D,GAAc/M,GAAMmJ,SAC7B,KAAK,EACH,OAAO4D,GAAc/M,GAAMoJ,MAC7B,KAAK,EACH,OAAO2D,GAAc/M,GAAMqJ,MAC7B,KAAK,EACH,OAAO0D,GAAc/M,GAAMsJ,IAC7B,KAAK,EACH,OAAOyD,GAAc/M,GAAMuJ,KAC7B,KAAK,EACH,OAAOwD,GAAc/M,GAAMwJ,KAC7B,KAAK,EACH,OAAOuD,GAAc/M,GAAMyJ,OAC7B,KAAK,EACH,OAAOsD,GAAc/M,GAAM0J,UAC7B,KAAK,GACH,OAAOqD,GAAc/M,GAAM2J,QAC7B,KAAK,GACH,OAAOoD,GAAc/M,GAAM4J,SAC7B,KAAK,GACH,OAAOmD,GAAc/M,GAAM6J,SAC7B,QACE,MAAO,KAgBb,OACE,sBAAKxU,UAAU,wCAAf,UACE,sBAAKA,UAAS,UAAKtE,KAAMyM,MAAX,2BAAd,UACE,cAAC,IAAD,CAAkBzS,GAAG,mBAAmBmM,eAAe,oBADzD,QAEE,sBAAMnG,MAAO,CAAE0G,MAAO,OAAQ6H,SAAU,SAAUtO,MAAO,QAAzD,SACE,cAAC,IAAD,CAAkBjG,GAAG,8BAA8BmM,eAAe,8CAGtE,sBAAK7B,UAAU,yBAAf,UACE,qBAAKtE,MAAO,CAAEimB,WAAY,OAA1B,SACE,wBACE3qB,KAAK,SACLgJ,UAAS,UAAKtE,KAAM8gF,SAAX,aACTt8E,QAAS,kBAAMi+E,GAAcD,IAC7BxiF,MAAO,CAAEG,OAAQ,qBACjBsM,MAAK,UAAK+1E,EAAYxgF,GAASiN,GAAM,wBAA0BjN,GAASiN,GAAM,0BALhF,SAOE,mBACE3K,UAAS,WAAMk+E,EAAY,kBAAoB,mBAAtC,UACT,cAAY,OACZxiF,MAAO,CAAEsuB,WAAY,kBAI3B,qBAAKtuB,MAAO,CAAEimB,WAAY,OAA1B,SACE,mBAAGtpB,KAAMyjF,EAAT,SACE,qBAAK97E,UAAS,UAAKtE,KAAM8gF,SAAX,aAAgCr0E,MAAM,WAApD,SACE,cAAC,GAAD,CAAUvH,KAAK,OAAOjF,MAAM,OAAOC,OAAO,eAIhD,qBAAKF,MAAO,CAAEimB,WAAY,OAA1B,SACE,mBAAGtpB,KAAM2jF,EAAT,SACE,qBAAKh8E,UAAS,UAAKtE,KAAM8gF,SAAX,aAAgCr0E,MAAM,MAAMzM,MAAO,CAAEkwB,QAAS,OAA5E,SACE,sBAAMlwB,MAAO,CAAE0G,MAAO,QAAtB,SAAgC,mBAAGpC,UAAU,qCAKpDyvB,EACG,cAAC,GAAD,CAASt6B,KAAM,cAAC,IAAD,CAAkBO,GAAG,sBAAsBmM,eAAe,iBACxEyjB,IACG44D,EAaE,8BACG54D,EAAO93B,OAAS,GACf,cAAC,GAAD,CAAsB83B,OAAQA,EAAQ3pB,MAAM,OAAOC,OAAM,UAAK,GAAK0pB,EAAO93B,OAAS,IAAM,IAAM,GAAK83B,EAAO93B,OAAlD,UAb7D,sBAAKwS,UAAS,UAAKtE,KAAM81B,MAAX,UAAd,UACE,qBAAIxxB,UAAWtE,KAAM4jB,OAArB,UACE,6BAAI,cAAC,IAAD,CAAkB5pB,GAAG,6BAA6BmM,eAAe,aACrE,6BAAI,cAAC,IAAD,CAAkBnM,GAAG,kCAAkCmM,eAAe,8BAC1E,6BAAI,cAAC,IAAD,CAAkBnM,GAAG,qCAAqCmM,eAAe,wBAC7E,6BAAI,cAAC,IAAD,CAAkBnM,GAAG,qCAAqCmM,eAAe,wBAC7E,6BAAI,cAAC,IAAD,CAAkBnM,GAAG,gCAAgCmM,eAAe,uBAE1E,uBAAO7B,UAAWtE,KAAMxI,KAAxB,SA/DPoyB,EAAO3e,KAAI,SAAA1Y,GAAI,OACpB,qBAAI+R,UAAWtE,KAAMmwB,IAArB,UACE,oBAAInwB,MAAO,CAAEC,MAAO,QAApB,SAA+BmjF,EAAe7wF,EAAKqpB,SACnD,6BAAKrpB,EAAKswF,QACV,6BAAKtwF,EAAKywF,gBACV,6BAAKzwF,EAAK0wF,gBACV,6BAAK1wF,EAAK4Z,aALmB5Z,EAAKqpB,oBC2E3BynE,GAzIkB,SAACj/E,GAChC,IAAM6K,EAAQ5H,aAAauS,cAAuBvS,aAAauS,cAApB,KAC3C,EAA4BlV,wBAASjU,GAArC,mBAAOm5B,EAAP,KAAegpC,EAAf,KACA,EAA8BluD,oBAAS,GAAvC,mBAAOqvB,EAAP,KAAgBzgB,EAAhB,KACA,EAA4B5O,mBAAS,IAArC,mBAAO07E,EAAP,KAAeC,EAAf,KACA,EAA4B37E,mBAAS,IAArC,mBAAO47E,EAAP,KAAeC,EAAf,KACA,EAAkC77E,oBAAS,GAA3C,mBAAO89E,EAAP,KAAkBC,EAAlB,KAEA59E,qBAAU,WACJT,EAAMhI,MAAMvI,OAAOiS,QACrBw9E,EAAwBl/E,EAAMhI,MAAMvI,OAAOiS,UAE5C,CAAC1B,EAAMhI,MAAMvI,OAAOiS,SAEvB,IAAMw9E,EAA0B,SAACx9E,GAC/BkD,IAAM,CACJvR,OAAQ,MACRxD,IAAI,WAAD,OAAaiT,KAAb,O/PtBE,kB+PsBF,4CAAqEpB,GAAM,gBAAaA,IAC3FuD,QAAS,CAAEE,cAAc,SAAD,OAAW5B,QAClC6B,MAAK,SAACuJ,GACP6/C,EAAU7/C,EAAKxgB,KAAKA,MACpB8tF,EAAUttE,EAAKxgB,KAAKkuF,SACpBF,EAAUxtE,EAAKxgB,KAAKmuF,SACpBptE,GAAW,MACV5J,OAAM,SAAC+hB,GACRr2B,QAAQC,IAAIo2B,EAAI5Z,UAChByB,GAAW,OAIT8vE,EAAiB,SAACxnE,GACtB,OAAQA,GACN,KAAK,EACH,OAAOI,GAAc/M,GAAMkJ,QAC7B,KAAK,EACH,OAAO6D,GAAc/M,GAAMmJ,SAC7B,KAAK,EACH,OAAO4D,GAAc/M,GAAMoJ,MAC7B,KAAK,EACH,OAAO2D,GAAc/M,GAAMqJ,MAC7B,KAAK,EACH,OAAO0D,GAAc/M,GAAMsJ,IAC7B,KAAK,EACH,OAAOyD,GAAc/M,GAAMuJ,KAC7B,KAAK,EACH,OAAOwD,GAAc/M,GAAMwJ,KAC7B,KAAK,EACH,OAAOuD,GAAc/M,GAAMyJ,OAC7B,KAAK,EACH,OAAOsD,GAAc/M,GAAM0J,UAC7B,KAAK,GACH,OAAOqD,GAAc/M,GAAM2J,QAC7B,KAAK,GACH,OAAOoD,GAAc/M,GAAM4J,SAC7B,KAAK,GACH,OAAOmD,GAAc/M,GAAM6J,SAC7B,QACE,MAAO,KAeb,OACE,sBAAKxU,UAAU,wCAAf,UACE,sBAAKA,UAAS,UAAKtE,KAAMyM,MAAX,2BAAd,UACE,cAAC,IAAD,CAAkBzS,GAAG,mBAAmBmM,eAAe,oBADzD,QACiF,sBAAM7B,UAAWtE,KAAMgvB,SAAvB,SAC7E,cAAC,IAAD,CAAkBh1B,GAAG,2BAA2BmM,eAAe,yCAGnE,sBAAK7B,UAAU,yBAAf,UACE,qBAAKtE,MAAO,CAAEimB,WAAY,OAA1B,SACE,wBACE3qB,KAAK,SACLgJ,UAAS,UAAKtE,KAAM8gF,SAAX,aACTt8E,QAAS,kBAAMi+E,GAAcD,IAC7BxiF,MAAO,CAAEG,OAAQ,qBACjBsM,MAAK,UAAK+1E,EAAYxgF,GAASiN,GAAM,wBAA0BjN,GAASiN,GAAM,0BALhF,SAOE,mBACE3K,UAAS,WAAMk+E,EAAY,kBAAoB,mBAAtC,UACT,cAAY,OACZxiF,MAAO,CAAEsuB,WAAY,kBAI3B,qBAAKtuB,MAAO,CAAEimB,WAAY,OAA1B,SACE,mBAAGtpB,KAAMyjF,EAAT,SACE,qBAAK97E,UAAS,UAAKtE,KAAM8gF,SAAX,aAAgCr0E,MAAM,WAApD,SACE,cAAC,GAAD,CAAUvH,KAAK,OAAOjF,MAAM,OAAOC,OAAO,eAIhD,qBAAKF,MAAO,CAAEimB,WAAY,OAA1B,SACE,mBAAGtpB,KAAM2jF,EAAT,SACE,qBAAKh8E,UAAS,UAAKtE,KAAM8gF,SAAX,aAAgCr0E,MAAM,MAAMzM,MAAO,CAAEkwB,QAAS,OAA5E,SACE,sBAAMlwB,MAAO,CAAE0G,MAAO,QAAtB,SAAgC,mBAAGpC,UAAU,qCAKpDyvB,EACG,cAAC,GAAD,CAASt6B,KAAM,cAAC,IAAD,CAAkBO,GAAG,sBAAsBmM,eAAe,iBACxEyjB,IACG44D,EAYE,8BACG54D,EAAO93B,OAAS,GACf,cAAC,GAAD,CAAyB83B,OAAQA,EAAQ3pB,MAAM,OAAOC,OAAM,UAAK,GAAK0pB,EAAO93B,OAAS,IAAM,IAAM,GAAK83B,EAAO93B,OAAlD,UAZhE,sBAAKwS,UAAS,UAAKtE,KAAM81B,MAAX,UAAd,UACE,qBAAIxxB,UAAWtE,KAAM4jB,OAArB,UACE,6BAAI,cAAC,IAAD,CAAkB5pB,GAAG,0BAA0BmM,eAAe,aAClE,uBACA,uBACA,6BAAI,cAAC,IAAD,CAAkBnM,GAAG,+BAA+BmM,eAAe,qCAEzE,uBAAO7B,UAAWtE,KAAMxI,KAAxB,SA5DPoyB,EAAO3e,KAAI,SAAA1Y,GAAI,OACpB,qBAAI+R,UAAWtE,KAAMmwB,IAArB,UACE,qBAAInwB,MAAO,CAACC,MAAO,SAAnB,UAA8BmjF,EAAe7wF,EAAKqpB,OAAlD,MAA6DrpB,EAAKopB,QAClE,uBACA,uBACA,6BAAKppB,EAAKu3B,UAJmBv3B,EAAKqpB,oB,qBC/C3B2nE,GAtBiB,SAAC,GAAD,IAAG72E,EAAH,EAAGA,OAAH,OAC9B,sBAAKpI,UAAWtE,KAAMmwB,IAAtB,UACE,sBAAK7rB,UAAS,UAAKtE,KAAMutB,OAAX,YAAqBvtB,KAAMwtB,SAAzC,cAAsD9gB,EAAO8gB,QAA7D,OACA,sBAAKlpB,UAAS,UAAKtE,KAAMutB,OAAX,YAAqBvtB,KAAMib,MAAzC,cAAmDvO,EAAO6jB,WAA1D,IAAuE7jB,EAAO8jB,UAA9E,OACA,sBAAKlsB,UAAS,UAAKtE,KAAMutB,OAAX,YAAqBvtB,KAAM,iBAAzC,cAA8DkU,IAAOxH,EAAOowB,cAAc3oB,OAAO,sBAAjG,OACA,sBAAK7P,UAAS,UAAKtE,KAAMutB,OAAX,YAAqBvtB,KAAM,iBAAzC,cAA8D0M,EAAO0jB,WAAalc,IAAOxH,EAAOmwB,eAAe1oB,OAAO,sBAAwB,IAA9I,OACA,sBAAK7P,UAAS,UAAKtE,KAAMutB,OAAX,YAAqBvtB,KAAM,iBAAzC,cAA8D0M,EAAO82E,YAArE,W,oBCyHWC,GAzHc,SAACr/E,GAC5B,MAA4BM,wBAASjU,GAArC,mBAAOm5B,EAAP,KAAegpC,EAAf,KACA,EAA4BluD,mBAAS,IAArC,mBAAO07E,EAAP,KAAeC,EAAf,KACA,EAA4B37E,mBAAS,IAArC,mBAAO47E,EAAP,KAAeC,EAAf,KACA,EAAgC77E,mBAAS,OAAzC,mBAAOsN,EAAP,KAAiBoiB,EAAjB,KACA,EAA8B1vB,oBAAS,GAAvC,mBAAOqvB,EAAP,KAAgBzgB,EAAhB,KACA,EAA8B5O,mBAAS,IAAvC,mBAAOuqB,EAAP,KAAgBy0D,EAAhB,KAEA7+E,qBAAU,WACJT,EAAMhI,MAAMvI,QACd8vF,EAA0Bv/E,EAAMhI,MAAMvI,OAAO+R,UAAWxB,EAAMhI,MAAMvI,OAAOiS,UAE5E,CAAC1B,EAAMhI,MAAMvI,OAAO+R,UAAWxB,EAAMhI,MAAMvI,OAAOiS,SAErD,IAAM69E,EAA4B,SAAC/9E,EAAWE,GAC5CkD,IAAM,CACJvR,OAAQ,MACRxD,IAAI,WAAD,OAAaiT,KAAb,OjQtBE,kBiQsBF,oDAA6EtB,EAA7E,aAA2FE,GAC9FuD,QAAS,CAAEE,cAAc,SAAD,OAAW5B,QAClC6B,MAAK,SAACuJ,GACP6/C,EAAU7/C,EAAKxgB,KAAKqxF,UACpBF,EAAW3wE,EAAKxgB,KAAK08B,SACrBoxD,EAAUttE,EAAKxgB,KAAKkuF,SACpBF,EAAUxtE,EAAKxgB,KAAKmuF,SACpBptE,GAAW,MACV5J,OAAM,SAAC+hB,GACRr2B,QAAQC,IAAIo2B,EAAI5Z,UAChByB,GAAW,OAITstE,EAAoB,SAAChX,GACrB53D,IAAa43D,GACfhX,EAAUhpC,EAAOmI,MAAK,SAACnS,EAAGC,GAGxB,OAAOF,GAFI,UAAMC,EAAEgqD,GAAUzpD,eAAlB,OAAkCP,EAAEkF,WACpC,UAAMjF,EAAE+pD,GAAUzpD,eAAlB,OAAkCN,EAAEiF,gBAGjDsP,EAAYw1C,KAEZhX,EAAUhpC,EAAOmI,MAAK,SAACnS,EAAGC,GACxB,IAAMghE,EAAK,UAAMjhE,EAAEgqD,GAAUzpD,eAAlB,OAAkCP,EAAEkF,WAE/C,OAAOnF,GADI,UAAME,EAAE+pD,GAAUzpD,eAAlB,OAAkCN,EAAEiF,WACrB+7D,OAE5BzsD,EAAY,IAAD,OAAKw1C,MAIpB,OACE,sBAAKtlE,UAAU,wCAAf,UACE,sBAAKA,UAAS,UAAKtE,KAAMyM,MAAX,2BAAd,UACE,cAAC,IAAD,CAAkBzS,GAAG,mBAAmBmM,eAAe,oBADzD,SACkF,uBAAM7B,UAAWtE,KAAMgvB,SAAvB,UAC9E,cAAC,IAAD,CAAkBh1B,GAAG,iCAAiCmM,eAAe,0CADS,IACgC8oB,EAAQlkB,oBAG1H,sBAAKzG,UAAU,yBAAf,UACE,qBAAKtE,MAAO,CAAEimB,WAAY,OAA1B,SACE,mBAAGtpB,KAAMyjF,EAAT,SACE,qBACE97E,UAAS,UAAKtE,KAAM8gF,SAAX,aACTr0E,MAAM,WAFR,SAIE,cAAC,GAAD,CAAUvH,KAAK,OAAOjF,MAAM,OAAOC,OAAO,eAIhD,qBAAKF,MAAO,CAAEimB,WAAY,OAA1B,SACE,mBAAGtpB,KAAM2jF,EAAT,SACE,qBAAKh8E,UAAS,UAAKtE,KAAM8gF,SAAX,aAAgCr0E,MAAM,MAAMzM,MAAO,CAAEkwB,QAAS,OAA5E,SACE,sBAAMlwB,MAAO,CAAE0G,MAAO,QAAtB,SAAgC,mBAAGpC,UAAU,qCAKpDyvB,EACG,cAAC,GAAD,CAASt6B,KAAM,cAAC,IAAD,CAAkBO,GAAG,sBAAsBmM,eAAe,iBACzEyjB,GACA,sBAAKtlB,UAAS,UAAKtE,KAAM81B,MAAX,UAAd,UACE,sBAAKxxB,UAAWtE,KAAM4jB,OAAtB,UACE,wBAAQtf,UAAWtE,KAAM,iBAAkBwE,QAAS,kBAAMo8E,EAAkB,YAA5E,SACE,cAAC,IAAD,CAAkB5mF,GAAG,kBAAkBmM,eAAe,YAExD,wBAAQ7B,UAAWtE,KAAM,iBAAkBwE,QAAS,kBAAMo8E,EAAkB,eAA5E,SACE,cAAC,IAAD,CAAkB5mF,GAAG,mBAAmBmM,eAAe,WAEzD,wBAAQ7B,UAAWtE,KAAM,iBAAkBwE,QAAS,kBAAMo8E,EAAkB,iBAA5E,SACE,cAAC,IAAD,CAAkB5mF,GAAG,6BAA6BmM,eAAe,4BAEnE,qBAAK7B,UAAS,UAAKtE,KAAM,iBAAX,YAA+BA,KAAM,eAAnD,SACE,cAAC,IAAD,CAAkBhG,GAAG,6BAA6BmM,eAAe,4BAEnE,qBAAK7B,UAAS,UAAKtE,KAAM,iBAAX,YAA+BA,KAAM,eAAnD,SACE,cAAC,IAAD,CAAkBhG,GAAG,4BAA4BmM,eAAe,qBAGpE,qBAAK7B,UAAS,UAAKtE,KAAMxI,KAAX,iBAAd,SACGoyB,GAAUA,EAAO93B,OAAS,EACvB83B,EAAO3e,KAAI,SAAAklB,GAAG,OAAI,cAAC,GAAD,CAAsCzjB,OAAQyjB,GAAhBA,EAAIn2B,OACpD,qBAAKsK,UAAU,sBAAf,SAAqC,cAAC,IAAD,CAAkBtK,GAAG,sBAAsBmM,eAAe,kCCzG3G09E,GAAuB,SAAC,GAA+B,IAA7B3jF,EAA4B,EAA5BA,OAAQ0pB,EAAoB,EAApBA,OAAQ3pB,EAAY,EAAZA,MACxCgiF,EAAQ,GACRh9D,EAAS,GACL,YACL2E,EAAO3e,KAAI,SAAC4e,GACbo4D,EAAMhgF,KAAK4nB,EAAIoF,SACfhK,EAAOhjB,KAAK4nB,EAAIC,WAIpB,OACE,qBAAKxlB,UAAU,OAAOtE,MAAO,CAAEE,SAAQD,QAAOyjB,UAAW,SAAzD,SACE,cAAC,GAAD,CAAa0D,OAAQ66D,EAAO1vF,KAAM0yB,OAKxC4+D,GAAqBv+E,aAAe,CAClCpF,OAAQ,QACRD,MAAO,SAcM4jF,UClBAC,GAhBkB,SAAC,GAAD,IAAGl6D,EAAH,EAAGA,OAAQm6D,EAAX,EAAWA,WAAX,OAC/B,eAAC,IAAD,CAAM79E,GAAE,oDAA+C0jB,EAAOo6D,WAAtD,YAAoED,GAAcz/E,UAAWtE,KAAMmwB,IAA3G,UACE,qBAAK7rB,UAAWtE,KAAMib,KAAtB,SAA6B2O,EAAOqF,UACpC,qBAAK3qB,UAAWtE,KAAM,aAAtB,SAAqC4pB,EAAOo6D,aAC5C,qBAAK1/E,UAAWtE,KAAM,iBAAtB,SAAyC4pB,EAAOE,YCsHrCm6D,GAlHe,SAAC7/E,GAC7B,IAAM6K,EAAQ5H,aAAauS,cAAuBvS,aAAauS,cAApB,KAC3C,EAA4BlV,wBAASjU,GAArC,mBAAOm5B,EAAP,KAAegpC,EAAf,KACA,EAA8BluD,oBAAS,GAAvC,mBAAOqvB,EAAP,KAAgBzgB,EAAhB,KACA,EAA4B5O,mBAAS,IAArC,mBAAO07E,EAAP,KAAeC,EAAf,KACA,EAA4B37E,mBAAS,IAArC,mBAAO47E,EAAP,KAAeC,EAAf,KACA,EAAkC77E,oBAAS,GAA3C,mBAAO89E,EAAP,KAAkBC,EAAlB,KAEA59E,qBAAU,WACJT,EAAMhI,MAAMvI,OAAOiS,QACrBo+E,EAA2B9/E,EAAMhI,MAAMvI,OAAOiS,UAE/C,CAAC1B,EAAMhI,MAAMvI,OAAOiS,SAEvB,IAAMo+E,EAA6B,SAACp+E,GAClCkD,IAAM,CACJvR,OAAQ,MACRxD,IAAI,WAAD,OAAaiT,KAAb,OpQvBE,kBoQuBF,4CAAqEpB,GACxEuD,QAAS,CAAEE,cAAc,SAAD,OAAW5B,QAClC6B,MAAK,SAACuJ,GACP6/C,EAAU7/C,EAAKxgB,KAAKq3B,QACpBy2D,EAAUttE,EAAKxgB,KAAKkuF,SACpBF,EAAUxtE,EAAKxgB,KAAKmuF,SACpBptE,GAAW,MACV5J,OAAM,SAAC+hB,GACRr2B,QAAQC,IAAIo2B,EAAI5Z,UAChByB,GAAW,OAIf,OACE,sBAAKhP,UAAU,wCAAf,UACE,sBAAKA,UAAS,UAAKtE,KAAMyM,MAAX,2BAAd,UACE,cAAC,IAAD,CAAkBzS,GAAG,mBAAmBmM,eAAe,oBADzD,UACmF,sBAAM7B,UAAWtE,KAAMgvB,SAAvB,SACjF,cAAC,IAAD,CAAkBh1B,GAAG,2BAA2BmM,eAAe,iCAEjE,sBAAK7B,UAAU,yBAAf,UACE,qBAAKtE,MAAO,CAAEgvC,OAAQ,UAAtB,SACE,wBACE1zC,KAAK,SACLgJ,UAAS,UAAKtE,KAAM8gF,SAAX,aACTt8E,QAAS,kBAAMi+E,GAAcD,IAC7BxiF,MAAO,CAAEG,OAAQ,qBACjBsM,MAAK,UAAK+1E,EAAYxgF,GAASiN,GAAM,wBAA0BjN,GAASiN,GAAM,0BALhF,SAOE,mBACE3K,UAAS,cAASk+E,EAAY,cAAgB,eAArC,UACT,cAAY,OACZxiF,MAAO,CAAEsuB,WAAY,kBAI3B,qBAAKtuB,MAAO,CAAGgvC,OAAQ,UAAvB,SACE,mBAAGryC,KAAMyjF,EAAT,SACE,qBAAK97E,UAAS,UAAKtE,KAAM8gF,SAAX,aAAgCr0E,MAAM,WAApD,SACE,cAAC,GAAD,CAAUvH,KAAK,OAAOjF,MAAM,OAAOC,OAAO,eAIhD,qBAAKF,MAAO,CAAEimB,WAAY,MAAO+oB,OAAQ,UAAzC,SACE,mBAAGryC,KAAM2jF,EAAT,SACE,qBAAKh8E,UAAS,UAAKtE,KAAM8gF,SAAX,aAAgCr0E,MAAM,MAAMzM,MAAO,CAAEkwB,QAAS,OAA5E,SACE,sBAAMlwB,MAAO,CAAE0G,MAAO,QAAtB,SAAgC,mBAAGpC,UAAU,qCAKpDyvB,EACG,cAAC,GAAD,CAASt6B,KAAM,cAAC,IAAD,CAAkBO,GAAG,sBAAsBmM,eAAe,iBACxEyjB,IACG44D,EA6BA,8BAAM54D,EAAO93B,OAAS,GACpB,cAAC,GAAD,CACE83B,OAAQA,EACR3pB,MAAM,OACNC,OAAM,UAAK,GAAK0pB,EAAO93B,OAAS,IAAM,IAAM,GAAK83B,EAAO93B,OAAlD,UA/BR,sBAAKwS,UAAS,UAAKtE,KAAM81B,MAAX,UAAd,UACE,sBAAKxxB,UAAWtE,KAAM4jB,OAAtB,UACE,qBAAKtf,UAAWtE,KAAMib,KAAtB,SACE,cAAC,IAAD,CAAkBjhB,GAAG,yBAAyBmM,eAAe,sBAE/D,qBAAK7B,UAAWtE,KAAM,aAAtB,SACE,cAAC,IAAD,CAAkBhG,GAAG,uBAAuBmM,eAAe,0BAE7D,qBAAK7B,UAAWtE,KAAM,iBAAtB,SACE,cAAC,IAAD,CAAkBhG,GAAG,0BAA0BmM,eAAe,8BAGlE,qBAAK7B,UAAS,UAAKtE,KAAMxI,KAAX,iBAAd,SACGoyB,EAAO93B,OAAS,EAAI83B,EAClB3e,KAAI,SAAA4e,GAAG,OACN,cAAC,GAAD,CAEED,OAAQC,EACRk6D,WAAY3/E,EAAMhI,MAAMvI,OAAOiS,QAF1B+jB,EAAIm6D,eAMb,qBAAK1/E,UAAU,sBAAf,SAAqC,cAAC,IAAD,CAAkBtK,GAAG,sBAAsBmM,eAAe,mC,oBCnDtGmuD,GAjDG,SAAC,GAAgF,IAA9E5nD,EAA6E,EAA7EA,OAAQy3E,EAAqE,EAArEA,UAAW70C,EAA0D,EAA1DA,UAAWrb,EAA+C,EAA/CA,eAAgBC,EAA+B,EAA/BA,kBAAmBkwD,EAAY,EAAZA,MACpF,EAAgD1/E,oBAAS,GAAzD,mBAAO8vD,EAAP,KAAyB6vB,EAAzB,KAEAx/E,qBAAU,YACU,OAAdovB,QAAc,IAAdA,OAAA,EAAAA,EAAgBj6B,MAAO0S,EAAO1S,IAChCqqF,GAAoB,KAErB,CAACpwD,EAAgBvnB,IASpB,OACE,cAAC,KAAD,CACElI,QAAS,kBAAM6/E,GAAoB,IACnCjkF,SAAU,CAAEwnC,IAAK1nB,WAAWxT,EAAOk7B,KAAMC,IAAK3nB,WAAWxT,EAAOm7B,MAChEx4B,KAAM80E,IAA2B,OAAdlwD,QAAc,IAAdA,OAAA,EAAAA,EAAgBj6B,MAAO0S,EAAO1S,GAAKwzC,GAAWJ,GACjEkC,UAAWA,EAJb,SAMGklB,GACC,cAAC,KAAD,CAAY5kB,aAAc,kBAd9By0C,GAAoB,SACF,OAAdpwD,QAAc,IAAdA,OAAA,EAAAA,EAAgBj6B,MAAO0S,EAAO1S,IAChCk6B,EAAkB,QAYhB,SACE,sBAAKl0B,MAAO,CAAEsP,QAAS,OAAQwW,cAAe,UAA9C,UACE,0CAAapZ,EAAO6jB,WAApB,IAAiC7jB,EAAO8jB,aACxC,2CAAc9jB,EAAO8gB,WACrB,mDAAsB42D,EAAQ,MAAQ,WACrC13E,EAAOujE,SAAW,6CAAgBvjE,EAAOujE,QAAvB,OACK,OAAvBvjE,EAAO43E,aACN,mCACE,gDAAmB53E,EAAO43E,YACtB,cAAC,IAAD,CAAkBtqF,GAAG,cAAcmM,eAAe,QAClD,cAAC,IAAD,CAAkBnM,GAAG,aAAamM,eAAe,gBAKzD,cAAC,IAAD,CAAMD,GAAE,+BAA0BwG,EAAO8gB,SAAzC,SACE,4DC2KC+2D,GA9MW,SAAC,GAAyB,IAAvB5W,EAAsB,EAAtBA,gBACnBrmC,EAAaC,aAAe,CAClCvtC,GAAI,oBACJgtC,iBAAkB7+B,GAAO6+B,mBAFnBM,SAIR,EAAsB5iC,mBAAS,MAA/B,mBAAY2iC,GAAZ,WACA,EAA8B3iC,mBAAS,IAAvC,mBAAOyuB,EAAP,KAAgBqxD,EAAhB,KACA,EAA8B9/E,oBAAS,GAAvC,mBAAOqvB,EAAP,KAAgBzgB,EAAhB,KACA,EAA4C5O,mBAAS,MAArD,mBAAOuvB,EAAP,KAAuBC,EAAvB,KACA,EAA0CxvB,mBAAS,MAAnD,mBAAO+/E,EAAP,KAAsBC,EAAtB,KACA,EAA4BhgF,mBAAS,IAArC,mBAAOoB,EAAP,KAAe8oB,EAAf,KACM+1D,EAAcz6E,kBAAO,GACrB06E,EAAS16E,iBAAO,MAEtBrF,qBAAU,WACR,GAAG8oE,EAAiB,CAClB,IAAMkX,EAAS,uCAAG,8BAAAjlE,EAAA,+EAES5W,IAAM4I,IAAN,kBAAqB1K,KAArB,OtQvBtB,kBsQuBsB,2CAA4EymE,GAAmB,CACpHtkE,QAAS,CAAEE,cAAc,SAAD,OAAW5B,QAHvB,OAERkK,EAFQ,OAKd2yE,EAAW3yE,EAAStf,MACpB+gB,GAAW,GACPsxE,EAAOl6E,SAAWi6E,EAAYj6E,UAC1Bo6E,EAAS,IAAIv0F,OAAOw0F,OAAOC,KAAKC,aACtCpzE,EAAStf,KAAK+qB,SAAQ,SAAA5Q,GAChBA,EAAOk7B,KAAOl7B,EAAOm7B,KACvBi9C,EAAOpzF,OAAO,CAAEk2C,IAAKl7B,EAAOk7B,IAAKC,IAAKn7B,EAAOm7B,SAGjD+8C,EAAOl6E,QAAQw6E,UAAUJ,GACzBH,EAAYj6E,SAAU,GAfV,gDAkBdtV,QAAQF,MAAM,mCAAd,MACAoe,GAAW,GAnBG,yDAAH,qDAuBfqxE,EAAYj6E,SAAU,EACtBwpB,EAAkB,MAClB2wD,IAEA,IAAMlmB,EAAW9mC,YAAYgtD,EAAW,KACxC,OAAO,kBAAM9sD,cAAc4mC,OAE5B,CAACgP,IAEJ,IAAM3lC,EAAYD,uBAAY,SAAC98B,GAC7Bo8B,EAAO,QACN,IAEG89C,EAAqB,SAACz4E,GAC1B,IAAM04E,EAAa,CACjB14E,EAAO2nD,UACP3nD,EAAO24E,kBACP34E,EAAO44E,gBAGT,OAAO/oF,KAAKC,IAAL,MAAAD,KAAY6oF,IAGfhB,EAAQ,SAAC13E,GAEb,OADwBy4E,EAAmBz4E,KAChBA,EAAO44E,gBAyB9B7pE,EAAa,SAAC44C,GAClB,IAAKA,EACH,MAAO,qBAET,IAAMpjE,EAAO,IAAIyC,KAAiB,IAAZ2gE,GAChBx4C,EAAMO,OAAOnrB,EAAKorB,WAAWC,SAAS,EAAG,KACzCV,EAAQQ,OAAOnrB,EAAKopB,WAAa,GAAGiC,SAAS,EAAG,KAChDX,EAAO1qB,EAAKwrB,cACZ0vB,EAAQ/vB,OAAOnrB,EAAK0rB,YAAYL,SAAS,EAAG,KAC5C8vB,EAAUhwB,OAAOnrB,EAAK4rB,cAAcP,SAAS,EAAG,KACtD,MAAM,GAAN,OAAUT,EAAV,YAAiBD,EAAjB,YAA0BD,EAA1B,cAAoCwwB,EAApC,YAA6CC,IAGzCm5C,EAAkB99C,mBAAQ,WAC9B,OAAOtU,EAAQrtB,QAAO,SAAC4G,GAAD,OACnBA,EAAO0jB,aACP1jB,EAAO8gB,QAAQrN,cAAcna,SAASF,IACvC,UAAG4G,EAAO6jB,WAAWpQ,cAArB,YAAsCzT,EAAO8jB,UAAUrQ,eAAgBna,SAASF,SAEjF,CAACqtB,EAASrtB,IAEb,OAAIiuB,IAAYuT,EACP,cAAC,GAAD,CAAS7tC,KAAM,cAAC,IAAD,CAAkBO,GAAG,sBAAsBmM,eAAe,iBAIhF,sBAAK7B,UAAWtE,KAAM6K,UAAtB,UACE,qBAAKvG,UAAWtE,KAAMwlF,aAAtB,SAEE,wBAAQhhF,QAAS,kBA3CL,WAChB,GAAIogF,EAAOl6E,SAAWyoB,EAAQrhC,OAAS,EAAG,CACxC,IAAMgzF,EAAS,IAAIv0F,OAAOw0F,OAAOC,KAAKC,aACtC9xD,EAAQ7V,SAAQ,SAAA5Q,GACVA,EAAOk7B,KAAOl7B,EAAOm7B,KACvBi9C,EAAOpzF,OAAO,CAAEk2C,IAAKl7B,EAAOk7B,IAAKC,IAAKn7B,EAAOm7B,SAGjD+8C,EAAOl6E,QAAQw6E,UAAUJ,GACzB5wD,EAAkB,MAClBwwD,EAAiB,OAiCQe,IAAanhF,UAAWtE,KAAM8L,IAArD,SACE,oDAGJ,sBAAKxH,UAAWtE,KAAM0lF,gBAAtB,UACE,sBAAKphF,UAAWtE,KAAM2lF,aAAtB,UACE,uBACErqF,KAAK,OACLgJ,UAAU,eACVvT,MAAO+U,EACP6+B,YAAY,mCACZ7S,SAAU,SAACl/B,GAAD,OAAOg8B,EAAUh8B,EAAEgY,OAAO7Z,MAAMovB,kBAE5C,sBAAK7b,UAAWtE,KAAM81B,MAAtB,UACE,sBAAKxxB,UAAWtE,KAAM4jB,OAAtB,UACE,qBAAKtf,UAAWtE,KAAM4lF,cAAtB,qBACA,qBAAKthF,UAAWtE,KAAM6lF,oBAAtB,oBACA,qBAAKvhF,UAAWtE,KAAM6lF,oBAAtB,uCAEF,qBAAKvhF,UAAWtE,KAAMxI,KAAtB,SACG+tF,EAAgBt6E,KAAI,SAACyB,GAAD,OACnB,sBAEEpI,UAAS,UAAKtE,KAAMmwB,IAAX,YAAkBzjB,EAAOk7B,KAAO5nC,KAAM8lF,aAAtC,aAAoE,OAAd7xD,QAAc,IAAdA,OAAA,EAAAA,EAAgBj6B,MAAO0S,EAAO1S,IAAMgG,KAAM+lF,YACzGC,aAAc,kBAAMtB,EAAiBh4E,IACrCu5E,aAAc,kBAAMvB,EAAiB,OACrClgF,QAAS,kBA7EC,SAACkI,GACzBwnB,EAAkBxnB,GACdk4E,EAAOl6E,SAAWgC,EAAOk7B,KAAOl7B,EAAOm7B,MACzC+8C,EAAOl6E,QAAQw7E,MAAM,CAAEt+C,IAAK1nB,WAAWxT,EAAOk7B,KAAMC,IAAK3nB,WAAWxT,EAAOm7B,OAC3E+8C,EAAOl6E,QAAQy7E,QAAQ,KAyEIC,CAAkB15E,IALnC,UAOE,qBAAKpI,UAAWtE,KAAMqmF,YAAtB,SAAoC35E,EAAO8gB,UAC3C,sBAAKlpB,UAAWtE,KAAMsmF,kBAAtB,UAA0C55E,EAAO6jB,WAAWz6B,MAAM,KAAK,GAAvE,IAA4E4W,EAAO8jB,UAAU16B,MAAM,KAAKyuB,SACxG,qBAAKjgB,UAAWtE,KAAMumF,kBAAtB,SAA0C9qE,EAAW0pE,EAAmBz4E,QARnEA,EAAO1S,eActB,eAAC,KAAD,CACEiuC,sBAAuBjoC,KAAM,iBAE7BmoC,KAAM,GACNL,OAAQ,SAAA78B,GAAG,OAAK25E,EAAOl6E,QAAUO,GACjC+8B,UAAWA,EACXntC,QAAS,CACPwtC,kBAAkB,EAClBC,gBAAgB,GARpB,UAWE,cAAC,KAAD,UACG,SAACgH,GAAD,OACCnc,EAAQloB,KAAI,SAAAyB,GAAM,OAChBA,EAAOk7B,KAAOl7B,EAAOm7B,KACnB,cAAC,GAAD,CAEEyH,UAAWA,EACX60C,WAAwB,OAAbM,QAAa,IAAbA,OAAA,EAAAA,EAAezqF,MAAO0S,EAAO1S,GACxC0S,OAAQA,EACRunB,eAAgBA,EAChBC,kBAAmBA,EACnBkwD,MAAOA,EAAM13E,IANRA,EAAO1S,WAYR,OAAbyqF,QAAa,IAAbA,OAAA,EAAAA,EAAe78C,OAAf,OAAsB68C,QAAtB,IAAsBA,OAAtB,EAAsBA,EAAe58C,MACpC,cAAC,KAAD,CAEEznC,SAAU,CAAEwnC,IAAK68C,EAAc78C,IAAKC,IAAK48C,EAAc58C,KACvDx4B,KAAMm+B,IAHR,kBACkBi3C,EAAczqF,MAKnB,OAAdi6B,QAAc,IAAdA,OAAA,EAAAA,EAAgB2T,OAAhB,OAAuB3T,QAAvB,IAAuBA,OAAvB,EAAuBA,EAAgB4T,MACtC,cAAC,KAAD,CAEEznC,SAAU,CAAEwnC,IAAK3T,EAAe2T,IAAKC,IAAK5T,EAAe4T,KACzDx4B,KAAMm+B,IAHR,mBACmBvZ,EAAej6B,eCjJ/BwsF,GAlDY,SAACpiF,GAC1B,MAAiD4L,uBAC/C,SAAC5M,GAAD,MAAY,CACVoC,gBAAiBpC,EAAMoC,gBACvB0pB,UAAW9rB,EAAMyC,OAAOC,QAAO,SAACC,GAAD,OAAU,CAAC,EAAG,EAAG,EAAG,GAAGC,SAASD,EAAI/L,OACnEkgC,WAAU92B,EAAMoC,gBAAgBK,UACS,IAApCzC,EAAMoC,gBAAgBK,OAAO,IACQ,IAApCzC,EAAMoC,gBAAgBK,OAAO,KACS,IAAxCzC,EAAMoC,gBAAgBK,OAAO/T,YAP7B0T,EAAR,EAAQA,gBAAiB0pB,EAAzB,EAAyBA,UAAWgL,EAApC,EAAoCA,SAWpC,EAA8Cx1B,mBAAS,KAAvD,mBAAOipE,EAAP,KAAwBvB,EAAxB,KAUA,OARAvnE,qBAAU,WACR,IAAKq1B,EAAU,CACb,IAAMjL,EAAUC,EAAU1nB,MAAK,SAAAynB,GAAO,OAAIzpB,EAAgBK,OAAOG,SAASipB,EAAQj1B,OAClF5E,QAAQC,IAAI45B,GACZm9C,EAAmBn9C,EAAQj1B,OAE5B,CAACk1B,EAAWgL,EAAU10B,IAGvB,sBAAKlB,UAAU,2BAA2BtE,MAAO,CAAEykC,UAAW,UAA9D,UACE,qBAAKngC,UAAU,MAAf,SACE,qBAAKA,UAAU,YAAf,SAA2B,cAAC,IAAD,CAAkBtK,GAAG,oBAAoBmM,eAAe,kBAErF,cAAC,GAAD,CAAgB4D,QAAS3F,EAAM2F,UAC/B,sBAAKzF,UAAWtE,KAAM8N,QAAtB,UACGosB,GACC,yBACElgC,GAAG,mBACHsK,UAAU,gBACVvT,MAAO48E,EACP77C,SAAU,SAACl/B,GAAD,OAAOw5E,EAAmBx5E,EAAEgY,OAAO7Z,QAJ/C,UAME,wBAAQA,MAAO,EAAf,sCACCm+B,EAAUp9B,OAAS,GAAKo9B,EAAU6C,MAAK,SAACC,EAAOC,GAAR,OAAkBD,EAAM/W,KAAKiX,cAAcD,EAAMhX,SAAOhQ,KAAI,SAAAgkB,GAAO,OACzG,wBAAyBl+B,MAAOk+B,EAAQj1B,GAAxC,SAA6Ci1B,EAAQhU,MAAxCgU,EAAQj1B,UAIK,IAA9B+a,SAAS44D,IACT,cAAC,GAAD,CAAmBA,gBAAiBA,W,oBC2T/BpvE,0BANf,SAAyB6E,GACvB,MAAO,CACL6L,KAAM7L,EAAMgnB,OAAOnb,QAIR1Q,EA/VE,SAAC6F,GAChB,IAAMu/B,EAAY5I,GAAY32B,EAAM6K,MACpC,EAAgCvK,oBAAS,GAAzC,mBAAO0jD,EAAP,KAAiBC,EAAjB,KACA,EAA0B3jD,mBAAS,CACjC+U,IAAK,GACL6iB,SAAU,GACVJ,OAAQ,GACRC,OAAQ,GACRE,SAAU,GACVD,WAAY,GACZG,KAAM,GACNre,QAAS,KACT9a,MAAO,OATT,mBAAOA,EAAP,KAAc0f,EAAd,KAWA,EAAkCpe,mBAAS,CACzC+U,IAAK,CACHwkB,UAAU,EACVzgC,QAAS,IAEX8+B,SAAU,CACR2B,UAAU,EACVzgC,QAAS,IAEX0+B,OAAQ,CACN+B,UAAU,EACVzgC,QAAS,IAEX2+B,OAAQ,CACN8B,UAAU,EACVzgC,QAAS,IAEX6+B,SAAU,CACR4B,UAAU,EACVzgC,QAAS,IAEX++B,KAAM,CACJ0B,UAAU,EACVzgC,QAAS,MAvBb,mBAAOsgC,EAAP,KAAkBsrB,EAAlB,KA2BMv2B,EAAe,SAACjgC,GACpB,MAAsBA,EAAEgY,OAAhB5Q,EAAR,EAAQA,GAAIjJ,EAAZ,EAAYA,MACN01F,EAAWrjF,EACjB,OAAQpJ,GACN,IAAK,UACHysF,EAASzsF,GAAMjJ,EACD,OAAVA,IACF01F,EAASrjF,MAAQ,KAEnB,MAEF,IAAK,MACHqjF,EAASzsF,GAAM+hC,GAAgBhrC,GAC/B,MAEF,IAAK,WACH01F,EAASzsF,GAAwB,OAAlBoJ,EAAM8a,QAAmB6d,GAAgBhrC,GAASA,EACjE,MAEF,QACE01F,EAASzsF,GAAMjJ,EAInB+xB,EAASxuB,OAAOiU,OAAO,GAAIk+E,IAC3BC,EAAgB1sF,EAAIjJ,IAGhB21F,EAAkB,SAAC1sF,EAAIjJ,GAC3B,IAAM+uC,EAAehC,EACrB,OAAQ9jC,GACN,IAAK,WACH,IAAMikC,EAAoD,IAAzClC,GAAuBhrC,GAAOe,OAC/CguC,EAAa9lC,GAAIikC,SAAWA,EAI1B6B,EAAa9lC,GAAIwD,QAHdygC,EAGwB,GAFA,cAAC,IAAD,CAAkBjkC,GAAG,uBAAuBmM,eAAe,oCAIxF,MAEF,IAAK,MACH,IACMyX,EADM7sB,EAAM+E,MAAM,IACRgQ,QAAO,SAAAyX,GAAE,MAAI,KAAK1qB,KAAK0qB,MAAKxnB,KAAK,IAC3C0nB,EAAO,iBACPsjB,EAAchwC,EAAMe,OACtBivC,EAAc,EACZA,EAActjB,EAAK3rB,QACrBguC,EAAa9lC,GAAIikC,UAAW,EAC5B6B,EAAa9lC,GAAIwD,QAAU,cAAC,IAAD,CAAkBxD,GAAG,6BAA6BmM,eAAe,qCAClFq3B,GAAY5f,IAItBkiB,EAAa9lC,GAAIikC,SAA2B,IAAhB8C,GAAqBA,IAAgBtjB,EAAK3rB,OACtEguC,EAAa9lC,GAAIwD,QAAU,KAJ3BsiC,EAAa9lC,GAAIikC,UAAW,EAC5B6B,EAAa9lC,GAAIwD,QAAU,cAAC,IAAD,CAAkBxD,GAAG,0BAA0BmM,eAAe,mCAM3F25B,EAAa9lC,GAAIikC,SAA2B,IAAhB8C,GAAqBA,IAAgBtjB,EAAK3rB,OACtEguC,EAAa9lC,GAAIwD,QAAU,IAQjC4rD,EAAa90D,OAAOiU,OAAO,GAAIu3B,KAyC3Bp0B,EAAepX,OAAOwF,KAAKgkC,GAAWyG,OAAM,SAAAhnB,GAChD,MAAqB,KAAdna,EAAMma,IAAcugB,EAAUvgB,GAAI0gB,YAG3C,OACE,sBAAK35B,UAAU,2BAA2BtE,MAAO,CAAEykC,UAAW,UAA9D,UACE,qBAAKngC,UAAU,aAAf,SACE,cAAC,IAAD,CAAkBtK,GAAG,kBAAkBmM,eAAe,wBAExD,sBAAK7B,UAAWutC,KAAOhnC,UAAvB,UACE,qBAAKvG,UAAS,UAAKwrB,KAAO,mBAAZ,WAAyC9vB,MAAO,CAAE8X,MAAO,OAAQ+I,aAAc,QAA7F,SACE,cAAC,IAAD,CAAkB7mB,GAAG,4BAA4BmM,eAAe,wBAGlE,sBAAK7B,UAAWutC,KAAO/jC,QAAvB,UAEE,qBAAKxJ,UAAU,SAAf,SACE,sBAAKA,UAAU,WAAf,UACE,qBAAKA,UAAU,qBAAf,SACE,sBAAKA,UAAU,aAAf,UACE,wBAAOstB,QAAQ,MAAMttB,UAAU,aAA/B,uBAAsD,sBAAMA,UAAWutC,KAAO7T,SAAxB,kBACtD,uBACEhkC,GAAG,MACHsB,KAAK,OACLw2B,SAAUe,EACVvuB,UAAS,uBAAmBw5B,EAAUrkB,IAAIwkB,SAAuC,GAA5BpM,KAAU,iBAC/D9gC,MAAOqS,EAAMqW,OAEbqkB,EAAUrkB,IAAIwkB,UAAYH,EAAUrkB,IAAIjc,SACxC,qBAAK8G,UAAS,UAAKutB,KAAUr0B,QAAf,oBAAd,SACGsgC,EAAUrkB,IAAIjc,eAKvB,qBAAK8G,UAAU,qBAAf,SACE,sBAAKA,UAAU,aAAf,UACE,wBAAOstB,QAAQ,WAAWttB,UAAU,aAApC,kBAAsD,sBAAMA,UAAWutC,KAAO7T,SAAxB,kBACtD,uBACEhkC,GAAG,WACHsB,KAAK,OACLw2B,SAAUe,EACVvuB,UAAS,uBAAmBw5B,EAAUxB,SAAS2B,SAAuC,GAA5BpM,KAAU,iBACpE9gC,MAAOqS,EAAMk5B,YAEbwB,EAAUxB,SAAS2B,UAAYH,EAAUxB,SAAS9+B,SAClD,qBAAK8G,UAAS,UAAKutB,KAAUr0B,QAAf,oBAAd,SACGsgC,EAAUxB,SAAS9+B,oBAQhC,qBAAK8G,UAAU,SAAf,SACE,qBAAKA,UAAU,WAAf,SACE,qBAAKA,UAAU,YAAf,SACE,sBAAKA,UAAU,aAAf,UACE,wBAAOstB,QAAQ,SAASttB,UAAU,aAAlC,UACE,cAAC,IAAD,CAAkBtK,GAAG,kBAAkBmM,eAAe,eADxD,KACyE,sBAAM7B,UAAWutC,KAAO7T,SAAxB,kBAEzE,uBAAOhkC,GAAG,SAASsB,KAAK,OAAOw2B,SAAUe,EAAcvuB,UAAU,eAAevT,MAAOqS,EAAM84B,kBAMrG,qBAAK53B,UAAU,SAAf,SACE,sBAAKA,UAAU,WAAf,UACE,qBAAKA,UAAU,qBAAf,SACE,sBAAKA,UAAU,aAAf,UACE,wBAAOstB,QAAQ,SAASttB,UAAU,aAAlC,UACE,cAAC,IAAD,CAAkBtK,GAAG,kBAAkBmM,eAAe,cADxD,KACqE,sBAAM7B,UAAWutC,KAAO7T,SAAxB,kBAErE,uBAAOhkC,GAAG,SAASsB,KAAK,SAASw2B,SAAUe,EAAcvuB,UAAU,eAAevT,MAAOqS,EAAM+4B,cAGnG,qBAAK73B,UAAU,qBAAf,SACE,sBAAKA,UAAU,aAAf,UACE,wBAAOstB,QAAQ,aAAattB,UAAU,aAAtC,UACE,cAAC,IAAD,CAAkBtK,GAAG,sBAAsBmM,eAAe,gBAD5D,OAGA,uBAAOnM,GAAG,aAAasB,KAAK,OAAOw2B,SAAUe,EAAcvuB,UAAU,eAAevT,MAAOqS,EAAMg5B,uBAMzG,qBAAK93B,UAAU,SAAf,SACE,sBAAKA,UAAU,WAAf,UACE,qBAAKA,UAAU,qBAAf,SACE,sBAAKA,UAAU,aAAf,UACE,wBAAOstB,QAAQ,WAAWttB,UAAU,aAApC,UACE,cAAC,IAAD,CAAkBtK,GAAG,oBAAoBmM,eAAe,WAD1D,KACuE,sBAAM7B,UAAWutC,KAAO7T,SAAxB,kBAEvE,uBAAOhkC,GAAG,WAAWsB,KAAK,OAAOw2B,SAAUe,EAAcvuB,UAAU,eAAevT,MAAOqS,EAAMi5B,gBAGnG,qBAAK/3B,UAAU,qBAAf,SACE,sBAAKA,UAAU,aAAf,UACE,wBAAOstB,QAAQ,OAAOttB,UAAU,aAAhC,UACE,cAAC,IAAD,CAAkBtK,GAAG,gBAAgBmM,eAAe,WADtD,KACmE,sBAAM7B,UAAWutC,KAAO7T,SAAxB,kBAEnE,uBAAOhkC,GAAG,OAAOsB,KAAK,OAAOw2B,SAAUe,EAAcvuB,UAAU,eAAevT,MAAOqS,EAAMm5B,iBAMnG,qBAAKj4B,UAAU,SAAf,SACE,sBAAKA,UAAU,WAAf,UACE,qBAAKA,UAAU,qBAAf,SACE,sBAAKA,UAAU,aAAf,UACE,wBAAOstB,QAAQ,QAAQttB,UAAU,aAAjC,UAA8C,cAAC,IAAD,CAAkBtK,GAAG,iBAAiBmM,eAAe,WAAnG,OACA,cAAC,GAAD,CACEnM,GAAG,QACHihB,KAAK,QACL3W,UAAS,wBAAmButC,KAAO,mBACnC9gD,MAAOqS,EAAMA,MACb0uB,SAAUe,EACVwL,MAAyB,OAAlBj7B,EAAM8a,QAAmB,CAC9B,IACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,KACA,MAEA,CAAC,YAKT,qBAAK5Z,UAAU,qBAAf,SACE,sBAAKA,UAAU,aAAf,UACE,wBAAOstB,QAAQ,UAAUttB,UAAU,aAAnC,UAAgD,cAAC,IAAD,CAAkBtK,GAAG,mBAAmBmM,eAAe,YAAvG,OACA,wBACEnM,GAAG,UACHihB,KAAK,UACLlqB,MAAOqS,EAAM8a,QACb4T,SAAUe,EACVvuB,UAAS,wBAAmButC,KAAO,mBALrC,SAOGlO,EAAU14B,KAAI,SAAAiT,GAAO,OACpB,wBAA2BntB,MAAOmtB,EAAQ9f,KAA1C,SACG8f,EAAQjD,MADEiD,EAAQ9f,2BAWrC,qBAAKkG,UAAWutC,KAAOhnC,UAAvB,SAEE,qBAAKvG,UAAWutC,KAAO/jC,QAAvB,SACE,qBAAKxJ,UAAWutC,KAAO80C,MAAvB,SACE,wBACEx6E,UAAWT,GAAgB08C,EAC3B9jD,UAAS,UAAKutC,KAAO/lC,IAAZ,YAAoBJ,EAAoC,GAArBmmC,KAAO61B,aACnDljE,QAAS,kBA/NA,WACnB,IAAMygB,EAAS,CACb2hE,SAAU7qD,GAAuB34B,EAAMqW,KAAK,GAC5CyiB,OAAQ94B,EAAM84B,OACdC,OAAQ/4B,EAAM+4B,OACdE,SAAUj5B,EAAMi5B,SAChBD,WAAYh5B,EAAMg5B,WAClBE,SAAUP,GAAuB34B,EAAMk5B,UAAU,GACjDC,KAAMn5B,EAAMm5B,KACZn5B,MAAOA,EAAMA,MACb8a,QAAS9a,EAAM8a,SAEX3rB,EAAOG,KAAKsuD,UAAU/7B,GACtB4hE,EAAG,kBAAc3/E,KAAd,OxQpIF,kBwQoIE,kBACTmhD,GAAY,GAEZr/C,IAAM,CACJ/U,IAAK4yF,EACLpvF,OAAQ,MACRlF,OACA8W,QAAS,CACPC,OAAQ,mBACR,eAAgB,mBAChBC,cAAc,SAAD,OAAWlC,aAAaS,UAEtC0B,MAAK,SAACC,GACPuT,GAAUhU,IAAO5E,EAAM6Y,UAAW,CAChC3hB,KAAM,aACNkpC,OAAQ,gBACR/qC,KAAM,wEACL+P,MAAK,WACFpU,QAAQC,IAAI,6BAEjBqU,OAAM,SAAC+hB,GACRr2B,QAAQC,IAAI,oCAA+Bo2B,MA6LpBq7D,IAHjB,SAKE,cAAC,IAAD,CAAkB9sF,GAAG,gBAAgBmM,eAAe,0BC9VnD,IACb8R,GAAI,CACF8uE,kBAAmB,iBACnBC,gBAAiB,gBACjBC,mBAAoB,mBACpBC,qBAAsB,qBACtBC,iBAAkB,yBAClBC,eAAgB,eAChBC,kBAAmB,gBACnBC,0BAA2B,2BAE7BpvE,GAAI,CACF6uE,kBAAmB,6BACnBC,gBAAiB,sBACjBC,mBAAoB,yBACpBC,qBAAsB,6BACtBC,iBAAkB,iCAClBC,eAAgB,qBAChBC,kBAAmB,4BACnBC,0BAA2B,2CCmEhB/oF,0BANf,SAAyB6E,GACvB,MAAO,CACLoC,gBAAiBpC,EAAMoC,mBAIZjH,EAhFQ,SAAC6F,GACtB,IAAM6K,EAAQ5H,aAAauS,cAAuBvS,aAAauS,cAApB,KAC3C,EAAgClV,mBAAS,IAAzC,mBAAO6iF,EAAP,KAAiBC,EAAjB,KACA,EAAwC9iF,mBAAS,IAAjD,mBAAO+iF,EAAP,KAAqBC,EAArB,KACA,EAAkChjF,mBAAS,IAA3C,mBAAOijF,EAAP,KAAkBC,EAAlB,KAEA/iF,qBAAU,WACR,IAgBM+I,EAAUxJ,EAAMoB,gBAAgBK,OAAOwK,MAAK,SAAAtK,GAAG,OAAY,IAARA,KACnD8H,EAAUzJ,EAAMoB,gBAAgBK,OAAOwK,MAAK,SAAAtK,GAAG,OAAY,IAARA,KACrD6H,GAAWC,EAjBb7E,IAAM4I,IAAN,kBAAqB1K,KAArB,O1QRK,kB0QQL,4BAAqE,CACnEmC,QAAS,CAAEE,cAAc,SAAD,OAAW5B,QAElC6B,MAAK,SAACC,GACLrU,QAAQC,IAAIoU,GACZ,IAAMk+E,EAAYl+E,EAAIlX,KAAKg1F,SAASzxF,MAAM,KAAK,GAC/C8xF,EAAaD,GACbH,EAAY/9E,EAAIlX,KAAKg1F,UACrBG,EAAgBj+E,EAAIlX,KAAKs1F,eAE1Bn+E,OAAM,SAAC+hB,GACNr2B,QAAQC,IAAIo2B,MAShBrnB,EAAM2F,QAAQ9H,KAAK,UAGpB,CAACmC,EAAMoB,gBAAiBpB,EAAM2F,UASjC,OACE,sBAAKzF,UAAU,2BAA2BtE,MAAO,CAAE6tB,SAAU,UAA7D,UACE,qBAAK7tB,MAAO,CAAEC,MAAO,OAAQC,OAAQ,MAArC,SACG5L,OAAOwF,KAAK2tF,GAAc31F,OAAS,GAClC,wBAAQwS,UAAU,gBAAgBwtB,SAAU,SAACl/B,GAAD,OAX5B,SAAC0K,GACvB,IAAMvM,EAAQuM,EAAMsN,OAAO7Z,MACrB+2F,EAAcL,EAAa12F,GAC3Bg3F,EAAM,4DAAwDJ,EAAxD,uBAAgFG,GAC5FN,EAAYO,GAO6CC,CAAgBp1F,IAAnE,SACG0B,OAAOwF,KAAK2tF,GAAcx8E,KAAI,SAACg9E,GAAD,OAC7B,wBAAQl3F,MAAOk3F,EAAf,SAA2BjmF,GAASiN,GAAMg5E,YAKjDV,GACC,qBAAKvnF,MAAO,CAAEC,MAAO,OAAQC,OAAQ,OAArC,SACE,wBACEuM,MAAM,iBACNxM,MAAM,OACNC,OAAO,OACPR,IAAK6nF,YCdXW,GAAS,SAAC9jF,GA4Dd,OACE,sBAAKE,UAAS,uBAAkBF,EAAM+jF,UAAY,oBAAsB3jF,QAASJ,EAAMgkF,aAAvF,UA5D8B,WAuB1BhkF,EArBFikF,IADF,IAEEloB,EAoBE/7D,EApBF+7D,UACAljD,EAmBE7Y,EAnBF6Y,UACAk2D,EAkBE/uE,EAlBF+uE,UACA56C,EAiBEn0B,EAjBFm0B,WACAjrB,EAgBElJ,EAhBFkJ,UACAupB,EAeEzyB,EAfFyyB,UACAE,EAcE3yB,EAdF2yB,UACA2E,EAaEt3B,EAbFs3B,SACA09C,EAYEh1E,EAZFg1E,YACAlhD,EAWE9zB,EAXF8zB,UACAG,EAUEj0B,EAVFi0B,iBACA7kB,EASEpP,EATFoP,YACAE,EAQEtP,EARFsP,cACA40E,EAOElkF,EAPFkkF,YACAtgF,EAME5D,EANF4D,KACA5Q,EAKEgN,EALFhN,OACA6Q,EAIE7D,EAJF6D,OACA4F,EAGEzJ,EAHFyJ,QACAD,EAEExJ,EAFFwJ,QACAtH,EACElC,EADFkC,aAEF,OAAOyR,IAAMwwE,SAASt9E,IAAI7G,EAAMikF,KAAK,SAACG,GACpC,MAAwB,kBAApBA,EAAMltF,KAAK2f,KACNlD,IAAM0wE,aAAaD,EAAO,CAC/BrV,YACAmV,cACArrE,YACAjV,OACAwL,cACA5F,UACAtH,iBAGGyR,IAAM0wE,aAAaD,EAAO,CAC/BxgF,OACAm4D,YACA7yD,YACAirB,aACA46C,YACAl2D,YACAzJ,cACAE,gBACAmjB,YACAE,YACA2E,WACA09C,cACAlhD,YACAG,mBACAjhC,SACA6Q,SACA4F,UACAD,UACAtH,oBAMDoiF,GACD,eAAC,IAAD,WACE,cAAC,IAAD,CAAOC,OAAK,EAAC7tF,KAAK,OAAO8tF,OAAQ,SAAAC,GAAS,OAAI,cAAC,GAAD,6BAAmBA,GAAezkF,OAEhF,cAAC,IAAD,CAAOtJ,KAAK,uCAAuC8tF,OAAQ,SAAAC,GAAS,OAAI,cAAC,GAAD,6BAAgBA,GAAezkF,OACvG,cAAC,IAAD,CAAOtJ,KAAK,2BAA2B8tF,OAAQ,SAAAC,GAAS,OAAI,cAAC,GAAD,6BAAkBA,GAAezkF,OAC7F,cAAC,IAAD,CAAOtJ,KAAK,6BAA6B8tF,OAAQ,SAAAC,GAAS,OAAI,cAAC,GAAD,6BAAsBA,GAAezkF,OACnG,cAAC,IAAD,CAAOtJ,KAAK,+BAA+B8tF,OAAQ,SAAAC,GAAS,OAAI,cAAC,GAAD,6BAAwBA,GAAezkF,OACvG,cAAC,IAAD,CAAOtJ,KAAK,yCAAyC8tF,OAAQ,SAAAC,GAAS,OAAI,cAAC,GAAD,6BAAyBA,GAAezkF,OAClH,cAAC,IAAD,CAAOtJ,KAAK,+BAA+B8tF,OAAQ,SAAAC,GAAS,OAAI,cAAC,GAAD,6BAAwBA,GAAezkF,OACvG,cAAC,IAAD,CAAOtJ,KAAK,oCAAoC8tF,OAAQ,SAAAC,GAAS,OAAI,cAAC,GAAD,6BAAwBA,GAAezkF,OAC5G,cAAC,IAAD,CAAOtJ,KAAK,+BAA+B8tF,OAAQ,SAAAC,GAAS,OAAI,cAAC,GAAD,6BAAsBA,GAAezkF,OACrG,cAAC,IAAD,CAAOtJ,KAAK,eAAe8tF,OAAQ,SAAAC,GAAS,OAAI,cAAC,GAAD,6BAAgBA,GAAezkF,OAE/E,cAAC,IAAD,CAAOtJ,KAAK,mDAAmD8tF,OAAQ,SAAAC,GAAS,OAAI,cAAC,GAAD,6BAAiBA,GAAezkF,OACpH,cAAC,IAAD,CAAOtJ,KAAK,+BAA+B8tF,OAAQ,SAAAC,GAAS,OAAI,cAAC,GAAD,6BAAiBA,GAAezkF,OAChG,cAAC,IAAD,CAAOtJ,KAAK,4CAA4C8tF,OAAQ,SAAAC,GAAS,OAAI,cAAC,GAAD,6BAAmBA,GAAezkF,OAE/G,cAAC,IAAD,CAAOtJ,KAAK,2DAA2D8tF,OAAQ,SAAAC,GAAS,OAAI,cAAC,GAAD,6BAAqBA,GAAezkF,OAChI,cAAC,IAAD,CAAOtJ,KAAK,mCAAmC8tF,OAAQ,SAAAC,GAAS,OAAI,cAAC,GAAD,6BAAqBA,GAAezkF,OACxG,cAAC,IAAD,CAAOtJ,KAAK,oDAAoD8tF,OAAQ,SAAAC,GAAS,OAAI,cAAC,GAAD,6BAAuBA,GAAezkF,OAE3H,cAAC,IAAD,CAAOtJ,KAAK,0BAA0B8tF,OAAQ,SAAAC,GAAS,OAAI,cAAC,GAAD,6BAAkBA,GAAezkF,OAC5F,cAAC,IAAD,CAAOtJ,KAAK,wBAAwB8tF,OAAQ,SAAAC,GAAS,OAAI,cAAC,GAAD,6BAAgBA,GAAezkF,OACxF,cAAC,IAAD,CAAOtJ,KAAK,eAAe8tF,OAAQ,SAAAC,GAAS,OAAI,cAAC,GAAD,6BAAiBA,GAAezkF,OAEhF,cAAC,IAAD,CAAOtJ,KAAK,+DAA+D8tF,OAAQ,SAAAC,GAAS,OAAI,cAAC,GAAD,6BAA0BA,GAAezkF,OACzI,cAAC,IAAD,CAAOtJ,KAAK,4CAA4C8tF,OAAQ,SAAAC,GAAS,OAAI,cAAC,GAAD,6BAA2BA,GAAezkF,OACvH,cAAC,IAAD,CAAOtJ,KAAK,oCAAoC8tF,OAAQ,SAAAC,GAAS,OAAI,cAAC,GAAD,6BAAkBA,GAAezkF,OACtG,cAAC,IAAD,CAAOtJ,KAAK,iCAAiC8tF,OAAQ,SAAAC,GAAS,OAAI,cAACC,GAAD,6BAAwBD,GAAezkF,OACzG,cAAC,IAAD,CAAOtJ,KAAK,mCAAmC8tF,OAAQ,SAAAC,GAAS,OAAI,cAAC,GAAD,6BAAiBA,GAAezkF,OACpG,cAAC,IAAD,CAAOtJ,KAAK,oCAAoC8tF,OAAQ,SAAAC,GAAS,OAAI,cAAC,GAAD,6BAAsBA,GAAezkF,OAC1G,cAAC,IAAD,CAAOtJ,KAAK,gDAAgD8tF,OAAQ,SAAAC,GAAS,OAAI,cAAC,GAAD,6BAA8BA,GAAezkF,OAC9H,cAAC,IAAD,CAAOtJ,KAAK,0CAA0C8tF,OAAQ,SAAAC,GAAS,OAAI,cAAC,GAAD,6BAAkCA,GAAezkF,OAC5H,cAAC,IAAD,CAAOtJ,KAAK,uCAAuC8tF,OAAQ,SAAAC,GAAS,OAAI,cAAC,GAAD,6BAAqBA,GAAezkF,OAC5G,cAAC,IAAD,CAAOtJ,KAAK,eAAe8tF,OAAQ,SAAAC,GAAS,OAAI,cAAC,GAAD,6BAAgBA,GAAezkF,OAE/E,cAAC,IAAD,CAAOukF,OAAK,EAAC7tF,KAAK,gBAAgB8tF,OAAQ,SAAAC,GAAS,OAAI,cAAC,GAAD,6BAAcA,GAAezkF,OACpF,cAAC,IAAD,CAAOtJ,KAAK,qBAAqB8tF,OAAQ,SAAAC,GAAS,OAAI,cAAC,GAAD,6BAAmBA,GAAezkF,OACxF,cAAC,IAAD,CAAOtJ,KAAK,qBAAqB8tF,OAAQ,SAAAC,GAAS,OAAI,cAAC,GAAD,6BAAqBA,GAAezkF,OAC1F,cAAC,IAAD,CAAOtJ,KAAK,qCAAqC8tF,OAAQ,SAAAC,GAAS,OAAI,cAAC,GAAD,6BAAeA,GAAezkF,OACpG,cAAC,IAAD,CAAOtJ,KAAK,wBAAwB8tF,OAAQ,SAAAC,GAAS,OAAI,cAAC,GAAD,6BAAyBA,GAAezkF,OACjG,cAAC,IAAD,CAAOtJ,KAAK,0CAA0C8tF,OAAQ,SAAAC,GAAS,OAAI,cAAC,GAAD,6BAAiBA,GAAezkF,OAC3G,cAAC,IAAD,CAAOtJ,KAAK,0BAA0B8tF,OAAQ,SAAAC,GAAS,OAAI,cAAC,GAAD,6BAAmBA,GAAezkF,OAC7F,cAAC,IAAD,CAAOtJ,KAAK,sBAAsB8tF,OAAQ,SAAAC,GAAS,OAAI,cAAC,GAAD,6BAAmBA,GAAezkF,OACzF,cAAC,IAAD,CAAOtJ,KAAK,qBAAqB8tF,OAAQ,SAAAC,GAAS,OAAI,cAAC,GAAD,6BAAyBA,GAAezkF,OAC9F,cAAC,IAAD,CAAOtJ,KAAK,kCAAkC8tF,OAAQ,SAAAC,GAAS,OAAI,cAAC,GAAD,6BAAcA,GAAezkF,OAChG,cAAC,IAAD,CAAOtJ,KAAK,uDAAuD8tF,OAAQ,SAAAC,GAAS,OAAI,cAACE,GAAD,6BAAqBF,GAAezkF,OAC5H,cAAC,IAAD,CAAOtJ,KAAK,yBAAyB8tF,OAAQ,SAAAC,GAAS,OAAI,cAAC,GAAD,6BAAoBA,GAAezkF,OAC7F,cAAC,IAAD,CAAOtJ,KAAK,gCAAgC8tF,OAAQ,SAAAC,GAAS,OAAI,cAAC,GAAD,6BAA0BA,GAAezkF,OAC1G,cAAC,IAAD,CAAOtJ,KAAK,8BAA8B8tF,OAAQ,SAAAC,GAAS,OAAI,cAAC,GAAD,6BAAwBA,GAAezkF,OACtG,cAAC,IAAD,CAAOwkF,OAAQ,kBAAM,cAAC,IAAD,CAAU1iF,GAAI8iF,iBAO3Cd,GAAO5iF,aAAe,CACpBgB,aAAc,IAyBD4hF,U,qBC/IAe,GAhDI,SAAC7kF,GAQlB,IAAI8kF,EAQJ,OAfArkF,qBAAU,WACRtU,OAAO2T,iBAAiB,WAAW,SAACtR,GAC9BA,EAAEL,MAA6B,gBAArBK,EAAEL,KAAK42F,WACnB/kF,EAAMglF,wBAGT,IAGDF,EAD+B,cAA7B34F,OAAOsM,SAASG,UAAyD,kBAA7BzM,OAAOsM,SAASG,SACtD,oBACuD,IAAtDzM,OAAOsM,SAASG,SAAS9I,QAAQ,gBAClC,0CAEA,6BAGR,qBAAKoQ,UAAS,UAAKtE,KAAM3E,QAAX,YAAsB+I,EAAM+jF,SAAYnoF,KAAMqpF,UAAYrpF,KAAMspF,UAA9E,SACGllF,EAAMiE,QACL,wBACEoE,MAAM,cACNzS,GAAG,YACHihB,KAAK,YACLhb,MAAM,OACNC,OAAO,OACPR,IAAG,kBAAawpF,EAAb,kBAA4BhiF,IAA5B,wBAAuD9C,EAAMiE,WAGpE,sBAAK/D,UAAWtE,KAAMupF,oBAAtB,UACE,qBAAKjlF,UAAWtE,KAAMwpF,WAAtB,SACE,cAAC,IAAD,CAAkBxvF,GAAG,yBAAyBmM,eAAe,8CAE/D,qBAAK7B,UAAWtE,KAAMypF,UAAtB,SACE,cAAC,IAAD,CAAkBzvF,GAAG,wBAAwBmM,eAAe,iFAE9D,qBAAK7B,UAAWtE,KAAMypF,UAAtB,SACE,cAAC,IAAD,CAAkBzvF,GAAG,wBAAwBmM,eAAe,yGAE9D,qBAAK7B,UAAWtE,KAAMypF,UAAtB,SACE,cAAC,IAAD,CAAkBzvF,GAAG,0BAA0BmM,eAAe,kICxClEujF,GAAe,SAACtlF,GACpB,IAAMulF,EAAWz/E,iBAAO,MAClB0/E,EAAa1/E,iBAAO,MAGpB/N,EAAS+K,IACT2iF,EAFkB,CAAC,UAAW,WAAY,OAEX7jF,SAAS7J,GAe9C0I,qBAAU,WAUR,GAAI8kF,EACF,OAAQvlF,EAAMoI,QACZ,IAAK,QACEq9E,GAGHF,EAASj/E,QAAQo/E,OACjBH,EAASj/E,QAAQq/E,QAAU,WACzBJ,EAASj/E,QAAQs/E,YAAc,EAC/B50F,QAAQC,IAAI,mBACZu0F,EAAWl/E,QAAU5S,YAAW,WAC9B6xF,EAASj/E,QAAQo/E,OACjB1sF,aAAawsF,EAAWl/E,WACvB,OATLi/E,EAASj/E,QAAQo/E,OAYnB,MACF,IAAK,OACHH,EAASj/E,QAAQu/E,QACjBN,EAASj/E,QAAQs/E,YAAc,EAC/B5sF,aAAawsF,EAAWl/E,SACxB,MACF,IAAK,QACHi/E,EAASj/E,QAAQu/E,QACjB7sF,aAAawsF,EAAWl/E,SACxB,MACF,IAAK,SAlCHi/E,EAASO,QAAUP,EAASQ,QAC9BR,EAASj/E,QAAQo/E,QAEjBH,EAASj/E,QAAQu/E,QACjB7sF,aAAawsF,EAAWl/E,aAqC3B,CAACtG,EAAMoI,OAAQq9E,IAElB,IAAMO,EA1DU,CACd,CACEpwF,GAAI,YACJ0F,IAAK,0EACLpE,KAAM,aAER,CACEtB,GAAI,gBACJ0F,IAAK,2EACLpE,KAAM,cAiDekM,MAAK,SAAC9H,GAAD,OAC5BmqF,EAA0B,kBAAXnqF,EAAI1F,GAAoC,cAAX0F,EAAI1F,MAGlD,OACE,uBACE8Q,IAAK,SAAC8U,GACJ+pE,EAASj/E,QAAUkV,GAErByqE,MAAOR,EAJT,SAME,wBAAQnqF,IAAK0qF,EAAS1qF,IAAKpE,KAAM8uF,EAAS9uF,UAKhDouF,GAAapkF,aAAe,CAC1BkH,OAAQ,IAOKk9E,UC3FTY,GAAQ,SAAC,GAAD,IAAGpqF,EAAH,EAAGA,OAAQoE,EAAX,EAAWA,UAAWE,EAAtB,EAAsBA,QAASvE,EAA/B,EAA+BA,MAA/B,OACZ,sBAAKqE,UAAWA,EAAWY,KAAK,GAAGjF,MAAOA,EAAOC,OAAQA,EAAQsE,QAASA,EAASW,QAAQ,YAAYC,MAAM,6BAA7G,UACE,sBAAMyE,EAAE,0GACR,sBAAMA,EAAE,gBAAgB3E,KAAK,aAIjColF,GAAMhlF,aAAe,CACnBpF,OAAQ,KACRoE,UAAW,GACXE,QAAS,aACTvE,MAAO,MAUMqqF,UC2CAC,OA7Df,SAAoBnmF,GAClB,IAAIggB,EAAa,GACTjU,EAAgE/L,EAAhE+L,SAAUq6E,EAAsDpmF,EAAtDomF,cAAuBC,GAA+BrmF,EAAvC6O,OAAuC7O,EAA/BqmF,iBAAiBC,EAActmF,EAAdsmF,UAEpDp5E,EAASlN,EAAMoB,gBAAkBpB,EAAMoB,gBAAgBxL,GAAK,GAE5D2wF,GAAuBH,EAAc,IAAmB,SAAbr6E,IAA8D,IAAvCA,EAASjc,QAAQ,mBACrFu2F,GAAoBC,GAAaA,EAAUr6E,MAAK,SAACrI,GAAD,OAAUA,EAAKsJ,SAAWA,KAExEs5E,EAAYJ,EAAc,GAE1B74D,EAAa,WACjBvtB,EAAMsP,cAAc,cACpBtP,EAAMymF,qBA2BR,OARA,OAAID,QAAJ,IAAIA,OAAJ,EAAIA,EAAWx4E,UAEXgS,EADEwmE,EAAUx4E,OAAOoS,kBACT,UAAMomE,EAAUx4E,OAAOqS,qBAAvB,YAA+CmmE,EAAUx4E,OAAOsS,oBAAhE,cAAyFkmE,EAAUx4E,OAAOkyB,gBAE1G,UAAMsmD,EAAUx4E,OAAOiS,kBAAvB,YAA4CumE,EAAUx4E,OAAOkS,iBAA7D,cAAmFsmE,EAAUx4E,OAAOkyB,iBAKhH,qBAAKhgC,UAAWqmF,EAAsB,uCAAyC,wBAA/E,SACE,sBAAKrmF,UAAU,sBAAf,UACE,wBAAQA,UAAU,wBAAwBE,QAASmtB,EAAY3xB,MAAO,CAAEG,OAAQ,EAAGuQ,gBAAiB,eAApG,SACE,cAAC,GAAD,CAAOpM,UAAU,+BAA+BrE,MAAM,KAAKC,OAAO,SAEpE,qBAAKoE,UAAU,wBAAf,SAAuC,cAAC,IAAD,CAAkBtK,GAAG,6BAA6BmM,eAAe,gCACrGwkF,GACD,qBAAKrmF,UAAU,qBAAf,SACIsmF,EAAUx4E,QAAUgS,IAG1B,qBAAK9f,UAAU,kDAAf,SACE,yBAAQhJ,KAAK,SAASgJ,UAAU,oDAAoDE,QArCtE,WACpBmtB,IAEA,IAAMvf,EAAS9d,OAAOiU,OACpB,GACAnE,EAAMomF,cAAc,GAAGp4E,OACvB,CAAEhb,OAAQ,eACV,CAAEyc,UAAWzP,EAAMkN,SAGrBlN,EAAM0O,WAAWV,GAAQ5I,MAAK,WAC5BpF,EAAMoP,aAAY,GAClBpP,EAAM2F,QAAQ9H,KAAd,4BAAwCmQ,EAAOpY,GAA/C,UAyBI,cAA6G,cAAC,IAAD,CAAkBA,GAAG,qBAAqBmM,eAAe,YAAtK,eCrDG2kF,GAAmB,SAACjtE,GAAD,MAAY,CAC1CviB,KAAMsL,IAA0BiX,UC2FnBktE,I,OAvFW,SAAC3mF,GACzB,IAAIggB,EAAa,GACjB,EAAmDpU,uBAAY,SAAA5M,GAAK,MAAK,CACvE4nF,qBAAsB5nF,EAAM6nF,YAC5BzlF,gBAAiBpC,EAAMoC,oBAFjBwlF,EAAR,EAAQA,qBAAsBxlF,EAA9B,EAA8BA,gBAKxBuD,EAAWqK,wBAKX83E,EAAgBhhF,mBACtB,EAA8BxF,mBAAS,GAAvC,mBAAOk5D,EAAP,KAAgButB,EAAhB,KAEAtmF,qBAAU,WASR,GAAImmF,EAAqBl5F,OAAS,GAAKk5F,EAAqB,GAAGI,WAAWt5F,OAAS,EAAG,CACpF,IAAM6sE,EAAW9mC,aAAY,kBATbwzD,EAS4BL,EAAqB,GAAGI,WAAWt5F,YAP7Eq5F,EADEvtB,EAAUytB,EAAgB,EACjBztB,EAAU,EAEV,GAJE,IAACytB,IASwE,KACxFH,EAAcxgF,QAAUi0D,OAExBusB,EAAcxgF,QAAU,IAEzB,CAACsgF,EAAsBptB,IAE1B,IAAM0tB,EAAa,YAtBA,SAACl5E,GAAWrJ,EAASsK,GAA0BjB,IA8BhEU,CAPexe,OAAOiU,OACpB,GACAyiF,EAAqB,GAAG54E,OACxB,CAAE6B,UAAWC,MAASC,OAAO,4BAC7B,CAAEN,UAAWrO,EAAgBxL,IAC7B,CAAE5C,OAAQ,YAKR0D,EAAOvK,OAAOsM,SAASsT,SACzBxD,EAAYq+E,EAAqBl5F,OAAS,EAC9C6a,EAAsB,SAAT7R,GAA4B,iBAATA,GAAmC6R,EACnE,IAAMmO,EAAQkwE,EAAqB,GAOnC,OANA,OAAIlwE,QAAJ,IAAIA,OAAJ,EAAIA,EAAO1I,UACTgS,EAAatJ,EAAM1I,OAAOoS,kBAAb,UACN1J,EAAM1I,OAAOqS,qBADP,YAC+B3J,EAAM1I,OAAOsS,qBAD5C,UAEN5J,EAAM1I,OAAOiS,kBAFP,YAE4BvJ,EAAM1I,OAAOkS,mBAItD,sBAAKhgB,UAAWqI,EAAY,gCAAkC,kDAA9D,UACE,cAAC,GAAD,CAAOrI,UAAU,+CAA+CrE,MAAM,KAAKC,OAAO,KAAKsE,QAAS,kBA9ChEuE,EAASwiF,GA8C8E,OACvH,sBAAKjnF,UAAU,8BAAf,UACE,qBAAKA,UAAU,0BAAf,SACGqI,GAAamO,EAAMswE,WAAWt5F,OAAS,EACpCgpB,EAAMswE,WAAWngF,KAAI,SAAC6P,EAAO+C,GAAR,OACvB,qBAAoBvZ,UAAWuZ,IAAU+/C,EAAU,+BAAiC,yCAApF,SACIjxD,EAAS,UAAMyxB,GAAyBtjB,EAAM22C,YAArC,cAAsD32C,EAAMiG,gBAAmB,IADlFjG,EAAM9gB,OAKhB,qBAAKsK,UAAU,+BAAf,SACIqI,EAAS,UAAMyxB,GAAyBtjB,EAAMswE,WAAW,GAAG35B,YAAnD,cAAoE32C,EAAMswE,WAAW,GAAGrqE,gBAAmB,OAI5H,qBAAKzc,UAAU,2BAAf,SACGqI,EAAYyX,EAAa,KAE5B,qBAAK9f,UAAU,8BAAf,SACE,wBAAQhJ,KAAK,SAASkJ,QAAS,kBAAM8mF,KAAchnF,UAAU,6CAA7D,SACE,cAAC,IAAD,CAAkBtK,GAAG,iCAAiCmM,eAAe,mC,oBC1ClEqlF,GAtCM,SAAC,GAAD,IAAGv4B,EAAH,EAAGA,SAAH,OACnB,sBAAK3uD,UAAWtE,KAAM,yBAAtB,UACE,sBAAKsE,UAAWtE,KAAM,2BAAtB,UACE,uBAAOsE,UAAWtE,KAAM,uBAAwB4xB,QAAQ,QAAxD,SACE,cAAC,IAAD,CAAkB53B,GAAG,6BAA6BmM,eAAe,gBAElE8sD,EAASG,gBAEZ,sBAAK9uD,UAAWtE,KAAM,2BAAtB,UACE,uBAAOsE,UAAWtE,KAAM,uBAAwB4xB,QAAQ,QAAxD,SACE,cAAC,IAAD,CAAkB53B,GAAG,wBAAwBmM,eAAe,uBAE7D8sD,EAASM,eAJZ,IAI4B,cAAC,IAAD,CAAkBv5D,GAAG,0BAA0BmM,eAAe,eAE1F,sBAAK7B,UAAWtE,KAAM,2BAAtB,UACE,uBAAOsE,UAAWtE,KAAM,uBAAwB4xB,QAAQ,QAAxD,SACE,cAAC,IAAD,CAAkB53B,GAAG,2BAA2BmM,eAAe,wBAEhE+N,IAAO++C,EAASnyC,SAAS3M,OAAO,0BAEnC,sBAAK7P,UAAWtE,KAAM,2BAAtB,UACE,uBAAOsE,UAAWtE,KAAM,uBAAwB4xB,QAAQ,QAAxD,SACE,cAAC,IAAD,CAAkB53B,GAAG,yBAAyBmM,eAAe,eAE9D8sD,EAASxmD,aCiBDg/E,GAxCK,SAAC,GAA4B,IAA3B7rC,EAA0B,EAA1BA,QAAS/hC,EAAiB,EAAjBA,MAAO5O,EAAU,EAAVA,KACpC,EAAgCvK,oBAAS,GAAzC,mBAAOuL,EAAP,KAAiB2gB,EAAjB,KAEA,OACE,qCACE,sBAAK52B,GAAE,2BAAsB6jB,GAASvZ,UAAWtE,KAAM,yBAA0BwE,QAAS,kBAAMosB,GAAa3gB,IAA7G,UACE,uBAAMjQ,MAAO,CAAEC,MAAO,OAAtB,UAAgC2/C,EAAQrvB,WAAxC,IAAqDqvB,EAAQpvB,aAC7D,sBAAMxwB,MAAO,CAACC,MAAO,MAArB,SACGgQ,EAAW,IAAM,SAGrBA,GAAY2vC,EAAQ8rC,WAAW55F,OAAS,GACvC8tD,EAAQ8rC,WAAWzgF,KAAI,SAAC6jB,GAAD,OACrB,sBAAKxqB,UAAWtE,KAAM,kCAAtB,UACE,sBAAMA,MAAO,CAAEC,MAAO,SACtB,uBAAMD,MAAO,CAACC,MAAO,OAArB,oBACM6uB,EAAI82B,aAAe92B,EAAI82B,aAAe,MAD5C,YACqDjnC,GAAmBmQ,EAAItf,QAD5E,MACyFxN,GAASiN,GAAT,uBAA+B6f,EAAI22B,WAAWtlC,mBAEvI,sBAAMngB,MAAO,CAACC,MAAO,kBCiDlB0rF,GArEU,SAAC,GAAiH,IAA/Gx/E,EAA8G,EAA9GA,SAAUy/E,EAAoG,EAApGA,cAAeC,EAAqF,EAArFA,mBAAoBC,EAAiE,EAAjEA,sBAAuBC,EAA0C,EAA1CA,eAAgBC,EAA0B,EAA1BA,oBAE9G,OADA52F,QAAQC,IAAI8W,GAEV,qCACG4/E,GACC,qBAAKznF,UAAWtE,KAAM,6BAAtB,SACE,wBACEsE,UAAWtE,KAAM,gBACjBwE,QAASsnF,EACTxwF,KAAK,SAHP,SAKE,sBAAMgJ,UAAWtE,KAAM,wBAAvB,SACE,cAAC,IAAD,CAAkBhG,GAAG,uBAAuBmM,eAAe,mCAKnE,qBAAK7B,UAAWtE,KAAM,6BAA8BA,MAAO,CAAEM,UAAW,QAAxE,SACE,wBACEgE,UAAWtE,KAAM,gBACjBwE,QAASwnF,EACT1wF,KAAK,SAHP,SAKE,sBAAMgJ,UAAWtE,KAAM,wBAAvB,SACE,cAAC,IAAD,CAAkBhG,GAAG,4BAA4BmM,eAAe,kCAItE,sBAAK7B,UAAWtE,KAAM,6BAA8BA,MAAO,CAAEM,UAAW,QAAxE,UACG6L,GACC,sBAAM7H,UAAWtE,KAAM,uBAAvB,SACE,cAAC,IAAD,CAAkBhG,GAAG,2BAA2BmM,eAAe,+DAGnE,wBACEgG,SAAUA,EACV7H,UAAS,UAAKtE,KAAM,gBAAX,YAA8BmM,EAAWnM,KAAM,yBAA2B,IACnFwE,QAASonF,EACTtwF,KAAK,SAJP,SAME,sBAAMgJ,UAAWtE,KAAM,wBAAvB,SACE,cAAC,IAAD,CAAkBhG,GAAG,oBAAoBmM,eAAe,oBAI9D,qBAAK7B,UAAWtE,KAAM,6BAAtB,SACE,wBACEsE,UAAWtE,KAAM,gBACjBwE,QAASqnF,EACTvwF,KAAK,SAHP,SAKE,sBAAMgJ,UAAWtE,KAAM,wBAAvB,SACE,cAAC,IAAD,CAAkBhG,GAAG,yBAAyBmM,eAAe,0BCwB1DuzD,GAzEU,SAAC,GAAqC,IAAnC9Z,EAAkC,EAAlCA,QAAS+Z,EAAyB,EAAzBA,mBAC3B1qD,EAASe,uBAAY,SAAC5M,GAAD,MAAY,CACvC6L,KAAM7L,EAAMgnB,OAAOnb,SADbA,KAGR,EAAwBvK,wBAASjU,GAAjC,mBAAO8B,EAAP,KAAaqnE,EAAb,KAEA/0D,qBAAU,WACR,GAAI+6C,EAAS,CACX,IAAM4F,EAAe5F,EAAQ8rC,WAAWlkF,MACtC,SAACgI,GAAD,MAAgC,YAArBA,EAAMi2C,cAGnBmU,EAAQ,CACN3+C,KAAK,GAAD,OAAK2kC,EAAQrvB,WAAb,YAA2BqvB,EAAQpvB,WACvChhB,MAAOg2C,EAAah2C,WAGvB,CAACowC,IAcJ,OACE,sBAAKt7C,UAAWutC,KAAO,0BAAvB,UACE,sBAAKvtC,UAAWutC,KAAO,+BAAvB,UACE,gCACE,uBAAMvtC,UAAWutC,KAAO,mBAAxB,UAA4C,cAAC,IAAD,CAAkB73C,GAAG,oBAAoBmM,eAAe,SAApG,OADF,IACwH,iCAAOy5C,EAAQrvB,WAAf,IAA4BqvB,EAAQpvB,gBAE5J,gCACE,uBAAMlsB,UAAWutC,KAAO,mBAAxB,UACE,cAAC,IAAD,CAAkB73C,GAAG,kBAAkBmM,eAAe,aADxD,OAGC5T,GACC,wBAAQxB,MAAOwB,EAAKid,MAAOsiB,SAAU,SAACl/B,GAAD,OAvBzB4rC,EAuB6C5rC,EAtBjEwC,QAAQC,IAAImpC,EAAG5zB,OAAO7Z,YACtB6oE,GAAQ,SAAC7zB,GAAD,oBAAC,gBACJA,GADG,IAENv2B,MAAOgvB,EAAG5zB,OAAO7Z,WAJA,IAACytC,GAuBiDl6B,UAAWutC,KAAO,oBAA/E,SACG+N,EAAQ8rC,WAAWzgF,KAAI,SAAC6jB,GAAD,OACtB,yBAAQ90B,GAAI80B,EAAI90B,GAAIjJ,MAAO+9B,EAAItf,MAA/B,UAEIsf,EAAItf,MAAM1d,OAAS,GAAKiqC,GAAgBjN,EAAItf,MAAO,oBAAuBusB,GAAgBjN,EAAItf,MAAO,kBAFzG,MAGOxN,GAASiN,GAAT,uBAA+B6f,EAAI22B,WAAWtlC,8BAO/D,wBAAQ3b,QAAS,WA1BnBm1D,EAAmB,UAAWpnE,IA0BgB+R,UAAWutC,KAAO,wBAA9D,SACE,cAAC,IAAD,CAAkB73C,GAAG,mBAAmBmM,eAAe,qBCkHhD8lF,GAtKe,SAAC,GAAgD,IAAD,EAA7CC,EAA6C,EAA7CA,iBAAkBh0D,EAA2B,EAA3BA,UAAW5qB,EAAgB,EAAhBA,UACpD2B,EAASe,uBAAY,SAAC5M,GAAD,MAAY,CACvC6L,KAAM7L,EAAMgnB,OAAOnb,SADbA,KAGR,EAA2CvK,mBAAS,MAApD,mBAAOszD,EAAP,KAAqB+B,EAArB,KACA,EAAsCr1D,oBAAS,GAA/C,mBAAOs1D,EAAP,KAAoBC,EAApB,KACA,EAA0Dv1D,oBAAS,GAAnE,mBAAOw1D,EAAP,KAA8BC,EAA9B,KAEMR,EAAqB,SAACr+D,GAAqC,IAA/B/I,EAA8B,uDAAvB,KAAM2uD,EAAiB,uDAAP,GACnDkZ,EAAO,CACT9+D,OACAkU,MAAO,GACPyL,KAAMjZ,GAASiN,GAAM,kBAGvB,GAAa,WAAT3T,EACF,OAAQ4lD,GACN,IAAK,QACHkZ,EAAK5qD,MAAQ08E,EAAiBC,mBAC9B,MACF,QACE/xB,EAAK5qD,MAAQ08E,EAAiBE,0BAIlChyB,EAAK5qD,MAAQjd,EAAKid,MAClB4qD,EAAKn/C,KAAO1oB,EAAK0oB,KAEnB8+C,EAAmBK,GACnBH,GAAe,IAoBjB,OAFA7kE,QAAQC,IAAI62F,GAELlyB,EACL,cAAC,GAAD,CACEhC,aAAcA,EACdC,iBApBqB,WACvBgC,GAAe,IAoBbtkC,cAAeu2D,EAAiB5nD,eAChC9yB,SAAU06E,EAAiB95E,OAC3B8lB,UAAWA,EACX5qB,UAAWA,EACX4qD,SAAS,aAGX,sBAAK5zD,UAAWutC,KAAO,uBAAvB,UACE,qBAAKvtC,UAAWutC,KAAO,yBAAvB,SACE,sBAAKvtC,UAAWutC,KAAO,8BAAvB,UACE,sBAAMvtC,UAAWutC,KAAO,0BAAxB,SACE,cAAC,IAAD,CAAkB73C,GAAG,uBAAuBmM,eAAe,sCAE7D,gCACE,uBAAM7B,UAAWutC,KAAO,mBAAxB,UAA4C,cAAC,IAAD,CAAkB73C,GAAG,4BAA4BmM,eAAe,UAA5G,OADF,IACgI,+BAAO+lF,EAAiB5nD,oBAEvJ4nD,EAAiBE,sBAChB,sBAAKpsF,MAAO,CAAEsP,QAAS,OAAQ+qD,eAAgB,gBAAiBgyB,WAAY,SAAUxrE,aAAc,QAApG,UACE,gCACE,uBAAMvc,UAAWutC,KAAO,mBAAxB,UAA4C,cAAC,IAAD,CAAkB73C,GAAG,6BAA6BmM,eAAe,wBAA7G,OADF,IAC+I,+BACzI+lF,EAAiBE,qBAAqBt6F,OAAS,GAAKiqC,GAAgBmwD,EAAiBE,qBAAsB,oBAAsBrwD,GAAgBmwD,EAAiBE,qBAAsB,uBAI9L,wBAAQ5nF,QAAS,kBAAMm1D,EAAmB,SAAU,KAAM,YAAYr1D,UAAWutC,KAAO,wBAAxF,SACE,cAAC,IAAD,CAAkB73C,GAAG,mBAAmBmM,eAAe,oBAI5D+lF,EAAiBC,oBAChB,sBAAKnsF,MAAO,CAAEsP,QAAS,OAAQ+qD,eAAgB,gBAAiBgyB,WAAY,SAAUxrE,aAAc,QAApG,UACE,gCACE,uBAAMvc,UAAWutC,KAAO,mBAAxB,UAA4C,cAAC,IAAD,CAAkB73C,GAAG,6BAA6BmM,eAAe,wBAA7G,OADF,IAC+I,+BAC3I+lF,EAAiBC,mBAAmBr6F,OAAS,GAAKiqC,GAAgBmwD,EAAiBC,mBAAoB,oBAAsBpwD,GAAgBmwD,EAAiBC,mBAAoB,uBAGtL,wBAAQ3nF,QAAS,kBAAMm1D,EAAmB,SAAU,KAAM,UAAUr1D,UAAWutC,KAAO,wBAAtF,SACE,cAAC,IAAD,CAAkB73C,GAAG,mBAAmBmM,eAAe,yBA+BjE,uBACA,sBAAM7B,UAAWutC,KAAO,2BAAxB,SACE,cAAC,IAAD,CAAkB73C,GAAG,6BAA6BmM,eAAe,gCA/DrE,OAiEG+lF,QAjEH,IAiEGA,GAjEH,UAiEGA,EAAkBI,qBAjErB,aAiEG,EAAiCrhF,KAAI,SAAC20C,EAAS/hC,GAAV,OACpC,cAAC,GAAD,CAA8B+hC,QAASA,EAAS+Z,mBAAoBA,GAA7C97C,MAEzB,uBACA,sBAAMvZ,UAAWutC,KAAO,2BAAxB,SACE,cAAC,IAAD,CAAkB73C,GAAG,2BAA2BmM,eAAe,0BAEjE,qBAAK7B,UAAWutC,KAAO,uBAAvB,SACE,wBACErtC,QAAS,kBAAM21D,GAA0BD,IACzC51D,UAAWutC,KAAO,wBAFpB,SAIGqoB,EACC,cAAC,IAAD,CAAkBlgE,GAAG,2BAA2BmM,eAAe,WAC/D,cAAC,IAAD,CAAkBnM,GAAG,0BAA0BmM,eAAe,cAGnE+zD,GACC,cAAC,GAAD,CAAmB3C,UA3GQ,SAACgD,GAC5BA,IACFR,EAAmB,CACjBz+D,KAAM,SACNkU,MAAO+qD,EACPt/C,KAAM,WAERg/C,GAAe,WCrCrB,IAgPesyB,GAhPkB,SAACnoF,GAChC,IAAQooF,EAA0BpoF,EAA1BooF,sBAEFzjF,EAAWqK,wBACX1E,EAAYsB,uBAAY,SAAA5M,GAAK,OAAIA,EAAMsL,aACvC+f,EAAYze,uBAAY,SAAA5M,GAAK,OAAIA,EAAMqrB,aACvCxf,EAAOe,uBAAY,SAAA5M,GAAK,OAAIA,EAAMgnB,OAAOnb,QACzCzJ,EAAkBwK,uBAAY,SAAA5M,GAAK,OAAIA,EAAMoC,mBAC7CinF,EAAiB,SAACx5B,GAAD,OAAclqD,EhFmChC,SAAwBkqD,GAC7B,IAAM92D,EAAS+K,IACTY,EAAQH,IAEd,OAAO,SAACoB,EAAU4I,EAAX,OAAuB3I,EAAvB,EAAuBA,MAAvB,OAAmC,IAAIC,SAAQ,SAACC,EAASC,GAAV,OACpDH,EAAM,CACJvR,OAAQ,MACR2R,aAAc,OACdnV,IAAI,WAAD,OAAakI,GAAb,OvM7DE,kBuM6DF,0BAA8C82D,EAASj5D,GAAvD,KACHzH,KAAM0gE,EACN5pD,QAAS,CAAEE,cAAc,SAAD,OAAWzB,MAEpC0B,MAAK,kBAAMN,EAAQH,EAASi6D,UAC5Bt5D,OAAM,SAACxU,GACN,OAAIA,EAAM2c,SACsB,MAA1B3c,EAAM2c,SAASza,OACV+R,EAAOJ,EAAS2I,MAElBvI,EAAOjU,EAAM2c,UAEf1I,EAAO,WgFvD4BujF,CAAgCz5B,KAE9E,EAA0BvuD,mBAAS,GAAnC,mBAAOmZ,EAAP,KAAc8uE,EAAd,KACA,EAA0BjoF,mBAAS,MAAnC,mBAAOqe,EAAP,KAAc++C,EAAd,KACA,EAA4Bp9D,mBAAS,IAArC,mBAAOklB,EAAP,KAAegpC,EAAf,KACA,EAAsDluD,oBAAS,GAA/D,mBAAOk2B,EAAP,KAA4BC,EAA5B,KACA,EAA4Dn2B,oBAAS,GAArE,mBAAOygE,EAAP,KAA+BC,EAA/B,KACA,EAAgD1gE,wBAASjU,GAAzD,mBAAOy7F,EAAP,KAAyBU,EAAzB,KAEA/nF,qBAAU,YACK,OAAT6J,QAAS,IAATA,OAAA,EAAAA,EAAWnc,KAAKT,QAAS,IACtBo6F,EAEOx9E,EAAUnc,KAAK8d,MAAK,SAAAgrC,GAAG,OAAI6wC,EAAiBlyF,KAAOqhD,EAAIrhD,QACjE4yF,EAAoBl+E,EAAUnc,KAAK,IACnCqgE,EAAU,IACVkP,EAAS,MACT6qB,EAAS,IALVC,EAAoBl+E,EAAUnc,KAAK,OASrC,CAACmc,EAAWw9E,IAEfrnF,qBAAU,WACR,GAAI6J,EAAUwtD,YAAcgwB,EAAkB,CAC5C,IAAIW,EChDH,SAA0B3wB,EAAY4wB,EAAeC,GAC1D,GAAI7wB,GAAc4wB,EAAe,CAI/B,OAFmC,GAAhBC,EADC74E,IAAOgoD,GAAY8wB,KAAK94E,IAAO44E,GAAgB,WAKrE,OAAO,KDyCgBG,CAAiBv+E,EAAUwtD,WAAYgwB,EAAiBprE,QAAUorE,EAAiB34B,gBAEhGoL,EAAW9mC,aAAY,WACvBg1D,GAAgB,IAClBL,IACAz0D,cAAc4mC,IAEhBkuB,GAAgB,IACf,KAEH,OAAO,kBAAM90D,cAAc4mC,OAI5B,CAACjwD,EAAUwtD,WAAYgwB,IAE1BrnF,qBAAU,WACsB,IAA1B6J,EAAUnc,KAAKT,QACjBsS,EAAM8oF,uBAGP,QAACx+E,QAAD,IAACA,OAAD,EAACA,EAAWnc,KAAKT,SAEpB,IAMMq7F,EAAe,SAACl6B,EAAUm6B,GAC9B,OAAO94F,OAAOiU,OACZ,GACA0qD,EACA,CAAErpC,UACF,CAAExyB,OAAQ,UACV,CAAEi2F,gBAAiB7nF,EAAgBxL,IACnC,CAAEozF,oBAIAE,EAAiB,SAACv8F,GACtB,IAAMw8F,EAAG,OAAG7+E,QAAH,IAAGA,OAAH,EAAGA,EAAWnc,KAAKT,OAEtB07F,GAAY3vE,EADH9sB,EAAQw8F,EACcA,GAAOA,EAC5C36B,EAAU,IACVkP,EAAS,MACT8qB,EAAoBl+E,EAAUnc,KAAKi7F,IACnCb,EAASa,IA8CLrhF,GAAayd,GAAWu7C,EAE1BsoB,OAAgBh9F,EAKpB,OAJA,OAAIy7F,QAAJ,IAAIA,OAAJ,EAAIA,EAAkBwB,uBACpBD,EAAgBh/D,EAAU,GAAGl8B,KAAKiV,MAAK,SAAAknB,GAAE,OAAIA,EAAG10B,KAAOkyF,EAAiBwB,wBAIxE,sBAAKppF,UAAS,UAAKtE,KAAM,sBAAX,YAAoCoE,EAAMupF,aAAe3tF,KAAM,uBAAyB,IAAtG,UACG46B,GACC,cAAC,GAAD,CACEzC,YAAa+zD,EAAiB0B,aAC9Bj4D,cAAeu2D,EAAiB5nD,eAChC9yB,SAAQ,UAAK06E,EAAiB95E,OAAtB,qBAAyC85E,EAAiBlyF,IAClEk+B,UAAW9zB,EAAM8zB,UACjBG,iBAAkBj0B,EAAMi0B,iBACxB/qB,UAAWlJ,EAAMkJ,UACjBhH,aAAclC,EAAMkC,aACpBqrB,WAAY,kBAAMkJ,GAAwBD,IAC1CnM,UAAWg/D,IAGdtoB,GACC,cAAC,GAAD,CACExzC,WAAY,WACVyzC,GAA0B,GAC1BhhE,EAAMkJ,aAERw1C,YAAW,UAAK9gD,GAASiN,GAAM,iCAApB,YAAwDi9E,EAAiB95E,QALtF,SAOE,cAAC,GAAD,CACE85E,iBAAkBA,EAClBh0D,UAAW9zB,EAAM8zB,UACjB5qB,UAAWlJ,EAAMkJ,cAIvB,qBAAKhJ,UAAWtE,KAAM,2BAAtB,SACE,wBAAQsE,UAAWtE,KAAM,wBAAyBwE,QAASJ,EAAMypF,wBAAjE,SACE,mBAAGvpF,UAAS,uBAAkBtE,KAAM,qBAAuB,cAAY,aAG3E,sBAAKsE,UAAWtE,KAAM,4BAAtB,UACE,wBAAQmM,SAAUg5D,EAAwB7gE,UAAS,6CAAwCtE,KAAM,gBAAkBwE,QAAS,kBAAM8oF,EAAe,MACjJ,wBAAQnhF,SAAUg5D,EAAwB7gE,UAAS,8CAAyCtE,KAAM,gBAAkBwE,QAAS,kBAAM8oF,GAAgB,SAErJ,sBAAKhpF,UAAWtE,KAAM,mBAAtB,UACE,uBAAMsE,UAAWtE,KAAM,kBAAvB,UACE,cAAC,IAAD,CAAkBhG,GAAG,kBAAkBmM,eAAe,gCACrD+lF,GAAoBA,EAAiB95E,UAExC,sBAAM9N,UAAWtE,KAAM,qBAAvB,SACGksF,GAAoBA,EAAiB4B,sBAGzC5B,GAAoB,cAAC,GAAD,CAAcj5B,SAAUi5B,IAC7C,sBAAK5nF,UAAWtE,KAAM,2BAAtB,UACA,wBAAOsE,UAAWtE,KAAM,uBAAwB4xB,QAAQ,WAAxD,UACI,cAAC,IAAD,CAAkB53B,GAAG,0BAA0BmM,eAAe,iBADlE,OAGE,qBAAK7B,UAAWtE,KAAM,uBAAtB,SACE,0BACEhG,GAAG,WACHsB,KAAK,WACL2f,KAAK,WACL3W,UAAWtE,KAAM,qBACjBjP,MAAO64B,EACPwI,UAAU,OACVN,SA1IW,SAACx0B,GACpB,IAAM8kE,EAAcrtD,SAASvkB,SAASwwE,cAAc,YAAYqB,aAAa,aAAc,IAC3FzP,EAAUt1D,EAAMsN,OAAO7Z,OACvB+wE,EAASM,EAAc9kE,EAAMsN,OAAO7Z,MAAMe,SAwIlCytC,KAAK,IACLC,KAAK,SAGT,uBAAOl7B,UAAWtE,KAAM,uBAAwB4xB,QAAQ,QAAxD,SACG7O,QAGY,OAAhBmpE,QAAgB,IAAhBA,OAAA,EAAAA,EAAkBI,cAAcx6F,QAAS,GACxC,sBAAKwS,UAAWtE,KAAM,2BAAtB,UACE,wBAAOsE,UAAWtE,KAAM,uBAAwB4xB,QAAQ,WAAxD,UACE,cAAC,IAAD,CAAkB53B,GAAG,+BAA+BmM,eAAe,sBADrE,OAGA,qBAAK7B,UAAWtE,KAAM,6BAAtB,SACGksF,GAAoBA,EAAiBI,cAAcrhF,KAAI,SAAC20C,EAAS/hC,GAAV,OACtD,cAAC,GAAD,CAAa+hC,QAASA,EAAS/hC,MAAOA,EAAO5O,KAAMA,YAK3D,cAAC,GAAD,CACE9C,SAAUA,EACVy/E,cAtIgB,WACpBxmB,GAA0B,GAC1B,IAAM7yE,EAAO46F,EAAajB,GAAkB,GAC5CO,EAAel6F,GAAMiX,MAAK,WACnBjX,EAAKgwE,eACRvlD,GAAUhU,IAAO5E,EAAM6Y,UAAW,CAChC3hB,KAAM,YACNkpC,OAAQ,YACRupD,iBAAkBvoF,EAAgBxL,GAClCsX,OAAQ9L,EAAgBxL,KAG5B44D,EAAU,IACVkP,EAAS,MACT8qB,OAAoBn8F,GACpBk8F,EAAS,GACTvoF,EAAMypF,8BAuHJhC,mBAnHqB,WACzBznF,EAAMkJ,YACN83D,GAA0B,GAC1B,IAAM7yE,EAAO46F,EAAajB,GAAkB,GAC5CO,EAAel6F,GAAMiX,MAAK,WACnBjX,EAAKgwE,eACRvlD,GAAUhU,IAAO5E,EAAM6Y,UAAW,CAChC3hB,KAAM,YACNkpC,OAAQ,YACRupD,iBAAkBvoF,EAAgBxL,GAClCsX,OAAQ9L,EAAgBxL,KAG5B44D,EAAU,IACVkP,EAAS,MACT8qB,OAAoBn8F,GACpBk8F,EAAS,GACTvoF,EAAMypF,0BACNzpF,EAAM4pF,oBAAoB9B,EAAiB95E,QAC3ChO,EAAM6pF,uBAiGJjC,oBAAqB,kBAAM5mB,GAA2BD,IACtD2mB,sBAAuB,kBAAMjxD,GAAwBD,IACrDmxD,eAAc,OAAEG,QAAF,IAAEA,OAAF,EAAEA,EAAkBgC,8BE7N3BC,I,OAZM,SAAC,GAAD,IAAG3wF,EAAH,EAAGA,QAASgH,EAAZ,EAAYA,QAAZ,OACnB,sBAAKF,UAAU,wBAAf,UACE,wBAAQA,UAAU,uBAAuBE,QAASA,EAAlD,SAA4D,mBAAGF,UAAU,mBACzE,uBAAMA,UAAU,wBAAhB,UAAyC9G,EAAzC,YCNG,SAAS4wF,GAAUn/E,GACxB,MAAO,CAAE3T,KAAMsL,IAAkBqI,QAG5B,SAASE,GAAUF,GAExB,OADA5H,aAAauS,cAAgB3K,EACtB,SAAClG,EAAU4I,EAAX,KAAuB3I,MAAvB,OAAmC,IAAIC,SAAQ,SAACC,EAASC,GAAV,OACpDD,EAAQH,EAASqlF,GAAUn/E,SCexB,SAASo/E,KACd,IAAMlyF,EAAS+K,IACTY,EAAQH,IACA,UAAVG,GACF4J,IAGF,IAAMzd,EAAG,kBAAckI,GAAd,O3RxBA,kB2RwBA,4DACT,OAAO,SAAC4M,EAAU4I,EAAX,OAAuB3I,EAAvB,EAAuBA,MAAvB,OAAmC,IAAIC,SAAQ,SAACC,EAASC,GAC9DH,EAAM4I,IAAI3d,EAAK,CACboV,QAAS,CAAEE,cAAc,SAAD,OAAWzB,MAClC0B,MAAK,SAACuJ,GAfN,IAAyCyM,EAgB1CzW,GAhB0CyW,EAgBDzM,EAAKxgB,KAAKwf,QAfhD,CAAEzW,KAAMsL,IAAmC8B,QAAS8W,QAgBtD9V,OAAM,SAAC+hB,GACR1iB,EAAS2I,YAKR,SAAS48E,KACd,IAAMnyF,EAAS+K,IACTY,EAAQH,IAKd,MAHc,UAAVG,GACF4J,IAEK,SAAC3I,EAAU4I,EAAX,OAAuB3I,EAAvB,EAAuBA,MAAvB,OAAmC,IAAIC,SAAQ,SAACC,EAASC,GAC9DD,EAAQF,EAAMulF,IAAI,CAChBvlF,EAAM4I,IAAN,kBAAqBzV,GAArB,O3R7CK,kB2R6CL,4DACE,CAAEkN,QAAS,CAAEE,cAAc,SAAD,OAAWzB,MAC9B4B,OAAM,SAACxU,GACFA,EAAM2c,UACsB,MAA1B3c,EAAM2c,SAASza,QACjB2R,EAAS2I,QAIvB1I,EAAM4I,IAAN,kBAAqBzV,GAArB,O3RtDK,kB2RsDL,0CACA,CAAEkN,QAAS,CAAEE,cAAc,SAAD,OAAWzB,MAChC4B,OAAM,SAACxU,GACFA,EAAM2c,UACsB,MAA1B3c,EAAM2c,SAASza,QACjB2R,EAAS2I,UAIlBlI,KAAKR,EAAMwlF,QAAO,SAAC92F,EAAMwtB,GACtBxtB,GAAQwtB,GACVnc,EApED,SAA4BrR,EAAMwtB,GACvC,MAAO,CAAE5pB,KAAMsL,IAA8BlP,OAAMwtB,UAmEpCpT,CAAmBpa,EAAKnF,KAAKwf,QAASmT,EAAO3yB,KAAKwf,mBC/D5D,SAAS08E,KACd,IAAMtyF,EAAS+K,IACTY,EAAQH,IAEd,OAAO,SAACoB,EAAU4I,EAAX,OAAuB3I,EAAvB,EAAuBA,MAAvB,OAAmCC,QAAQC,QAChDF,EAAM4I,IAAN,kBAAqBzV,GAArB,O5RPO,kB4ROP,mBAAuD,CACrDkN,QAAS,CAAEE,cAAc,SAAD,OAAWzB,MAClC0B,MAAK,SAACilB,GACeA,EAAUl8B,KAAKT,OAAS,GAAI28B,EAAUl8B,KAC5DwW,EAbC,SAA8B0lB,GACnC,MAAO,CAAEnzB,KAAMsL,IAA8B6nB,aAYhCigE,CAAqBjgE,EAAUl8B,UACvCmX,OAAM,SAACxU,GACJA,EAAM2c,UACsB,MAA1B3c,EAAM2c,SAASza,QACjB2R,EAAS2I,UClBZ,SAASi9E,GAAwBv3F,GACtC,MAAO,CAAEkE,KAAMsL,IAAkCxP,UAO5C,SAASw3F,GAAwB15F,EAAOsI,GAC7C,MAAO,CACLlC,KAAMsL,IACN8B,QAAS,CACPtR,OAAQlC,EACRyT,WAAYnL,IAMX,SAASqxF,KAAkC,IAC1C1yF,EAAS+K,IACTY,EAAQH,IAEd,OAAO,SAACoB,EAAU4I,EAAX,OAAuB3I,EAAvB,EAAuBA,MAAvB,OAAmC,IAAIC,SAAQ,SAACC,EAASC,GAAV,OACpDH,EAAM,CACJvR,OAAQ,MACR2R,aAAc,OACdnV,IAAI,WAAD,OAAakI,GAAb,O7RxBE,kB6RwBF,gBACHkN,QAAS,CACPC,OAAQ,mBACR,eAAgB,mBAChBC,cAAc,SAAD,OAAWzB,MAGzB0B,MAAK,SAAAC,GAAG,OAAIP,EAAQH,EAAS4lF,GAAwBllF,EAAIlX,WACzDmX,OAAM,SAACxU,GACN,OAAIA,GAAmC,qBAAnBA,EAAM2c,UAAsD,MAA1B3c,EAAM2c,SAASza,OAC5D+R,EAAOjU,EAAM2c,UAEf1I,EAAOJ,EAAS6lF,GAAwB,mBAAoB,uDC/BpE,SAASE,KACd,IAAM3yF,EAAS+K,IACTY,EAAQH,IAEd,OAAO,SAACoB,EAAU4I,EAAX,OAAuB3I,EAAvB,EAAuBA,MAAvB,OAAmCC,QAAQC,QAChDF,EAAM4I,IAAN,kBAAqBzV,GAArB,O9RVO,kB8RUP,cAAkD,CAChDkN,QAAS,CAAEE,cAAc,SAAD,OAAWzB,MAClC0B,MAAK,SAACulF,GACPhmF,EAhBC,SAA+BgmF,GACpC,MAAO,CACLzzF,KAAMsL,IACNmoF,QAaWC,CAAsBD,EAAKx8F,UACnCmX,OAAM,SAACxU,GACJA,EAAM2c,UACsB,MAA1B3c,EAAM2c,SAASza,QACjB2R,EAAS2I,UCbZ,SAASu9E,KACd,IAAM9yF,EAAS+K,IACTY,EAAQH,IAEd,OAAO,SAACoB,EAAU3F,EAAX,OAAoB4F,EAApB,EAAoBA,MAApB,OAAgC,IAAIC,SAAQ,SAACC,EAASC,GAC3D,OAAOH,EAAM,CACXvR,OAAQ,MACR2R,aAAc,OACdnV,IAAI,WAAD,OAAakI,GAAb,O/RZE,kB+RYF,uBACHkN,QAAS,CACPC,OAAQ,mBACR,eAAgB,mBAChBC,cAAc,SAAD,OAAWzB,MAG3B0B,MAAK,SAACC,GAvBJ,IAAsB0J,EAwBvBjK,EAAQH,GAxBeoK,EAwBO1J,EAAIlX,KAvB/B,CACL+I,KAAMsL,IACNuM,gBAuBCzJ,OAAM,SAACxU,GAENiU,EAAOjU,UCrBN,SAASg6F,GAAuBlnF,GACrC,IAAM7L,EAAS+K,IACTY,EAAQH,IAEd,OAAO,SAACoB,EAAU3F,EAAX,OAAoB4F,EAApB,EAAoBA,MAApB,OAAgC,IAAIC,SAAQ,SAACC,EAASC,GAC3D,OAAOH,EAAM,CACXvR,OAAQ,MACR2R,aAAc,OACdnV,IAAI,WAAD,OAAakI,GAAb,OhSXE,kBgSWF,iCAAqD6L,EAArD,KACHqB,QAAS,CACPC,OAAQ,mBACR,eAAgB,mBAChBC,cAAc,SAAD,OAAWzB,MAG3B0B,MAAK,SAACC,GAtBJ,IAAqB0gB,EAuBtBjhB,EAAQH,GAvBcohB,EAuBO1gB,EAAIlX,KAtB9B,CACL+I,KAAMsL,IACNujB,eAsBCzgB,OAAM,SAACxU,GACNE,QAAQC,IAAI,6DACZ8T,EAAOjU,U,qBC5BN,IC0vCQi6F,GAhsCH,SAAC/qF,GACX,IAAMgrF,EAAe3qF,IACf4qF,EAAmBr/E,uBAAY,SAAC5M,GAAD,OAAWA,EAAM6nF,eAChDhxD,EAAajqB,uBAAY,SAAC5M,GAAD,OAAWA,EAAM62B,cAC1CxnB,EAAUzC,uBAAY,SAAC5M,GAAD,OAAWA,EAAMqP,WACvC0gB,EAAUnjB,uBAAY,SAAC5M,GAAD,OAAWA,EAAM+vB,WACvC3tB,EAAkBwK,uBAAY,SAAC5M,GAAD,OAAWA,EAAMoC,mBAC/CyJ,EAAOe,uBAAY,SAAC5M,GAAD,OAAWA,EAAMgnB,OAAOnb,QAC3CP,EAAYsB,uBAAY,SAAC5M,GAAD,OAAWA,EAAMsL,aACzCg8E,EAAY16E,uBAAY,SAAC5M,GAAD,OAAWA,EAAMhM,UACzC8b,EAAsBlD,uBAAY,SAAC5M,GAAD,OAAWA,EAAM8P,uBAEnDnK,EAAWqK,wBAEX01D,EAAiB,kBAAM//D,EAASmgE,OAChComB,EAAqB,SAACz7E,GAAD,OACzB9K,EC1EG,SAA4B8K,GAC/B,MAAO,CAAEvY,KAAMsL,KAA4BiN,aDyElC07E,CAA0C17E,KAW/C1B,EAAgB,SAACC,GAAD,OACpBrJ,EAASsK,GAA6BjB,KAClCo9E,EAAgB,kBAAMzmF,EnR5CvB,WACU7B,IAAf,IACMY,EAAQH,IAEd,OAAO,SAACoB,EAAU4I,EAAX,GAAoC,IAAb3I,EAAY,EAAZA,MACpByJ,EAAYd,IAAZc,QACR,OAAOxJ,QAAQC,QACbF,EAAM4I,IAAIa,EAAQ2gB,UAAW,CAC3B/pB,QAAS,CAAEE,cAAc,SAAD,OAAWzB,MAClC0B,MAAK,SAAAC,GAAG,OAAIV,EAAS+I,GACtBrI,EAAIlX,KACJkgB,EAAQT,SACRS,EAAQ4gB,WACR5gB,EAAQ3M,OACR2M,EAAQ2gB,iBmR8BuB/f,KAC/Bi7E,EAAuB,kBAC3BvlF,EAAS0mF,OACLC,EAAqB,SAACt9E,GAAD,OACzBrJ,EPrFG,SAA4BqJ,GACjC,MAAO,CAAE9W,KAAMsL,IAA4BwL,UOoFhCq9E,CAA2Cr9E,KAChDu9E,EAAwB,SAACv9E,GAAD,OAC5BrJ,EPnFG,SAA+BqJ,GACpC,MAAO,CAAE9W,KAAMsL,KAA+BwL,UOkFnCq9E,CAA8Cr9E,KACnDw9E,EAAuB,SAACx9E,GAAD,OAC3BrJ,EPjFG,SAA8BqJ,GACnC,MAAO,CAAE9W,KAAMsL,IAA8BwL,UOgFlCq9E,CAA6Cr9E,KAIlDy9E,EAAgB,SAACz9E,GAAD,OACpBrJ,ElBpGyB,SAACqJ,GAAD,MAAa,CACxC9W,KAAMsL,IAAuBwL,UkBmGlBm5E,CAA0Cn5E,KAC/C04E,EAAmB,SAACjtE,GAAD,OACvB9U,EAASwiF,GAA6C1tE,KAKlDiyE,EAAgB,SAACpjF,GAAD,OACpB3D,E7M7FG,SAAuB2D,GAC5B,MAAO,CAAEpR,KAAMsL,IAAmB8F,U6M4FvBonB,CAA6BpnB,KAClCwmB,EAAgB,kBAAMnqB,EAAS+qB,OAoB/BkvC,EAAgB,kBAAMj6D,EAAS2jF,OAS/BqD,EAAuB,SAAC,GAAD,IAAG9vF,EAAH,EAAGA,MAAOC,EAAV,EAAUA,OAAV,OAC3B6I,EEzIgC,SAAC,GAAD,IAAG9I,EAAH,EAAGA,MAAOC,EAAV,EAAUA,OAAV,MAAwB,CAC1D5E,KAAMsL,IAA8BopF,WAAY,CAAE/vF,QAAOC,WFwI9C+vF,CAAoC,CAAEhwF,QAAOC,aAKlDgwF,EAAmB,SAACj8F,GAAD,OACvB8U,EAASonF,OACLC,EAAkB,SAACpoF,GAAD,OACtBe,EAASsnF,GAAiDroF,KAIxDsoF,EAAoB,IAAI/hC,MAC1B,qFAEF+hC,EAAkBC,OAAS,EAC3B,IAAIlzB,EAAgB,IAAI9O,MACtB,qFAEF8O,EAAckzB,OAAS,EAEvB,IAAMC,EAAsBtmF,mBACtBumF,EAAmBvmF,mBACnBwmF,EAAuBxmF,mBAC7B,EAA0CxF,wBAASjU,GAAnD,mBAAOkgG,EAAP,KAAyBC,EAAzB,KACA,GAAwBlsF,wBAASjU,GAAjC,qBAAOuX,GAAP,MAAa6oF,GAAb,MACA,GAAwCnsF,mBAAS,IAAjD,qBAAOkvB,GAAP,MAAqBk9D,GAArB,MACA,GAAwCpsF,oBAAS,GAAjD,qBAAOqsF,GAAP,MAAqBC,GAArB,MACA,GAA4CtsF,oBAAS,GAArD,qBAAOusF,GAAP,MAAuBC,GAAvB,MACA,GAAwCxsF,wBAASjU,GAAjD,qBAAO0gG,GAAP,MAAqBC,GAArB,MACA,GAAsD1sF,oBAAS,GAA/D,qBAAO2sF,GAAP,MAA4BC,GAA5B,MACA,GAAwC5sF,oBAAS,GAAjD,qBAAO6sF,GAAP,MAAqBC,GAArB,MACA,GAA0D9sF,oBAAS,GAAnE,qBAAO+sF,GAAP,MAA8BC,GAA9B,MACA,GAA8ChtF,oBAAS,GAAvD,qBAAO+lF,GAAP,MAAwBkH,GAAxB,MACA,GAAgDjtF,oBAAS,GAAzD,qBAAOqgE,GAAP,MAAyBC,GAAzB,MACA,GAAsDtgE,oBAAS,GAA/D,qBAAOktF,GAAP,MAA4BC,GAA5B,MACA,GAAwDntF,oBAAS,GAAjE,qBAAOotF,GAAP,MAA6BC,GAA7B,MACA,GAA8CrtF,oBAAS,GAAvD,qBAAOstF,GAAP,MAAwBC,GAAxB,MACA,GAAgCvtF,oBAAS,GAAzC,qBAAOyjF,GAAP,MAAiB+J,GAAjB,MACA,GAA4CxtF,oBAAS,GAArD,qBAAO8J,GAAP,MAAuB2jF,GAAvB,MACA,GAAsCztF,mBAAS,IAA/C,qBAAO6I,GAAP,MAAoB6kF,GAApB,MACA,GAAgD1tF,wBAASjU,GAAzD,qBAAO4hG,GAAP,MAAyBrE,GAAzB,MACA,GAA0CtpF,mBAAS,IAAnD,qBAAO8lF,GAAP,MAAsB8H,GAAtB,MACA,GAAoC5tF,mBAAS,IAA7C,qBAAmB6tF,IAAnB,aACA,GAAoE7tF,mBAAS,IAA7E,qBAAO8tF,GAAP,MAAmCC,GAAnC,MACA,GAAkC/tF,mBAAS,IAA3C,qBAAOuY,GAAP,MAAkBy1E,GAAlB,MACA,GAA4DhuF,oBAAS,GAArE,qBAAO0K,GAAP,MAA+BujF,GAA/B,MACA,GAAgCjuF,wBAASjU,GAAzC,qBAAOmiG,GAAP,MAAiBC,GAAjB,MACA,GAAwCnuF,wBAASjU,GAAjD,qBAAO6V,GAAP,MAAqBwsF,GAArB,MACA,GAA4CpuF,wBAASjU,GAArD,qBAAO4V,GAAP,MAAuB0sF,GAAvB,MACA,GAAwCruF,wBAASjU,GAAjD,qBAAO0nE,GAAP,MAAqB66B,GAArB,MACA,GAA8BtuF,wBAASjU,GAAvC,qBAAOwiG,GAAP,MAAgBC,GAAhB,MAGA,GAA8CxuF,wBAASjU,GAAvD,qBAAOwd,GAAP,MAAuBklF,GAAvB,MACA,GAAwCzuF,wBAASjU,GAAjD,qBAAOyd,GAAP,MAAoBklF,GAApB,MACA,GAA8C1uF,wBAASjU,GAAvD,qBAAO2c,GAAP,MAAwBimF,GAAxB,MAEAxuF,qBAAU,WACJuqF,GAA6C,SAA7B7+F,OAAOsM,SAASsT,UAClC4hF,IAAwB,KAEzB,CAAC3C,IAEJvqF,qBAAU,WACR,GAAgC,OAA5BwC,aAAaQ,YAAwBR,aAAaQ,WAE/C,CACDoH,IAAS5H,aAAauS,eACxBvS,aAAaK,QAAQ,gBAAiBuH,GAGpC9H,eAAeC,eACjB5W,SAASic,MAAT,UAAoBjc,SAASic,MAAM3W,MAAM,KAAK,GAA9C,cACEqR,eAAeC,eAKnB,MlS7JiB,WACrB,GAAGD,eAAeC,aAAc,CAC9B,IAAMS,EAAanV,KAAKC,MAAM0U,aAAaQ,YAC3C,MAAO,CACLG,KAAMH,EAAWV,eAAeC,cAAcY,KAC9CF,MAAOD,EAAWV,eAAeC,cAAcU,MAC/C1Q,OAAQyQ,EAAWV,eAAeC,cAAchQ,OAChD6Q,OAAQJ,EAAWV,eAAeC,cAAcksF,QAChDprF,SAAUL,EAAWV,eAAeC,cAAc+5D,WAItD,IAAK95D,aAAaC,WAChB,MAAO,GAGT,IAAMA,EAAa5U,KAAKC,MAAM0U,aAAaC,YAC3C,GAAIA,EAAWxV,OAAS,EAAG,CACzB,IACM2V,EADiBH,EAAWE,MAAK,SAAArL,GAAM,MAAe,aAAXA,MACTmL,EAAW,GAC7CO,EAAanV,KAAKC,MAAM0U,aAAaQ,YAC3C,MAAO,CACLG,KAAMH,EAAWJ,GAAeO,KAChCF,MAAOD,EAAWJ,GAAeK,MACjC1Q,OAAQyQ,EAAWJ,GAAerQ,OAClC6Q,OAAQJ,EAAWJ,GAAe6rF,QAClCprF,SAAUL,EAAWJ,GAAe05D,WAGxC,MAAO,QkSgI0BoyB,GAArBtrF,EAAR,EAAQA,OAAQC,EAAhB,EAAgBA,SAChB8oF,GAAgB/oF,GAChBipF,GAAkBhpF,GAEQ,IAAtB+xB,EAAWnoC,QACbg3E,IAGF0qB,KACAC,KACAC,KArGwB3qF,EAAS4qF,MAhDT5qF,EAAS4K,MADZ5K,EAAS0kE,MAoBL1kE,EAAS6qF,MAuIlCtF,IACA4B,IAGA3/F,OAAO2T,iBAAiB,UAAU,WAChC6rF,EAAqB,CACnB9vF,MAAO1P,OAAOsjG,WACd3zF,OAAQ3P,OAAOujG,sBAnCnB1vF,EAAM2F,QAAQ9H,KAAK,UAwCrB,IAAIpN,GAAQ,EAUZ,IAT0D,IAAtDtE,OAAOsM,SAASG,SAAS9I,QAAQ,gBACnCW,GAAQ,EAEqB,cAA7BtE,OAAOsM,SAASG,UACa,kBAA7BzM,OAAOsM,SAASG,WAEhBnI,GAAQ,IAGLA,EAAO,CACLtE,OAAO6E,UAAS7E,OAAO6E,QAAU,IAEtC,IADA,IAAI2+F,EAAU,CAAC,MAAO,QAAS,OAAQ,QAC9BliG,EAAI,EAAGA,EAAIkiG,EAAQjiG,OAAQD,IAClCuD,QAAQ2+F,EAAQliG,IAAM,gBAGzB,IAEHgT,qBAAU,WAGR,IAAK6rF,EAAqBhmF,QAAS,CACjC,IAAMi0D,EAAW9mC,aAAY,WAC3BziC,QAAQC,IAAI,+BAHd0T,EAAS0mF,QAKN,KACHiB,EAAqBhmF,QAAUi0D,EAGjC,OAAO,WACL,IAAMq1B,EAA8BtD,EAAqBhmF,QACzDqtB,cAAci8D,MAEf,CAACjrF,IAEJlE,qBAAU,WAER,GAAIo1B,EAAWnoC,OAAS,GAClBuV,aAAaQ,WAAY,CAC3B,IAAMosF,EAAYvhG,KAAKC,MAAM0U,aAAaQ,YACxCV,eAAeC,cACfY,KACImpB,EAAa8I,EAAW,GAAG1nC,KAAKiV,MACpC,SAAC+uD,GAAD,OAASA,EAAIv8D,KAAOi6F,EAAUj6F,MAEhCs1F,EAAmBn+D,MAGtB,CAAC8I,IAEJp1B,qBAAU,WAGJW,IACFqrF,GAAQv8F,OAAOiU,OAAO,GAAI/C,IACtBA,EAAgB2L,WAClB+iF,GAAe1uF,GAEjBw9D,IACAotB,EAAgB5qF,EAAgBxL,OAEjC,CAACwL,IAEJX,qBAAU,WACR,IAAIsvF,EACAC,EACAC,EA2CJ,OAJI7uF,GArCqB,SAAnB8uF,IAEAD,GACFj3F,aAAai3F,GAIXD,GACFA,EAAOr1F,QAELo1F,GACFp8D,cAAco8D,GAGhBC,EAAS,IAAI/1F,UAAJ,gBAAuB6I,KAAvB,OlSnUJ,kBkSmUI,oBAUTitF,EAAoBt8D,aARE,WACpBziC,QAAQC,IAAI,qBACZ,IAAM8G,EAAS+K,IACfktF,EAAOp8F,KACLtF,KAAKsuD,UAAU,CAAE1lD,KAAM,YAAai5F,QAAS/uF,EAAgBxL,GAAIw6F,OAAQr4F,OAI9B,KAG/C,IAAMs4F,EAAY,WAChBr/F,QAAQC,IAAI,8BACZg/F,EAAmBv8F,WAAWw8F,EAAkB,MAIlDF,EAAO11F,QAAU+1F,EACjBL,EAAOl9F,QAAUu9F,EAIjBH,GAGK,WACDF,GACFA,EAAOr1F,QAELo1F,GACFp8D,cAAco8D,GAEZE,GACFj3F,aAAai3F,MAGhB,CAAC7uF,IAEJX,qBAAU,WAEJoY,IAAajV,IAAQkL,EAAoBC,QAC3CuhF,GAAiBz3E,MAElB,CAACA,GAAWjV,GAAMkL,IAErBrO,qBAAU,WACJ6J,EAAUnc,KAAKT,OAAS,GAC1B0/F,IAAgB,KAEjB,CAAC9iF,IAEJ7J,qBAAU,WACR2rF,EAAoB9lF,QAAU2kF,IAC7B,CAACA,IAEJxqF,qBAAU,WACR4rF,EAAiB/lF,QAAU8/E,KAC1B,CAACA,KAGJ,IAAM9kF,GAAS,WA9PbqD,EAASsqE,KA+Pe7pE,MAAK,WAC3BmrF,SAIElB,GAAoB,WA9PxB1qF,EAAS6rF,MAgQNprF,MAAK,SAACC,GAAD,OAASqnF,GAAgBrnF,EAAIrS,OAAOA,WACzCsS,OAAM,SAACxU,GACNE,QAAQC,IAAIH,GACRA,EAAM3C,MAAQ2C,EAAM3C,KAAKsiG,YAC3BF,SAKFjB,GAAqB,WACzB1qF,IACG4I,IADH,kBACkB1K,KADlB,OlSnZO,kBkSmZP,wBAC8D,CAC1DmC,QAAS,CAAEE,cAAc,SAAD,OAAW5B,QAEpC6B,MAAK,SAACuJ,GACL,GAAIA,EAAKxgB,KAAM,CACb,IAAMuiG,EAAW5gF,IAAOnB,EAAKxgB,KAAKwiG,UAC5B74B,EAAahoD,IAAOnB,EAAKxgB,KAAKyiG,QAC9BC,EAAUH,EAAS9H,KAAK9wB,EAAY,WAC1Ck1B,GAAgBr+E,EAAKxgB,MACrB++F,IAAuB,GACvBx5F,YAAW,WACTs5F,QAAgB3gG,GAChB6gG,IAAuB,KACZ,IAAV2D,OAGNvrF,OAAM,SAACxU,GACFA,EAAM2c,UAAsC,MAA1B3c,EAAM2c,SAASza,SACnCg6F,QAAgB3gG,GAChB6gG,IAAuB,QAKzBqD,GAAa,WACjB,IAAIrqF,EAAgB5X,KAAKC,MAAM0U,aAAaC,YAAYxB,QACtD,SAAC3J,GAAD,OAAYA,IAAWgL,eAAeC,gBAEpC8tF,EAAmBxiG,KAAKC,MAAM0U,aAAaQ,mBACxCqtF,EAAiB/tF,eAAeC,cACvCC,aAAaK,QAAQ,aAAchV,KAAKsuD,UAAUk0C,IAClD7tF,aAAaK,QAAQ,aAAchV,KAAKsuD,UAAU12C,IAClDnD,eAAe+D,WAAW,aAEtBZ,EAAcxY,OAAS,GACzBqV,eAAeO,QAAQ,eAAgB4C,EAAc,IACrDnD,eAAeO,QACb,cACAwtF,EAAiB5qF,EAAc,IAAIxC,OAErC1D,EAAM2F,QAAQ9H,KAAK,QACnB1R,OAAOsM,SAASsO,WAEhBhE,eAAe+D,WAAW,gBAC1B/D,eAAe+D,WAAW,eAC1B9G,EAAM2F,QAAQ9H,KAAK,UAjTE8G,EAASsqE,KAmT9B9iF,OAAOsM,SAASsO,WAIdqoF,GAAiB,WACrB,GAAIrsF,eAAe8V,UAAW,CAC5B,IAAMk4E,EAAmBhuF,eAAe8V,UACxCy1E,GAAayC,QAEbnsF,IACG4I,IADH,kBACkB1K,KADlB,OlS5cK,kBkS4cL,uBAC6D,CACzDmC,QAAS,CAAEE,cAAc,SAAD,OAAWpC,eAAeS,gBAEnD4B,MAAK,SAACC,GACLrU,QAAQC,IAAIoU,GACZ,IAAM2rF,EAAe3rF,EAAIlX,KAAK8iG,WAC9BluF,eAAeO,QAAQ,YAAa0tF,GACpC1C,GAAa0C,OAMfV,GAAmB,SAACz3E,GAGpB0zE,GACFA,EAAiB9xF,aAGnB,IAAM7L,EAAa,IAAItC,WAAW,CAChCkL,KAAK,GAAD,OAAKsL,KAAL,OlSleC,mBkSmeLxL,KAAM,GACND,QAAQ,EACRiH,MAAO,YACPL,sCAAuC,MAGzCrP,EAAW4L,UAAY02F,GACvBtiG,EAAWkE,QAAU,WACnBy7F,IAA0B,IAE5B3/F,EAAW6P,eAAiB,WAlBT,IAmBb7P,EAAWsE,aACbg3F,IACAqE,IAA0B,KAG9B3/F,EAAWgQ,WAAX,UAAyBia,IACzBjqB,EAAWuL,UACXqyF,EAAc59F,IAGVsiG,GAAkB,SAACjhG,GAEvBe,QAAQC,IAAIhB,GACZ,IA7YsBurD,EAAS/pB,EAvCP0gC,EA4BJz7C,EAwZdxf,EAAOjH,EAAIiH,KACX7B,EAAOpF,EAAIoF,KACX87F,IAAkBlhG,EAAIid,QACxBjd,EAAIid,SAAW9L,EAAgBxL,GAWnC,OATa,eAATsB,GAAkC,YAATA,GAA+B,WAATA,GAC7C7B,IACFg5F,GAA8Bh5F,GAC9B3B,YAAW,WACT26F,GAA8B,MAC7B,MAICn3F,GACN,IAAK,aACC7B,IACFg5F,GAA8Bh5F,GAC9B3B,YAAW,WACT26F,GAA8B,IAC9B/sF,OACC,MAEL,MAEF,IAAK,UAGCrR,EAAI8yE,UAAY3hE,EAAgBxL,KAClCy4F,GAA8Bh5F,GAC9B3B,YAAW,WACT26F,GAA8B,IAC9BliG,OAAOsM,SAASsO,WACf,MAEL,MAEF,IAAK,QACgB,SAAf9W,EAAIoD,QAAqB89F,GA9bbz6E,EA+bDzmB,EAAIymB,MA/bO/R,EAASwiE,GAA2BzwD,KAgcpC,WAAfzmB,EAAIoD,QAAuB89F,GA/b3B,SAACz6E,GAAU/R,EAASwiE,GAAuBzwD,IAgcpDwvD,CAASj2E,EAAIymB,OAEf,MAEF,IAAK,SAEH06E,GAAqBnhG,GACrB,MAEF,IAAK,YACgB,SAAfA,EAAIoD,QAAqB89F,GAveTh/B,EAweDliE,EAAIwf,UAve3B9K,EAASmgE,GAAmC3S,KAwed,WAAfliE,EAAIoD,QAAuB89F,EA1evB,SAACh/B,GAAQxtD,EAASmgE,GAA+B3S,IA2e9DD,CAAajiE,EAAIwf,WACO,WAAfxf,EAAIoD,QACbqxE,IAEF,MAEF,IAAK,SAAW,IAAD,EACP2sB,EAC8B,IAAlCjwF,EAAgBK,OAAO/T,QACvB0T,EAAgBK,OAAOG,SAAvB,UAAgC3R,EAAIqY,cAApC,aAAgC,EAAYijB,UACxC+lE,IAAmBviE,EAAQzgB,MAE7Bre,EAAIoF,MAAQg8F,IACdhD,GAA8Bh5F,GAC9B3B,YAAW,WACT26F,GAA8B,MAC7B,MAIY,SAAfp+F,EAAIoD,QACJ89F,GACAE,GACAC,EAEA5F,EAAcz7F,EAAIqY,SAEH,WAAfrY,EAAIoD,QACJ89F,GACAE,GACAC,GAGwB,WAAfrhG,EAAIoD,SADby7B,IAIF,MAEF,IAAK,SACHg9D,IACAE,EAAgB5qF,EAAgBxL,IAChC,MAEF,IAAK,UACgB,SAAf3F,EAAIoD,QAAqB89F,GA/eX31C,EAgfDvrD,EAAIurD,QAhfM/pB,EAgfGxhC,EAAIwhC,SA/etC9sB,EAASi7C,GAA+BpE,EAAS/pB,KAgfnB,WAAfxhC,EAAIoD,QAAuB89F,EAnfvB,SAAC31C,EAAS/pB,GAC7B9sB,EAASi7C,GAA6BpE,EAAS/pB,IAmfzC6tB,CAAarvD,EAAIurD,QAASvrD,EAAIwhC,UACN,WAAfxhC,EAAIoD,OAvfA,SAACo+B,EAAU7jB,GAC9BjJ,EAASi7C,GAA6BnuB,EAAU7jB,IAuf1C6xC,CAAaxvD,EAAIwhC,UACO,YAAfxhC,EAAIoD,QAnfE,SAACmoD,EAAS/pB,GAC/B9sB,EAASi7C,GAA+BpE,EAAS/pB,IAmf3C+tB,CAAevvD,EAAIurD,QAASvrD,EAAIwhC,UAElC,MAEF,IAAK,UACH69D,KACA,MAEF,IAAK,YACC6B,GAAqD,IAAlC/vF,EAAgBK,OAAO/T,QAC5CkxE,IAEF,MAEF,IAAK,cACgB,SAAf3uE,EAAIoD,QAAqB89F,EAhgBR,SAAC3zC,EAAa/rB,GACvC9sB,EAASukD,GAAuC1L,EAAa/rB,IAggBvDo2B,CAAmB53D,EAAIutD,YAAavtD,EAAIwhC,UAChB,WAAfxhC,EAAIoD,QAAuB89F,EAhgBnB,SAAC3zC,EAAa/rB,GACrC9sB,EAASukD,GAAqC1L,EAAa/rB,IAggBrDm2B,CAAiB33D,EAAIutD,YAAavtD,EAAIwhC,UACd,WAAfxhC,EAAIoD,QAhgBM,SAAC00D,EAAet2B,GACzC9sB,EAASukD,GAAuCnB,EAAet2B,IAggBzDq2B,CAAmB73D,EAAI83D,iBASzBqpC,GAAuB,SAACnhG,GAC5Be,QAAQC,IAAIhB,GACZ,IAxjBuBid,EAAQE,EAwjBzBikF,EACmB,IAAvBztF,GAAKnC,OAAO/T,QAAgBkW,GAAKnC,OAAOG,SAAS3R,EAAIqY,OAAOijB,UACxDgmE,EAAoBnF,EAAoB9lF,QAAQq1B,WACpD,SAACxiB,GAAD,OAAQA,EAAGnL,OAAOpY,KAAO3F,EAAI+d,OAAOpY,MAEhC47F,EAAiBnF,EAAiB/lF,QAAQq1B,WAC9C,SAACxiB,GAAD,OAAQA,EAAGnL,OAAOpY,KAAO3F,EAAI+d,OAAOpY,MAEhCya,EAAgBvB,EAAoBC,OAAOuB,gBAC3CmhF,EAAqB3iF,EAAoBC,OAAO6lE,sBAEtD,OAAQ3kF,EAAI+C,QACV,IAAK,OACH,IAAM0+F,GACuD,IAA3DvlG,OAAOsM,SAASsT,SAASjc,QAAQ,qBASnC,GARIuhG,GACF/F,EAAmBr7F,EAAI+d,QAGrBK,GAAWne,OAAOwF,KAAK2Y,GAAS3gB,OAAS,GAC3C09F,IAGE/6E,EAAe,CACjB,IAAMI,EAAaxgB,EAAI+d,OAAO0C,QAC1BC,SAAS1gB,EAAI+d,OAAO0C,SAAW,EAC/B,EACEihF,EAAc1hG,EAAI+d,OAAO4C,aAW/B,GATkB,QAAhB+gF,GACAlhF,EAAa,GACbihF,GACAD,GACAJ,GAEAO,GAAmB,EAAG,KAIL,QAAhBD,GAAwC,IAAflhF,GACV,QAAhBkhF,EACA,CACA,GAAIN,EAAoB,CACtB,IAAMQ,EAAgB,sBACjBxF,EAAiB/lF,QAAQ5E,QAC1B,SAAClT,GAAD,OAAOA,EAAEwf,OAAOpY,KAAO3F,EAAI+d,OAAOpY,OAFhB,CAIpB3F,IAEFi+F,GAAiB2D,GACjBtE,IAAmB,GACnBS,GAAe0D,EAAe,QAAU,QAE1C,IAAMI,EAAc7G,EAAiBtvD,WACnC,SAACxiB,GAAD,OAAQA,EAAGnL,OAAOpY,KAAO3F,EAAI+d,OAAOpY,MAEtC8wF,EAAiBoL,QAEjBzF,EAAiB/lF,QAAQ65B,OACvB,SAAChnB,GAAD,OAAQA,EAAGnL,OAAOpY,KAAO3F,EAAI+d,OAAOpY,OAEtCy7F,GAEA5F,EAAcx7F,QAYhB,IARGA,EAAI+2F,WAAW/6E,MAAK,SAACkN,GAAD,OAAmC,IAA3BA,EAAGk0C,WAAWtR,aAC3C21C,GACAD,GACAJ,IAEArgG,QAAQC,IAAI,wBACZ2gG,GAAmB,EAAG,MAEpB3hG,EAAI+2F,WAAW/6E,MAAK,SAACkN,GAAD,OAAmC,IAA3BA,EAAGk0C,WAAWtR,YAAiB,CAC7D,GAAIs1C,EAAoB,CACtB,IAAMQ,EAAgB,sBACjBxF,EAAiB/lF,QAAQ5E,QAC1B,SAAClT,GAAD,OAAOA,EAAEwf,OAAOpY,KAAO3F,EAAI+d,OAAOpY,OAFhB,CAIpB3F,IAEFi+F,GAAiB2D,GACjBtE,IAAmB,GACnBS,GAAe0D,EAAe,QAAU,QAE1C,IAAMI,EAAc7G,EAAiBtvD,WACnC,SAACxiB,GAAD,OAAQA,EAAGnL,OAAOpY,KAAO3F,EAAI+d,OAAOpY,MAEtC8wF,EAAiBoL,QAEjBzF,EAAiB/lF,QAAQ65B,OACvB,SAAChnB,GAAD,OAAQA,EAAGnL,OAAOpY,KAAO3F,EAAI+d,OAAOpY,OAEtCy7F,GAEA5F,EAAcx7F,GAGlB,MAEF,IAAK,cACCohG,IACF9F,EAAsBt7F,EAAI+d,QAC1BggF,GAAe,SAEb3/E,GAAWne,OAAOwF,KAAK2Y,GAAS3gB,OAAS,GAC3CqgB,EAAc9d,EAAI+d,QAEhB/d,EAAI+d,OAAOyB,YAAcrO,EAAgBxL,KAtqB1BsX,EAuqBDjd,EAAI+d,OAAOyB,UAvqBFrC,EAuqBand,EAAI+d,OAAOpY,GAtqBvD+O,EAAS4K,GAA8BrC,EAAQE,MAwqBhB,IAAvBmkF,GACF7K,EAAiB6K,IAEK,IAApBC,GACFO,GAAoBP,GAEtB,MAEF,IAAK,QACCH,GACF7F,EAAqBv7F,EAAI+d,QAGvB/d,EAAI+d,OAAOyB,YAAcrO,EAAgBxL,IAprBxB,SAACsX,GAC1BvI,EAAS4K,GAAiCrC,IAorBpCD,CAAmBhd,EAAI+d,OAAOyB,WAGhCuiF,GAAgB/hG,EAAI+d,OAAOpY,IACvByY,GAAWne,OAAOwF,KAAK2Y,GAAS3gB,OAAS,GAC3CqgB,EAAc9d,EAAI+d,UAUpB4jF,GAAqB,SAArBA,IAIA,IAHJK,EAGG,uDAHa,EAChBC,EAEG,uDAFK,IACRC,IACG,yDACCA,GACFjG,EAAkBxG,OAEpBhyF,YAAW,WACJy+F,GACHjG,EAAkBxG,SAEpBuM,EACoB,GAClBL,EAAmBK,EAAeC,GAAO,KAE1CA,IAICF,GAAkB,SAAC5kF,GACvB,GAAIA,EAAU,CACZ,IAAMglF,EAAoBhG,EAAoB9lF,QAAQq1B,WACpD,SAACxiB,GAAD,OAAQA,EAAGnL,OAAOpY,KAAOwX,KAErBilF,EAAiBhG,EAAiB/lF,QAAQq1B,WAC9C,SAACxiB,GAAD,OAAQA,EAAGnL,OAAOpY,KAAOwX,MAGA,IAAvBglF,GACF1L,EAAiB0L,IAGK,IAApBC,GACFN,GAAoBM,GAGxBlE,GAAc,KAGV4D,GAAsB,SAACt4E,GAC3B,IAAMo4E,EAAgB,sBACjBxF,EAAiB/lF,QAAQnV,MAAM,EAAGsoB,IADjB,YAEjB4yE,EAAiB/lF,QAAQnV,MAAMsoB,EAAQ,KAEZ,IAA5Bo4E,EAAiBnkG,QACnBsgG,GAAe,QAEjBE,GAAiB2D,IAIb/B,GAAiB,SAAClsF,GACtB,IAAI0uF,EAAG,oBAAgB1uF,EAAKhO,GAArB,YAA2BgO,EAAKmJ,UAAUqlD,aAA1C,YAA0DrvD,eAAeC,cAC5E8hF,EAAQ,GACRyN,EAAO,GACPC,EAAO,GACPpuF,EAAW,IAC2C,IAAtDjY,OAAOsM,SAASG,SAAS9I,QAAQ,iBAOnCyiG,EAAO,SACPC,EAAI,qBAFJ1N,EAAQ,+BAGR1gF,EAAW,+BAEkB,cAA7BjY,OAAOsM,SAASG,UACa,kBAA7BzM,OAAOsM,SAASG,UAOhB25F,EAAO,SACPC,EAAI,qBAJJ1N,EAAQ,+BASR1gF,EAAW,gCAGX0gF,EAAQ,8BACRyN,EAAI,UAAM3uF,EAAKmJ,UAAUqlD,cACzBogC,EAAI,cAAU5uF,EAAKmJ,UAAUqlD,aAAzB,YAAyC0yB,GAC7C1gF,EAAWkuF,GAEb,IAAM3wB,EAAQ,IAAI8wB,MAAMC,MAAM,CAC5BH,KAAMA,EACNC,KAAMA,EACNpuF,SAAUA,EACV0gF,MAAM,WAAD,OAAaA,GAClB6N,aAAc,WACdC,oBAAoB,SAAD,OAAW9N,EAAX,YACnB+N,mBAAmB,SAAD,OAAW/N,EAAX,SAClBgO,YAAa,CAAC,CAAEjjG,IAAK,cACrBkjG,uBAAuB,EACvBC,gBAAiB,CAAEh7B,OAAQ,IAAKi7B,SAAUC,IAC1CC,YAAa,CACX,CAAEt8E,KAAM,aAAclqB,MAAO,oCAC7B,CAAEkqB,KAAM,eAAgBlqB,MAAO,kBAGnCg1E,EAAMnD,QACNiwB,GAAY9sB,IAGRuxB,GAAgB,SAAC1kG,GAKrB,GAJAwC,QAAQC,IAAI,iBAAkBzC,GAE9BwgG,GAAiBxgG,GACjBkgG,GAAgBlgG,EAAE0I,MACH,YAAX1I,EAAE0I,MAAsBs3F,GAC1B,IAC6BA,GAAS4E,WAAW,WAAY,CACzDvC,QAAS,IACTmC,gBAAiB,CAAEh7B,OAAQ,IAAKi7B,SAAUI,IAC1CC,SAAU,CACR,CAAEz8E,KAAM,gBAAiBlqB,MAAO,MAChC,CAAEkqB,KAAM,SAAUlqB,MAAO,MACzB,CAAEkqB,KAAM,WAAYlqB,MAAO,cAGZ0P,WACnB,MAAO7N,GACPwC,QAAQF,MAAMtC,OAEI,eAAXA,EAAE0I,KACXlG,QAAQC,IAAI,aACQ,oBAAXzC,EAAE0I,MAIS,YAAX1I,EAAE0I,OAHXxD,YAAW,WACTo8F,GAAe1uF,KACd,MAQDiyF,GAAmB,SAAC7kG,GAKxB,OAJAwC,QAAQC,IAAI,qBAAsBzC,GAElCugG,GAAoBvgG,GACpBmgG,GAAkBngG,EAAE0I,MACZ1I,EAAE0I,MACR,IAAK,aACHlG,QAAQC,IAAI,cACZ,MAEF,IAAK,YACHD,QAAQC,IAAI,aACZ,MAEF,IAAK,cACH,MAEF,IAAK,aACHD,QAAQC,IAAI,mBACZg+F,QAAmB5iG,GACnB,MAEF,IAAK,kBACHqH,YAAW,WACTo8F,GAAe1uF,KACd,OAQHmyF,GAAc,SAACx7D,GACnB,IAAMy7D,EAAahF,GAAS4E,WAAW,aAAc,CACnDK,aAAcrnG,SAASiF,eAAe,aACtC2hG,gBAAiB,CAAEh7B,OAAQ,IAAKi7B,SAAUS,MAE5C5E,GAAW0E,GACXA,EAAWnjG,KAAK0nC,IAGZ27D,GAAoB,SAACllG,GACzBwC,QAAQC,IAAI,uBAAwBzC,GAEpCygG,GAAmBzgG,IACnB,OAAIA,QAAJ,IAAIA,OAAJ,EAAIA,EAAG0I,QACL03F,GAAgBpgG,EAAE0I,MACH,cAAX1I,EAAE0I,MACJ63F,QAAoB1iG,KAKpBsnG,GAAQ,SAACC,GACb,OAAO,IAAI/uF,SAAQ,SAACC,GAAD,OAAapR,WAAWoR,EAAS8uF,OAGhD3/D,GAAgB,uCAAG,gCAAAzY,EAAA,sDACvB,GAAIqzE,GAEF,UADqB,CAAC,EAAG,EAAG,EAAG,EAAG,KAClC,eAAWgF,EAAsB,KAC/BhF,GAAQgF,KAAKA,QAGf7iG,QAAQC,IAAI,mCAPS,2CAAH,qDAWhBiY,GAAS,uCAAG,sBAAAsS,EAAA,0DACZqzE,GADY,uBAEdA,GAAQgF,KAAK,GAFC,SAGRF,GAAM,KAHE,OAId9E,GAAQiF,OAAO,CACbd,gBAAiB,CAAEh7B,OAAQ,IAAKi7B,SAAUI,MAE5CvE,QAAWziG,GACXuiG,QAAgBviG,GARF,uBAUd2E,QAAQC,IAAI,6BACZ29F,QAAgBviG,GAXF,4CAAH,qDA+CTijB,GAAgB,SAACpY,GACR,eAATA,GACF68F,IAAc,GAEhB/F,GAAe,SAGX+F,GAAgB,SAACllF,GACrBm/E,GAAen/E,EAAS,OAAS,KAsBnC,IAAK5L,aAAaQ,YAA0C,OAA5BR,aAAaQ,WAC3C,OAAO,6BAGT,IAAMQ,GACJlB,eAAeC,cACf1U,KAAKC,MAAM0U,aAAaQ,YAAYV,eAAeC,cAAcgxF,SAC7DC,GAAgBlxF,eAAekxF,cAErC,OACE,cAAC,IAAD,CAAcjuE,OAAQnb,EAAMjN,SAAUA,GAASiN,GAA/C,SACE,sBAAK3K,UAAU,iBAAf,WACI+zF,IAAiBrwF,IAA+B,IAAvBA,GAAKnC,OAAO/T,QACrC,cAAC,GAAD,CACEq2F,SAAUA,GACV9/E,QAASA,GACT+gF,iBAAkB,kBAAM+I,IAAkBhK,OAG7CkJ,IAAuBF,IACtB,cAACmH,GAAD,CACE96F,QAAS2zF,GAAa,WAAD,OAAYliF,IACjCzK,QAAS,kBAAM8sF,IAAwBD,OAG1CS,IACC,cAAC,GAAD,CACEr4F,KAAK,2FACLu4C,QAAQ,SACRF,UAAW,kBAAMigD,IAAwB,MAI7C,qBACEztF,UAAS,mCACPkuF,GAA6B,mCAAqC,IAFtE,SAKGA,KAEFv1E,IAAajV,IACZ,cAAC,GAAD,CACEwiF,cAAeA,GACf92E,cAAeA,GACfpC,OAAQtJ,GAAKhO,GACb8Y,WArgCS,SAACV,EAAQ1Z,GAAT,OACjBqQ,EAASsK,GAA0BjB,KAqgC3BjC,SAAU/L,EAAMvH,SAASsT,SACzBqD,YAAa2kF,GACbzN,UAAWA,EACX3gF,QAAS3F,EAAM2F,QACf0gF,gBAAiBA,GACjBI,kBAAmB,kBAAM8G,IAAoBlH,KAC7CjlF,gBAAiBwC,KAGpBupF,IACC,qBACEv3F,GAAG,2BACHsK,UAAS,+BACNmtF,IAAyB,kBAH9B,SAME,cAAC,GAAD,CACE9D,cAAe8D,GACfjF,sBAAuB,WAChBiF,IACHp0B,EAAcysB,OAEhB4H,IAAyB,IAE3B7D,wBAAyB,kBACvB6D,IAA0BD,KAE5BxD,iBAAkB,kBAAMjpB,IAAoB,IAC5CgpB,oBAAqBA,GACrB/wE,UAAWA,GACXiwE,mBAAoB,kBAAMsE,IAAiBD,KAC3CjrF,aAAcA,GACd4xB,UAAWy/D,GACXt/D,iBAAkBA,GAClB/qB,UAAWA,OAIhBy3D,IACC,cAAC,GAAD,CACEvzD,SAAU6gF,GACV7vB,eAzGqB,SAACvP,GAC9B,IAAM1gE,EAAO0gE,EACb1gE,EAAK6E,OAAS,OACd7E,EAAK6f,OAASigF,GACd9/F,EAAKo0E,eAAiBnhE,EAAgBxL,GAx6BjB,SAACi5D,GAAD,OACrBlqD,EAAS2jF,GAAgCz5B,IAw6BzCuP,CAAejwE,GAAMiX,MAAK,WACxBw7D,IAAoB,GACfzyE,EAAKgwE,eACRvlD,GAAUhU,IAAOiU,GAAW,CAC1B3hB,KAAM,YACNkpC,OAAQ,YACRupD,iBAAkBvoF,EAAgBxL,GAClCsX,OAAQ9L,EAAgBxL,SA8FtB23B,WAAY,kBAAMqzC,IAAqBA,OAG1C4sB,IACC,cAACzvB,GAAD,CACE3kE,QACE,cAAC,IAAD,CACExD,GAAG,uBACHmM,eAAe,wFAGnBoG,aAAc,kBAAMslF,IAAuB,IAC3CrlF,OAAQ,WACNqlF,IAAuB,GACvBztF,EAAM2F,QAAQ9H,KAAK,oBAIxB+F,IACC,cAAC,GAAD,CACEvC,cAAa,UAAKuC,GAAKuoB,WAAV,YAAwBvoB,GAAKwoB,WAC1CvhB,KAAMA,EACNvJ,OAAQA,GACRtO,OAAQw8B,GACRzkB,UA/hCQ,SAACib,GAAD,OAAYrhB,EAASwvF,GAAwBnuE,KAgiCrD9jB,aAAcA,GACdD,eAAgBA,GAChB+I,uBAAwBA,GACxBjB,UAAkC,IAAvBnG,GAAKnC,OAAO/T,OACvB8b,QAA4B,IAAnB5F,GAAKnC,OAAO,GACrBgI,QAA4B,IAAnB7F,GAAKnC,OAAO,GACrBwI,WAAY,WACV6jF,IAAa/J,IACbgK,IAAkB,IAEpB3jF,eAAgBA,GAChBG,eAAgB,kBACd+iF,IAA0BD,KAE5B9rF,iBAAkB,kBAChB2rF,IAAwBD,KAE1B3iF,UAAWA,EACXf,SAAU,kBAAMkkF,IAAuB,IACvC9nF,QAAS3F,EAAM2F,QACfwD,YAAaA,GACbE,kBAAmB,kBAAM2kF,GAAe,SACxCnkF,eAAgBA,GAChBC,YAAaA,GACbd,gBAAiBA,GACjBE,UAAWA,KAGdtF,IACC,cAAC,GAAD,CACEiI,SAAU+hF,GACVh4F,GAAIgO,GAAKhO,GACTkW,cAAe,kBAAM+hF,IAAoBD,KACzC5hF,aACqB,IAAnBpI,GAAKnC,OAAO,IACO,IAAnBmC,GAAKnC,OAAO,IACO,IAAnBmC,GAAKnC,OAAO,GAEdyK,cAAetI,GAAKnC,OAAO/T,OAAS,EACpCu9B,UAA8B,IAAnBrnB,GAAKnC,OAAO,GACvB+H,QAA4B,IAAnB5F,GAAKnC,OAAO,GACrBgI,QAA4B,IAAnB7F,GAAKnC,OAAO,KAGxBoX,IAAajV,IACZ,cAAC,GAAD,CACEqgF,IAAKjkF,EAAM0yD,SACX75C,UAAWA,GACXqrE,YAAa8J,GACbjf,UAAWijB,GACXpuF,KAAMA,GACN1B,aAAcA,GACd6xD,aAAcA,GACdgwB,SAAUA,GACVhoB,UAAWw3B,GACXrqF,UAAWA,GACXirB,WAvOS,WACb06D,GACFA,GAAQgF,KAAK,GAEb7iG,QAAQC,IAAI,6BAoONme,YAAa2kF,GACbzkF,cAAeA,GACfmjB,UAlOQ,WACZo8D,GACFA,GAAQgF,KAAK,GAEb7iG,QAAQC,IAAI,2BA+NN0hC,UAnNQ,WACZk8D,GACFA,GAAQgF,KAAK,GAEb7iG,QAAQC,IAAI,iCAgNNqmC,SA5NO,SAAC88D,GACZvF,GACFA,GAAQgF,KAAKO,GAEbpjG,QAAQC,IAAI,gCAyNN+jF,YAAa,kBAAMue,GAAY,aAC/Bz/D,UAAWy/D,GACXt/D,iBAAkBA,GAClBjhC,OAAQw8B,GACR3rB,OAAQ8oF,GACR7oF,SAAU+oF,GACVrjF,QAA4B,IAAnB5F,GAAKnC,OAAO,GACrBgI,QAA4B,IAAnB7F,GAAKnC,OAAO,KAGxBoX,IAAajV,IAAqC,SAA7BzX,OAAOsM,SAASsT,UACpC,cAAC,GAAD,CAAmB8M,UAAWA,KAEhC,cAAC,GAAD,CAAuBzQ,OAAQe,SAlLwB0B,IGpkChD,OAA0B,gDCgD1BwpF,I,OA5CG,SAACr0F,GAAD,OAChB,uBAAMpK,GAAG,yCAAyCsK,UAAWF,EAAMs0F,eAAnE,UACE,qBACEp0F,UAAU,uBACV5E,IAAK0E,EAAMu0F,KACX9nF,IAAI,mBAEN,qBAAK7W,GAAG,oBAAoBsK,UAAU,oBAAtC,SACGF,EAAMw0F,WAET,uBACE5+F,GAAG,0BACHsK,UAAWF,EAAMy0F,iBACjBv9F,KAAK,OACLvK,MAAOqT,EAAMjI,OACb8e,KAAK,SACL0pB,YAAavgC,EAAM00F,WACnBhnE,SAAU1tB,EAAM20F,oBAElB,uBACE/+F,GAAG,wBACHsK,UAAWF,EAAM40F,eACjB19F,KAAK,OACLvK,MAAOqT,EAAM6jE,SACbhtD,KAAK,WACL0pB,YAAavgC,EAAM60F,aACnBnnE,SAAU1tB,EAAM20F,oBAElB,uBACE/+F,GAAG,wBACHsK,UAAWF,EAAM80F,eACjB59F,KAAK,WACLvK,MAAOqT,EAAMoE,SACbyS,KAAK,WACL,UAAQ,IACR0pB,YAAavgC,EAAM+0F,aACnBrnE,SAAU1tB,EAAM20F,oBAElB,wBAAQv0F,QAASJ,EAAMg1F,aAAc90F,UAAU,gDAA/C,SACE,cAAC,IAAD,CAAkBtK,GAAG,mBAAmBmM,eAAe,kBC1C9C,IACb8R,GAAI,CACF,mBAAoB,+BACpB,uBAAwB,mCACxB,qBAAsB,iCACtB,4BAA6B,uBAC7B,sBAAuB,6CACvB,6BAA8B,6BAC9B,wBAAyB,iDACzB,2BAA4B,4DAC5B,yBAA0B,mBAC1B,yBAA0B,oDAC1B,0BAA2B,+FAC3B,mBAAoB,QACpB,kCAAmC,qBACnC,+BAAgC,OAChC,mBAAoB,QACpB,4BAA6B,qBAC7B,oCAAqC,4FACrC,sBAAuB,WACvB,oBAAqB,aACrB,+BAAgC,iBAElCC,GAAI,CACF,mBAAoB,iCACpB,uBAAwB,qCACxB,qBAAsB,0CACtB,4BAA6B,yBAC7B,sBAAuB,sEACvB,6BAA8B,iCAC9B,wBAAyB,oDACzB,2BAA4B,mEAC5B,yBAA0B,kBAC1B,yBAA0B,+DAC1B,0BAA2B,2FAC3B,mBAAoB,SACpB,kCAAmC,sBACnC,+BAAgC,SAChC,mBAAoB,QACpB,4BAA6B,sBAC7B,oCAAqC,yGACrC,sBAAuB,aACvB,oBAAqB,aACrB,+BAAgC,sBCtC9BmhF,GAAoB,SAACj1F,GACzB,IAAQ6K,EAAS7K,EAAT6K,KACR,EAA4BvK,mBAAS,IAArC,mBAAOvI,EAAP,KAAem9F,EAAf,KACA,EAA0B50F,mBAAS,IAAnC,mBAAO44B,EAAP,KAAci8D,EAAd,KACA,EAAgC70F,mBAAS,IAAzC,mBAAOujE,EAAP,KAAiBuxB,EAAjB,KAEA30F,qBAAU,WACJ1I,GACFm9F,EAAUn9F,KAEX,CAACiI,EAAMjI,SAEV,IAqBMs9F,EAAoB,WACxBr1F,EAAMq1F,kBAAkBt9F,EAAQmhC,EAAO2qC,IAGzC,OAAI7jE,EAAMs1F,kBACD,6BAIP,uBACE1/F,GAAG,oCACHsK,UAAU,oCACVq1F,SAAUF,EAHZ,UAKE,qBACEn1F,UAAU,uBACV5E,IAAK0E,EAAMu0F,KACX9nF,IAAI,mBAEN,qBAAKvM,UAAU,iCAAf,SACE,cAAC,IAAD,CAAkBtK,GAAG,kCAAkCmM,eAAe,0BAEvE/B,EAAMw1F,iBACL,qBAAKt1F,UAAU,oBAAf,SACE,cAAC,IAAD,CAAkBtK,GAAG,+BAA+BmM,eAAe,wBAG3C,YAA3B/B,EAAMy1F,kBACL,qBAAKv1F,UAAU,sBAAf,SACE,cAAC,IAAD,CACEtK,GAAG,0BACHmM,eAAe,+FAIrB,uBACE7B,UAAU,4CACVhJ,KAAK,OACLw2B,SA7Ce,SAAC0M,GACA,KAAhBA,EAAGgL,UACLplC,EAAMq1F,kBAAkBt9F,EAAQmhC,EAAO2qC,GAEzCqxB,EAAU96D,EAAG5zB,OAAO7Z,QA0ChB4zC,YAAam1D,GAAc7qF,GAAM,qBACjCgM,KAAK,SACLlqB,MAAOoL,IAET,uBACEmI,UAAS,2BAAsBF,EAAMw1F,iBAAmB,0BAA/C,YAA4Ex1F,EAAM21F,mBAAqB,4BAChHz+F,KAAK,QACLw2B,SAnEc,SAAC0M,GACC,KAAhBA,EAAGgL,UACLplC,EAAMq1F,kBAAkBt9F,EAAQmhC,EAAO2qC,GAEzCsxB,EAAS/6D,EAAG5zB,OAAO7Z,QAgEf4zC,YAAY,SACZ5zC,MAAOusC,IAERl5B,EAAM21F,mBACL,qCACE,uBACEz1F,UAAU,mBACVhJ,KAAK,OACLw2B,SArEa,SAAC0M,GACF,KAAhBA,EAAGgL,UACLplC,EAAMq1F,kBAAkBt9F,EAAQmhC,EAAO2qC,GAEzCuxB,EAAYh7D,EAAG5zB,OAAO7Z,QAkEd4zC,YAAam1D,GAAc7qF,GAAM,uBACjCgM,KAAK,WACLlqB,MAAOk3E,IAET,cAAC,IAAD,CACEjuE,GAAG,oCACHmM,eAAe,8GAIrB,wBAAQ7K,KAAK,SAASgJ,UAAU,gDAAgD6H,UAAWmxB,EAAO94B,QAAS,kBAAMi1F,KAAjH,SACE,cAAC,IAAD,CAAkBz/F,GAAG,+BAA+BmM,eAAe,iBAM3EkzF,GAAkB/zF,aAAe,CAC/BnJ,OAAQ,IAWKk9F,U,OCoNA96F,0BAhBf,SAAyB6E,EAAOmC,GAC9B,MAAO,CACL00B,WAAY72B,EAAM62B,WAClBhrB,KAAM7L,EAAMgnB,OAAOnb,KACnB+qF,KAAM52F,EAAM42F,SAIhB,SAA4BjxF,GAC1B,MAAO,CACLkxF,cAAe,SAAChyB,EAAUz/D,EAAUwgF,GAArB,OACbjgF,ExSxQC,SAAuBk/D,EAAUz/D,GAA8B,IAC9DrM,EAAS+K,IAEf,OAAO,SAAC6B,EAAU3F,EAAX,OAAoB4F,EAApB,EAAoBA,MAApB,OAAgC,IAAIC,SAAQ,SAACC,EAASC,GAC3DJ,EAASH,KACT,IAAMoxF,EAAOE,KAAK,GAAD,OAAIjyB,EAAJ,YAAgBz/D,IACjC,OAAOQ,EAAM,CACXvR,OAAQ,OACR2R,aAAc,OACdnV,IAAI,WAAD,OAAakI,GAAb,ODrEE,kBCqEF,eACH5J,KAAM,CACJ4nG,kBAAmBlyB,EACnBz/D,YAEFa,QAAS,CACPC,OAAQ,mBACR,eAAgB,mBAChBC,cAAc,SAAD,OAAWywF,MAG3BxwF,MAAK,SAAAC,GAAG,OAAIP,EAAQH,EAAShB,EAC5B0B,EAAIlX,KAAKuV,MAAO2B,EAAIlX,KAAKyV,KAAMyB,EAAIlX,KAAK6E,OAAQqS,EAAIlX,KAAK+gG,QAAS7pF,EAAIlX,KAAK4uE,UAAW13D,EAAIlX,KAAK6nG,cAAe3wF,EAAIlX,KAAK8nG,YAAa5wF,EAAIlX,KAAK6lG,eAC9I1uF,OAAM,SAACxU,GACN,OAAIA,GAAmC,qBAAnBA,EAAM2c,UAAsD,MAA1B3c,EAAM2c,SAASza,OAC5D+R,EAAOjU,EAAM2c,UACX3c,GAAmC,qBAAnBA,EAAM2c,UAA4B3c,EAAM2c,SAASza,QAAU,IAC7E+R,EAAOJ,EAASN,EAAqB,IAAK,sDAE5CU,EAAOJ,EAASN,EAAqB,mBAAoB,uDwS4OvD4qE,CAA0BpL,EAAUz/D,KAC/C2G,UAAW,SAAAib,GAAM,OAAIrhB,EAASwvF,GAAwBnuE,QAI3C7rB,EA7TG,SAAC6F,GACjB,IAAQ6K,EAAS7K,EAAT6K,KACR,EAAgCvK,mBAAS,IAAzC,mBAAOujE,EAAP,KAAiBuxB,EAAjB,KACA,EAAgC90F,mBAAS,IAAzC,mBAAO8D,EAAP,KAAiB8xF,EAAjB,KACA,EAA4B51F,mBAAS,IAArC,mBAAOvI,EAAP,KAAem9F,EAAf,KACA,EAAsD50F,mBAAS,qCAA/D,mBAAO61F,EAAP,KAA4BC,EAA5B,KACA,EAAkD91F,mBAAS,iBAA3D,mBAAO+1F,EAAP,KAA0BC,EAA1B,KACA,EAA4Ch2F,mBAAS,0CAArD,mBAAOg0F,EAAP,KAAuBiC,EAAvB,KACA,EAA4Cj2F,mBAAS,6CAArD,mBAAOs0F,EAAP,KAAuB4B,EAAvB,KACA,EAA4Cl2F,mBAAS,oBAArD,mBAAOw0F,EAAP,KAAuB2B,EAAvB,KACA,EAAgDn2F,mBAAS,6CAAzD,mBAAOm0F,EAAP,KAAyBiC,EAAzB,KACA,EAAgCp2F,wBAASjU,GAAzC,mBAAOmoG,EAAP,KAAiBmC,EAAjB,KACA,EAAkDr2F,oBAAS,GAA3D,mBAAOg1F,EAAP,KAA0BsB,EAA1B,KACA,GAAsDt2F,oBAAS,GAA/D,qBAAOu2F,GAAP,MAA4BC,GAA5B,MACA,GAAkDx2F,oBAAS,GAA3D,qBAAOq1F,GAAP,MAA0BoB,GAA1B,MACA,GAA0Cz2F,oBAAS,GAAnD,qBAAO02F,GAAP,MAAsBC,GAAtB,MACA,GAAgD32F,mBAAS,IAAzD,qBAAOm1F,GAAP,MAAyByB,GAAzB,MAEMC,GAAY,SAACC,GACjB,GAAIhrG,SAASirG,OAAO3pG,OAAS,EAAG,CAE9B,IAAI4pG,EAASlrG,SAASirG,OAAOvnG,QAAhB,UAA2BsnG,EAA3B,MACb,IAAgB,IAAZE,EAAe,CACjBA,EAASA,EAASF,EAAM1pG,OAAS,EACjC,IAAI6pG,EAAOnrG,SAASirG,OAAOvnG,QAAQ,IAAKwnG,GAExC,OADc,IAAVC,IAAaA,EAAOnrG,SAASirG,OAAO3pG,QACjC6H,SAASnJ,SAASirG,OAAO1nG,UAAU2nG,EAAQC,KAGtD,MAAO,IAuCHC,GAAiB,WACrBpB,EAAuB,qDACvB1iG,YAAW,WACT0iG,EAAuB,uCACtB,MAGCpB,GAAY,uCAAG,WAAO56D,GAAP,qBAAA5e,EAAA,6DACnB4e,EAAGrF,iBADgB,SAES0iE,KAFT,OAEbC,EAFa,OAGd7zB,EAIOz/D,EAIArM,GAIiB,IAAlB2/F,EAC8B,OAAnC,UAAAA,EAAcjqF,gBAAd,eAAwBza,UAAxB,UAA0C0kG,EAAcjqF,gBAAxD,iBAA0C,EAAwBtf,YAAlE,aAA0C,EAA8B2C,MAAM8Q,SAAS,oBACzF+0F,EAAY,cAAC,IAAD,CAAkB/gG,GAAG,4BAA4BmM,eAAe,qCAC5E20F,EAAoB,4CACpBc,OAEAxmG,QAAQC,IAAIymG,GACZf,EAAY,cAAC,IAAD,CAAkB/gG,GAAG,yBAAyBmM,eAAe,qBACzE20F,EAAoB,4CACpBc,OAIFz0F,eAAeO,QAAQ,eAAgBvL,GACvCiI,EAAM61F,cAAchyB,EAAUz/D,GAC3BgB,MAAK,SAACC,GAEL,GADArU,QAAQC,IAAIoU,GACRA,EAAIvB,SAAU,CAChB,IAAIZ,EAAaD,aAAaC,WAAa5U,KAAKC,MAAM0U,aAAaC,YAAc,IACjD,IAAhCA,EAAWpT,QAAQiI,IAAkBmL,EAAWrF,KAAK9F,GACrDkL,aAAaK,QAAQ,aAAchV,KAAKsuD,UAAU15C,IAElD,IAAMy0F,EAAMznG,OAAOiU,OAAO,GAAIkB,EAAIzB,aAC3B+zF,EAAIvzF,SACX,IAAMwzF,EAAa,CACjB,MAASvyF,EAAI3B,MACb,KAAQi0F,EACR,OAAUtyF,EAAIrS,OACd,QAAWqS,EAAIxB,OACf,UAAawB,EAAIvB,SACjB,SAAYuB,EAAIpB,SAEZR,EAAaR,aAAaQ,WAAanV,KAAKC,MAAM0U,aAAaQ,YAAc,GAC7Eo0F,EAAY3nG,OAAOiU,OAAO,GAAIV,EAAlBvT,OAAA,KAAAA,CAAA,GAAiC6H,EAAS6/F,IAC5D30F,aAAaK,QAAQ,aAAchV,KAAKsuD,UAAUi7C,IAClD50F,aAAaK,QAAQ,QAAS+B,EAAI3B,OAClCT,aAAaK,QAAQ,OAAQhV,KAAKsuD,UAAU+6C,IAC5C10F,aAAaK,QAAQ,SAAU+B,EAAIrS,QACnCiQ,aAAaK,QAAQ,UAAW+B,EAAIxB,QACpCZ,aAAaK,QAAQ,YAAa+B,EAAIvB,UACtCb,aAAaK,QAAQ,WAAY+B,EAAIpB,SAErClB,eAAeO,QAAQ,cAAe+B,EAAI3B,OAE1ChQ,YAAW,WACTsM,EAAM2F,QAAQ9H,KAAK,UAClB,MAEH04F,EAAkB,yDAClBD,EAAqB,yCAErBK,EAAY,cAAC,IAAD,CAAkB/gG,GAAG,sBAAsBmM,eAAe,iEACtE6yF,EAAe,6CACf4C,QAGHlyF,OAAM,SAAC+hB,GACNr2B,QAAQC,IAAIo2B,GACZmwE,KACInwE,EAAIl5B,MAAQk5B,EAAIl5B,KAAKsiG,WACvBkG,EAAY,cAAC,IAAD,CAAkB/gG,GAAG,sBAAsBmM,eAAe,iEAC7DslB,EAAIl5B,MAAQk5B,EAAIl5B,KAAK2pG,aAC9BnB,EAAY,cAAC,IAAD,CAAkB/gG,GAAG,2BAA2BmM,eAAe,sEAE3E40F,EAAY,cAAC,IAAD,CAAkB/gG,GAAG,6BAA6BmM,eAAe,yCAnEnF40F,EAAY,cAAC,IAAD,CAAkB/gG,GAAG,qBAAqBmM,eAAe,6CACrE20F,EAAoB,4CACpBc,OANAb,EAAY,cAAC,IAAD,CAAkB/gG,GAAG,uBAAuBmM,eAAe,wCACvE00F,EAAkB,4CAClBe,OANAb,EAAY,cAAC,IAAD,CAAkB/gG,GAAG,mBAAmBmM,eAAe,oCACnEy0F,EAAkB,4CAClBgB,MANiB,2CAAH,sDA6HZC,GAA2B,WAC/B,IAAMtpG,EAAO,CACX4pG,OAAQhgG,GAEV,OAAO6M,IAAM,CACXvR,OAAQ,OACR2R,aAAc,OACdnV,IAAI,cAAD,OzS3NE,kByS2NF,2BACHoV,QAAS,CACPC,OAAQ,mBACRC,cAAc,WAAD,OAAapB,GAAO4+B,uBACjC,eAAgB,oBAElBx0C,SACCiX,MAAK,WACN,OAAO,KACNE,OAAM,SAAC+hB,GACR,OAAOA,MAIPwtE,GAAe,aACfE,GAAe,QACfL,GAAa,aAQjB,MANa,OAAT7pF,IACFgqF,GAAe,WACfE,GAAe,WACfL,GAAa,UAIb,cAAC,IAAD,CAAc1uE,OAAQnb,EAAMjN,SAAU83F,GAAc7qF,GAApD,SACE,qBAAKjV,GAAG,kBAAkBsK,UAAU,kBAApC,SACE,qBAAKA,UAAU,0BAAf,SACE,sBAAKtK,GAAG,oCAAoCsK,UAAWi2F,EAAvD,UACE,qBAAKvgG,GAAG,gBAAgBsK,UAAWm2F,EAAnC,SACE,cAAC,IAAD,CAAkBzgG,GAAG,yBAAyBmM,eAAe,mEAE9DuzF,GACC,qBAAKp1F,UAAU,4BAAf,SACE,cAAC,GAAD,CAAS7K,KAAM,cAAC,IAAD,CAAkBO,GAAG,wBAAwBmM,eAAe,mCAG9Ei1F,GAEG,cAAC,GAAD,CACE1C,eAAgBA,EAChBC,KAAMA,GACNC,SAAUA,EACVC,iBAAkBA,EAClB18F,OAAQA,EACR28F,WAAYA,GACZE,eAAgBA,EAChB/wB,SAAUA,EACVgxB,aAAcA,GACdC,eAAgBA,EAChB1wF,SAAUA,EACV2wF,aAAcA,GACdC,aAAcA,GACdL,kBApOU,SAACv6D,GACzB,IAAMxY,EAAQwY,EAAG5zB,OAAOqQ,KAClBlqB,EAAQytC,EAAG5zB,OAAO7Z,MAExB,OAAOi1B,GACL,IAAK,WACHwzE,EAAYzoG,GACRA,GACF6pG,EAAkB,6CAEpB,MAEF,IAAK,WACHN,EAAYvpG,GACZ,IAAMqrG,EAAQ59D,EAAG5zB,OAAOy3D,aAAa,WACjCtxE,EAAMe,OAASsqG,GACjBvB,EAAkB,4CAClBE,EAAY,cAAC,IAAD,CAAkB/gG,GAAG,wBAAwBmM,eAAe,oDAAiD8e,OAAQ,CAAEm3E,cAEnIvB,EAAkB,oBAClBE,OAAYtqG,IAEd,MAEF,IAAK,SACH6oG,EAAUvoG,GACNA,GACF+pG,EAAoB,iDA4Md,cAAC,GAAD,CACElB,gBAAiBqB,GACjBlB,kBAAmBA,GACnBL,kBAAmBA,EACnBf,KAAMA,GACNx8F,OAAQA,EACR8S,KAAMA,EACNwqF,kBA5GU,SAACt9F,EAAQmhC,EAAO2qC,GACxC+yB,GAAqB,GACrB,IAAIzoG,EAAO,CACT+qC,MAAOA,EACPnhC,OAAQA,GAEN8rE,IACF11E,EAAK01E,SAAWA,GAGlBj/D,IAAM,CACJvR,OAAQ,OACR2R,aAAc,OACdnV,IAAI,WAAD,OAAakI,GAAb,OzS3LE,kByS2LF,wBACHkN,QAAS,CACPC,OAAQ,mBACR,eAAgB,mBAChB,cAAeiyF,GAAU,cAE3BhpG,SACCiX,MAAK,WACNwxF,GAAqB,GACrBM,GAAoB,cACnB5xF,OAAM,SAAC+hB,GACR6vE,GAAoB,QAChB7vE,EAAI5Z,UAAoC,MAAxB4Z,EAAI5Z,SAASza,QAC/B4jG,GAAqB,GACrBG,IAAqB,KAErBH,GAAqB,GACrBE,IAAuB,GACvBpjG,YAAW,WACTojG,IAAuB,KACtB,WA4EOrB,iBAAkBA,MAGtBH,GAA2C,qCAAtBe,GACrB,gCACE,wBACEzgG,GAAG,8BACHsK,UAAU,+BACVE,QAAS,kBAAM62F,IAAkBD,KAHnC,SAKGA,GACG,cAAC,IAAD,CAAkBphG,GAAG,4BAA4BmM,eAAe,wBAChE,cAAC,IAAD,CAAkBnM,GAAG,mBAAmBmM,eAAe,YAG7D,sBAAK7B,UAAU,mCAAf,UACE,wBAAQA,UAAS,wCAA4C,OAAT2K,EAAgB,gCAAkC,IAAMzK,QAAS,kBAAMJ,EAAM+K,UAAU,OAA3I,gBACA,uCACA,wBAAQ7K,UAAS,wCAA4C,OAAT2K,EAAgB,gCAAkC,IAAMzK,QAAS,kBAAMJ,EAAM+K,UAAU,OAA3I,8BAzDkDF,M,oDC/OrDotF,ICJAC,0BACb,cAAC,KAAD,CACEC,oBAAoB,SACpBC,kBAAkB,SAClBC,kBAAgB,EAHlB,SAKE,cAAC,KAAD,CAAYt5E,MAAM,gBDdE,SAAAu5E,GAClBA,GAAeA,aAAuB5pG,UACxC,8BAAqB0W,MAAK,YAAkD,IAA/CmzF,EAA8C,EAA9CA,OAAQC,EAAsC,EAAtCA,OAAQC,EAA8B,EAA9BA,OAAQC,EAAsB,EAAtBA,OAAQC,EAAc,EAAdA,QAC3DJ,EAAOD,GACPE,EAAOF,GACPG,EAAOH,GACPI,EAAOJ,GACPK,EAAQL,Q,qBEkBRhwF,I,OAAS,IAAIswF,IAAa,CAC9BC,IAAI,WAAD,OAAa/1F,KAAb,O5SnBM,kB4SmBN,gBAGQ8hF,GAAW,WACtB,OAAI3hF,aAAaS,MAGV,OAFE,UAKLo1F,GAAQC,OAEV91F,aAAauS,eACfsjF,GAAMn0F,SAASwvF,GAAwBlxF,aAAauS,gBAGtD,IAAM/O,GAAYra,SAASiF,eAAe,QAC7B2nG,qBAAWvyF,IACnB+9E,OAAO,cAAC,IAAD,CAAetuB,kBAAmBn2D,EAAlC,SACV,cAAC,IAAD,CAAgBuI,OAAQA,GAAxB,SACE,cAAC,WAAD,CAAUwwF,MAAOA,GAAjB,SACE,sBAAK54F,UAAU,iBAAf,UACE,cAAC,IAAD,UACE,eAAC,IAAD,WACE,cAAC,IAAD,CAAOqkF,OAAK,EAAC7tF,KAAK,SAASuiG,UAAWC,KACtC,cAAC,IAAD,CAAOxiG,KAAK,OAAOuiG,UAAWlO,KAC9B,cAAC,IAAD,CAAOvG,OAAQ,kBAAM,cAAC,IAAD,CAAU1iF,GAAI8iF,gBAGtC,YAUTqT,M,4GCAe56D,EAjEM,CACnB/b,OAAQ,GACRjT,QAAS,GACTuX,iBAAkB,CAChBW,YAAa,GACbE,cAAe,IAEjBoP,WAAY,GACZ+/D,KAAM,CACJlyF,MAAO,KACPy1F,SAAU,KACVnmG,OAAQ,KACR6Q,QAAQ,EACRu1F,iBAAiB,EACjBC,kBAAkB,EAClBrD,cAAe,KACfsD,kBAAmB,KACnB/0F,WAAY,MAEdwqB,QAAS,GACTlD,SAAU,GACV0tE,OAAQ,GACRn4F,gBAAiB,KACjBipB,UAAW,GACXiE,OAAQ,GACRt7B,OAAQ,GACR44B,aAAc,GACd/F,QAAS,CACPhqB,MAAO1P,OAAOsjG,WACd3zF,OAAQ3P,OAAOujG,aAEjB8J,WAAY,CACVC,aAAc,GACdC,UAAW,GAEbC,oBAAqB,CACnBvyE,iBAAkB,KAClBD,aAAc,KACdyyE,kBAAmB,KACnBC,iBAAkB,MAEpBC,qBAAsB,CACpB32B,eAAgB,KAChBD,cAAe,MAEjB1zC,aAAc,KACdxJ,OAAQ,CACNnb,KAAM,MAERkvF,eAAgB,CACdjV,MAAO,KACPjuE,KAAM,KACN+5E,OAAQ,MAEVoJ,WAAY,GACZjvC,WAAY,GACZtpD,OAAQ,GACR6I,UAAW,CACTwtD,WAAY,KACZ3pE,KAAM,IAERy4F,qBAAsB,GACtByG,uBAAuB,GC3DlB,IAiBQ4M,EAjB4B,WAAwD,IAAvDj7F,EAAsD,uDAA9Cq+B,EAAaupD,qBAAsBx+E,EAAW,uCAChG,OAAQA,EAAOlR,MACb,KAAKsL,IACH,MAAM,GAAN,mBAAWxD,GAAX,CAAkBoJ,EAAO4F,SAE3B,KAAKxL,IACH,IAAM6/E,EAAQ,sBACTrjF,EAAM7N,MAAM,EAAGiX,EAAOqR,QADb,YAETza,EAAM7N,MAAMiX,EAAOqR,MAAQ,KAEhC,OAAO4oE,EAET,QACE,OAAOrjF,ICNEk7F,EAPyB,WAAyD,IAAxDl7F,EAAuD,uDAA/Cq+B,EAAagwD,sBAAuBjlF,EAAW,uCAC9F,OAAIA,EAAOlR,OAASsL,MACVxD,EAEHA,GCsBHm7F,EAAaC,YAAgB,CACjC/M,sBAAuB6M,EACvB54E,OC5Ba,WAA6D,IAAtCtiB,EAAqC,uDAA7Bq+B,EAAa/b,OAAQlZ,EAAQ,uCAGzE,OAAQA,EAAOlR,MACb,KAAKsL,IACH,MAAO,CAAC,CACNoL,SAAUxF,EAAOwF,SACjBzf,KAAMia,EAAOkZ,SAEjB,KAAK9e,IAWH,OAVaxD,EACS6H,KAAI,SAAAwzF,GACxB,OAAIA,EAASlsG,MAAQksG,EAASlsG,KAAKT,OAAS,EACnC,CACLkgB,SAAUysF,EAASzsF,SACnBzf,KAAMksG,EAASlsG,KAAK0Y,KAAI,SAAA6P,GAAK,OAAIA,EAAM9gB,KAAOwS,EAAOsO,MAAM9gB,GAAKwS,EAAOsO,MAAQA,MAG5E2jF,KAGX,KAAK73F,IAKH,OAJaxD,EACS6H,KAAI,SAAAwzF,GACxB,MAAO,CAACzsF,SAAUysF,EAASzsF,SAAUzf,KAAK,GAAD,mBAAMksG,EAASlsG,MAAf,CAAqBia,EAAOsO,YAGzE,QACE,OAAO1X,IDCX62B,WE7Ba,WAAqE,IAA1C72B,EAAyC,uDAAjCq+B,EAAaxH,WAAYztB,EAAQ,uCAEjF,OAAQA,EAAOlR,MACb,KAAKsL,IACH,MAAO,CAAC,CACNoL,SAAUxF,EAAOwF,SACjBzf,KAAMia,EAAOytB,aAEjB,KAAKrzB,IAUH,OATWxD,EAAM6H,KAAI,SAAAwzF,GACnB,OAAIA,EAASlsG,MAAQksG,EAASlsG,KAAKT,OAAS,EACnC,CACLkgB,SAAUysF,EAASzsF,SACnBzf,KAAMksG,EAASlsG,KAAK0Y,KAAI,SAAA4I,GAAS,OAAKA,EAAU7Z,KAAOwS,EAAOqH,UAAU7Z,GAAKwS,EAAOqH,UAAYA,MAG7F4qF,KAGX,KAAK73F,IASH,OAPWxD,EAAM6H,KAAI,SAAAwzF,GACnB,MAAO,CACLzsF,SAAUysF,EAASzsF,SAEnBzf,KAAM,YAAIksG,EAASlsG,MAAMuT,QAAO,SAAAywD,GAAG,OAAIA,EAAIv8D,KAAOwS,EAAOqH,UAAU7Z,MAAI0kG,OAAO,CAAClyF,EAAOqH,gBAI5F,QACE,OAAOzQ,IFAXqP,QG9Ba,WAA+D,IAAvCrP,EAAsC,uDAA9Bq+B,EAAatO,QAAS3mB,EAAQ,uCAC3E,OAAQA,EAAOlR,MACb,KAAKsL,IACH,IAAMmL,EAAUzd,OAAOiU,OAAO,GAAIiE,EAAOuF,QAAS,CAAEE,KAAMzF,EAAOyF,OACjE,MAAO,CACLohB,WAAY7mB,EAAOyF,KACnBmhB,UAAW5mB,EAAO0F,QAClBQ,MAAO,CAACX,GACRC,SAAUxF,EAAOwF,SACjBlM,OAAQ0G,EAAO1G,OACf0vB,MAAOhpB,EAAOuF,QAAQyjB,MACtBzpB,OAAQS,EAAOuF,QAAQhG,OACvBZ,QAAQ,GAGZ,KAAKvE,IACH,IAAMmL,EAAUzd,OAAOiU,OAAO,GAAIiE,EAAOoG,QAAS,CAAEX,KAAMzF,EAAOgG,aAC3Di0E,EAAWnyF,OAAOiU,OAAO,GAAInF,EAAO,CACxCsP,MAAM,GAAD,mBAAMtP,EAAMsP,OAAZ,CAAmBX,IACxBshB,WAAY7mB,EAAOgG,WACnB4gB,UAAW5mB,EAAO0F,SAEpB,CAAC/G,QAAQ,IACT,OAAOs7E,EAET,KAAK7/E,IACH,IAAM6/E,EAAWnyF,OAAOiU,OAAO,GAAInF,EAAO,CACxCiwB,WAAY7mB,EAAOgG,WAAY4gB,UAAW5mB,EAAO0F,SAEnD,CAAC/G,QAAQ,IACT,OAAOs7E,EAET,KAAK7/E,IACH,IAAKxD,EAAMsP,MACT,OAAOtP,EAET,IAAMqjF,EAAWnyF,OAAOiU,OAAO,GAAInF,EAAO,CACxCsP,MAAOtP,EAAMsP,MAAMzH,KAAI,SAAAwzF,GAAQ,OAC7BnqG,OAAOiU,OAAO,GAAIk2F,EAAU,CAC1B1sF,QAAS0sF,EAAS1sF,QAAQ9G,KAAI,SAAAmH,GAC5B,OAAIA,EAAOpY,KAAOwS,EAAO4F,OAAOpY,GACvBwS,EAAO4F,OAETA,WAKf,CAACjH,QAAQ,IACT,OAAOs7E,EAET,QACE,OAAOrjF,IHrBX4mB,iBI9Ba,WAAiF,IAAhD5mB,EAA+C,uDAAvCq+B,EAAazX,iBAAkBxd,EAAQ,uCACzFmyF,EAAc,GAElB,OAAQnyF,EAAOlR,MACb,KAAKsL,IACH,MAAO,CACL+jB,YAAane,EAAO9U,KACpBmzB,cAAere,EAAO0Y,QAE1B,KAAKte,IAEH,OADWtS,OAAOiU,OAAO,GAAInF,EAAO,CAAEunB,YAAane,EAAO9D,UAE5D,KAAK9B,IAKH,OAJA+3F,EAAW,CAAInyF,EAAO4F,QAAX,mBAAsBhP,EAAMunB,cAG5Br2B,OAAOiU,OAAO,GAAInF,EAAO,CAAEunB,YAAag0E,IAErD,KAAK/3F,KAUH,OATA+3F,EAAcv7F,EAAMunB,YACTr2B,OAAOiU,OAAO,GAAInF,EAAO,CAClCunB,YAAag0E,EAAY1zF,KAAI,SAACmH,GAC5B,OAAIA,EAAOpY,KAAOwS,EAAO4F,OAAOpY,GACvBwS,EAAO4F,OAETA,OAIb,KAAKxL,IACH+3F,EAAcv7F,EAAMunB,YACpB,IAAIi0E,EAAa,YAAOx7F,EAAMynB,eACxBg0E,EAAWD,EAAc7+D,WAAU,SAAAw2B,GAAG,OAAIA,EAAIv8D,KAAOwS,EAAO4F,OAAOpY,MAWzE,OAVkB,IAAd6kG,IACFD,EAAa,CAAIpyF,EAAO4F,QAAX,mBAAsBwsF,KAG1BtqG,OAAOiU,OAChB,GACAnF,EACA,CAAEunB,YAAag0E,EAAY74F,QAAO,SAAAsM,GAAM,OAAIA,EAAOpY,KAAOwS,EAAO4F,OAAOpY,OACxE,CAAE6wB,cAAe+zE,EAAc7sE,MAAK,SAAC+sE,EAAMC,GAAP,OAAgBD,EAAK9kG,GAAK+kG,EAAK/kG,QAIvE,QACE,OAAOoJ,IJfX42F,KKjBa,WAAyD,IAApC52F,EAAmC,uDAA3Bq+B,EAAau4D,KAAMxtF,EAAQ,uCACrE,OAAIA,EAAOlR,OAASsL,IACXtS,OAAOiU,OAAO,GAAInF,EAAO,CAC9Bq6F,kBAAkB,EAClB90F,WAAY,OAGZ6D,EAAOlR,OAASsL,IACXtS,OAAOiU,OAAO,GAAInF,EAAO,CAC9Bq6F,kBAAkB,EAClBD,iBAAiB,EACjB11F,MAAO0E,EAAO1E,MACdy1F,SAAU/wF,EAAOxE,KAAKigE,SACtB7wE,OAAQoV,EAAOpV,OACf6Q,OAAQuE,EAAOvE,OACfC,SAAUsE,EAAOtE,SACjBkyF,cAAe5tF,EAAOrE,OACtBu1F,kBAAmBlxF,EAAOpE,WAC1BO,WAAY,sBAGZ6D,EAAOlR,OAASsL,IACXtS,OAAOiU,OAAO,GAAInF,EAAO,CAC9Bq6F,kBAAkB,EAClBD,iBAAiB,EACjB11F,MAAO,KACPy1F,SAAU,KACVnmG,OAAQ,KACR6Q,QAAQ,EACRC,UAAU,EACVkyF,cAAe,KACfsD,kBAAmB,KACnB/0F,WAAW,yBAAD,OAA2B6D,EAAO9D,QAAQtR,OAA1C,cACRoV,EAAO9D,QAAQC,cAIjB6D,EAAOlR,OAASsL,IACXtS,OAAOiU,OAAO,GAAInF,EAAO,CAC9Bo6F,iBAAiB,EACjB11F,MAAO,KACPy1F,SAAU,KACVnmG,OAAQ,KACR6Q,QAAQ,EACRC,UAAU,EACVkyF,cAAe,KACfsD,kBAAmB,KACnB/0F,WAAY,2CAGTvF,GLhCP6mB,QMtBa,WAA2C,IAA1C7mB,EAAyC,uDAAjCq+B,EAAaxX,QAASzd,EAAW,uCACvD,OAAIA,EAAOlR,OAASsL,IACXtS,OAAOiU,OAAO,GAAInF,EAAOoJ,EAAOwjF,YAElC5sF,GNmBP+vB,QOlCa,WAA+D,IAAvC/vB,EAAsC,uDAA9Bq+B,EAAatO,QAAS3mB,EAAQ,uCAC3E,OAAQA,EAAOlR,MACb,KAAKsL,IACH,IAAMmL,EAAUzd,OAAOiU,OAAO,GAAIiE,EAAOuF,QAAS,CAAEE,KAAMzF,EAAOyF,OACjE,MAAO,CACLohB,WAAY7mB,EAAOyF,KACnBmhB,UAAW5mB,EAAO0F,QAClBQ,MAAO,CAACX,GACRC,SAAUxF,EAAOwF,SACjBlM,OAAQ0G,EAAO1G,OACf0vB,MAAOhpB,EAAOuF,QAAQyjB,MACtBzpB,OAAQS,EAAOuF,QAAQhG,OACvBZ,QAAQ,GAGZ,KAAKvE,IACH,IAAMmL,EAAUzd,OAAOiU,OAAO,GAAIiE,EAAOoG,QAAS,CAAEX,KAAMzF,EAAOgG,aAC3Di0E,EAAWnyF,OAAOiU,OAAO,GAAInF,EAAO,CACxCsP,MAAM,GAAD,mBAAMtP,EAAMsP,OAAZ,CAAmBX,IACxBshB,WAAY7mB,EAAOgG,WACnB4gB,UAAW5mB,EAAO0F,SAEpB,CAAC/G,QAAQ,IACT,OAAOs7E,EAET,KAAK7/E,KACH,IAAM6/E,EAAWnyF,OAAOiU,OAAO,GAAInF,EAAO,CACxCiwB,WAAY7mB,EAAOgG,WAAY4gB,UAAW5mB,EAAO0F,SAEnD,CAAC/G,QAAQ,IACT,OAAOs7E,EAET,KAAK7/E,IACH,IAAM6/E,EAAWnyF,OAAOiU,OAAO,GAAInF,EAAO,CACxCsP,MAAOtP,EAAMsP,MAAMzH,KAAI,SAAAwzF,GAAQ,OAC7BnqG,OAAOiU,OAAO,GAAIk2F,EAAU,CAC1B1sF,QAAS0sF,EAAS1sF,QAAQ9G,KAAI,SAACyB,GAC7B,OAAIA,EAAO1S,KAAOwS,EAAOE,OAAO1S,GACvBwS,EAAOE,OAETA,WAKf,CAACvB,QAAQ,IACT,OAAOs7E,EAET,QACE,OAAOrjF,IPdX8mB,mBQvBa,WAGZ,IAFD9mB,EAEA,uDAFQq+B,EAAas8D,oBACrBvxF,EACA,uCACA,OAAIA,EAAOlR,OAASsL,IACX,CAAEujB,MAAO3d,EAAO2d,OAElB/mB,GRiBP8P,oBSxBa,WAGZ,IAFD9P,EAEA,uDAFQq+B,EAAay8D,qBACrB1xF,EACA,uCACA,OAAIA,EAAOlR,OAASsL,IACX,CAAEuM,OAAQ3G,EAAO2G,QAEnB/P,GTkBP47F,aUpCa,WAA2E,IAA9C57F,EAA6C,uDAArCq+B,EAAa08D,eAAgB3xF,EAAQ,uCACvF,OAAIA,EAAOlR,OAASsL,IACXtS,OAAOiU,OAAO,GAAInF,EAAO,CAC9B8lF,MAAO18E,EAAOwoF,OAAOiK,WACrBhkF,KAAMzO,EAAOwoF,OAAOkK,YACpBlK,OAAQxoF,EAAOwoF,OAAOmK,kBAGnB/7F,GV6BPg7F,WWrCa,WAAuE,IAA1Ch7F,EAAyC,uDAAjCq+B,EAAa28D,WAAY5xF,EAAQ,uCACnF,OAAIA,EAAOlR,OAASsL,IACX,YAAI4F,EAAOwoF,QAEb5xF,GXkCP6sB,SY3Ba,WAAiE,IAAxC7sB,EAAuC,uDAA/Bq+B,EAAaxR,SAAUzjB,EAAQ,uCACzEi6E,EAAW,GACf,OAAQj6E,EAAOlR,MACb,KAAKsL,IAGH,OADA6/E,EAAWrjF,EAAM0C,QAAO,SAAA24F,GAAQ,OAAIA,EAAS5oE,WAAarpB,EAAOqpB,YAC3D,GAAN,mBACK4wD,GADL,CAEE,CACE5wD,SAAUrpB,EAAOqpB,SACjB7jB,SAAUxF,EAAOwF,SACjBzf,KAAMia,EAAOyjB,YAGnB,KAAKrpB,IAWH,OAVA6/E,EAAWrjF,EAAM6H,KAAI,SAAAwzF,GACnB,OAAIA,GAAYA,EAAS5oE,WAAarpB,EAAOqpB,SACpC,CACL7jB,SAAUysF,EAASzsF,SACnB6jB,SAAU4oE,EAAS5oE,SACnBtjC,KAAK,GAAD,mBAAMksG,EAASlsG,MAAf,CAAqBia,EAAOozC,WAG7B6+C,KAGX,KAAK73F,IAaH,OAZA6/E,EAAWrjF,EAAM6H,KAAI,SAAAwzF,GACnB,OAAIA,EAASlsG,MAAQksG,EAAS5oE,WAAarpB,EAAOqpB,SACzC,CACL7jB,SAAUysF,EAASzsF,SACnB6jB,SAAU4oE,EAAS5oE,SACnBtjC,KAAMksG,EAASlsG,KAAK0Y,KAClB,SAAA20C,GAAO,OAAIA,EAAQ5lD,KAAOwS,EAAOozC,QAAQ5lD,GAAKwS,EAAOozC,QAAUA,MAI9D6+C,KAGX,KAAK73F,IAYH,OAXA6/E,EAAWrjF,EAAM6H,KAAI,SAAAwzF,GACnB,GAAIA,GAAYA,EAAS5oE,WAAarpB,EAAOqpB,SAAU,CACrD,IAAMupE,EAAiBX,EAASlsG,KAAKuT,QAAO,SAACgpB,GAAD,OAASA,EAAI90B,KAAOwS,EAAOozC,QAAQ5lD,MAC/E,MAAO,CACLgY,SAAUysF,EAASzsF,SACnB6jB,SAAU4oE,EAAS5oE,SACnBtjC,KAAM6sG,GAGV,OAAOX,KAGX,QACE,OAAOr7F,IZ1BXu6F,Oa3Ba,WAA6D,IAAtCv6F,EAAqC,uDAA7Bq+B,EAAak8D,OAAQnxF,EAAQ,uCACzE,OAAQA,EAAOlR,MACb,KAAKsL,IACH,MAAM,GAAN,mBACKxD,GADL,CAEE,WAGJ,KAAKwD,IACH,OAAOxD,EAAM0C,QAAO,SAAAyX,GAAE,OAAIA,IAAO/Q,EAAOtX,SAE1C,QACE,OAAOkO,IbgBXoC,gBc5Ba,WAA+E,IAA/CpC,EAA8C,uDAAtCq+B,EAAaj8B,gBAAiBgH,EAAQ,uCAC3F,OAAQA,EAAOlR,MACb,KAAKsL,KACH,OAAOtS,OAAOiU,OAAO,GAAIiE,EAAOqH,WAElC,QACE,OAAOzQ,IduBX4sB,ae7Ba,WAAwE,IAA5C5sB,EAA2C,uDAAnCq+B,EAAazR,aAAcxjB,EAAQ,uCAEpF,OAAQA,EAAOlR,MACb,KAAKsL,IACH,MAAM,GAAN,mBACKxD,GADL,CAEE,CACEyyB,SAAUrpB,EAAOqpB,SACjB7jB,SAAUxF,EAAOwF,SACjBzf,KAAMia,EAAOwjB,gBAGnB,KAAKppB,IAeH,OAdWxD,EAAM6H,KAAI,SAAAwzF,GACnB,OAAIA,EAASlsG,MAAQksG,EAAS5oE,WAAarpB,EAAOqpB,SACzC,CACLA,SAAU4oE,EAAS5oE,SACnB7jB,SAAUysF,EAASzsF,SACnBzf,KAAMksG,EAASlsG,KAAK0Y,KAClB,SAAA22C,GAAW,OAAIA,EAAY5nD,KAAOwS,EAAOo1C,YAAY5nD,GACjDwS,EAAOo1C,YACPA,MAIH68C,KAGX,KAAK73F,IAWH,OAVWxD,EAAM6H,KAAI,SAAAwzF,GACnB,OAAIA,EAASlsG,MAAQksG,EAAS5oE,WAAarpB,EAAOqpB,SACzC,CACLA,SAAU4oE,EAAS5oE,SACnB7jB,SAAUysF,EAASzsF,SACnBzf,KAAK,GAAD,mBAAMksG,EAASlsG,MAAf,CAAqBia,EAAOo1C,eAG7B68C,KAGX,KAAK73F,IAaH,OAZWxD,EAAM6H,KAAI,SAAAwzF,GACnB,OAAIA,EAASlsG,MAAQwiB,SAAS0pF,EAAS5oE,YAAc9gB,SAASvI,EAAOqpB,UAC5D,CACLA,SAAU4oE,EAAS5oE,SACnB7jB,SAAUysF,EAASzsF,SACnBzf,KAAMksG,EAASlsG,KAAKuT,QAClB,SAAA87C,GAAW,OAAIA,EAAY5nD,KAAOwS,EAAO2/C,kBAIxCsyC,KAGX,QACE,OAAOr7F,IfzBXhM,OgB3Ca,WAA6D,IAAtCgM,EAAqC,uDAA7Bq+B,EAAarqC,OAAQoV,EAAQ,uCACzE,OAAQA,EAAOlR,MACb,KAAKsL,IACH,GAA+B,IAA3B4F,EAAOqF,SAAS/f,OAClB,OAAOsR,EAET,IAAMqjF,EAAWj6E,EAAOqF,SAAS5G,KAAI,SAAAmH,GACnC,MAAO,CACLd,OAAQc,EAAOyB,UACfrC,SAAUY,EAAOpY,OAGrB,OAAOysF,EAET,KAAK7/E,IACH,IAAM6/E,EAAWrjF,EAAMiN,MAAK,SAAAtf,GAAK,OAAIA,EAAMugB,SAAW9E,EAAO8E,UACzDlO,EADa,sBAETA,GAFS,CAEF,CACbkO,OAAQ9E,EAAO8E,OACfE,SAAUhF,EAAOgF,YAEnB,OAAOi1E,EAET,KAAK7/E,IACH,IAAM6/E,EAAWrjF,EAAM0C,QAAO,SAAA/U,GAAK,OAAIA,EAAMugB,SAAW9E,EAAO8E,UAC/D,OAAOm1E,EAET,QACE,OAAOrjF,IhBgBXqrB,UiBjCa,WAGZ,IAFDrrB,EAEA,uDAFQq+B,EAAahT,UACrBjiB,EACA,uCACA,OAAIA,EAAOlR,OAASsL,IACZ,GAAN,mBACKxD,GADL,CAEE,CACE7Q,KAAMia,EAAOiiB,aAIZrrB,GjBsBPw6F,WkBlCa,WAA8C,IAA7Cx6F,EAA4C,uDAApCq+B,EAAam8D,WAAYpxF,EAAW,uCAC1D,OAAIA,EAAOlR,OAASsL,IACXtS,OAAOiU,OAAO,GAAInF,EAAOoJ,EAAOoxF,YAElCx6F,GlB+BPwwB,amBlCa,WAAgF,IAA5CxwB,EAA2C,uDAAnCq+B,EAAa7N,aAAcpnB,EAAQ,uCAC5F,OAAIA,EAAOlR,OAASsL,KAIhB4F,EAAOlR,OAASsL,IAHX,CAAExP,OAAQoV,EAAOpV,QAMnBgM,GnB2BPgnB,OoBxCa,WAA6D,IAAtChnB,EAAqC,uDAA7Bq+B,EAAarX,OAAQ5d,EAAQ,uCACzE,OAAQA,EAAOlR,MACb,KAAKsL,IACH,MAAO,CAAEqI,KAAMzC,EAAOyC,MACxB,QACE,OAAO7L,IpBoCXyC,OqBrCa,WAA6D,IAAtCzC,EAAqC,uDAA7Bq+B,EAAa57B,OAAQ2G,EAAQ,uCACzE,OAAQA,EAAOlR,MACb,KAAKsL,IACH,OAAO,YAAI4F,EAAO3G,QAEpB,QACE,OAAOzC,IrBgCXsL,UsBjDa,WAAmE,IAAzCtL,EAAwC,uDAAhCq+B,EAAa/yB,UAAWlC,EAAQ,uCAC/E,OAAIA,EAAOlR,OAASsL,IACX,CACLs1D,WAAY1vD,EAAO0vD,WACnB3pE,KAAK,GAAD,mBACC6Q,EAAM7Q,MADP,CAEFia,EAAOkC,aAKTlC,EAAOlR,OAASsL,IACX,CACLs1D,WAAY1vD,EAAO0vD,WACnB3pE,KAAK,YAAKia,EAAOkC,YAIdtL,GtBgCP+rD,WuBjDa,WAAuE,IAA1C/rD,EAAyC,uDAAjCq+B,EAAa0tB,WAAY3iD,EAAQ,uCACnF,OAAIA,EAAOlR,OAASsL,IACX,YAAI4F,EAAOuiF,MAEb3rF,GvB8CP6nF,gBAUaoU,EAPK,SAACj8F,EAAOoJ,GAC1B,OAAIA,EAAOlR,OAASsL,IACX23F,OAAW9tG,EAAW+b,GAExB+xF,EAAWn7F,EAAOoJ,I,0BwBxDZ,SAAS2wF,EAAe17D,GACrC,OAAO69D,YACLD,EACA59D,EACA89D,YAAgBC,IAAMC,kBAAkB,CAAEz2F,gB,wCCR9Cpc,EAAOC,QAAU,CAAC,iBAAiB,qCAAqC,eAAe,mCAAmC,gBAAgB,oCAAoC,gBAAgB,oCAAoC,qBAAqB,yCAAyC,sBAAsB,0CAA0C,eAAe,mCAAmC,MAAQ,4BAA4B,MAAQ,4BAA4B,IAAM,0BAA0B,YAAY,kC,mBCAtgBD,EAAOC,QAAU,CAAC,QAAU,0BAA0B,UAAY,4BAA4B,MAAQ,wBAAwB,eAAiB,iCAAiC,QAAU,0BAA0B,MAAQ,wBAAwB,OAAS,yBAAyB,MAAQ,wBAAwB,SAAW,2BAA2B,MAAQ,wBAAwB,MAAQ,wBAAwB,OAAS,yBAAyB,iBAAiB,iCAAiC,IAAM,sBAAsB,WAAW,2BAA2B,yBAAyB,yCAAyC,uBAAuB,uCAAuC,wBAAwB,wCAAwC,YAAY,4BAA4B,cAAc,8BAA8B,kBAAkB,kCAAkC,mBAAmB,mCAAmC,qBAAqB,qCAAqC,oBAAoB,oCAAoC,iBAAiB,iCAAiC,oBAAoB,oCAAoC,4BAA4B,4CAA4C,gBAAgB,gCAAgC,qBAAqB,qCAAqC,uCAAuC,uDAAuD,oBAAoB,oCAAoC,aAAa,6BAA6B,aAAa,6BAA6B,YAAY,4BAA4B,YAAc,8BAA8B,SAAW,6B,mBCAvoDD,EAAOC,QAAU,CAAC,QAAU,6BAA6B,UAAY,+BAA+B,cAAgB,mCAAmC,WAAa,gCAAgC,SAAW,8BAA8B,aAAe,kCAAkC,OAAS,4BAA4B,iBAAmB,sCAAsC,aAAe,kCAAkC,gBAAkB,qCAAqC,mBAAqB,wCAAwC,WAAa,gCAAgC,cAAgB,qC","file":"static/js/main.095d0c1a.chunk.js","sourcesContent":["// extracted by mini-css-extract-plugin\nmodule.exports = {\"info\":\"attendsCard_info__2IrGY\",\"icon\":\"attendsCard_icon__3w3Fp\",\"icon-bg\":\"attendsCard_icon-bg__17UkM\",\"iconwrapper\":\"attendsCard_iconwrapper__2-TAO\",\"text\":\"attendsCard_text__Wj45C\",\"value\":\"attendsCard_value__3-cDi\",\"description\":\"attendsCard_description__29Ey3\",\"card-footer\":\"attendsCard_card-footer__13mIm\",\"small-box\":\"attendsCard_small-box__3U6LK\"};","// extracted by mini-css-extract-plugin\nmodule.exports = {\"adminActions\":\"contactForm_adminActions__29Ak8\",\"otherActions\":\"contactForm_otherActions__t5tL8\",\"tracker\":\"contactForm_tracker__1GmrO\",\"trackerActions\":\"contactForm_trackerActions__1TaS7\",\"rotate\":\"contactForm_rotate__h-LGJ\",\"tooltip\":\"contactForm_tooltip__2Drpb\",\"company\":\"contactForm_company__rjXCN\",\"companyHeader\":\"contactForm_companyHeader__5KunP\",\"name\":\"contactForm_name__3GART\",\"subtitleContainer\":\"contactForm_subtitleContainer__13E3f\",\"title\":\"contactForm_title__273NC\",\"input-wrapper\":\"contactForm_input-wrapper__24wFU\",\"checkbox\":\"contactForm_checkbox__2XQNu\",\"savetip\":\"contactForm_savetip__Nl9F8\",\"savetip-container\":\"contactForm_savetip-container__3Dcjb\",\"savetip-text\":\"contactForm_savetip-text__35z9t\",\"form-text-error\":\"contactForm_form-text-error__2_WgG\",\"action-error\":\"contactForm_action-error__2HD7D\",\"exclude-button\":\"contactForm_exclude-button__B2Pmn\",\"exclude-button--color-gray\":\"contactForm_exclude-button--color-gray__1AOwb\"};","// extracted by mini-css-extract-plugin\nmodule.exports = {\"wrapper\":\"inNumbers_wrapper__3ZMCI\",\"textLabel\":\"inNumbers_textLabel__dgZoo\",\"input\":\"inNumbers_input__aALL1\",\"inputContainer\":\"inNumbers_inputContainer__1I2Ys\",\"checkbox\":\"inNumbers_checkbox__1m5lj\",\"tooltipContainer\":\"inNumbers_tooltipContainer__20TNc\",\"button\":\"inNumbers_button__1_p5Z\"};","// extracted by mini-css-extract-plugin\nmodule.exports = {\"wrapper\":\"modalZoneInfo_wrapper__15xYL\",\"title\":\"modalZoneInfo_title__3cptH\",\"container\":\"modalZoneInfo_container__2ySjP\",\"btn\":\"modalZoneInfo_btn__pJwbU\",\"actions\":\"modalZoneInfo_actions__lTulh\",\"hideModal\":\"modalZoneInfo_hideModal__GOYwC\",\"text\":\"modalZoneInfo_text__9haCO\"};","// extracted by mini-css-extract-plugin\nmodule.exports = {\"container\":\"headerDomain_container__2GSgE\",\"container-expanded\":\"headerDomain_container-expanded__3c7Eo\",\"selected-domain-container\":\"headerDomain_selected-domain-container__1J7qP\",\"selected-domain-item\":\"headerDomain_selected-domain-item__caua8\",\"menu-list\":\"headerDomain_menu-list__2jbRD\",\"menu-list-items\":\"headerDomain_menu-list-items__1nfZW\",\"menu-button-expanded\":\"headerDomain_menu-button-expanded__Mvwrl\",\"menu-list-items__text\":\"headerDomain_menu-list-items__text__iBk3v\",\"rotate\":\"headerDomain_rotate__ZqmUJ\"};","// extracted by mini-css-extract-plugin\nmodule.exports = {\"adminActions\":\"reportCompanyDetails_adminActions__3KM-y\",\"otherActions\":\"reportCompanyDetails_otherActions__2aCBx\",\"tracker\":\"reportCompanyDetails_tracker__IU-qz\",\"trackerActions\":\"reportCompanyDetails_trackerActions__3btu3\",\"rotate\":\"reportCompanyDetails_rotate__3hdtu\",\"tooltip\":\"reportCompanyDetails_tooltip__2tTwZ\",\"company\":\"reportCompanyDetails_company__ZcG47\",\"companyHeader\":\"reportCompanyDetails_companyHeader__2zBVo\",\"name\":\"reportCompanyDetails_name__1XecI\",\"subtitleContainer\":\"reportCompanyDetails_subtitleContainer__3vu-C\",\"title\":\"reportCompanyDetails_title__2etFo\",\"subtitle\":\"reportCompanyDetails_subtitle__tpw2S\",\"table\":\"reportCompanyDetails_table__3HeSD\",\"paginate\":\"reportCompanyDetails_paginate__1FfUK\",\"header\":\"reportCompanyDetails_header__1rvl7\",\"header-column\":\"reportCompanyDetails_header-column__2gon8\",\"body\":\"reportCompanyDetails_body__1ixrD\",\"row\":\"reportCompanyDetails_row__1wO67\",\"column\":\"reportCompanyDetails_column__2w7zF\",\"download\":\"reportCompanyDetails_download__PGhIM\",\"account\":\"reportCompanyDetails_account__3fbgY\",\"client\":\"reportCompanyDetails_client__13O0E\",\"no-pointer\":\"reportCompanyDetails_no-pointer__3PpO0\"};","// extracted by mini-css-extract-plugin\nmodule.exports = {\"trackerTitle\":\"tracker_trackerTitle__1N09T\",\"trackerTitle--left\":\"tracker_trackerTitle--left__3Vn07\",\"mapWrapper\":\"tracker_mapWrapper__2l0z4\",\"mapContent\":\"tracker_mapContent__2qgy0\",\"trackerContent\":\"tracker_trackerContent__6Sqy_\",\"trackerMenu\":\"tracker_trackerMenu__3YWuu\",\"trackerMenuOption\":\"tracker_trackerMenuOption__1Ocr8\",\"trackerMenuContainer\":\"tracker_trackerMenuContainer__1h3zX\",\"trackerMenuContent\":\"tracker_trackerMenuContent__3UHW1\",\"trackerMenuValue\":\"tracker_trackerMenuValue__3ZxIy\",\"trackerMenuDate\":\"tracker_trackerMenuDate__1i5X7\",\"trackerMenuText\":\"tracker_trackerMenuText__2kUAj\",\"rotate\":\"tracker_rotate__11RES\",\"trackerMenuBtn\":\"tracker_trackerMenuBtn__3TUVB\",\"trackerPositionBtn\":\"tracker_trackerPositionBtn__2sugs\",\"trackerSvg\":\"tracker_trackerSvg__3c-NO\",\"mapIcon\":\"tracker_mapIcon__309Dl\",\"mapDot\":\"tracker_mapDot__QtdGk\",\"errorWrapper\":\"tracker_errorWrapper__21xA7\",\"trackerError\":\"tracker_trackerError__2JBOe\",\"disabled\":\"tracker_disabled__hFQbl\",\"hideModal\":\"tracker_hideModal__3Lil5\",\"modal\":\"tracker_modal__9vyW0\",\"leafletContainer\":\"tracker_leafletContainer__2lAJn\",\"mapHeaderContainer\":\"tracker_mapHeaderContainer__2ly7p\",\"generalInfoContainer\":\"tracker_generalInfoContainer__3arNh\",\"mapButtonContainer\":\"tracker_mapButtonContainer__2GeGf\",\"mapHeaderSubtitleContainer\":\"tracker_mapHeaderSubtitleContainer__2FKKg\",\"headerSubtitle\":\"tracker_headerSubtitle__3LDaG\",\"generalInfoLastBtn\":\"tracker_generalInfoLastBtn__2H4FE\",\"continuousLocationBtn\":\"tracker_continuousLocationBtn__2sWRh\",\"updateLocationBtn\":\"tracker_updateLocationBtn__20Lfo\"};","// extracted by mini-css-extract-plugin\nmodule.exports = {\"wrapper\":\"customCardHOC_wrapper__1aTFO\",\"header\":\"customCardHOC_header__3Zu7t\",\"headerItem\":\"customCardHOC_headerItem__3-rv8\",\"body\":\"customCardHOC_body__3q0Jt\",\"footer\":\"customCardHOC_footer__2hHzV\",\"headerWrapper\":\"customCardHOC_headerWrapper__EyRwH\",\"leftContainer\":\"customCardHOC_leftContainer__280Mq\",\"rightContainer\":\"customCardHOC_rightContainer__2QNsL\",\"small-box\":\"customCardHOC_small-box__3o2KG\",\"icon\":\"customCardHOC_icon__tguvC\"};","// extracted by mini-css-extract-plugin\nmodule.exports = {\"btn-audio-control\":\"audioMenu_btn-audio-control__1ajqm\",\"btn-audio-single\":\"audioMenu_btn-audio-single__1DdrK\",\"btn-listen-color\":\"audioMenu_btn-listen-color__1BbGt\",\"btn-speak-color\":\"audioMenu_btn-speak-color__2iHyZ\",\"btn-two-way-audio-color\":\"audioMenu_btn-two-way-audio-color__3_Wru\",\"audio-status-text\":\"audioMenu_audio-status-text__2t8WC\"};","// extracted by mini-css-extract-plugin\nmodule.exports = {\"header-wrapper\":\"attendHeader_header-wrapper__2NURa\",\"left-wrapper\":\"attendHeader_left-wrapper__-xKvv\",\"right-wrapper\":\"attendHeader_right-wrapper__2Pggw\",\"client-name\":\"attendHeader_client-name__1FvKX\",\"closed-call\":\"attendHeader_closed-call__2ayhL\",\"btn-call\":\"attendHeader_btn-call__pNcWv\",\"age-number\":\"attendHeader_age-number__3d_rs\",\"age-years\":\"attendHeader_age-years__36fdl\",\"clock-frame\":\"attendHeader_clock-frame__1Iud1\",\"clock-digits\":\"attendHeader_clock-digits__3PX8C\",\"row\":\"attendHeader_row__zhifr\",\"btn-external-call\":\"attendHeader_btn-external-call__2Pl5c\",\"btn-external-call--add\":\"attendHeader_btn-external-call--add__3jhzV\",\"btn-external-call--add-contact-phone\":\"attendHeader_btn-external-call--add-contact-phone__Q-NsO\",\"btn-external-call--add-transmissor\":\"attendHeader_btn-external-call--add-transmissor__2fkyW\",\"btn-external-call--attend-emergency\":\"attendHeader_btn-external-call--attend-emergency__dVyMM\",\"btn-external-call--bold\":\"attendHeader_btn-external-call--bold__3LPFN\",\"btn-external-call--bottom\":\"attendHeader_btn-external-call--bottom__2NLQb\",\"btn-external-call--color-gray\":\"attendHeader_btn-external-call--color-gray__3BFeY\",\"btn-external-call--color-green\":\"attendHeader_btn-external-call--color-green__LrGRH\",\"btn-external-call--color-invalid\":\"attendHeader_btn-external-call--color-invalid__3kEdD\",\"btn-external-call--color-orange\":\"attendHeader_btn-external-call--color-orange__1AREY\",\"btn-external-call--color-red\":\"attendHeader_btn-external-call--color-red__3GuMN\",\"btn-external-call--btn-bg-color\":\"attendHeader_btn-external-call--btn-bg-color__30EAL\",\"btn-external-call--confirm-remove-modal\":\"attendHeader_btn-external-call--confirm-remove-modal__MCqkZ\",\"btn-external-call--download\":\"attendHeader_btn-external-call--download__34CNM\",\"btn-external-call--download-text\":\"attendHeader_btn-external-call--download-text__kN31P\",\"btn-external-call--get-attend-or-attend-voice-call\":\"attendHeader_btn-external-call--get-attend-or-attend-voice-call__30jVN\",\"btn-external-call--modal-attend\":\"attendHeader_btn-external-call--modal-attend__kZVno\",\"btn-external-call--right\":\"attendHeader_btn-external-call--right__3-Upf\",\"btn-external-call--multi\":\"attendHeader_btn-external-call--multi___xkr4\",\"btn-external-call--form\":\"attendHeader_btn-external-call--form__1UCY-\",\"btn-wide\":\"attendHeader_btn-wide__18p7g\"};","// extracted by mini-css-extract-plugin\nmodule.exports = {\"container\":\"extensionCaller_container__1D88S\",\"btn-container\":\"extensionCaller_btn-container__3Lb7E\",\"btn-make-call-container\":\"extensionCaller_btn-make-call-container__1Jq2K\",\"make-call-btn\":\"extensionCaller_make-call-btn__1vUqS\",\"back-btn\":\"extensionCaller_back-btn__35cUC\"};","// extracted by mini-css-extract-plugin\nmodule.exports = {\"wrapper\":\"modalDeleteCompany_wrapper__3Y4RG\",\"title\":\"modalDeleteCompany_title__2NaC4\",\"text\":\"modalDeleteCompany_text__3Vtpr\",\"textOption\":\"modalDeleteCompany_textOption__PO-qD\",\"checkboxContainer\":\"modalDeleteCompany_checkboxContainer__3dfG9\"};","// extracted by mini-css-extract-plugin\nmodule.exports = {\"container\":\"errorComponent_container__3Cq5E\",\"button\":\"errorComponent_button__2IGyd\",\"text\":\"errorComponent_text__z6ac9\",\"text-title\":\"errorComponent_text-title__24xs1\",\"text-subtitle\":\"errorComponent_text-subtitle__1xvNd\"};","// extracted by mini-css-extract-plugin\nmodule.exports = {\"wrapper\":\"rocketChat_wrapper__1T3UQ\",\"isVisible\":\"rocketChat_isVisible__36E6N\",\"isHidden\":\"rocketChat_isHidden__8fYQ4\",\"errorMessageWrapper\":\"rocketChat_errorMessageWrapper__yUVmg\",\"errorTitle\":\"rocketChat_errorTitle__349VR\",\"errorText\":\"rocketChat_errorText__2X1Co\"};","// extracted by mini-css-extract-plugin\nmodule.exports = {\"information-wrapper\":\"attendInformation_information-wrapper__1ldvX\",\"info-btn-save\":\"attendInformation_info-btn-save__gmeig\",\"info-btn-cancel\":\"attendInformation_info-btn-cancel__3j2R8\",\"info-btn-edit\":\"attendInformation_info-btn-edit__2Wut4\",\"label\":\"attendInformation_label__oPauG\",\"value\":\"attendInformation_value__1ads0\",\"chat-row\":\"attendInformation_chat-row__1E_mS\"};","// extracted by mini-css-extract-plugin\nmodule.exports = {\"softphoneKeyboard\":\"softphoneKeyboard_softphoneKeyboard__se9j1\",\"input\":\"softphoneKeyboard_input__kM16A\",\"keyboard\":\"softphoneKeyboard_keyboard__38ISx\",\"key\":\"softphoneKeyboard_key__2yAQ8\",\"actions\":\"softphoneKeyboard_actions__gsnIy\",\"backspace\":\"softphoneKeyboard_backspace__24Mxg\",\"confirm\":\"softphoneKeyboard_confirm__1V_hj\"};","// extracted by mini-css-extract-plugin\nmodule.exports = {\"filter-wrapper\":\"modalClientFilter_filter-wrapper__2wDq4\",\"filter-container\":\"modalClientFilter_filter-container__3uR8r\",\"filter-header\":\"modalClientFilter_filter-header__TiGy_\",\"input-wrapper\":\"modalClientFilter_input-wrapper__NyF-3\",\"filter-companies-container\":\"modalClientFilter_filter-companies-container__27UI1\",\"filter-companies-label\":\"modalClientFilter_filter-companies-label__3AwcJ\",\"filter-trackers-container\":\"modalClientFilter_filter-trackers-container__3kneh\",\"filter-trackers-label\":\"modalClientFilter_filter-trackers-label__1nlnh\",\"filter-button-container\":\"modalClientFilter_filter-button-container__YaeAf\",\"filter-btn\":\"modalClientFilter_filter-btn__wTL4V\",\"filter-btn-disabled\":\"modalClientFilter_filter-btn-disabled__nMH9Z\"};","// extracted by mini-css-extract-plugin\nmodule.exports = {\"comment-wrapper\":\"attendComments_comment-wrapper__1BNZi\",\"comment\":\"attendComments_comment__1rToA\",\"text-area\":\"attendComments_text-area__7n0l_\",\"comment-btn-save\":\"attendComments_comment-btn-save__2Hm3E\",\"comment-btn-cancel\":\"attendComments_comment-btn-cancel__CYaku\",\"comment-btn-edit\":\"attendComments_comment-btn-edit__KBddo\"};","// extracted by mini-css-extract-plugin\nmodule.exports = {\"trackerMenuContainer\":\"programming_trackerMenuContainer__10M2B\",\"trackerMenuValue\":\"programming_trackerMenuValue__jLcPo\",\"trackerMenuText\":\"programming_trackerMenuText__2J_qk\",\"rotate\":\"programming_rotate__3ih5L\",\"trackerMenuBtn\":\"programming_trackerMenuBtn__3xP4_\",\"checkbox\":\"programming_checkbox__1ySNf\",\"selectInput\":\"programming_selectInput__2vsGn\",\"selectInput--enable\":\"programming_selectInput--enable__1ECoB\",\"selectInterval\":\"programming_selectInterval__3fEFs\",\"blockValue\":\"programming_blockValue__10G74\",\"tooltipContainer\":\"programming_tooltipContainer__3P9wK\",\"programmingInput\":\"programming_programmingInput__2J4VO\"};","// extracted by mini-css-extract-plugin\nmodule.exports = {\"button-container\":\"attendCallType_button-container__36c8p\",\"row\":\"attendCallType_row__3jra_\",\"answered-column\":\"attendCallType_answered-column__1mZU4\",\"contacted-column\":\"attendCallType_contacted-column__1PxOY\"};","// extracted by mini-css-extract-plugin\nmodule.exports = {\"input-wrapper\":\"userForm_input-wrapper__2NQF0\",\"checkbox\":\"userForm_checkbox__uzOQ9\"};","// extracted by mini-css-extract-plugin\nmodule.exports = {\"wrapper\":\"formButton_wrapper__38hUA\",\"btn\":\"formButton_btn__1FOTI\",\"active\":\"formButton_active__36_7i\",\"disable\":\"formButton_disable__35iIo\"};","// extracted by mini-css-extract-plugin\nmodule.exports = {\"filter-wrapper\":\"modalAttendFilter_filter-wrapper__1Dc81\",\"filter-container\":\"modalAttendFilter_filter-container__3I2iJ\",\"filter-header\":\"modalAttendFilter_filter-header__3i50Q\",\"filter-trackers-container\":\"modalAttendFilter_filter-trackers-container__locoX\",\"filter-trackers-label\":\"modalAttendFilter_filter-trackers-label__3n7fC\",\"filter-button-container\":\"modalAttendFilter_filter-button-container__34r35\",\"filter-btn\":\"modalAttendFilter_filter-btn__1J5IH\"};","// extracted by mini-css-extract-plugin\nmodule.exports = {\"client-name\":\"attendOpen_client-name__3ctKQ\",\"textArea\":\"attendOpen_textArea__16uEA\",\"commentWrapper\":\"attendOpen_commentWrapper__2xiFf\",\"btnSave\":\"attendOpen_btnSave__3h8MA\",\"btnDisabled\":\"attendOpen_btnDisabled__1bQeV\",\"saveTooltip\":\"attendOpen_saveTooltip__26d13\",\"btnSaveNoTimer\":\"attendOpen_btnSaveNoTimer__1I9U9\",\"btnCall\":\"attendOpen_btnCall__2nVZq\",\"timerDetail\":\"attendOpen_timerDetail__vPcp6\",\"blockContainer\":\"attendOpen_blockContainer__uMY4K\",\"btnMapContainer\":\"attendOpen_btnMapContainer__2bstK\",\"btnMap\":\"attendOpen_btnMap__2tGiC\",\"btnHasMap\":\"attendOpen_btnHasMap__HF61v\",\"btnClock\":\"attendOpen_btnClock__24vHq\",\"btnIcon\":\"attendOpen_btnIcon__FqGKn\",\"middleInfoContainer\":\"attendOpen_middleInfoContainer__3sTw6\",\"btnContainer\":\"attendOpen_btnContainer__2YEpV\",\"btnTakeCall\":\"attendOpen_btnTakeCall__1zXd9\",\"no-audio-call\":\"attendOpen_no-audio-call__3-wDw\",\"accordionHeader\":\"attendOpen_accordionHeader__2u4jA\",\"rotate\":\"attendOpen_rotate__38niE\",\"attendRow\":\"attendOpen_attendRow__1fYII\",\"errorMessage\":\"attendOpen_errorMessage__2fFlc\"};","// extracted by mini-css-extract-plugin\nmodule.exports = {\"adminActions\":\"openAttends_adminActions__2O8Na\",\"otherActions\":\"openAttends_otherActions__3KAPM\",\"tracker\":\"openAttends_tracker__1He9y\",\"trackerActions\":\"openAttends_trackerActions__3XGKw\",\"rotate\":\"openAttends_rotate__1UrCl\",\"tooltip\":\"openAttends_tooltip__245B4\",\"company\":\"openAttends_company__1tG05\",\"companyHeader\":\"openAttends_companyHeader__2q0ag\",\"name\":\"openAttends_name__1h2EE\",\"subtitleContainer\":\"openAttends_subtitleContainer__3ZHUq\",\"wrapper\":\"openAttends_wrapper__1jr2B\",\"title\":\"openAttends_title__29rqm\",\"content\":\"openAttends_content__yWbSx\",\"empty\":\"openAttends_empty__1Ke5K\",\"border\":\"openAttends_border__yd-g-\",\"text\":\"openAttends_text__2P6Sk\"};","// extracted by mini-css-extract-plugin\nmodule.exports = {\"wrapper\":\"customModal_wrapper__2CQuD\",\"title\":\"customModal_title__1W5om\",\"container\":\"customModal_container__oPSk3\",\"btn\":\"customModal_btn__XSVWI\",\"actions\":\"customModal_actions__154t-\",\"hideModal\":\"customModal_hideModal__18EKB\"};","// extracted by mini-css-extract-plugin\nmodule.exports = {\"contactted-wrapper\":\"attendContacted_contactted-wrapper__c2k-F\",\"contactted-container\":\"attendContacted_contactted-container__3aROu\",\"text\":\"attendContacted_text__17Cft\",\"label\":\"attendContacted_label__3uYDc\",\"no-contactted\":\"attendContacted_no-contactted__2TTzJ\"};","// extracted by mini-css-extract-plugin\nmodule.exports = {\"adminActions\":\"clientPage_adminActions__3tqWF\",\"otherActions\":\"clientPage_otherActions__2Xdrd\",\"tracker\":\"clientPage_tracker__3mi6H\",\"trackerActions\":\"clientPage_trackerActions__2mWnK\",\"rotate\":\"clientPage_rotate__tlS3v\",\"tooltip\":\"clientPage_tooltip__2o6hR\",\"company\":\"clientPage_company__24ggs\",\"companyHeader\":\"clientPage_companyHeader__1qsYh\",\"name\":\"clientPage_name__1vCnK\",\"subtitleContainer\":\"clientPage_subtitleContainer__2zPnR\",\"paginate-wrapper\":\"clientPage_paginate-wrapper__2Nqol\",\"paginate-arrow\":\"clientPage_paginate-arrow__1t3vj\",\"paginate-arrow-left\":\"clientPage_paginate-arrow-left__dphYj\",\"paginate-arrow-right\":\"clientPage_paginate-arrow-right__27sC1\",\"title\":\"clientPage_title__d2KeD\",\"subtitle\":\"clientPage_subtitle__dkpM-\",\"paginate\":\"clientPage_paginate__25R4O\",\"table\":\"clientPage_table__3xeTP\",\"header\":\"clientPage_header__1wUON\",\"header-column\":\"clientPage_header-column__1OUg6\",\"table-body\":\"clientPage_table-body__ab7O_\",\"row\":\"clientPage_row__1vUW-\",\"column\":\"clientPage_column__2VdOl\",\"removed\":\"clientPage_removed__3zkce\",\"actions\":\"clientPage_actions__gUv-Z\",\"icons\":\"clientPage_icons__21xAh\",\"add\":\"clientPage_add__d8Xuw\",\"account\":\"clientPage_account__1XPVN\",\"btn-add\":\"clientPage_btn-add__1qNh7\",\"btn\":\"clientPage_btn__UEJLy\",\"btn--add\":\"clientPage_btn--add__3a8Xs\",\"btn--add-contact-phone\":\"clientPage_btn--add-contact-phone__p8IQu\",\"btn--add-transmissor\":\"clientPage_btn--add-transmissor__1IJeo\",\"btn--attend-emergency\":\"clientPage_btn--attend-emergency__3EXj_\",\"btn--bold\":\"clientPage_btn--bold__1IbJp\",\"btn--bottom\":\"clientPage_btn--bottom__Z8OpV\",\"btn--color-gray\":\"clientPage_btn--color-gray__35rcA\",\"btn--color-green\":\"clientPage_btn--color-green__EwLeb\",\"btn--color-invalid\":\"clientPage_btn--color-invalid__2Wf5Z\",\"btn--color-orange\":\"clientPage_btn--color-orange__2GdyH\",\"btn--color-red\":\"clientPage_btn--color-red__3fmZm\",\"btn--btn-bg-color\":\"clientPage_btn--btn-bg-color__2YDQR\",\"btn--confirm-remove-modal\":\"clientPage_btn--confirm-remove-modal__2aEov\",\"btn--download\":\"clientPage_btn--download__1lfVP\",\"btn--download-text\":\"clientPage_btn--download-text__3IMJD\",\"btn--get-attend-or-attend-voice-call\":\"clientPage_btn--get-attend-or-attend-voice-call__1V5ol\",\"btn--modal-attend\":\"clientPage_btn--modal-attend__1gcR0\",\"btn--right\":\"clientPage_btn--right__1C18b\",\"btn--multi\":\"clientPage_btn--multi__21zt-\",\"btn--form\":\"clientPage_btn--form__2ruvG\",\"btn-content\":\"clientPage_btn-content__1bjzi\",\"emptyRow\":\"clientPage_emptyRow__1Fl_b\",\"toggle-container\":\"clientPage_toggle-container__C4CcZ\",\"logsIcon\":\"clientPage_logsIcon__2WIOP\",\"btn-import\":\"clientPage_btn-import__36y0U\",\"toggleButtonWrapper\":\"clientPage_toggleButtonWrapper__Hcuy3\",\"toggleButton\":\"clientPage_toggleButton__2ZHWg\",\"tableRowWrapper\":\"clientPage_tableRowWrapper__1Jd2S\",\"tableRow\":\"clientPage_tableRow__8DILe\",\"svg-icon\":\"clientPage_svg-icon__3C5Xh\",\"rowExtraInfoWrapper\":\"clientPage_rowExtraInfoWrapper__1QxEQ\",\"buttonMenuWrapper\":\"clientPage_buttonMenuWrapper__3swc9\"};","// extracted by mini-css-extract-plugin\nmodule.exports = {\"reminder-wrapper\":\"attendReminders_reminder-wrapper__3t_li\",\"reminder-minutes\":\"attendReminders_reminder-minutes__2tLyU\",\"reminder-btn-download\":\"attendReminders_reminder-btn-download__LbR3w\",\"noReminder\":\"attendReminders_noReminder__2mHWg\"};","// extracted by mini-css-extract-plugin\nmodule.exports = {\"mapErrorComp\":\"attendMap_mapErrorComp__2dHW6\",\"mapErrorMsg\":\"attendMap_mapErrorMsg__3puqz\",\"mapErrorBtn\":\"attendMap_mapErrorBtn__FJ28_\",\"mapErrorBtn--add\":\"attendMap_mapErrorBtn--add__1o8np\",\"mapErrorBtn--add-contact-phone\":\"attendMap_mapErrorBtn--add-contact-phone__Ja6Z5\",\"mapErrorBtn--add-transmissor\":\"attendMap_mapErrorBtn--add-transmissor__1hKLV\",\"mapErrorBtn--attend-emergency\":\"attendMap_mapErrorBtn--attend-emergency__1UcRf\",\"mapErrorBtn--bold\":\"attendMap_mapErrorBtn--bold__33c9D\",\"mapErrorBtn--bottom\":\"attendMap_mapErrorBtn--bottom__2bKaw\",\"mapErrorBtn--color-gray\":\"attendMap_mapErrorBtn--color-gray__BzZjm\",\"mapErrorBtn--color-green\":\"attendMap_mapErrorBtn--color-green__2rI1T\",\"mapErrorBtn--color-invalid\":\"attendMap_mapErrorBtn--color-invalid__2AUOt\",\"mapErrorBtn--color-orange\":\"attendMap_mapErrorBtn--color-orange__1CzcN\",\"mapErrorBtn--color-red\":\"attendMap_mapErrorBtn--color-red__g0qcE\",\"mapErrorBtn--btn-bg-color\":\"attendMap_mapErrorBtn--btn-bg-color__z3qb3\",\"mapErrorBtn--confirm-remove-modal\":\"attendMap_mapErrorBtn--confirm-remove-modal__2pPZN\",\"mapErrorBtn--download\":\"attendMap_mapErrorBtn--download__38QUE\",\"mapErrorBtn--download-text\":\"attendMap_mapErrorBtn--download-text__2cDA0\",\"mapErrorBtn--get-attend-or-attend-voice-call\":\"attendMap_mapErrorBtn--get-attend-or-attend-voice-call__EDoHR\",\"mapErrorBtn--modal-attend\":\"attendMap_mapErrorBtn--modal-attend__2n-_o\",\"mapErrorBtn--right\":\"attendMap_mapErrorBtn--right__21wHv\",\"mapErrorBtn--multi\":\"attendMap_mapErrorBtn--multi__2Beas\",\"mapErrorBtn--form\":\"attendMap_mapErrorBtn--form__26iox\",\"row\":\"attendMap_row__2Uud4\"};","// extracted by mini-css-extract-plugin\nmodule.exports = {\"adminActions\":\"reportAttend_adminActions__2VsRi\",\"otherActions\":\"reportAttend_otherActions__2guT3\",\"tracker\":\"reportAttend_tracker__3G7Q_\",\"trackerActions\":\"reportAttend_trackerActions__LveEu\",\"rotate\":\"reportAttend_rotate__31-op\",\"tooltip\":\"reportAttend_tooltip__33gpU\",\"company\":\"reportAttend_company__3EXxp\",\"companyHeader\":\"reportAttend_companyHeader__3W0-x\",\"name\":\"reportAttend_name__3Mc2p\",\"subtitleContainer\":\"reportAttend_subtitleContainer__2B6Ov\",\"title\":\"reportAttend_title__EJk_M\",\"subtitle\":\"reportAttend_subtitle__5ZzQR\",\"table\":\"reportAttend_table__qXbYE\",\"paginate\":\"reportAttend_paginate__2hJ33\",\"header\":\"reportAttend_header__1m3p_\",\"header-column\":\"reportAttend_header-column__1iv9j\",\"body\":\"reportAttend_body__39Jlg\",\"row\":\"reportAttend_row__1pKLY\",\"column\":\"reportAttend_column__1fTXa\",\"download\":\"reportAttend_download__2-Kh6\",\"id\":\"reportAttend_id__3Knht\",\"account\":\"reportAttend_account__1K37J\",\"client\":\"reportAttend_client__8RAuy\",\"attendant\":\"reportAttend_attendant__1eGUv\",\"dateOpen\":\"reportAttend_dateOpen__1UBHF\",\"dateClosed\":\"reportAttend_dateClosed__idhbj\",\"audioCall\":\"reportAttend_audioCall__1i49u\"};","// extracted by mini-css-extract-plugin\nmodule.exports = {\"container\":\"headerActions_container__18RTv\",\"iconButton\":\"headerActions_iconButton__2KrQk\"};","// extracted by mini-css-extract-plugin\nmodule.exports = {\"trial-wrapper\":\"trial_trial-wrapper__1Id-f\",\"content\":\"trial_content__3Brbh\",\"trial\":\"trial_trial__2H5vg\",\"btn\":\"trial_btn__21gS2\"};","// extracted by mini-css-extract-plugin\nmodule.exports = {\"adminActions\":\"closedAttends_adminActions__3vjiP\",\"otherActions\":\"closedAttends_otherActions__3iHTE\",\"tracker\":\"closedAttends_tracker__3GLS1\",\"trackerActions\":\"closedAttends_trackerActions__1fhrR\",\"rotate\":\"closedAttends_rotate__3QuvT\",\"tooltip\":\"closedAttends_tooltip__3FYKn\",\"company\":\"closedAttends_company__myDoU\",\"companyHeader\":\"closedAttends_companyHeader__Xn-NR\",\"name\":\"closedAttends_name__gbDIf\",\"subtitleContainer\":\"closedAttends_subtitleContainer__16cnU\",\"wrapper\":\"closedAttends_wrapper__1REt6\",\"title\":\"closedAttends_title__3DYA5\",\"content\":\"closedAttends_content__3LwjW\",\"empty\":\"closedAttends_empty__2Ksc6\",\"border\":\"closedAttends_border__BpySH\",\"text\":\"closedAttends_text__9oW1T\"};","// extracted by mini-css-extract-plugin\nmodule.exports = {\"info\":\"alarmsCard_info__3ap87\",\"icon\":\"alarmsCard_icon__31Fjl\",\"description\":\"alarmsCard_description__1ig7q\",\"text\":\"alarmsCard_text__1Fxzm\",\"value\":\"alarmsCard_value__1B0M4\",\"subtitle-content\":\"alarmsCard_subtitle-content__3HQxA\",\"prevDate\":\"alarmsCard_prevDate__Bdaoi\",\"currDate\":\"alarmsCard_currDate__tpcyT\"};","// extracted by mini-css-extract-plugin\nmodule.exports = {\"dashboard-wrapper\":\"dashboard_dashboard-wrapper__34neZ\",\"attendChart\":\"dashboard_attendChart__x6LZm\",\"clientChart\":\"dashboard_clientChart__3SeeA\",\"cards\":\"dashboard_cards__1bo5Y\"};","// extracted by mini-css-extract-plugin\nmodule.exports = {\"observations-container\":\"clientDetail_observations-container__289Df\",\"full-block\":\"clientDetail_full-block__3sehX\",\"age-number\":\"clientDetail_age-number__1sRUp\",\"age-years\":\"clientDetail_age-years__2Bt-E\",\"detail-button-container\":\"clientDetail_detail-button-container__2cAjT\",\"header-icon-age\":\"clientDetail_header-icon-age__1JdOa\",\"detail-call-btn\":\"clientDetail_detail-call-btn__2pZjf\",\"detail-btn-dl\":\"clientDetail_detail-btn-dl__291HJ\"};","// extracted by mini-css-extract-plugin\nmodule.exports = {\"accordionRow\":\"accordion_accordionRow__1bpSn\",\"accordionHeader\":\"accordion_accordionHeader__3tGA4\",\"rotate\":\"accordion_rotate__1T4Nu\"};","// extracted by mini-css-extract-plugin\nmodule.exports = {\"container\":\"attendWarningMessage_container__1ngJK\",\"button-warning\":\"attendWarningMessage_button-warning__1pC5f\",\"button-warning--add\":\"attendWarningMessage_button-warning--add__3scJL\",\"button-warning--add-contact-phone\":\"attendWarningMessage_button-warning--add-contact-phone__Smndl\",\"button-warning--add-transmissor\":\"attendWarningMessage_button-warning--add-transmissor__3fT91\",\"button-warning--attend-emergency\":\"attendWarningMessage_button-warning--attend-emergency__1JSQP\",\"button-warning--bold\":\"attendWarningMessage_button-warning--bold__3sMqn\",\"button-warning--bottom\":\"attendWarningMessage_button-warning--bottom__A9MFk\",\"button-warning--color-gray\":\"attendWarningMessage_button-warning--color-gray__3DATj\",\"button-warning--color-green\":\"attendWarningMessage_button-warning--color-green__1zyAj\",\"button-warning--color-invalid\":\"attendWarningMessage_button-warning--color-invalid__Chm4l\",\"button-warning--color-orange\":\"attendWarningMessage_button-warning--color-orange__OKNvN\",\"button-warning--color-red\":\"attendWarningMessage_button-warning--color-red__31INF\",\"button-warning--btn-bg-color\":\"attendWarningMessage_button-warning--btn-bg-color__3lrto\",\"button-warning--confirm-remove-modal\":\"attendWarningMessage_button-warning--confirm-remove-modal__1t5n-\",\"button-warning--download\":\"attendWarningMessage_button-warning--download__hLIrf\",\"button-warning--download-text\":\"attendWarningMessage_button-warning--download-text__30lW-\",\"button-warning--get-attend-or-attend-voice-call\":\"attendWarningMessage_button-warning--get-attend-or-attend-voice-call__1hrKC\",\"button-warning--modal-attend\":\"attendWarningMessage_button-warning--modal-attend__1CYQw\",\"button-warning--right\":\"attendWarningMessage_button-warning--right__2qmNz\",\"button-warning--multi\":\"attendWarningMessage_button-warning--multi__BqF-3\",\"button-warning--form\":\"attendWarningMessage_button-warning--form__dGton\",\"button-warning-disabled\":\"attendWarningMessage_button-warning-disabled__2-Z2M\",\"button-warning-disabled--add\":\"attendWarningMessage_button-warning-disabled--add__2wfUe\",\"button-warning-disabled--add-contact-phone\":\"attendWarningMessage_button-warning-disabled--add-contact-phone__1_1go\",\"button-warning-disabled--add-transmissor\":\"attendWarningMessage_button-warning-disabled--add-transmissor__3Ud-n\",\"button-warning-disabled--attend-emergency\":\"attendWarningMessage_button-warning-disabled--attend-emergency__4xxPK\",\"button-warning-disabled--bold\":\"attendWarningMessage_button-warning-disabled--bold__2MUFg\",\"button-warning-disabled--bottom\":\"attendWarningMessage_button-warning-disabled--bottom__1zfpY\",\"button-warning-disabled--color-gray\":\"attendWarningMessage_button-warning-disabled--color-gray__1Hvis\",\"button-warning-disabled--color-green\":\"attendWarningMessage_button-warning-disabled--color-green__fdzsj\",\"button-warning-disabled--color-invalid\":\"attendWarningMessage_button-warning-disabled--color-invalid__2XeH9\",\"button-warning-disabled--color-orange\":\"attendWarningMessage_button-warning-disabled--color-orange__QrxM-\",\"button-warning-disabled--color-red\":\"attendWarningMessage_button-warning-disabled--color-red__3AcYb\",\"button-warning-disabled--btn-bg-color\":\"attendWarningMessage_button-warning-disabled--btn-bg-color__2VMl_\",\"button-warning-disabled--confirm-remove-modal\":\"attendWarningMessage_button-warning-disabled--confirm-remove-modal__uRPms\",\"button-warning-disabled--download\":\"attendWarningMessage_button-warning-disabled--download__1T_PW\",\"button-warning-disabled--download-text\":\"attendWarningMessage_button-warning-disabled--download-text__3Tdm1\",\"button-warning-disabled--get-attend-or-attend-voice-call\":\"attendWarningMessage_button-warning-disabled--get-attend-or-attend-voice-call__2Aw-n\",\"button-warning-disabled--modal-attend\":\"attendWarningMessage_button-warning-disabled--modal-attend__1QDEx\",\"button-warning-disabled--right\":\"attendWarningMessage_button-warning-disabled--right__3cxA_\",\"button-warning-disabled--multi\":\"attendWarningMessage_button-warning-disabled--multi__fq4hU\",\"button-warning-disabled--form\":\"attendWarningMessage_button-warning-disabled--form__Nb5Ub\"};","// extracted by mini-css-extract-plugin\nmodule.exports = {\"reminder-container\":\"reminderModal_reminder-container__AhAC2\",\"reminder-hide-modal\":\"reminderModal_reminder-hide-modal__2W26T\",\"reminder-header\":\"reminderModal_reminder-header__bRAaa\",\"reminder-title\":\"reminderModal_reminder-title__2jEPV\",\"reminder-subtitle\":\"reminderModal_reminder-subtitle__16-Tt\",\"reminder-hide\":\"reminderModal_reminder-hide__UtZsx\",\"reminder-info-wrapper\":\"reminderModal_reminder-info-wrapper__2Wugl\",\"reminder-info-container\":\"reminderModal_reminder-info-container__3aqbj\",\"reminder-text-label\":\"reminderModal_reminder-text-label__rH75_\",\"reminder-text-container\":\"reminderModal_reminder-text-container__3Mz7O\",\"reminder-text-block\":\"reminderModal_reminder-text-block__mo5YE\",\"reminder-text-limit\":\"reminderModal_reminder-text-limit__FHfJj\",\"reminder-textarea\":\"reminderModal_reminder-textarea__3op0o\",\"reminder-button-container\":\"reminderModal_reminder-button-container__VHvHT\",\"softphone-container\":\"reminderModal_softphone-container__35wm-\",\"reminder-btn\":\"reminderModal_reminder-btn__h5HG0\",\"reminder-btn-disabled\":\"reminderModal_reminder-btn-disabled__Tx8FN\",\"reminder-help-label\":\"reminderModal_reminder-help-label__3EaTL\",\"reminder-contacts-wrapper\":\"reminderModal_reminder-contacts-wrapper__3x1Xo\",\"reminder-contacts-row\":\"reminderModal_reminder-contacts-row__Mx45z\",\"reminder-contacts-expanded-row\":\"reminderModal_reminder-contacts-expanded-row__2Bi_X\",\"reminder-hide-container\":\"reminderModal_reminder-hide-container__2vdVL\",\"reminder-arrow-container\":\"reminderModal_reminder-arrow-container__oqLMM\",\"reminder-hide-button\":\"reminderModal_reminder-hide-button__3uYop\",\"btn-outline\":\"reminderModal_btn-outline__7YukB\",\"extension-container\":\"reminderModal_extension-container__3-ITH\",\"extension-label\":\"reminderModal_extension-label__22sM1\",\"extension-client-info\":\"reminderModal_extension-client-info__2sz78\",\"extension-call-info\":\"reminderModal_extension-call-info__B-44Q\",\"extension-contact-info\":\"reminderModal_extension-contact-info__2-KLy\",\"extension-client-container\":\"reminderModal_extension-client-container__2ZB3S\",\"extension-contact-container\":\"reminderModal_extension-contact-container__31aF8\",\"extension-separator\":\"reminderModal_extension-separator__26t9O\",\"extension-client-title\":\"reminderModal_extension-client-title__2LirI\",\"extension-contact-title\":\"reminderModal_extension-contact-title__3fJuI\",\"extension-select-btn\":\"reminderModal_extension-select-btn__QXI-_\",\"extension-select\":\"reminderModal_extension-select__1e4a_\"};","// extracted by mini-css-extract-plugin\nmodule.exports = {\"adminActions\":\"history_adminActions__3IzJG\",\"otherActions\":\"history_otherActions__3xg-A\",\"tracker\":\"history_tracker__QIq0b\",\"trackerActions\":\"history_trackerActions__28K0S\",\"rotate\":\"history_rotate__2PBjQ\",\"tooltip\":\"history_tooltip__3Ldv0\",\"company\":\"history_company__h3Mgf\",\"companyHeader\":\"history_companyHeader__C1eVx\",\"name\":\"history_name__28XCj\",\"subtitleContainer\":\"history_subtitleContainer__1cD1w\",\"headerWrapper\":\"history_headerWrapper__2Egbp\",\"headerTitle\":\"history_headerTitle__2b7_J\",\"headerSubtitle\":\"history_headerSubtitle__2mqh0\",\"buttonsContainer\":\"history_buttonsContainer__229bZ\",\"changeButton\":\"history_changeButton__3AtxS\",\"changeButton--add\":\"history_changeButton--add__3Nx7C\",\"changeButton--add-contact-phone\":\"history_changeButton--add-contact-phone__3jurL\",\"changeButton--add-transmissor\":\"history_changeButton--add-transmissor__1D_8u\",\"changeButton--attend-emergency\":\"history_changeButton--attend-emergency__16Yo2\",\"changeButton--bold\":\"history_changeButton--bold__3xnJH\",\"changeButton--bottom\":\"history_changeButton--bottom__Jphei\",\"changeButton--color-gray\":\"history_changeButton--color-gray__1ewno\",\"changeButton--color-green\":\"history_changeButton--color-green__3lMZe\",\"changeButton--color-invalid\":\"history_changeButton--color-invalid__tcNsz\",\"changeButton--color-orange\":\"history_changeButton--color-orange__3k429\",\"changeButton--color-red\":\"history_changeButton--color-red__3UKcu\",\"changeButton--btn-bg-color\":\"history_changeButton--btn-bg-color__1MNNi\",\"changeButton--confirm-remove-modal\":\"history_changeButton--confirm-remove-modal__2WHcM\",\"changeButton--download\":\"history_changeButton--download__TlP_x\",\"changeButton--download-text\":\"history_changeButton--download-text__1DdOm\",\"changeButton--get-attend-or-attend-voice-call\":\"history_changeButton--get-attend-or-attend-voice-call__1EGTQ\",\"changeButton--modal-attend\":\"history_changeButton--modal-attend__1j1_-\",\"changeButton--right\":\"history_changeButton--right__2nmad\",\"changeButton--multi\":\"history_changeButton--multi__1Deak\",\"changeButton--form\":\"history_changeButton--form__1E17i\",\"buttonSelected\":\"history_buttonSelected__9V30i\",\"tableHeader\":\"history_tableHeader__2ThNK\",\"tableHeaderColumn\":\"history_tableHeaderColumn__1T-6j\",\"headerDataColumn\":\"history_headerDataColumn__2vcDZ\",\"headerChangedByColumn\":\"history_headerChangedByColumn__1iuno\",\"table\":\"history_table__d7uXk\",\"header\":\"history_header__A1r-U\",\"header-column\":\"history_header-column__1u3jL\",\"row\":\"history_row__W8SQk\",\"column\":\"history_column__2C55c\",\"tableBody\":\"history_tableBody__319Q-\",\"contactTableBody\":\"history_contactTableBody__W6ZZf\",\"tableBodyColumn\":\"history_tableBodyColumn__3pZ0R\",\"bodyToggleButton\":\"history_bodyToggleButton__3EApG\",\"bodyTransmitterDataColumn\":\"history_bodyTransmitterDataColumn__1YrmH\",\"bodyDataColumn\":\"history_bodyDataColumn__3Frv3\",\"bodyChangedByColumn\":\"history_bodyChangedByColumn__2SxEg\",\"tableRowWrapper\":\"history_tableRowWrapper__hwDnf\",\"tableRow\":\"history_tableRow__2_U9X\",\"rowExtraInfoWrapper\":\"history_rowExtraInfoWrapper__3Go6c\",\"extraInfoMainPoint\":\"history_extraInfoMainPoint__uYdPG\",\"extraInfoLabel\":\"history_extraInfoLabel__3ZjQF\",\"extraInfoSubPoint\":\"history_extraInfoSubPoint__2StjT\",\"subPointLabel\":\"history_subPointLabel__3V4_B\",\"extraInfoField\":\"history_extraInfoField__uQtly\",\"extraInfoValue\":\"history_extraInfoValue__3c-kU\",\"toggleButton\":\"history_toggleButton__11Mt6\",\"toggleButton--add\":\"history_toggleButton--add__2NIyw\",\"toggleButton--add-contact-phone\":\"history_toggleButton--add-contact-phone__1BW7w\",\"toggleButton--add-transmissor\":\"history_toggleButton--add-transmissor__zU2c3\",\"toggleButton--attend-emergency\":\"history_toggleButton--attend-emergency__2nASD\",\"toggleButton--bold\":\"history_toggleButton--bold__yoJCz\",\"toggleButton--bottom\":\"history_toggleButton--bottom__3NtWM\",\"toggleButton--color-gray\":\"history_toggleButton--color-gray__22f0E\",\"toggleButton--color-green\":\"history_toggleButton--color-green__3UHhP\",\"toggleButton--color-invalid\":\"history_toggleButton--color-invalid__3J0Dj\",\"toggleButton--color-orange\":\"history_toggleButton--color-orange__3zxts\",\"toggleButton--color-red\":\"history_toggleButton--color-red__1lftV\",\"toggleButton--btn-bg-color\":\"history_toggleButton--btn-bg-color__2r3-1\",\"toggleButton--confirm-remove-modal\":\"history_toggleButton--confirm-remove-modal__1cMrN\",\"toggleButton--download\":\"history_toggleButton--download__34BnR\",\"toggleButton--download-text\":\"history_toggleButton--download-text__3SEYg\",\"toggleButton--get-attend-or-attend-voice-call\":\"history_toggleButton--get-attend-or-attend-voice-call__3Mbkp\",\"toggleButton--modal-attend\":\"history_toggleButton--modal-attend__ZdnhF\",\"toggleButton--right\":\"history_toggleButton--right__3Ai_w\",\"toggleButton--multi\":\"history_toggleButton--multi__2PrTX\",\"toggleButton--form\":\"history_toggleButton--form__3M4zY\",\"select\":\"history_select__2QsP5\",\"extraInfoTextWrapper\":\"history_extraInfoTextWrapper__9KbAF\",\"infoLabel\":\"history_infoLabel__NGQFq\",\"infoText\":\"history_infoText__3LB9T\",\"deletedText\":\"history_deletedText__3tYBA\"};","// extracted by mini-css-extract-plugin\nmodule.exports = {\"adminActions\":\"management_adminActions__qDEXd\",\"otherActions\":\"management_otherActions__1Km53\",\"tracker\":\"management_tracker__10Nlb\",\"trackerActions\":\"management_trackerActions__15RaW\",\"rotate\":\"management_rotate__m26BW\",\"tooltip\":\"management_tooltip__v2shK\",\"company\":\"management_company__2NMfN\",\"companyHeader\":\"management_companyHeader__1cQ-9\",\"name\":\"management_name__LT03a\",\"subtitleContainer\":\"management_subtitleContainer__1BEEn\",\"paginate-wrapper\":\"management_paginate-wrapper__2EO5I\",\"paginate-arrow\":\"management_paginate-arrow__APWNH\",\"paginate-arrow-left\":\"management_paginate-arrow-left__2va3n\",\"paginate-arrow-right\":\"management_paginate-arrow-right__20Jmp\",\"paginate\":\"management_paginate__3vCTY\",\"table\":\"management_table__2E1Hv\",\"header\":\"management_header__3BOa6\",\"header-column\":\"management_header-column__JLVHI\",\"actions\":\"management_actions__KWpbD\",\"btn-add\":\"management_btn-add__10mS7\",\"btn-content\":\"management_btn-content__1m4x4\",\"title\":\"management_title__X-XWz\",\"btn\":\"management_btn__2MpyB\",\"content\":\"management_content__OVaKG\",\"row\":\"management_row__VbVKp\",\"removed\":\"management_removed__3npK_\",\"column\":\"management_column__1jboY\",\"username\":\"management_username__7iCFs\",\"group\":\"management_group__3iCyU\",\"email\":\"management_email__WkBuC\",\"column-icons\":\"management_column-icons__Dv3Yo\",\"link\":\"management_link__10KNx\",\"icons\":\"management_icons__1OVpK\",\"zone\":\"management_zone__xTARK\",\"description\":\"management_description__1ei62\",\"subtitle\":\"management_subtitle__2tPlG\",\"emptyRow\":\"management_emptyRow__3qUQX\",\"tableRow\":\"management_tableRow__4q9Pv\",\"tableRowWrapper\":\"management_tableRowWrapper__2YidY\",\"table-body\":\"management_table-body__J6s06\",\"toggle-container\":\"management_toggle-container__2Qski\",\"logsIcon\":\"management_logsIcon__649no\",\"account\":\"management_account__2HSrl\",\"btn-import\":\"management_btn-import__1MF6t\",\"btn-attendant\":\"management_btn-attendant__3fQnS\",\"toggleButtonWrapper\":\"management_toggleButtonWrapper__35PJM\",\"toggleButton\":\"management_toggleButton__-ftnL\",\"emptyButton\":\"management_emptyButton__2Xdzf\",\"rowExtraInfoWrapper\":\"management_rowExtraInfoWrapper__3pV6a\",\"buttonMenuWrapper\":\"management_buttonMenuWrapper__qj1UQ\",\"mobileTable\":\"management_mobileTable__2qZwZ\"};","// extracted by mini-css-extract-plugin\nmodule.exports = {\"wrapper\":\"form_wrapper__31olb\",\"title\":\"form_title__3SMWe\",\"title--client-name\":\"form_title--client-name__2OVWd\",\"container\":\"form_container__uoTRr\",\"required\":\"form_required__2sQbb\",\"input\":\"form_input__22CB9\",\"input--disable\":\"form_input--disable__3JUVp\",\"input--error\":\"form_input--error__1L1th\",\"input--ok\":\"form_input--ok__Uz6zW\",\"select\":\"form_select__UbQVa\",\"select--enable\":\"form_select--enable__2X2qj\",\"checkbox\":\"form_checkbox__580f2\",\"message\":\"form_message__3mQiU\",\"message--100\":\"form_message--100__2Xq0-\",\"message--50\":\"form_message--50__IRBl5\",\"disabled\":\"form_disabled__3CBGd\"};","// extracted by mini-css-extract-plugin\nmodule.exports = {\"main\":\"errorBoundary_main__3kP-8\",\"error-btn\":\"errorBoundary_error-btn__3J1iR\",\"error-btn--add\":\"errorBoundary_error-btn--add__2R8Fz\",\"error-btn--add-contact-phone\":\"errorBoundary_error-btn--add-contact-phone__wYNG5\",\"error-btn--add-transmissor\":\"errorBoundary_error-btn--add-transmissor__1ANvC\",\"error-btn--attend-emergency\":\"errorBoundary_error-btn--attend-emergency__qj69A\",\"error-btn--bold\":\"errorBoundary_error-btn--bold__1sPNQ\",\"error-btn--bottom\":\"errorBoundary_error-btn--bottom__UoSPz\",\"error-btn--color-gray\":\"errorBoundary_error-btn--color-gray__3Jn-j\",\"error-btn--color-green\":\"errorBoundary_error-btn--color-green__1c52T\",\"error-btn--color-invalid\":\"errorBoundary_error-btn--color-invalid__3IA1N\",\"error-btn--color-orange\":\"errorBoundary_error-btn--color-orange__61h5Z\",\"error-btn--color-red\":\"errorBoundary_error-btn--color-red__3CNnH\",\"error-btn--btn-bg-color\":\"errorBoundary_error-btn--btn-bg-color__smX9k\",\"error-btn--confirm-remove-modal\":\"errorBoundary_error-btn--confirm-remove-modal__1M0-a\",\"error-btn--download\":\"errorBoundary_error-btn--download__3TU5v\",\"error-btn--download-text\":\"errorBoundary_error-btn--download-text__3eOYA\",\"error-btn--get-attend-or-attend-voice-call\":\"errorBoundary_error-btn--get-attend-or-attend-voice-call__1bwz0\",\"error-btn--modal-attend\":\"errorBoundary_error-btn--modal-attend__2qUeT\",\"error-btn--right\":\"errorBoundary_error-btn--right__sgpMP\",\"error-btn--multi\":\"errorBoundary_error-btn--multi__3b9QC\",\"error-btn--form\":\"errorBoundary_error-btn--form__29K8n\"};","// extracted by mini-css-extract-plugin\nmodule.exports = {\"wrapper\":\"modalConfirm_wrapper__3h7Rg\",\"title\":\"modalConfirm_title__3bt9L\",\"container\":\"modalConfirm_container__1bCHO\",\"btn\":\"modalConfirm_btn__VaJ6G\"};","// extracted by mini-css-extract-plugin\nmodule.exports = {\"icon\":\"tooltipContainer_icon__26Wf3\",\"iconText\":\"tooltipContainer_iconText__2nYM0\"};","// extracted by mini-css-extract-plugin\nmodule.exports = {\"header-wrapper\":\"attendHeader_header-wrapper__2NMGe\",\"left-wrapper\":\"attendHeader_left-wrapper__MWMEF\",\"right-wrapper\":\"attendHeader_right-wrapper__2JWnD\",\"client-name\":\"attendHeader_client-name__1Zij0\",\"closed-call\":\"attendHeader_closed-call__vhMib\",\"btn-content\":\"attendHeader_btn-content__2hJ1O\",\"btn-call\":\"attendHeader_btn-call__1w2tX\",\"btn-call--add\":\"attendHeader_btn-call--add__3kSU8\",\"btn-call--add-contact-phone\":\"attendHeader_btn-call--add-contact-phone__2NwXZ\",\"btn-call--add-transmissor\":\"attendHeader_btn-call--add-transmissor__1tXiL\",\"btn-call--attend-emergency\":\"attendHeader_btn-call--attend-emergency__vU6H1\",\"btn-call--bold\":\"attendHeader_btn-call--bold__3DF18\",\"btn-call--bottom\":\"attendHeader_btn-call--bottom__3g32G\",\"btn-call--color-gray\":\"attendHeader_btn-call--color-gray__1oVEn\",\"btn-call--color-green\":\"attendHeader_btn-call--color-green__cvgY2\",\"btn-call--color-invalid\":\"attendHeader_btn-call--color-invalid__1MVmV\",\"btn-call--color-orange\":\"attendHeader_btn-call--color-orange__1dBNd\",\"btn-call--color-red\":\"attendHeader_btn-call--color-red__1K6fJ\",\"btn-call--btn-bg-color\":\"attendHeader_btn-call--btn-bg-color__caDBW\",\"btn-call--confirm-remove-modal\":\"attendHeader_btn-call--confirm-remove-modal__1q2Yr\",\"btn-call--download\":\"attendHeader_btn-call--download__3rN9x\",\"btn-call--download-text\":\"attendHeader_btn-call--download-text__37Oz5\",\"btn-call--get-attend-or-attend-voice-call\":\"attendHeader_btn-call--get-attend-or-attend-voice-call__2xHE8\",\"btn-call--modal-attend\":\"attendHeader_btn-call--modal-attend__26BNW\",\"btn-call--right\":\"attendHeader_btn-call--right__28GGf\",\"btn-call--multi\":\"attendHeader_btn-call--multi__qswKC\",\"btn-call--form\":\"attendHeader_btn-call--form__e97au\",\"btn-external-call\":\"attendHeader_btn-external-call__176M3\",\"btn-external-call--add\":\"attendHeader_btn-external-call--add__1f8lU\",\"btn-external-call--add-contact-phone\":\"attendHeader_btn-external-call--add-contact-phone__ZZxsv\",\"btn-external-call--add-transmissor\":\"attendHeader_btn-external-call--add-transmissor__3Tjea\",\"btn-external-call--attend-emergency\":\"attendHeader_btn-external-call--attend-emergency__3r0Js\",\"btn-external-call--bold\":\"attendHeader_btn-external-call--bold__265fE\",\"btn-external-call--bottom\":\"attendHeader_btn-external-call--bottom__t9mOi\",\"btn-external-call--color-gray\":\"attendHeader_btn-external-call--color-gray__1I5gK\",\"btn-external-call--color-green\":\"attendHeader_btn-external-call--color-green__1jWEC\",\"btn-external-call--color-invalid\":\"attendHeader_btn-external-call--color-invalid__4usOp\",\"btn-external-call--color-orange\":\"attendHeader_btn-external-call--color-orange__3vzb5\",\"btn-external-call--color-red\":\"attendHeader_btn-external-call--color-red__2phIa\",\"btn-external-call--btn-bg-color\":\"attendHeader_btn-external-call--btn-bg-color__3BZcM\",\"btn-external-call--confirm-remove-modal\":\"attendHeader_btn-external-call--confirm-remove-modal__W58X9\",\"btn-external-call--download\":\"attendHeader_btn-external-call--download__2IbGG\",\"btn-external-call--download-text\":\"attendHeader_btn-external-call--download-text__2nHrV\",\"btn-external-call--get-attend-or-attend-voice-call\":\"attendHeader_btn-external-call--get-attend-or-attend-voice-call__1OPVc\",\"btn-external-call--modal-attend\":\"attendHeader_btn-external-call--modal-attend__3Mv8S\",\"btn-external-call--right\":\"attendHeader_btn-external-call--right__UGMzF\",\"btn-external-call--multi\":\"attendHeader_btn-external-call--multi__3RwWz\",\"btn-external-call--form\":\"attendHeader_btn-external-call--form__-e0kR\",\"btn-wide\":\"attendHeader_btn-wide__1B2fc\",\"warning-container\":\"attendHeader_warning-container__30U-Q\",\"button-warning\":\"attendHeader_button-warning__277ne\",\"button-warning--add\":\"attendHeader_button-warning--add__28myf\",\"button-warning--add-contact-phone\":\"attendHeader_button-warning--add-contact-phone__21I02\",\"button-warning--add-transmissor\":\"attendHeader_button-warning--add-transmissor__abmbL\",\"button-warning--attend-emergency\":\"attendHeader_button-warning--attend-emergency__3BUxO\",\"button-warning--bold\":\"attendHeader_button-warning--bold__slDc1\",\"button-warning--bottom\":\"attendHeader_button-warning--bottom__2snXT\",\"button-warning--color-gray\":\"attendHeader_button-warning--color-gray__31cyb\",\"button-warning--color-green\":\"attendHeader_button-warning--color-green__2NGX5\",\"button-warning--color-invalid\":\"attendHeader_button-warning--color-invalid__5iB5I\",\"button-warning--color-orange\":\"attendHeader_button-warning--color-orange__2jUW1\",\"button-warning--color-red\":\"attendHeader_button-warning--color-red___yapo\",\"button-warning--btn-bg-color\":\"attendHeader_button-warning--btn-bg-color__1oEGq\",\"button-warning--confirm-remove-modal\":\"attendHeader_button-warning--confirm-remove-modal__3Tikv\",\"button-warning--download\":\"attendHeader_button-warning--download__3ouS7\",\"button-warning--download-text\":\"attendHeader_button-warning--download-text__3pGxU\",\"button-warning--get-attend-or-attend-voice-call\":\"attendHeader_button-warning--get-attend-or-attend-voice-call__3amDW\",\"button-warning--modal-attend\":\"attendHeader_button-warning--modal-attend__3xsbk\",\"button-warning--right\":\"attendHeader_button-warning--right__twtmc\",\"button-warning--multi\":\"attendHeader_button-warning--multi__2Jr1Z\",\"button-warning--form\":\"attendHeader_button-warning--form__1Gc6j\",\"button-warning-disabled\":\"attendHeader_button-warning-disabled__QmJGv\",\"button-warning-disabled--add\":\"attendHeader_button-warning-disabled--add__1bwun\",\"button-warning-disabled--add-contact-phone\":\"attendHeader_button-warning-disabled--add-contact-phone__3TcE0\",\"button-warning-disabled--add-transmissor\":\"attendHeader_button-warning-disabled--add-transmissor__3jBhl\",\"button-warning-disabled--attend-emergency\":\"attendHeader_button-warning-disabled--attend-emergency__3sFDf\",\"button-warning-disabled--bold\":\"attendHeader_button-warning-disabled--bold__2ni6H\",\"button-warning-disabled--bottom\":\"attendHeader_button-warning-disabled--bottom__3vu8K\",\"button-warning-disabled--color-gray\":\"attendHeader_button-warning-disabled--color-gray__z-oCS\",\"button-warning-disabled--color-green\":\"attendHeader_button-warning-disabled--color-green__2TqeT\",\"button-warning-disabled--color-invalid\":\"attendHeader_button-warning-disabled--color-invalid__1m9CW\",\"button-warning-disabled--color-orange\":\"attendHeader_button-warning-disabled--color-orange__1gv3o\",\"button-warning-disabled--color-red\":\"attendHeader_button-warning-disabled--color-red__3f81d\",\"button-warning-disabled--btn-bg-color\":\"attendHeader_button-warning-disabled--btn-bg-color__8zvL5\",\"button-warning-disabled--confirm-remove-modal\":\"attendHeader_button-warning-disabled--confirm-remove-modal__27rUJ\",\"button-warning-disabled--download\":\"attendHeader_button-warning-disabled--download__1utNA\",\"button-warning-disabled--download-text\":\"attendHeader_button-warning-disabled--download-text__3Dp1m\",\"button-warning-disabled--get-attend-or-attend-voice-call\":\"attendHeader_button-warning-disabled--get-attend-or-attend-voice-call__1wMAC\",\"button-warning-disabled--modal-attend\":\"attendHeader_button-warning-disabled--modal-attend__XAJDi\",\"button-warning-disabled--right\":\"attendHeader_button-warning-disabled--right__35ZLB\",\"button-warning-disabled--multi\":\"attendHeader_button-warning-disabled--multi__1o7tk\",\"button-warning-disabled--form\":\"attendHeader_button-warning-disabled--form__r3Cs4\",\"btnTakeCall\":\"attendHeader_btnTakeCall__3Gy5w\",\"btnTakeCall--add\":\"attendHeader_btnTakeCall--add__32y3m\",\"btnTakeCall--add-contact-phone\":\"attendHeader_btnTakeCall--add-contact-phone__utQSH\",\"btnTakeCall--add-transmissor\":\"attendHeader_btnTakeCall--add-transmissor__1BDMI\",\"btnTakeCall--attend-emergency\":\"attendHeader_btnTakeCall--attend-emergency__2lJFC\",\"btnTakeCall--bold\":\"attendHeader_btnTakeCall--bold__32EY4\",\"btnTakeCall--bottom\":\"attendHeader_btnTakeCall--bottom__1tmw_\",\"btnTakeCall--color-gray\":\"attendHeader_btnTakeCall--color-gray__2x4WK\",\"btnTakeCall--color-green\":\"attendHeader_btnTakeCall--color-green__10sF7\",\"btnTakeCall--color-invalid\":\"attendHeader_btnTakeCall--color-invalid__I1-Ki\",\"btnTakeCall--color-orange\":\"attendHeader_btnTakeCall--color-orange__1U1ne\",\"btnTakeCall--color-red\":\"attendHeader_btnTakeCall--color-red__1XtWw\",\"btnTakeCall--btn-bg-color\":\"attendHeader_btnTakeCall--btn-bg-color__3Xuj7\",\"btnTakeCall--confirm-remove-modal\":\"attendHeader_btnTakeCall--confirm-remove-modal__1G-1s\",\"btnTakeCall--download\":\"attendHeader_btnTakeCall--download__1M7fr\",\"btnTakeCall--download-text\":\"attendHeader_btnTakeCall--download-text__3Dm-j\",\"btnTakeCall--get-attend-or-attend-voice-call\":\"attendHeader_btnTakeCall--get-attend-or-attend-voice-call__3vQXF\",\"btnTakeCall--modal-attend\":\"attendHeader_btnTakeCall--modal-attend__1Eckl\",\"btnTakeCall--right\":\"attendHeader_btnTakeCall--right__1MjkQ\",\"btnTakeCall--multi\":\"attendHeader_btnTakeCall--multi__1oI7s\",\"btnTakeCall--form\":\"attendHeader_btnTakeCall--form__1qXa6\",\"btn-hangup-container\":\"attendHeader_btn-hangup-container__2mKE6\",\"btn-audio-single\":\"attendHeader_btn-audio-single__HFvtv\",\"btn-listen-color\":\"attendHeader_btn-listen-color__3KOBD\",\"btn-speak-color\":\"attendHeader_btn-speak-color__10jvo\",\"btn-two-way-audio-color\":\"attendHeader_btn-two-way-audio-color__KZJBK\",\"btn-audio-control\":\"attendHeader_btn-audio-control__3whKu\",\"age-number\":\"attendHeader_age-number__nLS9c\",\"age-years\":\"attendHeader_age-years__3g_Vr\",\"clock-frame\":\"attendHeader_clock-frame__2SRRy\",\"clock-digits\":\"attendHeader_clock-digits__3UbNK\",\"btn-clock\":\"attendHeader_btn-clock__2XEUv\",\"row\":\"attendHeader_row__3hI8g\",\"audio-status-text\":\"attendHeader_audio-status-text__2tKfv\",\"btn-reply\":\"attendHeader_btn-reply__10AU8\",\"btn-send\":\"attendHeader_btn-send__cf6yA\",\"btn-cancel\":\"attendHeader_btn-cancel__DUHrN\",\"btn-reply-container\":\"attendHeader_btn-reply-container__-G0h0\",\"client-info-container\":\"attendHeader_client-info-container__3Ph51\",\"clock-container\":\"attendHeader_clock-container__1jGSa\",\"call-controls-container\":\"attendHeader_call-controls-container__YAa8r\",\"call-alexa-container\":\"attendHeader_call-alexa-container__17R69\",\"call-alexa-modal-container\":\"attendHeader_call-alexa-modal-container__B0BYQ\",\"call-client-message\":\"attendHeader_call-client-message__WCSfv\",\"call-message-label\":\"attendHeader_call-message-label__2iCBY\",\"call-info-text\":\"attendHeader_call-info-text__3ukHp\",\"call-audio-status\":\"attendHeader_call-audio-status__bDY9Z\",\"call-message-text\":\"attendHeader_call-message-text__2pjM4\"};","// extracted by mini-css-extract-plugin\nmodule.exports = {\"wrapper\":\"modalConfirmRemove_wrapper__iwi1D\",\"text\":\"modalConfirmRemove_text__gjA1C\",\"container\":\"modalConfirmRemove_container__3nhN2\",\"btn\":\"modalConfirmRemove_btn__1G7YR\"};","// extracted by mini-css-extract-plugin\nmodule.exports = {\"wrapper\":\"attendAudioInformation_wrapper__2CxTt\",\"btn-download\":\"attendAudioInformation_btn-download__2zfnf\"};","// extracted by mini-css-extract-plugin\nmodule.exports = {\"commentWrapper\":\"attendComment_commentWrapper__1fDJd\",\"textArea\":\"attendComment_textArea__uZmO8\"};","// extracted by mini-css-extract-plugin\nmodule.exports = {\"form-text-error\":\"companyForm_form-text-error__28LPZ\"};","// extracted by mini-css-extract-plugin\nmodule.exports = {\"wrapper\":\"configuration_wrapper__2uS02\",\"row\":\"configuration_row__27aMU\",\"saveContainer\":\"configuration_saveContainer__2wiFf\",\"innerCard\":\"configuration_innerCard__3ooci\",\"outerCard\":\"configuration_outerCard__1Xj3m\",\"header\":\"configuration_header__1Fr6K\",\"labelText\":\"configuration_labelText__3aSSo\",\"content\":\"configuration_content__2kEHf\",\"item\":\"configuration_item__arTVL\",\"body\":\"configuration_body__2M9jY\",\"options\":\"configuration_options__12dmR\",\"text\":\"configuration_text__3vX6y\",\"toggle\":\"configuration_toggle__q6Nt8\",\"divider\":\"configuration_divider__3_7uC\",\"btnSave\":\"configuration_btnSave__xam90\",\"btnSave--add\":\"configuration_btnSave--add__UbAY1\",\"btnSave--add-contact-phone\":\"configuration_btnSave--add-contact-phone__1YD7E\",\"btnSave--add-transmissor\":\"configuration_btnSave--add-transmissor__b8fJ3\",\"btnSave--attend-emergency\":\"configuration_btnSave--attend-emergency__3oknk\",\"btnSave--bold\":\"configuration_btnSave--bold__ZuMMn\",\"btnSave--bottom\":\"configuration_btnSave--bottom__2dhWq\",\"btnSave--color-gray\":\"configuration_btnSave--color-gray__36MaC\",\"btnSave--color-green\":\"configuration_btnSave--color-green__3ysr2\",\"btnSave--color-invalid\":\"configuration_btnSave--color-invalid__D7C7z\",\"btnSave--color-orange\":\"configuration_btnSave--color-orange__m2ADP\",\"btnSave--color-red\":\"configuration_btnSave--color-red__nICNe\",\"btnSave--btn-bg-color\":\"configuration_btnSave--btn-bg-color__jquMN\",\"btnSave--confirm-remove-modal\":\"configuration_btnSave--confirm-remove-modal__wqSPw\",\"btnSave--download\":\"configuration_btnSave--download__2x5nJ\",\"btnSave--download-text\":\"configuration_btnSave--download-text__1Y2Ph\",\"btnSave--get-attend-or-attend-voice-call\":\"configuration_btnSave--get-attend-or-attend-voice-call__2woTw\",\"btnSave--modal-attend\":\"configuration_btnSave--modal-attend__1FXT5\",\"btnSave--right\":\"configuration_btnSave--right__lrY49\",\"btnSave--multi\":\"configuration_btnSave--multi__2dDeW\",\"btnSave--form\":\"configuration_btnSave--form__2JJ9o\",\"middleContent\":\"configuration_middleContent__2Ji4G\",\"hideModal\":\"configuration_hideModal__1PPs_\"};","// extracted by mini-css-extract-plugin\nmodule.exports = {\"adminActions\":\"attendsPage_adminActions__2aoHu\",\"otherActions\":\"attendsPage_otherActions__27mVa\",\"tracker\":\"attendsPage_tracker__2zLda\",\"trackerActions\":\"attendsPage_trackerActions__UrO1u\",\"rotate\":\"attendsPage_rotate__1x44o\",\"tooltip\":\"attendsPage_tooltip__3SB7R\",\"company\":\"attendsPage_company__2csXK\",\"companyHeader\":\"attendsPage_companyHeader__2EX-7\",\"name\":\"attendsPage_name__1OIkQ\",\"subtitleContainer\":\"attendsPage_subtitleContainer__1w0eh\",\"paginate-wrapper\":\"attendsPage_paginate-wrapper__3ghPC\",\"paginate-arrow\":\"attendsPage_paginate-arrow__-UYf_\",\"paginate-arrow-left\":\"attendsPage_paginate-arrow-left__3-FLD\",\"paginate-arrow-right\":\"attendsPage_paginate-arrow-right__1tjL_\",\"title\":\"attendsPage_title__1O2n1\",\"subtitle\":\"attendsPage_subtitle__3Lok7\",\"paginate\":\"attendsPage_paginate__3BozJ\",\"table\":\"attendsPage_table__2g0S5\",\"header\":\"attendsPage_header__-Kj89\",\"header-column\":\"attendsPage_header-column__3rcTF\",\"row\":\"attendsPage_row__nuCFm\",\"column\":\"attendsPage_column__3ZoYT\",\"removed\":\"attendsPage_removed__1S6fi\",\"actions\":\"attendsPage_actions__1xldb\",\"icons\":\"attendsPage_icons__3pBKA\",\"add\":\"attendsPage_add__syLFs\",\"table-body\":\"attendsPage_table-body___96mE\",\"id\":\"attendsPage_id__22wd3\",\"filterBtn\":\"attendsPage_filterBtn__1-lyQ\",\"filterBtn--add\":\"attendsPage_filterBtn--add__auocw\",\"filterBtn--add-contact-phone\":\"attendsPage_filterBtn--add-contact-phone__JLjK4\",\"filterBtn--add-transmissor\":\"attendsPage_filterBtn--add-transmissor__3KUPz\",\"filterBtn--attend-emergency\":\"attendsPage_filterBtn--attend-emergency__2OpLP\",\"filterBtn--bold\":\"attendsPage_filterBtn--bold__3ePH0\",\"filterBtn--bottom\":\"attendsPage_filterBtn--bottom__3WqbE\",\"filterBtn--color-gray\":\"attendsPage_filterBtn--color-gray__2X6wH\",\"filterBtn--color-green\":\"attendsPage_filterBtn--color-green__3igF7\",\"filterBtn--color-invalid\":\"attendsPage_filterBtn--color-invalid__1EO49\",\"filterBtn--color-orange\":\"attendsPage_filterBtn--color-orange__1WSAW\",\"filterBtn--color-red\":\"attendsPage_filterBtn--color-red__3tMmD\",\"filterBtn--btn-bg-color\":\"attendsPage_filterBtn--btn-bg-color__3k1Xy\",\"filterBtn--confirm-remove-modal\":\"attendsPage_filterBtn--confirm-remove-modal__3RBb_\",\"filterBtn--download\":\"attendsPage_filterBtn--download__1_hv_\",\"filterBtn--download-text\":\"attendsPage_filterBtn--download-text__1sSXt\",\"filterBtn--get-attend-or-attend-voice-call\":\"attendsPage_filterBtn--get-attend-or-attend-voice-call__1tmbA\",\"filterBtn--modal-attend\":\"attendsPage_filterBtn--modal-attend__3z99p\",\"filterBtn--right\":\"attendsPage_filterBtn--right__3AFC0\",\"filterBtn--multi\":\"attendsPage_filterBtn--multi__305ky\",\"filterBtn--form\":\"attendsPage_filterBtn--form__2ZKJE\",\"dateClosed\":\"attendsPage_dateClosed__3ZFvX\",\"dateOpen\":\"attendsPage_dateOpen__2i8ii\",\"priority\":\"attendsPage_priority__3K-Mk\",\"audioIcon\":\"attendsPage_audioIcon__1XGXi\",\"resolvedBy\":\"attendsPage_resolvedBy__1naW8\",\"attendant\":\"attendsPage_attendant__3Mp7y\",\"client\":\"attendsPage_client__3S9Wf\",\"button\":\"attendsPage_button__2pJQd\",\"headerBtn\":\"attendsPage_headerBtn__2VLk5\"};","// extracted by mini-css-extract-plugin\nmodule.exports = {\"adminActions\":\"contactPage_adminActions__ApAPV\",\"otherActions\":\"contactPage_otherActions__VLzkQ\",\"tracker\":\"contactPage_tracker__1r2y2\",\"trackerActions\":\"contactPage_trackerActions__36fjX\",\"rotate\":\"contactPage_rotate__n-LdV\",\"tooltip\":\"contactPage_tooltip__149n4\",\"company\":\"contactPage_company__pyam3\",\"companyHeader\":\"contactPage_companyHeader__4cqWz\",\"name\":\"contactPage_name__1ttlX\",\"subtitleContainer\":\"contactPage_subtitleContainer__2YkWI\",\"paginate-wrapper\":\"contactPage_paginate-wrapper__2-Kcm\",\"paginate-arrow\":\"contactPage_paginate-arrow__2fEHK\",\"paginate-arrow-left\":\"contactPage_paginate-arrow-left__2KmKC\",\"paginate-arrow-right\":\"contactPage_paginate-arrow-right__3pupQ\",\"title\":\"contactPage_title__AVcxK\",\"subtitle\":\"contactPage_subtitle__uZVQc\",\"paginate\":\"contactPage_paginate__1fr5s\",\"table\":\"contactPage_table__zhICB\",\"table-body\":\"contactPage_table-body__2vIzC\",\"header\":\"contactPage_header__1nSB-\",\"header-column\":\"contactPage_header-column__nvBSD\",\"row\":\"contactPage_row__2ESZc\",\"column\":\"contactPage_column__3EHN7\",\"removed\":\"contactPage_removed__1ilUK\",\"actions\":\"contactPage_actions__2hUVF\",\"nameBtn\":\"contactPage_nameBtn__2Z-dV\",\"icons\":\"contactPage_icons__3M158\",\"btn-add\":\"contactPage_btn-add__YFvPc\",\"add\":\"contactPage_add__cmMTj\",\"priority\":\"contactPage_priority__1ah-r\",\"nameHeader\":\"contactPage_nameHeader__3e3KL\",\"emptyRow\":\"contactPage_emptyRow__uoHJt\",\"toggle-container\":\"contactPage_toggle-container__3roci\",\"logsIcon\":\"contactPage_logsIcon__244nu\",\"btn-import\":\"contactPage_btn-import__3XdWW\",\"toggleButtonWrapper\":\"contactPage_toggleButtonWrapper__2UXGd\",\"toggleButton\":\"contactPage_toggleButton__HS4SZ\",\"tableRowWrapper\":\"contactPage_tableRowWrapper__WfXR5\",\"tableRow\":\"contactPage_tableRow__3Evu4\",\"rowExtraInfoWrapper\":\"contactPage_rowExtraInfoWrapper__2xkWd\",\"buttonMenuWrapper\":\"contactPage_buttonMenuWrapper__3VFBE\",\"divTitleHeader\":\"contactPage_divTitleHeader__2Z2jh\",\"divButtonHeader\":\"contactPage_divButtonHeader__1nWl7\"};","// extracted by mini-css-extract-plugin\nmodule.exports = {\"adminActions\":\"transmitterPage_adminActions__1OcVX\",\"otherActions\":\"transmitterPage_otherActions__2GDgi\",\"tracker\":\"transmitterPage_tracker__1iRkQ\",\"trackerActions\":\"transmitterPage_trackerActions__-iZST\",\"rotate\":\"transmitterPage_rotate__3lpBC\",\"tooltip\":\"transmitterPage_tooltip__WOHBu\",\"company\":\"transmitterPage_company__3ttII\",\"companyHeader\":\"transmitterPage_companyHeader__QX5gN\",\"name\":\"transmitterPage_name__14TTy\",\"subtitleContainer\":\"transmitterPage_subtitleContainer__qXpnk\",\"paginate-wrapper\":\"transmitterPage_paginate-wrapper__3vk6i\",\"paginate-arrow\":\"transmitterPage_paginate-arrow__1BSuy\",\"paginate-arrow-left\":\"transmitterPage_paginate-arrow-left__2cpXZ\",\"paginate-arrow-right\":\"transmitterPage_paginate-arrow-right__4n6iX\",\"title\":\"transmitterPage_title__2JZiu\",\"subtitle\":\"transmitterPage_subtitle__1IX9K\",\"paginate\":\"transmitterPage_paginate__1-N7p\",\"table\":\"transmitterPage_table__3Ecr6\",\"header\":\"transmitterPage_header__2stAr\",\"header-column\":\"transmitterPage_header-column__13_Gk\",\"row\":\"transmitterPage_row__14xy_\",\"column\":\"transmitterPage_column__1bi2n\",\"removed\":\"transmitterPage_removed__3DoUm\",\"actions\":\"transmitterPage_actions__1m9aA\",\"icons\":\"transmitterPage_icons__3Jy1f\",\"add\":\"transmitterPage_add__2Q7OS\",\"btn-add\":\"transmitterPage_btn-add__2TsTJ\",\"btn\":\"transmitterPage_btn__1zdMi\",\"btn--add\":\"transmitterPage_btn--add__1k1SK\",\"btn--add-contact-phone\":\"transmitterPage_btn--add-contact-phone__2X2bZ\",\"btn--add-transmissor\":\"transmitterPage_btn--add-transmissor__3USEr\",\"btn--attend-emergency\":\"transmitterPage_btn--attend-emergency__3rgod\",\"btn--bold\":\"transmitterPage_btn--bold__1_UW-\",\"btn--bottom\":\"transmitterPage_btn--bottom__tLzVu\",\"btn--color-gray\":\"transmitterPage_btn--color-gray__2BgsW\",\"btn--color-green\":\"transmitterPage_btn--color-green__1aK-E\",\"btn--color-invalid\":\"transmitterPage_btn--color-invalid__LEVoY\",\"btn--color-orange\":\"transmitterPage_btn--color-orange__1ZmSV\",\"btn--color-red\":\"transmitterPage_btn--color-red__1kx6e\",\"btn--btn-bg-color\":\"transmitterPage_btn--btn-bg-color__2KrUD\",\"btn--confirm-remove-modal\":\"transmitterPage_btn--confirm-remove-modal__21ThN\",\"btn--download\":\"transmitterPage_btn--download__1nUh9\",\"btn--download-text\":\"transmitterPage_btn--download-text__2IafX\",\"btn--get-attend-or-attend-voice-call\":\"transmitterPage_btn--get-attend-or-attend-voice-call__YgUDO\",\"btn--modal-attend\":\"transmitterPage_btn--modal-attend__1F9kn\",\"btn--right\":\"transmitterPage_btn--right__mdAto\",\"btn--multi\":\"transmitterPage_btn--multi__EYrRG\",\"btn--form\":\"transmitterPage_btn--form__R6Nki\",\"btn-content\":\"transmitterPage_btn-content__2gK59\",\"zone\":\"transmitterPage_zone__3Kx_R\",\"description\":\"transmitterPage_description__2iq8f\",\"emptyRow\":\"transmitterPage_emptyRow__3Dje9\",\"table-body\":\"transmitterPage_table-body__2dTGK\",\"toggle-container\":\"transmitterPage_toggle-container__1E3MD\",\"logsIcon\":\"transmitterPage_logsIcon__3KJyT\",\"account\":\"transmitterPage_account__3GZZz\",\"btn-import\":\"transmitterPage_btn-import__1ga9e\",\"toggleButtonWrapper\":\"transmitterPage_toggleButtonWrapper__30nLV\",\"toggleButton\":\"transmitterPage_toggleButton__1wBkg\",\"tableRowWrapper\":\"transmitterPage_tableRowWrapper__18G9W\",\"tableRow\":\"transmitterPage_tableRow__PiKIA\",\"rowExtraInfoWrapper\":\"transmitterPage_rowExtraInfoWrapper__r75FE\",\"buttonMenuWrapper\":\"transmitterPage_buttonMenuWrapper__2NGaH\",\"mobileTable\":\"transmitterPage_mobileTable__2Yqf5\"};","// extracted by mini-css-extract-plugin\nmodule.exports = {\"sidebar\":\"sidebar_sidebar__2UqRw\",\"ul\":\"sidebar_ul__1XrQ7\",\"icons\":\"sidebar_icons__1v0jX\",\"iconsnopad\":\"sidebar_iconsnopad__dbPI6\",\"li\":\"sidebar_li__sGWmu\",\"active\":\"sidebar_active__3zkn6\",\"text\":\"sidebar_text__L6eD-\",\"link\":\"sidebar_link__oNsNh\",\"svg\":\"sidebar_svg__1Cv6B\",\"logo\":\"sidebar_logo__1mbiL\",\"vidapoint-text\":\"sidebar_vidapoint-text__2zvkO\",\"button\":\"sidebar_button__1U7Fy\",\"arrow\":\"sidebar_arrow__3agKx\",\"icon\":\"sidebar_icon__2sE6B\",\"padrigth\":\"sidebar_padrigth__3odoA\",\"arrow-icon\":\"sidebar_arrow-icon__GRpb4\"};","// extracted by mini-css-extract-plugin\nmodule.exports = {\"adminActions\":\"reportAlarm_adminActions__2Xsd4\",\"otherActions\":\"reportAlarm_otherActions__264uc\",\"tracker\":\"reportAlarm_tracker__2K3KU\",\"trackerActions\":\"reportAlarm_trackerActions__1UoPA\",\"rotate\":\"reportAlarm_rotate__3rigU\",\"tooltip\":\"reportAlarm_tooltip__n5BHP\",\"company\":\"reportAlarm_company__3minu\",\"companyHeader\":\"reportAlarm_companyHeader__1nsu1\",\"name\":\"reportAlarm_name__1K3-e\",\"subtitleContainer\":\"reportAlarm_subtitleContainer__2X5tM\",\"title\":\"reportAlarm_title__ylfod\",\"subtitle\":\"reportAlarm_subtitle__3rf14\",\"table\":\"reportAlarm_table__3NCin\",\"paginate\":\"reportAlarm_paginate__1-l7V\",\"header\":\"reportAlarm_header__36oPn\",\"header-column\":\"reportAlarm_header-column__NzO_H\",\"body\":\"reportAlarm_body__3WvJN\",\"row\":\"reportAlarm_row__gP4Mf\",\"column\":\"reportAlarm_column__jytPt\",\"download\":\"reportAlarm_download__116pe\",\"id\":\"reportAlarm_id__3fUjv\",\"client\":\"reportAlarm_client__1ydAT\",\"alarm\":\"reportAlarm_alarm__55uvN\",\"date\":\"reportAlarm_date__1Fzy-\",\"attendant\":\"reportAlarm_attendant__KNLlr\",\"duration\":\"reportAlarm_duration__AMVob\",\"btn-print\":\"reportAlarm_btn-print__2zwZy\"};","// extracted by mini-css-extract-plugin\nmodule.exports = {\"adminActions\":\"reportPage_adminActions__7d7s2\",\"otherActions\":\"reportPage_otherActions__2ZLuv\",\"tracker\":\"reportPage_tracker__n1R3b\",\"trackerActions\":\"reportPage_trackerActions__WF4Ai\",\"rotate\":\"reportPage_rotate__3kwPi\",\"tooltip\":\"reportPage_tooltip__1pOcF\",\"company\":\"reportPage_company__19wsy\",\"companyHeader\":\"reportPage_companyHeader__qe42z\",\"name\":\"reportPage_name__3gaM-\",\"subtitleContainer\":\"reportPage_subtitleContainer__1zpQ1\",\"paginate-wrapper\":\"reportPage_paginate-wrapper__1BbMU\",\"paginate-arrow\":\"reportPage_paginate-arrow__2dxp_\",\"paginate-arrow-left\":\"reportPage_paginate-arrow-left__4N5qg\",\"paginate-arrow-right\":\"reportPage_paginate-arrow-right__hnopQ\",\"title\":\"reportPage_title__1NF_k\",\"cards\":\"reportPage_cards__2End2\",\"card-block\":\"reportPage_card-block__EQjY7\",\"card-odd\":\"reportPage_card-odd__1Zxll\",\"detail-btn\":\"reportPage_detail-btn__gZKZx\",\"trackerSvg\":\"reportPage_trackerSvg__Dtr6F\"};","// extracted by mini-css-extract-plugin\nmodule.exports = {\"adminActions\":\"reportAttendant_adminActions__3OKr0\",\"otherActions\":\"reportAttendant_otherActions__2k68f\",\"tracker\":\"reportAttendant_tracker__3qOmL\",\"trackerActions\":\"reportAttendant_trackerActions__231Om\",\"rotate\":\"reportAttendant_rotate__2fP3v\",\"tooltip\":\"reportAttendant_tooltip__35-XY\",\"company\":\"reportAttendant_company__U8T4U\",\"companyHeader\":\"reportAttendant_companyHeader__2TChC\",\"name\":\"reportAttendant_name__3uh2S\",\"subtitleContainer\":\"reportAttendant_subtitleContainer__29kJA\",\"title\":\"reportAttendant_title__huLQk\",\"subtitle\":\"reportAttendant_subtitle__xlTyZ\",\"table\":\"reportAttendant_table__idUSt\",\"paginate\":\"reportAttendant_paginate__17oR1\",\"header\":\"reportAttendant_header__2l_SC\",\"header-column\":\"reportAttendant_header-column__Nfbve\",\"body\":\"reportAttendant_body__3h_5Y\",\"row\":\"reportAttendant_row__tfT_b\",\"column\":\"reportAttendant_column__1Ktod\",\"download\":\"reportAttendant_download__3El19\",\"id\":\"reportAttendant_id__1uynM\",\"account\":\"reportAttendant_account__2ORTV\",\"client\":\"reportAttendant_client__1Fv0y\",\"dateOpen\":\"reportAttendant_dateOpen__xXSsW\",\"dateClosed\":\"reportAttendant_dateClosed__DTKsJ\",\"resolvedBy\":\"reportAttendant_resolvedBy__1yl8x\",\"duration\":\"reportAttendant_duration__3kaUg\",\"btn-print\":\"reportAttendant_btn-print__3lumE\"};","// extracted by mini-css-extract-plugin\nmodule.exports = {\"title\":\"transmitterForm_title__1fiyJ\"};","// extracted by mini-css-extract-plugin\nmodule.exports = {\"solved-wrapper\":\"attendSolvedBy_solved-wrapper__7jnli\"};","// extracted by mini-css-extract-plugin\nmodule.exports = {\"mapDot\":\"mapComponent_mapDot__3hQtS\",\"SOSDot\":\"mapComponent_SOSDot__8FFYo\",\"map-container\":\"mapComponent_map-container__jtxzO\"};","// extracted by mini-css-extract-plugin\nmodule.exports = {\"wrapper\":\"modalPasswordChange_wrapper__WFGkj\"};","// extracted by mini-css-extract-plugin\nmodule.exports = {\"btn\":\"reportButtonComponent_btn__2o7y-\",\"btn--add\":\"reportButtonComponent_btn--add__2HhwS\",\"btn--add-contact-phone\":\"reportButtonComponent_btn--add-contact-phone__23RwT\",\"btn--add-transmissor\":\"reportButtonComponent_btn--add-transmissor__2PZrW\",\"btn--attend-emergency\":\"reportButtonComponent_btn--attend-emergency__3EhlJ\",\"btn--bold\":\"reportButtonComponent_btn--bold__3Pdjg\",\"btn--bottom\":\"reportButtonComponent_btn--bottom__j5mv5\",\"btn--color-gray\":\"reportButtonComponent_btn--color-gray__3LGnT\",\"btn--color-green\":\"reportButtonComponent_btn--color-green__1pjE5\",\"btn--color-invalid\":\"reportButtonComponent_btn--color-invalid__rdM_g\",\"btn--color-orange\":\"reportButtonComponent_btn--color-orange__od7yQ\",\"btn--color-red\":\"reportButtonComponent_btn--color-red__46WBV\",\"btn--btn-bg-color\":\"reportButtonComponent_btn--btn-bg-color__3PFUz\",\"btn--confirm-remove-modal\":\"reportButtonComponent_btn--confirm-remove-modal__1Fj-n\",\"btn--download\":\"reportButtonComponent_btn--download__2MIse\",\"btn--download-text\":\"reportButtonComponent_btn--download-text__1PO0_\",\"btn--get-attend-or-attend-voice-call\":\"reportButtonComponent_btn--get-attend-or-attend-voice-call__USE11\",\"btn--modal-attend\":\"reportButtonComponent_btn--modal-attend__3J88E\",\"btn--right\":\"reportButtonComponent_btn--right__JClzU\",\"btn--multi\":\"reportButtonComponent_btn--multi__2O64Z\",\"btn--form\":\"reportButtonComponent_btn--form__3A1nf\",\"wrapper\":\"reportButtonComponent_wrapper__2grPI\"};","// extracted by mini-css-extract-plugin\nmodule.exports = {\"trackerMenuContainer\":\"geofence_trackerMenuContainer__j7cZI\",\"trackerMenuValue\":\"geofence_trackerMenuValue__1gXsp\",\"trackerMenu\":\"geofence_trackerMenu__3X8ch\",\"trackerMenuText\":\"geofence_trackerMenuText__3QrAT\",\"rotate\":\"geofence_rotate__4_Rsd\",\"trackerMenuBtn\":\"geofence_trackerMenuBtn__vSjvn\",\"geofenceSubMenuBtn\":\"geofence_geofenceSubMenuBtn__35rQQ\",\"geofenceMenuOption\":\"geofence_geofenceMenuOption__-eHn-\",\"geofenceSubmenuOption\":\"geofence_geofenceSubmenuOption__1CHlc\",\"input\":\"geofence_input__C9tLv\",\"block-value\":\"geofence_block-value__1p5bZ\",\"checkbox\":\"geofence_checkbox__3xGIa\",\"selectInput\":\"geofence_selectInput__2k9tg\",\"selectInput--enable\":\"geofence_selectInput--enable__gnG7y\",\"selectInterval\":\"geofence_selectInterval__3p_Wp\",\"mapWrapper\":\"geofence_mapWrapper__3UtJG\",\"mapContent\":\"geofence_mapContent__uTVvP\",\"geofenceTriangle\":\"geofence_geofenceTriangle__LIZIV\",\"geofenceSlider\":\"geofence_geofenceSlider__1MQ1c\",\"leafletContainer\":\"geofence_leafletContainer__3fB1f\",\"geofenceNotConfigured\":\"geofence_geofenceNotConfigured__2bKY8\"};","if(process.env.NODE_ENV === 'production'){\n\tmodule.exports = require('./configureStore.prod');\n} else {\n\tmodule.exports = require('./configureStore.dev');\n}\n","// extracted by mini-css-extract-plugin\nmodule.exports = {\"adminActions\":\"detail_adminActions__jbCAd\",\"otherActions\":\"detail_otherActions__2Dr-R\",\"tracker\":\"detail_tracker__2SsK1\",\"trackerActions\":\"detail_trackerActions__2XK10\",\"rotate\":\"detail_rotate__13ldh\",\"tooltip\":\"detail_tooltip__3zmSF\",\"company\":\"detail_company__1RNs8\",\"companyHeader\":\"detail_companyHeader__Gytvi\",\"name\":\"detail_name__2ZicM\",\"subtitleContainer\":\"detail_subtitleContainer__2DXTi\",\"wrapper\":\"detail_wrapper__2rot8\",\"title\":\"detail_title__1euNo\",\"tecno\":\"detail_tecno__14lzR\",\"gray\":\"detail_gray__2GYcH\",\"container\":\"detail_container__36dcl\",\"container-title\":\"detail_container-title__BXatE\",\"container-content\":\"detail_container-content__2p4IR\",\"row\":\"detail_row__2G6qg\",\"row--50\":\"detail_row--50__33Ses\",\"row--100\":\"detail_row--100__5GGPr\",\"field\":\"detail_field__1SbZj\",\"field--130\":\"detail_field--130__1lQFN\",\"field130\":\"detail_field130__1SO7U\",\"value\":\"detail_value__3a12Y\",\"value130\":\"detail_value130__2QrLo\",\"textarea\":\"detail_textarea__p3soU\"};","// extracted by mini-css-extract-plugin\nmodule.exports = {\"table\":\"iotDeviceList_table__1pFfn\",\"content\":\"iotDeviceList_content__JvVK-\",\"iotHeaderText\":\"iotDeviceList_iotHeaderText__3WVhk\",\"iotMenu\":\"iotDeviceList_iotMenu__1Q8wZ\",\"iotButton\":\"iotDeviceList_iotButton__Qn8CN\",\"active\":\"iotDeviceList_active__2rrav\",\"header\":\"iotDeviceList_header__1MuNR\",\"body\":\"iotDeviceList_body__Ep669\",\"removed\":\"iotDeviceList_removed__XIk8I\",\"row\":\"iotDeviceList_row__1AGHP\",\"headerTextContainer\":\"iotDeviceList_headerTextContainer__flRXR\",\"headerLastEntryContainer\":\"iotDeviceList_headerLastEntryContainer__3ptnz\",\"headerBatteryContainer\":\"iotDeviceList_headerBatteryContainer__1h-c0\",\"headerCompanyContainer\":\"iotDeviceList_headerCompanyContainer__3H5uY\",\"headerNameContainer\":\"iotDeviceList_headerNameContainer__3p-NS\",\"headerImeiContainer\":\"iotDeviceList_headerImeiContainer__1ZKFx\",\"headerBtn\":\"iotDeviceList_headerBtn__3XLII\",\"iotTableBodyField\":\"iotDeviceList_iotTableBodyField__3OZ6J\",\"tableLastEntryField\":\"iotDeviceList_tableLastEntryField__30aea\",\"tableBatteryField\":\"iotDeviceList_tableBatteryField__1fFFy\",\"tableCompanyField\":\"iotDeviceList_tableCompanyField__Q_Wku\",\"tableNameField\":\"iotDeviceList_tableNameField__q0tkF\",\"tableImeiField\":\"iotDeviceList_tableImeiField__Il_Em\",\"tableUpperHeader\":\"iotDeviceList_tableUpperHeader__2utTW\",\"headerStatus\":\"iotDeviceList_headerStatus__2MEFM\",\"statusTableBodyField\":\"iotDeviceList_statusTableBodyField__1M_js\",\"online\":\"iotDeviceList_online__2eHqb\",\"offline\":\"iotDeviceList_offline__1EXeZ\"};","// extracted by mini-css-extract-plugin\nmodule.exports = {\"client-wrapper\":\"attendClientComponent_client-wrapper__2YxBq\",\"label\":\"attendClientComponent_label__3oilh\",\"text\":\"attendClientComponent_text__3Fv_7\",\"bigtext\":\"attendClientComponent_bigtext__1D4n2\",\"clientRow\":\"attendClientComponent_clientRow__19sSN\",\"contrastRow\":\"attendClientComponent_contrastRow__2n5tb\",\"rotate\":\"attendClientComponent_rotate__7p0Mx\",\"observationLabel\":\"attendClientComponent_observationLabel__fz8MZ\"};","// extracted by mini-css-extract-plugin\nmodule.exports = {\"adminActions\":\"reportClientByCompany_adminActions__3-vFj\",\"otherActions\":\"reportClientByCompany_otherActions__8kH1M\",\"tracker\":\"reportClientByCompany_tracker__pj780\",\"trackerActions\":\"reportClientByCompany_trackerActions__2ZyII\",\"rotate\":\"reportClientByCompany_rotate__2VOQj\",\"tooltip\":\"reportClientByCompany_tooltip__3jMh5\",\"company\":\"reportClientByCompany_company__ztvYq\",\"companyHeader\":\"reportClientByCompany_companyHeader__JZGLk\",\"name\":\"reportClientByCompany_name__gAp0t\",\"subtitleContainer\":\"reportClientByCompany_subtitleContainer__2-Qzz\",\"title\":\"reportClientByCompany_title__1cxKr\",\"table\":\"reportClientByCompany_table__L4zmD\",\"paginate\":\"reportClientByCompany_paginate__1i5ri\",\"header\":\"reportClientByCompany_header__3lePA\",\"header-column\":\"reportClientByCompany_header-column__2C8ud\",\"body\":\"reportClientByCompany_body__o_lh7\",\"row\":\"reportClientByCompany_row__D6NIB\",\"column\":\"reportClientByCompany_column__9rXRc\",\"download\":\"reportClientByCompany_download__2TwgE\",\"subtitle\":\"reportClientByCompany_subtitle__wwTiL\",\"total-attend\":\"reportClientByCompany_total-attend__3uqzL\",\"btn-print\":\"reportClientByCompany_btn-print__337xp\",\"id-header\":\"reportClientByCompany_id-header__351GS\",\"total-clients\":\"reportClientByCompany_total-clients__2guSh\"};","// extracted by mini-css-extract-plugin\nmodule.exports = {\"adminActions\":\"reportLengthOfStay_adminActions__3iOdw\",\"otherActions\":\"reportLengthOfStay_otherActions__1VPqj\",\"tracker\":\"reportLengthOfStay_tracker__3Q3I-\",\"trackerActions\":\"reportLengthOfStay_trackerActions__1Q8r0\",\"rotate\":\"reportLengthOfStay_rotate__ytXYr\",\"tooltip\":\"reportLengthOfStay_tooltip__3uFvp\",\"company\":\"reportLengthOfStay_company__Ik2et\",\"companyHeader\":\"reportLengthOfStay_companyHeader__wl63N\",\"name\":\"reportLengthOfStay_name__z26sI\",\"subtitleContainer\":\"reportLengthOfStay_subtitleContainer__2salF\",\"title\":\"reportLengthOfStay_title__2eFkM\",\"subtitle\":\"reportLengthOfStay_subtitle__338me\",\"table\":\"reportLengthOfStay_table__-Rl33\",\"paginate\":\"reportLengthOfStay_paginate__CtJYJ\",\"header\":\"reportLengthOfStay_header__2XSgy\",\"header-column\":\"reportLengthOfStay_header-column__1a_DO\",\"body\":\"reportLengthOfStay_body__2ANjb\",\"row\":\"reportLengthOfStay_row__2wSu7\",\"column\":\"reportLengthOfStay_column__36mf0\",\"download\":\"reportLengthOfStay_download__2q72X\",\"btn-content\":\"reportLengthOfStay_btn-content__FrDJ1\",\"account\":\"reportLengthOfStay_account__3yi5Q\",\"user\":\"reportLengthOfStay_user__3B2Mn\",\"day\":\"reportLengthOfStay_day__30p1p\",\"date-created\":\"reportLengthOfStay_date-created__3Mn-r\",\"date-deleted\":\"reportLengthOfStay_date-deleted__2I3od\",\"btn-print\":\"reportLengthOfStay_btn-print__3ObiW\"};","// extracted by mini-css-extract-plugin\nmodule.exports = {\"checkbox\":\"clientForm_checkbox__9icQI\",\"errorMessage\":\"clientForm_errorMessage__1DleU\",\"block\":\"clientForm_block__2OjPj\",\"block-text-container\":\"clientForm_block-text-container__3prgL\",\"form-text-area\":\"clientForm_form-text-area__1BXr0\",\"btn\":\"clientForm_btn__17lty\",\"input-wrapper\":\"clientForm_input-wrapper__1OATD\",\"textarea\":\"clientForm_textarea__1DHzZ\",\"container\":\"clientForm_container__2GEi8\",\"block-value\":\"clientForm_block-value__auAmI\",\"btn-price\":\"clientForm_btn-price__1zTNU\",\"label-price\":\"clientForm_label-price__2-U8d\",\"btn--secondary\":\"clientForm_btn--secondary__26XKO\",\"btn--color-red\":\"clientForm_btn--color-red__5yXYe\",\"btn--color-blue\":\"clientForm_btn--color-blue__3JUJH\",\"btn--color-yellow\":\"clientForm_btn--color-yellow__12OFN\",\"btn--color-green\":\"clientForm_btn--color-green__1whCl\",\"btn--color-gray\":\"clientForm_btn--color-gray__u_JJg\",\"active\":\"clientForm_active__2YrUx\",\"btn-disabled\":\"clientForm_btn-disabled__3R8j2\",\"savetip-container\":\"clientForm_savetip-container__2s7k9\",\"savetip-text\":\"clientForm_savetip-text__4IHZB\",\"accordion-header\":\"clientForm_accordion-header__HRg2V\",\"rotate\":\"clientForm_rotate__1i568\",\"placeholder-text\":\"clientForm_placeholder-text__26GzI\"};","// extracted by mini-css-extract-plugin\nmodule.exports = {\"return-container\":\"modalReturnCall_return-container__HGZg9\",\"modal-header\":\"modalReturnCall_modal-header__2xPJp\",\"return-call-button\":\"modalReturnCall_return-call-button__1BtnZ\",\"button-disabled\":\"modalReturnCall_button-disabled__19fBp\",\"return-close-modal-button\":\"modalReturnCall_return-close-modal-button__2X64j\",\"modal-middle-wrapper\":\"modalReturnCall_modal-middle-wrapper__1OUUS\",\"modal-middle-container\":\"modalReturnCall_modal-middle-container__2VAk-\"};","// extracted by mini-css-extract-plugin\nmodule.exports = {\"menuContainer\":\"alarmClock_menuContainer__11IIY\",\"menuOptionBtn\":\"alarmClock_menuOptionBtn__jOos0\",\"menuOptionBtnText\":\"alarmClock_menuOptionBtnText__1AI6o\",\"menuTriangle\":\"alarmClock_menuTriangle__3pTN8\",\"rotate\":\"alarmClock_rotate__1Vaq2\",\"submenuOption\":\"alarmClock_submenuOption__1EUR_\",\"submenuText\":\"alarmClock_submenuText__DEXn0\",\"toggleContainer\":\"alarmClock_toggleContainer__3NOX0\",\"input\":\"alarmClock_input__1k9ZU\",\"selectInput\":\"alarmClock_selectInput__1Ugdc\",\"selectInput--enable\":\"alarmClock_selectInput--enable__31jC2\",\"workdayContainer\":\"alarmClock_workdayContainer__2yQgD\",\"menuSaveBtn\":\"alarmClock_menuSaveBtn__3d0dM\"};","// extracted by mini-css-extract-plugin\nmodule.exports = {\"reminder-container\":\"modalReminderNote_reminder-container__3RVnX\",\"reminder-header\":\"modalReminderNote_reminder-header__26-Gp\",\"reminder-text-container\":\"modalReminderNote_reminder-text-container__Amvza\",\"reminder-text-block\":\"modalReminderNote_reminder-text-block__2FY9k\",\"reminder-text-label\":\"modalReminderNote_reminder-text-label__3y9ti\",\"reminder-text-limit\":\"modalReminderNote_reminder-text-limit__1fn9O\",\"reminder-textarea\":\"modalReminderNote_reminder-textarea__c1ywe\",\"reminder-select\":\"modalReminderNote_reminder-select__92igw\",\"reminder-select-container\":\"modalReminderNote_reminder-select-container__IJopy\",\"reminder-timer-label\":\"modalReminderNote_reminder-timer-label__2ASij\",\"reminder-timer-block\":\"modalReminderNote_reminder-timer-block__1mEGi\",\"reminder-timer-container\":\"modalReminderNote_reminder-timer-container__2rk8D\",\"reminder-button-container\":\"modalReminderNote_reminder-button-container__3_PhL\",\"reminder-btn\":\"modalReminderNote_reminder-btn__3GfBu\",\"reminder-btn-disabled\":\"modalReminderNote_reminder-btn-disabled__1Yaw2\",\"reminder-inform-container\":\"modalReminderNote_reminder-inform-container__X_D0B\",\"reminder-inform-label\":\"modalReminderNote_reminder-inform-label__27L07\",\"reminder-error-label\":\"modalReminderNote_reminder-error-label__1RfXI\",\"reminder-help-label\":\"modalReminderNote_reminder-help-label__2sMyk\"};","export const LOAD_CLIENTS_SUCCESS = 'LOAD_CLIENTS_SUCCESS';\nexport const NEW_CLIENT = 'NEW_CLIENT';\nexport const EDIT_CLIENT = 'EDIT_CLIENT';\nexport const RECEIVE_NEW_CLIENT_PAGE = 'RECEIVE_NEW_CLIENT_PAGE';\nexport const SET_CLIENT_PAGE = 'SET_CLIENT_PAGE';\nexport const IMPORT_CLIENTS_SUCCESS = 'IMPORT_CLIENTS_SUCCESS';\n\nexport const LOAD_TRANSMITTERS_SUCCESS = 'LOAD_TRANSMITTERS_SUCCESS';\nexport const NEW_TRANSMITTER = 'NEW_TRANSMITTER';\nexport const EDIT_TRANSMITTER = 'EDIT_TRANSMITTER';\nexport const REMOVE_TRANSMITTER = 'REMOVE_TRANSMITTER';\n\nexport const LOAD_CONTACTS_SUCCESS = 'LOAD_CONTACTS_SUCCESS';\nexport const NEW_CONTACT = 'NEW_CONTACT';\nexport const EDIT_CONTACT = 'EDIT_CONTACT';\nexport const REMOVE_CONTACT = 'REMOVE_CONTACT';\n\nexport const LOAD_ATTENDANTS_SUCCESS = 'LOAD_ATTENDANTS_SUCCESS';\nexport const EDIT_ATTENDANT = 'EDIT_ATTENDANT';\nexport const NEW_ATTENDANT = 'NEW_ATTENDANT';\nexport const TOGGLE_ATTENDANT = 'TOGGLE_ATTENDANT';\n\nexport const LOGOUT = 'LOGOUT';\nexport const REMOVE_ERROR = 'REMOVE_ERROR';\n\nexport const SET_LOGGED_ATTENDANT = 'SET_LOGGED_ATTENDANT';\n\nexport const LOAD_ATTENDS_SUCCESS = 'LOAD_ATTENDS_SUCCESS';\nexport const RECEIVE_NEW_ATTEND_PAGE = 'RECEIVE_NEW_ATTEND_PAGE';\nexport const SET_ATTEND_PAGE = 'SET_ATTEND_PAGE';\nexport const EDIT_ATTEND = 'EDIT_ATTEND';\n\nexport const LOAD_ALARMS_SUCCESS = 'LOAD_ALARMS_SUCCESS';\nexport const EDIT_ALARM = 'EDIT_ALARM';\nexport const NEW_ALARM = 'NEW_ALARM'\n\nexport const AUTH_LOGIN_USER_REQUEST = 'AUTH_LOGIN_USER_REQUEST';\nexport const AUTH_LOGIN_USER_SUCCESS = 'AUTH_LOGIN_USER_SUCCESS';\nexport const AUTH_LOGIN_USER_FAILURE = 'AUTH_LOGIN_USER_FAILURE';\nexport const AUTH_LOGOUT_USER = 'AUTH_LOGOUT_USER';\n\nexport const SET_ATTTENDANT_BUSY_STATUS = 'SET_ATTTENDANT_BUSY_STATUS';\n\nexport const LOAD_EQUIPMENT_SUCCESS = 'LOAD_EQUIPMENT_SUCCESS';\n\nexport const ADD_BROWSER_DIMENTIONS = 'ADD_BROWSER_DIMENTIONS';\n\nexport const RELOAD_LOCAL_CONFIGURATIONS = 'RELOAD_LOCAL_CONFIGURATIONS';\nexport const RELOAD_GLOBAL_CONFIGURATIONS = 'RELOAD_GLOBAL_CONFIGURATIONS';\nexport const SET_LOCAL_CONFIGURATIONS = 'SET_LOCAL_CONFIGURATIONS';\nexport const SET_GLOBAL_CONFIGURATIONS = 'SET_GLOBAL_CONFIGURATIONS';\n\nexport const LOAD_TENANT_STATUS_SUCCESS = 'LOAD_TENANT_STATUS_SUCCESS';\nexport const RELOAD_TENANT_STATUS_SUCCESS = 'RELOAD_TENANT_STATUS_SUCCESS';\nexport const LOAD_TENANT_STATUS_FAILURE = 'LOAD_TENANT_STATUS_FAILURE';\n\nexport const LOAD_GROUPS_SUCCESS = 'LOAD_GROUPS_SUCCESS';\n\nexport const LOCALE_SET = 'LOCALE_SET';\nexport const SET_RELOAD_CLIENTS = 'SET_RELOAD_CLIENTS';\n\nexport const LOAD_REMINDERS_SUCCESS = 'LOAD_REMINDERS_SUCCESS';\nexport const RELOAD_REMINDERS_SUCCESS = 'RELOAD_REMINDERS_SUCCESS';\n\nexport const LOAD_SERVER_CONFIG_SUCCESS = 'LOAD_SERVER_CONFIG_SUCCESS';\nexport const LOAD_SERVER_LIST_SUCCESS = 'LOAD_SERVER_LIST_SUCCESS';\n\nexport const LOAD_ATTEND_TAGS_SUCCESS = 'LOAD_ATTEND_TAGS_SUCCESS';\n\nexport const LOAD_DASHBOARD_SUCCESS = 'LOAD_DASHBOARD_SUCCESS';\nexport const LOAD_OPEN_DASHBOARD_SUCCESS = 'LOAD_OPEN_DASHBOARD_SUCCESS';\nexport const NEW_ATTEND_DASHBOARD = 'NEW_ATTEND_DASHBOARD';\nexport const UPDATE_ATTEND_DASHBOARD = 'UPDATE_ATTEND_DASHBOARD';\nexport const CLOSE_ATTEND_DASHBOARD = 'CLOSE_ATTEND_DASHBOARD';\nexport const LOADING_DASHBOARD_ATTENDS = 'LOADING_DASHBOARD_ATTENDS';\n\nexport const LOAD_BUSY_USERS_SUCCESS = 'LOAD_BUSY_USERS_SUCCESS';\nexport const REMOVE_BUSY_USER = 'REMOVE_BUSY_USER';\nexport const ADD_BUSY_USER = 'ADD_BUSY_USER';\n\nexport const AUTH_RESET_STORE = 'AUTH_RESET_STORE';\n\nexport const ADD_LOWER_ALARM = 'ADD_LOWER_ALARM';\nexport const REMOVE_LOWER_ALARM = 'REMOVE_LOWER_ALARM';\n\nexport const TOGGLE_REMINDER_COMPONENT = 'TOGGLE_REMINDER_COMPONENT';\n","// extracted by mini-css-extract-plugin\nmodule.exports = {\"adminActions\":\"managementMenu_adminActions__19fps\",\"otherActions\":\"managementMenu_otherActions__1qOgA\",\"tracker\":\"managementMenu_tracker__3OBRy\",\"trackerActions\":\"managementMenu_trackerActions__1t6Gt\",\"rotate\":\"managementMenu_rotate__25JQx\",\"tooltip\":\"managementMenu_tooltip__3hZ4Q\",\"company\":\"managementMenu_company__1QOFk\",\"companyHeader\":\"managementMenu_companyHeader__1H61m\",\"name\":\"managementMenu_name__Af7Ku\",\"subtitleContainer\":\"managementMenu_subtitleContainer___NfQG\",\"paginate-wrapper\":\"managementMenu_paginate-wrapper__1zwzZ\",\"paginate-arrow\":\"managementMenu_paginate-arrow__1_Ns4\",\"paginate-arrow-left\":\"managementMenu_paginate-arrow-left__3XLoY\",\"paginate-arrow-right\":\"managementMenu_paginate-arrow-right__3UVQk\",\"wrapper\":\"managementMenu_wrapper__tqRLs\",\"title\":\"managementMenu_title__22KYU\",\"list\":\"managementMenu_list__3nAcN\",\"ul\":\"managementMenu_ul__1_L9s\",\"li\":\"managementMenu_li__1ItSm\",\"button\":\"managementMenu_button__2QbUC\",\"active\":\"managementMenu_active__13juv\"};","// extracted by mini-css-extract-plugin\nmodule.exports = {\"table\":\"ataDeviceList_table__1W15q\",\"content\":\"ataDeviceList_content__m2Cok\",\"headerText\":\"ataDeviceList_headerText__3bLnT\",\"active\":\"ataDeviceList_active__xMck_\",\"header\":\"ataDeviceList_header__Vd88E\",\"body\":\"ataDeviceList_body__2jZi2\",\"removed\":\"ataDeviceList_removed__1DAmL\",\"row\":\"ataDeviceList_row__1hvvJ\",\"headerBtn\":\"ataDeviceList_headerBtn__1O2RC\",\"headerTextContainer\":\"ataDeviceList_headerTextContainer__2Q8fG\",\"headerPortText\":\"ataDeviceList_headerPortText__1gC9c\",\"headerAtaContainer\":\"ataDeviceList_headerAtaContainer__YpwBj\",\"headerNameContainer\":\"ataDeviceList_headerNameContainer__DLPbI\",\"headerStatusContainer\":\"ataDeviceList_headerStatusContainer__1ntHF\",\"headerAccountContainer\":\"ataDeviceList_headerAccountContainer__mLt7H\",\"tableBodyField\":\"ataDeviceList_tableBodyField__1qD4V\",\"tablePortField\":\"ataDeviceList_tablePortField__326pV\",\"tableAtaField\":\"ataDeviceList_tableAtaField__NpFUG\",\"tableNameField\":\"ataDeviceList_tableNameField__20s39\",\"tableStatusField\":\"ataDeviceList_tableStatusField__3fxUf\",\"tableAccountField\":\"ataDeviceList_tableAccountField__1MN9z\"};","// extracted by mini-css-extract-plugin\nmodule.exports = {\"container\":\"attendExtensionCall_container__frm3w\",\"label\":\"attendExtensionCall_label__Bzlef\",\"client-info\":\"attendExtensionCall_client-info__3xJ5t\",\"call-info\":\"attendExtensionCall_call-info__3wlPV\",\"contact-info\":\"attendExtensionCall_contact-info__2pCrj\",\"client-container\":\"attendExtensionCall_client-container__2MyoL\",\"contact-container\":\"attendExtensionCall_contact-container__2UMgw\",\"softphone-container\":\"attendExtensionCall_softphone-container__uUdrq\",\"separator\":\"attendExtensionCall_separator__3eENJ\",\"client-title\":\"attendExtensionCall_client-title__1rmcn\",\"contact-title\":\"attendExtensionCall_contact-title__2Yz1E\",\"select-btn\":\"attendExtensionCall_select-btn__3z7V6\",\"extension-select\":\"attendExtensionCall_extension-select__2REps\"};","// extracted by mini-css-extract-plugin\nmodule.exports = {\"content\":\"clientLocation_content__24ke7\",\"container\":\"clientLocation_container__QF94X\",\"clientLocations\":\"clientLocation_clientLocations__JXOvO\",\"clientList\":\"clientLocation_clientList__1EhYq\",\"mapContainer\":\"clientLocation_mapContainer__2cK9A\",\"tableContent\":\"clientLocation_tableContent__1EPfZ\",\"table\":\"clientLocation_table__1If6X\",\"header\":\"clientLocation_header__atCrR\",\"body\":\"clientLocation_body__sIxqH\",\"row\":\"clientLocation_row__23eh9\",\"rowHovered\":\"clientLocation_rowHovered__1T8IC\",\"headerTextContainer\":\"clientLocation_headerTextContainer__1i3Ek\",\"headerAccount\":\"clientLocation_headerAccount__3jc3r\",\"bodyTextContainer\":\"clientLocation_bodyTextContainer__2Uzrj\",\"nameTextContainer\":\"clientLocation_nameTextContainer__w5jGk\",\"bodyAccount\":\"clientLocation_bodyAccount__sXIY0\",\"map-container\":\"clientLocation_map-container__2Z4gM\",\"clickableRow\":\"clientLocation_clickableRow__23nBy\",\"btnContainer\":\"clientLocation_btnContainer__1EsaW\",\"btn\":\"clientLocation_btn__1Idv7\"};","// extracted by mini-css-extract-plugin\nmodule.exports = {\"paginate\":\"alarmManagement_paginate__rZtco\",\"table\":\"alarmManagement_table___Km24\",\"header\":\"alarmManagement_header__2upso\",\"header-column\":\"alarmManagement_header-column__3EdLQ\",\"title\":\"alarmManagement_title__16jAC\",\"btn\":\"alarmManagement_btn__2hWnj\",\"content\":\"alarmManagement_content__2vC8u\",\"row\":\"alarmManagement_row__turlO\",\"removed\":\"alarmManagement_removed__1vmS1\",\"column\":\"alarmManagement_column__2rSWK\",\"name\":\"alarmManagement_name__yr8iz\",\"code\":\"alarmManagement_code__O6LJW\",\"priority\":\"alarmManagement_priority__GiqwM\",\"column-icons\":\"alarmManagement_column-icons__1dwF_\",\"link\":\"alarmManagement_link__KXWRc\",\"icons\":\"alarmManagement_icons__2LQnS\"};","// extracted by mini-css-extract-plugin\nmodule.exports = {\"wrapper\":\"header_wrapper__2LKyO\",\"content\":\"header_content__1T7Vf\",\"icon\":\"header_icon__2StfZ\",\"iconText\":\"header_iconText__12cmQ\",\"localeContainer\":\"header_localeContainer__1qhdq\",\"localeButton\":\"header_localeButton__3XrP-\",\"localeChosen\":\"header_localeChosen__qm9-S\",\"searchbar\":\"header_searchbar__1FgwG\",\"user\":\"header_user__22wDI\",\"phone\":\"header_phone__2Q_dT\",\"iconContainer\":\"header_iconContainer__1wyYw\",\"iconButton\":\"header_iconButton__3jbFg\",\"iconActive\":\"header_iconActive__3b4qS\",\"remindersDeactivated\":\"header_remindersDeactivated__3GUKc\",\"reminderDot\":\"header_reminderDot__2NyUN\",\"chatDot\":\"header_chatDot__33DUu\",\"reminderNumber\":\"header_reminderNumber__3y6dQ\"};","// extracted by mini-css-extract-plugin\nmodule.exports = {\"table\":\"onlinePage_table__7eUez\",\"header\":\"onlinePage_header__1kd9O\",\"body\":\"onlinePage_body__23E3g\",\"row\":\"onlinePage_row__3By_1\",\"content\":\"onlinePage_content__-P5tW\",\"headerBtn\":\"onlinePage_headerBtn__32eMH\",\"headerTextContainer\":\"onlinePage_headerTextContainer__1Q7Pu\",\"headerLastOnlineAt\":\"onlinePage_headerLastOnlineAt__2xwmi\",\"headerCompanyName\":\"onlinePage_headerCompanyName__3SenV\",\"headerGroupName\":\"onlinePage_headerGroupName__Uj_DJ\",\"headerName\":\"onlinePage_headerName__3DKoL\",\"bodyTextContainer\":\"onlinePage_bodyTextContainer__2g7w7\",\"bodyLastOnline\":\"onlinePage_bodyLastOnline__1rQya\",\"bodyCompanyName\":\"onlinePage_bodyCompanyName__2UrJD\",\"bodyGroupName\":\"onlinePage_bodyGroupName__2fdSc\",\"bodyName\":\"onlinePage_bodyName__37nvm\",\"headerStatus\":\"onlinePage_headerStatus__3pbw6\",\"bodyStatus\":\"onlinePage_bodyStatus__3fz91\",\"online\":\"onlinePage_online__3G34Q\",\"offline\":\"onlinePage_offline__38DzO\"};","/*global PushStream WebSocketWrapper EventSourceWrapper EventSource*/\n/*jshint evil: true, plusplus: false, regexp: false */\n/**\nThe MIT License (MIT)\n\nCopyright (c) 2010-2014 Wandenberg Peixoto , Rogério Carvalho Schneider \n\nThis file is part of Nginx Push Stream Module.\n\nPermission is hereby granted, free of charge, to any person obtaining a copy\nof this software and associated documentation files (the \"Software\"), to deal\nin the Software without restriction, including without limitation the rights\nto use, copy, modify, merge, publish, distribute, sublicense, and/or sell\ncopies of the Software, and to permit persons to whom the Software is\nfurnished to do so, subject to the following conditions:\n\nThe above copyright notice and this permission notice shall be included in all\ncopies or substantial portions of the Software.\n\nTHE SOFTWARE IS PROVIDED \"AS IS\", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR\nIMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,\nFITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE\nAUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER\nLIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,\nOUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE\nSOFTWARE.\n\npushstream.js\n\nCreated: Nov 01, 2011\nAuthors: Wandenberg Peixoto , Rogério Carvalho Schneider \n */\n(function (window, document, undefined) {\n \"use strict\";\n\n /* prevent duplicate declaration */\n if (window.PushStream) { return; }\n\n var Utils = {};\n\n var days = [\"Sun\", \"Mon\", \"Tue\", \"Wed\", \"Thu\", \"Fri\", \"Sat\"];\n var months = [\"Jan\", \"Feb\", \"Mar\", \"Apr\", \"May\", \"Jun\", \"Jul\", \"Aug\", \"Sep\", \"Oct\", \"Nov\", \"Dec\"];\n\n var valueToTwoDigits = function (value) {\n return ((value < 10) ? '0' : '') + value;\n };\n\n Utils.dateToUTCString = function (date) {\n var time = valueToTwoDigits(date.getUTCHours()) + ':' + valueToTwoDigits(date.getUTCMinutes()) + ':' + valueToTwoDigits(date.getUTCSeconds());\n return days[date.getUTCDay()] + ', ' + valueToTwoDigits(date.getUTCDate()) + ' ' + months[date.getUTCMonth()] + ' ' + date.getUTCFullYear() + ' ' + time + ' GMT';\n };\n\n var extend = function () {\n var object = arguments[0] || {};\n for (var i = 0; i < arguments.length; i++) {\n var settings = arguments[i];\n for (var attr in settings) {\n if (!settings.hasOwnProperty || settings.hasOwnProperty(attr)) {\n object[attr] = settings[attr];\n }\n }\n }\n return object;\n };\n\n var validChars = /^[\\],:{}\\s]*$/,\n validEscape = /\\\\(?:[\"\\\\\\/bfnrt]|u[0-9a-fA-F]{4})/g,\n validTokens = /\"[^\"\\\\\\n\\r]*\"|true|false|null|-?\\d+(?:\\.\\d*)?(?:[eE][+\\-]?\\d+)?/g,\n validBraces = /(?:^|:|,)(?:\\s*\\[)+/g;\n\n var trim = function(value) {\n return value.replace(/^\\s*/, \"\").replace(/\\s*$/, \"\");\n };\n\n Utils.parseJSON = function(data) {\n if (!data || !isString(data)) {\n return null;\n }\n\n // Make sure leading/trailing whitespace is removed (IE can't handle it)\n data = trim(data);\n\n // Attempt to parse using the native JSON parser first\n if (window.JSON && window.JSON.parse) {\n try {\n return window.JSON.parse( data );\n } catch(e) {\n throw \"Invalid JSON: \" + data;\n }\n }\n\n // Make sure the incoming data is actual JSON\n // Logic borrowed from http://json.org/json2.js\n if (validChars.test(data.replace(validEscape, \"@\").replace( validTokens, \"]\").replace( validBraces, \"\")) ) {\n return (new Function(\"return \" + data))();\n }\n\n throw \"Invalid JSON: \" + data;\n };\n\n var getControlParams = function(pushstream) {\n var data = {};\n data[pushstream.tagArgument] = \"\";\n data[pushstream.timeArgument] = \"\";\n data[pushstream.eventIdArgument] = \"\";\n if (pushstream.messagesControlByArgument) {\n data[pushstream.tagArgument] = Number(pushstream._etag);\n if (pushstream._lastModified) {\n data[pushstream.timeArgument] = pushstream._lastModified;\n } else if (pushstream._lastEventId) {\n data[pushstream.eventIdArgument] = pushstream._lastEventId;\n }\n }\n return data;\n };\n\n var getTime = function() {\n return (new Date()).getTime();\n };\n\n var currentTimestampParam = function() {\n return { \"_\" : getTime() };\n };\n\n var objectToUrlParams = function(settings) {\n var params = settings;\n if (typeof(settings) === 'object') {\n params = '';\n for (var attr in settings) {\n if (!settings.hasOwnProperty || settings.hasOwnProperty(attr)) {\n params += '&' + attr + '=' + window.escape(settings[attr]);\n }\n }\n params = params.substring(1);\n }\n\n return params || '';\n };\n\n var addParamsToUrl = function(url, params) {\n return url + ((url.indexOf('?') < 0) ? '?' : '&') + objectToUrlParams(params);\n };\n\n var isArray = Array.isArray || function(obj) {\n return Object.prototype.toString.call(obj) === '[object Array]';\n };\n\n var isString = function(obj) {\n return Object.prototype.toString.call(obj) === '[object String]';\n };\n\n var isDate = function(obj) {\n return Object.prototype.toString.call(obj) === '[object Date]';\n };\n\n var Log4js = {\n logger: null,\n debug : function() { if (PushStream.LOG_LEVEL === 'debug') { Log4js._log.apply(Log4js._log, arguments); }},\n info : function() { if ((PushStream.LOG_LEVEL === 'info') || (PushStream.LOG_LEVEL === 'debug')) { Log4js._log.apply(Log4js._log, arguments); }},\n error : function() { Log4js._log.apply(Log4js._log, arguments); },\n _initLogger : function() {\n var console = window.console;\n if (console && console.log) {\n if (console.log.apply) {\n Log4js.logger = console.log;\n } else if ((typeof console.log === \"object\") && Function.prototype.bind) {\n Log4js.logger = Function.prototype.bind.call(console.log, console);\n } else if ((typeof console.log === \"object\") && Function.prototype.call) {\n Log4js.logger = function() {\n Function.prototype.call.call(console.log, console, Array.prototype.slice.call(arguments));\n };\n }\n }\n },\n _log : function() {\n if (!Log4js.logger) {\n Log4js._initLogger();\n }\n\n if (Log4js.logger) {\n try {\n Log4js.logger.apply(window.console, arguments);\n } catch(e) {\n Log4js._initLogger();\n if (Log4js.logger) {\n Log4js.logger.apply(window.console, arguments);\n }\n }\n }\n\n var logElement = document.getElementById(PushStream.LOG_OUTPUT_ELEMENT_ID);\n if (logElement) {\n var str = '';\n for (var i = 0; i < arguments.length; i++) {\n str += arguments[i] + \" \";\n }\n logElement.innerHTML += str + '\\n';\n\n var lines = logElement.innerHTML.split('\\n');\n if (lines.length > 100) {\n logElement.innerHTML = lines.slice(-100).join('\\n');\n }\n }\n }\n };\n\n var Ajax = {\n _getXHRObject : function(crossDomain) {\n var xhr = false;\n if (crossDomain) {\n try { xhr = new window.XDomainRequest(); } catch (e) { }\n if (xhr) {\n return xhr;\n }\n }\n\n try { xhr = new window.XMLHttpRequest(); }\n catch (e1) {\n try { xhr = new window.ActiveXObject(\"Msxml2.XMLHTTP\"); }\n catch (e2) {\n try { xhr = new window.ActiveXObject(\"Microsoft.XMLHTTP\"); }\n catch (e3) {\n xhr = false;\n }\n }\n }\n return xhr;\n },\n\n _send : function(settings, post) {\n settings = settings || {};\n settings.timeout = settings.timeout || 30000;\n var xhr = Ajax._getXHRObject(settings.crossDomain);\n if (!xhr||!settings.url) { return; }\n\n Ajax.clear(settings);\n\n settings.xhr = xhr;\n\n if (window.XDomainRequest && (xhr instanceof window.XDomainRequest)) {\n xhr.onload = function () {\n if (settings.afterReceive) { settings.afterReceive(xhr); }\n if (settings.success) { settings.success(xhr.responseText); }\n };\n\n xhr.onerror = xhr.ontimeout = function () {\n if (settings.afterReceive) { settings.afterReceive(xhr); }\n if (settings.error) { settings.error(xhr.status); }\n };\n } else {\n xhr.onreadystatechange = function () {\n if (xhr.readyState === 4) {\n Ajax.clear(settings);\n if (settings.afterReceive) { settings.afterReceive(xhr); }\n if(xhr.status === 200) {\n if (settings.success) { settings.success(xhr.responseText); }\n } else {\n if (settings.error) { settings.error(xhr.status); }\n }\n }\n };\n }\n\n if (settings.beforeOpen) { settings.beforeOpen(xhr); }\n\n var params = {};\n var body = null;\n var method = \"GET\";\n if (post) {\n body = objectToUrlParams(settings.data);\n method = \"POST\";\n } else {\n params = settings.data || {};\n }\n\n xhr.open(method, addParamsToUrl(settings.url, extend({}, params, currentTimestampParam())), true);\n\n if (settings.beforeSend) { settings.beforeSend(xhr); }\n\n var onerror = function() {\n Ajax.clear(settings);\n try { xhr.abort(); } catch (e) { /* ignore error on closing */ }\n settings.error(304);\n };\n\n if (post) {\n if (xhr.setRequestHeader) {\n xhr.setRequestHeader(\"Accept\", \"application/json\");\n xhr.setRequestHeader(\"Content-type\", \"application/x-www-form-urlencoded\");\n }\n } else {\n settings.timeoutId = window.setTimeout(onerror, settings.timeout + 2000);\n }\n\n xhr.send(body);\n return xhr;\n },\n\n _clear_xhr : function(xhr) {\n if (xhr) {\n xhr.onreadystatechange = null;\n }\n },\n\n _clear_script : function(script) {\n // Handling memory leak in IE, removing and dereference the script\n if (script) {\n script.onerror = script.onload = script.onreadystatechange = null;\n if (script.parentNode) { script.parentNode.removeChild(script); }\n }\n },\n\n _clear_timeout : function(settings) {\n settings.timeoutId = clearTimer(settings.timeoutId);\n },\n\n _clear_jsonp : function(settings) {\n var callbackFunctionName = settings.data.callback;\n if (callbackFunctionName) {\n window[callbackFunctionName] = function() { window[callbackFunctionName] = null; };\n }\n },\n\n clear : function(settings) {\n Ajax._clear_timeout(settings);\n Ajax._clear_jsonp(settings);\n Ajax._clear_script(document.getElementById(settings.scriptId));\n Ajax._clear_xhr(settings.xhr);\n },\n\n jsonp : function(settings) {\n settings.timeout = settings.timeout || 30000;\n Ajax.clear(settings);\n\n var head = document.head || document.getElementsByTagName(\"head\")[0];\n var script = document.createElement(\"script\");\n var startTime = getTime();\n\n var onerror = function() {\n Ajax.clear(settings);\n var endTime = getTime();\n settings.error(((endTime - startTime) > settings.timeout/2) ? 304 : 403);\n };\n\n var onload = function() {\n Ajax.clear(settings);\n settings.load();\n };\n\n var onsuccess = function() {\n settings.afterSuccess = true;\n settings.success.apply(null, arguments);\n };\n\n script.onerror = onerror;\n script.onload = script.onreadystatechange = function(eventLoad) {\n if (!script.readyState || /loaded|complete/.test(script.readyState)) {\n if (settings.afterSuccess) {\n onload();\n } else {\n onerror();\n }\n }\n };\n\n if (settings.beforeOpen) { settings.beforeOpen({}); }\n if (settings.beforeSend) { settings.beforeSend({}); }\n\n settings.timeoutId = window.setTimeout(onerror, settings.timeout + 2000);\n settings.scriptId = settings.scriptId || getTime();\n settings.afterSuccess = null;\n\n settings.data.callback = settings.scriptId + \"_onmessage_\" + getTime();\n window[settings.data.callback] = onsuccess;\n\n script.setAttribute(\"src\", addParamsToUrl(settings.url, extend({}, settings.data, currentTimestampParam())));\n script.setAttribute(\"async\", \"async\");\n script.setAttribute(\"id\", settings.scriptId);\n\n // Use insertBefore instead of appendChild to circumvent an IE6 bug.\n head.insertBefore(script, head.firstChild);\n return settings;\n },\n\n load : function(settings) {\n return Ajax._send(settings, false);\n },\n\n post : function(settings) {\n return Ajax._send(settings, true);\n }\n };\n\n var escapeText = function(text) {\n return (text) ? window.escape(text) : '';\n };\n\n var unescapeText = function(text) {\n return (text) ? window.unescape(text) : '';\n };\n\n Utils.parseMessage = function(messageText, keys) {\n var msg = messageText;\n if (isString(messageText)) {\n msg = Utils.parseJSON(messageText);\n }\n\n var message = {\n id : msg[keys.jsonIdKey],\n channel: msg[keys.jsonChannelKey],\n text : isString(msg[keys.jsonTextKey]) ? unescapeText(msg[keys.jsonTextKey]) : msg[keys.jsonTextKey],\n tag : msg[keys.jsonTagKey],\n time : msg[keys.jsonTimeKey],\n eventid: msg[keys.jsonEventIdKey] || \"\"\n };\n\n return message;\n };\n\n var getBacktrack = function(options) {\n return (options.backtrack) ? \".b\" + Number(options.backtrack) : \"\";\n };\n\n var getChannelsPath = function(channels, withBacktrack) {\n var path = '';\n for (var channelName in channels) {\n if (!channels.hasOwnProperty || channels.hasOwnProperty(channelName)) {\n path += \"/\" + channelName + (withBacktrack ? getBacktrack(channels[channelName]) : \"\");\n }\n }\n return path;\n };\n\n var getSubscriberUrl = function(pushstream, prefix, extraParams, withBacktrack) {\n var websocket = pushstream.wrapper.type === WebSocketWrapper.TYPE;\n var useSSL = pushstream.useSSL;\n var port = normalizePort(useSSL, pushstream.port);\n var url = (websocket) ? ((useSSL) ? \"wss://\" : \"ws://\") : ((useSSL) ? \"https://\" : \"http://\");\n url += pushstream.host;\n url += (port ? (\":\" + port) : \"\");\n url += prefix;\n\n var channels = getChannelsPath(pushstream.channels, withBacktrack);\n if (pushstream.channelsByArgument) {\n var channelParam = {};\n channelParam[pushstream.channelsArgument] = channels.substring(1);\n extraParams = extend({}, extraParams, channelParam);\n } else {\n url += channels;\n }\n return addParamsToUrl(url, extraParams);\n };\n\n var getPublisherUrl = function(pushstream) {\n var port = normalizePort(pushstream.useSSL, pushstream.port);\n var url = (pushstream.useSSL) ? \"https://\" : \"http://\";\n url += pushstream.host;\n url += (port ? (\":\" + port) : \"\");\n url += pushstream.urlPrefixPublisher;\n url += \"?id=\" + getChannelsPath(pushstream.channels, false);\n\n return url;\n };\n\n Utils.extract_xss_domain = function(domain) {\n // if domain is an ip address return it, else return ate least the last two parts of it\n if (domain.match(/^(\\d{1,3}\\.){3}\\d{1,3}$/)) {\n return domain;\n }\n\n var domainParts = domain.split('.');\n // if the domain ends with 3 chars or 2 chars preceded by more than 4 chars,\n // we can keep only 2 parts, else we have to keep at least 3 (or all domain name)\n var keepNumber = Math.max(domainParts.length - 1, (domain.match(/(\\w{4,}\\.\\w{2}|\\.\\w{3,})$/) ? 2 : 3));\n\n return domainParts.slice(-1 * keepNumber).join('.');\n };\n\n var normalizePort = function (useSSL, port) {\n port = Number(port || (useSSL ? 443 : 80));\n return ((!useSSL && port === 80) || (useSSL && port === 443)) ? \"\" : port;\n };\n\n Utils.isCrossDomainUrl = function(url) {\n if (!url) {\n return false;\n }\n\n var parser = document.createElement('a');\n parser.href = url;\n\n var srcPort = normalizePort(window.location.protocol === \"https:\", window.location.port);\n var dstPort = normalizePort(parser.protocol === \"https:\", parser.port);\n\n return (window.location.protocol !== parser.protocol) ||\n (window.location.hostname !== parser.hostname) ||\n (srcPort !== dstPort);\n };\n\n var linker = function(method, instance) {\n return function() {\n return method.apply(instance, arguments);\n };\n };\n\n var clearTimer = function(timer) {\n if (timer) {\n window.clearTimeout(timer);\n }\n return null;\n };\n\n /* common callbacks */\n var onmessageCallback = function(event) {\n Log4js.info(\"[\" + this.type + \"] message received\", arguments);\n var message = Utils.parseMessage(event.data, this.pushstream);\n if (message.tag) { this.pushstream._etag = message.tag; }\n if (message.time) { this.pushstream._lastModified = message.time; }\n if (message.eventid) { this.pushstream._lastEventId = message.eventid; }\n this.pushstream._onmessage(message.text, message.id, message.channel, message.eventid, true, message.time);\n };\n\n var onopenCallback = function() {\n this.pushstream._onopen();\n Log4js.info(\"[\" + this.type + \"] connection opened\");\n };\n\n var onerrorCallback = function(event) {\n Log4js.info(\"[\" + this.type + \"] error (disconnected by server):\", event);\n if ((this.pushstream.readyState === PushStream.OPEN) &&\n (this.type === EventSourceWrapper.TYPE) &&\n (event.type === 'error') &&\n (this.connection.readyState === window.EventSource.CONNECTING)) {\n // EventSource already has a reconnection function using the last-event-id header\n return;\n }\n this._closeCurrentConnection();\n this.pushstream._onerror({type: ((event && ((event.type === \"load\") || ((event.type === \"close\") && (event.code === 1006)))) || (this.pushstream.readyState === PushStream.CONNECTING)) ? \"load\" : \"timeout\"});\n };\n\n /* wrappers */\n\n var WebSocketWrapper = function(pushstream) {\n if (!window.WebSocket && !window.MozWebSocket) { throw \"WebSocket not supported\"; }\n this.type = WebSocketWrapper.TYPE;\n this.pushstream = pushstream;\n this.connection = null;\n };\n\n WebSocketWrapper.TYPE = \"WebSocket\";\n\n WebSocketWrapper.prototype = {\n connect: function() {\n this._closeCurrentConnection();\n var params = extend({}, this.pushstream.extraParams(), currentTimestampParam(), getControlParams(this.pushstream));\n var url = getSubscriberUrl(this.pushstream, this.pushstream.urlPrefixWebsocket, params, !this.pushstream._useControlArguments());\n this.connection = (window.WebSocket) ? new window.WebSocket(url) : new window.MozWebSocket(url);\n this.connection.onerror = linker(onerrorCallback, this);\n this.connection.onclose = linker(onerrorCallback, this);\n this.connection.onopen = linker(onopenCallback, this);\n this.connection.onmessage = linker(onmessageCallback, this);\n Log4js.info(\"[WebSocket] connecting to:\", url);\n },\n\n disconnect: function() {\n if (this.connection) {\n Log4js.debug(\"[WebSocket] closing connection to:\", this.connection.url);\n this.connection.onclose = null;\n this._closeCurrentConnection();\n this.pushstream._onclose();\n }\n },\n\n _closeCurrentConnection: function() {\n if (this.connection) {\n try { this.connection.close(); } catch (e) { /* ignore error on closing */ }\n this.connection = null;\n }\n },\n\n sendMessage: function(message) {\n if (this.connection) { this.connection.send(message); }\n }\n };\n\n var EventSourceWrapper = function(pushstream) {\n if (!window.EventSource) { throw \"EventSource not supported\"; }\n this.type = EventSourceWrapper.TYPE;\n this.pushstream = pushstream;\n this.connection = null;\n };\n\n EventSourceWrapper.TYPE = \"EventSource\";\n\n EventSourceWrapper.prototype = {\n connect: function() {\n this._closeCurrentConnection();\n var params = extend({}, this.pushstream.extraParams(), currentTimestampParam(), getControlParams(this.pushstream));\n var url = getSubscriberUrl(this.pushstream, this.pushstream.urlPrefixEventsource, params, !this.pushstream._useControlArguments());\n this.connection = new window.EventSource(url);\n this.connection.onerror = linker(onerrorCallback, this);\n this.connection.onopen = linker(onopenCallback, this);\n this.connection.onmessage = linker(onmessageCallback, this);\n Log4js.info(\"[EventSource] connecting to:\", url);\n },\n\n disconnect: function() {\n if (this.connection) {\n Log4js.debug(\"[EventSource] closing connection to:\", this.connection.url);\n this.connection.onclose = null;\n this._closeCurrentConnection();\n this.pushstream._onclose();\n }\n },\n\n _closeCurrentConnection: function() {\n if (this.connection) {\n try { this.connection.close(); } catch (e) { /* ignore error on closing */ }\n this.connection = null;\n }\n }\n };\n\n var StreamWrapper = function(pushstream) {\n this.type = StreamWrapper.TYPE;\n this.pushstream = pushstream;\n this.connection = null;\n this.url = null;\n this.frameloadtimer = null;\n this.pingtimer = null;\n this.iframeId = \"PushStreamManager_\" + pushstream.id;\n };\n\n StreamWrapper.TYPE = \"Stream\";\n\n StreamWrapper.prototype = {\n connect: function() {\n this._closeCurrentConnection();\n var domain = Utils.extract_xss_domain(this.pushstream.host);\n try {\n document.domain = domain;\n } catch(e) {\n Log4js.error(\"[Stream] (warning) problem setting document.domain = \" + domain + \" (OBS: IE8 does not support set IP numbers as domain)\");\n }\n var params = extend({}, this.pushstream.extraParams(), currentTimestampParam(), {\"streamid\": this.pushstream.id}, getControlParams(this.pushstream));\n this.url = getSubscriberUrl(this.pushstream, this.pushstream.urlPrefixStream, params, !this.pushstream._useControlArguments());\n Log4js.debug(\"[Stream] connecting to:\", this.url);\n this.loadFrame(this.url);\n },\n\n disconnect: function() {\n if (this.connection) {\n Log4js.debug(\"[Stream] closing connection to:\", this.url);\n this._closeCurrentConnection();\n this.pushstream._onclose();\n }\n },\n\n _clear_iframe: function() {\n var oldIframe = document.getElementById(this.iframeId);\n if (oldIframe) {\n oldIframe.onload = null;\n oldIframe.src = \"about:blank\";\n if (oldIframe.parentNode) { oldIframe.parentNode.removeChild(oldIframe); }\n }\n },\n\n _closeCurrentConnection: function() {\n this._clear_iframe();\n if (this.connection) {\n this.pingtimer = clearTimer(this.pingtimer);\n this.frameloadtimer = clearTimer(this.frameloadtimer);\n this.connection = null;\n this.transferDoc = null;\n if (typeof window.CollectGarbage === 'function') { window.CollectGarbage(); }\n }\n },\n\n loadFrame: function(url) {\n this._clear_iframe();\n\n var ifr = null;\n if (\"ActiveXObject\" in window) {\n var transferDoc = new window.ActiveXObject(\"htmlfile\");\n transferDoc.open();\n transferDoc.write(\"\\x3C\" + \"html\" + \"\\x3E\\x3C\" + \"script\" + \"\\x3E\" + \"document.domain='\" + document.domain + \"';\\x3C\" + \"/script\" + \"\\x3E\");\n transferDoc.write(\"\\x3C\" + \"body\" + \"\\x3E\\x3C\" + \"iframe id='\" + this.iframeId + \"' src='\" + url + \"'\\x3E\\x3C\" + \"/iframe\" + \"\\x3E\\x3C\" + \"/body\" + \"\\x3E\\x3C\" + \"/html\" + \"\\x3E\");\n transferDoc.parentWindow.PushStream = PushStream;\n transferDoc.close();\n ifr = transferDoc.getElementById(this.iframeId);\n this.transferDoc = transferDoc;\n } else {\n ifr = document.createElement(\"IFRAME\");\n ifr.style.width = \"1px\";\n ifr.style.height = \"1px\";\n ifr.style.border = \"none\";\n ifr.style.position = \"absolute\";\n ifr.style.top = \"-10px\";\n ifr.style.marginTop = \"-10px\";\n ifr.style.zIndex = \"-20\";\n ifr.PushStream = PushStream;\n document.body.appendChild(ifr);\n ifr.setAttribute(\"src\", url);\n ifr.setAttribute(\"id\", this.iframeId);\n }\n\n ifr.onload = linker(onerrorCallback, this);\n this.connection = ifr;\n this.frameloadtimer = window.setTimeout(linker(onerrorCallback, this), this.pushstream.timeout);\n },\n\n register: function(iframeWindow) {\n this.frameloadtimer = clearTimer(this.frameloadtimer);\n iframeWindow.p = linker(this.process, this);\n this.connection.onload = linker(this._onframeloaded, this);\n this.pushstream._onopen();\n this.setPingTimer();\n Log4js.info(\"[Stream] frame registered\");\n },\n\n process: function(id, channel, text, eventid, time, tag) {\n this.pingtimer = clearTimer(this.pingtimer);\n Log4js.info(\"[Stream] message received\", arguments);\n if (id !== -1) {\n if (tag) { this.pushstream._etag = tag; }\n if (time) { this.pushstream._lastModified = time; }\n if (eventid) { this.pushstream._lastEventId = eventid; }\n }\n this.pushstream._onmessage(unescapeText(text), id, channel, eventid || \"\", true, time);\n this.setPingTimer();\n },\n\n _onframeloaded: function() {\n Log4js.info(\"[Stream] frame loaded (disconnected by server)\");\n this.pushstream._onerror({type: \"timeout\"});\n this.connection.onload = null;\n this.disconnect();\n },\n\n setPingTimer: function() {\n if (this.pingtimer) { clearTimer(this.pingtimer); }\n this.pingtimer = window.setTimeout(linker(onerrorCallback, this), this.pushstream.pingtimeout);\n }\n };\n\n var LongPollingWrapper = function(pushstream) {\n this.type = LongPollingWrapper.TYPE;\n this.pushstream = pushstream;\n this.connection = null;\n this.opentimer = null;\n this.messagesQueue = [];\n this._linkedInternalListen = linker(this._internalListen, this);\n this.xhrSettings = {\n timeout: this.pushstream.timeout,\n data: {},\n url: null,\n success: linker(this.onmessage, this),\n error: linker(this.onerror, this),\n load: linker(this.onload, this),\n beforeSend: linker(this.beforeSend, this),\n afterReceive: linker(this.afterReceive, this)\n };\n };\n\n LongPollingWrapper.TYPE = \"LongPolling\";\n\n LongPollingWrapper.prototype = {\n connect: function() {\n this.messagesQueue = [];\n this._closeCurrentConnection();\n this.urlWithBacktrack = getSubscriberUrl(this.pushstream, this.pushstream.urlPrefixLongpolling, {}, true);\n this.urlWithoutBacktrack = getSubscriberUrl(this.pushstream, this.pushstream.urlPrefixLongpolling, {}, false);\n this.xhrSettings.url = this.urlWithBacktrack;\n this.useJSONP = this.pushstream._crossDomain || this.pushstream.useJSONP;\n this.xhrSettings.scriptId = \"PushStreamManager_\" + this.pushstream.id;\n if (this.useJSONP) {\n this.pushstream.messagesControlByArgument = true;\n }\n this._listen();\n this.opentimer = window.setTimeout(linker(onopenCallback, this), 150);\n Log4js.info(\"[LongPolling] connecting to:\", this.xhrSettings.url);\n },\n\n _listen: function() {\n if (this._internalListenTimeout) { clearTimer(this._internalListenTimeout); }\n this._internalListenTimeout = window.setTimeout(this._linkedInternalListen, 100);\n },\n\n _internalListen: function() {\n if (this.pushstream._keepConnected) {\n this.xhrSettings.url = this.pushstream._useControlArguments() ? this.urlWithoutBacktrack : this.urlWithBacktrack;\n this.xhrSettings.data = extend({}, this.pushstream.extraParams(), this.xhrSettings.data, getControlParams(this.pushstream));\n if (this.useJSONP) {\n this.connection = Ajax.jsonp(this.xhrSettings);\n } else if (!this.connection) {\n this.connection = Ajax.load(this.xhrSettings);\n }\n }\n },\n\n disconnect: function() {\n if (this.connection) {\n Log4js.debug(\"[LongPolling] closing connection to:\", this.xhrSettings.url);\n this._closeCurrentConnection();\n this.pushstream._onclose();\n }\n },\n\n _closeCurrentConnection: function() {\n this.opentimer = clearTimer(this.opentimer);\n if (this.connection) {\n try { this.connection.abort(); } catch (e) {\n try { Ajax.clear(this.connection); } catch (e1) { /* ignore error on closing */ }\n }\n this.connection = null;\n this.xhrSettings.url = null;\n }\n },\n\n beforeSend: function(xhr) {\n if (!this.pushstream.messagesControlByArgument) {\n xhr.setRequestHeader(\"If-None-Match\", this.pushstream._etag);\n xhr.setRequestHeader(\"If-Modified-Since\", this.pushstream._lastModified);\n }\n },\n\n afterReceive: function(xhr) {\n if (!this.pushstream.messagesControlByArgument) {\n this.pushstream._etag = xhr.getResponseHeader('Etag');\n this.pushstream._lastModified = xhr.getResponseHeader('Last-Modified');\n }\n this.connection = null;\n },\n\n onerror: function(status) {\n this._closeCurrentConnection();\n if (this.pushstream._keepConnected) { /* abort(), called by disconnect(), call this callback, but should be ignored */\n if (status === 304) {\n this._listen();\n } else {\n Log4js.info(\"[LongPolling] error (disconnected by server):\", status);\n this.pushstream._onerror({type: ((status === 403) || (this.pushstream.readyState === PushStream.CONNECTING)) ? \"load\" : \"timeout\"});\n }\n }\n },\n\n onload: function() {\n this._listen();\n },\n\n onmessage: function(responseText) {\n if (this._internalListenTimeout) { clearTimer(this._internalListenTimeout); }\n Log4js.info(\"[LongPolling] message received\", responseText);\n var lastMessage = null;\n var messages = isArray(responseText) ? responseText : responseText.replace(/\\}\\{/g, \"}\\r\\n{\").split(\"\\r\\n\");\n for (var i = 0; i < messages.length; i++) {\n if (messages[i]) {\n lastMessage = Utils.parseMessage(messages[i], this.pushstream);\n this.messagesQueue.push(lastMessage);\n if (this.pushstream.messagesControlByArgument && lastMessage.time) {\n this.pushstream._etag = lastMessage.tag;\n this.pushstream._lastModified = lastMessage.time;\n }\n }\n }\n\n this._listen();\n\n while (this.messagesQueue.length > 0) {\n var message = this.messagesQueue.shift();\n this.pushstream._onmessage(message.text, message.id, message.channel, message.eventid, (this.messagesQueue.length === 0), message.time);\n }\n }\n };\n\n /* mains class */\n\n var PushStreamManager = [];\n\n var PushStream = function(settings) {\n settings = settings || {};\n\n this.id = PushStreamManager.push(this) - 1;\n\n this.useSSL = settings.useSSL || false;\n this.host = settings.host || window.location.hostname;\n this.port = Number(settings.port || (this.useSSL ? 443 : 80));\n\n this.timeout = settings.timeout || 30000;\n this.pingtimeout = settings.pingtimeout || 30000;\n this.reconnectOnTimeoutInterval = settings.reconnectOnTimeoutInterval || 3000;\n this.reconnectOnChannelUnavailableInterval = settings.reconnectOnChannelUnavailableInterval || 60000;\n this.autoReconnect = (settings.autoReconnect !== false);\n\n this.lastEventId = settings.lastEventId || null;\n this.messagesPublishedAfter = settings.messagesPublishedAfter;\n this.messagesControlByArgument = settings.messagesControlByArgument || false;\n this.tagArgument = settings.tagArgument || 'tag';\n this.timeArgument = settings.timeArgument || 'time';\n this.eventIdArgument = settings.eventIdArgument || 'eventid';\n this.useJSONP = settings.useJSONP || false;\n\n this._reconnecttimer = null;\n this._etag = 0;\n this._lastModified = null;\n this._lastEventId = null;\n\n this.urlPrefixPublisher = settings.urlPrefixPublisher || '/pub';\n this.urlPrefixStream = settings.urlPrefixStream || '/sub';\n this.urlPrefixEventsource = settings.urlPrefixEventsource || '/ev';\n this.urlPrefixLongpolling = settings.urlPrefixLongpolling || '/lp';\n this.urlPrefixWebsocket = settings.urlPrefixWebsocket || '/ws';\n\n this.jsonIdKey = settings.jsonIdKey || 'id';\n this.jsonChannelKey = settings.jsonChannelKey || 'channel';\n this.jsonTextKey = settings.jsonTextKey || 'text';\n this.jsonTagKey = settings.jsonTagKey || 'tag';\n this.jsonTimeKey = settings.jsonTimeKey || 'time';\n this.jsonEventIdKey = settings.jsonEventIdKey || 'eventid';\n\n this.modes = (settings.modes || 'eventsource|websocket|stream|longpolling').split('|');\n this.wrappers = [];\n this.wrapper = null;\n\n this.onchanneldeleted = settings.onchanneldeleted || null;\n this.onmessage = settings.onmessage || null;\n this.onerror = settings.onerror || null;\n this.onstatuschange = settings.onstatuschange || null;\n this.extraParams = settings.extraParams || function() { return {}; };\n\n this.channels = {};\n this.channelsCount = 0;\n this.channelsByArgument = settings.channelsByArgument || false;\n this.channelsArgument = settings.channelsArgument || 'channels';\n\n this._crossDomain = Utils.isCrossDomainUrl(getPublisherUrl(this));\n\n for (var i = 0; i < this.modes.length; i++) {\n try {\n var wrapper = null;\n switch (this.modes[i]) {\n case \"websocket\" : wrapper = new WebSocketWrapper(this); break;\n case \"eventsource\": wrapper = new EventSourceWrapper(this); break;\n case \"longpolling\": wrapper = new LongPollingWrapper(this); break;\n case \"stream\" : wrapper = new StreamWrapper(this); break;\n }\n this.wrappers[this.wrappers.length] = wrapper;\n } catch(e) { Log4js.info(e); }\n }\n\n this.readyState = 0;\n };\n\n /* constants */\n PushStream.LOG_LEVEL = 'error'; /* debug, info, error */\n PushStream.LOG_OUTPUT_ELEMENT_ID = 'Log4jsLogOutput';\n\n /* status codes */\n PushStream.CLOSED = 0;\n PushStream.CONNECTING = 1;\n PushStream.OPEN = 2;\n\n /* main code */\n PushStream.prototype = {\n addChannel: function(channel, options) {\n if (escapeText(channel) !== channel) {\n throw \"Invalid channel name! Channel has to be a set of [a-zA-Z0-9]\";\n }\n Log4js.debug(\"entering addChannel\");\n if (typeof(this.channels[channel]) !== \"undefined\") { throw \"Cannot add channel \" + channel + \": already subscribed\"; }\n options = options || {};\n Log4js.info(\"adding channel\", channel, options);\n this.channels[channel] = options;\n this.channelsCount++;\n if (this.readyState !== PushStream.CLOSED) { this.connect(); }\n Log4js.debug(\"leaving addChannel\");\n },\n\n removeChannel: function(channel) {\n if (this.channels[channel]) {\n Log4js.info(\"removing channel\", channel);\n delete this.channels[channel];\n this.channelsCount--;\n }\n },\n\n removeAllChannels: function() {\n Log4js.info(\"removing all channels\");\n this.channels = {};\n this.channelsCount = 0;\n },\n\n _setState: function(state) {\n if (this.readyState !== state) {\n Log4js.info(\"status changed\", state);\n this.readyState = state;\n if (this.onstatuschange) {\n this.onstatuschange(this.readyState);\n }\n }\n },\n\n connect: function() {\n Log4js.debug(\"entering connect\");\n if (!this.host) { throw \"PushStream host not specified\"; }\n if (isNaN(this.port)) { throw \"PushStream port not specified\"; }\n if (!this.channelsCount) { throw \"No channels specified\"; }\n if (this.wrappers.length === 0) { throw \"No available support for this browser\"; }\n\n this._keepConnected = true;\n this._lastUsedMode = 0;\n this._connect();\n\n Log4js.debug(\"leaving connect\");\n },\n\n disconnect: function() {\n Log4js.debug(\"entering disconnect\");\n this._keepConnected = false;\n this._disconnect();\n this._setState(PushStream.CLOSED);\n Log4js.info(\"disconnected\");\n Log4js.debug(\"leaving disconnect\");\n },\n\n _useControlArguments :function() {\n return this.messagesControlByArgument && ((this._lastModified !== null) || (this._lastEventId !== null));\n },\n\n _connect: function() {\n if (this._lastEventId === null) {\n this._lastEventId = this.lastEventId;\n }\n if (this._lastModified === null) {\n var date = this.messagesPublishedAfter;\n if (!isDate(date)) {\n var messagesPublishedAfter = Number(this.messagesPublishedAfter);\n if (messagesPublishedAfter > 0) {\n date = new Date();\n date.setTime(date.getTime() - (messagesPublishedAfter * 1000));\n } else if (messagesPublishedAfter < 0) {\n date = new Date(0);\n }\n }\n\n if (isDate(date)) {\n this._lastModified = Utils.dateToUTCString(date);\n }\n }\n\n this._disconnect();\n this._setState(PushStream.CONNECTING);\n this.wrapper = this.wrappers[this._lastUsedMode++ % this.wrappers.length];\n\n try {\n this.wrapper.connect();\n } catch (e) {\n //each wrapper has a cleanup routine at disconnect method\n if (this.wrapper) {\n this.wrapper.disconnect();\n }\n }\n },\n\n _disconnect: function() {\n this._reconnecttimer = clearTimer(this._reconnecttimer);\n if (this.wrapper) {\n this.wrapper.disconnect();\n }\n },\n\n _onopen: function() {\n this._reconnecttimer = clearTimer(this._reconnecttimer);\n this._setState(PushStream.OPEN);\n if (this._lastUsedMode > 0) {\n this._lastUsedMode--; //use same mode on next connection\n }\n },\n\n _onclose: function() {\n this._reconnecttimer = clearTimer(this._reconnecttimer);\n this._setState(PushStream.CLOSED);\n this._reconnect(this.reconnectOnTimeoutInterval);\n },\n\n _onmessage: function(text, id, channel, eventid, isLastMessageFromBatch, time) {\n Log4js.debug(\"message\", text, id, channel, eventid, isLastMessageFromBatch, time);\n if (id === -2) {\n if (this.onchanneldeleted) { this.onchanneldeleted(channel); }\n } else if (id > 0) {\n if (this.onmessage) { this.onmessage(text, id, channel, eventid, isLastMessageFromBatch, time); }\n }\n },\n\n _onerror: function(error) {\n this._setState(PushStream.CLOSED);\n this._reconnect((error.type === \"timeout\") ? this.reconnectOnTimeoutInterval : this.reconnectOnChannelUnavailableInterval);\n if (this.onerror) { this.onerror(error); }\n },\n\n _reconnect: function(timeout) {\n if (this.autoReconnect && this._keepConnected && !this._reconnecttimer && (this.readyState !== PushStream.CONNECTING)) {\n Log4js.info(\"trying to reconnect in\", timeout);\n this._reconnecttimer = window.setTimeout(linker(this._connect, this), timeout);\n }\n },\n\n sendMessage: function(message, successCallback, errorCallback) {\n message = escapeText(message);\n if (this.wrapper.type === WebSocketWrapper.TYPE) {\n this.wrapper.sendMessage(message);\n if (successCallback) { successCallback(); }\n } else {\n Ajax.post({url: getPublisherUrl(this), data: message, success: successCallback, error: errorCallback, crossDomain: this._crossDomain});\n }\n }\n };\n\n PushStream.sendMessage = function(url, message, successCallback, errorCallback) {\n Ajax.post({url: url, data: escapeText(message), success: successCallback, error: errorCallback});\n };\n\n // to make server header template more clear, it calls register and\n // by a url parameter we find the stream wrapper instance\n PushStream.register = function(iframe) {\n var matcher = iframe.window.location.href.match(/streamid=([0-9]*)&?/);\n if (matcher[1] && PushStreamManager[matcher[1]]) {\n PushStreamManager[matcher[1]].wrapper.register(iframe);\n }\n };\n\n PushStream.unload = function() {\n for (var i = 0; i < PushStreamManager.length; i++) {\n try { PushStreamManager[i].disconnect(); } catch(e){}\n }\n };\n\n /* make class public */\n window.PushStream = PushStream;\n window.PushStreamManager = PushStreamManager;\n\n if (window.attachEvent) { window.attachEvent(\"onunload\", PushStream.unload); }\n if (window.addEventListener) { window.addEventListener.call(window, \"unload\", PushStream.unload, false); }\n\n})(window, document);\n","// extracted by mini-css-extract-plugin\nmodule.exports = {\"wrapper\":\"reportComponent_wrapper__LiX66\",\"select\":\"reportComponent_select__2v-0n\",\"code\":\"reportComponent_code__1ZEvL\"};","// extracted by mini-css-extract-plugin\nmodule.exports = {\"content\":\"companiesManagement_content__wqjCd\",\"companyContainer\":\"companiesManagement_companyContainer__1kfVC\",\"companyTitleContainer\":\"companiesManagement_companyTitleContainer__rFckl\",\"companyTitle\":\"companiesManagement_companyTitle__KX5iV\",\"btnContainer\":\"companiesManagement_btnContainer__2g_CS\",\"btn\":\"companiesManagement_btn__3wFMO\",\"btn--add\":\"companiesManagement_btn--add__3CjqG\",\"btn--add-contact-phone\":\"companiesManagement_btn--add-contact-phone__2ts6a\",\"btn--add-transmissor\":\"companiesManagement_btn--add-transmissor__1k4Sb\",\"btn--attend-emergency\":\"companiesManagement_btn--attend-emergency__3GS2w\",\"btn--bold\":\"companiesManagement_btn--bold__2pxae\",\"btn--bottom\":\"companiesManagement_btn--bottom__1qubZ\",\"btn--color-gray\":\"companiesManagement_btn--color-gray__A2-l5\",\"btn--color-green\":\"companiesManagement_btn--color-green__3C2I6\",\"btn--color-invalid\":\"companiesManagement_btn--color-invalid__1anjf\",\"btn--color-orange\":\"companiesManagement_btn--color-orange__q1_Ij\",\"btn--color-red\":\"companiesManagement_btn--color-red__vwBQj\",\"btn--btn-bg-color\":\"companiesManagement_btn--btn-bg-color__HAo6-\",\"btn--confirm-remove-modal\":\"companiesManagement_btn--confirm-remove-modal__1qnb_\",\"btn--download\":\"companiesManagement_btn--download__1FQsI\",\"btn--download-text\":\"companiesManagement_btn--download-text__3UEYN\",\"btn--get-attend-or-attend-voice-call\":\"companiesManagement_btn--get-attend-or-attend-voice-call__2H5Kp\",\"btn--modal-attend\":\"companiesManagement_btn--modal-attend__2QLyi\",\"btn--right\":\"companiesManagement_btn--right__1Gdze\",\"btn--multi\":\"companiesManagement_btn--multi__3Q8e9\",\"btn--form\":\"companiesManagement_btn--form__2-Ccg\",\"personBtn\":\"companiesManagement_personBtn__3sHzE\",\"personBtn--add\":\"companiesManagement_personBtn--add__QeKgL\",\"personBtn--add-contact-phone\":\"companiesManagement_personBtn--add-contact-phone__1Je3F\",\"personBtn--add-transmissor\":\"companiesManagement_personBtn--add-transmissor__3HE5H\",\"personBtn--attend-emergency\":\"companiesManagement_personBtn--attend-emergency__3VfzP\",\"personBtn--bold\":\"companiesManagement_personBtn--bold__3cvzm\",\"personBtn--bottom\":\"companiesManagement_personBtn--bottom__3Opl0\",\"personBtn--color-gray\":\"companiesManagement_personBtn--color-gray__dD_2V\",\"personBtn--color-green\":\"companiesManagement_personBtn--color-green__2t3b5\",\"personBtn--color-invalid\":\"companiesManagement_personBtn--color-invalid__18aS5\",\"personBtn--color-orange\":\"companiesManagement_personBtn--color-orange__3JWBu\",\"personBtn--color-red\":\"companiesManagement_personBtn--color-red__2H6dw\",\"personBtn--btn-bg-color\":\"companiesManagement_personBtn--btn-bg-color__yESeB\",\"personBtn--confirm-remove-modal\":\"companiesManagement_personBtn--confirm-remove-modal__291RB\",\"personBtn--download\":\"companiesManagement_personBtn--download__EvgR7\",\"personBtn--download-text\":\"companiesManagement_personBtn--download-text__2YVkP\",\"personBtn--get-attend-or-attend-voice-call\":\"companiesManagement_personBtn--get-attend-or-attend-voice-call__3jUlQ\",\"personBtn--modal-attend\":\"companiesManagement_personBtn--modal-attend__1GB_9\",\"personBtn--right\":\"companiesManagement_personBtn--right__iKeGi\",\"personBtn--multi\":\"companiesManagement_personBtn--multi__2NG8R\",\"personBtn--form\":\"companiesManagement_personBtn--form__1G5xS\",\"editBtn\":\"companiesManagement_editBtn__3POUh\",\"editBtn--add\":\"companiesManagement_editBtn--add__2ejY8\",\"editBtn--add-contact-phone\":\"companiesManagement_editBtn--add-contact-phone__3ZPGz\",\"editBtn--add-transmissor\":\"companiesManagement_editBtn--add-transmissor__3EAmX\",\"editBtn--attend-emergency\":\"companiesManagement_editBtn--attend-emergency__3iTHn\",\"editBtn--bold\":\"companiesManagement_editBtn--bold__PVVTI\",\"editBtn--bottom\":\"companiesManagement_editBtn--bottom__17ogJ\",\"editBtn--color-gray\":\"companiesManagement_editBtn--color-gray__3jFQb\",\"editBtn--color-green\":\"companiesManagement_editBtn--color-green__1TuXg\",\"editBtn--color-invalid\":\"companiesManagement_editBtn--color-invalid__2kWmp\",\"editBtn--color-orange\":\"companiesManagement_editBtn--color-orange__2JDDq\",\"editBtn--color-red\":\"companiesManagement_editBtn--color-red__2_PLj\",\"editBtn--btn-bg-color\":\"companiesManagement_editBtn--btn-bg-color__VQYcK\",\"editBtn--confirm-remove-modal\":\"companiesManagement_editBtn--confirm-remove-modal__BlDHr\",\"editBtn--download\":\"companiesManagement_editBtn--download__1vmbh\",\"editBtn--download-text\":\"companiesManagement_editBtn--download-text__1UPyT\",\"editBtn--get-attend-or-attend-voice-call\":\"companiesManagement_editBtn--get-attend-or-attend-voice-call__1-65d\",\"editBtn--modal-attend\":\"companiesManagement_editBtn--modal-attend__1uzKG\",\"editBtn--right\":\"companiesManagement_editBtn--right__3204c\",\"editBtn--multi\":\"companiesManagement_editBtn--multi__2GLMw\",\"editBtn--form\":\"companiesManagement_editBtn--form__3apUM\",\"removeBtn\":\"companiesManagement_removeBtn__21X6S\",\"removeBtn--add\":\"companiesManagement_removeBtn--add__3aWu8\",\"removeBtn--add-contact-phone\":\"companiesManagement_removeBtn--add-contact-phone__2eCZa\",\"removeBtn--add-transmissor\":\"companiesManagement_removeBtn--add-transmissor__3RsB8\",\"removeBtn--attend-emergency\":\"companiesManagement_removeBtn--attend-emergency__2NLq1\",\"removeBtn--bold\":\"companiesManagement_removeBtn--bold__QkdHR\",\"removeBtn--bottom\":\"companiesManagement_removeBtn--bottom__2Ur61\",\"removeBtn--color-gray\":\"companiesManagement_removeBtn--color-gray__31UoO\",\"removeBtn--color-green\":\"companiesManagement_removeBtn--color-green__1ne7t\",\"removeBtn--color-invalid\":\"companiesManagement_removeBtn--color-invalid__bAfl0\",\"removeBtn--color-orange\":\"companiesManagement_removeBtn--color-orange__3JLFu\",\"removeBtn--color-red\":\"companiesManagement_removeBtn--color-red__ir-1l\",\"removeBtn--btn-bg-color\":\"companiesManagement_removeBtn--btn-bg-color__1NxId\",\"removeBtn--confirm-remove-modal\":\"companiesManagement_removeBtn--confirm-remove-modal__3W45G\",\"removeBtn--download\":\"companiesManagement_removeBtn--download__1qiGG\",\"removeBtn--download-text\":\"companiesManagement_removeBtn--download-text__2MLh3\",\"removeBtn--get-attend-or-attend-voice-call\":\"companiesManagement_removeBtn--get-attend-or-attend-voice-call__CMb9x\",\"removeBtn--modal-attend\":\"companiesManagement_removeBtn--modal-attend__26fqu\",\"removeBtn--right\":\"companiesManagement_removeBtn--right__ArCoM\",\"removeBtn--multi\":\"companiesManagement_removeBtn--multi__22NFt\",\"removeBtn--form\":\"companiesManagement_removeBtn--form__11yLu\",\"table\":\"companiesManagement_table__2E0rZ\",\"header\":\"companiesManagement_header__3tsmD\",\"column\":\"companiesManagement_column__2dLby\",\"row\":\"companiesManagement_row__1bCsw\",\"username\":\"companiesManagement_username__UXnXS\",\"name\":\"companiesManagement_name__3O-2Q\",\"email\":\"companiesManagement_email__zIJ7-\",\"columnIcons\":\"companiesManagement_columnIcons__ahyos\"};","// extracted by mini-css-extract-plugin\nmodule.exports = {\"wrapper\":\"card_wrapper__B7t9h\",\"border\":\"card_border__1BVgS\",\"content\":\"card_content__aSgr0\",\"content-top\":\"card_content-top__2mS4O\",\"title\":\"card_title__3yprl\",\"info\":\"card_info__3fhH2\",\"text\":\"card_text__2lpWp\"};","// extracted by mini-css-extract-plugin\nmodule.exports = {\"adminActions\":\"reportClientMonthlyFollowup_adminActions__2bmm0\",\"otherActions\":\"reportClientMonthlyFollowup_otherActions__2ADTV\",\"tracker\":\"reportClientMonthlyFollowup_tracker__vZU97\",\"trackerActions\":\"reportClientMonthlyFollowup_trackerActions__2ffuy\",\"rotate\":\"reportClientMonthlyFollowup_rotate__PS6PM\",\"tooltip\":\"reportClientMonthlyFollowup_tooltip__3ki0r\",\"company\":\"reportClientMonthlyFollowup_company__Bn1vN\",\"companyHeader\":\"reportClientMonthlyFollowup_companyHeader__2gTn-\",\"name\":\"reportClientMonthlyFollowup_name__36gWw\",\"subtitleContainer\":\"reportClientMonthlyFollowup_subtitleContainer__1sFvu\",\"title\":\"reportClientMonthlyFollowup_title__1y1li\",\"subtitle\":\"reportClientMonthlyFollowup_subtitle__3lju9\",\"table\":\"reportClientMonthlyFollowup_table__2Yp_8\",\"paginate\":\"reportClientMonthlyFollowup_paginate__2wybM\",\"header\":\"reportClientMonthlyFollowup_header__2n05c\",\"header-column\":\"reportClientMonthlyFollowup_header-column__3nzxW\",\"body\":\"reportClientMonthlyFollowup_body__2reln\",\"row\":\"reportClientMonthlyFollowup_row__2DKNy\",\"column\":\"reportClientMonthlyFollowup_column__25mEB\",\"download\":\"reportClientMonthlyFollowup_download__1DlCY\",\"btn-content\":\"reportClientMonthlyFollowup_btn-content__1ytWi\",\"account\":\"reportClientMonthlyFollowup_account__1fYt5\",\"user\":\"reportClientMonthlyFollowup_user__30mJx\",\"day\":\"reportClientMonthlyFollowup_day__SWsu8\",\"date-created\":\"reportClientMonthlyFollowup_date-created__3rBGQ\",\"date-deleted\":\"reportClientMonthlyFollowup_date-deleted__2tTNj\",\"btn-print\":\"reportClientMonthlyFollowup_btn-print__3keLR\",\"mainTitle\":\"reportClientMonthlyFollowup_mainTitle__37tQ6\",\"tableWrapper\":\"reportClientMonthlyFollowup_tableWrapper__100k4\"};","import React from 'react';\nimport style from './errorBoundary.module.scss';\n\nconst ErrorBoundaryComponent = (props) => {\n const { resetErrorBoundary } = props;\n return (\n
\n \n Ocorreu um erro ao carregar os dados do Contactto...\n \n \n Por favor, clique no botão abaixo para tentar recarregar a página.\n \n \n \n Caso o botão não esteja funcionando, você pode também recarregar utilizando F5 do seu teclado ou clicando no botão de recarregar no topo do seu navegador.\n \n
\n )\n}\n\nexport default ErrorBoundaryComponent\n","import { useState, useEffect } from \"react\";\n\nfunction usePageReloadDetection() {\n const [reloaded, setReloaded] = useState(true);\n\n useEffect(() => {\n const navigationEntries = performance.getEntriesByType(\"navigation\");\n if (navigationEntries.length > 0) {\n const navigationEntry = navigationEntries[0];\n if (navigationEntry.type === 'reload') {\n setReloaded(true);\n } else {\n setReloaded(false);\n }\n }\n }, []);\n\n return reloaded;\n}\n\nexport default usePageReloadDetection;\n","import React from 'react';\nimport PropTypes from 'prop-types';\n\nconst ArrowDown = ({ height, className, width }) => (\n \n \n \n);\n\nArrowDown.defaultProps = {\n height: '24',\n className: '',\n width: '24',\n};\n\nArrowDown.propTypes = {\n height: PropTypes.string,\n className: PropTypes.string,\n width: PropTypes.string,\n};\n\nexport default ArrowDown;\n","import React from 'react';\nimport { connect } from 'react-redux';\nimport PropTypes from 'prop-types';\nimport { Link } from 'react-router-dom';\nimport { FormattedMessage } from 'react-intl';\nimport ArrowDown from '../../icons/ArrowDown';\nimport '../../css/user.scss';\nimport '../../css/contactto.scss';\n\nconst User = ({ attendantName, logout, toggleAdminModal, loggedAttendant }) => {\n const companyId = loggedAttendant.groups.length > 1 ? loggedAttendant.groups.filter(grp => ![1,2,3,4].includes(grp))[0] : undefined;\n const editUrl = companyId ? `/app/companies/${companyId}/user/form/edit/${loggedAttendant.id}` : `/app/user/form/edit/${loggedAttendant.id}`;\n return (\n \n)};\n\nUser.propTypes = {\n attendantName: PropTypes.string.isRequired,\n logout: PropTypes.func.isRequired,\n toggleAdminModal: PropTypes.func.isRequired,\n};\n\nfunction mapStateToProps(state, ownProps) {\n return {\n loggedAttendant: state.loggedAttendant,\n };\n}\n\nexport default connect(mapStateToProps)(User);\n","import React from 'react';\nimport PropTypes from 'prop-types';\nimport '../../css/print.scss';\n\nconst Phone = ({ sipSessionType, sipStackType }) => {\n const isLoading =\n sipSessionType === 'connecting' ||\n sipStackType === 'starting';\n\n const isOffline =\n sipSessionType === 'transport_error' ||\n sipStackType === 'failed_to_start' ||\n sipStackType === 'stopped' ||\n sipStackType === 'failed_to_stop' ||\n (sipSessionType === undefined && sipStackType === undefined);\n\n const isOnline =\n sipSessionType === 'connected' ||\n sipSessionType === 'sent_request' ||\n sipSessionType === 'terminated' ||\n sipStackType === 'started';\n return (\n
\n {isOnline && !isOffline && !isLoading && }\n {!isOnline && isOffline && !isLoading && }\n {!isOnline && !isOffline && isLoading && }\n
\n );\n};\n\nPhone.defaultProps = {\n sipSessionType: undefined,\n sipStackType: undefined,\n};\n\nPhone.propTypes = {\n sipSessionType: PropTypes.string,\n sipStackType: PropTypes.string,\n};\n\n\nexport default Phone;\n","import * as types from './actionTypes';\n\nexport function logout() {\n return { type: types.LOGOUT };\n}\n\nexport function removeError(error) {\n return { type: types.REMOVE_ERROR, error };\n}\n","export const pagination = 50;\n\nexport const clientsOrdering = 'account,is_secondary';\nexport const contactsOrdering = 'priority';\nexport const transmissorsOrdering = 'zone';\nexport const transmittersOrdering = 'zone';\nexport const attendantsOrdering = 'username';\nexport const attendsOrdering = '-status,-id';\nexport const attendsClientOrdering = '-status,-id';\nexport const alarmsOrdering = 'code';\nexport const nameOrdering = 'name';\nexport const limit = 'limit=50';\n\nexport const maxTransmissors = 16;\nexport const maxClosedAttends = 6;\nexport const maxDashboardAttends = 6;\n\nexport const screenResolution = () => {\n const res = window.innerWidth;\n if (res < 768) {\n return 'sm';\n } else if (res < 1280) {\n return 'md';\n }\n return 'lg';\n};\n","export const host = () =>{\n if(process.env.REACT_APP_STAGE === 'development'){\n return '.contactto.local';\n } else if (process.env.REACT_APP_STAGE === 'homologation') {\n return '-homologation.contactto.care';\n }\n else {\n return '.contactto.care';\n }\n};\n\nexport const getDomain = () => {\n if(sessionStorage.activeDomain) {\n return sessionStorage.activeDomain;\n }\n\n if (!localStorage.domainList) {\n return ''\n }\n\n const domainList = JSON.parse(localStorage.domainList);\n if (domainList.length > 0) {\n const vidafoneDomain = domainList.find(domain => domain === 'vidafone');\n const defaultDomain = !vidafoneDomain ? domainList[0] : vidafoneDomain;\n sessionStorage.setItem('activeDomain', defaultDomain);\n return !defaultDomain ? domainList[0] : defaultDomain;\n }\n\n return 'error';\n}\n\nexport const getToken = () => {\n if(sessionStorage.activeToken) {\n return sessionStorage.activeToken;\n }\n\n if(!localStorage.domainInfo) {\n return 'error'\n }\n\n if (!localStorage.domainList) {\n return ''\n }\n\n if(sessionStorage.activeDomain) {\n const domainInfo = JSON.parse(localStorage.domainInfo);\n const token = domainInfo[sessionStorage.activeDomain].token;\n sessionStorage.setItem('activeToken', token);\n return token;\n }\n\n const domainList = JSON.parse(localStorage.domainList);\n if (domainList.length > 0) {\n const vidafoneDomain = domainList.find(domain => domain === 'vidafone');\n const defaultDomain = !vidafoneDomain ? domainList[0] : vidafoneDomain;\n const domainInfo = JSON.parse(localStorage.domainInfo);\n const token = domainInfo[defaultDomain].token;\n sessionStorage.setItem('activeToken', token);\n return token\n }\n return 'error';\n}\n\nexport const getInfo = () => {\n if(sessionStorage.activeDomain) {\n const domainInfo = JSON.parse(localStorage.domainInfo);\n return {\n user: domainInfo[sessionStorage.activeDomain].user,\n token: domainInfo[sessionStorage.activeDomain].token,\n status: domainInfo[sessionStorage.activeDomain].status,\n isPaid: domainInfo[sessionStorage.activeDomain].is_paid,\n isActive: domainInfo[sessionStorage.activeDomain].is_active,\n }\n }\n\n if (!localStorage.domainList) {\n return ''\n }\n\n const domainList = JSON.parse(localStorage.domainList);\n if (domainList.length > 0) {\n const vidafoneDomain = domainList.find(domain => domain === 'vidafone');\n const defaultDomain = !vidafoneDomain ? domainList[0] : vidafoneDomain;\n const domainInfo = JSON.parse(localStorage.domainInfo);\n return {\n user: domainInfo[defaultDomain].user,\n token: domainInfo[defaultDomain].token,\n status: domainInfo[defaultDomain].status,\n isPaid: domainInfo[defaultDomain].is_paid,\n isActive: domainInfo[defaultDomain].is_active,\n }\n }\n return 'error'\n}\n","import * as types from './actionTypes';\nimport * as errorsActions from './errorsActions';\nimport * as globals from '../globals/globals';\nimport { host, getDomain, getToken } from '../BLL/environment';\n\nexport function authLoginUserSuccess(token, user, status, isPaid, isActive, config, userConfig, rcToken) {\n const us = Object.assign({}, user);\n delete us.password;\n return {\n type: types.AUTH_LOGIN_USER_SUCCESS,\n token,\n user: us,\n status,\n isPaid,\n isActive,\n config,\n userConfig,\n rcToken\n };\n}\n\nexport function authLoginUserFailure(error, message) {\n return {\n type: types.AUTH_LOGIN_USER_FAILURE,\n payload: {\n status: error,\n statusText: message,\n },\n };\n}\n\nexport function authLoginUserRequest() {\n return {\n type: types.AUTH_LOGIN_USER_REQUEST,\n };\n}\n\nexport function authResetStore() {\n return {\n type: types.AUTH_RESET_STORE,\n };\n}\n\nexport function authLogout() {\n return {\n type: types.AUTH_LOGOUT_USER,\n };\n}\n\nexport function authLogoutAndRedirect() {\n const domain = getDomain();\n const token = getToken();\n\n return (dispatch, state, { axios }) => new Promise((resolve, reject) => axios({\n method: 'post',\n responseType: 'json',\n url: `https://${domain}${host()}/api/logout/`,\n headers: {\n Accept: 'application/json',\n 'Content-Type': 'application/json',\n Authorization: `Token ${token}`,\n },\n })\n .then(res => resolve(dispatch(authLogout())))\n .catch(error => reject(error)));\n}\n\nexport function authLoginUser(username, password, redirect = '/app') {\n const domain = getDomain();\n\n return (dispatch, state, { axios }) => new Promise((resolve, reject) => {\n dispatch(authLoginUserRequest());\n const auth = btoa(`${username}:${password}`);\n return axios({\n method: 'post',\n responseType: 'json',\n url: `https://${domain}${host()}/api/login/`,\n data: {\n email_or_username: username,\n password,\n },\n headers: {\n Accept: 'application/json',\n 'Content-Type': 'application/json',\n Authorization: `Basic ${auth}`,\n },\n })\n .then(res => resolve(dispatch(authLoginUserSuccess(\n res.data.token, res.data.user, res.data.status, res.data.is_paid, res.data.is_active, res.data.configuration, res.data.user_config, res.data.rc_token))))\n .catch((error) => {\n if (error && typeof error.response !== 'undefined' && error.response.status === 401) {\n return reject(error.response);\n } else if (error && typeof error.response !== 'undefined' && error.response.status >= 500) {\n return reject(dispatch(authLoginUserFailure(500, 'A server error occurred while sending your data!')));\n }\n return reject(dispatch(authLoginUserFailure('Connection Error', 'An error occurred while sending your data!')));\n });\n });\n}\n","import React from 'react';\nimport PropTypes from 'prop-types';\n\nconst Order = ({ className, height, width, fill }) => (\n \n \n \n \n);\n\nOrder.defaultProps = {\n height: '15',\n className: '',\n fill: '#333',\n width: '15',\n};\n\nOrder.propTypes = {\n height: PropTypes.string,\n className: PropTypes.string,\n width: PropTypes.string,\n fill: PropTypes.string,\n};\n\nexport default Order;\n","import React, { useState, useEffect, useRef } from 'react';\nimport { connect } from 'react-redux';\nimport PropTypes from 'prop-types';\nimport { FormattedMessage } from 'react-intl';\nimport { Link } from 'react-router-dom';\nimport { authResetStore } from '../../actions/authActions';\nimport { useHistory } from 'react-router';\nimport Order from '../../icons/Order';\nimport style from './headerDomain.module.scss';\n\nconst HeaderDomain = (props) => {\n const history = useHistory();\n const wrapperRef = useRef(null);\n const [domainList , setDomainList] = useState([]);\n const [isExpanded, setIsExpanded] = useState(false);\n \n useEffect(() => {\n const newDomainList = JSON.parse(localStorage.domainList).filter(domain => domain !== sessionStorage.activeDomain);\n setDomainList(newDomainList);\n document.addEventListener('mousedown', clickedOutside);\n\n return () => {\n document.removeEventListener('mousedown', clickedOutside);\n }\n }, []);\n\n useEffect(() => {\n const newDomainList = JSON.parse(localStorage.domainList).filter(domain => domain !== sessionStorage.activeDomain);\n setDomainList(newDomainList);\n }, [localStorage.domainList]);\n\n const changeDomains = (domain) => {\n const domainInfo = JSON.parse(localStorage.domainInfo);\n sessionStorage.removeItem('channelId');\n sessionStorage.setItem('activeDomain', domain);\n sessionStorage.setItem('activeToken', domainInfo[domain].token);\n props.history.push('/app');\n window.location.reload();\n };\n\n const gotoNewDomain = () => {\n history.push('/login');\n sessionStorage.removeItem('channelId');\n props.addNewDomain();\n window.location.reload();\n }\n\n const clickedOutside = (evt) => {\n if (wrapperRef.current && !wrapperRef.current.contains(evt.target)) {\n setIsExpanded(false);\n }\n };\n\n return (\n \n )\n};\n\n\nfunction mapStateToProps(state, ownProps) {\n return {\n };\n};\n\nfunction mapDispatchToProps(dispatch) {\n return {\n addNewDomain: () => dispatch(authResetStore())\n };\n};\n\n\nexport default connect(mapStateToProps, mapDispatchToProps)(HeaderDomain);\n","import React from 'react';\nimport PropTypes from 'prop-types';\nimport { FormattedMessage } from 'react-intl';\nimport componentStyle from './formButton.module.scss';\n\nconst FormButton = ({ cancelAction, submitAction, activeSubmit, style, nameBtn, btnStyle }) =>\n\n
\n \n {nameBtn.first}\n \n \n {nameBtn.second}\n \n
;\n\nFormButton.defaultProps = {\n style: {},\n btnStyle: {},\n nameBtn: {\n first: ,\n second: ,\n },\n};\n\nFormButton.propTypes = {\n cancelAction: PropTypes.func.isRequired,\n submitAction: PropTypes.func.isRequired,\n activeSubmit: PropTypes.bool.isRequired,\n style: PropTypes.shape({\n color: PropTypes.string,\n }),\n btnStyle: PropTypes.shape({\n color: PropTypes.string,\n }),\n nameBtn: PropTypes.shape({\n first: PropTypes.string,\n second: PropTypes.string,\n }),\n};\n\nexport default FormButton;\n","import React from 'react';\nimport PropTypes from 'prop-types';\nimport { FormattedMessage } from 'react-intl';\nimport FormButton from '../Button/FormButton';\nimport style from './modalConfirm.module.scss';\n\nconst ConfirmModal = ({ setModalInfo, action, message, height }) =>\n
\n
{message}
\n {\n setModalInfo({ client: {}, showModal: false });\n }}\n submitAction={action}\n style={{\n bottom: '20px',\n borderRadius: '5px',\n left: '50%',\n transform: 'translateX(-50%)',\n width: '289px',\n }}\n nameBtn={{\n first: ,\n second: ,\n }}\n btnStyle={{ height: '35px', width: '130px' }}\n />\n
;\n\nConfirmModal.defaultProps = {\n message: ,\n height: '',\n};\n\n\nConfirmModal.propTypes = {\n action: PropTypes.func.isRequired,\n setModalInfo: PropTypes.func.isRequired,\n // message: PropTypes.string,\n height: PropTypes.string,\n message: PropTypes.shape({\n key: PropTypes.number,\n }),\n};\n\nexport default ConfirmModal;\n","import React, { useState } from 'react';\nimport PropTypes from 'prop-types';\nimport ConfirmModal from '../Modal/ModalConfirm';\nimport style from './headerActions.module.scss';\n\nconst HeaderActions = (props) => {\n const [showConfirm, setShowModal] = useState(false);\n const sessionDescription = props.sessionListener?.description;\n\n const closeModal = ({ showModal, client = {} }) => {\n setShowModal(showModal);\n };\n\n const hangUpCall = () => {\n setShowModal(false);\n props.hangupSip();\n };\n\n return (\n
\n {showConfirm &&\n \n }\n {props.audioAction === 'start' &&\n \n }\n {sessionDescription === 'In Call' &&\n \n }\n
\n )\n}\n\nHeaderActions.propTypes = {\n audioAction: PropTypes.string.isRequired,\n turnOffAlarmAudio: PropTypes.func.isRequired,\n}\n\nexport default HeaderActions\n","import React from 'react';\nimport PropTypes from 'prop-types';\nimport { browserHistory } from 'react-router';\nimport { FormattedMessage } from 'react-intl';\n\nimport style from './trial.module.scss';\n\nconst Trial = ({ activate, isAdmin, isOwner }) => (\n
\n
\n {(isAdmin || isOwner) &&\n \n }\n
\n);\n\n\nTrial.propTypes = {\n activate: PropTypes.func.isRequired,\n isAdmin: PropTypes.bool.isRequired,\n isOwner: PropTypes.bool.isRequired,\n};\n\nexport default Trial;\n","import React from 'react';\nimport PropTypes from 'prop-types';\nimport { FormattedMessage } from 'react-intl';\nimport User from './HeaderUser';\nimport SipStatus from './HeaderSipStatus';\nimport HeaderDomain from './HeaderDomain';\nimport HeaderActions from './HeaderActions';\nimport Trial from './Trial/Trial';\n\nimport style from './header.module.scss';\nimport '../../css/print.scss';\n\nconst Header = (props) => (\n
\n
\n {props.status === 'trial' &&\n \n }\n {sessionStorage.activeDomain &&\n \n }\n \n {props.isSysUser &&\n
\n \n
\n }\n
\n \n
\n
\n \n | \n \n
\n {!props.hasWebsocketConnection &&\n
\n \n \n \n \n
\n }\n
\n \n
\n
\n \n
\n
\n
\n)\n\nHeader.defaultProps = {\n sipSessionType: undefined,\n sipStackType: undefined,\n hasWebsocketConnection: true,\n microphoneConnection: true,\n microphoneName: '',\n newChatMessage: false,\n isSysUser: false,\n};\n\nHeader.propTypes = {\n hasWebsocketConnection: PropTypes.bool,\n newChatMessage: PropTypes.bool,\n isSysUser: PropTypes.bool,\n attendantName: PropTypes.string.isRequired,\n toggleReminder: PropTypes.func.isRequired,\n sipSessionType: PropTypes.string,\n sipStackType: PropTypes.string,\n audioAction: PropTypes.string.isRequired,\n logout: PropTypes.func.isRequired,\n status: PropTypes.string.isRequired,\n activate: PropTypes.func.isRequired,\n isAdmin: PropTypes.bool.isRequired,\n isOwner: PropTypes.bool.isRequired,\n setLocale: PropTypes.func.isRequired,\n lang: PropTypes.string.isRequired,\n reminders: PropTypes.shape({\n data: PropTypes.arrayOf(\n PropTypes.shape({\n id: PropTypes.number,\n status: PropTypes.string,\n }),\n ),\n serverTime: PropTypes.string\n }).isRequired,\n toggleAdminModal: PropTypes.func.isRequired,\n toggleChat: PropTypes.func.isRequired,\n turnOffAlarmAudio: PropTypes.func.isRequired,\n};\n\nexport default Header;\n","import React from 'react';\nimport PropTypes from 'prop-types';\n\nconst TecnoLogoNew = ({ height, svgClass, width }) => (\n \n \n \n);\n\nTecnoLogoNew.defaultProps = {\n height: '24',\n svgClass: '',\n width: '24',\n};\n\nTecnoLogoNew.propTypes = {\n height: PropTypes.string,\n svgClass: PropTypes.string,\n width: PropTypes.string,\n};\n\nexport default TecnoLogoNew;\n","import React from 'react';\nimport PropTypes from 'prop-types';\n\n\nconst VidapointLogo = ({ height, svgClass, width }) => (\n \n \n \n \n);\n\nVidapointLogo.defaultProps = {\n height: '200',\n svgClass: '',\n width: '300',\n};\n\nVidapointLogo.propTypes = {\n height: PropTypes.string,\n svgClass: PropTypes.string,\n width: PropTypes.string,\n};\n\nexport default VidapointLogo;\n","import React from 'react';\nimport PropTypes from 'prop-types';\n\n\nconst VidapointText = ({ height, svgClass, width }) => (\n \n \n \n \n \n \n \n \n \n \n \n \n \n);\n\nVidapointText.defaultProps = {\n height: '200',\n svgClass: '',\n width: '300',\n};\n\nVidapointText.propTypes = {\n height: PropTypes.string,\n svgClass: PropTypes.string,\n width: PropTypes.string,\n};\n\nexport default VidapointText;\n","export default __webpack_public_path__ + \"static/media/BunzlWhite1.747d1a39.png\";","import React, { useState } from \"react\";\nimport { useSelector } from \"react-redux\";\nimport { Link } from \"react-router-dom\";\nimport { FormattedMessage } from \"react-intl\";\nimport { getDomain } from \"../../BLL/environment\";\nimport TecnoLogoNew from \"../../icons/TecnoLogoNew\";\nimport VidapointLogo from \"../../icons/Vidapoint-logo\";\nimport VidapointText from \"../../icons/Vidapoint-text\";\nimport LogoOG1 from '../../icons/BunzlWhite1.png';\nimport style from \"./sidebar.module.scss\";\n\nconst Sidebar = (props) => {\n const loggedAttendant = useSelector((state) => state.loggedAttendant);\n const [expanded, toggleSidebar] = useState(false);\n\n const path = window.location.pathname.split(\"/\");\n const hostname = getDomain();\n // const hostname = localStorage.domain;\n\n const managementGroups = [1, 2, 4];\n const isManagement = managementGroups.some(\n (grp) => loggedAttendant?.groups[0] === grp\n );\n const isFromCompany = loggedAttendant?.groups.length > 1;\n\n return (\n \n
    \n \n
    \n {(hostname === \"bunzlepi\" || hostname === \"protcap\") && (\n \n )}\n {(hostname === \"vidapoint\" || hostname === \"ihelp\") && (\n \n )}\n {(hostname !== \"bunzlepi\" && hostname !== \"protcap\" && hostname !== \"vidapoint\" && hostname !== \"ihelp\") && (\n \n )}\n\n {(hostname === \"vidapoint\" || hostname === \"ihelp\") && (\n \n )}\n \n {(hostname !== \"bunzlepi\" && hostname !== \"protcap\" && hostname !== \"vidapoint\" && hostname !== \"ihelp\") && \"CONTACTTO.CARE\"}\n {(hostname === \"bunzlepi\" || hostname === \"protcap\") && \"4Safe\"}\n \n
    \n \n
  • \n toggleSidebar(!expanded)}\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 {isManagement && (\n \n \n \n \n \n \n \n \n )}\n {isManagement && ( // loggedAttendantGroup !== 3 &&\n \n \n \n \n \n \n \n \n )}\n \n \n \n \n \n \n \n \n {(loggedAttendant?.user_info?.can_access_quicksight ||\n loggedAttendant?.groups[0] === 4) &&\n (hostname === \"vidafone\" || hostname === \"tecnosenior\") && (\n \n \n \n Quicksight\n \n \n )}\n
\n \n );\n};\n\nexport default Sidebar;\n","import * as types from './actionTypes';\nimport * as errorsActions from './errorsActions';\nimport { host, getDomain, getToken } from '../BLL/environment';\n\nexport function loadBusyUsersSuccess(response) {\n return { type: types.LOAD_BUSY_USERS_SUCCESS, response};\n}\n\nexport function removeUserFromBusy(userId) {\n return { type: types.REMOVE_BUSY_USER, userId};\n}\n\nexport function addUserIntoBusy(userId, attendId) {\n return { type: types.ADD_BUSY_USER, userId, attendId };\n}\n\nexport function loadBusyUsers() {\n const domain = getDomain();\n const token = getToken();\n\n if (token === 'error') {\n errorsActions.logout();\n }\n\n return (dispatch, getState, { axios }) => Promise.resolve(\n axios.get(`https://${domain}${host()}/api/attend/list/?status=IN_PROGRESS`, {\n headers: { Authorization: `Token ${token}` },\n }).then(res => dispatch(loadBusyUsersSuccess(res.data)))\n .catch(error => {\n if (error.response) {\n if (error.response.status === 401) {\n dispatch(errorsActions.logout());\n }\n }\n }),\n );\n}\n","import * as types from './actionTypes';\nimport * as errorsActions from './errorsActions';\nimport * as globals from '../globals/globals';\nimport { host, getDomain, getToken } from '../BLL/environment';\n\nexport function loadAttendsSuccess(results, ordering, page, filter, pageUrl) {\n return { type: types.LOAD_ATTENDS_SUCCESS, results, ordering, page, filter, pageUrl };\n}\n\nexport function setAttendPage(pageNumber, pageUrl) {\n return { type: types.SET_ATTEND_PAGE, pageNumber, pageUrl };\n}\n\nexport function newAttendtPage(pageNumber, newPage, pageUrl) {\n return { type: types.RECEIVE_NEW_ATTEND_PAGE, pageNumber, newPage, pageUrl };\n}\n\nexport function attendUpdated(attend) {\n return { type: types.EDIT_ATTEND, attend };\n}\n\nexport function loadAttends(ordering = globals.attendantsOrdering, filter = '') {\n const domain = getDomain();\n const token = getToken();\n\n let url = `https://${domain}${host()}/api/attend/list/?ordering=${ordering}&limit=${globals.pagination}`;\n if (filter) {\n url = `${url}&${filter}`;\n }\n return (dispatch, getState, { axios }) => Promise.resolve(\n axios.get(url, {\n headers: { Authorization: `Token ${token}` },\n }).then(res => {\n const page = 1;\n dispatch(loadAttendsSuccess(res.data, ordering, page, filter, url));\n }).catch((error) => {\n if (error.response) {\n if (error.response.status === 401) {\n dispatch(errorsActions.logout());\n }\n }\n }),\n );\n}\n\nexport function reloadAttends() {\n const domain = getDomain();\n const token = getToken();\n\n return (dispatch, getState, { axios }) => {\n const { attends } = getState();\n return Promise.resolve(\n axios.get(attends.activeUrl, {\n headers: { Authorization: `Token ${token}` },\n }).then(res => dispatch(loadAttendsSuccess(\n res.data,\n attends.ordering,\n attends.activePage,\n attends.filter,\n attends.activeUrl,\n ))),\n );\n };\n}\n\nexport function changePage(pageNumber, pageUrl) {\n const token = getToken();\n\n return (dispatch, getState, { axios }) => {\n const { attends } = getState();\n const activePage = attends.pages\n ? attends.pages.find(data => data.page === pageNumber)\n : undefined;\n if (activePage) {\n return Promise.resolve(dispatch(setAttendPage(pageNumber, pageUrl)));\n }\n return Promise.resolve(\n axios.get(pageUrl, {\n headers: { Authorization: `Token ${token}` },\n }).then((res) => {\n dispatch(newAttendtPage(pageNumber, res.data, pageUrl));\n })\n .catch((error) => {\n if (error.response) {\n if (error.response.status === 401) {\n dispatch(errorsActions.logout());\n }\n }\n }),\n );\n };\n}\n\nexport function editAttend(attend) {\n const domain = getDomain();\n const token = getToken();\n\n return (dispatch, getState, { axios }) => new Promise((resolve, reject) =>\n axios({\n method: 'put',\n responseType: 'json',\n url: `https://${domain}${host()}/api/attend/${attend.id}/`,\n data: attend,\n headers: { Authorization: `Token ${token}` },\n })\n .then((resp) => resolve(dispatch(attendUpdated(resp.data))))\n .catch((error) => {\n if (error.response) {\n if (error.response.status === 401) {\n return reject(dispatch(errorsActions.logout()));\n }\n }\n return reject(error);\n }),\n );\n}\n\nexport function patchAttend(attendId, data) {\n const domain = getDomain();\n const token = getToken();\n\n return (dispatch, getState, { axios }) => new Promise((resolve, reject) =>\n axios({\n method: 'put',\n responseType: 'json',\n url: `https://${domain}${host()}/api/attend/${attendId}/`,\n headers: { Authorization: `Token ${token}` },\n data,\n })\n .then((resp) => resolve(dispatch(attendUpdated(resp.data))))\n .catch((error) => {\n if (error.response) {\n if (error.response.status === 401) {\n return reject(dispatch(errorsActions.logout()));\n }\n }\n return reject(error);\n }),\n );\n}\n\nexport function updateTag(attendId, tag) {\n const domain = getDomain();\n const token = getToken();\n\n return (dispatch, getState, { axios }) => new Promise((resolve, reject) =>\n axios({\n method: 'put',\n responseType: 'json',\n url: `https://${domain}${host()}/api/attend/${attendId}/tag-update/`,\n data: tag,\n headers: { Authorization: `Token ${token}` },\n })\n .then((resp) => resolve(dispatch(attendUpdated(resp.data))))\n .catch((error) => {\n if (error.response) {\n if (error.response.status === 401) {\n return reject(dispatch(errorsActions.logout()));\n }\n }\n return reject(error);\n }),\n );\n}\n","import React, { useState } from 'react';\nimport PropTypes from 'prop-types';\nimport { FormattedMessage } from 'react-intl';\nimport moment from 'moment';\nimport { useDispatch, useSelector } from 'react-redux';\nimport * as statusActions from '../../actions/userStatusActions';\nimport * as attendsActions from '../../actions/attendsActions';\nimport '../../css/buttons.scss';\n\nconst CallButton = (props) => {\n const { attend } = props;\n\n const isBusy = useSelector(state => state.status.length > 0 ? state.status.some(value => value.userId === state.loggedAttendant.id) : false);\n const user = useSelector(state => state.loggedAttendant);\n const globalConfiguration = useSelector(state => state.globalConfiguration.global);\n\n const dispatch = useDispatch();\n const addUserIntoBusy = (userId, attendId) => dispatch(statusActions.addUserIntoBusy(userId, attendId));\n const editAttend = (attend) => dispatch(attendsActions.editAttend(attend));\n\n const [isLoading, setLoading] = useState(false);\n\n const redirectToAttendDetail = (attend) => {\n props.setUserBusy(true);\n props.history.push(\n `/app/attends/${attend.close_ts ? 'closed' : 'call'}/${attend.id}/`,\n )\n }\n\n const takeEmergency = () => {\n if (!attend.close_ts) {\n setLoading(true);\n addUserIntoBusy(user.id, attend.id);\n const newAttend = Object.assign(\n {},\n attend,\n { \n status: 'IN_PROGRESS',\n attendant: user.id,\n audio_call: attend.audio_call\n }\n );\n editAttend(newAttend).then(() => {\n redirectToAttendDetail(attend);\n }).catch((error) => {\n if (error.response?.data.already_taken) {\n setLoading(false);\n }\n })\n } else {\n setLoading(false);\n }\n };\n\n const closeAttend = () => {\n if (!attend.close_ts) {\n const newAttend = Object.assign(\n {},\n attend,\n {\n attend_ts: moment().format('YYYY-MM-DDTHH:mm:ss.SSS'),\n status: 'CLOSE',\n attendant: user.id,\n audio_call: attend.audio_call\n }\n )\n editAttend(newAttend);\n }\n };\n\n const setButton = () => {\n let buttonClass = '';\n let isDisabled = false;\n let buttonClick = () => {};\n let buttonText = 'CARREGANDO';\n \n const useAlarmZones = globalConfiguration.use_alarm_zones;\n const loadingClass = 'btn btn--attend-emergency btn--color-loading btn-mobile';\n const orangeClass = 'btn btn--attend-emergency btn--color-orange btn-mobile';\n const blueClass = 'btn btn--attend-emergency btn--color-tecno btn-mobile';\n const greenClass = 'btn btn--attend-emergency btn--color-green btn-mobile';\n const invalid = 'btn btn--attend-emergency btn--color-invalid btn-mobile';\n const { height, borderRadius } = props;\n\n if (isLoading) {\n buttonClass = loadingClass;\n isDisabled = isBusy;\n }\n\n if (!attend.attend_ts) {\n if (useAlarmZones) {\n const attendZone = attend.tr_zone ? parseInt(attend.tr_zone) % 4 : 1;\n\n buttonClass = (attendZone === 0 || attend.highest_code === '100') && isBusy ? invalid : greenClass;\n isDisabled = (attendZone === 0 || attend.highest_code === '100') ? isBusy : false;\n buttonClick = (attendZone === 0 || attend.highest_code === '100') ? takeEmergency : closeAttend;\n buttonText = ((attendZone === 0 || attend.highest_code === '100')\n ? \n : \n );\n\n } else {\n buttonClass = attend.highest_priority < 2 && isBusy ? invalid : greenClass;\n isDisabled = attend.highest_priority < 2 ? isBusy : false;\n buttonClick = attend.highest_priority < 2 ? takeEmergency : closeAttend;\n buttonText = (attend.highest_priority < 2\n ? \n : \n );\n }\n } else if (!attend.close_ts) {\n buttonClick = () => redirectToAttendDetail(attend);\n if (attend.attendant === user.id || (attend.attendant && attend.attendant.id === user.id)) {\n buttonClass = greenClass;\n buttonText = ;\n } else {\n buttonClass = orangeClass;\n buttonText = ;\n }\n } else {\n buttonClick = () => redirectToAttendDetail(attend);\n buttonClass = blueClass;\n buttonText = ;\n }\n\n return (\n \n {buttonText}\n \n )\n\n }\n\n return (\n
\n { setButton() }\n
\n );\n}\n\nCallButton.defaultProps = {\n isBusy: false,\n height: '',\n borderRadius: '',\n};\n\nCallButton.propTypes = {\n height: PropTypes.string,\n borderRadius: PropTypes.string,\n channelId: PropTypes.string.isRequired,\n isBusy: PropTypes.bool,\n attend: PropTypes.shape({\n id: PropTypes.number,\n client: PropTypes.number,\n attendant: PropTypes.number,\n open_ts: PropTypes.string,\n close_ts: PropTypes.string,\n status: PropTypes.string,\n audio_call: PropTypes.bool,\n attend_ts: PropTypes.string,\n highest_priority: PropTypes.number,\n }).isRequired,\n setUserBusy: PropTypes.func.isRequired,\n containerClass: PropTypes.string.isRequired,\n};\n\nexport default CallButton;\n","import React from \"react\";\nimport PropTypes from 'prop-types';\n\nconst AlarmiHelpEmergency = ({ height, svgClass, width, fill, transform }) => (\n \n \n \n
\n \n \n \n);\n\nAlarmiHelpEmergency.defaultProps = {\n height: '75',\n svgClass: '',\n width: '75',\n fill: '#F69B38',\n transform: 'translate(0,0)',\n};\n\nAlarmiHelpEmergency.propTypes = {\n height: PropTypes.string,\n svgClass: PropTypes.string,\n width: PropTypes.string,\n fill: PropTypes.string,\n transform: PropTypes.string,\n};\n\nexport default AlarmiHelpEmergency;\n","import React from 'react';\nimport PropTypes from 'prop-types';\n\nconst AlarmEmerConsIco = ({ height, svgClass, width, fill, transform }) => (\n \n \n \n \n \n \n \n \n \n \n);\n\nAlarmEmerConsIco.defaultProps = {\n height: '75',\n svgClass: '',\n width: '75',\n fill: '#D8342B',\n transform: 'translate(0,0)',\n};\n\nAlarmEmerConsIco.propTypes = {\n height: PropTypes.string,\n svgClass: PropTypes.string,\n width: PropTypes.string,\n fill: PropTypes.string,\n transform: PropTypes.string,\n};\n\nexport default AlarmEmerConsIco;\n","import React from 'react';\nimport PropTypes from 'prop-types';\n\nconst AlarmGeo1InIco = ({ height, svgClass, width, fill, transform }) => (\n \n\n\n\t\n\t\t\n\t\n\n\n\t\n\t\t\n\t\t\t\n\t\t\t\n\t\t\t\n\t\t\n\t\n\n \n);\n\nAlarmGeo1InIco.defaultProps = {\n height: '75',\n svgClass: '',\n width: '75',\n fill: '#008D53',\n transform: 'translate(0,0)',\n};\n\nAlarmGeo1InIco.propTypes = {\n height: PropTypes.string,\n svgClass: PropTypes.string,\n width: PropTypes.string,\n fill: PropTypes.string,\n transform: PropTypes.string,\n};\n\nexport default AlarmGeo1InIco;\n","import React from 'react';\nimport PropTypes from 'prop-types';\n\nconst AlarmGeo1OutIco = ({ height, svgClass, width, fill, transform }) => (\n \n\n\t\n\t\t\n\t\n\n\n\t\n\t\t\n\t\t\t\n\t\t\t\n\t\t\t\n\t\t\n\t\n\n\n \n);\n\nAlarmGeo1OutIco.defaultProps = {\n height: '75',\n svgClass: '',\n width: '75',\n fill: '#008D53',\n transform: 'translate(0,0)',\n};\n\nAlarmGeo1OutIco.propTypes = {\n height: PropTypes.string,\n svgClass: PropTypes.string,\n width: PropTypes.string,\n fill: PropTypes.string,\n transform: PropTypes.string,\n};\n\nexport default AlarmGeo1OutIco;\n","import React from 'react';\nimport PropTypes from 'prop-types';\n\nconst AlarmGeo2InIco = ({ height, svgClass, width, fill, transform }) => (\n \n\n\t\n\t\t\n\t\n\n\n\t\n\t\t\n\t\t\t\n\t\t\t\n\t\t\t\n\t\t\n\t\n\n\n \n);\n\nAlarmGeo2InIco.defaultProps = {\n height: '75',\n svgClass: '',\n width: '75',\n fill: '#008D53',\n transform: 'translate(0,0)',\n};\n\nAlarmGeo2InIco.propTypes = {\n height: PropTypes.string,\n svgClass: PropTypes.string,\n width: PropTypes.string,\n fill: PropTypes.string,\n transform: PropTypes.string,\n};\n\nexport default AlarmGeo2InIco;\n","import React from 'react';\nimport PropTypes from 'prop-types';\n\nconst AlarmGeo2OutIco = ({ height, svgClass, width, fill, transform }) => (\n \n\n\t\n\t\t\n\t\n\n\n\t\n\t\t\n\t\t\t\n\t\t\t\n\t\t\t\n\t\t\n\t\n\n\n \n);\n\nAlarmGeo2OutIco.defaultProps = {\n height: '75',\n svgClass: '',\n width: '75',\n fill: '#008D53',\n transform: 'translate(0,0)',\n};\n\nAlarmGeo2OutIco.propTypes = {\n height: PropTypes.string,\n svgClass: PropTypes.string,\n width: PropTypes.string,\n fill: PropTypes.string,\n transform: PropTypes.string,\n};\n\nexport default AlarmGeo2OutIco;\n","import React from 'react';\nimport PropTypes from 'prop-types';\n\nconst AlarmGeo3InIco = ({ height, svgClass, width, fill, transform }) => (\n \n\n\t\n\t\t\n\t\n\n\n\t\n\t\t\n\t\t\t\n\t\t\t\n\t\t\t\n\t\t\n\t\n\n\n \n);\n\nAlarmGeo3InIco.defaultProps = {\n height: '75',\n svgClass: '',\n width: '75',\n fill: '#008D53',\n transform: 'translate(0,0)',\n};\n\nAlarmGeo3InIco.propTypes = {\n height: PropTypes.string,\n svgClass: PropTypes.string,\n width: PropTypes.string,\n fill: PropTypes.string,\n transform: PropTypes.string,\n};\n\nexport default AlarmGeo3InIco;\n","import React from 'react';\nimport PropTypes from 'prop-types';\n\nconst AlarmGeo3OutIco = ({ height, svgClass, width, fill, transform }) => (\n \n\n\t\n\t\t\n\t\n\n\n\t\n\t\t\n\t\t\t\n\t\t\t\n\t\t\t\n\t\t\n\t\n\n\n \n);\n\nAlarmGeo3OutIco.defaultProps = {\n height: '75',\n svgClass: '',\n width: '75',\n fill: '#008D53',\n transform: 'translate(0,0)',\n};\n\nAlarmGeo3OutIco.propTypes = {\n height: PropTypes.string,\n svgClass: PropTypes.string,\n width: PropTypes.string,\n fill: PropTypes.string,\n transform: PropTypes.string,\n};\n\nexport default AlarmGeo3OutIco;\n","import React from \"react\";\nimport PropTypes from 'prop-types';\n\n\nconst AlarmGeo4InIco = ({ height, svgClass, width, fill, transform }) => {\n return (\n \n \n \n \n \n \n \n \n \n );\n};\n\nAlarmGeo4InIco.defaultProps = {\n height: '75',\n svgClass: '',\n width: '75',\n fill: '#008D53',\n transform: 'translate(0,0)',\n};\n\nAlarmGeo4InIco.propTypes = {\n height: PropTypes.string,\n svgClass: PropTypes.string,\n width: PropTypes.string,\n fill: PropTypes.string,\n transform: PropTypes.string,\n};\n\n\nexport default AlarmGeo4InIco;","import React from \"react\";\nimport PropTypes from 'prop-types';\n\nconst AlarmGeo4OutIco = ({ height, svgClass, width, fill, transform }) => {\n return (\n \n \n \n \n \n \n \n \n \n );\n};\n\nAlarmGeo4OutIco.defaultProps = {\n height: '75',\n svgClass: '',\n width: '75',\n fill: '#008D53',\n transform: 'translate(0,0)',\n};\n\nAlarmGeo4OutIco.propTypes = {\n height: PropTypes.string,\n svgClass: PropTypes.string,\n width: PropTypes.string,\n fill: PropTypes.string,\n transform: PropTypes.string,\n};\n\nexport default AlarmGeo4OutIco;","import React from 'react';\nimport PropTypes from 'prop-types';\n\nconst AlarmChargeDeviceIco = ({ height, svgClass, width, fill, transform }) => (\n \n \n \n \n \n \n \n \n \n \n);\n\nAlarmChargeDeviceIco.defaultProps = {\n height: '75',\n svgClass: '',\n width: '75',\n fill: '#008D53',\n transform: 'translate(0,0)',\n};\n\nAlarmChargeDeviceIco.propTypes = {\n height: PropTypes.string,\n svgClass: PropTypes.string,\n width: PropTypes.string,\n fill: PropTypes.string,\n transform: PropTypes.string,\n};\n\nexport default AlarmChargeDeviceIco;\n","import React from 'react';\nimport PropTypes from 'prop-types';\n\nconst AlarmLostMed1Ico = ({ height, svgClass, width, fill, transform }) => (\n \n \n \n \n \n \n \n \n);\n\nAlarmLostMed1Ico.defaultProps = {\n height: '75',\n svgClass: '',\n width: '75',\n fill: '#008D53',\n transform: 'translate(0,0)',\n};\n\nAlarmLostMed1Ico.propTypes = {\n height: PropTypes.string,\n svgClass: PropTypes.string,\n width: PropTypes.string,\n fill: PropTypes.string,\n transform: PropTypes.string,\n};\n\nexport default AlarmLostMed1Ico;\n","import React from 'react';\nimport PropTypes from 'prop-types';\n\nconst AlarmLostMed2Ico = ({ height, svgClass, width, fill, transform }) => (\n \n \n \n \n \n \n \n \n \n \n \n \n \n \n);\n\nAlarmLostMed2Ico.defaultProps = {\n height: '75',\n svgClass: '',\n width: '75',\n fill: '#008D53',\n transform: 'translate(0,0)',\n};\n\nAlarmLostMed2Ico.propTypes = {\n height: PropTypes.string,\n svgClass: PropTypes.string,\n width: PropTypes.string,\n fill: PropTypes.string,\n transform: PropTypes.string,\n};\n\nexport default AlarmLostMed2Ico;\n","import React from 'react';\nimport PropTypes from 'prop-types';\n\nconst AlarmLostMed3Ico = ({ height, svgClass, width, fill, transform }) => (\n \n \n \n \n \n \n \n \n \n \n \n \n \n \n);\n\nAlarmLostMed3Ico.defaultProps = {\n height: '75',\n svgClass: '',\n width: '75',\n fill: '#008D53',\n transform: 'translate(0,0)',\n};\n\nAlarmLostMed3Ico.propTypes = {\n height: PropTypes.string,\n svgClass: PropTypes.string,\n width: PropTypes.string,\n fill: PropTypes.string,\n transform: PropTypes.string,\n};\n\nexport default AlarmLostMed3Ico;\n","import React from 'react';\nimport PropTypes from 'prop-types';\n\nconst AlarmEmerSensIco = ({ height, svgClass, width, fill, transform }) => (\n \n\n\n\n\n \n);\n\nAlarmEmerSensIco.defaultProps = {\n height: '75',\n svgClass: '',\n width: '75',\n fill: '#D8342B',\n transform: 'translate(0,0)',\n};\n\nAlarmEmerSensIco.propTypes = {\n height: PropTypes.string,\n svgClass: PropTypes.string,\n width: PropTypes.string,\n fill: PropTypes.string,\n transform: PropTypes.string,\n};\n\nexport default AlarmEmerSensIco;\n","import React from 'react';\nimport PropTypes from 'prop-types';\n\nconst AlarmInactIco = ({ height, svgClass, width, fill, transform }) => (\n \n \n \n \n \n \n \n \n);\n\nAlarmInactIco.defaultProps = {\n height: '75',\n svgClass: '',\n width: '75',\n fill: '#D8342B',\n transform: 'translate(0,0)',\n};\n\nAlarmInactIco.propTypes = {\n height: PropTypes.string,\n svgClass: PropTypes.string,\n width: PropTypes.string,\n fill: PropTypes.string,\n transform: PropTypes.string,\n};\n\nexport default AlarmInactIco;\n","import React from 'react';\nimport PropTypes from 'prop-types';\n\nconst AlarmFireIcon = ({ height, svgClass, width, fill, transform }) => (\n \n \n \n);\n\nAlarmFireIcon.defaultProps = {\n height: '75',\n svgClass: '',\n width: '75',\n fill: '#D8342B',\n transform: 'translate(0,0)',\n};\n\nAlarmFireIcon.propTypes = {\n height: PropTypes.string,\n svgClass: PropTypes.string,\n width: PropTypes.string,\n fill: PropTypes.string,\n transform: PropTypes.string,\n};\n\nexport default AlarmFireIcon;\n","import React from 'react';\nimport PropTypes from 'prop-types';\n\nconst AlarmHighTemp = ({ height, svgClass, width, fill, transform }) => (\n \n\n\n\n\n\n\n\n\n \n);\n\nAlarmHighTemp.defaultProps = {\n height: '75',\n svgClass: '',\n width: '75',\n fill: '#F69B38',\n transform: 'translate(0,0)',\n};\n\nAlarmHighTemp.propTypes = {\n height: PropTypes.string,\n svgClass: PropTypes.string,\n width: PropTypes.string,\n fill: PropTypes.string,\n transform: PropTypes.string,\n};\n\nexport default AlarmHighTemp;\n","import React from 'react';\nimport PropTypes from 'prop-types';\n\nconst AlarmLowTemp = ({ height, svgClass, width, fill, transform }) => (\n \n\n\n\n\n\n\n\n\n \n);\n\nAlarmLowTemp.defaultProps = {\n height: '75',\n svgClass: '',\n width: '75',\n fill: '#F69B38',\n transform: 'translate(0,0)',\n};\n\nAlarmLowTemp.propTypes = {\n height: PropTypes.string,\n svgClass: PropTypes.string,\n width: PropTypes.string,\n fill: PropTypes.string,\n transform: PropTypes.string,\n};\n\nexport default AlarmLowTemp;\n","import React from 'react';\nimport PropTypes from 'prop-types';\n\nconst AlarmCO2Ico = ({ height, svgClass, width, fill, transform }) => (\n \n \n\n\n\n \n);\n\nAlarmCO2Ico.defaultProps = {\n height: '75',\n svgClass: '',\n width: '75',\n fill: '#D8342B',\n transform: 'translate(0,0)',\n};\n\nAlarmCO2Ico.propTypes = {\n height: PropTypes.string,\n svgClass: PropTypes.string,\n width: PropTypes.string,\n fill: PropTypes.string,\n transform: PropTypes.string,\n};\n\nexport default AlarmCO2Ico;\n","import React from 'react';\nimport PropTypes from 'prop-types';\n\nconst AlarmLostFireIco = ({ height, svgClass, width, fill, transform }) => (\n \n\n\n\t\n\n \n);\n\nAlarmLostFireIco.defaultProps = {\n height: '75',\n svgClass: '',\n width: '75',\n fill: '#F69B38',\n transform: 'translate(0,0)',\n};\n\nAlarmLostFireIco.propTypes = {\n height: PropTypes.string,\n svgClass: PropTypes.string,\n width: PropTypes.string,\n fill: PropTypes.string,\n transform: PropTypes.string,\n};\n\nexport default AlarmLostFireIco;\n","import React from 'react';\nimport PropTypes from 'prop-types';\n\nconst AlarmEnergyIco = ({ height, svgClass, width, fill, transform }) => (\n \n\n\t\n\t\t\n\t\t\t\n\t\t\t\n\t\t\t\n\t\t\n\t\n\n \n);\n\nAlarmEnergyIco.defaultProps = {\n height: '75',\n svgClass: '',\n width: '75',\n fill: '#008D53',\n transform: 'translate(0,0)',\n};\n\nAlarmEnergyIco.propTypes = {\n height: PropTypes.string,\n svgClass: PropTypes.string,\n width: PropTypes.string,\n fill: PropTypes.string,\n transform: PropTypes.string,\n};\n\nexport default AlarmEnergyIco;\n","import React from 'react';\nimport PropTypes from 'prop-types';\n\nconst AlarmBatConIcon = ({ height, svgClass, width, fill, transform }) => (\n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n);\n\nAlarmBatConIcon.defaultProps = {\n height: '75',\n svgClass: '',\n width: '75',\n fill: '#008D53',\n transform: 'translate(0,0)',\n};\n\nAlarmBatConIcon.propTypes = {\n height: PropTypes.string,\n svgClass: PropTypes.string,\n width: PropTypes.string,\n fill: PropTypes.string,\n transform: PropTypes.string,\n};\n\nexport default AlarmBatConIcon;\n","import React from 'react';\nimport PropTypes from 'prop-types';\n\nconst AlarmExpReminderIco = ({ height, svgClass, width, fill, transform }) => (\n \n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n \n);\n\nAlarmExpReminderIco.defaultProps = {\n height: '75',\n svgClass: '',\n width: '75',\n fill: '#F69B38',\n transform: 'translate(0,0)',\n};\n\nAlarmExpReminderIco.propTypes = {\n height: PropTypes.string,\n svgClass: PropTypes.string,\n width: PropTypes.string,\n fill: PropTypes.string,\n transform: PropTypes.string,\n};\n\nexport default AlarmExpReminderIco;\n","import React from 'react';\nimport PropTypes from 'prop-types';\n\nconst AlarmAwayIco = ({ height, svgClass, width, fill, transform }) => (\n \n\n\t\n\t\t\n\t\n\t\n\t\t\n\t\n\t\n\t\t\n\t\n\t\n\t\t\n\t\n\t\n\t\t\n\t\n\t\n\t\t\n\t\n\n\n\t\n\t\t\n\t\t\t\n\t\t\t\n\t\t\n\t\n\n \n);\n\nAlarmAwayIco.defaultProps = {\n height: '75',\n svgClass: '',\n width: '75',\n fill: '#3D94CC',\n transform: 'translate(0,0)',\n};\n\nAlarmAwayIco.propTypes = {\n height: PropTypes.string,\n svgClass: PropTypes.string,\n width: PropTypes.string,\n fill: PropTypes.string,\n transform: PropTypes.string,\n};\n\nexport default AlarmAwayIco;\n","import React from 'react';\nimport PropTypes from 'prop-types';\n\nconst AlarmAtHomeIco = ({ height, svgClass, width, fill, transform }) => (\n \n\n\n\t\n\t\t\n\t\t\t\n\t\t\t\n\t\t\n\t\n\n \n);\n\nAlarmAtHomeIco.defaultProps = {\n height: '75',\n svgClass: '',\n width: '75',\n fill: '#3D94CC',\n transform: 'translate(0,0)',\n};\n\nAlarmAtHomeIco.propTypes = {\n height: PropTypes.string,\n svgClass: PropTypes.string,\n width: PropTypes.string,\n fill: PropTypes.string,\n transform: PropTypes.string,\n};\n\nexport default AlarmAtHomeIco;\n","import React from 'react';\nimport PropTypes from 'prop-types';\n\nconst AlarmLostSensorIco = ({ height, svgClass, width, fill, transform }) => (\n \n\n\t\n\t\n\n\n\t\n\n \n);\n\nAlarmLostSensorIco.defaultProps = {\n height: '75',\n svgClass: '',\n width: '75',\n fill: '#F69B38',\n transform: 'translate(0,0)',\n};\n\nAlarmLostSensorIco.propTypes = {\n height: PropTypes.string,\n svgClass: PropTypes.string,\n width: PropTypes.string,\n fill: PropTypes.string,\n transform: PropTypes.string,\n};\n\nexport default AlarmLostSensorIco;\n","import React from 'react';\nimport PropTypes from 'prop-types';\n\nconst AlarmCancelIcon = ({ height, svgClass, width, fill, transform }) => (\n \n\n\t\n\n\n\t\n\t\t\n\t\t\t\n\t\t\t\n\t\t\n\t\n\n \n);\n\nAlarmCancelIcon.defaultProps = {\n height: '75',\n svgClass: '',\n width: '75',\n fill: '#3D94CC',\n transform: 'translate(0,0)',\n};\n\nAlarmCancelIcon.propTypes = {\n height: PropTypes.string,\n svgClass: PropTypes.string,\n width: PropTypes.string,\n fill: PropTypes.string,\n transform: PropTypes.string,\n};\n\nexport default AlarmCancelIcon;\n","import React from 'react';\nimport PropTypes from 'prop-types';\n\nconst AlarmAutoTestOkIco = ({ height, svgClass, width, fill, transform }) => (\n \n\n\n\n\n\n\n\n\n\n\n\n\n\n \n);\n\nAlarmAutoTestOkIco.defaultProps = {\n height: '75',\n svgClass: '',\n width: '75',\n fill: '#F69B38',\n transform: 'translate(0,0)',\n};\n\nAlarmAutoTestOkIco.propTypes = {\n height: PropTypes.string,\n svgClass: PropTypes.string,\n width: PropTypes.string,\n fill: PropTypes.string,\n transform: PropTypes.string,\n};\n\nexport default AlarmAutoTestOkIco;\n","import React from 'react';\nimport PropTypes from 'prop-types';\n\nconst AlarmVoiceReqIco = ({ height, svgClass, width, fill, transform }) => (\n \n\n\n\n\n\n\n\n\n \n);\n\nAlarmVoiceReqIco.defaultProps = {\n height: '75',\n svgClass: '',\n width: '75',\n fill: '#3D94CC',\n transform: 'translate(0,0)',\n};\n\nAlarmVoiceReqIco.propTypes = {\n height: PropTypes.string,\n svgClass: PropTypes.string,\n width: PropTypes.string,\n fill: PropTypes.string,\n transform: PropTypes.string,\n};\n\nexport default AlarmVoiceReqIco;\n","import React from 'react';\nimport PropTypes from 'prop-types';\n\nconst AlarmAutoTestFailIco = ({ height, svgClass, width, fill, transform }) => (\n \n\n\n\n\n\n\n\n\n\n\n\n\n\n \n);\n\nAlarmAutoTestFailIco.defaultProps = {\n height: '75',\n svgClass: '',\n width: '75',\n fill: '#F69B38',\n transform: 'translate(0,0)',\n};\n\nAlarmAutoTestFailIco.propTypes = {\n height: PropTypes.string,\n svgClass: PropTypes.string,\n width: PropTypes.string,\n fill: PropTypes.string,\n transform: PropTypes.string,\n};\n\nexport default AlarmAutoTestFailIco;\n","import React from 'react';\nimport PropTypes from 'prop-types';\n\nconst AlarmLowBatSensIco = ({ height, svgClass, width, fill, transform }) => (\n \n \n \n \n \n \n \n \n \n \n \n \n \n \n);\n\nAlarmLowBatSensIco.defaultProps = {\n height: '75',\n svgClass: '',\n width: '75',\n fill: '#008D53',\n transform: 'translate(0,0)',\n};\n\nAlarmLowBatSensIco.propTypes = {\n height: PropTypes.string,\n svgClass: PropTypes.string,\n width: PropTypes.string,\n fill: PropTypes.string,\n transform: PropTypes.string,\n};\n\nexport default AlarmLowBatSensIco;\n","import React from \"react\";\nimport PropTypes from 'prop-types';\n\nconst AlarmMovementIco = ({ height, svgClass, width, fill, transform }) => {\n return (\n \n \n \n \n \n \n );\n};\n\nAlarmMovementIco.defaultProps = {\n height: '75',\n svgClass: '',\n width: '75',\n fill: '#008D53',\n transform: 'translate(0,0)',\n};\n\nAlarmMovementIco.propTypes = {\n height: PropTypes.string,\n svgClass: PropTypes.string,\n width: PropTypes.string,\n fill: PropTypes.string,\n transform: PropTypes.string,\n};\n\n\nexport default AlarmMovementIco;","import React from \"react\";\nimport PropTypes from 'prop-types';\n\nconst AlarmTiltIco = ({ height, svgClass, width, fill, transform }) => {\n return (\n \n \n \n \n \n \n \n \n );\n};\n\nAlarmTiltIco.defaultProps = {\n height: '75',\n svgClass: '',\n width: '75',\n fill: '#008D53',\n transform: 'translate(0,0)',\n};\n\nAlarmTiltIco.propTypes = {\n height: PropTypes.string,\n svgClass: PropTypes.string,\n width: PropTypes.string,\n fill: PropTypes.string,\n transform: PropTypes.string,\n};\n\nexport default AlarmTiltIco;","import React from 'react';\nimport PropTypes from 'prop-types';\nimport AlarmiHelpEmergency from './alarms/AlarmiHelpEmergency';\nimport AlarmEmerConsIco from './alarms/AlarmEmerConsIco';\nimport AlarmGeo1InIco from './alarms/AlarmGeo1InIco';\nimport AlarmGeo1OutIco from './alarms/AlarmGeo1OutIco';\nimport AlarmGeo2InIco from './alarms/AlarmGeo2InIco';\nimport AlarmGeo2OutIco from './alarms/AlarmGeo2OutIco';\nimport AlarmGeo3InIco from './alarms/AlarmGeo3InIco';\nimport AlarmGeo3OutIco from './alarms/AlarmGeo3OutIco';\nimport AlarmGeo4InIco from './alarms/AlarmGeo4InIco';\nimport AlarmGeo4OutIco from './alarms/AlarmGeo4OutIco';\nimport AlarmChargeDeviceIco from './alarms/AlarmChargeDeviceIco';\nimport AlarmLostMed1Ico from './alarms/AlarmLostMed1Ico';\nimport AlarmLostMed2Ico from './alarms/AlarmLostMed2Ico';\nimport AlarmLostMed3Ico from './alarms/AlarmLostMed3Ico';\nimport AlarmEmerSensIco from './alarms/AlarmEmerSensIco';\nimport AlarmInactIco from './alarms/AlarmInactIco';\nimport AlarmFireIcon from './alarms/AlarmFireIcon';\nimport AlarmHighTemp from './alarms/AlarmHighTemp';\nimport AlarmLowTemp from './alarms/AlarmLowTemp';\nimport AlarmCO2Ico from './alarms/AlarmCO2Ico';\nimport AlarmLostFireIco from './alarms/AlarmLostFireIco';\nimport AlarmEnergyIco from './alarms/AlarmEnergyIco';\nimport AlarmBatConIcon from './alarms/AlarmBatConIcon';\nimport AlarmExpReminderIco from './alarms/AlarmExpReminderIco';\nimport AlarmAwayIco from './alarms/AlarmAwayIco';\nimport AlarmAtHomeIco from './alarms/AlarmAtHomeIco';\nimport AlarmLostSensorIco from './alarms/AlarmLostSensorIco';\nimport AlarmCancelIcon from './alarms/AlarmCancelIcon';\nimport AlarmAutoTestOkIco from './alarms/AlarmAutoTestOkIco';\nimport AlarmVoiceReqIco from './alarms/AlarmVoiceReqIco';\nimport AlarmAutoTestFailIco from './alarms/AlarmAutoTestFailIco';\nimport AlarmLowBatSensIco from './alarms/AlarmLowBatSensIco';\nimport AlarmMovementIco from './alarms/AlarmMovementIco';\nimport AlarmTiltIco from './alarms/AlarmTiltIco';\n\nclass AlarmIcon extends React.Component {\n\n alarmComponents = {\n '001': AlarmiHelpEmergency,\n '003': AlarmGeo1InIco,\n '004': AlarmGeo1OutIco,\n '005': AlarmGeo2InIco,\n '006': AlarmGeo2OutIco,\n '007': AlarmGeo3InIco,\n '008': AlarmGeo3OutIco,\n '009': AlarmGeo4InIco,\n '010': AlarmGeo4OutIco,\n '019': AlarmChargeDeviceIco,\n '042': AlarmLostMed1Ico,\n '045': AlarmLostMed2Ico,\n '048': AlarmLostMed3Ico,\n '051': AlarmLostMed3Ico,\n 100: AlarmEmerConsIco,\n 101: AlarmEmerSensIco,\n 102: AlarmInactIco,\n 111: AlarmFireIcon,\n 158: AlarmHighTemp,\n 159: AlarmLowTemp,\n 162: AlarmCO2Ico,\n 200: AlarmLostFireIco,\n 301: AlarmEnergyIco,\n 302: AlarmBatConIcon,\n 356: AlarmExpReminderIco,\n 371: AlarmAwayIco,\n 372: AlarmAtHomeIco,\n 381: AlarmLostSensorIco,\n 384: AlarmLowBatSensIco,\n 406: AlarmCancelIcon,\n 602: AlarmAutoTestOkIco,\n 606: AlarmVoiceReqIco,\n 608: AlarmAutoTestFailIco,\n 700: AlarmMovementIco,\n 701: AlarmTiltIco,\n }\n\n render() {\n let Alarm = this.alarmComponents[this.props.alarmCode || '100'];\n if (!Alarm) {\n Alarm = this.alarmComponents['101'];\n }\n\n return (\n \n );\n }\n}\n\nexport default AlarmIcon;\n","export default {\n en: {\n '001': 'SOS - mPERS',\n '003': 'Geo-fence 1 Entered',\n '004': 'Geo-fence 1 Exited',\n '005': 'Geo-fence 2 Entered',\n '006': 'Geo-fence 2 Exited',\n '007': 'Geo-fence 3 Entered',\n '008': 'Geo-fence 3 Exited',\n '009': 'Geo-fence 4 Entered',\n '010': 'Geo-fence 4 Exited',\n '019': 'Recharge the device',\n '042': 'Medication 1 Missed',\n '045': 'Medication 2 Missed',\n '048': 'Medication 3 Missed',\n '051': 'Medication 4 Missed',\n 100: 'Medical Emergency',\n 101: 'Pendant Transmitter',\n 102: 'Fail to report in',\n 111: 'Fire Alarm',\n 120: 'Panic',\n 158: 'High Temperature',\n 159: 'Low Temperature',\n 162: 'Carbon Monoxide Detected',\n 200: 'Fire Supervisory Lost / CO',\n 301: 'AC Loss',\n 302: 'Low system battery',\n 356: 'Reminder Timeout',\n 371: 'Away Mode',\n 372: 'Home Mode',\n 381: 'Transmitter Supervision Lost',\n 384: 'Transmitter Low Battery',\n 406: 'Canceled Alarm',\n 602: 'Periodic Test - Ok',\n 606: 'Listen-in to follow',\n 608: 'Periodic Test - Fail',\n 645: 'Position Follow Up After Alarm',\n 646: 'Location request',\n 648: 'Ring request',\n 671: 'Geo-fence',\n 700: 'Movement Alert',\n 701: 'Tilt Alert'\n },\n pt: {\n '001': 'SOS - mPERS',\n '003': 'Zona de segurança 1 Entrada',\n '004': 'Zona de segurança 1 Saída',\n '005': 'Zona de segurança 2 Entrada',\n '006': 'Zona de segurança 2 Saída',\n '007': 'Zona de segurança 3 Entrada',\n '008': 'Zona de segurança 3 Saída',\n '009': 'Zona de segurança 4 Entrada',\n '010': 'Zona de segurança 4 Saída',\n '019': 'Recarregar dispositivo',\n '042': 'Medicação 1 Perdida',\n '045': 'Medicação 2 Perdida',\n '048': 'Medicação 3 Perdida',\n '051': 'Medicação 4 Perdida',\n 100: 'Emergência Console',\n 101: 'Sensor de Emergência',\n 102: 'Inatividade',\n 111: 'Alarme de Incêndio',\n 120: 'Pânico',\n 158: 'Temperatura Elevada',\n 159: 'Temperatura Baixa',\n 162: 'Monóxido de Carbono',\n 200: 'Perda Supervisão Incêndio / CO',\n 301: 'Energia Elétrica',\n 302: 'Bateria Console',\n 356: 'Tempo de lembrete esgotado',\n 371: 'Modo Ausente',\n 372: 'Modo em casa',\n 381: 'Perda supervisão sensor',\n 384: 'Bateria fraca sensor',\n 406: 'Alarme Cancelado',\n 602: 'Teste Automático - Ok',\n 606: 'Requisição Viva-Voz',\n 608: 'Teste Automático - Falha',\n 645: 'Posição pós-alarme',\n 646: 'Requisição de localização',\n 648: 'Requisição de apito',\n 671: 'Geo-fence',\n 700: 'Alerta de movimentação',\n 701: 'Alerta de tilt'\n },\n};\n","/* eslint-disable import/no-anonymous-default-export */\nexport default {\n en: {\n 'app.activate.message': 'Activating this account your current users will be charged. Continue?',\n 'app.currency': 'US$',\n 'toggle.button.inactives': 'Inactive',\n 'logs.createdDate': 'Created date',\n 'logs.createdBy': 'Created by',\n 'logs.modifiedDate': 'Modifed date',\n 'logs.modifiedBy': 'Modified by',\n 'attendant.attendantsHeader': 'SYSTEM CONTACTS',\n 'attendant.userName': 'Username',\n 'attendant.group': 'Group',\n 'attendant.country': 'Country',\n 'paginate.of': 'of',\n 'general.firstName': 'First Name',\n 'general.lastName': 'Last Name',\n 'general.yes': 'Yes',\n 'general.no': 'No',\n 'general.admin': 'Admin',\n 'general.manager': 'Manager',\n 'general.operator': 'Operator',\n 'general.owner': 'Owner',\n 'general.actionsHeader': 'ACTIONS',\n 'general.personalInfoHeader': 'PERSONAL INFORMATION',\n 'general.highPriority': 'High Priority',\n 'general.mediumPriority': 'Medium Priority',\n 'general.lowPriority': 'Low Priority',\n 'general.sysPriority': 'System Alarm',\n 'general.columnView': 'View',\n 'general.columnEdit': 'Edit',\n 'general.columnDeactivate': 'Deactivate',\n 'general.columnRecover': 'Recover',\n 'general.columnDelete': 'Delete',\n 'general.clientColumn': 'User',\n 'general.attendant': 'Attendant',\n 'general.resolvedBy': 'Solved By',\n 'general.alarmType': 'Alarm Type',\n 'general.opening': 'Start Time',\n 'general.closure': 'End Time',\n 'general.accountNumber': 'Account number',\n 'general.fullName': 'Name',\n 'general.cellphone': 'Cellphone',\n 'general.saveButton': 'SAVE',\n 'general.add': 'ADD',\n 'general.allPlans': 'All Plans',\n 'general.country': 'Country',\n 'general.other': 'Other',\n 'general.emptyList': 'Empty List',\n 'general.company': 'Company',\n 'error.atLeastTwoChar': 'This field must have at least two characters',\n 'error.cellPhoneNumbers': 'This field must have 11 number',\n 'inputContainer.username': 'Username: ',\n 'inputContainer.firstName': 'First Name: ',\n 'inputContainer.lastName': 'Last Name: ',\n 'inputContainer.mobile': 'Mobile Phone: ',\n 'inputContainer.password': 'Password: ',\n 'inputContainer.newPassword': 'New Password',\n 'inputContainer.confirmPassword': 'Confirm Password: ',\n 'inputContainer.oldPassword': 'Old Password',\n 'inputContainer.accountNumber': 'Account Number: ',\n 'inputContainer.birthdate': 'Birthdate: ',\n 'inputContainer.equipment': 'Equipment: ',\n 'inputContainer.typeOfAccount': 'Type of Account: ',\n 'inputContainer.healthPlan': 'Insurance: ',\n 'inputContainer.limitations': 'Limitations: ',\n 'inputContainer.medications': 'Medications: ',\n 'inputContainer.removalPlan': 'Removal Plan: ',\n 'inputContainer.observations': 'Observations: ',\n 'inputContainer.state': 'State: ',\n 'inputContainer.street': 'Street: ',\n 'inputContainer.number': 'Number: ',\n 'inputContainer.complement': 'Complement: ',\n 'inputContainer.district': 'District: ',\n 'inputContainer.zipCode': 'Zip Code: ',\n 'inputContainer.city': 'City: ',\n 'inputContainer.accountPhone': 'Device Number: ',\n 'inputContainer.useVoIP': 'Use VoIP:',\n 'inputContainer.contactPhone': 'Contact Phone {number}: ',\n 'inputContainer.company': 'Company: ',\n 'inputContainer.gender': 'Gender: ',\n 'inputContainer.relationship': 'Relationship: ',\n 'inputContainer.priority': 'Priority: ',\n 'inputContainer.account': 'Account: ',\n 'inputContainer.attendId': 'Identification: ',\n 'inputContainer.appNumber': 'App Number',\n 'inputContainer.internalComments': 'Internal Comments:',\n 'dashboard.open.header': 'OPEN ALARMS',\n 'dashboard.open.noAttends': 'No open alarms',\n 'dashboard.open.attendant': 'No Attendant',\n 'dashboard.closed.header': 'LAST {attendsLength} ALARMS',\n 'dashboard.closed.noAttends': 'No closed alarms',\n 'dashboard.tabs.header': 'SUMMARY',\n 'dashboard.tabs.quantity': 'QUANTITY',\n 'dashboard.tabs.bypriority': 'BY PRIORITY',\n 'dashboard.tabs.priority': 'PRIORITY',\n 'dashboard.tabs.subhigh': 'HIGH',\n 'dashboard.tabs.submedium': 'MEDIUM',\n 'dashboard.tabs.sublow': 'LOW',\n 'dashboard.tabs.subsystem': 'SYSTEM',\n 'dashboard.tabs.userstotal': 'USERS TOTAL',\n 'dashboard.card.quantity': 'Number of alarms',\n 'dashboard.card.attendsPriority': 'Number of Alarms by Priority',\n 'dashboard.card.clientsMonthly': 'Users Total Monthly',\n 'card.alarms.month': ' Month: ',\n 'card.alarms.totalAtt': ' Number of Alarms: ',\n 'card.alarms.totalVoice': ' Audio Calls: ',\n 'sidebar.dashboard': 'Dashboard',\n 'sidebar.users': 'Users',\n 'sidebar.attends': 'Alarms',\n 'sidebar.reports': 'Reports',\n 'sidebar.profile': 'My profile',\n 'sidebar.manage': 'Manage',\n 'sidebar.config': 'Settings',\n 'sidebar.logout': 'Logout',\n 'header.user.edit': 'Edit',\n 'header.user.logout': 'Logout',\n 'header.user.messages': 'Messages',\n 'header.icon.connection': 'Connection with the server was interrupted, wait 30 seconds or reload the page.',\n 'header.icon.blockedPhone': 'Your microphone is blocked, please unblock your microphone. Click on the icon to know more.',\n 'header.icon.activePhone': 'The name of your microphone is: {microphone}. If this is not your microphone, click on the icon.',\n 'header.searchbar.search': 'Search',\n 'header.trial.info': ' TRIAL VERSION ',\n 'header.trial.sign': ' SIGN ',\n 'header.domain.add': 'ADD DOMAIN',\n 'call.button.answer': 'ANSWER',\n 'call.button.resume': 'RESUME',\n 'call.button.view': 'VIEW',\n 'call.button.details': 'DETAILS',\n 'call.button.close': 'CLOSE',\n 'modal.confirm.defaultMessage': 'Are you sure you want to perform this action?',\n 'modal.confirm.yes': 'YES',\n 'modal.confirm.no': 'NO',\n 'modal.confirm.reminderClose': 'Are you sure you want to close this reminder window?',\n 'modal.notification.solveAttend': 'Close Alarm',\n 'form.button.cancel': 'Cancel',\n 'form.button.save': 'Save',\n 'form.button.exclude': 'Delete',\n 'form.info.save': 'You need to fill the following informations to be able to save:',\n 'form.info.contact_personal': 'Personal - First name, last name, priority, relationship and email',\n 'form.info.contact_phone': 'Phone - At least one primary phone',\n 'form.info.client_personal': 'Personal - Account number, first name, last name, birthdate',\n 'form.info.client_address': 'Address - Street, number, district, city, zip code',\n 'form.info.client_phone_normal': 'Phone - Equipment phone',\n 'form.info.client_phone_ihelp': 'Phone or IMEI - Equipment phone OR IMEI',\n 'form.info.client_phone_sosapp': 'Phone and App Number - Equipment Phone AND App Number',\n 'client.page.header': 'USERS',\n 'client.page.headerSubtitle': 'Filtered by',\n 'client.page.addAcc': 'ACCOUNT',\n 'client.page.impAcc1': 'IMPORT',\n 'client.page.impAcc2': 'ACCOUNT',\n 'client.page.undoFilt1': 'UNDO',\n 'client.page.undoFilt2': 'FILTER',\n 'client.page.editFilt': 'EDIT FILTER',\n 'client.page.filter1': 'FILTER',\n 'client.page.filter2': 'USERS',\n 'client.page.columnAccount': 'Account',\n 'client.page.columnTracker': 'Tracker',\n 'client.page.columnView': 'View',\n 'client.page.columnContacts': 'Contacts',\n 'client.page.columnAlarms': 'Alarms',\n 'client.page.columnTransmitters': 'Sensors',\n 'client.page.columnEdit': 'Edit',\n 'client.page.columnDeactivate': 'Deactivate',\n 'client.page.columnRecover': 'Recover',\n 'client.page.company': 'Company',\n 'client.page.name': 'Name',\n 'client.page.lastName': 'Last Name',\n 'client.page.equipment': 'Equipment',\n 'client.page.noTracker': 'No Tracker',\n 'client.form.primaryUserInfo': 'PERSONAL INFORMATION USER - 1',\n 'client.form.secondaryUserInfo': 'PERSONAL INFORMATION USER - 2',\n 'client.form.personalInfoHeader': 'ACCOUNT INFORMATION',\n 'client.form.editHeader': 'EDIT USER',\n 'client.form.addHeader': 'ADD USER',\n 'client.form.testOpt': 'Test user: ',\n 'client.form.equipmentError': 'This IMEI is already being used somewhere else.',\n 'client.form.equipmentErrorAccount': 'This IMEI is being used by the account {clientAccount}',\n 'client.form.addressHeader': 'ADDRESS',\n 'client.form.noCompany': 'No Company',\n 'client.form.select': 'Select',\n 'client.form.male': 'Male',\n 'client.form.female': 'Female',\n 'client.form.notApplicable': 'Not Applicable',\n 'client.form.placeholderText': 'This text will not appear to the operators during an emergency.',\n 'client.error.accountNumber': 'This field must have 4 characters',\n 'client.error.accountExists': 'Account number already exists',\n 'client.error.invalidMail': 'Invalid Email',\n 'client.error.atLeastTwoChar': 'This field must have at least two characters',\n 'client.error.firstCharUppercase': 'The first character must be an uppercase letter',\n 'client.error.atLeastOneNum': 'This field must have at least one number',\n 'client.error.appNumber': 'This field must have seven characters',\n 'client.error.dateFormat': 'This field must be in the format dd/mm/yyyy',\n 'client.error.invalidCellphone': 'Cellphone number invalid',\n 'client.error.cellPhoneNumbers': 'This field must have 11 numbers',\n 'client.error.cellPhoneNumbersMU': 'This field must have 11 numbers',\n 'client.error.regularPhones': 'This field must have 10 or 11 numbers',\n 'client.error.regularPhonesMU': 'This field must have 10 or 11 numbers',\n 'client.error.phoneNumbersGB': 'This field must have 12 numbers',\n 'client.error.zipCode': 'This field must have 8 numbers',\n 'client.error.cpfInvalidLen': 'The cpf field must have 11 numbers',\n 'client.error.cpfInvalid': 'Invalid cpf number',\n 'client.error.accountOutOfRange': 'The account number is outside this company\\'s account range',\n 'client.error.ataExists': 'The number of this ATA (VoIP) is already being used elsewhere',\n 'client.formMessage.equipment': 'This user is marked with {equipmentName} but there is a cellphone in the account phone.\\n\\nSave anyway?',\n 'client.formMessage.testClient': 'This user is marked with test, starting now his calls will not open voice channel untils this option is unchecked.\\n\\nSave anyway?',\n 'client.formMessage.voip': 'Is user is marked as VoIP, make sure his equipment is connected to an ATA equipment to be able to make emergency calls.',\n 'client.detail.mainHeader': 'VIEWING INFORMATION ',\n 'client.detail.testUser': 'Test user',\n 'client.detail.accountType': 'Account Type',\n 'client.detail.doesNotHave': 'Does not have',\n 'client.detail.testUserYes': 'Yes',\n 'client.detail.testUserNo': 'No',\n 'client.detail.birthdate': 'Birthdate',\n 'client.detail.observations': 'Observations',\n 'client.detail.healthPlan': 'Insurance plan',\n 'client.detail.limitations': 'Limitations',\n 'client.detail.medications': 'Medications',\n 'client.detail.removalPlan': 'Removal plan',\n 'client.detail.equipment': 'Equipment',\n 'client.detail.company': 'Company',\n 'client.detail.street': 'Street',\n 'client.detail.number': 'Number',\n 'client.detail.complement': 'Complement',\n 'client.detail.district': 'District',\n 'client.detail.zipCode': 'Zip Code',\n 'client.detail.city': 'City',\n 'client.detail.state': 'State',\n 'client.detail.accountPhone': 'Device Phone',\n 'client.detail.contactPhone': 'Contact Phone',\n 'client.detail.accountNumber': 'Account Number',\n 'client.detail.indepCall': 'Make single call',\n 'client.detail.name': 'Full name',\n 'client.detail.gender': 'Gender',\n 'client.detail.age': 'Age',\n 'client.tracker.mapHeader': 'MAP',\n 'client.tracker.inNumbers': 'Inbound Numbers',\n 'client.tracker.inboundNumber': 'Inbound Number',\n 'client.tracker.inboundTooltip': 'Activate/Deactivate automatic answer. When deactivated, it will be needed to press the SOS button to answer a call.',\n 'client.tracker.geofenceMapHeader': 'GEO-FENCE MAP',\n 'client.tracker.geofenceMode': 'Mode',\n 'client.tracker.geofenceRadius': 'Radius',\n 'client.tracker.meters': 'Meters',\n 'client.tracker.toKnowMore': 'TO KNOW MORE',\n 'client.tracker.clickHere': ' CLICK HERE ',\n 'client.tracker.begining': 'Start: ',\n 'client.tracker.end': 'End: ',\n 'client.tracker.search': 'Search',\n 'client.tracker.trackerFrom': 'TRACKER FROM ',\n 'client.tracker.history': 'History',\n 'client.tracker.programming': 'Programming',\n 'client.tracker.geofences': 'Geo-Fences',\n 'client.tracker.geofence': 'Geo-Fence',\n 'client.tracker.fdmode': 'Fall detection mode',\n 'client.tracker.voipcalling': 'Make calls by VoIP (Voice over IP)',\n 'client.tracker.sosbreadcrumb': 'SOS Breadcrumb every 30 seconds',\n 'client.tracker.sosbreadcrumbint': 'SOS Breadcrumb interval',\n 'client.tracker.autopost': 'Location send interval',\n 'client.tracker.vin1': 'Allowed inbound phone number 1',\n 'client.tracker.vin2': 'Allowed inbound phone number 2',\n 'client.tracker.disabled': 'Disabled',\n 'client.tracker.enabled': 'Enabled',\n 'client.tracker.highSensitivity': 'High Sensitivity',\n 'client.tracker.mediumHighSensitivity': 'Medium-High Sensitivity',\n 'client.tracker.normalSensitivity': 'Normal Sensitivity',\n 'client.tracker.enterPerimeter': 'Alert on enter perimeter',\n 'client.tracker.exitPerimeter': 'Alert on exit perimeter',\n 'client.tracker.bothPerimeter': 'Alert on both enter/exit perimeter',\n 'client.tracker.seconds': 'Seconds',\n 'client.tracker.minutes': 'Minutes',\n 'client.tracker.saveSettings': 'Save Settings',\n 'client.tracker.saveFence': 'Save Fence',\n 'client.tracker.simplified': 'Simplified Data',\n 'client.tracker.latest': 'Latest Position',\n 'client.tracker.errorNoIMEI': 'THIS USER DOES NOT HAVE IMEI REGISTERED.\\n',\n 'client.tracker.errorNoData': 'THERE IS NO DATA FOR THE SELECTED DAY.\\n\\n THE TRACKER MUST BE CONFIGURED WITH THE CONTACTTO.CARE SERVER.\\n\\n\\n',\n 'client.tracker.errorNoDataLatest': 'NO DATA FOUND.\\n\\n THE TRACKER MUST BE CONFIGURED WITH THE CONTACTTO.CARE SERVER.\\n\\n\\n',\n 'client.tracker.errorNoUser': 'THIS USER DOES NOT EXIST',\n 'client.tracker.errorUnexpected': 'UNEXPECTED ERROR',\n 'client.tracker.errorNoSimpleToday': 'IT IS NOT POSSIBLE TO SEARCH FOR TODAY\\'S SIMPLIFIED DATA.\\n THIS INFORMATION IS ONLY AVAILABLE FOR PAST DAYS.',\n 'client.tracker.errorEmptyPointsDates': 'NO DATA FOR THE DATES BETWEEN {startDate} AT {startHour} HOURS AND {endDate} - {endHour} AT HOURS',\n 'client.tracker.errorEmptyPointsHours': 'NO DATA FOR THE DATES BETWEEN {startDate} AT {startHour} HOURS AND {endDate} - {endHour} AT HOURS',\n 'client.tracker.errorEmptyPoint': 'THIS DEVICE DOESN\\'T HAVE DATA FOR TODAY, PLEASE CHECK THE DEVICE\\'S BATTERY',\n 'client.tracker.ihelpNoData': 'NO DATA FOR THIS DEVICE. \\n VERIFY IF THE DEVICE IS ONLINE',\n 'client.tracker.battery': 'Battery',\n 'client.tracker.timestamp': 'Timestamp',\n 'client.tracker.charging': 'Charging',\n 'client.tracker.cellSignal': 'Cell Signal',\n 'client.tracker.eventType': 'Event Type',\n 'client.tracker.searchAddress': 'Enter an address for this perimeter',\n 'client.tracker.configsSaved': 'Configuration successfully saved!',\n 'client.tracker.configsSent': 'Request successfully sent!',\n 'client.tracker.igoConfigSaved': 'Configurations sent to the device. \\n Please, wait 5 minutes for the equipment to be updated.',\n 'client.tracker.location': 'Location',\n 'client.tracker.updateLoc': 'Update Location',\n 'client.tracker.event': 'Event',\n 'client.tracker.powerSav': 'Power Saving',\n 'client.tracker.voiceMon': 'Listening Mode',\n 'client.tracker.ledInd': 'Deactivate LED Indicator',\n 'client.tracker.overspeed': 'Overspeed alarm',\n 'client.tracker.fallDetection': 'Fall Detection',\n 'client.tracker.gsmTooltip': 'Activate/Deactivate location by GSM when the GPS satellite is not available. Increase the battery consumption.',\n 'client.tracker.powerSavTooltip': 'Activate/Deactivate smart power saving mode. When deactivated, the device will send it\\'s location according to the selected posting interval.',\n 'client.tracker.voiceMonTooltip': 'Activate/Deactivate listening mode. Registered numbers in the device can make silent calls and listen to what is happening with the device without alerting the user.',\n 'client.tracker.ledIndTooltip': 'Activate/Deactivate LED indicators, the side LEDs will turn on/off, the device will function normally.',\n 'client.tracker.fallDetectionTooltip': 'Activate/Deactivate fall detection. The device will send an SMS to the registered phones that a fall has occured without pressing any button.',\n 'client.tracker.autopostTooltip': 'Select the time interval that the device will send it\\'s location. The default is that the device will send data every 3 minutes when in movement and 10 minutes when still.',\n 'client.tracker.overspeedTooltip': 'Select the speed (in km/h) to activate the overspeed alarm or turn off this function. When the speed limit is exceeded, the device will send an SMS to the registered numbers.',\n 'client.tracker.medicationTimer': 'Time',\n 'client.tracker.medicationAck': 'Medication Acknowledgement',\n 'client.tracker.reminderActive': 'Active Reminder',\n 'client.tracker.saveMed': 'Save Reminder',\n 'client.tracker.medication': 'Reminder',\n 'client.tracker.medicationOption': 'Program Medication Reminders',\n 'client.tracker.saveInbound': 'Save Inbound Numbers',\n 'client.tracker.hour': 'Hour',\n 'client.tracker.sendTime': 'Point time',\n 'client.tracker.gpsAccuracy': 'GPS Accuracy',\n 'client.tracker.geoNotConfigured': 'Please type an address in the searchbar to configure this Geofence.',\n 'client.tracker.falldownActivate': 'Activate falldown detection',\n 'client.tracker.motionActivate': 'Activate motion detection',\n 'client.tracker.noMotionActivate': 'Activate no motion detection',\n 'client.tracker.overspeedActivate': 'Activate overspeed detection',\n 'client.tracker.tiltAlertActivate': 'Activate tilt detection',\n 'client.tracker.sensitivity': 'Sensitivity',\n 'client.tracker.movmentActivationPeriod': 'Time to activate (in seconds)',\n 'client.tracker.movementAlertCooldown': 'Cooldown between alarms (in seconds)',\n 'client.tracker.noMovementStaticPeriod': 'Time still for inactivity detection (in seconds, between 300 and 36000)',\n 'client.tracker.detectionSpeed': 'Speed for detection (KM/h)',\n 'client.tracker.tiltAlertAngle': 'Angle limit (in degrees)',\n 'client.tracker.tiltTimeTreshold': 'Time still for tilt detection (in seconds, between 10 and 3600)',\n 'client.tracker.date': 'Date',\n 'client.tracker.accuracy': 'Accuracy',\n 'client.tracker.direction': 'Direction',\n 'client.tracker.altitude': 'Altitude',\n 'client.tracker.speed': 'Speed',\n 'client.tracker.signalStrength': 'Signal strength',\n 'client.tracker.completeCharge': 'Charge complete',\n 'client.tracker.lastRead': 'Last read',\n 'client.tracker.alarmClock': 'Program reminders',\n 'client.tracker.reminder': 'Reminder',\n 'client.tracker.medicationAudio': 'Medication reminder audio',\n 'client.tracker.appointmentAudio': 'Appointment reminder audio',\n 'client.tracker.noonAudio': '12 o clock audio',\n 'client.tracker.wakeUpAudio': 'Wake up reminder audio',\n 'client.tracker.audioSelection': 'Audio Selection',\n 'client.tracker.audioDuration': 'Audio Duration',\n 'client.tracker.daySelection': 'Repeat on days',\n 'client.tracker.saveReminder': 'Save Reminder',\n 'client.tracker.monAbbrv': 'MON',\n 'client.tracker.tueAbbrv': 'TUE',\n 'client.tracker.wedAbbrv': 'WED',\n 'client.tracker.thuAbbrv': 'THU',\n 'client.tracker.friAbbrv': 'FRI',\n 'client.tracker.satAbbrv': 'SAT',\n 'client.tracker.sunAbbrv': 'SUN',\n 'client.import.importHeader': 'Insert a csv or excel type file',\n 'client.import.importClick': ' click or drag the file',\n 'client.import.noFileSelected': ' No file was selected.',\n 'client.import.invalidExtension': ' File with invalid extension.',\n 'client.import.standardFile': ' Download the standard format from the ',\n 'client.import.help': 'The columns that have an * are mandatory',\n 'client.import.file': 'file',\n 'client.import.cancel': 'CANCEL',\n 'client.import.send': 'SEND',\n 'client.importInfo.header': 'IMPORT RESULTS',\n 'client.importInfo.clients': 'Users',\n 'client.importInfo.success': ' Successfully Imported: ',\n 'client.importInfo.notImported': ' Not Imported (error): ',\n 'client.importInfo.line': 'Line',\n 'client.importInfo.name': 'Name',\n 'client.importInfo.account': 'Account',\n 'client.importInfo.contacts': 'contacts',\n 'client.importInfo.downloadReport': 'Download the full report',\n 'client.filter.first_name': 'First Name',\n 'client.filter.last_name': 'Last Name',\n 'client.filter.account': 'Account',\n 'client.filter.group_id': 'Company',\n 'client.filter.equipment_ids': 'Use Tracker',\n 'client.filter.noGroup': 'No Company',\n 'client.modal.inactivateMsg': 'You are inactivating the account {clientAccount}. Are you sure you want to perform this action?',\n 'client.modal.reactivateMsg': 'You are reactivating the account {clientAccount}, if there is no other user with this account the extra charaactes will be erased, otherwise the extra charactes will need to be manually removed. Are you sure you want to perform this action?',\n 'filter.header': 'FILTER USERS',\n 'filter.useTracker': 'Use Tracker',\n 'filter.company': 'Company',\n 'filter.ignore': 'Ignore',\n 'filter.btn': 'FILTER',\n 'contact.page.header': 'CONTACTS FROM ',\n 'contact.page.accountNumber': 'Account number',\n 'contact.page.addCont': 'CONTACT',\n 'contact.page.priority': 'Priority',\n 'contact.page.name': 'Name',\n 'contact.page.phoneOne': 'Phone 1',\n 'contact.page.phoneTwo': 'Phone 2',\n 'contact.page.answered': 'Answered',\n 'contact.page.contacted': 'Contacted',\n 'contact.form.editHeader': 'EDIT CONTACT OF',\n 'contact.form.addHeader': 'ADD CONTACT OF',\n 'contact.form.personal': 'PERSONAL',\n 'contact.form.account': 'Account',\n 'contact.form.priority': 'Priority',\n 'contact.form.relationship': 'Relationship',\n 'contact.form.hasKeys': 'Has Keys',\n 'contact.form.contactInfo': 'CONTACT',\n 'contact.form.zipCode': 'Zip Code',\n 'contact.form.street': 'Street',\n 'contact.form.district': 'District',\n 'contact.form.number': 'Number',\n 'contact.form.complement': 'Complement',\n 'contact.form.city': 'City',\n 'contact.form.state': 'State',\n 'contact.form.addPhoneButton': 'Add new phone',\n 'contact.form.actionsHeader': 'ACTIONS',\n 'contact.form.cancel': 'Cancel',\n 'contact.form.save': 'Save',\n 'contact.form.phone': 'Telephone',\n 'contact.form.type': 'Type',\n 'contact.form.primary': 'Primary',\n 'contact.form.work': 'Work',\n 'contact.form.home': 'Home',\n 'contact.form.cellphone': 'Cellphone',\n 'contact.form.requestTracking': 'CAN REQUEST TRACKING:',\n 'contact.form.requestTrackingMsg': 'CAN REQUEST THE TRACK COMMAND BY SMS TO RECEIVE THE LAST SYSTEM POSITION',\n 'contact.form.isContractor': 'Contractor',\n 'contact.form.isFamily': 'Familiar Admin',\n 'contact.error.email': 'incorrect email',\n 'contact.error.twoPrimaries': 'This contact has two primary phones',\n 'contact.error.familyAdmExists': 'There is another contact marked as familiar administrator',\n 'contact.error.noPrimary': 'This contact does not have primary phones',\n 'contact.detail.mainHeader': 'VIEWING INFORMATION FROM THE CONTACT OF',\n 'transmitters.zone': 'Zone: ',\n 'transmitters.description': 'Description: ',\n 'transmitter.form.selectUser': 'Utilize for user 2',\n 'transmitters.details.header': 'SENSOR DETAILS',\n 'transmitter.detail.identifier': 'Identifier',\n 'transmitter.detail.description': 'Description',\n 'transmitter.detail.observations': 'Observations',\n 'transmitter.error.zone': 'Field needs 3 characters',\n 'transmitters.detail.useForUser2': 'Utilize for user 2',\n 'transmitters.identifier': 'TX identifier: ',\n 'transmitters.observations': 'Observations',\n 'transmitters.page.header': 'AUXILIARY SENSORS & DEVICES FROM',\n 'transmitters.page.transmitterAdd': 'SENSOR',\n 'transmitters.form.informations': 'INFORMATION',\n 'transmitters.form.editTransmitter': 'EDIT SENSOR',\n 'transmitters.form.addTransmitter': 'ADD SENSOR',\n 'attend.list.mainHeader': 'ALARMS',\n 'attend.list.loading': 'Loading',\n 'attend.list.isTest': 'Test',\n 'attend.list.clientAttendsFrom': 'ALARMS FROM',\n 'attend.detail.callType': 'ATTEND TYPE',\n 'attend.detail.comments': 'COMMENTS',\n 'attend.detail.systemAttendants': 'SYSTEM ATTENDANTS',\n 'attend.detail.mainHeader': 'ALARM',\n 'attend.detail.birthdate': 'Birthdate',\n 'attend.detail.clientAddress': 'Address',\n 'attend.detail.clientAccount': 'Account',\n 'attend.detail.clientCompany': 'Company',\n 'attend.detail.clientAccountPhone': 'Device number',\n 'attend.detail.clientContactPhone': 'User phone',\n 'attend.detail.clientHealthplan': 'Insurance',\n 'attend.detail.clientRemoval': 'Removal | Ambulance',\n 'attend.detail.limitations': 'Limitations',\n 'attend.detail.medications': 'Medications',\n 'attend.detail.clientObservations': 'Observations',\n 'attend.detail.doesNotHave': 'Does not have',\n 'attend.detail.clientHeader': 'USER',\n 'attend.detail.alarmHeader': 'ALARMS',\n 'attend.detail.alarmName': 'Name',\n 'attend.detail.alarmZone': 'ZONE',\n 'attend.detail.alarmDate': 'DATE',\n 'attend.detail.alarmNoRecord': '{alarmCode} - no record',\n 'attend.detail.reportHeader': 'COMMENTS',\n 'attend.detail.event': 'Event',\n 'attend.detail.contactedHeader': 'CONTACTED PEOPLE',\n 'attend.detail.noContacted': 'No contacted people',\n 'attend.detail.noReminders': 'No reminders',\n 'attend.detail.attendTag': 'Call Type',\n 'attend.detail.clientDetailHeader': 'USER DETAILS',\n 'attend.detail.alarmDetailHeader': 'ALARM DETAILS',\n 'attend.detail.alarmType': 'TYPE',\n 'attend.detail.alarmCategory': 'CATEGORY',\n 'attend.detail.detailsHeader': 'DETAILS',\n 'attend.detail.locationHeader': 'LOCATION',\n 'attend.detail.emergencyContacts': 'EMERGENCY CONTACTS',\n 'attend.detail.attendants': 'ATTENDANTS',\n 'attend.detail.city': 'City',\n 'attend.detail.zipCode': 'ZIP',\n 'attend.detail.eventCategory': 'Event',\n 'attend.detail.restorationCategory': 'Restoration',\n 'attend.detail.primaryHeader': 'DETAILS USER - 1',\n 'attend.detail.secondaryHeader': 'DETAILS USER - 2',\n 'attend.detail.audioInfo': 'EXTRA AUDIO INFORMATION',\n 'attend.description.sosAlarm': 'SOS Button',\n 'attend.description.falldownAlarm': 'Falldown detection',\n 'attend.description.overspeedAlarm': 'Overspeed detection',\n 'attend.closed.errorNoPoints': 'COORDINATES NOT FOUND FOR THIS ATTEND',\n 'attend.closed.reportNoComment': 'No comments',\n 'attend.closed.infoLabel': 'INFO DETAILS',\n 'attend.closed.clientMessageLabel': 'MESSAGE LOG',\n 'attend.closed.clientMessage': 'MESSAGE',\n 'attend.closed.clientMessageReply': 'REPLY',\n 'attend.closed.resolvedBy': 'SOLVED BY',\n 'attend.closed.infoOpening': 'Open time',\n 'attend.closed.infoAttend': 'Attend time',\n 'attend.closed.infoClosure': 'Close time',\n 'attend.closed.infoHeader': 'INFORMATION',\n 'attend.closed.emergencyContact': 'EMERGENCY CONTACT',\n 'attend.closed.attendant': 'ATTENDANT',\n 'attend.closed.contactedPersons': 'CONTACTED PERSONS',\n 'attend.closed.remindersHeader': 'REMINDERS',\n 'attend.closed.searchingFor': 'Searching...',\n 'attend.closed.noAudio': 'No audio',\n 'attend.closed.audioDate': 'AUDIO DATE',\n 'attend.closed.audioOrigin': 'ATTENDANT',\n 'attend.closed.audioDestiy': 'DESTINY',\n 'attend.closed.audioStatus': 'STATUS',\n 'attend.closed.audioType': 'TYPE',\n 'attend.closed.audioDuration': 'DURATION',\n 'attend.closed.downloadAudio': 'DOWNLOAD',\n 'attend.closed.audioTypeAttend': 'Alarm',\n 'attend.closed.audioTypeReminder': 'Reminder',\n 'attend.closed.audioLoading': 'Loading...',\n 'attend.open.takeCall': 'TAKE CALL',\n 'attend.open.callDuration': 'CALL DURATION',\n 'attend.open.hangUp': 'HANGUP',\n 'attend.open.timeToAnswer': 'TIME TO ANSWER',\n 'attend.open.takeAttend': 'TAKE ALARM',\n 'attend.open.callEnded': 'CALL ENDED',\n 'attend.open.attended': 'Attended',\n 'attend.open.contacted': 'Contacted',\n 'attend.open.contactsHeader': 'EMERGENCY CONTACTS',\n 'attend.open.speak': 'Speak',\n 'attend.open.listen': 'Listen',\n 'attend.open.speakAndListen': 'Speak and Listen',\n 'attend.open.systemAttendants': 'System Attendants',\n 'attend.open.errorNoPoints': 'IT WAS NOT POSSIBLE TO FIND COORDINATES FOR THIS USER. \\n PLEASE, WAIT A FEW MOMENTS AND THEN CLICK IN THE UPTADE LOCATION BUTTON\\n',\n 'attend.open.closedCall': 'Call Ended',\n 'attend.open.years': 'years',\n 'attend.open.saveButton': 'SAVE CALL',\n 'attend.open.noAudioAlarm': 'This call doesn\\'t have audio 🙉',\n 'attend.open.callUser': 'RETURN TO USER',\n 'attend.open.extensionCall': 'EXTENSION CALLS',\n 'attend.open.emptyMessage': 'EMPTY MESSAGE',\n 'attend.open.replyMessage': 'REPLY',\n 'attend.open.replyCancel': 'CANCEL',\n 'attend.open.connecting': 'Connecting...',\n 'attend.open.stillConnecting': 'We are still trying to connect, you can hangup if you want',\n 'attend.open.calling': 'Making the call, wait a little bit',\n 'attend.open.callConnected': 'Call connected',\n 'attend.open.callNotConnected': 'No connection with the call server',\n 'attend.open.toSaveTooltip': 'To save',\n 'attend.open.toSaveTooltipInstruction': 'Finish the call and choose the Attend Type',\n 'attend.modal.emergencyCall': 'Emergency Call',\n 'attend.tag.emergencyCall': 'Emergency Call',\n 'attend.tag.testCall': 'Test Call',\n 'attend.tag.techSupport': 'Support Call',\n 'attend.tag.accidentalCall': 'Accidental Call',\n 'attend.tag.commFail': 'Communication Fail',\n 'attend.warning.cancel': 'Warning messages disabled.',\n 'attend.warning.sent': 'Warning messages sent.',\n 'attend.warning.sendingIn': 'Sending warning messages in {seconds} seconds...',\n 'attend.warning.cancelMessages': 'Cancel messages',\n 'attendant.form.phone': 'Telephone',\n 'attendant.form.passwordChanged': 'Your password was changed, please relogin.',\n 'attendant.form.passwordHeader': 'PASSWORD',\n 'attendant.form.changePassword': 'Change Password',\n 'attendant.form.unauthorized': 'You don\\'t have authorization to view this page',\n 'attendant.form.editAttendantHeader': 'EDIT ATTENDANT',\n 'attendant.form.addAttendantHeader': 'ADD ATTENDANT',\n 'attendant.form.changePassModalHeader': 'Password Change',\n 'attendant.list.attendAdd': 'ATTENDANT',\n 'attendant.error.invalidEmail': 'Invalid Email',\n 'attendant.error.emailUsed': 'This Email is already being used, please use another',\n 'attendant.error.usernameIncorrect': 'This field must be written in the format \"name\" or \"name.othername\"',\n 'attendant.error.usernameUsed': 'Username already registered, please use another',\n 'attendant.error.passwordEightCharacters': 'This field must have at lease 8 characters',\n 'attendant.error.passwordMustBeEqual': 'Field must match the password field',\n 'attendant.error.oldPassIncorrect': 'Your old password was incorrect',\n 'management.header': 'MANAGEMENT',\n 'management.attendantsOption': 'ATTENDANTS',\n 'management.alarmsOption': 'ALARMS',\n 'management.monitoringOption': 'MONITORING',\n 'management.companiesOption': 'COMPANIES',\n 'management.trackersOption': 'TRACKERS',\n 'management.iot.header': 'Internet of Things Devices',\n 'management.iot.lastEntry': 'Last Entry',\n 'alarms.addAlarm': 'ALARM',\n 'alarms.name': 'Name',\n 'alarms.code': 'Code',\n 'alarms.priority': 'Priority',\n 'alarms.editHeader': 'EDIT ALARM',\n 'alarms.addHeader': 'ADD ALARM',\n 'alarms.informations': 'INFORMATION',\n 'companies.addCompany': 'COMPANY',\n 'companies.addPerson': 'STAFF',\n 'companies.edit': 'EDIT',\n 'companies.delete': 'DELETE',\n 'companies.editHeader': 'EDIT COMPANY',\n 'companies.addHeader': 'ADD COMPANY',\n 'companies.name': 'Name',\n 'companies.remove': 'REMOVE COMPANY',\n 'companies.form.ranges': 'ACCOUNT RANGES',\n 'companies.form.maxAccount': 'Max account',\n 'companies.form.minAccount': 'Min account',\n 'companies.form.addRange': 'Add Range',\n 'companies.error.minMax': 'Minimum account should not be higher than maximum account',\n 'companies.error.noMinOrMax': 'Minimum or maximum account not sent (empty)',\n 'companies.error.rangeUsed': 'This account range is already being used or it is within another range',\n 'company.delete.warningHeader': 'WARNING',\n 'company.delete.warningMsg': 'To completely remove a company, first, you need to inactivate it\\'s staff and exclude all users (or change their company).',\n 'company.delete.warning': 'Have you done those actions? Do you want to continue?',\n 'company.delete.deleteUsers': 'Delete staff accesses (login, email)?',\n 'company.delete.loading': 'Please, wait...',\n 'company.delete.success': 'Company removed successfully!',\n 'company.delete.errorTitle': 'OOPS! An error occurred when removing this company.',\n 'company.delete.errorHasClients': 'This company still has Users. Also check inactive users.',\n 'company.delete.errorHasUsers': 'This company still has active staff members.',\n 'companies.addPersonHeader': 'ADD STAFF',\n 'companies.editPersonHeader': 'EDIT STAFF',\n 'config.viewAttendantsList': 'View Attendants List',\n 'config.viewContactsList': 'View Contacts List',\n 'config.openAlarms': 'Open Alarms (Screen)',\n 'config.globalOptHeader': 'ADMINISTRATIVE CONFIGURATION',\n 'config.micandaudioconfig': 'MICROPHONE AND AUDIO CONFIGURATION',\n 'config.viewResume': 'View Alarms Summary',\n 'config.viewClosedAttends': 'View Closed Alarms',\n 'config.viewQuantityAttends': 'View Number of Alarms Card',\n 'config.viewGraphicCards': 'View Graphics Card',\n 'config.dashboard': 'Dashboard',\n 'config.localOptHeader': 'DASHBOARD CONFIGURATION',\n 'config.twoGlobalUncheck': 'You can\\'t disable two global attends settings. Pleae enable one.',\n 'config.saveError': 'Errors occurred while saving',\n 'config.saveSuccess': 'Settings saved!',\n 'config.openTickets': 'Open Alarms (Screen)',\n 'config.audioEcho': 'Echo test',\n 'config.hangupAudio': 'Hangup Test',\n 'config.makeAudio': 'Test',\n 'reports.generateReport': 'Generate Report',\n 'reports.selectYear': 'Select the Year',\n 'reports.reportOf': 'REPORT OF',\n 'reports.selectedcode': 'SELECTED CODE',\n 'reports.attendHeader': 'CALLS',\n 'reports.ofType': 'BY TYPE',\n 'reports.accountHeader': 'ACCOUNT',\n 'reports.generatePDF': 'Generate PDF',\n 'reports.company': 'Company',\n 'reports.client': 'User',\n 'reports.account': 'Account',\n 'reports.alarm': 'Alarm',\n 'reports.category': 'Category',\n 'reports.event': 'Event',\n 'reports.restoration': 'Restoration',\n 'reports.date': 'Date',\n 'reports.opening': 'Open Time',\n 'reports.closure': 'Close Time',\n 'reports.duration': 'Duration',\n 'reports.attendant': 'Attendant',\n 'reports.solvedBy': 'Solved by',\n 'reports.emptyReport': 'Empty report',\n 'reports.reportButton': 'Report',\n 'reports.graphicButton': 'Graphic',\n 'reports.page.header': 'REPORTS',\n 'reports.page.usersRepHeader': 'Users',\n 'reports.page.alarmsRepHeader': 'Alarms',\n 'reports.page.attendantsRepHeader': 'Attendants',\n 'reports.page.attByAnywhereRepHeader': 'Answered by Anywhere',\n 'reports.page.lengthOfStayRepHeader': 'Days Active',\n 'reports.page.attsByPeriodRepHeader': 'Alarms by Period',\n 'reports.page.totalPlansRepHeader': 'Total Plans',\n 'reports.page.clientsByPlanRepHeader': 'Users by Plan',\n 'reports.page.monthlyClientRepHeader': 'Monthly User Update',\n 'reports.page.totalClientsRepHeader': 'Total Users by Month',\n 'reports.page.clientByCompany': 'Total Users by Company',\n 'reports.page.attendTagsRepHeader': 'Calls by Type',\n 'reports.clients.selectClient': 'Select the User',\n 'reports.clients.totalAlarms': 'TOTAL ALARMS',\n 'reports.alarms.selectPriority': 'Select the Priority',\n 'reports.alarms.selectAlarmCode': 'Select the Alarm Code',\n 'reports.alarms.alarmsOf': 'ALARMS OF',\n 'reports.attendants.selectAttendant': 'Select the Attendant',\n 'reports.attendants.attendsOf': 'ALARMS OF',\n 'reports.attendants.group': 'GROUP',\n 'reports.attendants.totalAttends': 'TOTAL OF ALARMS',\n 'reports.plans.selectPlan': 'Select the Plan',\n 'reports.anywhere.answeredHeader': 'ALARMS ANSWERED BY ANYWHERE',\n 'reports.anywhere.numberOfAttends': 'Number of Alarms',\n 'reports.length.lengthOfStayHeader': 'USERS ACTIVE DAYS',\n 'reports.length.daysLenght': 'Number of Days',\n 'reports.length.createdDate': 'Created Date',\n 'reports.length.deletedDate': 'Deleted Date',\n 'reports.length.activeDays': 'Active Days',\n 'reports.attends.attendsHeader': 'ATTENDS',\n 'reports.attends.hasAudio': 'Audio',\n 'reports.attends.selectTag': 'Select the Call Type',\n 'reports.userTracking.header': 'MONTHLY USER UPDATE',\n 'reports.userTracking.month': 'Month',\n 'reports.userTracking.addedUsers': 'Added Users',\n 'reports.userTracking.deletedUsers': 'Removed Users',\n 'reports.userTracking.totalMonth': 'Total Monthly Users',\n 'reports.userTracking.added': 'Added',\n 'reports.userTracking.inactivated': 'Inactivated',\n 'reports.userTracking.reactivated': 'Reactivated',\n 'reports.userTracking.disabled': 'Disabled',\n 'reports.userTotal.header': 'TOTAL USERS BY MONTH',\n 'reports.userTotal.month': 'Month',\n 'reports.userTotal.totalMonth': 'Total of Users Monthly',\n 'reports.totalPlans.header': 'TOTAL PLANS VALUE',\n 'reports.totalPlans.totalHeader': 'Total',\n 'reports.totalPlans.plan': 'Plan',\n 'reports.totalPlans.numberOfUsers': 'Number of Users',\n 'reports.totalPlans.totalValue': 'Total Value',\n 'reports.totalPlans.chartHeader': 'TOTAL PLANS VALUE',\n 'reports.planDetails.header': 'PLAN DETAILS',\n 'reports.planDetails.value': 'Value',\n 'reports.planDetails.plan': 'Plan',\n 'reports.companies.header': 'TOTAL USERS BY COMPANY',\n 'reports.companies.name': 'Company name',\n 'reports.companies.id': 'Identification',\n 'reports.companies.total': 'User total',\n 'monitoring.header': 'MONITORING',\n 'monitoring.selectWhoMessage': 'Chose below who do you want to make your monitoring',\n 'monitoring.errorTest': 'You are in the Trial version, this option is disabled.',\n 'monitoring.anywhereName': 'Name',\n 'monitoring.solicitationDate': 'Solicitation date',\n 'monitoring.noCompanySelected': 'No company selected',\n 'monitoring.historic': 'HISTORIC',\n 'monitoring.approvalDate': 'Approval date',\n 'monitoring.deletionDate': 'Deletion date',\n 'monitoring.modalMessage': 'When requesting the monitoring of {setMasterName}, once it is accepted, $: 45,00 will be charged for each active customer on this Contactto.care. \\nDo you want to do this? \\nNOTE: IF YOUR CONTACTTO.CARE DOES NOT USE PLANS, IGNORE THIS MESSAGE',\n 'monitoring.pending': 'Pending',\n 'monitoring.approved': 'Approved',\n 'monitoring.deleted': 'Deleted',\n 'monitoring.noApproval': 'No approval',\n 'activate.header': 'ACTIVATE CONTACTTO.CARE',\n 'activate.registrationData': 'REGISTRATION DATA',\n 'activate.zipCode': 'Zip Code',\n 'activate.street': 'Street',\n 'activate.number': 'Number',\n 'activate.district': 'District',\n 'activate.complement': 'Complement',\n 'activate.city': 'City',\n 'activate.state': 'State',\n 'activate.country': 'Country',\n 'activate.actions': 'ACTIONS',\n 'activate.sign': 'SIGN',\n 'date.startDate': 'Start Date',\n 'search.header': 'SEARCH RESULTS FOR',\n 'search.alarms': 'Alarms',\n 'search.clients': 'Users',\n 'search.contacts': 'Contacts',\n 'search.transmitters': 'Sensors',\n 'search.attendants': 'Attendants',\n 'search.noResult': 'No results found',\n 'date.endDate': 'End Date',\n 'reminder.header': 'REMINDER FOR THE ALARM ',\n 'reminder.reminderAttendant': 'Attendant',\n 'reminder.reminderTime': 'Requested time',\n 'reminder.reminderOpening': 'Start date',\n 'reminder.reminderTitle': 'Reminder',\n 'reminder.reminderReport': 'Report',\n 'reminder.reminderContactList': 'Contact List',\n 'reminder.timer': 'Timer',\n 'reminder.informAll': 'Inform all operators?',\n 'reminder.warning': 'Please, type a reminder and choose a timer.',\n 'reminder.reminderWarning': 'Please, type your report before closing.',\n 'reminder.btn': 'Create',\n 'reminder.closeBtn': 'CLOSE',\n 'reminder.rescheduleBtn': 'RESCHEDULE',\n 'attend.reminder.createReminder': 'Create Reminder',\n 'attend.reminder.message': 'Thank you! \\n Your reminder has been generated! Afther the time is up, you will be notified. \\n You can close this alarm and do another task.',\n 'attend.reminder.openAttendant': 'Opened by',\n 'attend.reminder.closeAttendant': 'Closed by',\n 'attend.reminder.title': 'Reminder',\n 'attend.reminder.opening': 'Open Time',\n 'attend.reminder.close': 'Close Time',\n 'attend.reminder.requestedTime': 'Requested Time',\n 'attend.reminder.minutes': 'Minutes',\n 'attend.reminder.report': 'Report',\n 'attend.reminder.cardHeader': 'REMINDER NUMBER {reminderNumber}',\n 'attend.filter.header': 'FILTER ALARMS',\n 'attend.filter.button1': 'FILTER',\n 'attend.filter.button2': 'ALARMS',\n 'attend.filter.isTest': 'Test Users',\n 'attend.filter.notTest': 'Normal Users',\n 'attend.filter.hasAudio': 'Has audio',\n 'attend.filter.company': 'Company',\n 'attend.filter.attendTag': 'Call Type',\n 'attend.filter.filteredBy': 'Filtered by',\n 'attend.filter.id': 'Identification',\n 'attend.filter.noAudio': 'No Audio',\n 'history.header': 'VIEW LOG HISTORY OF',\n 'history.selectContact': 'Select the desired Contact',\n 'history.user': 'User',\n 'history.contacts': 'Contacts',\n 'history.transmitters': 'Sensors',\n 'history.type': 'Type',\n 'history.date': 'Date',\n 'history.modifiedBy': 'Modified By',\n 'history.transmitter': 'Sensor',\n 'history.expand': '+ Expand',\n 'history.hide': '- Hide',\n 'history.before': 'Before',\n 'history.after': 'After',\n 'history.actionType.changed': 'Change',\n 'history.actionType.deleted': 'Deletion',\n 'history.actionType.created': 'Creation',\n 'history.contact': 'Contact',\n 'history.contact.phone': 'Phone',\n 'history.contact.action': 'Action',\n 'history.empty': 'Empty',\n 'history.changedField': 'Changed Field',\n 'error.component.title': 'Oops! It seems that an error has occurred',\n 'error.component.errorcodetitle': 'Error code',\n 'error.component.infotitle': 'Information',\n 'chat.error.unavailable': 'This option is unavailable at the moment.',\n 'chat.error.toActivate': 'To activate the chat, logout of the platform and access it again.',\n 'chat.error.loggingOut': 'To logout, use the top-right menu - where your name is - and click on \"Logout\".',\n 'chat.error.supportEmail': 'If the chat remains unavailable, send an email to suporte@tecnosenior.zendesk.com detailing the issue.',\n 'return.makeCallLabel': 'Return to user',\n 'return.makeCallButton': 'MAKE CALL',\n 'return.firstHangupLabel': 'Wait 3 to 4 rings and hangup this call',\n 'return.firstHangupSubtitle': 'If you didn\\'t hear a ring or a busy signal, click back, wait a few moments, and try again',\n 'return.firstHangupButton': 'HANGUP',\n 'return.waitSeconds': 'Waiting {duration} seconds...',\n 'return.waitToneLabel': 'Wait until the end of the tone',\n 'return.sendPasswordButton': 'SEND PASSWORD',\n 'return.ongoingCallLabel': 'Ongoing Call',\n 'return.reSendPasswordButton': 'SEND PASSWORD AGAIN',\n 'return.hangupCall': 'HANGUP',\n 'ata.header.port': 'Port',\n 'ata.status.unknown': 'Unknown',\n 'ata.status.unreachable': 'Unreachable',\n 'extension.headerTitle': 'EXTENSION CALLS',\n 'extension.headerTitleReminder': 'EXTENSION CALLS - REMINDER FOR THE ALARM',\n 'extension.clientInfo': 'USER INFORMATION',\n 'extension.client': 'User',\n 'extension.phone': 'Phone',\n 'extension.select': 'SELECT',\n 'extension.selectClientContactPhone': 'SELECT CONTACT PHONE',\n 'extension.own': 'Himself/Herself',\n 'extension.makeCallLabel': 'CALLING',\n 'extension.contact': 'Emergency Contact',\n 'extension.noContactPhone': 'This user does not have a contact phone',\n 'extension.makeCall': 'MAKE CALL',\n 'extension.custom': 'Extra number',\n 'extension.back': 'BACK',\n 'extension.softphoneTitle': 'PHONE KEYBOARD',\n 'extension.softphoneOpen': 'OPEN',\n 'extension.softphoneClose': 'CLOSE',\n 'extension.softphoneInput': 'Type the desired number',\n 'extension.softphoneConfirm': 'Confirm'\n },\n pt: {\n 'app.activate.message': 'Ativando esta conta, seus usuários atuais passarão a ser cobrados. Continuar?',\n 'app.currency': 'R$',\n 'toggle.button.inactives': 'Inativos',\n 'logs.createdDate': 'Data de criação',\n 'logs.createdBy': 'Criado por',\n 'logs.modifiedDate': 'Data de modificação',\n 'logs.modifiedBy': 'Modificado por',\n 'attendant.attendantsHeader': 'CONTATOS DE SISTEMA',\n 'attendant.userName': 'Nome do Atendente',\n 'attendant.group': 'Grupo',\n 'attendant.country': 'País',\n 'paginate.of': 'de',\n 'general.firstName': 'Nome',\n 'general.lastName': 'Sobrenome',\n 'general.yes': 'Sim',\n 'general.no': 'Não',\n 'general.admin': 'Administrador',\n 'general.manager': 'Gerente',\n 'general.operator': 'Operador',\n 'general.owner': 'Proprietário',\n 'general.actionsHeader': 'AÇÕES',\n 'general.personalInfoHeader': 'INFORMAÇÕES PESSOAIS',\n 'general.highPriority': 'Alta Prioridade',\n 'general.mediumPriority': 'Média Prioridade',\n 'general.lowPriority': 'Baixa Prioridade',\n 'general.sysPriority': 'Alarme de Sistema',\n 'general.allPriorities': 'Todas as Prioridades',\n 'general.columnView': 'Visualizar',\n 'general.columnEdit': 'Editar',\n 'general.columnDeactivate': 'Desativar',\n 'general.columnRecover': 'Recuperar',\n 'general.columnDelete': 'Deletar',\n 'general.clientColumn': 'Usuário',\n 'general.attendant': 'Atendente',\n 'general.resolvedBy': 'Resolvido por',\n 'general.alarmType': 'Tipo de Alarme',\n 'general.opening': 'Abertura',\n 'general.closure': 'Fechamento',\n 'general.accountNumber': 'Número da conta',\n 'general.fullName': 'Nome',\n 'general.cellphone': 'Celular',\n 'general.saveButton': 'SALVAR',\n 'general.add': 'ADICIONAR',\n 'general.allPlans': 'Todos os Planos',\n 'general.country': 'País',\n 'general.other': 'Outro',\n 'general.emptyList': 'Lista Vazia',\n 'general.company': 'Empresa',\n 'error.atLeastTwoChar': 'Campo deve possuir pelo menos dois caracteres',\n 'error.cellPhoneNumbers': 'Campo deve possuir 11 números',\n 'inputContainer.username': 'Nome de usuário: ',\n 'inputContainer.firstName': 'Nome: ',\n 'inputContainer.lastName': 'Sobrenome: ',\n 'inputContainer.mobile': 'Celular: ',\n 'inputContainer.password': 'Senha: ',\n 'inputContainer.newPassword': 'Nova Senha',\n 'inputContainer.confirmPassword': 'Confirmar Senha: ',\n 'inputContainer.oldPassword': 'Senha Antiga',\n 'inputContainer.accountNumber': 'Número da conta: ',\n 'inputContainer.birthdate': 'Data de nascimento: ',\n 'inputContainer.equipment': 'Equipamento: ',\n 'inputContainer.typeOfAccount': 'Tipo de Conta: ',\n 'inputContainer.healthPlan': 'Plano de Saúde: ',\n 'inputContainer.limitations': 'Limitações: ',\n 'inputContainer.medications': 'Medicamentos: ',\n 'inputContainer.removalPlan': 'Plano de Remoção: ',\n 'inputContainer.observations': 'Observações: ',\n 'inputContainer.state': 'Estado: ',\n 'inputContainer.street': 'Logradouro: ',\n 'inputContainer.number': 'Número: ',\n 'inputContainer.complement': 'Complemento: ',\n 'inputContainer.district': 'Bairro: ',\n 'inputContainer.zipCode': 'CEP: ',\n 'inputContainer.city': 'Cidade: ',\n 'inputContainer.accountPhone': 'Número do equipamento: ',\n 'inputContainer.useVoIP': 'Usa VoIP:',\n 'inputContainer.contactPhone': 'Telefone de contato {number}: ',\n 'inputContainer.company': 'Empresa: ',\n 'inputContainer.gender': 'Sexo: ',\n 'inputContainer.relationship': 'Relação: ',\n 'inputContainer.priority': 'Prioridade: ',\n 'inputContainer.account': 'Conta: ',\n 'inputContainer.attendId': 'Identificação: ',\n 'inputContainer.appNumber': 'Número App:',\n 'inputContainer.internalComments': 'Comentários Internos:',\n 'dashboard.open.header': 'ATENDIMENTOS ABERTOS',\n 'dashboard.open.noAttends': 'Nenhum atendimento aberto',\n 'dashboard.open.attendant': 'Sem Atendente',\n 'dashboard.closed.header': 'ÚLTIMOS {attendsLength} ATENDIMENTOS',\n 'dashboard.closed.noAttends': 'Nenhum atendimento fechado',\n 'dashboard.tabs.header': 'RESUMO DOS ATENDIMENTOS',\n 'dashboard.tabs.quantity': 'QUANTIDADE',\n 'dashboard.tabs.bypriority': 'POR PRIORIDADE',\n 'dashboard.tabs.priority': 'PRIORIDADE',\n 'dashboard.tabs.subhigh': 'ALTA',\n 'dashboard.tabs.submedium': 'MEDIA',\n 'dashboard.tabs.sublow': 'BAIXA',\n 'dashboard.tabs.subsystem': 'SISTEMA',\n 'dashboard.tabs.userstotal': 'TOTAL USUÁRIOS',\n 'dashboard.card.quantity': 'Quantidade de Atendimentos',\n 'dashboard.card.attendsPriority': 'Número de Atendimentos por Prioridade',\n 'dashboard.card.clientsMonthly': 'Total de Usuários por Mês',\n 'card.alarms.month': ' Mês: ',\n 'card.alarms.totalAtt': ' Total de Atendimentos: ',\n 'card.alarms.totalVoice': ' Chamadas com Voz: ',\n 'sidebar.dashboard': 'Painel',\n 'sidebar.users': 'Usuários',\n 'sidebar.attends': 'Atendimentos',\n 'sidebar.reports': 'Relatórios',\n 'sidebar.profile': 'Meu perfil',\n 'sidebar.manage': 'Gerenciar',\n 'sidebar.config': 'Configurações',\n 'sidebar.logout': 'Sair',\n 'header.user.edit': 'Editar',\n 'header.user.logout': 'Sair',\n 'header.user.messages': 'Avisos',\n 'header.icon.connection': 'Conexão com o servidor interrompida, aguarde 30 segundos ou recarregue a página.',\n 'header.icon.blockedPhone': 'Seu microfone está bloqueado, por favor desbloqueie seu microfone. Clique no ícone para saber mais.',\n 'header.icon.activePhone': 'O nome do seu microfone é: {microphone}. Se este não é seu microfone, clique no ícone.',\n 'header.searchbar.search': 'Buscar',\n 'header.trial.info': ' VERSÃO DE TESTES ',\n 'header.trial.sign': ' ASSINAR ',\n 'header.domain.add': 'ADICIONAR DOMÍNIO',\n 'call.button.answer': 'ATENDER',\n 'call.button.resume': 'RETOMAR',\n 'call.button.view': 'VISUALIZAR',\n 'call.button.details': 'DETALHES',\n 'call.button.close': 'FECHAR',\n 'modal.confirm.defaultMessage': 'Tem certeza que deseja realizar esta ação?',\n 'modal.confirm.yes': 'SIM',\n 'modal.confirm.no': 'NÃO',\n 'modal.confirm.reminderClose': 'Você deseja fechar esta janela de lembrete?',\n 'modal.notification.solveAttend': 'Fechar Atendimento',\n 'form.button.cancel': 'Cancelar',\n 'form.button.save': 'Salvar',\n 'form.button.exclude': 'Excluir',\n 'form.info.save': 'Você precisa preencher as seguintes informações para poder salvar:',\n 'form.info.contact_personal': 'Pessoal - Nome, sobrenome, prioridade, relação e email',\n 'form.info.contact_phone': 'Telefone - Pelo menos um primário',\n 'form.info.client_personal': 'Informações pessoais - Número da conta, nome, sobrenome, data de nascimento',\n 'form.info.client_address': 'Endereço - Logradouro, número, bairro, cidade, CEP',\n 'form.info.client_phone_normal': 'Telefone - Telefone do equipamento',\n 'form.info.client_phone_ihelp': 'Telefone ou IMEI - Telefone do equipamento OU IMEI do equipamento',\n 'form.info.client_phone_sosapp': 'Telefone e Número do App - Telefone do equipamento E Número do App',\n 'client.page.header': 'USUÁRIOS',\n 'client.page.headerSubtitle': 'Filtrados por',\n 'client.page.addAcc': 'CONTA',\n 'client.page.impAcc1': 'IMPORTAR',\n 'client.page.impAcc2': 'CONTA',\n 'client.page.undoFilt1': 'DESFAZER',\n 'client.page.undoFilt2': 'FILTRO',\n 'client.page.editFilt': 'EDITAR FILTRO',\n 'client.page.filter1': 'FILTRAR',\n 'client.page.filter2': 'USUÁRIOS',\n 'client.page.columnAccount': 'Conta',\n 'client.page.columnTracker': 'Rastreador',\n 'client.page.columnView': 'Visualizar',\n 'client.page.columnContacts': 'Contatos',\n 'client.page.columnAlarms': 'Alarmes',\n 'client.page.columnTransmitters': 'Transmissores',\n 'client.page.columnEdit': 'Editar',\n 'client.page.columnDeactivate': 'Desativar',\n 'client.page.columnRecover': 'Recuperar',\n 'client.page.company': 'Empresa',\n 'client.page.name': 'Nome',\n 'client.page.lastName': 'Sobrenome',\n 'client.page.equipment': 'Equipamento',\n 'client.page.noTracker': 'Sem Rastreador',\n 'client.form.primaryUserInfo': 'Informações pesoais usuário - 1',\n 'client.form.secondaryUserInfo': 'Informações pesoais usuário - 2',\n 'client.form.personalInfoHeader': 'INFORMAÇÕES DA CONTA',\n 'client.form.editHeader': 'EDITAR USUÁRIO',\n 'client.form.addHeader': 'ADICIONAR USUÁRIO',\n 'client.form.testOpt': 'Usuário de testes: ',\n 'client.form.equipmentError': 'Este IMEI já está sendo utilizado em outro lugar.',\n 'client.form.equipmentErrorAccount': 'Este IMEI já está sendo utilizado pela conta {clientAccount}.',\n 'client.form.addressHeader': 'ENDEREÇO',\n 'client.form.noCompany': 'Sem empresa',\n 'client.form.select': 'Selecionar',\n 'client.form.male': 'Masculino',\n 'client.form.female': 'Feminino',\n 'client.form.notApplicable': 'Não Aplicável',\n 'client.form.placeholderText': 'Este texto não aparecerá para os operadores durante o atendimento.',\n 'client.error.accountNumber': 'Campo deve possuir pelo menos 4 caracteres',\n 'client.error.accountExists': 'O número de conta já existe',\n 'client.error.invalidMail': 'Email inválido',\n 'client.error.atLeastTwoChar': 'Campo deve possuir pelo menos dois caracteres',\n 'client.error.firstCharUppercase': 'A primeira letra precisa ser maiúscula',\n 'client.error.atLeastOneNum': 'Campo deve possuir pelo menos um número',\n 'client.error.appNumber': 'Campo deve possuir sete caracteres',\n 'client.error.dateFormat': 'Campo deve estar no formato dd/mm/aaaa',\n 'client.error.invalidCellphone': 'Número de celular inválido',\n 'client.error.cellPhoneNumbers': 'Campo deve possuir 11 números',\n 'client.error.cellPhoneNumbersMU': 'Campo deve possuir 11 números',\n 'client.error.regularPhones': 'Campo deve possuir 10 ou 11 números',\n 'client.error.regularPhonesMU': 'Campo deve possuir 10 ou 11 números',\n 'client.error.phoneNumbersGB': 'Campo deve possuir 12 números',\n 'client.error.zipCode': 'Campo deve possuir 8 números',\n 'client.error.cpfInvalidLen': 'O cpf precisa ter 11 dígitos',\n 'client.error.cpfInvalid': 'Número de cpf inválido',\n 'client.error.accountOutOfRange': 'O número de conta está fora da faixa de contas desta empresa',\n 'client.error.ataExists': 'O número deste ATA (VoIP) já está sendo utilizado em outro lugar',\n 'client.formMessage.equipment': 'Cliente está marcado com {equipmentName} mas está com um celular.\\n\\nSalvar mesmo assim?',\n 'client.formMessage.testClient': 'Este cliente está marcado como teste, a partir de agora as chamadas dele não abrirão canal de voz, até que esta opção seja desmarcada.\\n\\nSalvar mesmo assim?',\n 'client.formMessage.voip': 'Este usuário está marcado como VoIP, certifique-se que este equipamento está conectado a um equipamento do tipo ATA para poder realizar chamadas de emergência.',\n 'client.detail.mainHeader': 'VISUALIZAR INFORMAÇÕES ',\n 'client.detail.testUser': 'Usuário de testes',\n 'client.detail.accountType': 'Tipo de Conta',\n 'client.detail.doesNotHave': 'Não Possui',\n 'client.detail.testUserYes': 'Sim',\n 'client.detail.testUserNo': 'Não',\n 'client.detail.birthdate': 'Data de nascimento',\n 'client.detail.observations': 'Observações',\n 'client.detail.healthPlan': 'Plano de saúde',\n 'client.detail.limitations': 'Limitações',\n 'client.detail.medications': 'Medicamentos',\n 'client.detail.removalPlan': 'Plano de remoção',\n 'client.detail.equipment': 'Equipamento',\n 'client.detail.company': 'Empresa', \n 'client.detail.street': 'Logradouro',\n 'client.detail.number': 'Número',\n 'client.detail.complement': 'Complemento',\n 'client.detail.district': 'Bairro',\n 'client.detail.zipCode': 'CEP',\n 'client.detail.city': 'Cidade',\n 'client.detail.state': 'Estado',\n 'client.detail.accountPhone': 'Telefone do Equipamento',\n 'client.detail.contactPhone': 'Telefone de Contato',\n 'client.detail.accountNumber': 'Número de Conta',\n 'client.detail.indepCall': 'Realizar chamada independente',\n 'client.detail.name': 'Nome completo',\n 'client.detail.gender': 'Sexo',\n 'client.detail.age': 'Idade',\n 'client.tracker.mapHeader': 'MAPA',\n 'client.tracker.inNumbers': 'Números de Entrada',\n 'client.tracker.inboundNumber': 'Número de Entrada',\n 'client.tracker.inboundTooltip': 'Ativa/Desativa atendimento automático. Caso seja desativado, será necessário o usuário pressionar a tecla de SOS para atender.',\n 'client.tracker.geofenceMapHeader': 'MAPA DE ZONAS DE SEGURANÇA',\n 'client.tracker.geofenceMode': 'Modo',\n 'client.tracker.geofenceRadius': 'Raio',\n 'client.tracker.meters': 'Metros',\n 'client.tracker.toKnowMore': 'PARA SABER MAIS',\n 'client.tracker.clickHere': ' CLIQUE AQUI ',\n 'client.tracker.begining': 'Início: ',\n 'client.tracker.end': 'Fim: ',\n 'client.tracker.search': 'Procurar',\n 'client.tracker.trackerFrom': 'RASTREADOR DE ',\n 'client.tracker.history': 'Histórico',\n 'client.tracker.programming': 'Programação',\n 'client.tracker.geofences': 'Zonas de Segurança',\n 'client.tracker.geofence': 'Zona de Segurança',\n 'client.tracker.fdmode': 'Modo de detecção de quedas',\n 'client.tracker.voipcalling': 'Fazer chamadas por VoIP (Voice over IP)',\n 'client.tracker.sosbreadcrumb': 'Enviar posição durante SOS a cada 30 segundos',\n 'client.tracker.sosbreadcrumbint': 'Intervalo de posição durante SOS',\n 'client.tracker.autopost': 'Intervalo de postagem de localização',\n 'client.tracker.vin1': 'Telefone permitido para receber ligações 1',\n 'client.tracker.vin2': 'Telefone permitido para receber ligações 2',\n 'client.tracker.simplified': 'Dados simplificados',\n 'client.tracker.disabled': 'Desabilitado',\n 'client.tracker.enabled': 'Habilitado',\n 'client.tracker.highSensitivity': 'Sensitividade Alta',\n 'client.tracker.mediumHighSensitivity': 'Sensitividade Média-Alta',\n 'client.tracker.normalSensitivity': 'Sensitividade Normal',\n 'client.tracker.enterPerimeter': 'Alerta na entrada do perímetro',\n 'client.tracker.exitPerimeter': 'Alerta na saída do perímetro',\n 'client.tracker.bothPerimeter': 'Alerta na entrada/saída do perímetro',\n 'client.tracker.seconds': 'Segundos',\n 'client.tracker.minutes': 'Minutos',\n 'client.tracker.saveSettings': 'Salvar Configurações',\n 'client.tracker.saveFence': 'Salvar Zona',\n 'client.tracker.latest': 'Última Posição',\n 'client.tracker.errorNoIMEI': 'ESTE USUÁRIO NÃO ESTÁ COM O IMEI CADASTRADO.\\n',\n 'client.tracker.errorNoData': 'NÃO HÁ DADOS PARA O DIA SELECIONADO.\\n\\n O RASTREADOR DEVE SER CONFIGURADO COM O SERVIDOR DO CONTACTTO.CARE.\\n\\n\\n',\n 'client.tracker.errorNoDataLatest': 'NÃO FORAM ENCONTRADOS DADOS.\\n\\n O RASTREADOR DEVE SER CONFIGURADO COM O SERVIDOR DO CONTACTTO.CARE.\\n\\n\\n',\n 'client.tracker.errorNoUser': 'ESTE USUÁRIO NÃO EXISTE',\n 'client.tracker.errorUnexpected': 'ERRO INESPERADO',\n 'client.tracker.errorNoSimpleToday': 'NÃO É POSSÍVEL PESQUISAR POR DADOS SIMPLIFICADOS PARA A DATA DE HOJE.\\n ESSA INFORMAÇÃO ESTÁ DISPONÍVEL APENAS PARA DIAS ANTERIORES.',\n 'client.tracker.errorEmptyPointsDates': 'SEM DADOS PARA AS DATAS ENTRE {startDate} AS {startHour} HORAS E {endDate} AS {endHour} HORAS',\n 'client.tracker.errorEmptyPointsHours': 'SEM DADOS PARA AS DATAS ENTRE {startDate} AS {startHour} HORAS E {endDate} AS {endHour} HORAS',\n 'client.tracker.errorEmptyPoint': 'ESTE DISPOSITIVO NÃO TEM DADOS PARA O DIA DE HOJE, VERIFIQUE A BATERIA DO SEU SISTEMA',\n 'client.tracker.ihelpNoData': 'NENHUM PONTO ACHADO PARA ESTE DISPOSITIVO. \\n VERIFIQUE SE ESTE RASTREADOR ESTÁ LIGADO',\n 'client.tracker.battery': 'Bateria',\n 'client.tracker.timestamp': 'Data',\n 'client.tracker.charging': 'Carregando',\n 'client.tracker.cellSignal': 'Sinal Celular',\n 'client.tracker.eventType': 'Tipo de Evento',\n 'client.tracker.searchAddress': 'Pesquise o endereço desejado',\n 'client.tracker.configsSaved': 'Configurações salvas com sucesso!',\n 'client.tracker.configsSent': 'Requisição enviada com sucesso!',\n 'client.tracker.igoConfigSaved': 'Configurações enviadas para o dispositivo. \\n Por favor, aguarde 5 minutos para que o equipamento seja atualizado.',\n 'client.tracker.location': 'Localização',\n 'client.tracker.updateLoc': 'Atualizar Localização',\n 'client.tracker.event': 'Evento',\n 'client.tracker.powerSav': 'Economia de Energia',\n 'client.tracker.voiceMon': 'Modo Escuta',\n 'client.tracker.ledInd': 'Desativar Indicador de LED',\n 'client.tracker.overspeed': 'Alarme de alta velocidade',\n 'client.tracker.fallDetection': 'Detecção de Quedas',\n 'client.tracker.gsmTooltip': 'Ativa/Desativa localização via GSM quando o satélite GPS não está disponível. Aumento do consumo de bateria.',\n 'client.tracker.powerSavTooltip': 'Ativa/Desativa modo de economia inteligente de energia. Ao desativar essa função, o dispositivo envia sua localização de acordo com o intervalo de postagem selecionado.',\n 'client.tracker.voiceMonTooltip': 'Ativa/Desativa modo escuta. Números cadastrados no dispositivo podem realizar chamadas silenciosas e ouvir o que está acontecendo com o dispositivo sem que seja indicada a chamada.',\n 'client.tracker.ledIndTooltip': 'Ativa/Desativa indicação dos LEDS, os LEDS laterais vão se apagar/acender, o dispositivo funciona normalmente.',\n 'client.tracker.fallDetectionTooltip': 'Ativa/Desativa detecção de quedas. Dispositivo vai avisar telefones cadastrados que ocorreu uma queda sem necessidade do botão ser pressionado.',\n 'client.tracker.autopostTooltip': 'Selecionar o intervalo de tempo para que o dispositivo enviará a sua localização. A configuração padrão do dispositivo é enviar a cada 3 minutos quando em movimento e a cada 10 minutos quando em repouso.',\n 'client.tracker.overspeedTooltip': 'Selecionar a velocidade desejada para ativar o alarme de alta velocidade ou Desligar essa função. Quando a velocidade for excedida, o dispositivo irá enviar SMS aos contatos cadastrados.',\n 'client.tracker.medicationTimer': 'Horário',\n 'client.tracker.medicationAck': 'Reconhecimento de Medicação',\n 'client.tracker.reminderActive': 'Lembrete Ativo',\n 'client.tracker.saveMed': 'Salvar Lembrete',\n 'client.tracker.medication': 'Lembrete',\n 'client.tracker.medicationOption': 'Programar Lembretes de medicamento',\n 'client.tracker.saveInbound': 'Salvar Telefones de Entrada',\n 'client.tracker.hour': 'Hora',\n 'client.tracker.sendTime': 'Data do ponto',\n 'client.tracker.gpsAccuracy': 'Precisão do GPS',\n 'client.tracker.geoNotConfigured': 'Por favor digite um endereço na barra de pesquisa para configurar a zona de segurança.',\n 'client.tracker.falldownActivate': 'Ativar detecção de quedas',\n 'client.tracker.motionActivate': 'Ativar detecção de movimento',\n 'client.tracker.noMotionActivate': 'Ativar detecção de inatividade',\n 'client.tracker.overspeedActivate': 'Ativar detecção excesso de velocidade',\n 'client.tracker.tiltAlertActivate': 'Ativar detecção de inclinação',\n 'client.tracker.sensitivity': 'Sensitividade',\n 'client.tracker.movmentActivationPeriod': 'Tempo para ativação (em segundos)',\n 'client.tracker.movementAlertCooldown': 'Tempo para envio entre alarmes (em segundos)',\n 'client.tracker.noMovementStaticPeriod': 'Tempo parado para detecção de inatividade (em segundos, entre 300 e 36000)',\n 'client.tracker.detectionSpeed': 'Velocidade para detecção (KM/h)',\n 'client.tracker.tiltAlertAngle': 'Limite de Ângulo (em Graus)',\n 'client.tracker.tiltTimeTreshold': 'Tempo parado para detecção de inclinação (em segundos, entre 10 e 3600)',\n 'client.tracker.date': 'Data',\n 'client.tracker.accuracy': 'Precisão',\n 'client.tracker.direction': 'Direção',\n 'client.tracker.altitude': 'Altitude',\n 'client.tracker.speed': 'Velocidade',\n 'client.tracker.signalStrength': 'Força do sinal',\n 'client.tracker.completeCharge': 'Carga completa',\n 'client.tracker.lastRead': 'Última leitura',\n 'client.tracker.alarmClock': 'Programar lembretes',\n 'client.tracker.reminder': 'Lembrete',\n 'client.tracker.medicationAudio': 'Não esqueça sua medicação!',\n 'client.tracker.appointmentAudio': 'Não esqueça seu compromisso!',\n 'client.tracker.noonAudio': 'São doze horas!',\n 'client.tracker.wakeUpAudio': 'É hora de despertar!',\n 'client.tracker.audioSelection': 'Seleção de Áudio',\n 'client.tracker.audioDuration': 'Duração do Áudio',\n 'client.tracker.daySelection': 'Repetir nos dias',\n 'client.tracker.saveReminder': 'Salvar Lembrete',\n 'client.tracker.monAbbrv': 'SEG',\n 'client.tracker.tueAbbrv': 'TER',\n 'client.tracker.wedAbbrv': 'QUA',\n 'client.tracker.thuAbbrv': 'QUI',\n 'client.tracker.friAbbrv': 'SEX',\n 'client.tracker.satAbbrv': 'SAB',\n 'client.tracker.sunAbbrv': 'DOM',\n 'client.import.importHeader': 'Insira um arquivo do tipo csv ou excel',\n 'client.import.importClick': ' clique ou arraste o arquivo',\n 'client.import.noFileSelected': ' Nenhum arquivo foi selecionado.',\n 'client.import.invalidExtension': ' Arquivo com extensão inválida.',\n 'client.import.standardFile': ' Baixar o formato padrão do ',\n 'client.import.help': 'As colunas com um * são obrigatórias',\n 'client.import.file': 'arquivo',\n 'client.import.cancel': 'CANCELAR',\n 'client.import.send': 'ENVIAR',\n 'client.importInfo.header': 'RESULTADO DA IMPORTAÇÃO',\n 'client.importInfo.clients': 'Clientes',\n 'client.importInfo.success': ' Importados com Sucesso: ',\n 'client.importInfo.notImported': ' Não Importados (erro): ',\n 'client.importInfo.line': 'Linha',\n 'client.importInfo.name': 'Nome',\n 'client.importInfo.account': 'Conta',\n 'client.importInfo.contacts': 'Contatos',\n 'client.importInfo.downloadReport': 'Faça o download do relatório',\n 'client.filter.first_name': 'Nome',\n 'client.filter.last_name': 'Sobrenome',\n 'client.filter.account': 'Conta',\n 'client.filter.group_id': 'Empresa',\n 'client.filter.equipment_ids': 'Usa Rastreador',\n 'client.filter.noGroup': 'Sem Empresa',\n 'client.modal.inactivateMsg': 'Você está inativando a conta {clientAccount}. Tem certeza que deseja realizar esta ação?',\n 'client.modal.reactivateMsg': 'Você está reativando a conta {clientAccount}, se não houver outro usuário com esta conta os caracteres extras vão desaparecer, caso contrário, os caracteres vão precisar serem removidos manualmente. Tem certeza que deseja realizar esta ação?',\n 'filter.header': 'FILTRAR USUÁRIOS',\n 'filter.useTracker': 'Usa Rastreador',\n 'filter.company': 'Empresa',\n 'filter.ignore': 'Ignorar',\n 'filter.btn': 'FILTRAR',\n 'contact.page.header': 'CONTATOS DE',\n 'contact.page.accountNumber': 'Número da conta',\n 'contact.page.addCont': ' CONTATO',\n 'contact.page.priority': 'Prioridade',\n 'contact.page.name': 'Nome',\n 'contact.page.phoneOne': 'Telefone 1',\n 'contact.page.phoneTwo': 'Telefone 2',\n 'contact.page.answered': 'Atendeu',\n 'contact.page.contacted': 'Contatado',\n 'contact.form.editHeader': 'EDITAR CONTATO DE',\n 'contact.form.addHeader': 'ADICIONAR CONTATO DE',\n 'contact.form.personal': 'PESSOAL',\n 'contact.form.account': 'Conta',\n 'contact.form.priority': 'Prioridade',\n 'contact.form.relationship': 'Relação',\n 'contact.form.hasKeys': 'Possui chaves',\n 'contact.form.contactInfo': 'CONTATO',\n 'contact.form.zipCode': 'CEP',\n 'contact.form.street': 'Logradouro',\n 'contact.form.district': 'Bairro',\n 'contact.form.number': 'Número',\n 'contact.form.complement': 'Complemento',\n 'contact.form.city': 'Cidade',\n 'contact.form.state': 'Estado',\n 'contact.form.addPhoneButton': 'Adicionar novo telefone',\n 'contact.form.actionsHeader': 'AÇÕES',\n 'contact.form.cancel': 'Cancelar',\n 'contact.form.save': 'Salvar',\n 'contact.form.phone': 'Telefone',\n 'contact.form.type': 'Tipo',\n 'contact.form.countryCode': 'Código País',\n 'contact.form.primary': 'Primário',\n 'contact.form.work': 'Trabalho',\n 'contact.form.home': 'Casa',\n 'contact.form.cellphone': 'Celular',\n 'contact.form.requestTracking': 'PODE SOLICITAR TRACKING:',\n 'contact.form.requestTrackingMsg': 'Pode solicitar o comando track por sms para receber a última localização do sistema',\n 'contact.form.isContractor': 'Contratante',\n 'contact.form.isFamily': 'Familiar Administrador',\n 'contact.error.email': 'email digitado não está correto',\n 'contact.error.twoPrimaries': 'Este contato possui dois telefones primários',\n 'contact.error.familyAdmExists': 'Já existe outro contato como familiar administrador',\n 'contact.error.noPrimary': 'Este contato não possui telefones primários',\n 'contact.detail.mainHeader': 'VISUALIZAR INFORMAÇÕES DO CONTATO DE',\n 'transmitters.zone': 'Zona: ',\n 'transmitters.description': 'Descrição: ',\n 'transmitter.form.selectUser': 'Utilizar para o usuário 2',\n 'transmitters.details.header': 'DETALHES DO TRANSMISSOR',\n 'transmitter.detail.identifier': 'Identificador',\n 'transmitter.detail.description': 'Descrição',\n 'transmitter.detail.observations': 'Observações',\n 'transmitter.error.zone': 'Campo precisa de 3 caracteres',\n 'transmitters.detail.useForUser2': 'Utilizar para o usuário 2',\n 'transmitters.identifier': 'Identificador TX: ',\n 'transmitters.observations': 'Observações',\n 'transmitters.page.header': 'TRANSMISSORES DE',\n 'transmitters.page.transmitterAdd': 'TRANSMISSOR',\n 'transmitters.form.informations': 'INFORMAÇÕES',\n 'transmitters.form.editTransmitter': 'EDITAR TRANSMISSOR',\n 'transmitters.form.addTransmitter': 'ADICIONAR TRANSMISSOR',\n 'attend.list.mainHeader': 'ATENDIMENTOS',\n 'attend.list.loading': 'Carregando...',\n 'attend.list.isTest': 'Teste',\n 'attend.list.clientAttendsFrom': 'ATENDIMENTOS DE ',\n 'attend.detail.callType': 'TIPO DE ATENDIMENTO',\n 'attend.detail.comments': 'COMENTÁRIOS',\n 'attend.detail.systemAttendants': 'ATENDENTES DO SISTEMA',\n 'attend.detail.mainHeader': 'ATENDIMENTO',\n 'attend.detail.birthdate': 'Data de Nascimento',\n 'attend.detail.clientAddress': 'Endereço',\n 'attend.detail.clientAccount': 'Conta',\n 'attend.detail.clientCompany': 'Empresa',\n 'attend.detail.clientAccountPhone': 'Número do Equipamento',\n 'attend.detail.clientContactPhone': 'Telefone do Usuário',\n 'attend.detail.clientHealthplan': 'Plano de Saúde',\n 'attend.detail.clientRemoval': 'Remoção | Ambulância',\n 'attend.detail.limitations': 'Limitações',\n 'attend.detail.medications': 'Medicamentos',\n 'attend.detail.clientObservations': 'Observações',\n 'attend.detail.doesNotHave': 'Não possui',\n 'attend.detail.clientHeader': 'USUÁRIO',\n 'attend.detail.alarmHeader': 'ALARMES',\n 'attend.detail.alarmName': 'Nome',\n 'attend.detail.alarmZone': 'ZONA',\n 'attend.detail.alarmDate': 'DATA',\n 'attend.detail.alarmNoRecord': '{alarmCode} - sem cadastro',\n 'attend.detail.reportHeader': 'COMENTÁRIOS',\n 'attend.detail.event': 'Evento',\n 'attend.detail.contactedHeader': 'PESSOAS CONTATADAS',\n 'attend.detail.noContacted': 'Sem pessoas contatadas',\n 'attend.detail.noReminders': 'Sem lembretes',\n 'attend.detail.attendTag': 'Tipo do Atendimento',\n 'attend.detail.clientDetailHeader': 'DETALHES DO USUÁRIO',\n 'attend.detail.alarmDetailHeader': 'DETALHES DO ALARME',\n 'attend.detail.alarmType': 'TIPO',\n 'attend.detail.alarmCategory': 'CATEGORIA',\n 'attend.detail.detailsHeader': 'DETALHES',\n 'attend.detail.locationHeader': 'LOCALIZAÇÃO',\n 'attend.detail.emergencyContacts': 'CONTATOS DE EMERGÊNCIA',\n 'attend.detail.attendants': 'ATENDENTES',\n 'attend.detail.city': 'Cidade',\n 'attend.detail.zipCode': 'CEP',\n 'attend.detail.eventCategory': 'Evento',\n 'attend.detail.restorationCategory': 'Restauração',\n 'attend.detail.primaryHeader': 'DETALHES DO USUÁRIO - 1',\n 'attend.detail.secondaryHeader': 'DETALHES DO USUÁRIO - 2',\n 'attend.detail.audioInfo': 'INFORMAÇÔES DE ÁUDIOS EXTRAS',\n 'attend.closed.infoLabel': 'DETALHES DO ATENDIMENTO',\n 'attend.closed.clientMessageLabel': 'HISTÓRICO DE MENSAGENS',\n 'attend.closed.clientMessage': 'MENSAGEM',\n 'attend.closed.clientMessageReply': 'RESPOSTA',\n 'attend.closed.resolvedBy': 'RESOLVIDO POR',\n 'attend.closed.infoOpening': 'Hora de abertura',\n 'attend.closed.infoAttend': 'Hora de atendimento',\n 'attend.closed.infoClosure': 'Hora de fechamento',\n 'attend.closed.infoHeader': 'INFORMAÇÕES',\n 'attend.closed.emergencyContact': 'CONTATO DE EMERGÊNCIA',\n 'attend.closed.attendant': 'ATENDENTE',\n 'attend.closed.contactedPersons': 'PESSOAS CONTATADAS',\n 'attend.closed.remindersHeader': 'LEMBRETES',\n 'attend.closed.searchingFor': 'Procurando...',\n 'attend.closed.noAudio': 'Sem áudio',\n 'attend.closed.audioDate': 'DATA DO ÁUDIO',\n 'attend.closed.audioOrigin': 'ATENDENTE',\n 'attend.closed.audioDestiy': 'DESTINO',\n 'attend.closed.audioStatus': 'STATUS',\n 'attend.closed.audioType': 'TIPO',\n 'attend.closed.audioDuration': 'DURAÇÃO',\n 'attend.closed.downloadAudio': 'BAIXAR',\n 'attend.closed.audioTypeAttend': 'Atendimento',\n 'attend.closed.audioTypeReminder': 'Lembrete',\n 'attend.closed.audioLoading': 'Carregando...',\n 'attend.open.takeCall': 'ATENDER CHAMADO',\n 'attend.open.callDuration': 'DURAÇÃO DA CHAMADA',\n 'attend.open.hangUp': 'DESLIGAR',\n 'attend.open.timeToAnswer': 'TEMPO PARA ATENDER',\n 'attend.open.takeAttend': 'PEGAR ATENDIMENTO',\n 'attend.open.callEnded': 'CHAMADA ENCERRADA',\n 'attend.open.attended': 'Atendido',\n 'attend.open.contacted': 'Contatado',\n 'attend.open.contactsHeader': 'CONTATOS DE EMERGÊNCIA',\n 'attend.open.speak': 'Falar',\n 'attend.open.listen': 'Ouvir',\n 'attend.open.speakAndListen': 'Falar e Ouvir',\n 'attend.open.systemAttendants': 'Atendentes do Sistema',\n 'attend.open.errorNoPoints': 'NÃO FOI POSSÍVEL ACHAR AS COORDENADAS PARA ESTE USUÁRIO. \\n POR FAVOR, ESPERE ALGUNS SEGUNDOS E CLIQUE NO BOTÃO DE ATUALIZAR LOCALIZAÇÃO.\\n',\n 'attend.open.closedCall': 'Chamada Encerrada',\n 'attend.open.years': 'anos',\n 'attend.open.saveButton': 'SALVAR ATENDIMENTO',\n 'attend.open.noAudioAlarm': 'Esta chamada não contém áudio 🙉',\n 'attend.open.callUser': 'RETORNAR PARA USUÁRIO',\n 'attend.open.extensionCall': 'CHAMADAS DE EXTENSÃO',\n 'attend.open.emptyMessage': 'MENSAGEM VAZIA',\n 'attend.open.replyMessage': 'RESPONDER',\n 'attend.open.replyCancel': 'CANCELAR',\n 'attend.open.connecting': 'Conectando...',\n 'attend.open.stillConnecting': 'Ainda estamos tentando conectar, você pode desligar se preferir',\n 'attend.open.calling': 'Realizando ligação, aguarde um instante',\n 'attend.open.callConnected': 'Chamada conectada',\n 'attend.open.callNotConnected': 'Sem conexão com o servidor de atendimentos',\n 'attend.open.toSaveTooltip': 'Para salvar',\n 'attend.open.toSaveTooltipInstruction': 'Encerre a chamada e escolha o Tipo de Atendimento',\n 'attend.modal.emergencyCall': 'Chamada de Emergência',\n 'attend.tag.emergencyCall': 'Chamada de Emergência',\n 'attend.tag.testCall': 'Chamada de Teste',\n 'attend.tag.techSupport': 'Suporte Técnico',\n 'attend.tag.accidentalCall': 'Chamada Acidental',\n 'attend.tag.commFail': 'Falha de Comunicação',\n 'attend.warning.cancel': 'Mensagens de aviso canceladas.',\n 'attend.warning.sent': 'Mensagens de aviso enviadas.',\n 'attend.warning.sendingIn': 'Enviando mensagens de aviso em {seconds} segundos...',\n 'attend.warning.cancelMessages': 'Cancelar envio',\n 'attend.closed.errorNoPoints': 'COORDENADAS NÃO ENCONTRADAS PARA ESTE ATENDIMENTO',\n 'attend.closed.reportNoComment': 'Sem comentários',\n 'attend.description.sosAlarm': 'Botão SOS',\n 'attend.description.falldownAlarm': 'Detecção de queda',\n 'attend.description.overspeedAlarm': 'Excesso de velocidade',\n 'attendant.form.phone': 'Telefone',\n 'attendant.form.passwordChanged': 'Sua senha foi alterada, acesse novamente.',\n 'attendant.form.passwordHeader': 'SENHA',\n 'attendant.form.changePassword': 'Alterar Senha',\n 'attendant.form.unauthorized': 'Você não tem autorização para acessar essa página',\n 'attendant.form.editAttendantHeader': 'EDITAR ATENDENTE',\n 'attendant.form.addAttendantHeader': 'ADICIONAR ATENDENTE',\n 'attendant.form.changePassModalHeader': 'Troca de Senha',\n 'attendant.list.attendAdd': 'ATENDENTE',\n 'attendant.error.invalidEmail': 'Email inválido',\n 'attendant.error.emailUsed': 'Email já cadastrado, por favor digite outro',\n 'attendant.error.usernameIncorrect': 'Campo deve ser escrito no formato \"nome\" ou \"nome.outronome\"',\n 'attendant.error.usernameUsed': 'Nome de usuário já cadastrado, por favor digite outro',\n 'attendant.error.passwordEightCharacters': 'Campo deve possuir pelo menos 8 caracteres',\n 'attendant.error.passwordMustBeEqual': 'Campo deve ser igual ao campo de senha',\n 'attendant.error.oldPassIncorrect': 'Senha antiga incorreta',\n 'management.header': 'GERENCIAR',\n 'management.attendantsOption': 'ATENDENTES',\n 'management.alarmsOption': 'ALARMES',\n 'management.monitoringOption': 'MONITORAMENTO',\n 'management.companiesOption': 'EMPRESAS',\n 'management.trackersOption': 'RASTREADORES',\n 'management.iot.header': 'Dispositivos da Internet das Coisas',\n 'management.iot.lastEntry': 'Último Registro',\n 'alarms.addAlarm': 'ALARME',\n 'alarms.name': 'Nome',\n 'alarms.code': 'Código',\n 'alarms.priority': 'Prioridade',\n 'alarms.editHeader': 'EDITAR ALARME',\n 'alarms.addHeader': 'ADICIONAR ALARME',\n 'alarms.informations': 'INFORMAÇÕES',\n 'companies.addCompany': 'EMPRESA',\n 'companies.addPerson': 'COLABORADOR',\n 'companies.edit': 'EDITAR',\n 'companies.delete': 'DELETAR',\n 'companies.editHeader': 'EDITAR EMPRESA',\n 'companies.addHeader': 'ADICIONAR EMPRESA',\n 'companies.name': 'Nome',\n 'companies.remove': 'REMOVER EMPRESA',\n 'companies.form.ranges': 'FAIXAS DE CONTA',\n 'companies.form.maxAccount': 'Conta máxima',\n 'companies.form.minAccount': 'Conta mínima',\n 'companies.form.addRange': 'Adicionar Faixa',\n 'companies.error.minMax': 'Conta mínima não pode ser maior do que conta máxima',\n 'companies.error.noMinOrMax': 'Conta mínima ou máxima não enviada',\n 'companies.error.rangeUsed': 'Esta faixa de contas já está sendo utilizada ou está dentro de outra faixa',\n 'company.delete.warningHeader': 'AVISO',\n 'company.delete.warningMsg': 'Para remover uma empresa por completo, primeiro, você precisa inativar seus colaboradores e excluir todos os seus usuários (ou alterar sua empresa).',\n 'company.delete.warning': 'Você já realizou estas ações? Deseja prosseguir?',\n 'company.delete.deleteUsers': 'Excluir acessos dos colaboradores (login, email)?',\n 'company.delete.loading': 'Aguarde...',\n 'company.delete.success': 'Empresa removida com sucesso!',\n 'company.delete.errorTitle': 'OPS! Ocorreu um erro ao remover esta empresa.',\n 'company.delete.errorHasClients': 'Esta empresa ainda possui usuários. Verifique também usuários inativos.',\n 'company.delete.errorHasUsers': 'Esta empresa ainda possui colaboradores ativos.',\n 'companies.addPersonHeader': 'ADICIONAR COLABORADOR',\n 'companies.editPersonHeader': 'EDITAR COLABORADOR',\n 'config.viewAttendantsList': 'Visualizar Lista de Atendentes',\n 'config.viewContactsList': 'Visualizar Lista de Contatos',\n 'config.openAlarms': 'Atendimentos Abertos (Tela)',\n 'config.globalOptHeader': 'CONFIGURAÇÕES ADMINISTRATIVAS',\n 'config.micandaudioconfig': 'CONFIGURAÇÃO DE MICROFONE E ÁUDIO',\n 'config.viewClosedAttends': 'Visualizar Atendimentos Fechados',\n 'config.viewResume': 'Visualizar Resumo dos Atendimentos',\n 'config.viewQuantityAttends': 'Visualizar Quantidade de Atendimentos',\n 'config.viewGraphicCards': 'Visualizar Card de Gráficos',\n 'config.dashboard': 'Painel',\n 'config.localOptHeader': 'CONFIGURAÇÃO DASHBOARD',\n 'config.twoGlobalUncheck': 'Não é possível desabilitar as duas configurações globais de atendimento. Por favor habilite uma.',\n 'config.saveError': 'Ocorreram erros ao salvar as configurações',\n 'config.saveSuccess': 'Configurações salvas!',\n 'config.openTickets': 'Atendimentos Abertos (Tela)',\n 'config.audioEcho': 'Teste de eco',\n 'config.hangupAudio': 'Desligar Teste',\n 'config.makeAudio': 'Testar',\n 'reports.generateReport': 'Gerar Relatório',\n 'reports.selectYear': 'Selecione o Ano',\n 'reports.reportOf': 'RELATÓRIO DE',\n 'reports.selectedcode': 'CÓDIGO SELECIONADO',\n 'reports.attendHeader': 'ATENDIMENTOS',\n 'reports.ofType': 'DO TIPO',\n 'reports.accountHeader': 'CONTA',\n 'reports.generatePDF': 'Gerar PDF',\n 'reports.company': 'Empresa',\n 'reports.client': 'Usuário',\n 'reports.account': 'Conta',\n 'reports.alarm': 'Alarme',\n 'reports.category': 'Categoria',\n 'reports.event': 'Evento',\n 'reports.restoration': 'Restauração',\n 'reports.date': 'Data',\n 'reports.opening': 'Abertura',\n 'reports.closure': 'Encerramento',\n 'reports.duration': 'Duração',\n 'reports.attendant': 'Atendente',\n 'reports.solvedBy': 'Resolvido por',\n 'reports.emptyReport': 'Relatório vazio',\n 'reports.reportButton': 'Relatório',\n 'reports.graphicButton': 'Gráfico',\n 'reports.page.header': 'RELATÓRIOS',\n 'reports.page.usersRepHeader': 'Usuários',\n 'reports.page.alarmsRepHeader': 'Alarmes',\n 'reports.page.attendantsRepHeader': 'Atendentes',\n 'reports.page.attByAnywhereRepHeader': 'Atendidos pelo Anywhere',\n 'reports.page.lengthOfStayRepHeader': 'Tempo de Permanência',\n 'reports.page.attsByPeriodRepHeader': 'Atendimentos por Período',\n 'reports.page.totalPlansRepHeader': 'Total de Planos',\n 'reports.page.clientsByPlanRepHeader': 'Usuários por Plano',\n 'reports.page.monthlyClientRepHeader': 'Acompanhamento mensal de Usuários',\n 'reports.page.totalClientsRepHeader': 'Total de Usuários por Mês',\n 'reports.page.clientByCompany': 'Total de Usuários por Empresa',\n 'reports.page.attendTagsRepHeader': 'Atendimentos por Tipo',\n 'reports.clients.totalAlarms': 'TOTAL DE ALARMES',\n 'reports.clients.selectClient': 'Selecione o Usuário',\n 'reports.alarms.selectPriority': 'Selecione a Prioridade',\n 'reports.alarms.selectAlarmCode': 'Selecione o Código de Alarme',\n 'reports.alarms.alarmsOf': 'ALARMES DE',\n 'reports.attendants.selectAttendant': 'Selecione o Atendente',\n 'reports.attendants.attendsOf': 'ATENDIMENTOS DE',\n 'reports.attendants.group': 'GRUPO',\n 'reports.attendants.totalAttends': 'TOTAL DE ATENDIMENTOS',\n 'reports.plans.selectPlan': 'Selecione o Plano',\n 'reports.anywhere.answeredHeader': 'ATENDIMENTOS REALIZADOS PELO ANYWHERE',\n 'reports.anywhere.numberOfAttends': 'Número de Atendimentos',\n 'reports.length.lengthOfStayHeader': 'TEMPO DE PERMANÊNCIA DOS USUÁRIOS',\n 'reports.length.daysLenght': 'Dias de Permanência',\n 'reports.length.createdDate': 'Data de Criação',\n 'reports.length.deletedDate': 'Data de Deleção',\n 'reports.length.activeDays': 'Dias Ativos',\n 'reports.attends.attendsHeader': 'ATENDIMENTOS',\n 'reports.attends.hasAudio': 'Áudio',\n 'reports.attends.selectTag': 'Selecione o Tipo de Atendimento',\n 'reports.userTracking.header': 'ACOMPANHAMENTO MENSAL DE USUÁRIOS',\n 'reports.userTracking.month': 'Mês',\n 'reports.userTracking.addedUsers': 'Usuários Adicionados',\n 'reports.userTracking.deletedUsers': 'Usuários Removidos',\n 'reports.userTracking.totalMonth': 'Total de Usuários Mês',\n 'reports.userTracking.added': 'Adicionados',\n 'reports.userTracking.inactivated': 'Inativados',\n 'reports.userTracking.reactivated': 'Reativados',\n 'reports.userTracking.disabled': 'Desativados',\n 'reports.userTotal.header': 'TOTAL DE USUÁRIOS POR MÊS',\n 'reports.userTotal.month': 'Mês',\n 'reports.userTotal.totalMonth': 'Total de Usuários Mensal',\n 'reports.totalPlans.header': 'VALOR TOTAL DOS PLANOS',\n 'reports.totalPlans.totalHeader': 'Total',\n 'reports.totalPlans.plan': 'Plano',\n 'reports.totalPlans.numberOfUsers': 'Número de Usuários',\n 'reports.totalPlans.totalValue': 'Valor Total',\n 'reports.totalPlans.chartHeader': 'VALOR TOTAL DOS PLANOS',\n 'reports.planDetails.header': 'DETALHES DOS PLANOS',\n 'reports.planDetails.value': 'Valor',\n 'reports.planDetails.plan': 'Plano',\n 'reports.companies.header': 'TOTAL DE USUÁRIOS POR EMPRESA',\n 'reports.companies.name': 'Nome da empresa',\n 'reports.companies.id': 'Identificação',\n 'reports.companies.total': 'Total de usuários',\n 'monitoring.header': 'MONITORAMENTO',\n 'monitoring.selectWhoMessage': 'Escolha abaixo quem você quer que faça seu monitoramento',\n 'monitoring.errorTest': 'Você está utilizando a versão de testes, esta opção está desabilitada.',\n 'monitoring.anywhereName': 'Nome',\n 'monitoring.solicitationDate': 'Data de solicitação',\n 'monitoring.noCompanySelected': 'Nenhuma empresa selecionada',\n 'monitoring.historic': 'HISTÓRICO',\n 'monitoring.approvalDate': 'Data de aprovação',\n 'monitoring.deletionDate': 'Data de deleção',\n 'monitoring.modalMessage': 'Ao solicitar o monitoramento de {setMasterName}, assim que este for aceito, serão cobrados R$: 45,00 extras para cada cliente ativo neste Contactto.care. \\nDeseja realizar esta ação? \\nNOTA: SE SEU CONTACTTO.CARE NÃO UTILIZA PLANOS, IGNORE ESTA MENSAGEM',\n 'monitoring.pending': 'Pendente',\n 'monitoring.approved': 'Aprovado',\n 'monitoring.deleted': 'Deletado',\n 'monitoring.noApproval': 'Sem aprovação',\n 'activate.header': 'ATIVAR CONTACTTO.CARE',\n 'activate.registrationData': 'DADOS DE CADASTRO',\n 'activate.zipCode': 'CEP',\n 'activate.street': 'Logradouro',\n 'activate.number': 'Número',\n 'activate.district': 'Bairro',\n 'activate.complement': 'Complemento',\n 'activate.city': 'Cidade',\n 'activate.state': 'Estado',\n 'activate.country': 'País',\n 'activate.actions': 'AÇÕES',\n 'activate.sign': 'ASSINAR',\n 'search.header': 'RESULTADO DE BUSCAS PARA',\n 'search.alarms': 'Alarmes',\n 'search.clients': 'Usuários',\n 'search.contacts': 'Contatos',\n 'search.transmitters': 'Transmissores',\n 'search.attendants': 'Atendentes',\n 'search.noResult': 'Nenhum resultado encontrado',\n 'date.startDate': 'Data Inicial',\n 'date.endDate': 'Data Final',\n 'reminder.header': 'LEMBRETE PARA O ATENDIMENTO ',\n 'reminder.reminderAttendant': 'Atendente',\n 'reminder.reminderTime': 'Tempo solicitado',\n 'reminder.reminderOpening': 'Data de início',\n 'reminder.reminderTitle': 'Lembrete',\n 'reminder.reminderReport': 'Relatório',\n 'reminder.reminderContactList': 'Lista de Contatos',\n 'reminder.timer': 'Tempo',\n 'reminder.informAll': 'Informar todos os atendentes?',\n 'reminder.warning': 'Por favor, digite um lembrete e escolha um tempo.',\n 'reminder.reminderWarning': 'Por favor, digite seu relatório antes de concluír.',\n 'reminder.btn': 'Gerar',\n 'reminder.closeBtn': 'CONCLUIR',\n 'reminder.rescheduleBtn': 'REPROGRAMAR',\n 'attend.reminder.createReminder': 'Gerar Lembrete',\n 'attend.reminder.message': 'Obrigado! \\n Seu lembrete foi gerado! Após terminar o tempo, você será avisado. \\n Você pode fechar este atendimento para realizar outra tarefa.',\n 'attend.reminder.openAttendant': 'Solicitado por',\n 'attend.reminder.closeAttendant': 'Fechado por',\n 'attend.reminder.title': 'Lembrete',\n 'attend.reminder.opening': 'Abertura',\n 'attend.reminder.close': 'Fechamento',\n 'attend.reminder.requestedTime': 'Tempo Solicitado',\n 'attend.reminder.minutes': 'Minutos',\n 'attend.reminder.report': 'Relatório',\n 'attend.reminder.cardHeader': 'LEMBRETE NÚMERO {reminderNumber}',\n 'attend.filter.header': 'FILTRAR ATENDIMENTOS',\n 'attend.filter.button1': 'FILTRAR',\n 'attend.filter.button2': 'ATENDIMENTOS',\n 'attend.filter.isTest': 'Usuários de Teste',\n 'attend.filter.notTest': 'Usuários Normais',\n 'attend.filter.hasAudio': 'Tem áudio',\n 'attend.filter.company': 'Empresa',\n 'attend.filter.attendTag': 'Tipo de Atendimento',\n 'attend.filter.filteredBy': 'Filtrados por',\n 'attend.filter.id': 'Identificação',\n 'attend.filter.noAudio': 'Sem Áudio',\n 'history.header': 'VISUALIZAR HISTÓRICO DE',\n 'history.selectContact': 'Selecione o Contato desejado',\n 'history.user': 'Usuário',\n 'history.contacts': 'Contatos',\n 'history.transmitters': 'Transmissores',\n 'history.type': 'Tipo',\n 'history.date': 'Data',\n 'history.modifiedBy': 'Modificado Por',\n 'history.transmitter': 'Transmissor',\n 'history.expand': '+ Expandir',\n 'history.hide': '- Ocultar',\n 'history.before': 'Antes',\n 'history.after': 'Depois',\n 'history.actionType.changed': 'Alteração',\n 'history.actionType.deleted': 'Deleção',\n 'history.actionType.created': 'Criação',\n 'history.contact': 'Contato',\n 'history.contact.phone': 'Telefone',\n 'history.contact.action': 'Ação',\n 'history.empty': 'Vazio',\n 'history.changedField': 'Campo Alterado',\n 'error.component.title': 'Oops! Parece que ocorreu um erro ao tentar salvar',\n 'error.component.errorcodetitle': 'Código do erro',\n 'error.component.infotitle': 'Informações',\n 'chat.error.unavailable': 'Opção indisponível no momento.',\n 'chat.error.toActivate': 'Para ativar o seu chat, faça o logout da plataforma e acesse novamente.',\n 'chat.error.loggingOut': 'Para fazer logout, utilize o menu superior a direita - onde está o seu nome - e clique em \"Sair\".',\n 'chat.error.supportEmail': 'Se o chat permanecer indisponível, envie um email para suporte@tecnosenior.zendesk.com relatando a situação.',\n 'return.makeCallLabel': 'Retorno ao usuário',\n 'return.makeCallButton': 'REALIZAR LIGAÇÃO',\n 'return.firstHangupLabel': 'Aguarde 3-4 toques e desligue esta chamada',\n 'return.firstHangupSubtitle': 'Se você não ouviu nenhum toque ou sinal de ocupado, clique em voltar, aguarde alguns instantes e tente novamente',\n 'return.firstHangupButton': 'DESLIGAR',\n 'return.waitSeconds': 'Aguardando {duration} segundos...',\n 'return.waitToneLabel': 'Aguarde o fim do tom',\n 'return.sendPasswordButton': 'ENVIAR SENHA',\n 'return.ongoingCallLabel': 'Chamada em andamento',\n 'return.reSendPasswordButton': 'ENVIAR SENHA NOVAMENTE',\n 'return.hangupCall': 'DESLIGAR',\n 'ata.header.port': 'Porta',\n 'ata.status.unknown': 'Desconhecido',\n 'ata.status.unreachable': 'Inacessível',\n 'extension.headerTitle': 'CHAMADAS DE EXTENSÃO',\n 'extension.headerTitleReminder': 'CHAMADAS DE EXTENSÃO - LEMBRETE PARA O ATENDIMENTO',\n 'extension.clientInfo': 'INFORMAÇÕES DO USUÁRIO',\n 'extension.client': 'Usuário',\n 'extension.phone': 'Telefone',\n 'extension.select': 'SELECIONAR',\n 'extension.selectClientAccountPhone': 'NRO DO EQUIPAMENTO',\n 'extension.selectClientContactPhone': 'NRO DE CONTATO',\n 'extension.own': 'O(a) próprio(a)',\n 'extension.makeCallLabel': 'LIGANDO PARA',\n 'extension.contact': 'Contato de Emergência',\n 'extension.noContactPhone': 'Este usuário não possui telefone de contato',\n 'extension.makeCall': 'REALIZAR LIGAÇÃO',\n 'extension.custom': 'Número extra',\n 'extension.back': 'VOLTAR',\n 'extension.softphoneTitle': 'TECLADO DE TELEFONE',\n 'extension.softphoneOpen': 'ABRIR',\n 'extension.softphoneClose': 'FECHAR',\n 'extension.softphoneInput': 'Digite o número desejado',\n 'extension.softphoneConfirm': 'Confirmar'\n },\n};\n","export default {\n en: {\n january: 'January',\n february: 'February',\n march: 'March',\n april: 'April',\n may: 'May',\n june: 'June',\n july: 'July',\n august: 'August',\n september: 'September',\n october: 'October',\n november: 'November',\n december: 'December',\n },\n pt: {\n january: 'Janeiro',\n february: 'Fevereiro',\n march: 'Março',\n april: 'Abril',\n may: 'Maio',\n june: 'Junho',\n july: 'Julho',\n august: 'Agosto',\n september: 'Setembro',\n october: 'Outubro',\n november: 'Novembro',\n december: 'Dezembro',\n },\n};\n","/* eslint-disable import/no-anonymous-default-export */\nexport default {\n en: {\n firstName: 'First Name',\n lastName: 'Last Name',\n birthdate: 'Birthdate',\n generalInfo: 'Observations',\n gender: 'Gender',\n medications: 'Medication',\n healthPlan: 'Insurance',\n hospital: 'Hospital',\n limitations: 'Limitations',\n removalPlan: 'Removal Plan',\n cpf: 'CPF',\n rg: 'RG'\n },\n pt: {\n firstName: 'Nome',\n lastName: 'Sobrenome',\n birthdate: 'Data de nascimento',\n generalInfo: 'Observações',\n gender: 'Sexo',\n medications: 'Medicações',\n healthPlan: 'Plano de saúde',\n hospital: 'Hospital',\n limitations: 'Limitações',\n removalPlan: 'Plano de Remoção',\n cpf: 'CPF',\n rg: 'RG'\n }\n}\n","import moment from 'moment';\nimport messages from './locale/messages';\nimport messagesMonths from './locale/messagesMonths';\nimport messagesAlarms from './locale/messagesAlarms';\nimport messagesLogs from './locale/messagesLogs';\n\nexport const actionPriority = value => {\n const lang = !localStorage.contacttoLang ? 'pt' : localStorage.contacttoLang;\n switch (value) {\n case \"\":\n return \"Selecione a Prioridade\";\n case \"1\":\n case 1:\n return messages[lang]['general.highPriority'];\n case \"2\":\n case 2:\n return messages[lang]['general.mediumPriority'];\n case \"3\":\n case 3:\n return messages[lang]['general.lowPriority'];\n case \"4\":\n case 4:\n return messages[lang]['general.sysPriority'];\n case \"all\":\n return messages[lang]['general.allPriorities'];\n\n case \"Selecione a Prioridade\":\n return \"\";\n case messages[lang]['general.highPriority']:\n return 1;\n case messages[lang]['general.mediumPriority']:\n return 2;\n case messages[lang]['general.lowPriority']:\n return 3;\n case messages[lang]['general.sysPriority']:\n return 4;\n case messages[lang]['general.allPriorities']:\n return \"all\";\n\n default:\n return value;\n }\n};\n\nexport const userActionPriority = (value, order) => {\n const lang = !localStorage.contacttoLang ? 'pt' : localStorage.contacttoLang;\n if (order === 'fromServer') {\n if (value === 1) {\n return messages[lang]['general.highPriority'];\n } else if (value === 2) {\n return messages[lang]['general.mediumPriority'];\n } else if (value === 3) {\n return messages[lang]['general.lowPriority'];\n } else if (value === 4) {\n return messages[lang]['general.sysPriority'];\n } else if (value === 'all') {\n return messages[lang]['general.allPriorities'];\n } else {\n return value;\n }\n } else if (order === 'toServer') {\n if (value === messages[lang]['general.highPriority']) {\n return 1;\n } else if (value === messages[lang]['general.mediumPriority']) {\n return 2;\n } else if (value === messages[lang]['general.lowPriority']) {\n return 3;\n } else if (value === messages[lang]['general.sysPriority']) {\n return 4;\n } else if (value === messages[lang]['general.allPriorities']) {\n return 'all';\n } else {\n return value;\n }\n }\n}\n\nexport const reportPriority = (value) => {\n const lang = !localStorage.contacttoLang ? 'pt' : localStorage.contacttoLang;\n switch (value) {\n case 1:\n return messages[lang]['general.highPriority'];\n case 2:\n return messages[lang]['general.mediumPriority'];\n case 3:\n return messages[lang]['general.lowPriority'];\n case 4:\n return messages[lang]['general.sysPriority'];\n case 'all':\n return messages[lang]['general.allPriorities'];\n\n default:\n return value;\n }\n};\n\nexport const userGroup = value => {\n const lang = !localStorage.contacttoLang ? 'pt' : localStorage.contacttoLang;\n switch (value) {\n case 1:\n return messages[lang]['general.admin'];\n case 2:\n return messages[lang]['general.manager'];\n case 3:\n return messages[lang]['general.operator'];\n case 4:\n return messages[lang]['general.owner'];\n\n case messages[lang]['general.admin']:\n return 1;\n case messages[lang]['general.manager']:\n return 2;\n case messages[lang]['general.operator']:\n return 3;\n case messages[lang]['general.owner']:\n return 4;\n\n default:\n return value;\n }\n};\n\nexport const monitoringStatus = (status) => {\n const lang = !localStorage.contacttoLang ? 'pt' : localStorage.contacttoLang;\n switch (status) {\n case 'PENDING':\n return messages[lang]['monitoring.pending'];\n case 'APPROVED':\n return messages[lang]['monitoring.approved'];\n case 'DELETED':\n return messages[lang]['monitoring.deleted'];\n case messages[lang]['monitoring.pending']:\n return 'PENDING';\n case messages[lang]['monitoring.approved']:\n return 'APPROVED';\n case messages[lang]['monitoring.deleted']:\n return 'DELETED';\n default:\n return status;\n }\n};\n\nexport const equipmentTypes = type => {\n switch (type) {\n case 1:\n return 'PERS3600';\n case 2:\n return 'PERS4200';\n case 3:\n return 'IGO';\n case 4:\n return 'iHelp';\n\n case 'PERS3600':\n return 1;\n case 'PERS4200':\n return 2;\n case 'IGO':\n return 3;\n case 'iHelp':\n return 4;\n\n default:\n return type;\n }\n};\n\nexport const phoneTypes = (type) => {\n const lang = !localStorage.contacttoLang ? 'pt' : localStorage.contacttoLang;\n switch (type) {\n case 'Primary':\n return 'Principal';\n case 'Home':\n return 'Casa';\n case 'Work':\n return 'Trabalho';\n case 'Cellphone':\n return 'Celular';\n default:\n return type;\n }\n};\n\nexport const userPlan = value => {\n switch (value) {\n case 1:\n return \"Basic Care R$15/mês\";\n case 2:\n return \"Care R$25/mês\";\n case 3:\n return \"Total Care R$35/mês\";\n\n case \"Basic Care R$15/mês\":\n return 1;\n case \"Care R$25/mês\":\n return 2;\n case \"Total Care R$35/mês\":\n return 3;\n\n default:\n return value;\n }\n};\n\nexport const checkMonth = (num, language) => {\n const lang = !localStorage.contacttoLang ? 'pt' : localStorage.contacttoLang;\n switch (num) {\n case 1:\n if (language === 'pt') {\n return 'Janeiro';\n } else if (language === 'en') {\n return 'January';\n }\n return messagesMonths[lang].january;\n case 2:\n if (language === 'pt') {\n return 'Fevereiro';\n } else if (language === 'en') {\n return 'February';\n }\n return messagesMonths[lang].february;\n case 3:\n if (language === 'pt') {\n return 'Março';\n } else if (language === 'en') {\n return 'March';\n }\n return messagesMonths[lang].march;\n case 4:\n if (language === 'pt') {\n return 'Abril';\n } else if (language === 'en') {\n return 'April';\n }\n return messagesMonths[lang].april;\n case 5:\n if (language === 'pt') {\n return 'Maio';\n } else if (language === 'en') {\n return 'May';\n }\n return messagesMonths[lang].may;\n case 6:\n if (language === 'pt') {\n return 'Junho';\n } else if (language === 'en') {\n return 'June';\n }\n return messagesMonths[lang].june;\n case 7:\n if (language === 'pt') {\n return 'Julho';\n } else if (language === 'en') {\n return 'July';\n }\n return messagesMonths[lang].july;\n case 8:\n if (language === 'pt') {\n return 'Agosto';\n } else if (language === 'en') {\n return 'August';\n }\n return messagesMonths[lang].august;\n case 9:\n if (language === 'pt') {\n return 'Setembro';\n } else if (language === 'en') {\n return 'September';\n }\n return messagesMonths[lang].september;\n case 10:\n if (language === 'pt') {\n return 'Outubro';\n } else if (language === 'en') {\n return 'October';\n }\n return messagesMonths[lang].october;\n case 11:\n if (language === 'pt') {\n return 'Novembro';\n } else if (language === 'en') {\n return 'November';\n }\n return messagesMonths[lang].november;\n case 12:\n if (language === 'pt') {\n return 'Dezembro';\n } else if (language === 'en') {\n return 'December';\n }\n return messagesMonths[lang].december;\n default:\n return '';\n }\n};\n\nexport const getMonth = (lang) => {\n switch (lang) {\n case 'pt':\n return [\n 'Janeiro',\n 'Fevereiro',\n 'Março',\n 'Abril',\n 'Maio',\n 'Junho',\n 'Julho',\n 'Agosto',\n 'Setembro',\n 'Outubro',\n 'Novembro',\n 'Dezembro',\n ];\n case 'en':\n return [\n 'January',\n 'February',\n 'March',\n 'April',\n 'May',\n 'June',\n 'July',\n 'August',\n 'September',\n 'October',\n 'November',\n 'December',\n ];\n default:\n return [\n 'Janeiro',\n 'Fevereiro',\n 'Março',\n 'Abril',\n 'Maio',\n 'Junho',\n 'Julho',\n 'Agosto',\n 'Setembro',\n 'Outubro',\n 'Novembro',\n 'Dezembro',\n ];\n }\n};\n\nexport const contactActionPriority = (value, order) => {\n const lang = !localStorage.contacttoLang ? 'pt' : localStorage.contacttoLang;\n if (order === 'fromServer') {\n if (value === 1) {\n return messages[lang]['general.highPriority'];\n } else if (value === 2) {\n return messages[lang]['general.mediumPriority'];\n } else if (value === 3) {\n return messages[lang]['general.lowPriority'];\n } else if (value === 4) {\n return messages[lang]['general.sysPriority'];\n } else if (value === 'all') {\n return messages[lang]['general.allPriorities'];\n } else {\n return value;\n }\n } else if (order === 'toServer') {\n if (value === messages[lang]['general.highPriority']) {\n return 1;\n } else if (value === messages[lang]['general.mediumPriority']) {\n return 2;\n } else if (value === messages[lang]['general.lowPriority']) {\n return 3;\n } else if (value === messages[lang]['general.sysPriority']) {\n return 4;\n } else if (value === messages[lang]['general.allPriorities']) {\n return 'all';\n } else {\n return value;\n }\n }\n};\n\nexport const fallDetectionMode = (mode) => {\n const lang = !localStorage.contacttoLang ? 'pt' : localStorage.contacttoLang;\n switch (mode) {\n case -1:\n return messages[lang]['client.tracker.disabled'];\n case 0:\n return messages[lang]['client.tracker.highSensitivity'];\n case 1:\n return messages[lang]['client.tracker.mediumHighSensitivity'];\n case 2:\n return messages[lang]['client.tracker.normalSensitivity'];\n case messages[lang]['client.tracker.disabled']:\n return -1;\n case messages[lang]['client.tracker.highSensitivity']:\n return 0;\n case messages[lang]['client.tracker.mediumHighSensitivity']:\n return 1;\n case messages[lang]['client.tracker.normalSensitivity']:\n return 2;\n default:\n return mode;\n }\n};\n\n\nexport const geoFenceMode = (mode) => {\n const lang = !localStorage.contacttoLang ? 'pt' : localStorage.contacttoLang;\n switch (mode) {\n case 0:\n return messages[lang]['client.tracker.disabled'];\n case 1:\n return messages[lang]['client.tracker.enterPerimeter'];\n case 2:\n return messages[lang]['client.tracker.exitPerimeter'];\n case 3:\n return messages[lang]['client.tracker.bothPerimeter'];\n case messages[lang]['client.tracker.disabled']:\n return 0;\n case messages[lang]['client.tracker.enterPerimeter']:\n return 1;\n case messages[lang]['client.tracker.exitPerimeter']:\n return 2;\n case messages[lang]['client.tracker.bothPerimeter']:\n return 3;\n default:\n return mode;\n }\n};\n\nexport const ev07bGeoFenceMode = (mode) => {\n const lang = !localStorage.contacttoLang ? 'pt' : localStorage.contacttoLang;\n switch (mode) {\n case '1':\n return messages[lang]['client.tracker.exitPerimeter'];\n case '0':\n return messages[lang]['client.tracker.enterPerimeter'];\n case messages[lang]['client.tracker.exitPerimeter']:\n return '1';\n case messages[lang]['client.tracker.enterPerimeter']:\n return '0';\n default:\n return mode;\n }\n}\n\nexport const ev07bAlarmClockAudio = (mode) => {\n const lang = !localStorage.contacttoLang ? 'pt' : localStorage.contacttoLang;\n switch (mode) {\n case 1:\n case '1':\n return messages[lang]['client.tracker.appointmentAudio'];\n case 2:\n case '2':\n return messages[lang]['client.tracker.medicationAudio'];\n case 3:\n case '3':\n return messages[lang]['client.tracker.noonAudio'];\n case 4:\n case '4':\n return messages[lang]['client.tracker.wakeUpAudio'];\n case messages[lang]['client.tracker.appointmentAudio']:\n return 1;\n case messages[lang]['client.tracker.medicationAudio']:\n return 2;\n case messages[lang]['client.tracker.noonAudio']:\n return 3;\n case messages[lang]['client.tracker.wakeUpAudio']:\n return 4;\n default:\n return mode;\n\n }\n}\n\nexport const contactHistoryType = (type) => {\n const lang = !localStorage.contacttoLang ? 'pt' : localStorage.contacttoLang;\n switch (type) {\n case 'Contact':\n return messages[lang]['history.contact'];\n case 'Phone':\n return messages[lang]['history.contact.phone'];\n case 'Action':\n return messages[lang]['history.contact.action'];\n default:\n return type;\n }\n};\n\nexport const historyActionType = (action) => {\n const lang = !localStorage.contacttoLang ? 'pt' : localStorage.contacttoLang;\n switch (action) {\n case 'changed':\n return messages[lang]['history.actionType.changed'];\n case 'deleted':\n return messages[lang]['history.actionType.deleted'];\n case 'created':\n return messages[lang]['history.actionType.created'];\n default:\n return action;\n }\n};\n\nexport const alarmNameLang = (alarm) => {\n const lang = !localStorage.contacttoLang ? 'pt' : localStorage.contacttoLang;\n if (lang === 'pt' || !alarm.is_original) {\n return alarm.name;\n }\n return messagesAlarms[lang][alarm.code];\n}\n\nexport const alarmPriorityLang = (value) => {\n const lang = !localStorage.contacttoLang ? 'pt' : localStorage.contacttoLang;\n if (value === 1) {\n return messages[lang]['general.highPriority'];\n } else if (value === 2) {\n return messages[lang]['general.mediumPriority'];\n } else if (value === 3) {\n return messages[lang]['general.lowPriority'];\n } else if (value === 4) {\n return messages[lang]['general.sysPriority'];\n } else if (value === 'all') {\n return messages[lang]['general.allPriorities'];\n }\n return value;\n}\n\nexport const ataStatusLang = (value) => {\n const lang = !localStorage.contacttoLang ? 'pt' : localStorage.contacttoLang;\n switch (value) {\n case 'UNKNOWN':\n return messages[lang]['ata.status.unknown'];\n case 'UNREACHABLE':\n return messages[lang]['ata.status.unreachable'];\n default:\n return value;\n }\n}\n\nexport const trDescriptionLang = (value) => {\n const lang = !localStorage.contacttoLang ? 'pt' : localStorage.contacttoLang;\n switch (value) {\n case 'SOS':\n return messages[lang]['attend.description.sosAlarm'];\n case 'FD':\n return messages[lang]['attend.description.falldownAlarm'];\n case 'OS':\n return messages[lang]['attend.description.overspeedAlarm'];\n default:\n return value;\n }\n}\n\nexport const historyField = (value) => {\n const lang = !localStorage.contacttoLang ? 'pt' : localStorage.contacttoLang;\n if (messagesLogs[lang][value]) {\n return messagesLogs[lang][value];\n }\n return value;\n}\n\nexport const historyText = (value, key) => {\n const lang = !localStorage.contacttoLang ? 'pt' : localStorage.contacttoLang;\n switch (key) {\n case 'gender': {\n let type = 'male';\n if (value === 'f') {\n type = 'female'\n } else if (value === 'n') {\n type = 'notApplicable'\n }\n return messages[lang][`client.form.${type}`];\n }\n case 'birthdate': {\n return moment(value).format('DD/MM/YYYY');\n }\n default:\n return !value ? messages[lang]['history.empty'] : value;\n }\n}\n","export default {\n en: {\n '01': 'JAN',\n '02': 'FEB',\n '03': 'MAR',\n '04': 'APR',\n '05': 'MAY',\n '06': 'JUN',\n '07': 'JUL',\n '08': 'AUG',\n '09': 'SEP',\n 10: 'OCT',\n 11: 'NOV',\n 12: 'DEC',\n },\n pt: {\n '01': 'JAN',\n '02': 'FEV',\n '03': 'MAR',\n '04': 'ABR',\n '05': 'MAI',\n '06': 'JUN',\n '07': 'JUL',\n '08': 'AGO',\n '09': 'SET',\n 10: 'OUT',\n 11: 'NOV',\n 12: 'DEZ',\n },\n};\n","import messages from './locale/messages';\nimport messagesMonth from './locale/messagesMonthsAbrv';\nimport { host, getDomain, getToken } from './environment'\n\nexport const formatDate = (date, format) => {\n let [, year, month, day, hour, minute] =\n /^(\\d{4})-(\\d{2})-(\\d{2})T(\\d{2}):(\\d{2}):\\d{2}[.]\\w*$/i.exec(date) || [];\n if (\n year === undefined &&\n month === undefined &&\n day === undefined &&\n hour === undefined &&\n minute === undefined\n ) {\n [, year, month, day, hour, minute] =\n /^(\\d{4})-(\\d{2})-(\\d{2})T(\\d{2}):(\\d{2}):\\d{2}$/i.exec(date) || [];\n }\n if (format === 'time') {\n return `${hour}:${minute}`;\n } else if (format === 'date') {\n return `${day}/${month}/${year}`;\n } else if (format === 'card') {\n return `${day}/${messagesMonth[localStorage.contacttoLang][month]} ${hour}:${minute}`;\n // return `${day} | ${messagesMonth[localStorage.contacttoLang][month]} | ${year} ${hour}h${minute}`;\n }\n\n return `${day}/${month}/${year} - ${hour}:${minute}`;\n};\n\nexport const formatDateFromString = (dateString) => {\n const date = new Date(dateString);\n\n const DD = String(date.getDate()).padStart(2, '0');\n const MM = String(date.getMonth() + 1).padStart(2, '0'); // January is 0!\n const YYYY = date.getFullYear();\n\n const HH = String(date.getHours()).padStart(2, '0');\n const mm = String(date.getMinutes()).padStart(2, '0');\n const SS = String(date.getSeconds()).padStart(2, '0');\n\n return `${DD}/${MM}/${YYYY} - ${HH}:${mm}:${SS}`;\n}\n\nexport function broadcast(axios, channelId, msgObj, callback = () => {}) {\n return new Promise((resolve, reject) => {\n axios({\n method: 'post',\n responseType: 'json',\n url: `https://${getDomain()}${host()}/api/publish/`,\n data: msgObj,\n headers: { Authorization: `Token ${getToken()}` },\n }).then((res) => {\n resolve(res);\n callback();\n }).catch((error) => {\n console.log(error);\n });\n });\n}\n\nexport function removeByKey(myObj, arrayKeys) {\n const obj = Object.assign({}, myObj);\n\n arrayKeys.forEach((el) => {\n delete obj[el];\n });\n\n return obj;\n}\n\nexport function setMask(value, mask) {\n if (!value) {\n return '';\n }\n\n const mask2 = mask.split('');\n const data = value.split('');\n const maskIndex = [];\n\n mask2.forEach((val, index) => {\n if (!/\\d/.test(val)) {\n maskIndex.push([index, val]);\n }\n });\n\n maskIndex.forEach((el, index) => {\n if (data[el[0]]) {\n data.splice(el[0], 0, el[1]);\n }\n });\n return data.join('');\n}\n\nexport function removeNonDigit(value, join) {\n let arr;\n if (typeof value === 'string') {\n arr = value.split('');\n } else {\n arr = value;\n }\n if (join === true || join === 'join') {\n return arr.filter(el => /\\d/.test(el)).join('');\n }\n\n return arr.filter(el => /\\d/.test(el));\n}\n\nexport function adjustDigitCountry(value, join, country) {\n const arr = removeNonDigit(value, join);\n switch (country) {\n case 'Brasil':\n case 'BR':\n return arr;\n case 'MU':\n return `00${arr}`;\n // case 'GB':\n // return `00${arr}`;\n default:\n return arr;\n }\n}\n\nexport function formatOnlyNumbersDate(date, format) {\n let [, year, month, day, hour, minute] =\n /^(\\d{4})-(\\d{2})-(\\d{2})T(\\d{2}):(\\d{2}):\\d{2}[.]\\w*$/i.exec(date) || [];\n if (\n year === undefined &&\n month === undefined &&\n day === undefined &&\n hour === undefined &&\n minute === undefined\n ) {\n [, year, month, day, hour, minute] =\n /^(\\d{4})-(\\d{2})-(\\d{2})T(\\d{2}):(\\d{2}):\\d{2}$/i.exec(date) || [];\n }\n if (format === 'time') {\n return `${hour}:${minute}`;\n } else if (format === 'date') {\n return `${day}/${month}/${year}`;\n }\n\n return `${day}/${month}/${year} - ${hour}:${minute}`;\n}\n\nexport function phonePT(value) {\n switch (value) {\n // From server\n case 'Cellphone':\n return messages[localStorage.contacttoLang]['contact.form.cellphone']; // 'Celular';\n case 'Home':\n return messages[localStorage.contacttoLang]['contact.form.home']; // 'Casa';\n case 'Primary':\n return messages[localStorage.contacttoLang]['contact.form.primary']; // 'Primário';\n case 'Work':\n return messages[localStorage.contacttoLang]['contact.form.work']; // 'Trabalho';\n // To server\n case messages[localStorage.contacttoLang]['contact.form.cellphone']: // 'Celular':\n return 'Cellphone';\n case messages[localStorage.contacttoLang]['contact.form.home']: // 'Casa':\n return 'Home';\n case messages[localStorage.contacttoLang]['contact.form.primary']: // 'Primário':\n return 'Primary';\n case messages[localStorage.contacttoLang]['contact.form.work']: // 'Trabalho':\n return 'Work';\n default:\n return value;\n }\n}\n\nexport function getAttendantName(attend) {\n if (attend.master_id > 0) {\n return attend.master_name;\n } else if (attend.att_first_name && attend.att_last_name) {\n return `${attend.att_first_name} ${attend.att_last_name}`;\n }\n return '-';\n}\n\nexport const CellNumber = (value) => {\n const val = removeNonDigit(value, 'join');\n return setMask(val, '(00) 0 0000-0000');\n};\n\nexport const PhoneNumber = (value) => {\n const val = removeNonDigit(value, 'join');\n return val.length === 11 ? setMask(val, '(00) 0 0000-0000') : setMask(val, '(00) 0000-0000');\n};\n\nexport const PhoneNumberGlobal = (value, country) => {\n const val = removeNonDigit(value, 'join');\n switch (country) {\n case 'Brasil':\n case 'BR': {\n return val.length === 11 ? setMask(val, '(00) 0 0000-0000') : setMask(val, '(00) 0000-0000');\n }\n case 'GB': {\n return setMask(val, '(00) 0000 000000');\n }\n case 'MU': {\n return val.length === 11 ? setMask(val, '(000) 00000000') : setMask(val, '(000) 0000000');\n }\n default:\n return value;\n }\n};\n\nexport const generalPhoneNumber = (value) => {\n const val = removeNonDigit(value, 'join');\n if (val.length === 11) {\n return setMask(val, '(00) 0 0000-0000');\n } else if (val.length === 10) {\n return setMask(val, '(00) 0000-0000');\n } else {\n return val;\n }\n};\n\nexport const zipCode = (value) => {\n const val = removeNonDigit(value, 'join');\n return setMask(val, '00000-000');\n};\n\nexport const cpfMask = (value) => {\n const val = removeNonDigit(value, 'join');\n return setMask(val, '000.000.000-00');\n};\n\nexport const birthJStoDjango = (birthdate) => {\n if (/^\\d\\d[/]\\d\\d[/]\\d\\d\\d\\d$/.test(birthdate)) {\n const [, day, month, year] = /^(\\d\\d)[/](\\d\\d)[/](\\d\\d\\d\\d)$/.exec(birthdate);\n\n return `${year}-${month}-${day}`;\n }\n return birthdate;\n};\n\nexport const getBrowserMaxWidth = () => (\n Math.max(\n document.body.scrollWidth,\n document.documentElement.scrollWidth,\n document.body.offsetWidth,\n document.documentElement.offsetWidth,\n document.documentElement.clientWidth,\n )\n);\n\nexport const renderPhoneDigit = (phone, country) => {\n let val = removeNonDigit(phone, 'join');\n switch (country) {\n case 'Brasil':\n case 'BR': {\n if (val.length === 10) {\n return setMask(val, '00 0000-0000');\n }\n return setMask(val, '00 0 0000-0000');\n }\n case 'GB': {\n return setMask(val, '(00) 0000 000000');\n }\n case 'MU': {\n if (val.substring(0, 2) === '00') {\n val = val.substring(2);\n }\n return setMask(val, '(000) 00000000');\n }\n default:\n return val;\n }\n}\n\nexport const renderNinethDigit = (value) => {\n const val = removeNonDigit(value, 'join');\n if(val.length === 10){\n return setMask(val, '00 0000-0000');\n }\n if(val.length === 11){\n return setMask(val, '00 0 0000-0000');\n }\n}\n\nexport const booleanPT = (value, order) => {\n const lang = !localStorage.contacttoLang ? 'pt' : localStorage.contacttoLang;\n if (order === 'fromServer') {\n if (value === true) {\n return messages[lang]['general.yes'];\n } else if (value === false) {\n return messages[lang]['general.no'];\n }\n } else if (order === 'toServer') {\n if (value === messages[lang]['general.yes']) {\n return true;\n } else if (value === messages[lang]['general.no']) {\n return false;\n }\n } else {\n return value;\n }\n}\n\nexport const generateRandomNumberString = (size) => {\n let result = '';\n for (let i = 0; i < size; i++) {\n result += Math.floor(Math.random() * 10);\n }\n return result;\n}\n\nexport function alarmPriority(alarm) {\n const lang = !localStorage.contacttoLang ? 'pt' : localStorage.contacttoLang;\n switch (alarm) {\n case 1:\n return messages[lang]['general.highPriority'];\n case 2:\n return messages[lang]['general.mediumPriority'];\n case 3:\n return messages[lang]['general.lowPriority'];\n case 4:\n return messages[lang]['general.sysPriority'];\n default:\n return '';\n }\n}\n\nexport function naturalSort(a, b) {\n let NUMBER_GROUPS = /(-?\\d*\\.?\\d+)/g,\n aa = String(a).split(NUMBER_GROUPS),\n bb = String(b).split(NUMBER_GROUPS),\n min = Math.min(aa.length, bb.length);\n\n for (var i = 0; i < min; i++) {\n var x = parseFloat(aa[i]) || aa[i].toLowerCase(),\n y = parseFloat(bb[i]) || bb[i].toLowerCase();\n if (x < y) return -1;\n else if (x > y) return 1;\n }\n\n return 0;\n}\n\nexport function returnColor(colorList, position) {\n return colorList[position % colorList.length];\n}\n\nexport function formatBirthdate(dateString) {\n const [year, month, day] = dateString.split(\"-\");\n return `${day}/${month}/${year}`;\n}\n","import React from 'react';\nimport PropTypes from 'prop-types';\n\nimport CallButton from '../../Common/CallButtonV2';\nimport AlarmIcon from '../../../icons/AlarmIcon';\nimport messagesAlarms from '../../../BLL/locale/messagesAlarms';\nimport { trDescriptionLang } from '../../../BLL/dictionary';\n\nimport { formatDate } from '../../../BLL/general';\nimport style from './attendsCard.module.scss';\n\nconst AttendsOpenCard = ({\n attend,\n attendant,\n user,\n setUserBusy,\n channelId,\n iconColor,\n lang,\n history,\n showIcons,\n}) => (\n
\n
\n
\n {showIcons &&\n \n }\n
\n
\n
{attendant}
\n
{formatDate(attend.open_ts, 'card')}
\n
\n
\n {(attend.highest_code === '384' || attend.highest_code === '381') && `${messagesAlarms[lang][attend.highest_code]} - `}\n {attend.tr_description ? `${trDescriptionLang(attend.tr_description)}` : `${messagesAlarms[lang][attend.highest_code]}`}\n
\n \n
\n
\n);\n\nAttendsOpenCard.defaultProps = {\n iconColor: '#D8342B',\n};\n\nAttendsOpenCard.propTypes = {\n attend: PropTypes.string.isRequired,\n attendant: PropTypes.string.isRequired,\n channelId: PropTypes.string.isRequired,\n user: PropTypes.shape({\n id: PropTypes.number,\n username: PropTypes.string,\n first_name: PropTypes.string,\n last_name: PropTypes.string,\n email: PropTypes.string,\n password: PropTypes.string,\n groups: PropTypes.arrayOf(PropTypes.number),\n is_active: PropTypes.bool,\n is_staff: PropTypes.bool,\n is_superuser: PropTypes.bool,\n user_info: PropTypes.shape({\n id: PropTypes.number,\n user: PropTypes.number,\n phone: PropTypes.string,\n mobile: PropTypes.string,\n email: PropTypes.string,\n extension_id: PropTypes.number,\n }),\n actions: PropTypes.arrayOf(\n PropTypes.shape({\n id: PropTypes.number,\n priority: PropTypes.number,\n user: PropTypes.number,\n receive_sms: PropTypes.bool,\n receive_email: PropTypes.bool,\n }),\n ),\n }).isRequired,\n setUserBusy: PropTypes.func.isRequired,\n preAttendSetBusy: PropTypes.func.isRequired,\n lang: PropTypes.string.isRequired,\n iconColor: PropTypes.string,\n};\n\nexport default AttendsOpenCard;\n","export const pagination = 50;\n\nexport const clientsOrdering = 'account';\nexport const contactsOrdering = 'priority';\nexport const transmissorsOrdering = 'zone';\nexport const transmittersOrdering = 'zone';\nexport const attendantsOrdering = 'username';\nexport const attendsOrdering = '-status,-id';\nexport const attendsClientOrdering = '-status,-id';\nexport const alarmsOrdering = 'code';\nexport const nameOrdering = 'name';\nexport const limit = 'limit=50';\n\nexport const maxTransmitters = 16;\nexport const maxClosedAttends = 6;\nexport const maxDashboardAttends = 6;\n\nexport const screenResolution = () => {\n const res = window.innerWidth;\n if (res < 768) {\n return 'sm';\n } else if (res < 1280) {\n return 'md';\n }\n return 'lg';\n};\n\n\nexport const brazilCountryStateList = [\n 'AC',\n 'AL',\n 'AM',\n 'AP',\n 'BA',\n 'CE',\n 'DF',\n 'ES',\n 'GO',\n 'MA',\n 'MG',\n 'MS',\n 'MT',\n 'PA',\n 'PB',\n 'PE',\n 'PI',\n 'PR',\n 'RJ',\n 'RN',\n 'RO',\n 'RR',\n 'RS',\n 'SC',\n 'SP',\n 'SE',\n 'TO',\n];\n\nexport const alarmBackgroundColor = ['#EC8981', '#F9BE7D', '#59C599', '#59D7F2'];\nexport const alarmFooterIconColor = ['#D8342B', '#F69B38', '#008D53', '#3D94CC'];\nexport const zoneBackgroundColor = ['#59D7F2', '#59C599', '#F9BE7D', '#EC8981'];\nexport const zoneFooterIconColor = ['#3D94CC', '#008D53', '#F69B38', '#D8342B'];\nexport const lightGrayBackgroundColor = '#A09E9B';\nexport const grayFooterIconColor = '#807C78';\n\n\nexport const callStates = {\n IDLE: 9,\n NOCALL: -1,\n CLOSED: 0,\n OPEN: 1,\n INPROGRESS: 2,\n}\n","import React, { Component } from 'react';\nimport style from './arrow.scss';\n\nexport default class Arrow extends Component {\n constructor(props) {\n super(props);\n\n this.renderArrow = this.renderArrow.bind(this);\n this.clickLeftArrow = this.clickLeftArrow.bind(this);\n this.clickRightArrow = this.clickRightArrow.bind(this);\n this.calcHeadersSize = this.calcHeadersSize.bind(this);\n }\n\n calcHeadersSize() {\n if (this.props.headers.length === 1) {\n return 46;\n } else if (this.props.headers.length === 2) {\n return 60;\n }\n return 80;\n }\n\n clickLeftArrow() {\n this.props.onClick();\n }\n\n clickRightArrow() {\n this.props.onClick();\n }\n\n renderArrow() {\n if (this.props.side === 'left') {\n return (\n
\n \n \n \n
\n );\n }\n return (\n
\n \n \n \n
\n );\n }\n\n render() {\n return this.renderArrow();\n }\n}\n","import React, { Component } from 'react';\nimport PropTypes from 'prop-types';\nimport Arrow from '../../icons/Arrow';\nimport style from './customCardHOC.module.scss'\n\nexport default class CustomCardHOC extends Component {\n constructor(props) {\n super(props);\n\n this.state = {\n current: 0,\n };\n\n this.Header = this.Header.bind(this);\n this.Body = this.Body.bind(this);\n this.Footer = this.Footer.bind(this);\n\n this.makeRandonNumber = this.makeRandonNumber.bind(this);\n this.randomColor = this.randomColor.bind(this);\n\n this.validateWordLenght = this.validateWordLenght.bind(this);\n this.handleClick = this.handleClick.bind(this);\n\n this.moveComponentToLeft = this.moveComponentToLeft.bind(this);\n this.moveComponentToRight = this.moveComponentToRight.bind(this);\n }\n\n /*\n Verifica quantidade de componentes internos para fazer o carrousel a direita\n */\n moveComponentToRight() {\n const atual = this.state.current + 1;\n if (atual < this.props.childComponent.length) {\n this.setState({ current: atual });\n }\n }\n\n /*\n Verifica quantidade de componentes internos para fazer o carrousel a esquerda\n */\n moveComponentToLeft() {\n const atual = this.state.current - 1;\n if (atual >= 0) {\n this.setState({ current: atual });\n }\n }\n\n /*\n Calcula a quantidade de linhas no header para melhor posicionamento\n */\n calcHeadersSize() {\n if (this.props.headers.length === 1) {\n return 46;\n } else if (this.props.headers.length === 2) {\n return 60;\n }\n return 80;\n }\n\n /*\n Calcula a margin de linhas no header para melhor posicionamento\n */\n calcMargin() {\n if (this.props.headers[this.state.current].length === 1) {\n return '0px';\n } else if (this.props.headers[this.state.current].length === 2) {\n return '8px';\n }\n return '13px';\n }\n\n /*\n Gera número aleatório baseado na stack máxima de 255 posições\n */\n makeRandonNumber(limit = 255) {\n return Math.floor(Math.random() * limit);\n }\n\n /*\n Gera cores(rgba) aleatórias baseado na stack máxima de 255 posições\n */\n randomColor() {\n return (\n `rgba(${ \n this.makeRandonNumber(255) \n },${ \n this.makeRandonNumber(255) \n },${ \n this.makeRandonNumber(255) \n },0.7)`\n );\n }\n\n /*\n Dispara o callback de click do component\n */\n handleClick() {\n this.props.onClick();\n }\n\n /*\n Valida quantidade de caracteres máximos para serem exibidos no header sem comprometer a boa leitura\n */\n validateWordLenght(word) {\n const len = word.length;\n let idx = 0;\n let result = '';\n if (len > 50) {\n while (idx < 47) {\n result += word.charAt(idx);\n idx++;\n }\n result += '...';\n return result;\n }\n return word;\n }\n\n Header() {\n if (this.props.childComponent.length > 1) {\n const theme = Array.isArray(this.props.theme) ? this.props.theme[this.state.current] : this.props.theme;\n return (\n \n {this.state.current - 1 >= 0 &&\n
\n \n
\n }\n {this.state.current + 1 < this.props.childComponent.length &&\n
\n \n
\n }\n {this.props.headers[this.state.current].map((h, index) => (\n \n {this.validateWordLenght(h)}\n \n ))}\n \n );\n }\n return (\n \n {this.props.headers.map((h, index) => (\n \n {this.validateWordLenght(h)}\n \n ))}\n \n );\n }\n\n Body() {\n return (\n \n {this.props.childComponent[this.state.current]}\n \n );\n }\n\n Footer() {\n if (this.props.footerComponent) {\n return (\n
\n
\n {this.props.footerComponent}\n
\n
\n );\n }\n return null;\n }\n\n render() {\n return (\n \n {this.Header()}\n {this.Body()}\n {this.Footer()}\n \n );\n }\n}\n\nCustomCardHOC.propTypes = {\n headers: PropTypes.any,\n childComponent: PropTypes.array.isRequired,\n footerComponent: PropTypes.element,\n onClick: PropTypes.func.isRequired,\n theme: PropTypes.string,\n float: PropTypes.string,\n footerFloat: PropTypes.string,\n minHeight: PropTypes.string,\n width: PropTypes.string,\n maxHeight: PropTypes.string,\n headerFontSize: PropTypes.string,\n};\n\nCustomCardHOC.defaultProps = {\n theme: '',\n float: 'left',\n footerFloat: 'left',\n minHeight: '',\n maxHeight: '1.1rem',\n headerFontSize: '1rem',\n width: '100%',\n};\n","import React from 'react';\nimport PropTypes from 'prop-types';\nimport { FormattedMessage } from 'react-intl';\nimport AttendsOpenCard from '../../../Cards/Attends/AttendsOpenCard';\nimport { returnColor } from '../../../../BLL/general';\nimport {\n alarmBackgroundColor,\n alarmFooterIconColor,\n zoneBackgroundColor,\n zoneFooterIconColor,\n lightGrayBackgroundColor,\n grayFooterIconColor\n} from '../../../../BLL/globals';\nimport style from './openAttends.module.scss';\n\nimport CustomCardHOC from '../../../Cards/CustomCardHOC';\n\nconst OpenAttends = ({\n attends,\n user,\n setUserBusy,\n channelId,\n lang,\n history,\n showIcons,\n useZoneColors\n}) => {\n const fillColor = {\n 1: '#D8342B',\n 2: '#F69B38',\n 3: '#008D53',\n 4: '#3D94CC',\n };\n const priorityColor = ['#EC8981', '#F9BE7D', '#59C599', '#59D7F2'];\n return (\n
\n
\n
\n \n
\n
\n
\n
\n {attends.length > 0 ? (\n attends.slice(0, 6).map((open) => {\n let theme = returnColor(alarmBackgroundColor, open.highest_priority - 1);\n let iconColor = returnColor(alarmFooterIconColor, open.highest_priority - 1);\n let clientName = `${open.client_first_name.split(' ')[0]} ${open.client_last_name.split(' ').pop()}`\n if (open.is_from_secondary && open.secondary_first_name) {\n clientName = `${open.secondary_first_name.split(' ')[0]} ${open.secondary_last_name.split(' ').pop()}`\n }\n if (useZoneColors) {\n if (open.highest_code === '101' && open.tr_zone) {\n theme = returnColor(zoneBackgroundColor, parseInt(open.tr_zone) -1);\n iconColor = returnColor(zoneFooterIconColor, parseInt(open.tr_zone) -1);\n } else if (open.highest_code === '100') {\n const redColor = 3;\n theme = returnColor(zoneBackgroundColor, redColor);\n iconColor = returnColor(zoneFooterIconColor, redColor);\n } else {\n theme = lightGrayBackgroundColor;\n iconColor = grayFooterIconColor;\n }\n }\n const AttendsOpen = (\n \n : `${open.att_first_name} ${open.att_last_name}`\n }\n user={user}\n setUserBusy={setUserBusy}\n channelId={channelId}\n iconColor={iconColor}\n history={history}\n showIcons={showIcons}\n />\n );\n\n return (\n
\n {}}\n />\n
\n );\n })\n ) : (\n
\n \n
\n
\n )}\n
\n
\n );\n};\n\nOpenAttends.propTypes = {\n channelId: PropTypes.string.isRequired,\n attends: PropTypes.arrayOf(\n PropTypes.shape({\n id: PropTypes.number,\n cli_info: PropTypes.shape({\n first_name: PropTypes.string,\n last_name: PropTypes.string,\n }),\n open_ts: PropTypes.string,\n tenant_from: PropTypes.string,\n }),\n ).isRequired,\n user: PropTypes.shape({\n id: PropTypes.number,\n username: PropTypes.string,\n first_name: PropTypes.string,\n last_name: PropTypes.string,\n email: PropTypes.string,\n password: PropTypes.string,\n groups: PropTypes.arrayOf(PropTypes.number),\n is_active: PropTypes.bool,\n is_staff: PropTypes.bool,\n is_superuser: PropTypes.bool,\n user_info: PropTypes.shape({\n id: PropTypes.number,\n user: PropTypes.number,\n phone: PropTypes.string,\n mobile: PropTypes.string,\n email: PropTypes.string,\n extension_id: PropTypes.number,\n }),\n actions: PropTypes.arrayOf(\n PropTypes.shape({\n id: PropTypes.number,\n priority: PropTypes.number,\n user: PropTypes.number,\n receive_sms: PropTypes.bool,\n receive_email: PropTypes.bool,\n }),\n ),\n }).isRequired,\n setUserBusy: PropTypes.func.isRequired,\n lang: PropTypes.string.isRequired,\n};\n\nexport default OpenAttends;\n","import React from 'react';\nimport PropTypes from 'prop-types';\n\nimport AlarmIcon from '../../../icons/AlarmIcon';\nimport messagesAlarms from '../../../BLL/locale/messagesAlarms';\nimport { trDescriptionLang } from '../../../BLL/dictionary';\n\nimport { formatDate } from '../../../BLL/general';\nimport '../../../css/iconsAlarms.scss';\nimport style from './attendsCard.module.scss';\n\nconst AttendsClosedCard = ({ attend_ts, attendant, iconColor, alarmCode, lang, tr_description, showIcons, attend_id }) => (\n
\n
\n
\n {showIcons &&\n \n }\n
\n
\n
{attendant}
\n
{formatDate(attend_ts, 'card')}
\n
\n
\n {tr_description \n ? `${(alarmCode === '384' || alarmCode === '381') ? `${messagesAlarms[lang][alarmCode]} - ${trDescriptionLang(tr_description)}` : trDescriptionLang(tr_description) }`\n : messagesAlarms[lang][alarmCode] !== undefined ? messagesAlarms[lang][alarmCode] : messagesAlarms[lang][101]\n }\n
\n
\n
\n);\n\nAttendsClosedCard.defaultProps = {\n iconColor: '#D8342B',\n};\n\nAttendsClosedCard.propTypes = {\n attendant: PropTypes.string.isRequired,\n attend_ts: PropTypes.string.isRequired,\n alarmCode: PropTypes.string.isRequired,\n lang: PropTypes.string.isRequired,\n iconColor: PropTypes.string,\n};\n\nexport default AttendsClosedCard;\n","import React from 'react';\nimport PropTypes from 'prop-types';\nimport { FormattedMessage } from 'react-intl';\nimport { returnColor } from '../../../../BLL/general';\nimport {\n alarmBackgroundColor,\n alarmFooterIconColor,\n zoneBackgroundColor,\n zoneFooterIconColor,\n lightGrayBackgroundColor,\n grayFooterIconColor\n} from '../../../../BLL/globals';\nimport AttendsClosedCard from '../../../Cards/Attends/AttendsClosedCard';\nimport CustomCardHOC from '../../../Cards/CustomCardHOC';\n\nimport style from './closedAttends.module.scss';\n\nconst ClosedAttends = ({ attends, props, lang, history, showIcons, useZoneColors }) => {\n const attendsLength = attends ? attends.length : 0;\n return (\n
\n
\n
\n 6 ? 6 : attendsLength }} />\n
\n
\n
\n
\n {attendsLength > 0 ? (\n attends.slice(0, 6).map((closed) => {\n let theme = closed.test_attend ? '#59D7F2' : returnColor(alarmBackgroundColor, closed.highest_priority -1);\n let iconColor = returnColor(alarmFooterIconColor, closed.highest_priority -1);\n let clientName = `${closed.client_first_name.split(' ')[0]} ${closed.client_last_name.split(' ').pop()}${closed.test_attend ? ' --Test--' : ''}`;\n if (closed.is_from_secondary && closed.secondary_first_name) {\n clientName = `${closed.secondary_first_name.split(' ')[0]} ${closed.secondary_last_name.split(' ').pop()}${closed.test_attend ? ' --Test--' : ''}`\n }\n if (useZoneColors) {\n if (closed.highest_code === '101' && closed.tr_zone) {\n theme = returnColor(zoneBackgroundColor, parseInt(closed.tr_zone) -1);\n iconColor = returnColor(zoneFooterIconColor, parseInt(closed.tr_zone) -1);\n } else if (closed.highest_code === '100') {\n const redColor = 3;\n theme = returnColor(zoneBackgroundColor, redColor);\n iconColor = returnColor(zoneFooterIconColor, redColor);\n\n } else {\n theme = lightGrayBackgroundColor;\n iconColor = grayFooterIconColor;\n }\n }\n const AttendsClose = (\n\n \n );\n\n return (\n
\n {\n history.push(`/app/attends/closed/${closed.id}`);\n }}\n childComponent={[AttendsClose]}\n theme={theme}\n />\n
\n );\n })\n ) : (\n
\n
\n \n
\n
\n )}\n\n
\n
\n );\n};\n\nClosedAttends.propTypes = {\n attends: PropTypes.arrayOf(\n PropTypes.shape({\n id: PropTypes.number,\n cli_info: PropTypes.shape({\n first_name: PropTypes.string,\n last_name: PropTypes.string,\n }),\n master_user_id: PropTypes.number,\n open_ts: PropTypes.string,\n tenant_from: PropTypes.string,\n }),\n ).isRequired,\n lang: PropTypes.string.isRequired,\n};\n\nexport default ClosedAttends;\n","import React from 'react';\nimport PropTypes from 'prop-types';\nimport '../css/loading.scss';\n\nconst Loading = ({ text }) => (\n\n
\n

{text}

\n
\n \n \n \n
\n
\n\n);\n\nLoading.propTypes = {\n text: PropTypes.oneOfType([PropTypes.string, PropTypes.func]),\n};\n\nLoading.defaultProps = { text: 'Carregando' };\n\nexport default Loading;\n","import React from 'react';\nimport PropTypes from 'prop-types';\nimport { Link } from 'react-router-dom';\nimport { FormattedMessage } from 'react-intl';\n\nimport cardStyle from './alarmsCard.module.scss';\nimport style from '../card.module.scss';\n\nconst AlarmsCard = ({ alarms, month, current, previous, urlCurrDate, urlPrevDate }) => (\n
\n
\n
\n \n \n \n {/* {' Mês: '} */}\n \n
\n
\n \n \n \n {/* {' Total de Atendimentos: '} */}\n \n
\n
\n \n \n \n {/* {' Chamadas com voz: '} */}\n \n
\n
\n \n
\n {month[previous]}\n
\n
\n {alarms.prev_atts}\n
\n
\n {alarms.prev_voice}\n
\n \n \n
\n {month[current]}\n
\n
\n {alarms.curr_atts}\n
\n
\n {alarms.curr_voice}\n
\n \n
\n);\n\nAlarmsCard.defaultProps = {\n alarms: {\n curr_voice: 0,\n prev_voice: 0,\n curr_atts: 0,\n prev_atts: 0,\n },\n};\n\nAlarmsCard.propTypes = {\n alarms: PropTypes.shape({\n curr_voice: PropTypes.number,\n prev_voice: PropTypes.number,\n curr_atts: PropTypes.number,\n prev_atts: PropTypes.number,\n }).isRequired,\n current: PropTypes.number.isRequired,\n previous: PropTypes.number.isRequired,\n month: PropTypes.arrayOf(\n PropTypes.string,\n ).isRequired,\n urlCurrDate: PropTypes.string.isRequired,\n urlPrevDate: PropTypes.string.isRequired,\n};\n\nexport default AlarmsCard;\n","import React, { Component } from 'react';\nimport PropTypes from 'prop-types';\nimport Chart from 'chart.js/auto'\n\nexport default class CustomChart extends Component {\n constructor(props) {\n super(props);\n\n this.state = {\n id: '',\n };\n\n this.generateRandomId = this.generateRandomId.bind(this);\n this.makeRandonNumber = this.makeRandonNumber.bind(this);\n this.randomColor = this.randomColor.bind(this);\n this.paintChart = this.paintChart.bind(this);\n this.checkColors = this.checkColors.bind(this);\n }\n\n\n UNSAFE_componentWillMount() {\n this.generateRandomId();\n }\n\n componentDidMount() {\n this.paintChart();\n }\n\n\n makeRandonNumber(limit) {\n return Math.floor(Math.random() * limit);\n }\n\n randomColor() {\n return (\n `rgba(${\n this.makeRandonNumber(255) \n },${\n this.makeRandonNumber(255) \n },${\n this.makeRandonNumber(255) \n },0.2)`\n );\n }\n\n generateRandomId() {\n const part1 = Math.random() * 100 * 1024 * 1024;\n const part2 = Math.random() * 100;\n const customId = Math.floor(part1 * part2);\n this.setState({ id: customId });\n }\n\n checkColors() {\n if (this.props.colors) {\n return [...this.props.colors.map(color => color)];\n }\n return [\n this.randomColor(),\n this.randomColor(),\n this.randomColor(),\n this.randomColor(),\n this.randomColor(),\n this.randomColor(),\n this.randomColor(),\n this.randomColor(),\n this.randomColor(),\n this.randomColor(),\n this.randomColor(),\n this.randomColor(),\n this.randomColor(),\n this.randomColor(),\n this.randomColor(),\n this.randomColor(),\n this.randomColor(),\n this.randomColor(),\n this.randomColor(),\n this.randomColor(),\n this.randomColor(),\n this.randomColor(),\n this.randomColor(),\n this.randomColor(),\n this.randomColor(),\n this.randomColor(),\n this.randomColor(),\n this.randomColor(),\n this.randomColor(),\n this.randomColor(),\n this.randomColor(),\n this.randomColor(),\n this.randomColor(),\n this.randomColor(),\n this.randomColor(),\n this.randomColor(),\n this.randomColor(),\n this.randomColor(),\n this.randomColor(),\n this.randomColor(),\n this.randomColor(),\n this.randomColor(),\n this.randomColor(),\n this.randomColor(),\n ];\n }\n\n paintChart() {\n const ctx = document.getElementById('attendChart');\n if (this.props.isMultiBar) {\n const chart = new Chart(ctx, {\n type: 'bar',\n data: {\n labels: this.props.labels,\n datasets: this.props.data,\n },\n options: {\n maintainAspectRatio: false,\n scales: {\n xAxes: [\n {\n // categoryPercentage: 1.0,\n barPercentage: 1.0,\n gridLines: {\n display: false,\n },\n },\n ],\n yAxes: [\n {\n stacked: false,\n gridLines: {\n lineWidth: 1,\n },\n },\n ],\n },\n legend: {\n display: this.props.displayLegend,\n },\n },\n });\n } else {\n const chart = new Chart(ctx, {\n type: this.props.styleChart,\n data: {\n labels: [...this.props.labels],\n datasets: [\n {\n data: [...this.props.data],\n backgroundColor: this.checkColors(),\n borderWidth: 1,\n },\n ],\n },\n options: {\n indexAxis: this.props.isHorizontal ? 'y' : 'x',\n maintainAspectRatio: false,\n scales: {\n xAxes: [\n {\n gridLines: {\n display: false,\n },\n },\n ],\n yAxes: [\n {\n gridLines: {\n lineWidth: 1,\n },\n },\n ],\n },\n legend: {\n display: this.props.displayLegend,\n },\n tooltips: {\n enabled: this.props.tooltipEnabled,\n },\n },\n });\n }\n }\n\n render() {\n return (\n \n );\n }\n}\n\nCustomChart.propTypes = {\n styleChart: PropTypes.string,\n displayLegend: PropTypes.bool,\n tooltipEnabled: PropTypes.bool,\n height: PropTypes.string,\n minWidth: PropTypes.string,\n minHeight: PropTypes.string,\n isHorizontal: PropTypes.bool,\n};\n\nCustomChart.defaultProps = {\n styleChart: 'bar',\n isHorizontal: false,\n displayLegend: false,\n tooltipEnabled: true,\n height: '190px',\n minWidth: '100%',\n minHeight: '0px',\n};\n","import React, { Component } from 'react';\nimport moment from 'moment';\nimport { FormattedMessage } from 'react-intl';\nimport PropTypes from 'prop-types';\n\nimport '../../css/contactto.scss';\nimport './attendByDayChart.scss';\n\nimport CustomChart from './CustomChart';\n\nclass AttendByDayChart extends Component {\n constructor(props) {\n super(props);\n this.alta = [];\n this.media = [];\n this.baixa = [];\n this.sistema = [];\n this.dias = [];\n if (localStorage.contacttoLang === 'pt') {\n this.highLabel = 'Alta';\n this.mediumLabel = 'Média';\n this.lowLabel = 'Baixa';\n this.systemLabel = 'Sistema';\n }\n if (localStorage.contacttoLang === 'en') {\n this.highLabel = 'High';\n this.mediumLabel = 'Medium';\n this.lowLabel = 'Low';\n this.systemLabel = 'System';\n }\n this.props.numberOfAttends.map((el) => {\n this.dias.push(moment(el.day).format('DD/MM'));\n this.alta.push(el.priority_1);\n this.media.push(el.priority_2);\n this.baixa.push(el.priority_3);\n this.sistema.push(el.priority_4);\n return this;\n });\n\n this.datasets = [\n {\n label: this.highLabel,\n backgroundColor: '#EC8981',\n backgroundColorHover: '#3e95cd',\n data: this.alta,\n fill: true,\n },\n {\n label: this.mediumLabel,\n backgroundColor: '#F9BE7D',\n backgroundColorHover: '#3e95cd',\n data: this.media,\n fill: true,\n },\n {\n label: this.lowLabel,\n backgroundColor: '#59C599',\n backgroundColorHover: '#3e95cd',\n data: this.baixa,\n fill: true,\n },\n {\n label: this.systemLabel,\n backgroundColor: '#59D7F2',\n backgroundColorHover: '#3e95cd',\n data: this.sistema,\n fill: true,\n },\n ];\n }\n\n render() {\n return (\n
\n \n
\n \n {}\n \n \n {}\n \n \n {}\n \n \n {}\n \n \n {}\n \n
\n
\n );\n }\n}\n\nAttendByDayChart.defaultProps = {\n height: '350px',\n width: '350px',\n numberOfAttends: '',\n};\n\nAttendByDayChart.propTypes = {\n height: PropTypes.string,\n width: PropTypes.string,\n numberOfAttends: PropTypes.arrayOf(\n PropTypes.shape({\n dias: PropTypes.string,\n alta: PropTypes.number,\n media: PropTypes.number,\n baixa: PropTypes.number,\n sistema: PropTypes.number,\n }),\n ),\n};\n\nexport default AttendByDayChart;\n","import React, { Component } from 'react';\nimport PropTypes from 'prop-types';\nimport Chart from 'chart.js/auto'\n\nexport default class CustomChart2 extends Component {\n constructor(props) {\n super(props);\n\n this.state = {\n id: '',\n };\n\n this.generateRandomId = this.generateRandomId.bind(this);\n this.makeRandonNumber = this.makeRandonNumber.bind(this);\n this.randomColor = this.randomColor.bind(this);\n this.paintChart = this.paintChart.bind(this);\n this.checkColors = this.checkColors.bind(this);\n }\n\n\n UNSAFE_componentWillMount() {\n this.generateRandomId();\n }\n\n componentDidMount() {\n this.paintChart();\n }\n\n\n makeRandonNumber(limit) {\n return Math.floor(Math.random() * limit);\n }\n\n randomColor() {\n return (\n `rgba(${\n this.makeRandonNumber(255) \n },${\n this.makeRandonNumber(255) \n },${\n this.makeRandonNumber(255) \n },0.2)`\n );\n }\n\n generateRandomId() {\n const part1 = Math.random() * 100 * 1024 * 1024;\n const part2 = Math.random() * 100;\n const customId = Math.floor(part1 * part2);\n this.setState({ id: customId });\n }\n\n checkColors() {\n if (this.props.colors) {\n return [...this.props.colors.map(color => color)];\n }\n return [\n this.randomColor(),\n this.randomColor(),\n this.randomColor(),\n this.randomColor(),\n this.randomColor(),\n this.randomColor(),\n this.randomColor(),\n this.randomColor(),\n this.randomColor(),\n this.randomColor(),\n this.randomColor(),\n this.randomColor(),\n this.randomColor(),\n this.randomColor(),\n this.randomColor(),\n this.randomColor(),\n this.randomColor(),\n this.randomColor(),\n this.randomColor(),\n this.randomColor(),\n this.randomColor(),\n this.randomColor(),\n this.randomColor(),\n this.randomColor(),\n this.randomColor(),\n this.randomColor(),\n this.randomColor(),\n this.randomColor(),\n this.randomColor(),\n this.randomColor(),\n this.randomColor(),\n this.randomColor(),\n this.randomColor(),\n this.randomColor(),\n this.randomColor(),\n this.randomColor(),\n this.randomColor(),\n this.randomColor(),\n this.randomColor(),\n this.randomColor(),\n this.randomColor(),\n this.randomColor(),\n this.randomColor(),\n this.randomColor(),\n ];\n }\n\n paintChart() {\n const ctx = document.getElementById('clientMonthChart');\n if (this.props.isMultiBar) {\n const chart = new Chart(ctx, {\n type: 'bar',\n data: {\n labels: this.props.labels,\n datasets: this.props.data,\n },\n options: {\n maintainAspectRatio: false,\n scales: {\n xAxes: [\n {\n // categoryPercentage: 1.0,\n barPercentage: 1.0,\n gridLines: {\n display: false,\n },\n },\n ],\n yAxes: [\n {\n stacked: false,\n gridLines: {\n lineWidth: 1,\n },\n },\n ],\n },\n legend: {\n display: this.props.displayLegend,\n },\n },\n });\n } else {\n const chart = new Chart(ctx, {\n type: this.props.styleChart,\n data: {\n labels: [...this.props.labels],\n datasets: [\n {\n data: [...this.props.data],\n backgroundColor: this.checkColors(),\n borderWidth: 1,\n },\n ],\n },\n options: {\n maintainAspectRatio: false,\n scales: {\n y: {\n beginAtZero: false,\n },\n xAxes: [\n {\n gridLines: {\n display: false,\n },\n },\n ],\n yAxes: [\n {\n gridLines: {\n lineWidth: 1,\n },\n // ticks: {\n // beginAtZero: true,\n // },\n },\n ],\n },\n legend: {\n display: this.props.displayLegend,\n },\n tooltips: {\n enabled: this.props.tooltipEnabled,\n },\n },\n });\n }\n }\n\n render() {\n return (\n \n );\n }\n}\n\nCustomChart2.propTypes = {\n styleChart: PropTypes.string,\n displayLegend: PropTypes.bool,\n tooltipEnabled: PropTypes.bool,\n height: PropTypes.string,\n minWidth: PropTypes.string,\n minHeight: PropTypes.string,\n};\n\nCustomChart2.defaultProps = {\n styleChart: 'bar',\n displayLegend: false,\n tooltipEnabled: true,\n height: '190px',\n minWidth: '100%',\n minHeight: '0px',\n};\n","import React from 'react';\nimport PropTypes from 'prop-types';\nimport { checkMonth } from '../../BLL/dictionary';\n\nimport '../../css/contactto.scss';\n\nimport CustomChart2 from './CustomChart2';\n\nconst ClientTotalMonthlyChart = ({ height, report, width }) => {\n const lang = localStorage.contacttoLang ? localStorage.contacttoLang : 'pt';\n const month = [];\n const values = [];\n const colors = [];\n const data = [\n ['o', ''],\n ...report.map(rpt => [\n colors.push('#46b474'),\n month.push(`${checkMonth(rpt.month, lang)}/${rpt.year}`),\n values.push(rpt.total ? rpt.total : 0),\n ]),\n ];\n\n const columns = [];\n return (\n
\n \n
\n );\n};\n\nClientTotalMonthlyChart.defaultProps = {\n height: '350px',\n width: '350px',\n};\n\nClientTotalMonthlyChart.propTypes = {\n height: PropTypes.string,\n width: PropTypes.string,\n};\n\nexport default ClientTotalMonthlyChart;\n","import React, { useState, useEffect } from 'react';\nimport PropTypes from 'prop-types';\nimport axios from 'axios';\nimport { FormattedMessage } from 'react-intl';\nimport { useSelector } from 'react-redux';\nimport OpenAttends from './OpenAttends/OpenAttends';\nimport ClosedAttends from './ClosedAttends/ClosedAttends';\nimport Loading from '../../../icons/Loading';\nimport Alarms from '../../Cards/Alarms/AlarmsCard';\nimport CustomCardHOC from '../../Cards/CustomCardHOC';\nimport AttendByDayChart from '../../Charts/AttendByDayChart';\nimport ClientTotalMonthly from '../../Charts/ClientTotalMonthlyChart';\n\nimport { getMonth } from '../../../BLL/dictionary';\nimport { host, getDomain, getToken } from '../../../BLL/environment';\n\nimport '../../../css/listPage.scss';\nimport style from './dashboard.module.scss'\n\nconst DashboardPage = (props) => {\n const attendsDashboard = useSelector(state => state.attendsDashboard);\n const user = useSelector(state => state.loggedAttendant);\n const browser = useSelector(state => state.browser);\n const localConfiguration = useSelector(state => state.localConfiguration.local);\n const globalConfiguration = useSelector(state => state.globalConfiguration.global);\n const lang = useSelector(state => state.locale.lang);\n\n const [totalVoiceReport, setTotalVoiceReport] = useState({});\n const [dailyTotalReport, setDailyTotalReport] = useState([])\n const [clientsTotalMonthlyReport, setClientsTotalMonthlyReport] = useState([]);\n const [attendsOpen, setAttendsOpen] = useState([]);\n const [attendsClosed, setAttendsClosed] = useState([]);\n const [urlCurrDate, setUrlCurrDate] = useState(undefined);\n const [urlPrevDate, setUrlPrevDate] = useState(undefined);\n const [showClosedAttends, setShowClosedAttends ] = useState(false);\n const [showAttendsCount, setShowAttendsCount] = useState(false);\n\n useEffect(() => {\n fetchAttendsTotalVoiceReport();\n setTotalVoiceReportDates();\n }, []);\n\n useEffect(() => {\n if (attendsDashboard) {\n setAttendsOpen(attendsDashboard.attendsOpen);\n setAttendsClosed(attendsDashboard.attendsClosed);\n }\n }, [attendsDashboard]);\n\n useEffect(() => {\n if (localConfiguration) {\n setShowClosedAttends(localConfiguration.last_attends);\n setShowAttendsCount(localConfiguration.attends_quantity);\n }\n }, [localConfiguration]);\n\n const fetchAttendsTotalVoiceReport = () => {\n axios.get(`https://${getDomain()}${host()}/api/reports/attends-tot-voice/`, {\n headers: { Authorization: `Token ${getToken()}` },\n }).then((res) => {\n if (res.data) {\n setTotalVoiceReport(Object.assign(res.data));\n }\n }).catch((err) => {\n throw err;\n });\n };\n\n const fetchDailyTotalAttendsReport = () => {\n if (dailyTotalReport.length <= 0) {\n axios.get(`https://${getDomain()}${host()}/api/reports/attends-daily-total/`, {\n headers: { Authorization: `Token ${getToken()}` },\n }).then((res) => {\n if (res.data.length > 0) {\n setDailyTotalReport(Object.assign(res.data));\n }\n }).catch((err) => {\n throw err;\n });\n }\n };\n\n const fetchClientTotalMonthly = () => {\n if (clientsTotalMonthlyReport.length <= 0) {\n axios.get(`https://${getDomain()}${host()}/api/reports/clients-total-month/`, {\n headers: { Authorization: `Token ${getToken()}` },\n }).then((res) => {\n setClientsTotalMonthlyReport(res.data.data);\n }).catch((err) => {\n console.log(err.response);\n })\n }\n };\n\n const setTotalVoiceReportDates = () => {\n const currDate = new Date();\n const prevDate = new Date(currDate.getFullYear(), currDate.getMonth() - 1);\n const currLastDay = new Date(currDate.getFullYear(), currDate.getMonth() + 1, 0, 23, 59, 59);\n // Must add 1 to month, JS date use months as list\n const currFirst = `start=${currDate.getFullYear()}-${\n currDate.getMonth() + 1 >= 10\n ? currDate.getMonth() + 1\n : `0${currDate.getMonth() + 1}`\n }-01`;\n const currLast = `&end=${currLastDay.getFullYear()}-${\n currLastDay.getMonth() + 1 >= 10\n ? currDate.getMonth() + 1\n : `0${currDate.getMonth() + 1}`\n }-${currLastDay.getDate()}`;\n\n const prevLastDay = new Date(prevDate.getFullYear(), prevDate.getMonth() + 1, 0, 23, 59, 59);\n // Must add 1 to month, JS date use months as list\n const prevFirst = `start=${prevDate.getFullYear()}-${\n prevDate.getMonth() + 1 >= 10\n ? prevDate.getMonth() + 1\n : `0${prevDate.getMonth() + 1}`\n }-01`;\n const prevLast = `&end=${prevLastDay.getFullYear()}-${\n prevLastDay.getMonth() + 1 >= 10\n ? prevDate.getMonth() + 1\n : `0${prevDate.getMonth() + 1}`\n }-${prevLastDay.getDate()}`;\n setUrlCurrDate(`${currFirst}${currLast}`);\n setUrlPrevDate(`${prevFirst}${prevLast}`);\n };\n\n const totalVoiceReportComponent = (current, previous, month) => {\n const AlarmsCard = (\n \n );\n return (\n
\n ]}\n onClick={() => { }}\n childComponent={[AlarmsCard]}\n theme=\"#ffffff\"\n minHeight=\"190px\"\n />\n
\n );\n };\n\n const dailyTotalReportComponent = () => {\n if (dailyTotalReport.length > 0) {\n return (\n
\n \n
\n );\n }\n return } />;\n };\n\n const clientsTotalMonthlyReportComponent = () => {\n if (clientsTotalMonthlyReport.length > 0) {\n return (\n
\n \n
\n );\n }\n return } />;\n }\n\n let month = [];\n if (lang) {\n month = getMonth(lang);\n } else {\n month = getMonth('pt');\n }\n const date = new Date();\n const current = date.getMonth();\n const previous = date.getMonth() === 0 ? 11 : date.getMonth() - 1;\n\n return(\n
\n {attendsOpen &&\n {}}\n setEmptyText={() => {}}\n history={props.history}\n showIcons={globalConfiguration?.show_icons}\n useZoneColors={globalConfiguration?.use_alarm_zones}\n {...browser}\n />\n }\n {showClosedAttends &&\n \n }\n {showAttendsCount &&\n
\n
\n \n
\n
\n
\n
\n \n \n \n {!globalConfiguration.use_alarm_zones &&\n fetchDailyTotalAttendsReport()}\n id=\"nav-priority-tab\"\n data-toggle=\"tab\"\n href=\"#nav-priority\"\n role=\"tab\"\n aria-controls=\"nav-priority\"\n aria-selected=\"false\"\n >\n \n \n }\n fetchClientTotalMonthly()}\n id=\"nav-client-monthly-tab\"\n data-toggle=\"tab\"\n href=\"#nav-client-monthly\"\n role=\"tab\"\n aria-controls=\"nav-client-monthly\"\n aria-selected=\"false\"\n >\n \n \n
\n
\n
\n
\n {totalVoiceReportComponent(current, previous, month)}\n
\n {!globalConfiguration.use_alarm_zones &&\n
\n {dailyTotalReportComponent()}\n
\n }\n
\n {clientsTotalMonthlyReportComponent()}\n
\n
\n
\n }\n
\n );\n}\n\nDashboardPage.propTypes = {\n channelId: PropTypes.string.isRequired,\n setUserBusy: PropTypes.func.isRequired,\n};\n\nexport default DashboardPage;\n","import React from 'react';\nimport PropTypes from 'prop-types';\nimport { FormattedMessage } from 'react-intl';\nimport '../../css/contactto.scss';\nimport '../../css/paginate.scss';\nimport '../../css/print.scss';\n\nexport default class Paginate extends React.Component {\n\n previousList() {\n if (this.props.page > 1) {\n const page = this.props.page - 1;\n this.props.setPage(page);\n }\n }\n\n nextList() {\n if ((this.props.page) * this.props.numPerPage + 1 <= this.props.numberOfElements) {\n const page = this.props.page + 1;\n this.props.setPage(page);\n }\n }\n\n render() {\n const startNumber = (this.props.page - 1) * this.props.numPerPage + 1;\n const endNumber = this.props.page * this.props.numPerPage;\n\n return (\n
\n {this.props.numberOfElements > this.props.numPerPage &&\n
\n \n {`${startNumber < this.props.numberOfElements ? startNumber : this.props.numberOfElements}-${endNumber < this.props.numberOfElements ? endNumber : this.props.numberOfElements} `}\n \n {` ${this.props.numberOfElements}`}\n \n \n \n
\n\t\t\t\t}\n
\n );\n }\n}\n\nPaginate.defaultProps = {\n outerClass: 'paginate-wrapper',\n};\n\nPaginate.propTypes = {\n outerClass: PropTypes.string,\n numberOfElements: PropTypes.number.isRequired,\n numPerPage: PropTypes.number.isRequired,\n setPage: PropTypes.func.isRequired,\n page: PropTypes.number.isRequired,\n};\n","export default {\n en: {\n 'broadcast.updated': 'updated',\n 'broadcast.added': 'added',\n 'broadcast.deleted': 'deleted',\n 'broadcast.recovered': 'recovered',\n 'broadcast.client': 'User',\n 'broadcast.contact': 'Contact',\n 'broadcast.transmitter': 'Transmitter',\n 'broadcast.alarm': 'Alarm',\n 'broadcast.attendant': 'Attendant',\n 'broadcast.zone': 'zone',\n 'broadcast.attendChanged': 'This ticket was assigned to the administrator',\n 'broadcast.settingsChanged': 'Settings updated',\n },\n pt: {\n 'broadcast.updated': 'atualizado',\n 'broadcast.added': 'adicionado',\n 'broadcast.deleted': 'excluido',\n 'broadcast.recovered': 'recuperado',\n 'broadcast.client': 'Usuário',\n 'broadcast.contact': 'Contato',\n 'broadcast.transmitter': 'Transmissor',\n 'broadcast.alarm': 'Alarme',\n 'broadcast.attendant': 'Atendente',\n 'broadcast.zone': 'zona',\n 'broadcast.attendChanged': 'O atendimento foi atribuido para o administrador',\n 'broadcast.settingsChanged': 'Atualização de configurações',\n },\n};\n","import React from 'react';\nimport PropTypes from 'prop-types';\nimport { FormattedMessage } from 'react-intl';\n\nimport Order from '../../../icons/Order';\nimport style from './clientPage.module.scss';\nimport '../../../css/icons.scss';\n\nconst ClientTableHeader = ({\n isAdmin,\n isOwner,\n ordering,\n orderByAccount,\n orderByName,\n iconDetail,\n}) => {\n const svgAccountRotation = ordering === '-account' ? 'icons-order--rotate' : '';\n const svgNameRotation = ordering === '-first_name,-last_name,-account' ? 'icons-order--rotate' : '';\n return (\n
\n
\n orderByAccount()}\n style={{ color: ordering === 'account' || ordering === '-account' ? '#00b8cb' : '#333' }}\n >\n \n \n
\n
\n orderByName()}\n style={{ color: ordering === 'first_name,last_name,account' || ordering === '-first_name,-last_name,-account' ? '#00b8cb' : '#333' }}\n >\n \n \n
\n
\n { }}\n style={{ color: '#333' }}\n >\n \n \n
\n
\n \n
\n \n {iconDetail}\n
\n
\n );\n};\n\nClientTableHeader.propTypes = {\n orderByAccount: PropTypes.func.isRequired,\n orderByName: PropTypes.func.isRequired,\n isAdmin: PropTypes.bool.isRequired,\n isOwner: PropTypes.bool.isRequired,\n ordering: PropTypes.string.isRequired,\n iconDetail: PropTypes.string.isRequired,\n};\n\nexport default ClientTableHeader;\n","import React from 'react';\nimport PropTypes from 'prop-types';\nimport { FormattedMessage } from 'react-intl';\n\nimport Order from '../../../icons/Order';\nimport style from './clientPage.module.scss';\nimport '../../../css/icons.scss';\n\nconst MobileTableHeader = ({\n isAdmin,\n isOwner,\n ordering,\n orderByAccount,\n orderByName,\n iconDetail,\n}) => {\n const svgAccountRotation = ordering === '-account' ? 'icons-order--rotate' : '';\n const svgNameRotation = ordering === '-first_name,-last_name,-account' ? 'icons-order--rotate' : '';\n return (\n
\n
\n orderByAccount()}\n style={{ color: ordering === 'account' || ordering === '-account' ? '#00b8cb' : '#333' }}\n >\n \n \n
\n
\n orderByName()}\n style={{ color: ordering === 'first_name,last_name,account' || ordering === '-first_name,-last_name,-account' ? '#00b8cb' : '#333' }}\n >\n \n \n
\n \n {iconDetail}\n
\n \n );\n};\n\nMobileTableHeader.propTypes = {\n orderByAccount: PropTypes.func.isRequired,\n orderByName: PropTypes.func.isRequired,\n isAdmin: PropTypes.bool.isRequired,\n isOwner: PropTypes.bool.isRequired,\n ordering: PropTypes.string.isRequired,\n iconDetail: PropTypes.string.isRequired,\n};\n\nexport default MobileTableHeader;\n","import React from 'react';\nimport PropTypes from 'prop-types';\nimport { FormattedMessage } from 'react-intl';\n\nimport style from './clientPage.module.scss';\n\nconst ClientPageButtonComponent = ({\n clientList,\n filter,\n status,\n browserHistory,\n removeFilter,\n showFilterModal,\n editFilter,\n}) => (\n
\n = 3) ? style.disabled : ''}`}\n disabled={status === 'trial' && clientList && clientList.length >= 3}\n onClick={() => browserHistory.push('/app/clients/form/add')}\n type=\"button\"\n >\n
\n \n + \n \n
\n \n {filter ?\n
\n removeFilter()}\n >\n
\n \n \n \n
\n \n editFilter()}\n >\n
\n \n \n \n \n
\n \n
\n :\n showFilterModal()}\n >\n
\n \n \n \n
\n \n }\n
\n);\n\nClientPageButtonComponent.propTypes = {\n removeFilter: PropTypes.func.isRequired,\n showFilterModal: PropTypes.func.isRequired,\n editFilter: PropTypes.func.isRequired,\n filter: PropTypes.string.isRequired,\n status: PropTypes.string.isRequired,\n browserHistory: PropTypes.shape({\n push: PropTypes.func,\n }).isRequired,\n clientList: PropTypes.arrayOf(\n PropTypes.shape({\n next: PropTypes.string,\n previous: PropTypes.string,\n results: PropTypes.arrayOf(\n PropTypes.shape({\n id: PropTypes.number,\n first_name: PropTypes.string,\n last_name: PropTypes.string,\n account: PropTypes.string,\n equipment_id: PropTypes.number,\n }),\n ),\n }),\n ).isRequired,\n};\n\nexport default ClientPageButtonComponent;\n","import React, { useState, useEffect } from 'react';\nimport { FormattedMessage } from 'react-intl';\nimport messages from '../../../BLL/locale/messages';\n\nimport style from './clientPage.module.scss';\n\nconst ClientFilterComponent = (props) => {\n const mobileEquipmentIds = props.equipment[0]?.data.filter(eq => eq.is_mobile).map(eq => eq.id).toString();\n const [filter, setFilter] = useState({});\n\n useEffect(() => {\n if (props.filter) {\n let newFilter = {};\n props.filter.split('&').forEach((elm) => {\n const key = elm.split('=')[0];\n const value = elm.split('=')[1];\n newFilter[key] = value\n });\n setFilter(newFilter);\n } else {\n setFilter({});\n }\n }, [props.filter]);\n\n if (Object.keys(filter).length > 0) {\n return (\n
\n
\n :\n {Object.keys(filter).map((elm) => {\n if (filter[elm]) {\n let value = '';\n if (elm === 'equipment_ids') {\n value = filter[elm] === mobileEquipmentIds ? messages[props.lang]['general.yes'] : messages[props.lang]['general.no'];\n } else if (elm === 'group_id') {\n const company = props.companies?.find(company => company.id === parseInt(filter[elm]));\n value = company ? company.name : messages[props.lang]['client.filter.noGroup'];\n } else {\n value = filter[elm]\n }\n return (\n
\n |{messages[props.lang][`client.filter.${elm}`]} - {value}|\n
\n );\n }\n return (<>);\n })}\n
\n
\n )\n } else {\n return (<>);\n }\n};\n\nexport default ClientFilterComponent;\n","import React from 'react';\nimport PropTypes from 'prop-types';\n\nconst Edit = ({ height, className, width }) => (\n \n\n \n \n \n \n \n \n \n \n);\n\nEdit.defaultProps = {\n height: '24',\n className: '',\n width: '24',\n};\n\nEdit.propTypes = {\n height: PropTypes.string,\n className: PropTypes.string,\n width: PropTypes.string,\n};\n\nexport default Edit;\n","import React from 'react';\nimport PropTypes from 'prop-types';\nimport { useSelector } from 'react-redux';\nimport { Link } from 'react-router-dom';\nimport Edit from '../../../icons/Edit';\nimport style from './clientPage.module.scss';\nimport '../../../css/row.scss';\n\nconst ClientRow = ({\n key,\n isAdmin,\n isOwner,\n isManager,\n client,\n setTextIconDetail,\n setModalInfo,\n showModal,\n buttonStatus,\n setButtonStatus,\n performFilter,\n }) => {\n const { equipment, companies } = useSelector(state => ({\n equipment: state.equipment,\n companies: state.groups.filter(grp => ![1, 2, 3, 4].includes(grp.id)),\n }));\n\n const clientCompany = companies.find(comp => comp.id === client.group_id);\n\n const edit = `/app/clients/form/edit/${client.client_id}`;\n const detail = `/app/clients/detail/${client.client_id}`;\n const logs = `/app/clients/logs/${client.client_id}`;\n const transmitters = `/app/transmitters/list/${client.client_id}`;\n const contacts = `/app/contacts/list/${client.client_id}`;\n const btnStyle = { border: 0, backgroundColor: 'transparent', padding: 0 };\n return (\n
\n
{client.account}
\n \n
\n {client.first_name.split(' ')[0]} {client.last_name.split(' ').pop()}\n
\n \n
{clientCompany ? clientCompany.name : '-'}
\n
\n {equipment[0].data.find(eq => eq.id === client.equipment_id).is_mobile &&\n eq.id === client.equipment_id).name.toLowerCase()}/${client.client_id}`}\n >\n \n \n }\n
\n
\n \n \n \n performFilter(client.client_id)}\n >\n \n \n \n \n \n {(isAdmin || isOwner || isManager) &&\n \n \n \n }\n {(isAdmin || isOwner || isManager) && buttonStatus &&\n {\n if (!showModal) {\n setButtonStatus();\n setModalInfo({ showModal: true, client });\n }\n }}\n style={btnStyle}\n >\n {client.is_deleted === false ?\n
\n \n
\n :\n
\n \n
\n }\n \n }\n {(isAdmin || isOwner) &&\n \n \n \n }\n
\n
\n );\n};\n\nClientRow.propTypes = {\n isAdmin: PropTypes.bool.isRequired,\n isOwner: PropTypes.bool.isRequired,\n isManager: PropTypes.bool.isRequired,\n showModal: PropTypes.bool.isRequired,\n buttonStatus: PropTypes.bool.isRequired,\n setButtonStatus: PropTypes.func.isRequired,\n setTextIconDetail: PropTypes.func.isRequired,\n setModalInfo: PropTypes.func.isRequired,\n performFilter: PropTypes.func.isRequired,\n client: PropTypes.shape({\n id: PropTypes.number,\n is_deleted: PropTypes.bool,\n first_name: PropTypes.string,\n last_name: PropTypes.string,\n account: PropTypes.string,\n cpf: PropTypes.string,\n rg: PropTypes.string,\n birthdate: PropTypes.string,\n street: PropTypes.string,\n number: PropTypes.number,\n complement: PropTypes.string,\n district: PropTypes.string,\n city: PropTypes.string,\n country: PropTypes.string,\n state: PropTypes.string,\n zip_code: PropTypes.string,\n health_plan: PropTypes.string,\n account_phone: PropTypes.string,\n contact_phone: PropTypes.string,\n key_box: PropTypes.string,\n general_info: PropTypes.string,\n }).isRequired,\n equipment: PropTypes.arrayOf(\n PropTypes.shape({\n data: PropTypes.arrayOf(\n PropTypes.shape({\n id: PropTypes.number,\n name: PropTypes.name,\n is_active: PropTypes.bool,\n created_date: PropTypes.string,\n modified_date: PropTypes.string,\n }),\n ),\n }),\n ).isRequired,\n};\n\nexport default ClientRow;\n","import React, { useState } from 'react';\nimport PropTypes from 'prop-types';\nimport { connect } from 'react-redux';\nimport { Link } from 'react-router-dom';\nimport Edit from '../../../icons/Edit';\n\nimport style from './clientPage.module.scss';\nimport '../../../css/row.scss';\n\nconst ClientMobileRow = (props) => {\n const {\n client,\n equipment,\n isAdmin,\n isOwner,\n isManager,\n buttonStatus,\n setButtonStatus,\n setModalInfo,\n showModal,\n performFilter,\n } = props;\n const list = `/app/clients/detail/${client.client_id}`;\n const contacts = `/app/contacts/list/${client.client_id}`;\n const transmitters = `/app/transmitters/list/${client.client_id}`;\n const edit = `/app/clients/form/edit/${client.client_id}`;\n const logs = `/app/clients/logs/${client.client_id}`;\n const btnStyle = { border: 0, backgroundColor: 'transparent', padding: 0 };\n\n const [expanded, setExpanded] = useState(false);\n\n const toggleLogExtra = () => {\n setExpanded(!expanded);\n }\n\n return (\n
\n \n
{client.account}
\n
\n {client.first_name.split(' ')[0]} {client.last_name.split(' ').pop()}\n
\n
\n \n
\n
\n
\n
\n {equipment[0].data.find(eq => eq.id === client.equipment_id).is_mobile &&\n {}}\n to={`/app/clients/${equipment[0].data.find(eq => eq.id === client.equipment_id).name.toLowerCase()}/${client.client_id}`}\n >\n \n \n }\n
\n \n \n \n \n \n \n performFilter(client.client_id)}\n >\n \n \n \n \n \n {(isAdmin || isOwner || isManager) &&\n \n \n \n }\n {(isAdmin || isOwner || isManager) && buttonStatus &&\n {\n if (!showModal) {\n setButtonStatus();\n setModalInfo({ showModal: true, client });\n }\n }}\n style={btnStyle}\n >\n {client.is_deleted === false ?\n
\n \n
\n :\n
\n \n
\n }\n \n }\n {(isAdmin || isOwner) &&\n \n \n \n }\n
\n \n )\n};\n\n\nClientMobileRow.propTypes = {\n isAdmin: PropTypes.bool.isRequired,\n isOwner: PropTypes.bool.isRequired,\n isManager: PropTypes.bool.isRequired,\n showModal: PropTypes.bool.isRequired,\n buttonStatus: PropTypes.bool.isRequired,\n setButtonStatus: PropTypes.func.isRequired,\n setModalInfo: PropTypes.func.isRequired,\n client: PropTypes.shape({\n id: PropTypes.number,\n is_deleted: PropTypes.bool,\n first_name: PropTypes.string,\n last_name: PropTypes.string,\n account: PropTypes.string,\n cpf: PropTypes.string,\n rg: PropTypes.string,\n birthdate: PropTypes.string,\n street: PropTypes.string,\n number: PropTypes.number,\n complement: PropTypes.string,\n district: PropTypes.string,\n city: PropTypes.string,\n country: PropTypes.string,\n state: PropTypes.string,\n zip_code: PropTypes.string,\n health_plan: PropTypes.string,\n account_phone: PropTypes.string,\n contact_phone: PropTypes.string,\n key_box: PropTypes.string,\n general_info: PropTypes.string,\n group_name: PropTypes.string,\n }).isRequired,\n equipment: PropTypes.arrayOf(\n PropTypes.shape({\n data: PropTypes.arrayOf(\n PropTypes.shape({\n id: PropTypes.number,\n name: PropTypes.name,\n is_active: PropTypes.bool,\n created_date: PropTypes.string,\n modified_date: PropTypes.string,\n }),\n ),\n }),\n ).isRequired,\n};\n\nfunction mapStateToProps(state, ownProps) {\n return {\n equipment: state.equipment,\n };\n}\n\nexport default connect(mapStateToProps)(ClientMobileRow);\n","import React, { useState, useEffect, useRef } from 'react';\nimport PropTypes from 'prop-types';\nimport { connect } from 'react-redux';\nimport { FormattedMessage } from 'react-intl';\n\nimport messages from '../../BLL/locale/messages';\nimport style from './modalClientFilter.module.scss';\nimport formStyle from '../../css/form.module.scss';\n\nconst ModalClientFilter = (props) => {\n const wrapperRef = useRef(null);\n const [account, setAccount] = useState('');\n const [companyId, setCompanyId] = useState('');\n const [tracker, setTracker] = useState('-1');\n const [firstName, setFirstName] = useState('');\n const [lastName, setLastName] = useState('');\n const [disableFilter, setDisableFilter] = useState(true);\n\n useEffect(() => {\n document.addEventListener('mousedown', clickedOutside);\n\n return () => {\n document.removeEventListener('mousedown', clickedOutside);\n }\n }, []);\n\n useEffect(() => {\n if (account || companyId || firstName || lastName || parseInt(tracker) !== -1) {\n setDisableFilter(false);\n } else {\n setDisableFilter(true);\n }\n }, [account, companyId, tracker, firstName, lastName]);\n\n useEffect(() => {\n if (props.filter) {\n props.filter.split('&').forEach((elm) => {\n const key = elm.split('=')[0];\n const value = elm.split('=')[1];\n switch (key) {\n case 'account': {\n if (value) {\n setAccount(value);\n }\n break;\n }\n case 'first_name': {\n if (value) {\n setFirstName(value);\n }\n break;\n }\n case 'last_name': {\n if (value) {\n setLastName(value)\n }\n break;\n }\n case 'group_id': {\n if (value) {\n setCompanyId(value);\n }\n break;\n }\n case 'equipment_ids': {\n const mobileEquipmentIds = props.equipment.filter(eq => eq.is_mobile).map(eq => eq.id).toString();\n if (value === mobileEquipmentIds) {\n setTracker(1);\n } else if (!value) {\n setTracker(-1);\n } else {\n setTracker(0);\n }\n break;\n }\n default:\n break;\n }\n });\n }\n }, [props.filter, props.equipment]);\n\n const clickedOutside = (evt) => {\n if (wrapperRef.current && !wrapperRef.current.contains(evt.target)) {\n props.closeModal();\n }\n }\n\n const generateAndSendFilter = () => {\n let trackerFilter = '';\n switch (parseInt(tracker, 10)) {\n case -1: {\n trackerFilter = '';\n break;\n }\n case 1: {\n trackerFilter = props.equipment.filter(eq => eq.is_mobile).map(eq => eq.id).toString();\n break;\n }\n case 0: {\n trackerFilter = props.equipment.filter(\n eq => !eq.is_mobile).map(eq => eq.id).toString();\n break;\n }\n default: {\n trackerFilter = '';\n break;\n }\n }\n const url = `group_id=${!companyId ? '' : companyId}&first_name=${!firstName ? '' : firstName}&last_name=${!lastName ? '' : lastName}&equipment_ids=${trackerFilter}&account=${!account ? '' : account}`;\n props.filterClients(url);\n }\n\n return (\n
\n
\n
\n \n
\n {props.loggedUser && props.loggedUser.groups.length === 1 &&\n
\n \n setCompanyId(e.target.value)}\n style={{ fontSize: '0.8rem' }}\n value={companyId}\n >\n \n \n {props.companies &&\n props.companies\n .sort((compA, compB) => compA.name.localeCompare(compB.name))\n .map(item =>\n ,\n )\n }\n \n
\n }\n
\n \n setAccount(e.target.value)}\n type=\"text\"\n value={account}\n />\n
\n
\n \n setFirstName(e.target.value)}\n type=\"text\"\n value={firstName}\n />\n
\n
\n \n setLastName(e.target.value)}\n type=\"text\"\n value={lastName}\n />\n
\n
\n \n setTracker(e.target.value)}\n >\n \n \n \n \n
\n
\n \n \n \n \n \n
\n
\n
\n )\n};\n\nModalClientFilter.propTypes = {\n filter: PropTypes.string.isRequired,\n companies: PropTypes.arrayOf(\n PropTypes.shape({\n id: PropTypes.number,\n name: PropTypes.string,\n user_set: PropTypes.arrayOf(\n PropTypes.shape({\n id: PropTypes.number,\n is_active: PropTypes.bool,\n first_name: PropTypes.string,\n last_name: PropTypes.string,\n email: PropTypes.string,\n groups: PropTypes.arrayOf(\n PropTypes.number,\n ),\n }),\n ),\n }),\n ).isRequired,\n equipment: PropTypes.arrayOf(\n PropTypes.shape({\n id: PropTypes.number,\n name: PropTypes.name,\n is_active: PropTypes.bool,\n is_mobile: PropTypes.bool,\n }),\n ).isRequired,\n filterClients: PropTypes.func.isRequired,\n closeModal: PropTypes.func.isRequired,\n lang: PropTypes.string.isRequired,\n loggedUser: PropTypes.shape({\n groups: PropTypes.arrayOf(\n PropTypes.number,\n ),\n id: PropTypes.number,\n is_active: PropTypes.bool,\n username: PropTypes.string,\n }).isRequired,\n};\n\nfunction mapStateToProps(state, ownProps) {\n return {\n companies: state.groups.filter(grp => ![1, 2, 3, 4].includes(grp.id)),\n equipment: state.equipment[0].data,\n lang: state.locale.lang,\n loggedUser: state.loggedAttendant,\n };\n}\n\nexport default connect(mapStateToProps)(ModalClientFilter);\n","import { useLocation } from 'react-router-dom';\n\nconst useQuery = () => {\n return new URLSearchParams(useLocation().search);\n};\n\nexport default useQuery;\n","import React from 'react';\nimport PropTypes from 'prop-types';\nimport { FormattedMessage } from 'react-intl';\nimport '../../css/toggleButton.scss';\n\nconst ToggleButton = ({ isChecked, handleChange, hasPagination, text, top }) => {\n const toggle = isChecked === true ? 'slider slider--checked round' : 'slider round';\n return (\n
\n
{text}
\n \n
\n );\n};\n\nToggleButton.defaultProps = {\n text: ,\n hasPagination: false,\n top: '',\n};\n\nToggleButton.propTypes = {\n hasPagination: PropTypes.bool,\n // text: PropTypes.string,\n text: PropTypes.shape({\n key: PropTypes.number,\n }),\n top: PropTypes.string,\n isChecked: PropTypes.bool.isRequired,\n handleChange: PropTypes.func.isRequired,\n};\n\nexport default ToggleButton;\n","import * as types from './actionTypes';\nimport * as errorsActions from './errorsActions';\nimport * as globals from '../globals/globals';\nimport { host, getDomain, getToken } from '../BLL/environment';\n\nexport function loadClientsSuccess(results, ordering, page, filter, pageUrl) {\n return { type: types.LOAD_CLIENTS_SUCCESS, results, ordering, page, filter, pageUrl };\n}\n\nexport function setClientPage(pageNumber, pageUrl) {\n return { type: types.SET_CLIENT_PAGE, pageNumber, pageUrl };\n}\n\nexport function newClientPage(pageNumber, newPage, pageUrl) {\n return { type: types.RECEIVE_NEW_CLIENT_PAGE, pageNumber, newPage, pageUrl };\n}\n\nexport function clientUpdated(client) {\n return { type: types.EDIT_CLIENT, client };\n}\n\nexport function loadClients(ordering = globals.clientsOrdering, filter = '') {\n const domain = getDomain();\n const token = getToken();\n\n let url = `https://${domain}${host()}/api/clients-list/?ordering=is_deleted,${ordering}&limit=${globals.pagination}`;\n if (filter) {\n url = `${url}&${filter}`;\n }\n return (dispatch, getState, { axios }) => Promise.resolve(\n axios.get(url, {\n headers: { Authorization: `Token ${token}` },\n }).then((res) => {\n const page = 1;\n dispatch(loadClientsSuccess(\n res.data,\n ordering,\n page,\n filter,\n url,\n ));\n }).catch((error) => {\n if (error.response) {\n if (error.response.status === 401) {\n dispatch(errorsActions.logout());\n }\n }\n }),\n );\n}\n\nexport function reloadClients() {\n const domain = getDomain();\n const token = getToken();\n\n return (dispatch, getState, { axios }) => {\n const { clients } = getState();\n return Promise.resolve(\n axios.get(clients.activeUrl, {\n headers: { Authorization: `Token ${token}` },\n }).then(res => dispatch(loadClientsSuccess(\n res.data,\n clients.ordering,\n clients.activePage,\n clients.filter,\n clients.activeUrl,\n ))),\n );\n };\n}\n\nexport function changePage(pageNumber, pageUrl) {\n const token = getToken();\n\n return (dispatch, getState, { axios }) => {\n const { clients } = getState();\n const activePage = clients.pages\n ? clients.pages.find(data => data.page === pageNumber)\n : undefined;\n if (activePage) {\n return Promise.resolve(dispatch(setClientPage(pageNumber, pageUrl)));\n }\n return Promise.resolve(\n axios.get(pageUrl, {\n headers: { Authorization: `Token ${token}` },\n }).then((res) => {\n dispatch(newClientPage(pageNumber, res.data, pageUrl));\n })\n .catch((error) => {\n if (error.response) {\n if (error.response.status === 401) {\n dispatch(errorsActions.logout());\n }\n }\n }),\n );\n };\n}\n\nexport function editClient(client) {\n const domain = getDomain();\n const token = getToken();\n\n return (dispatch, getState, { axios }) => new Promise((resolve, reject) =>\n axios({\n method: 'put',\n responseType: 'json',\n url: `https://${domain}${host()}/api/clients/${client.id}/`,\n data: client,\n headers: { Authorization: `Token ${token}` },\n })\n .then(() => {\n const { clients } = getState();\n if (clients.pages) {\n resolve(dispatch(reloadClients()));\n } else {\n resolve(dispatch({ client }));\n }\n })\n .catch((error) => {\n if (error.response) {\n if (error.response.status === 401) {\n reject(dispatch(errorsActions.logout()));\n }\n return reject(error);\n }\n }),\n );\n}\n\nexport function createClient(client) {\n const domain = getDomain();\n const token = getToken();\n\n return (dispatch, getState, { axios }) => new Promise((resolve, reject) =>\n axios({\n method: 'post',\n responseType: 'json',\n url: `https://${domain}${host()}/api/clients/`,\n data: client,\n headers: { Authorization: `Token ${token}` },\n })\n .then(() => {\n const { clients } = getState();\n if (clients.activePage) {\n resolve(dispatch(reloadClients()));\n } else {\n resolve(dispatch(loadClients()));\n }\n })\n .catch((error) => {\n if (error.response) {\n if (error.response.status === 401) {\n return reject(dispatch(errorsActions.logout()));\n }\n return reject(error);\n }\n return reject(error);\n }),\n );\n}\n","import React, { useState, useEffect } from 'react';\nimport PropTypes from 'prop-types';\nimport { useDispatch, useSelector } from 'react-redux';\nimport axios from 'axios';\nimport { FormattedMessage } from 'react-intl';\nimport Paginate from '../../Common/Paginate';\nimport { getBrowserMaxWidth, broadcast } from '../../../BLL/general';\nimport * as globals from '../../../BLL/globals';\nimport broadcastMessages from '../../../BLL/locale/messagesBroadcast';\nimport TableHeader from './ClientPageTableHeader';\nimport MobileHeader from './ClientPageMobileTableHeader';\nimport ButtonComponent from './ClientPageButtonComponent';\nimport FilterComponent from './ClientFilter';\nimport ClientRow from './ClientRow';\nimport ClientMobileRow from './ClientMobileRow';\nimport ConfirmRemoveModal from '../../Modal/ModalConfirm';\nimport ModalFilter from '../../Modal/ModalClientFilter';\nimport useQuery from '../../Hooks/useLocationQuery';\n\nimport Loading from '../../../icons/Loading';\nimport ToggleButton from '../../Common/ToggleButton';\n\nimport * as clientsActions from '../../../actions/clientsActions';\nimport * as attendsActions from '../../../actions/attendsActions';\n\nimport style from './clientPage.module.scss';\nimport '../../../css/icons.scss';\nimport '../../../css/middle.scss';\nimport '../../../css/listPage.scss';\n\nconst ClientPage = (props) => {\n const queryParams = useQuery();\n const browserWidth = getBrowserMaxWidth();\n const numPerPage = 50;\n const {\n clients,\n loggedUser,\n companies,\n equipment,\n status,\n lang,\n isOwner,\n isAdmin,\n isManager\n } = useSelector(state => ({\n clients: state.clients,\n loggedUser: state.loggedAttendant,\n companies: state.groups.filter(grp => ![1, 2, 3, 4].includes(grp.id)),\n equipment: state.equipment,\n status: state.tenantStatus ? state.tenantStatus.status.status : 'active',\n lang: state.locale.lang,\n isOwner: state.loggedAttendant.groups ? state.loggedAttendant.groups[0] === 4 : false,\n isAdmin: state.loggedAttendant.groups ? state.loggedAttendant.groups[0] === 1 : false,\n isManager: state.loggedAttendant.groups ? state.loggedAttendant.groups[0] === 2 : false,\n }));\n const queryAccount = queryParams.get('account');\n\n const dispatch = useDispatch();\n\n const loadClients = (ordering, filter) => dispatch(clientsActions.loadClients(ordering, filter));\n const changePage = (pageNumber, pageUrl) => dispatch(clientsActions.changePage(pageNumber, pageUrl));\n const editClient = client => dispatch(clientsActions.editClient(client));\n const loadAttends = (ordering, filter) => dispatch(attendsActions.loadAttends(ordering, filter));\n\n const [loading, setLoading] = useState(true);\n const [clientList, setClientList ] = useState([]);\n const [selectedClient, setSelectedClient] = useState({});\n const [filter, setFilter] = useState('');\n const [activePage, setActivePage] = useState(1);\n const [ordering, setOrdering] = useState('');\n const [totalClients, setTotalClients] = useState(0);\n const [activeClients, setActiveClients] = useState(0);\n const [next, setNext] = useState('');\n const [previous, setPrevious] = useState('');\n const [iconDetail, setIconDetail] = useState('');\n const [showDeleteRestoreButton, setDeleteRestoreButton] = useState(true);\n const [showFilter, setShowFilter] = useState(false);\n const [showConfirmRemoveModal, setShowConfirmRemoveModal] = useState(false);\n const [showInactives, setShowInactives] = useState(false);\n const [confirmMsg, setConfirmModalMsg] = useState('');\n \n useEffect(() => {\n const firstLoad = (ordering, filter) => dispatch(clientsActions.loadClients(ordering, filter));\n\n if (!clients || Object.keys(clients).length === 0) {\n if (queryAccount) {\n firstLoad(globals.clientsOrdering, `&account=${queryAccount}`);\n } else {\n firstLoad(globals.clientsOrdering);\n }\n }\n const activeClients = clients.pages\n ? clients.pages.find(data => data.page === clients.activePage)\n : [];\n console.log(clients);\n setClientList(activeClients.results);\n setNext(activeClients.next);\n setPrevious(activeClients.previous);\n setActivePage(clients.activePage);\n setLoading(false);\n }, [dispatch, clients, queryAccount]);\n\n useEffect(() => setOrdering(clients.ordering), [clients.ordering]);\n useEffect(() => setFilter(clients.filter), [clients.filter]);\n useEffect(() => setTotalClients(clients.count), [clients.count]);\n useEffect(() => setActiveClients(clients.active), [clients.active]);\n\n useEffect(() => {\n const loadQueryClients = (ordering, filter) => dispatch(clientsActions.loadClients(ordering, filter));\n\n if (queryAccount) {\n setLoading(true);\n setActivePage(1);\n loadQueryClients(globals.clientsOrdering, `&account=${queryAccount}`);\n }\n\n }, [queryAccount, dispatch]);\n\n const removeFilter = () => {\n setLoading(true);\n loadClients();\n };\n\n const filterClients = (filter) => {\n setShowFilter(false);\n setLoading(true);\n setActivePage(1);\n loadClients(ordering, filter)\n };\n\n const changeCurrentPage = (page) => {\n setLoading(true);\n const pageUrl = page > activePage ? next : previous;\n changePage(page, pageUrl)\n };\n\n const setConfirmModalInformations = ({ showModal, client = {} }) => {\n if (showModal === false && showDeleteRestoreButton === false) {\n setDeleteRestoreButton(!showDeleteRestoreButton);\n }\n setShowConfirmRemoveModal(showModal);\n setSelectedClient(Object.assign({}, client));\n if (!client.is_deleted) {\n setConfirmModalMsg(\n \n )\n } else {\n setConfirmModalMsg(\n \n )\n }\n };\n\n const setTextIconDetail = (iconDetail) => {\n setIconDetail(iconDetail);\n };\n\n const orderByAccount = () => {\n const updatedOrdering = ordering === 'account' ? '-account' : 'account';\n setLoading(true);\n setOrdering(updatedOrdering);\n loadClients(updatedOrdering, filter);\n };\n\n const orderByName = () => {\n const updatedOrdering = ordering === 'first_name,last_name,account' ? '-first_name,-last_name,-account' : 'first_name,last_name,account';\n setLoading(true);\n setOrdering(updatedOrdering);\n loadClients(updatedOrdering, filter);\n };\n\n const toggleClient = () => {\n // console.log(selectedClient);\n // let client = clientList.find(cl => cl.id === selectedClient.client_id);\n // client.is_deleted = !client.is_deleted;\n const client = Object.assign(\n {},\n clientList.find(cl => cl.id === selectedClient.client_id),\n { is_deleted: !selectedClient.is_deleted},\n );\n const text = `${broadcastMessages[lang]['broadcast.client']} ${client.first_name} ${client.last_name} ${\n client.is_deleted ? broadcastMessages[lang]['broadcast.deleted'] : broadcastMessages[lang]['broadcast.recovered']}`;\n\n editClient(client).then(() => {\n setDeleteRestoreButton(!showDeleteRestoreButton);\n broadcast(axios, props.channelId, {\n type: 'client',\n method: 'toggle',\n userId: loggedUser.id,\n client,\n text\n });\n });\n setConfirmModalInformations(false, {});\n };\n\n const checkUserRow = (client) => {\n const user = loggedUser;\n const isSystemUser = user.groups.length === 1;\n if (!client.is_deleted) {\n return isSystemUser || user.groups.includes(client.group_id);\n }\n return showInactives && (\n (isSystemUser && (isAdmin || isOwner || isManager))\n || (user.groups.includes(client.group_id) && isAdmin)\n );\n };\n\n const performFilter = (clientId) => {\n const updatedFilter = `client=${clientId}`;\n loadAttends(globals.attendsOrdering, updatedFilter).then(() => {\n props.history.push('/app/attends');\n });\n };\n\n console.log(clientList);\n\n return (\n
\n
\n \n \n setShowFilter(true)}\n editFilter={() => setShowFilter(true)}\n />\n
\n {showFilter &&\n setShowFilter(false)}\n />\n }\n {(isAdmin || isOwner || isManager) &&\n
\n numPerPage}\n handleChange={() => setShowInactives(!showInactives)}\n />\n
\n }\n
\n \n {showConfirmRemoveModal &&\n \n }\n { browserWidth > 980\n ? \n \n :\n \n }\n
\n {loading\n ? } />\n : clientList && clientList.map(client => (\n checkUserRow(client)\n ?\n
\n { browserWidth > 980\n ?\n {}}\n showModal={showConfirmRemoveModal}\n buttonStatus={showDeleteRestoreButton}\n setButtonStatus={() => setDeleteRestoreButton(!showDeleteRestoreButton)}\n performFilter={performFilter}\n />\n :\n {}}\n showModal={showConfirmRemoveModal}\n buttonStatus={showDeleteRestoreButton}\n setButtonStatus={() => setDeleteRestoreButton(!showDeleteRestoreButton)}\n performFilter={performFilter}\n />\n }\n
\n : null\n ))\n }\n
\n
\n
\n );\n};\n\nClientPage.propTypes = {\n channelId: PropTypes.string.isRequired, \n}\n\nexport default ClientPage;\n","export const email = value => {\n var re = /^(([^<>()[\\]\\\\.,;:\\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,}))$/;\n return re.test(value);\n}\n\nexport const cpf = value => {\n let strCPF,\n Soma,\n Resto;\n if(/^\\d\\d\\d[.]\\d\\d\\d[.]\\d\\d\\d-\\d\\d$/.test(value)){\n let [, first, second, third, fourth] =\n /^(\\d\\d\\d)[.](\\d\\d\\d)[.](\\d\\d\\d)-(\\d\\d)$/\n .exec(value);\n\n strCPF = first + second + third + fourth; \n }\n else{\n strCPF = value;\n }\n Soma = 0;\n if (strCPF == \"00000000000\") return false;\n \n for (let i=1; i<=9; i++) Soma = Soma + parseInt(strCPF.substring(i-1, i)) * (11 - i);\n Resto = (Soma * 10) % 11;\n \n if ((Resto == 10) || (Resto == 11)) Resto = 0;\n if (Resto != parseInt(strCPF.substring(9, 10)) ) return false;\n \n Soma = 0;\n for (let i = 1; i <= 10; i++) Soma = Soma + parseInt(strCPF.substring(i-1, i)) * (12 - i);\n Resto = (Soma * 10) % 11;\n \n if ((Resto == 10) || (Resto == 11)) Resto = 0;\n if (Resto != parseInt(strCPF.substring(10, 11) ) ) return false;\n return true;\n};\n\nexport const date = value => {\n let maxYear = new Date().getFullYear() - 18;\n if(/^\\d\\d\\d\\d-\\d\\d-\\d\\d$/.test(value)){\n var [, year, month, day] = /^(\\d\\d\\d\\d)-(\\d\\d)-(\\d\\d)$/.exec(value) \n return `${day}/${month}/${year}` \n } else if(/^\\d\\d[/]\\d\\d[/]\\d\\d\\d\\d$/.test(value)) {\n var [, day, month, year] = /^(\\d\\d)[/](\\d\\d)[/](\\d\\d\\d\\d)$/.exec(value) \n var monthLength = [ 31, 28, 31, 30, 31, 30, 31, 31, 30, 31, 30, 31 ]\n \n // Adjust for leap years\n if(year % 400 == 0 || (year % 100 != 0 && year % 4 == 0))\n monthLength[1] = 29\n if(year <= maxYear && month > 0 && month <= 12 && day > 0 && day < monthLength[month-1]){\n return true\n } else {\n if(day < 1){\n day = \"01\"\n }\n else if(day > monthLength[month-1]){\n day = monthLength[month-1]\n }\n if(month < 1){\n month = \"01\"\n }\n else if(month > 12){\n month = 12\n }\n if(year > maxYear){\n year = maxYear\n }\n return `${day}/${month}/${year}`\n } \n }\n};\n\nexport const onlyDigit = value => {\n if(typeof value == \"number\"){\n value = value.toString()\n }\n let arr = value.split(''),\n val = arr.filter((el) => /\\d/.test(el)).join('')\n\n if(val !== value){\n return val\n }\n else{\n return true\n }\n};\n\n// module.exports = {\n// \t// regex from http://stackoverflow.com/questions/46155/validate-email-address-in-javascript\n// \temail: function(value) {\n// var re = /^(([^<>()[\\]\\\\.,;:\\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,}))$/;\n// return re.test(value);\n// \t},\n\n// \tcpf: function(cpf){\n// let strCPF,\n// Soma,\n// Resto;\n// if(/^\\d\\d\\d[.]\\d\\d\\d[.]\\d\\d\\d-\\d\\d$/.test(cpf)){\n// let [, first, second, third, fourth] =\n// /^(\\d\\d\\d)[.](\\d\\d\\d)[.](\\d\\d\\d)-(\\d\\d)$/\n// .exec(cpf);\n\n// strCPF = first + second + third + fourth; \n// }\n// else{\n// strCPF = cpf;\n// }\n\n// Soma = 0;\n// if (strCPF == \"00000000000\") return false;\n \n// for (let i=1; i<=9; i++) Soma = Soma + parseInt(strCPF.substring(i-1, i)) * (11 - i);\n// Resto = (Soma * 10) % 11;\n \n// if ((Resto == 10) || (Resto == 11)) Resto = 0;\n// if (Resto != parseInt(strCPF.substring(9, 10)) ) return false;\n \n// Soma = 0;\n// for (let i = 1; i <= 10; i++) Soma = Soma + parseInt(strCPF.substring(i-1, i)) * (12 - i);\n// Resto = (Soma * 10) % 11;\n \n// if ((Resto == 10) || (Resto == 11)) Resto = 0;\n// if (Resto != parseInt(strCPF.substring(10, 11) ) ) return false;\n// return true;\n// },\n\n// // http://stackoverflow.com/questions/6177975/how-to-validate-date-with-format-mm-dd-yyyy-in-javascript\n// date: function(value){\n// \tlet maxYear = new Date().getFullYear() - 18\n// if(/^\\d\\d\\d\\d-\\d\\d-\\d\\d$/.test(value)){\n// var [, year, month, day] = /^(\\d\\d\\d\\d)-(\\d\\d)-(\\d\\d)$/.exec(value) \n// return `${day}/${month}/${year}` \n// }\n// \telse if(/^\\d\\d[/]\\d\\d[/]\\d\\d\\d\\d$/.test(value)){\n// var [, day, month, year] = /^(\\d\\d)[/](\\d\\d)[/](\\d\\d\\d\\d)$/.exec(value) \n// var monthLength = [ 31, 28, 31, 30, 31, 30, 31, 31, 30, 31, 30, 31 ]\n\n// // Adjust for leap years\n// if(year % 400 == 0 || (year % 100 != 0 && year % 4 == 0))\n// monthLength[1] = 29\n\n// if(year <= maxYear && month > 0 && month <= 12 && day > 0 && day < monthLength[month-1]){\n// // return \"\"\n// return true\n// }\n// else{\n// if(day < 1){\n// day = \"01\"\n// }\n// else if(day > monthLength[month-1]){\n// day = monthLength[month-1]\n// }\n// if(month < 1){\n// month = \"01\"\n// }\n// else if(month > 12){\n// month = 12\n// }\n// if(year > maxYear){\n// year = maxYear\n// }\n// return `${day}/${month}/${year}`\n// } \n// \t}\n \t\n\n// \t// return year <= maxYear && month > 0 && month <= 12 && day > 0 && day < monthLength[month-1]\n\n// },\n\n// onlyDigit(value){\n// if(typeof value == \"number\"){\n// value = value.toString()\n// }\n// let arr = value.split(''),\n// val = arr.filter((el) => /\\d/.test(el)).join('')\n\n// if(val !== value){\n// return val\n// }\n// else{\n// return true\n// }\n// }\n\n// }\n","import React from 'react';\nimport PropTypes from 'prop-types';\n\nconst Speak = ({ height, className, width }) => (\n \n \n \n \n \n \n \n \n \n \n \n);\n\nSpeak.defaultProps = {\n height: '64',\n className: '',\n width: '64',\n};\n\nSpeak.propTypes = {\n height: PropTypes.string,\n className: PropTypes.string,\n width: PropTypes.string,\n};\n\nexport default Speak;\n","import React from 'react';\nimport PropTypes from 'prop-types';\n\nconst Listen = ({ className, height, width }) => (\n \n \n \n \n \n \n \n \n \n \n \n);\n\nListen.defaultProps = {\n height: '64',\n className: '',\n width: '64',\n};\n\nListen.propTypes = {\n height: PropTypes.string,\n className: PropTypes.string,\n width: PropTypes.string,\n};\n\nexport default Listen;\n","import React from 'react';\nimport PropTypes from 'prop-types';\n\nconst TwoWayAudio = ({ className, height, width }) => (\n \n \n \n \n \n \n \n \n \n \n \n \n);\n\nTwoWayAudio.defaultProps = {\n width: '64',\n height: '64',\n className: '',\n};\n\nTwoWayAudio.propTypes = {\n width: PropTypes.string,\n height: PropTypes.string,\n className: PropTypes.string,\n};\n\nexport default TwoWayAudio;\n","import React, { useState } from 'react';\nimport { FormattedMessage } from 'react-intl';\n\nimport Speak from '../../icons/Speak'\nimport Listen from '../../icons/Listen';\nimport TwoWayAudio from '../../icons/TwoWayAudio';\n\nimport style from './audioMenu.module.scss';\n\nconst AudioMenu = (props) => {\n const [audioStatus, setAudioStatus] = useState('');\n return (\n
\n
\n setAudioStatus()}\n onMouseOut={() => setAudioStatus('')}\n >\n \n \n setAudioStatus()}\n onMouseOut={() => setAudioStatus('')}\n >\n \n \n setAudioStatus()}\n onMouseOut={() => setAudioStatus('')}\n >\n \n \n
\n
\n {audioStatus}\n
\n
\n )\n};\n\nexport default AudioMenu;\n","import React, { useEffect, useState, useRef } from 'react';\nimport PropTypes from 'prop-types';\nimport AudioMenu from '../Common/AudioMenu';\nimport { FormattedMessage } from 'react-intl';\nimport style from './modalReturnCall.module.scss';\n\nconst IDLE = 1;\nconst FIRST_CALL = 2;\nconst FIRST_HANGUP = 3;\nconst SECOND_CALL = 4;\nconst SEND_PASSWORD = 5;\nconst READY_FOR_PASSWORD_OR_SECOND_CALL = 6;\nconst WARNING_TIMER_LIMIT = 75\n// const ERROR = -1;\n\nconst ModalPERS = (props) => {\n const [callStage, setCallStage] = useState(IDLE);\n const [durationFirstCall, setDurationFirstCall] = useState(12);\n const [durationLeft, setDuration] = useState(10);\n const [warningTimer, setWarningTimer] = useState(WARNING_TIMER_LIMIT);\n const [showWarningMessage, setShowWarningMessage] = useState(false);\n\n useEffect(() => {\n if (callStage === FIRST_CALL) {\n if (!durationFirstCall) {\n setCallStage(READY_FOR_PASSWORD_OR_SECOND_CALL);\n return;\n }\n const intervalId = setInterval(() => {\n setDurationFirstCall((prev) => prev -1);\n }, 1000);\n\n return () => clearInterval(intervalId);\n }\n }, [durationFirstCall, callStage]);\n\n useEffect(() => {\n if (callStage === FIRST_HANGUP) {\n if (!durationLeft) {\n makeSecondCall();\n return;\n }\n const intervalId = setInterval(() => {\n setDuration(durationLeft - 1);\n }, 1000);\n return () => clearInterval(intervalId);\n }\n }, [durationLeft, callStage]);\n\n useEffect(() => {\n let intervalId\n if (callStage === SEND_PASSWORD) {\n intervalId = setInterval(() => {\n if (warningTimer <= 1) {\n clearInterval(intervalId);\n setShowWarningMessage(true);\n }\n setWarningTimer((prev) => prev - 1);\n }, 1000);\n }\n return () => clearInterval(intervalId);\n }, [warningTimer, callStage]);\n\n const makeFirstCall = () => {\n setCallStage(FIRST_CALL);\n props.startCall(`${props.clientPhone}${props.clientAccount}pers`);\n };\n\n const makeFirstHangup = () => {\n setCallStage(FIRST_HANGUP);\n props.hangupSip();\n };\n\n const makeSecondCall = () => {\n setCallStage(SECOND_CALL);\n if (props.isIndependent) {\n props.startCall(`${props.clientPhone}${props.clientAccount}scall`);\n } else {\n props.startCall(`${props.clientPhone}${props.clientAccount}call${props.attendId}`);\n }\n };\n\n const sendPassword = () => {\n setCallStage(SEND_PASSWORD);\n props.sendPERSPassword();\n };\n\n const closeCall = () => {\n setCallStage(IDLE);\n props.hangupSip();\n props.closeModal();\n };\n\n const extendCall = () => {\n setWarningTimer(WARNING_TIMER_LIMIT);\n setShowWarningMessage(false);\n props.extendCall();\n }\n\n const closeCallAndStartOver = () => {\n setCallStage(IDLE);\n props.hangupSip();\n }\n\n return (\n
\n {callStage === IDLE &&\n
\n \n \n \n \n \n \n \n 1. \n \n \n 2. \n \n \n \n \n \n
\n }\n {callStage === FIRST_CALL &&\n
\n \n \n \n \n
\n }\n {callStage === READY_FOR_PASSWORD_OR_SECOND_CALL && (\n
\n \n \n \n \n \n \n
\n )}\n {callStage === FIRST_HANGUP &&\n
\n \n \n \n \n
\n }\n {callStage === SECOND_CALL &&\n
\n \n \n
\n }\n {callStage === SEND_PASSWORD &&\n
\n \n \n \n \n {showWarningMessage &&\n
\n \n
\n }\n \n \n \n
\n }\n
\n )\n};\n\nconst ModalClimax = (props) => {\n const [callStage, setCallStage] = useState(IDLE);\n\n const makeCall = () => {\n setCallStage(FIRST_CALL);\n if (props.isIndependent) {\n props.startCall(`005491${props.clientAccount}${props.clientPhone}scall`);\n } else {\n props.startCall(`005491${props.clientAccount}${props.clientPhone}call${props.attendId}`);\n }\n };\n\n const closeCall = () => {\n setCallStage(IDLE);\n props.hangupSip();\n props.closeModal();\n };\n\n console.log(props);\n\n return (\n
\n {callStage === IDLE &&\n
\n \n \n
\n }\n {callStage === FIRST_CALL &&\n
\n \n \n \n
\n }\n
\n );\n\n}\n\nconst ModalReturnCall = (props) => {\n console.log('RETURN CALL', props);\n let pos1 = 0;\n let pos2 = 0;\n let pos3 = 0;\n let pos4 = 0;\n const wrapperRef = useRef(null);\n const [posX, setPosX] = useState(props.posX);\n const [posY, setPosY] = useState(props.posY);\n\n const dragMouseDown = (e) => {\n e.preventDefault();\n pos3 = e.clientX;\n pos4 = e.clientY;\n document.onmouseup = closeDragElement;\n document.onmousemove = elementDrag;\n };\n\n const elementDrag = (e) => {\n e.preventDefault();\n pos1 = pos3 - e.clientX;\n pos2 = pos4 - e.clientY;\n pos3 = e.clientX;\n pos4 = e.clientY;\n\n setPosX(wrapperRef.current.offsetLeft - pos1);\n setPosY(wrapperRef.current.offsetTop - pos2);\n };\n\n const closeDragElement = () => {\n document.onmouseup = null;\n document.onmousemove = null;\n };\n return (\n
\n
\n \n
\n {props.equipment?.name.includes('PERS') &&\n \n }\n {(props.equipment?.name.toLowerCase().includes('climax') || props.equipment?.name.toLowerCase().includes('ev07b')) &&\n \n }\n
\n )\n};\n\nModalReturnCall.defaultProps = {\n posX: 570,\n posY: 15,\n isIndependent: false,\n};\n\nModalReturnCall.propTypes = {\n posX: PropTypes.number,\n posY: PropTypes.number,\n isIndependent: PropTypes.bool,\n equipment: PropTypes.shape({\n name: PropTypes.string,\n is_mobile: PropTypes.bool,\n }).isRequired,\n};\n\nexport default ModalReturnCall;\n","/* eslint-disable import/no-anonymous-default-export */\nexport default {\n en: [\n {\n name: 'Afghanistan',\n code: 'AF',\n },\n {\n name: 'Åland Islands',\n code: 'AX',\n },\n {\n name: 'Albania',\n code: 'AL',\n },\n {\n name: 'Algeria',\n code: 'DZ',\n },\n {\n name: 'American Samoa',\n code: 'AS',\n },\n {\n name: 'AndorrA',\n code: 'AD',\n },\n {\n name: 'Angola',\n code: 'AO',\n },\n {\n name: 'Anguilla',\n code: 'AI',\n },\n {\n name: 'Antarctica',\n code: 'AQ',\n },\n {\n name: 'Antigua and Barbuda',\n code: 'AG',\n },\n {\n name: 'Argentina',\n code: 'AR',\n },\n {\n name: 'Armenia',\n code: 'AM',\n },\n {\n name: 'Aruba',\n code: 'AW',\n },\n {\n name: 'Australia',\n code: 'AU',\n },\n {\n name: 'Austria',\n code: 'AT',\n },\n {\n name: 'Azerbaijan',\n code: 'AZ',\n },\n {\n name: 'Bahamas',\n code: 'BS',\n },\n {\n name: 'Bahrain',\n code: 'BH',\n },\n {\n name: 'Bangladesh',\n code: 'BD',\n },\n {\n name: 'Barbados',\n code: 'BB',\n },\n {\n name: 'Belarus',\n code: 'BY',\n },\n {\n name: 'Belgium',\n code: 'BE',\n },\n {\n name: 'Belize',\n code: 'BZ',\n },\n {\n name: 'Benin',\n code: 'BJ',\n },\n {\n name: 'Bermuda',\n code: 'BM',\n },\n {\n name: 'Bhutan',\n code: 'BT',\n },\n {\n name: 'Bolivia',\n code: 'BO',\n },\n {\n name: 'Bosnia and Herzegovina',\n code: 'BA',\n },\n {\n name: 'Botswana',\n code: 'BW',\n },\n {\n name: 'Bouvet Island',\n code: 'BV',\n },\n {\n name: 'Brazil',\n code: 'BR',\n },\n {\n name: 'British Indian Ocean Territory',\n code: 'IO',\n },\n {\n name: 'Brunei Darussalam',\n code: 'BN',\n },\n {\n name: 'Bulgaria',\n code: 'BG',\n },\n {\n name: 'Burkina Faso',\n code: 'BF',\n },\n {\n name: 'Burundi',\n code: 'BI',\n },\n {\n name: 'Cambodia',\n code: 'KH',\n },\n {\n name: 'Cameroon',\n code: 'CM',\n },\n {\n name: 'Canada',\n code: 'CA',\n },\n {\n name: 'Cape Verde',\n code: 'CV',\n },\n {\n name: 'Cayman Islands',\n code: 'KY',\n },\n {\n name: 'Central African Republic',\n code: 'CF',\n },\n {\n name: 'Chad',\n code: 'TD',\n },\n {\n name: 'Chile',\n code: 'CL',\n },\n {\n name: 'China',\n code: 'CN',\n },\n {\n name: 'Christmas Island',\n code: 'CX',\n },\n {\n name: 'Cocos (Keeling) Islands',\n code: 'CC',\n },\n {\n name: 'Colombia',\n code: 'CO',\n },\n {\n name: 'Comoros',\n code: 'KM',\n },\n {\n name: 'Congo',\n code: 'CG',\n },\n {\n name: 'Congo, Democratic Republic',\n code: 'CD',\n },\n {\n name: 'Cook Islands',\n code: 'CK',\n },\n {\n name: 'Costa Rica',\n code: 'CR',\n },\n {\n name: 'Cote D\\'Ivoire',\n code: 'CI',\n },\n {\n name: 'Croatia',\n code: 'HR',\n },\n {\n name: 'Cuba',\n code: 'CU',\n },\n {\n name: 'Cyprus',\n code: 'CY',\n },\n {\n name: 'Czech Republic',\n code: 'CZ',\n },\n {\n name: 'Denmark',\n code: 'DK',\n },\n {\n name: 'Djibouti',\n code: 'DJ',\n },\n {\n name: 'Dominica',\n code: 'DM',\n },\n {\n name: 'Dominican Republic',\n code: 'DO',\n },\n {\n name: 'Ecuador',\n code: 'EC',\n },\n {\n name: 'Egypt',\n code: 'EG',\n },\n {\n name: 'El Salvador',\n code: 'SV',\n },\n {\n name: 'Equatorial Guinea',\n code: 'GQ',\n },\n {\n name: 'Eritrea',\n code: 'ER',\n },\n {\n name: 'Estonia',\n code: 'EE',\n },\n {\n name: 'Ethiopia',\n code: 'ET',\n },\n {\n name: 'Falkland Islands (Malvinas)',\n code: 'FK',\n },\n {\n name: 'Faroe Islands',\n code: 'FO',\n },\n {\n name: 'Fiji',\n code: 'FJ',\n },\n {\n name: 'Finland',\n code: 'FI',\n },\n {\n name: 'France',\n code: 'FR',\n },\n {\n name: 'French Guiana',\n code: 'GF',\n },\n {\n name: 'French Polynesia',\n code: 'PF',\n },\n {\n name: 'French Southern Territories',\n code: 'TF',\n },\n {\n name: 'Gabon',\n code: 'GA',\n },\n {\n name: 'Gambia',\n code: 'GM',\n },\n {\n name: 'Georgia',\n code: 'GE',\n },\n {\n name: 'Germany',\n code: 'DE',\n },\n {\n name: 'Ghana',\n code: 'GH',\n },\n {\n name: 'Gibraltar',\n code: 'GI',\n },\n {\n name: 'Greece',\n code: 'GR',\n },\n {\n name: 'Greenland',\n code: 'GL',\n },\n {\n name: 'Grenada',\n code: 'GD',\n },\n {\n name: 'Guadeloupe',\n code: 'GP',\n },\n {\n name: 'Guam',\n code: 'GU',\n },\n {\n name: 'Guatemala',\n code: 'GT',\n },\n {\n name: 'Guernsey',\n code: 'GG',\n },\n {\n name: 'Guinea',\n code: 'GN',\n },\n {\n name: 'Guinea-Bissau',\n code: 'GW',\n },\n {\n name: 'Guyana',\n code: 'GY',\n },\n {\n name: 'Haiti',\n code: 'HT',\n },\n {\n name: 'Heard Island and Mcdonald Islands',\n code: 'HM',\n },\n {\n name: 'Holy See (Vatican City State)',\n code: 'VA',\n },\n {\n name: 'Honduras',\n code: 'HN',\n },\n {\n name: 'Hong Kong',\n code: 'HK',\n },\n {\n name: 'Hungary',\n code: 'HU',\n },\n {\n name: 'Iceland',\n code: 'IS',\n },\n {\n name: 'India',\n code: 'IN',\n },\n {\n name: 'Indonesia',\n code: 'ID',\n },\n {\n name: 'Iran',\n code: 'IR',\n },\n {\n name: 'Iraq',\n code: 'IQ',\n },\n {\n name: 'Ireland',\n code: 'IE',\n },\n {\n name: 'Isle of Man',\n code: 'IM',\n },\n {\n name: 'Israel',\n code: 'IL',\n },\n {\n name: 'Italy',\n code: 'IT',\n },\n {\n name: 'Jamaica',\n code: 'JM',\n },\n {\n name: 'Japan',\n code: 'JP',\n },\n {\n name: 'Jersey',\n code: 'JE',\n },\n {\n name: 'Jordan',\n code: 'JO',\n },\n {\n name: 'Kazakhstan',\n code: 'KZ',\n },\n {\n name: 'Kenya',\n code: 'KE',\n },\n {\n name: 'Kiribati',\n code: 'KI',\n },\n {\n name: 'Korea (North)',\n code: 'KP',\n },\n {\n name: 'Korea (South)',\n code: 'KR',\n },\n {\n name: 'Kosovo',\n code: 'XK',\n },\n {\n name: 'Kuwait',\n code: 'KW',\n },\n {\n name: 'Kyrgyzstan',\n code: 'KG',\n },\n {\n name: 'Laos',\n code: 'LA',\n },\n {\n name: 'Latvia',\n code: 'LV',\n },\n {\n name: 'Lebanon',\n code: 'LB',\n },\n {\n name: 'Lesotho',\n code: 'LS',\n },\n {\n name: 'Liberia',\n code: 'LR',\n },\n {\n name: 'Libyan Arab Jamahiriya',\n code: 'LY',\n },\n {\n name: 'Liechtenstein',\n code: 'LI',\n },\n {\n name: 'Lithuania',\n code: 'LT',\n },\n {\n name: 'Luxembourg',\n code: 'LU',\n },\n {\n name: 'Macao',\n code: 'MO',\n },\n {\n name: 'Macedonia',\n code: 'MK',\n },\n {\n name: 'Madagascar',\n code: 'MG',\n },\n {\n name: 'Malawi',\n code: 'MW',\n },\n {\n name: 'Malaysia',\n code: 'MY',\n },\n {\n name: 'Maldives',\n code: 'MV',\n },\n {\n name: 'Mali',\n code: 'ML',\n },\n {\n name: 'Malta',\n code: 'MT',\n },\n {\n name: 'Marshall Islands',\n code: 'MH',\n },\n {\n name: 'Martinique',\n code: 'MQ',\n },\n {\n name: 'Mauritania',\n code: 'MR',\n },\n {\n name: 'Mauritius',\n code: 'MU',\n },\n {\n name: 'Mayotte',\n code: 'YT',\n },\n {\n name: 'Mexico',\n code: 'MX',\n },\n {\n name: 'Micronesia',\n code: 'FM',\n },\n {\n name: 'Moldova',\n code: 'MD',\n },\n {\n name: 'Monaco',\n code: 'MC',\n },\n {\n name: 'Mongolia',\n code: 'MN',\n },\n {\n name: 'Montserrat',\n code: 'MS',\n },\n {\n name: 'Morocco',\n code: 'MA',\n },\n {\n name: 'Mozambique',\n code: 'MZ',\n },\n {\n name: 'Myanmar',\n code: 'MM',\n },\n {\n name: 'Namibia',\n code: 'NA',\n },\n {\n name: 'Nauru',\n code: 'NR',\n },\n {\n name: 'Nepal',\n code: 'NP',\n },\n {\n name: 'Netherlands',\n code: 'NL',\n },\n {\n name: 'Netherlands Antilles',\n code: 'AN',\n },\n {\n name: 'New Caledonia',\n code: 'NC',\n },\n {\n name: 'New Zealand',\n code: 'NZ',\n },\n {\n name: 'Nicaragua',\n code: 'NI',\n },\n {\n name: 'Niger',\n code: 'NE',\n },\n {\n name: 'Nigeria',\n code: 'NG',\n },\n {\n name: 'Niue',\n code: 'NU',\n },\n {\n name: 'Norfolk Island',\n code: 'NF',\n },\n {\n name: 'Northern Mariana Islands',\n code: 'MP',\n },\n {\n name: 'Norway',\n code: 'NO',\n },\n {\n name: 'Oman',\n code: 'OM',\n },\n {\n name: 'Pakistan',\n code: 'PK',\n },\n {\n name: 'Palau',\n code: 'PW',\n },\n {\n name: 'Palestinian Territory, Occupied',\n code: 'PS',\n },\n {\n name: 'Panama',\n code: 'PA',\n },\n {\n name: 'Papua New Guinea',\n code: 'PG',\n },\n {\n name: 'Paraguay',\n code: 'PY',\n },\n {\n name: 'Peru',\n code: 'PE',\n },\n {\n name: 'Philippines',\n code: 'PH',\n },\n {\n name: 'Pitcairn',\n code: 'PN',\n },\n {\n name: 'Poland',\n code: 'PL',\n },\n {\n name: 'Portugal',\n code: 'PT',\n },\n {\n name: 'Puerto Rico',\n code: 'PR',\n },\n {\n name: 'Qatar',\n code: 'QA',\n },\n {\n name: 'Reunion',\n code: 'RE',\n },\n {\n name: 'Romania',\n code: 'RO',\n },\n {\n name: 'Russian Federation',\n code: 'RU',\n },\n {\n name: 'Rwanda',\n code: 'RW',\n },\n {\n name: 'Saint Helena',\n code: 'SH',\n },\n {\n name: 'Saint Kitts and Nevis',\n code: 'KN',\n },\n {\n name: 'Saint Lucia',\n code: 'LC',\n },\n {\n name: 'Saint Pierre and Miquelon',\n code: 'PM',\n },\n {\n name: 'Saint Vincent and the Grenadines',\n code: 'VC',\n },\n {\n name: 'Samoa',\n code: 'WS',\n },\n {\n name: 'San Marino',\n code: 'SM',\n },\n {\n name: 'Sao Tome and Principe',\n code: 'ST',\n },\n {\n name: 'Saudi Arabia',\n code: 'SA',\n },\n {\n name: 'Senegal',\n code: 'SN',\n },\n {\n name: 'Serbia',\n code: 'RS',\n },\n {\n name: 'Montenegro',\n code: 'ME',\n },\n {\n name: 'Seychelles',\n code: 'SC',\n },\n {\n name: 'Sierra Leone',\n code: 'SL',\n },\n {\n name: 'Singapore',\n code: 'SG',\n },\n {\n name: 'Slovakia',\n code: 'SK',\n },\n {\n name: 'Slovenia',\n code: 'SI',\n },\n {\n name: 'Solomon Islands',\n code: 'SB',\n },\n {\n name: 'Somalia',\n code: 'SO',\n },\n {\n name: 'South Africa',\n code: 'ZA',\n },\n {\n name: 'South Georgia and the South Sandwich Islands',\n code: 'GS',\n },\n {\n name: 'Spain',\n code: 'ES',\n },\n {\n name: 'Sri Lanka',\n code: 'LK',\n },\n {\n name: 'Sudan',\n code: 'SD',\n },\n {\n name: 'Suriname',\n code: 'SR',\n },\n {\n name: 'Svalbard and Jan Mayen',\n code: 'SJ',\n },\n {\n name: 'Swaziland',\n code: 'SZ',\n },\n {\n name: 'Sweden',\n code: 'SE',\n },\n {\n name: 'Switzerland',\n code: 'CH',\n },\n {\n name: 'Syrian Arab Republic',\n code: 'SY',\n },\n {\n name: 'Taiwan, Province of China',\n code: 'TW',\n },\n {\n name: 'Tajikistan',\n code: 'TJ',\n },\n {\n name: 'Tanzania',\n code: 'TZ',\n },\n {\n name: 'Thailand',\n code: 'TH',\n },\n {\n name: 'Timor-Leste',\n code: 'TL',\n },\n {\n name: 'Togo',\n code: 'TG',\n },\n {\n name: 'Tokelau',\n code: 'TK',\n },\n {\n name: 'Tonga',\n code: 'TO',\n },\n {\n name: 'Trinidad and Tobago',\n code: 'TT',\n },\n {\n name: 'Tunisia',\n code: 'TN',\n },\n {\n name: 'Turkey',\n code: 'TR',\n },\n {\n name: 'Turkmenistan',\n code: 'TM',\n },\n {\n name: 'Turks and Caicos Islands',\n code: 'TC',\n },\n {\n name: 'Tuvalu',\n code: 'TV',\n },\n {\n name: 'Uganda',\n code: 'UG',\n },\n {\n name: 'Ukraine',\n code: 'UA',\n },\n {\n name: 'United Arab Emirates',\n code: 'AE',\n },\n {\n name: 'United Kingdom',\n code: 'GB',\n },\n {\n name: 'United States',\n code: 'US',\n },\n {\n name: 'United States Minor Outlying Islands',\n code: 'UM',\n },\n {\n name: 'Uruguay',\n code: 'UY',\n },\n {\n name: 'Uzbekistan',\n code: 'UZ',\n },\n {\n name: 'Vanuatu',\n code: 'VU',\n },\n {\n name: 'Venezuela',\n code: 'VE',\n },\n {\n name: 'Viet Nam',\n code: 'VN',\n },\n {\n name: 'Virgin Islands, British',\n code: 'VG',\n },\n {\n name: 'Virgin Islands, U.S.',\n code: 'VI',\n },\n {\n name: 'Wallis and Futuna',\n code: 'WF',\n },\n {\n name: 'Western Sahara',\n code: 'EH',\n },\n {\n name: 'Yemen',\n code: 'YE',\n },\n {\n name: 'Zambia',\n code: 'ZM',\n },\n {\n name: 'Zimbabwe',\n code: 'ZW',\n },\n ],\n pt: [\n {\n name: 'Afeganistão',\n code: 'AF',\n },\n {\n name: 'África do Sul',\n code: 'ZA',\n },\n {\n name: 'Albânia',\n code: 'AL',\n },\n {\n name: 'Alemanha',\n code: 'DE',\n },\n {\n name: 'Andorra',\n code: 'AD',\n },\n {\n name: 'Angola',\n code: 'AO',\n },\n {\n name: 'Anguilla',\n code: 'AI',\n },\n {\n name: 'Antártida',\n code: 'AQ',\n },\n {\n name: 'Antígua e Barbuda',\n code: 'AG',\n },\n {\n name: 'Arábia Saudita',\n code: 'SA',\n },\n {\n name: 'Argélia',\n code: 'DZ',\n },\n {\n name: 'Argentina',\n code: 'AR',\n },\n {\n name: 'Armênia',\n code: 'AM',\n },\n {\n name: 'Aruba',\n code: 'AW',\n },\n {\n name: 'Austrália',\n code: 'AU',\n },\n {\n name: 'Áustria',\n code: 'AT',\n },\n {\n name: 'Azerbaijão',\n code: 'AZ',\n },\n {\n name: 'Bahamas',\n code: 'BS',\n },\n {\n name: 'Bahrein',\n code: 'BH',\n },\n {\n name: 'Bangladesh',\n code: 'BD',\n },\n {\n name: 'Barbados',\n code: 'BB',\n },\n {\n name: 'Belarus',\n code: 'BY',\n },\n {\n name: 'Bélgica',\n code: 'BE',\n },\n {\n name: 'Belize',\n code: 'BZ',\n },\n {\n name: 'Benin',\n code: 'BJ',\n },\n {\n name: 'Bermudas',\n code: 'BM',\n },\n {\n name: 'Bolívia',\n code: 'BO',\n },\n {\n name: 'Bósnia-Herzegóvina',\n code: 'BA',\n },\n {\n name: 'Botsuana',\n code: 'BW',\n },\n {\n name: 'Brasil',\n code: 'BR',\n },\n {\n name: 'Brunei',\n code: 'BN',\n },\n {\n name: 'Bulgária',\n code: 'BG',\n },\n {\n name: 'Burkina Fasso',\n code: 'BF',\n },\n {\n name: 'Burundi',\n code: 'BI',\n },\n {\n name: 'Butão',\n code: 'BT',\n },\n {\n name: 'Cabo Verde',\n code: 'CV',\n },\n {\n name: 'Camarões',\n code: 'CM',\n },\n {\n name: 'Camboja',\n code: 'KH',\n },\n {\n name: 'Canadá',\n code: 'CA',\n },\n {\n name: 'Canárias',\n code: 'IC',\n },\n {\n name: 'Cazaquistão',\n code: 'KZ',\n },\n {\n name: 'Ceuta e Melilla',\n code: 'EA',\n },\n {\n name: 'Chade',\n code: 'TD',\n },\n {\n name: 'Chile',\n code: 'CL',\n },\n {\n name: 'China',\n code: 'CN',\n },\n {\n name: 'Chipre',\n code: 'CY',\n },\n {\n name: 'Cingapura',\n code: 'SG',\n },\n {\n name: 'Colômbia',\n code: 'CO',\n },\n {\n name: 'Comores',\n code: 'KM',\n },\n {\n name: 'Congo',\n code: 'CG',\n },\n {\n name: 'Coréia do Norte',\n code: 'KP',\n },\n {\n name: 'Coréia do Sul',\n code: 'KR',\n },\n {\n name: 'Costa do Marfim',\n code: 'CI',\n },\n {\n name: 'Costa Rica',\n code: 'CR',\n },\n {\n name: 'Croácia',\n code: 'HR',\n },\n {\n name: 'Cuba',\n code: 'CU',\n },\n {\n name: 'Curaçao',\n code: 'CW',\n },\n {\n name: 'Diego Garcia',\n code: 'DG',\n },\n {\n name: 'Dinamarca',\n code: 'DK',\n },\n {\n name: 'Djibuti',\n code: 'DJ',\n },\n {\n name: 'Dominica',\n code: 'DM',\n },\n {\n name: 'Egito',\n code: 'EG',\n },\n {\n name: 'El Salvador',\n code: 'SV',\n },\n {\n name: 'Emirados Árabes Unidos',\n code: 'AE',\n },\n {\n name: 'Equador',\n code: 'EC',\n },\n {\n name: 'Eritréia',\n code: 'ER',\n },\n {\n name: 'Eslováquia',\n code: 'SK',\n },\n {\n name: 'Eslovênia',\n code: 'SI',\n },\n {\n name: 'Espanha',\n code: 'ES',\n },\n {\n name: 'Estados Unidos',\n code: 'US',\n },\n {\n name: 'Estônia',\n code: 'EE',\n },\n {\n name: 'Etiópia',\n code: 'ET',\n },\n {\n name: 'Fiji',\n code: 'FJ',\n },\n {\n name: 'Filipinas',\n code: 'PH',\n },\n {\n name: 'Finlândia',\n code: 'FI',\n },\n {\n name: 'França',\n code: 'FR',\n },\n {\n name: 'Gabão',\n code: 'GA',\n },\n {\n name: 'Gâmbia',\n code: 'GM',\n },\n {\n name: 'Gana',\n code: 'GH',\n },\n {\n name: 'Geórgia',\n code: 'GE',\n },\n {\n name: 'Gibraltar',\n code: 'GI',\n },\n {\n name: 'Grã-Bretanha (Reino Unido, UK)',\n code: 'GB',\n },\n {\n name: 'Granada',\n code: 'GD',\n },\n {\n name: 'Grécia',\n code: 'GR',\n },\n {\n name: 'Groelândia',\n code: 'GL',\n },\n {\n name: 'Guadalupe',\n code: 'GP',\n },\n {\n name: 'Guam (Território dos Estados Unidos)',\n code: 'GU',\n },\n {\n name: 'Guatemala',\n code: 'GT',\n },\n {\n name: 'Guernsey',\n code: 'GG',\n },\n {\n name: 'Guiana',\n code: 'GY',\n },\n {\n name: 'Guiana Francesa',\n code: 'GF',\n },\n {\n name: 'Guiné',\n code: 'GN',\n },\n {\n name: 'Guiné Equatorial',\n code: 'GQ',\n },\n {\n name: 'Guiné-Bissau',\n code: 'GW',\n },\n {\n name: 'Haiti',\n code: 'HT',\n },\n {\n name: 'Holanda',\n code: 'NL',\n },\n {\n name: 'Honduras',\n code: 'HN',\n },\n {\n name: 'Hong Kong',\n code: 'HK',\n },\n {\n name: 'Hungria',\n code: 'HU',\n },\n {\n name: 'Iêmen',\n code: 'YE',\n },\n {\n name: 'Ilha Bouvet',\n code: 'BV',\n },\n {\n name: 'Ilha de Ascensão',\n code: 'AC',\n },\n {\n name: 'Ilha de Clipperton',\n code: 'CP',\n },\n {\n name: 'Ilha de Man',\n code: 'IM',\n },\n {\n name: 'Ilha Natal',\n code: 'CX',\n },\n {\n name: 'Ilha Pitcairn',\n code: 'PN',\n },\n {\n name: 'Ilha Reunião',\n code: 'RE',\n },\n {\n name: 'Ilhas Aland',\n code: 'AX',\n },\n {\n name: 'Ilhas Cayman',\n code: 'KY',\n },\n {\n name: 'Ilhas Cocos',\n code: 'CC',\n },\n {\n name: 'Ilhas Cook',\n code: 'CK',\n },\n {\n name: 'Ilhas Faroes',\n code: 'FO',\n },\n {\n name: 'Ilhas Geórgia do Sul e Sandwich do Sul',\n code: 'GS',\n },\n {\n name: 'Ilhas Heard e McDonald (Território da Austrália)',\n code: 'HM',\n },\n {\n name: 'Ilhas Malvinas',\n code: 'FK',\n },\n {\n name: 'Ilhas Marianas do Norte',\n code: 'MP',\n },\n {\n name: 'Ilhas Marshall',\n code: 'MH',\n },\n {\n name: 'Ilhas Menores dos Estados Unidos',\n code: 'UM',\n },\n {\n name: 'Ilhas Norfolk',\n code: 'NF',\n },\n {\n name: 'Ilhas Salomão',\n code: 'SB',\n },\n {\n name: 'Ilhas Seychelles',\n code: 'SC',\n },\n {\n name: 'Ilhas Tokelau',\n code: 'TK',\n },\n {\n name: 'Ilhas Turks e Caicos',\n code: 'TC',\n },\n {\n name: 'Ilhas Virgens (Estados Unidos)',\n code: 'VI',\n },\n {\n name: 'Ilhas Virgens (Inglaterra)',\n code: 'VG',\n },\n {\n name: 'Índia',\n code: 'IN',\n },\n {\n name: 'Indonésia',\n code: 'ID',\n },\n {\n name: 'Irã',\n code: 'IR',\n },\n {\n name: 'Iraque',\n code: 'IQ',\n },\n {\n name: 'Irlanda',\n code: 'IE',\n },\n {\n name: 'Islândia',\n code: 'IS',\n },\n {\n name: 'Israel',\n code: 'IL',\n },\n {\n name: 'Itália',\n code: 'IT',\n },\n {\n name: 'Jamaica',\n code: 'JM',\n },\n {\n name: 'Japão',\n code: 'JP',\n },\n {\n name: 'Jersey',\n code: 'JE',\n },\n {\n name: 'Jordânia',\n code: 'JO',\n },\n {\n name: 'Kiribati',\n code: 'KI',\n },\n {\n name: 'Kosovo',\n code: 'XK',\n },\n {\n name: 'Kuait',\n code: 'KW',\n },\n {\n name: 'Laos',\n code: 'LA',\n },\n {\n name: 'Lesoto',\n code: 'LS',\n },\n {\n name: 'Letônia',\n code: 'LV',\n },\n {\n name: 'Líbano',\n code: 'LB',\n },\n {\n name: 'Libéria',\n code: 'LR',\n },\n {\n name: 'Líbia',\n code: 'LY',\n },\n {\n name: 'Liechtenstein',\n code: 'LI',\n },\n {\n name: 'Lituânia',\n code: 'LT',\n },\n {\n name: 'Luxemburgo',\n code: 'LU',\n },\n {\n name: 'Macau',\n code: 'MO',\n },\n {\n name: 'Macedônia (República Yugoslava)',\n code: 'MK',\n },\n {\n name: 'Madagascar',\n code: 'MG',\n },\n {\n name: 'Malásia',\n code: 'MY',\n },\n {\n name: 'Malaui',\n code: 'MW',\n },\n {\n name: 'Maldivas',\n code: 'MV',\n },\n {\n name: 'Mali',\n code: 'ML',\n },\n {\n name: 'Malta',\n code: 'MT',\n },\n {\n name: 'Marrocos',\n code: 'MA',\n },\n {\n name: 'Martinica',\n code: 'MQ',\n },\n {\n name: 'Maurício',\n code: 'MU',\n },\n {\n name: 'Mauritânia',\n code: 'MR',\n },\n {\n name: 'Mayotte',\n code: 'YT',\n },\n {\n name: 'México',\n code: 'MX',\n },\n {\n name: 'Micronésia',\n code: 'FM',\n },\n {\n name: 'Moçambique',\n code: 'MZ',\n },\n {\n name: 'Moldova',\n code: 'MD',\n },\n {\n name: 'Mônaco',\n code: 'MC',\n },\n {\n name: 'Mongólia',\n code: 'MN',\n },\n {\n name: 'Montenegro',\n code: 'ME',\n },\n {\n name: 'Montserrat',\n code: 'MS',\n },\n {\n name: 'Myanma',\n code: 'MM',\n },\n {\n name: 'Namíbia',\n code: 'NA',\n },\n {\n name: 'Nauru',\n code: 'NR',\n },\n {\n name: 'Nepal',\n code: 'NP',\n },\n {\n name: 'Nicarágua',\n code: 'NI',\n },\n {\n name: 'Níger',\n code: 'NE',\n },\n {\n name: 'Nigéria',\n code: 'NG',\n },\n {\n name: 'Niue',\n code: 'NU',\n },\n {\n name: 'Noruega',\n code: 'NO',\n },\n {\n name: 'Nova Caledônia',\n code: 'NC',\n },\n {\n name: 'Nova Zelândia',\n code: 'NZ',\n },\n {\n name: 'Omã',\n code: 'OM',\n },\n {\n name: 'Países Baixos Caribenhos',\n code: 'BQ',\n },\n {\n name: 'Palau',\n code: 'PW',\n },\n {\n name: 'Palestina',\n code: 'PS',\n },\n {\n name: 'Panamá',\n code: 'PA',\n },\n {\n name: 'Papua-Nova Guiné',\n code: 'PG',\n },\n {\n name: 'Paquistão',\n code: 'PK',\n },\n {\n name: 'Paraguai',\n code: 'PY',\n },\n {\n name: 'Peru',\n code: 'PE',\n },\n {\n name: 'Polinésia Francesa',\n code: 'PF',\n },\n {\n name: 'Polônia',\n code: 'PL',\n },\n {\n name: 'Porto Rico',\n code: 'PR',\n },\n {\n name: 'Portugal',\n code: 'PT',\n },\n {\n name: 'Qatar',\n code: 'QA',\n },\n {\n name: 'Quênia',\n code: 'KE',\n },\n {\n name: 'Quirguistão',\n code: 'KG',\n },\n {\n name: 'República Centro-Africana',\n code: 'CF',\n },\n {\n name: 'República Democrática do Congo',\n code: 'CD',\n },\n {\n name: 'República Dominicana',\n code: 'DO',\n },\n {\n name: 'República Tcheca',\n code: 'CZ',\n },\n {\n name: 'Romênia',\n code: 'RO',\n },\n {\n name: 'Ruanda',\n code: 'RW',\n },\n {\n name: 'Rússia (antiga URSS) - Federação Russa',\n code: 'RU',\n },\n {\n name: 'Saara Ocidental',\n code: 'EH',\n },\n {\n name: 'Saint-Pierre e Miquelon',\n code: 'PM',\n },\n {\n name: 'Samoa Americana',\n code: 'AS',\n },\n {\n name: 'Samoa Ocidental',\n code: 'WS',\n },\n {\n name: 'San Marino',\n code: 'SM',\n },\n {\n name: 'Santa Helena',\n code: 'SH',\n },\n {\n name: 'Santa Lúcia',\n code: 'LC',\n },\n {\n name: 'São Bartolomeu',\n code: 'BL',\n },\n {\n name: 'São Cristóvão e Névis',\n code: 'KN',\n },\n {\n name: 'São Martim',\n code: 'MF',\n },\n {\n name: 'São Martinho',\n code: 'SX',\n },\n {\n name: 'São Tomé e Príncipe',\n code: 'ST',\n },\n {\n name: 'São Vicente e Granadinas',\n code: 'VC',\n },\n {\n name: 'Senegal',\n code: 'SN',\n },\n {\n name: 'Serra Leoa',\n code: 'SL',\n },\n {\n name: 'Sérvia',\n code: 'RS',\n },\n {\n name: 'Síria',\n code: 'SY',\n },\n {\n name: 'Somália',\n code: 'SO',\n },\n {\n name: 'Sri Lanka',\n code: 'LK',\n },\n {\n name: 'Suazilândia',\n code: 'SZ',\n },\n {\n name: 'Sudão',\n code: 'SD',\n },\n {\n name: 'Sudão do Sul',\n code: 'SS',\n },\n {\n name: 'Suécia',\n code: 'SE',\n },\n {\n name: 'Suíça',\n code: 'CH',\n },\n {\n name: 'Suriname',\n code: 'SR',\n },\n {\n name: 'Svalbard',\n code: 'SJ',\n },\n {\n name: 'Tadjiquistão',\n code: 'TJ',\n },\n {\n name: 'Tailândia',\n code: 'TH',\n },\n {\n name: 'Taiwan',\n code: 'TW',\n },\n {\n name: 'Tanzânia',\n code: 'TZ',\n },\n {\n name: 'Território Britânico do Oceano índico',\n code: 'IO',\n },\n {\n name: 'Territórios do Sul da França',\n code: 'TF',\n },\n {\n name: 'Timor-Leste',\n code: 'TL',\n },\n {\n name: 'Togo',\n code: 'TG',\n },\n {\n name: 'Tonga',\n code: 'TO',\n },\n {\n name: 'Trinidad e Tobago',\n code: 'TT',\n },\n {\n name: 'Tristão da Cunha',\n code: 'TA',\n },\n {\n name: 'Tunísia',\n code: 'TN',\n },\n {\n name: 'Turcomenistão',\n code: 'TM',\n },\n {\n name: 'Turquia',\n code: 'TR',\n },\n {\n name: 'Tuvalu',\n code: 'TV',\n },\n {\n name: 'Ucrânia',\n code: 'UA',\n },\n {\n name: 'Uganda',\n code: 'UG',\n },\n {\n name: 'Uruguai',\n code: 'UY',\n },\n {\n name: 'Uzbequistão',\n code: 'UZ',\n },\n {\n name: 'Vanuatu',\n code: 'VU',\n },\n {\n name: 'Vaticano',\n code: 'VA',\n },\n {\n name: 'Venezuela',\n code: 'VE',\n },\n {\n name: 'Vietnã',\n code: 'VN',\n },\n {\n name: 'Wallis e Futuna',\n code: 'WF',\n },\n {\n name: 'Zâmbia',\n code: 'ZM',\n },\n {\n name: 'Zimbábue',\n code: 'ZW',\n },\n ],\n};\n","import React from 'react';\nimport PropTypes from 'prop-types';\n\nconst FemaleIcon = ({ height, className, width, fill, transform }) =>\n \n \n \n \n \n \n \n ;\n\nFemaleIcon.defaultProps = {\n height: '24',\n className: '',\n width: '24',\n fill: '#00b8cb',\n transform: 'translate(0,0)',\n};\n\nFemaleIcon.propTypes = {\n height: PropTypes.string,\n className: PropTypes.string,\n width: PropTypes.string,\n fill: PropTypes.string,\n transform: PropTypes.string,\n};\n\nexport default FemaleIcon;\n","import React from 'react';\nimport PropTypes from 'prop-types';\n\nconst MaleIcon = ({ height, className, width, fill, transform }) =>\n \n \n \n ;\n\nMaleIcon.defaultProps = {\n height: '24',\n className: '',\n width: '24',\n fill: '#00b8cb',\n transform: 'translate(0,0)',\n};\n\nMaleIcon.propTypes = {\n height: PropTypes.string,\n className: PropTypes.string,\n width: PropTypes.string,\n fill: PropTypes.string,\n transform: PropTypes.string,\n};\n\nexport default MaleIcon;\n","import React from 'react';\nimport PropTypes from 'prop-types';\n\nconst TransexIcon = ({ height, className, width, fill, transform }) =>\n \n \n\t\t\t\n ;\n\nTransexIcon.defaultProps = {\n height: '24',\n className: '',\n width: '24',\n fill: '#00b8cb',\n transform: 'translate(0,0)',\n};\n\nTransexIcon.propTypes = {\n height: PropTypes.string,\n className: PropTypes.string,\n width: PropTypes.string,\n fill: PropTypes.string,\n transform: PropTypes.string,\n};\n\nexport default TransexIcon;\n","import React, { useState, useEffect } from 'react';\nimport PropTypes from 'prop-types';\nimport axios from 'axios';\nimport { useSelector, RootStateOrAny } from 'react-redux';\nimport { FormattedMessage } from 'react-intl';\nimport moment from 'moment';\nimport { getDomain, host, getToken } from '../../../BLL/environment';\nimport * as general from '../../../BLL/general';\nimport * as format from '../../../BLL/format';\nimport ModalReturnCall from '../../Modal/ModalReturnCall';\nimport countryList from '../../../BLL/locale/messagesCountries'\nimport FemaleIcon from '../../../icons/FemaleIcon'\nimport MaleIcon from '../../../icons/MaleIcon';\nimport UnisexIcon from '../../../icons/TransexIcon';\nimport Loading from '../../../icons/Loading';\n\nimport style from './clientDetail.module.scss';\n\nimport '../../../css/middle.scss';\nimport '../../../css/table.scss';\n\nimport '../../../css/detailPage.scss';\nimport '../../../css/block.scss';\n\nconst ClientDetail = (props) => {\n const { attendantList, lang, equipment, isSysAdm } = useSelector(\n (state: RootStateOrAny) => ({\n attendantList: state.attendants,\n lang: state.locale.lang,\n equipment: state.equipment.length > 0 ? state.equipment[0].data : [],\n isSysAdm: state.loggedAttendant.groups.some(group => group === 1 || group === 4)\n })\n );\n\n const [client, setClient] = useState(undefined);\n const [secondaryClient, setSecondaryClient] = useState(undefined);\n const [userAudioList, setUserAudioList] = useState([])\n const [userAudioCount, setUserAudioCount] = useState(0);\n const [userAudioNext, setUserAudioNext] = useState(undefined);\n const [userAudioPrev, setUserAudioPrev] = useState(undefined);\n const [showReturnCallModal, setShowReturnCallModal] = useState(false);\n\n useEffect(() => {\n const clientId = parseInt(props.match.params.id, 10);\n axios.get(`https://${getDomain()}${host()}/api/clients/${clientId}/`, {\n headers: { Authorization: `Token ${getToken()}` },\n })\n .then((res) => {\n setClient(res.data)\n const secondary = res.data?.secondary[0];\n if (secondary) {\n setSecondaryClient(secondary);\n }\n })\n .catch(error => console.log(error));\n }, [props.match.params]);\n\n useEffect(() => {\n if (client) {\n const url = `https://${getDomain()}${host()}/api/clients/${client.id}/extension-audio/?limit=3`;\n axios.get(url, {\n headers: { Authorization: `Token ${getToken()}` },\n })\n .then((res) => {\n if (res.data) {\n setUserAudioCount(res.data.count);\n setUserAudioList(res.data.results);\n setUserAudioNext(res.data.next);\n setUserAudioPrev(res.data.previous);\n }\n })\n .catch(error => console.log(error))\n }\n }, [client]);\n\n if (!client) {\n return (\n } />\n );\n }\n\n const attendants = attendantList.length > 0 ? [...attendantList[0].data] : [];\n const country = client && countryList[lang]?.find(ctry => (\n ctry.code === client.country\n ));\n const creator = client ?\n attendants.filter(attendant => attendant.id === client.created_by)[0] : undefined;\n const modifier = client ?\n attendants.filter(attendant => attendant.id === client.modified_by)[0] : undefined;\n const clientEquipment = equipment.length > 0 ? equipment.find(equip => equip.id === client.equipment_id) : undefined;\n const canMakeCall = (client.use_voip && clientEquipment?.name.includes('PERS')) || clientEquipment?.name.toLowerCase().includes('climax');\n\n console.log(secondaryClient);\n\n return (\n
\n {showReturnCallModal &&\n props.sendDTMF(clientEquipment?.name.toLowerCase().includes('climax') ? 2 : 8)}\n sipStackType={props.sipStackType}\n closeModal={() => setShowReturnCallModal(!showReturnCallModal)}\n isIndependent={true}\n equipment={clientEquipment}\n />\n }\n
\n
\n - {client.account}\n
\n
\n
\n {canMakeCall && !showReturnCallModal &&\n
\n setShowReturnCallModal(!showReturnCallModal)}\n type=\"button\"\n className={style['detail-call-btn']}\n >\n \n \n
\n }\n
\n
\n\n
\n
\n
\n
\n
\n
\n :
\n
{client.account}
\n
\n
\n
\n :
\n
\n {client.is_test\n ? \n : \n }\n
\n
\n
\n
Keybox:
\n
\n {client.key_box\n ? client.key_box\n : \n }\n
\n
\n
\n
\n \n
\n
{clientEquipment.name}
\n
\n
\n
IMEI:
\n
{client.imei ? client.imei : '-'}
\n
\n
\n
\n \n
\n
\n {client.use_voip\n ? \n : \n }\n
\n
\n
\n
\n \n
\n
\n {client.use_voip \n ? client.account_phone\n : general.renderPhoneDigit(client.account_phone, client.country)\n }\n
\n
\n
\n
\n \n
\n
\n {client.group_id ? client.group_name : '-'}\n
\n
\n
\n
\n \n
\n
\n {client.internal_comments\n ? <>{client.internal_comments}\n : \n }\n
\n
\n
\n
\n\n
\n
\n
\n
\n
\n :\n
\n
{client.street}
\n
\n
\n
\n : \n
\n
\n {\n country ? country.name : '-'\n }\n
\n
\n\n
\n
\n :\n
\n
{client.number === 0 ? '-' : client.number}
\n
\n
\n
\n :\n
\n
{client.complement ? client.complement : '-'}
\n
\n
\n
\n :\n
\n
{client.district}
\n
\n
\n
\n :\n
\n
{client.zip_code ? general.setMask(client.zip_code, '00000-000') : '-'}
\n
\n
\n
\n :\n
\n
{client.city}
\n
\n
\n
\n :\n
\n
{client.state}
\n
\n
\n
\n 1:\n
\n \n {client.contact_phone\n ? general.renderPhoneDigit(client.contact_phone, client.country)\n : \n }\n \n
\n
\n
\n 2:\n
\n \n {client.extra_phone\n ? general.renderPhoneDigit(client.extra_phone, client.country)\n : \n }\n \n
\n
\n
\n\n
\n
\n
\n
\n
\n :
\n
{client.first_name} {client.last_name}
\n
\n
\n
\n :
\n
\n {client.gender === 'm' && }\n {client.gender === 'f' && }\n {client.gender !== 'f' && client.gender !== 'm' && }\n
\n
\n
\n
\n :\n
\n
{format.date(client.birthdate)}
\n
\n \n
\n
\n :\n
\n
{moment().year() - moment(client.birthdate).year()}
\n
\n\n
\n
CPF:
\n
\n {client.cpf\n ? general.setMask(client.cpf, '000.000.000-00')\n : \n }\n
\n
\n
\n
RG:
\n
\n {client.rg\n ? client.rg\n : \n }\n
\n
\n \n
\n
\n
\n
\n {client.general_info\n ? client.general_info\n : }\n
\n
\n
\n
\n \n
\n
\n {client.health_plan\n ? client.health_plan\n : }\n
\n
\n
\n
Hospital:
\n
\n {client.hospital\n ? client.hospital\n : }\n
\n
\n
\n
\n \n
\n
\n {client.limitations\n ? client.limitations\n : }\n
\n
\n
\n
\n \n
\n
\n {client.medications\n ? client.medications\n : }\n
\n
\n
\n
\n \n
\n
\n {client.removal_plan\n ? client.removal_plan\n : }\n
\n
\n
\n
\n {secondaryClient &&\n
\n
\n
\n
\n
\n :
\n
{secondaryClient.first_name} {secondaryClient.last_name}
\n
\n
\n
\n :
\n
\n {secondaryClient.gender === 'm' && }\n {secondaryClient.gender === 'f' && }\n {secondaryClient.gender !== 'f' && secondaryClient.gender !== 'm' && }\n
\n
\n
\n
\n :
\n
{format.date(secondaryClient.birthdate)}
\n
\n
\n
\n :\n
\n
{moment().year() - moment(secondaryClient.birthdate).year()}
\n
\n
\n
CPF:
\n
\n {secondaryClient.cpf\n ? general.setMask(secondaryClient.cpf, '000.000.000-00')\n : \n }\n
\n
\n
\n
RG:
\n
\n {secondaryClient.rg\n ? secondaryClient.rg\n : \n }\n
\n
\n
\n
\n
\n
\n {secondaryClient.general_info\n ? secondaryClient.general_info\n : }\n
\n
\n
\n
\n \n
\n
\n {secondaryClient.health_plan\n ? secondaryClient.health_plan\n : }\n
\n
\n
\n
Hospital:
\n
\n {secondaryClient.hospital\n ? secondaryClient.hospital\n : }\n
\n
\n
\n
\n \n
\n
\n {secondaryClient.limitations\n ? secondaryClient.limitations\n : }\n
\n
\n
\n
\n \n
\n
\n {secondaryClient.medications\n ? secondaryClient.medications\n : }\n
\n
\n
\n
\n \n
\n
\n {secondaryClient.removal_plan\n ? secondaryClient.removal_plan\n : }\n
\n
\n
\n
\n }\n
\n
LOGS
\n
\n
\n
\n :\n
\n
\n {client.modified_date ? general.formatOnlyNumbersDate(client.created_date) : '-'}\n
\n
\n
\n
\n :\n
\n {creator\n ?
{`${creator.first_name} ${creator.last_name}`}
\n :
-
\n }\n
\n
\n
\n :\n
\n
\n {client.modified_date\n ? general.formatOnlyNumbersDate(client.modified_date)\n : '-'\n }\n
\n
\n
\n
\n :\n
\n {modifier\n ?
{`${modifier.first_name} ${modifier.last_name}`}
\n :
-
\n }\n
\n
\n
\n {userAudioList && userAudioList.length > 0 &&\n
\n
ÚLTIMOS 3 ÁUDIOS
\n {userAudioList.map((audio) => \n
\n
\n
\n :\n
\n
\n {audio.audio_ts ? general.formatOnlyNumbersDate(audio.audio_ts) : '-'}\n
\n
\n
\n
\n :\n
\n {audio.user_name \n ?
\n {audio.user_name}\n {isSysAdm &&\n \n \n \n }\n
\n :
-
\n }\n
\n
\n )}\n
\n }\n
\n
\n
\n );\n}\n\nClientDetail.propTypes = {\n params: PropTypes.shape({\n id: PropTypes.string.isRequired,\n }).isRequired,\n lang: PropTypes.string.isRequired,\n isSysAdm: PropTypes.bool.isRequired,\n};\n\nexport default ClientDetail;\n","/* eslint no-useless-escape: 0 */\n/* eslint no-plusplus: [\"error\", { \"allowForLoopAfterthoughts\": true }] */\n\nexport const specialCharReg = /[`~˜!@#$%^ˆ&*()_ |+\\-=?;:'.\",<>\\{\\}\\[\\]\\\\\\/]/gi;\nexport const specialCharReg2 = /[`~˜!@#$%^ˆ&*()_ |+\\-=?;:'.\",<>\\{\\}\\[\\]\\\\\\/]$/;\nexport const usernameReg = /^[a-z]+([.][a-z]+)?$/;\nexport const dotReg = /[a-z]?[.]$/;\nexport const twoCharReg = /[a-z]{2}$/;\nexport const usernameRegNeg = /[`~˜!@#$%^ˆ&*()_ |+\\-=?;:'\",\\d<>\\{\\}\\[\\]\\\\\\/]/gi;\nexport const domainReg = /^[a-z][a-z0-9]+$/;\nexport const digitReg = /\\d+/gi;\nexport const companyReg = /^[a-zA-Z0-9][a-zA-Z0-9\\s]+$/;\n\nexport const validateEmail = (email) => {\n const re = /^(([^<>()\\[\\]\\\\.,;:\\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,}))$/;\n return re.test(email);\n};\n\nexport const validateMobile = (phone) => {\n const val = /[1-9]{2}[9]{1}[0-9]{8}/;\n if (!val.test(phone)) {\n return false;\n }\n return true;\n};\n\nexport const validateMobileGB = (phone) => {\n const val = /[1-9]{2}[7]{1}[0-9]{9}/;\n if (!val.test(phone)) {\n return false;\n }\n return true;\n};\n\nexport const validateCPF = (cpf) => {\n let strCPF;\n let Soma;\n let Resto;\n if (/^\\d\\d\\d[.]\\d\\d\\d[.]\\d\\d\\d-\\d\\d$/.test(cpf)) {\n const [, first, second, third, fourth] = /^(\\d\\d\\d)[.](\\d\\d\\d)[.](\\d\\d\\d)-(\\d\\d)$/.exec(cpf);\n\n strCPF = first + second + third + fourth;\n } else {\n strCPF = cpf;\n }\n\n Soma = 0;\n if (strCPF === '00000000000') return false;\n\n for (let i = 1; i <= 9; i++) Soma += parseInt(strCPF.substring(i - 1, i), 10) * (11 - i);\n Resto = (Soma * 10) % 11;\n\n if (Resto === 10 || Resto === 11) Resto = 0;\n if (Resto !== parseInt(strCPF.substring(9, 10), 10)) return false;\n\n Soma = 0;\n for (let i = 1; i <= 10; i++) Soma += parseInt(strCPF.substring(i - 1, i), 10) * (12 - i);\n Resto = (Soma * 10) % 11;\n\n if (Resto === 10 || Resto === 11) Resto = 0;\n if (Resto !== parseInt(strCPF.substring(10, 11), 10)) return false;\n return true;\n};\n\nexport const validateDate = (value) => {\n const maxYear = new Date().getFullYear() - 18;\n if (/^\\d\\d\\d\\d-\\d\\d-\\d\\d$/.test(value)) {\n const [, year, month, day] = /^(\\d\\d\\d\\d)-(\\d\\d)-(\\d\\d)$/.exec(value);\n return `${day}/${month}/${year}`;\n } else if (/^\\d\\d[/]\\d\\d[/]\\d\\d\\d\\d$/.test(value)) {\n let [, day, month, year] = /^(\\d\\d)[/](\\d\\d)[/](\\d\\d\\d\\d)$/.exec(value);\n const monthLength = [31, 28, 31, 30, 31, 30, 31, 31, 30, 31, 30, 31];\n\n // Adjust for leap years\n if (year % 400 === 0 || (year % 100 !== 0 && year % 4 === 0)) monthLength[1] = 29;\n\n // if (year <= maxYear && month > 0 && month <= 12 && day > 0 && day < monthLength[month - 1]) {\n // // return \"\"\n // return true;\n // }\n if (day < 1) {\n day = '01';\n } else if (day > monthLength[month - 1]) {\n day = monthLength[month - 1];\n }\n if (month < 1) {\n month = '01';\n } else if (month > 12) {\n month = 12;\n }\n if (year > maxYear) {\n year = maxYear;\n }\n return `${day}/${month}/${year}`;\n }\n return '01/01/1900';\n};\n","import React from 'react';\nimport PropTypes from 'prop-types';\nimport formStyle from '../../css/form.module.scss';\nimport '../../css/formPage.scss';\n\nconst InputContainer = ({\n id,\n maxLength,\n name,\n onChange,\n title,\n type,\n validator,\n value,\n width,\n disabled,\n isRequired,\n}) => (\n
\n \n \n {validator &&\n !validator.validate &&\n width === 100 && (\n
\n {validator.message}\n
\n )}\n {validator &&\n !validator.validate &&\n width < 100 && (\n
\n {validator.message}\n
\n )}\n
\n );\n\nInputContainer.defaultProps = {\n id: '',\n maxLength: '',\n type: 'text',\n validator: null,\n width: 100,\n disabled: false,\n isRequired: false,\n};\n\nInputContainer.propTypes = {\n id: PropTypes.string,\n isRequired: PropTypes.bool,\n maxLength: PropTypes.string,\n name: PropTypes.string.isRequired,\n title: PropTypes.oneOfType([PropTypes.string, PropTypes.object]),\n type: PropTypes.string,\n onChange: PropTypes.func.isRequired,\n validator: PropTypes.shape({\n validate: PropTypes.bool,\n message: PropTypes.oneOfType([PropTypes.string, PropTypes.object]),\n }),\n value: PropTypes.node.isRequired,\n width: PropTypes.number,\n disabled: PropTypes.bool,\n};\n\nexport default InputContainer;\n","import React from 'react';\nimport PropTypes from 'prop-types';\n\nclass SelectInput extends React.Component {\n constructor(props) {\n super(props);\n this.state = {\n select: this.props.dictionary ? this.props.dictionary(this.props.value) : this.props.value,\n items: [],\n disabled: this.props.disabled ? this.props.disabled : false,\n };\n this.handleChange = this.handleChange.bind(this);\n this.setItems = this.setItems.bind(this);\n }\n\n componentDidMount() {\n const items = this.setDictionary(this.props.items);\n this.setItems(items);\n }\n\n UNSAFE_componentWillReceiveProps({ items, value, disabled }) {\n if (value !== this.props.value) {\n this.setState({ select: this.props.dictionary ? this.props.dictionary(value) : value });\n }\n if (items !== this.props.items) {\n this.setState({\n items: this.setDictionary(items),\n });\n }\n if (disabled !== this.props.disabled) {\n this.setState({\n disabled,\n });\n }\n }\n\n setItems(items) {\n this.setState({\n items,\n });\n }\n\n setDictionary(arr) {\n if (this.props.dictionary) {\n return arr.map(el => this.props.dictionary(el));\n }\n\n return arr;\n }\n\n handleChange(event) {\n let val = event.target.value;\n this.setState({\n select: val,\n });\n if (this.props.dictionary) {\n val = this.props.dictionary(val);\n }\n const ev = { target: { value: val, name: event.target.name, id: event.target.id } };\n\n this.props.onChange(ev, event.target.value !== '', this.props.index);\n }\n\n render() {\n const { disabled, items, select } = this.state;\n const { className, name, emptyOption, onBlur, onMouseOver, onMouseOut, style } = this.props;\n return (\n \n {emptyOption && ,\n )}\n \n );\n }\n}\n\nSelectInput.defaultProps = {\n index: 0,\n className: '',\n disabled: false,\n dictionary: null,\n emptyOption: false,\n style: {},\n onBlur: () => {},\n onMouseOver: () => {},\n onMouseOut: () => {},\n};\n\nSelectInput.propTypes = {\n name: PropTypes.string.isRequired,\n className: PropTypes.string,\n disabled: PropTypes.bool,\n onChange: PropTypes.func.isRequired,\n dictionary: PropTypes.func,\n items: PropTypes.node.isRequired,\n index: PropTypes.number,\n value: PropTypes.node.isRequired,\n emptyOption: PropTypes.bool,\n style: PropTypes.shape({\n color: PropTypes.string,\n }),\n onBlur: PropTypes.func,\n onMouseOver: PropTypes.func,\n onMouseOut: PropTypes.func,\n};\n\nexport default SelectInput;\n","import React from 'react';\nimport PropTypes from 'prop-types';\n\nclass CheckboxInput extends React.Component {\n constructor(props) {\n super(props);\n this.state = {\n className: this.props.className,\n checked: this.props.checked,\n };\n this.handleCheckbox = this.handleCheckbox.bind(this);\n }\n\n handleCheckbox(event) {\n const val = event.target.checked;\n const ev = { target: { value: val, name: event.target.name } };\n\n this.setState({ checked: val });\n this.props.onChange(ev, true);\n }\n\n componentDidUpdate(prevProps) {\n if (this.props.checked !== prevProps.checked) {\n this.setState({\n checked: this.props.checked,\n });\n }\n\n if (this.props.className !== prevProps.className) {\n this.setState({\n className: this.props.className,\n });\n }\n }\n\n render() {\n return (\n \n );\n }\n\n}\n\nCheckboxInput.defaultProps = {\n id: '',\n checked: false,\n disabled: false,\n className: '',\n onChange: () => {},\n};\n\nCheckboxInput.propTypes = {\n id: PropTypes.string,\n className: PropTypes.string,\n checked: PropTypes.bool,\n name: PropTypes.string.isRequired,\n onChange: PropTypes.func,\n disabled: PropTypes.bool,\n};\n\n\nexport default CheckboxInput;\n","import React from 'react';\nimport PropTypes from 'prop-types';\nimport { FormattedMessage } from 'react-intl';\n\nimport style from './errorComponent.module.scss';\n\nconst ErrorComponent = ({ errorCode, errorMsg, handleButton }) =>\n
\n \n \n \n \n \n \n :\n {errorCode}\n \n \n \n :\n {errorMsg}\n \n
;\n\nexport default ErrorComponent;\n","import React from \"react\";\nimport InputContainer from \"../../../Common/InputContainer\";\nimport { FormattedMessage } from \"react-intl\";\nimport messages from \"../../../../BLL/locale/messages\";\n\nimport formStyle from \"../../../../css/form.module.scss\";\n\nconst ClientInfoForm = (props) => (\n
\n
\n
\n \n }\n validator={props.validator.first_name}\n isRequired\n value={props.client.first_name}\n />\n
\n
\n \n }\n validator={props.validator.last_name}\n isRequired\n value={props.client.last_name}\n />\n
\n
\n
\n
\n \n }\n validator={props.validator.birthdate}\n isRequired\n value={props.client.birthdate}\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 \n \n
\n
\n \n \n
\n
\n \n \n
\n
\n);\n\nexport default ClientInfoForm;\n","import React from \"react\";\nimport style from \"./clientForm.module.scss\";\n\nconst SecondaryActionsForm = (props) => {\n const { secondary, localDispatch, showForm, method } = props;\n\n if (method !== \"edit\") {\n return <>;\n }\n\n return (\n
\n
\n localDispatch({ type: \"removeSecondary\" })}\n disabled={!secondary.first_name && !secondary.last_name}\n >\n \n Remover secundário\n \n localDispatch({ type: \"invertClients\" })}\n disabled={!secondary.first_name && !secondary.last_name}\n >\n \n Inverter usuários\n \n
\n
\n );\n};\n\nexport default SecondaryActionsForm;\n","import React from 'react';\nimport { FormattedMessage } from 'react-intl';\n\nimport {\n onlyDigit,\n validateCPF,\n validateDate,\n validateMobile,\n validateMobileGB,\n validateEmail,\n} from '../../../BLL/validate';\nimport * as general from '../../../BLL/general';\n\n// If the client is not from brazil, the phone, address and zip-code validation changes\n// Doesn't validate them\nexport const validateClientGeneral = (\nequipmentList,\nvalidator,\nuniqueFields,\nclient,\n{ name, value }) => {\n const newValidator = validator;\n switch (name) {\n case 'account': {\n if (value.length < 4) {\n newValidator[name].validate = false;\n newValidator[name].message =\n ;\n } else if (\n uniqueFields.findIndex(el => el.account === value) !== -1\n ) {\n newValidator[name].validate = false;\n newValidator[name].message = ;\n } else {\n newValidator[name].validate = true;\n newValidator[name].message = '';\n }\n break;\n }\n case 'email': {\n const validate = validateEmail(value);\n newValidator[name].validate = validate;\n if (!validate) {\n newValidator[name].message = ;\n } else {\n newValidator[name].validate = true;\n newValidator[name].message = '';\n }\n break;\n }\n case 'city':\n case 'district':\n case 'first_name':\n case 'street':\n case 'last_name': {\n const validate = value.length >= 2;\n newValidator[name].validate = validate;\n if (!validate) {\n newValidator[name].message =\n ;\n } else {\n newValidator[name].validate = true;\n newValidator[name].message = '';\n }\n break;\n }\n case 'number': {\n const validate = value.length >= 1;\n newValidator[name].validate = validate;\n if (!validate) {\n newValidator[name].message =\n ;\n } else {\n newValidator[name].validate = true;\n newValidator[name].message = '';\n }\n break;\n }\n case 'birthdate': {\n const validate = value.length === 10;\n newValidator[name].validate = validate;\n if (!validate) {\n newValidator[name].message = ;\n } else {\n newValidator[name].validate = true;\n newValidator[name].message = '';\n }\n break;\n }\n case 'account_phone': {\n const validate = value.length >= 2;\n newValidator[name].validate = validate;\n if (!validate) {\n newValidator[name].message =\n ;\n }\n break;\n }\n case 'imei': {\n const sosAppId = equipmentList.length > 0 ? equipmentList.find(equipment => equipment.name.toLowerCase() === 'contactto sos - app').id : 0;\n if (client.use_voip && client.equipment_id === sosAppId) {\n const isValid = value.length === 7;\n newValidator[name].validate = isValid;\n if (!isValid) {\n newValidator[name].message = ;\n }\n }\n break;\n }\n default:\n break;\n }\n return newValidator;\n};\n\nexport const validateClientBR = (\nequipmentList,\nvalidator,\nuniqueFields,\nclient,\n{ name, value }) => {\n const newValidator = validateClientGeneral(\n equipmentList,\n validator,\n uniqueFields,\n client,\n { name, value },\n );\n switch (name) {\n case 'account_phone': {\n if (!client.use_voip) {\n const length = general.removeNonDigit(value).length;\n if ([3, 4, 5].includes(client.equipment_id)) {\n if (length === 11) {\n const validate = validateMobile(\n general.removeNonDigit(value, true),\n );\n newValidator[name].validate = validate;\n newValidator[name].message = '';\n if (!validate) {\n newValidator[name].message = ;\n }\n } else {\n newValidator[name].validate = false;\n newValidator[name].message = ;\n }\n } else {\n const validate = length === 10 || length === 11;\n newValidator[name].validate = validate;\n if (!validate) {\n newValidator[name].message = ;\n }\n }\n }\n break;\n }\n case 'zip_code': {\n const validate = general.removeNonDigit(value).length === 8;\n newValidator[name].validate = validate;\n if (!validate) {\n newValidator[name].message = ;\n }\n break;\n }\n case 'cpf': {\n const arr = value.split('');\n const val = arr.filter(el => /\\d/.test(el)).join('');\n const mask = '000.000.000-00';\n const valueLength = value.length;\n if (valueLength > 0) {\n if (valueLength < mask.length) {\n newValidator[name].validate = false;\n newValidator[name].message = ;\n } else if (!validateCPF(val)) {\n newValidator[name].validate = false;\n newValidator[name].message = ;\n } else {\n newValidator[name].validate = valueLength === 0 || valueLength === mask.length;\n newValidator[name].message = '';\n }\n } else {\n newValidator[name].validate = valueLength === 0 || valueLength === mask.length;\n newValidator[name].message = '';\n }\n break;\n }\n default:\n break;\n }\n return newValidator;\n};\n\n// If the client is from the Mauritius Island, some validations change\nexport const validateClientMU = (\nequipmentList,\nvalidator,\nuniqueFields,\nclient,\n{ name, value }) => {\n const newValidator = validateClientGeneral(\n equipmentList,\n validator,\n uniqueFields,\n client,\n { name, value },\n );\n switch (name) {\n case 'account_phone': {\n const length = general.removeNonDigit(value).length;\n if ([3, 4, 5].includes(client.equipment_id)) {\n if (length === 11) {\n newValidator[name].validate = true;\n newValidator[name].message = '';\n } else {\n newValidator[name].validate = false;\n newValidator[name].message = ;\n }\n } else {\n const validate = length === 10 || length === 11;\n newValidator[name].validate = validate;\n if (!validate) {\n newValidator[name].message = ;\n }\n }\n break;\n }\n case 'number': {\n newValidator[name].validate = true;\n newValidator[name].message = '';\n break;\n }\n default:\n break;\n }\n return newValidator;\n};\n\n\n// If the client is from the United Kingdom, some validations change\nexport const validateClientGB = (\nequipmentList,\nvalidator,\nuniqueFields,\nclient,\n{ name, value }) => {\n const newValidator = validateClientGeneral(\n equipmentList,\n validator,\n uniqueFields,\n client,\n { name, value },\n );\n switch (name) {\n case 'account_phone': {\n const length = general.removeNonDigit(value).length;\n if (length === 12) {\n if ([3, 4, 5].includes(client.equipment_id)) {\n const validate = validateMobileGB(general.removeNonDigit(value, true));\n newValidator[name].validate = true;\n newValidator[name].message = '';\n if (!validate) {\n newValidator[name].validate = false;\n newValidator[name].message = ;\n }\n } else {\n newValidator[name].validate = true;\n newValidator[name].message = '';\n }\n } else {\n newValidator[name].validate = false;\n newValidator[name].message = ;\n }\n break;\n }\n default:\n break;\n }\n return newValidator;\n};\n\nexport const validateSecondaryGeneral = (validator, { name, value }) => {\n const newValidator = validator;\n switch (name) {\n case 'first_name':\n case 'last_name': {\n const validate = value.length >= 2;\n newValidator[name].validate = validate;\n if (!validate) {\n newValidator[name].message =\n ;\n } else {\n newValidator[name].validate = true;\n newValidator[name].message = '';\n }\n break;\n }\n case 'birthdate': {\n const validate = value.length === 10;\n newValidator[name].validate = validate;\n if (!validate) {\n newValidator[name].message = ;\n } else {\n newValidator[name].validate = true;\n newValidator[name].message = '';\n }\n break;\n }\n default:\n break;\n }\n return newValidator;\n};\n\n\nexport const validateSecondaryBR = (validator, { name, value }) => {\n const newValidator = validateSecondaryGeneral(validator, { name, value });\n switch (name) {\n case 'cpf': {\n const arr = value.split('');\n const val = arr.filter(el => /\\d/.test(el)).join('');\n const mask = '000.000.000-00';\n const valueLength = value.length;\n if (valueLength > 0) {\n if (valueLength < mask.length) {\n newValidator[name].validate = false;\n newValidator[name].message = ;\n } else if (!validateCPF(val)) {\n newValidator[name].validate = false;\n newValidator[name].message = ;\n } else {\n newValidator[name].validate = valueLength === 0 || valueLength === mask.length;\n newValidator[name].message = '';\n }\n } else {\n newValidator[name].validate = valueLength === 0 || valueLength === mask.length;\n newValidator[name].message = '';\n }\n break;\n }\n default:\n break;\n }\n return newValidator;\n };\n","import moment from \"moment\";\nimport { validateDate } from \"../../../../BLL/validate\";\nimport {\n validateClientBR,\n validateClientMU,\n validateClientGB,\n validateClientGeneral,\n validateSecondaryGeneral,\n validateSecondaryBR,\n} from \"../ClientValidations\";\nimport { initialState } from \"./ClientReducer\";\nimport * as general from \"../../../../BLL/general\";\n\nconst reducerActions = {\n loadClients: (state, payload) => {\n const c = payload.value;\n console.log(c);\n let accountPhone = c.account_phone;\n let contactPhone = c.contact_phone;\n let extraPhone = c.extra_phone;\n let zipCode = c.zip_code;\n if (!c.use_voip) {\n switch (c.country) {\n case \"Brasil\":\n case \"BR\": {\n accountPhone =\n accountPhone.length === 10\n ? general.setMask(accountPhone, \"(00) 0000-0000\")\n : general.setMask(accountPhone, \"(00) 0 0000-0000\");\n contactPhone =\n contactPhone.length === 10\n ? general.setMask(contactPhone, \"(00) 0000-0000\")\n : general.setMask(contactPhone, \"(00) 0 0000-0000\");\n extraPhone =\n extraPhone?.length === 10\n ? general.setMask(extraPhone, \"(00) 0000-0000\")\n : general.setMask(extraPhone, \"(00) 0 0000-0000\");\n zipCode = general.setMask(zipCode, \"00000-000\");\n break;\n }\n case \"GB\": {\n accountPhone = general.setMask(accountPhone, \"(00) 0000 000000\");\n contactPhone = general.setMask(contactPhone, \"(00) 0000 000000\");\n break;\n }\n default:\n break;\n }\n }\n\n state.client = Object.assign(\n {},\n c,\n { cpf: general.setMask(c.cpf, \"000.000.000-00\") },\n { zip_code: zipCode },\n { birthdate: moment(c.birthdate).format(\"DD/MM/YYYY\") },\n { number: c.number.toString() },\n { account_phone: accountPhone },\n { contact_phone: contactPhone },\n { extra_phone: extraPhone },\n { gender: !c.gender ? \"m\" : c.gender }\n );\n const secondary = c.secondary[0];\n if (secondary) {\n state.secondary = Object.assign(\n {},\n secondary,\n { cpf: general.setMask(secondary.cpf, \"000.000.000-00\") },\n { birthdate: moment(secondary.birthdate).format(\"DD/MM/YYYY\") },\n { gender: !secondary.gender ? \"m\" : secondary.gender }\n );\n }\n },\n editClient: (state, payload) => {\n let stateClient = state.client;\n const { name, value } = payload.data;\n const ihelpId = payload.ihelpId;\n switch (name) {\n case \"zip_code\": {\n stateClient[name] =\n stateClient.country === \"BR\" || stateClient.country === \"Brasil\"\n ? general.zipCode(value)\n : value;\n break;\n }\n case \"cpf\": {\n stateClient[name] = general.cpfMask(value);\n break;\n }\n case \"account\": {\n const arr = value.split(\"\");\n const val = arr.filter((el) => /\\d/.test(el)).join(\"\");\n stateClient[name] = val;\n break;\n }\n case \"birthdate\": {\n const arr = value.split(\"\");\n const val = arr.filter((el) => /\\d/.test(el)).join(\"\");\n const dateMasked = general.setMask(val, \"00/00/0000\");\n stateClient[name] =\n dateMasked.length === 10 ? validateDate(dateMasked) : dateMasked;\n break;\n }\n case \"account_phone\":\n case \"contact_phone\": \n case \"extra_phone\": {\n if (stateClient.use_voip) {\n stateClient[name] = value;\n } else {\n stateClient[name] = general.PhoneNumberGlobal(\n value,\n stateClient.country\n );\n }\n break;\n }\n case \"country\": {\n if (value !== stateClient.country) {\n stateClient.account_phone = \"\";\n stateClient.zip_code = \"\";\n stateClient.state = \"-\";\n }\n stateClient[name] = value;\n break;\n }\n case \"equipment_id\": {\n const equipmentId = parseInt(value, 10);\n if (stateClient.equipment_id !== equipmentId) {\n stateClient.imei = \"\";\n stateClient.account_phone = \"\";\n stateClient.use_voip = false;\n }\n stateClient[name] = equipmentId;\n break;\n }\n case \"imei\": {\n if (stateClient.equipment_id === ihelpId && stateClient.use_voip) {\n stateClient.account_phone = value;\n }\n stateClient[name] = value;\n break;\n }\n case \"use_voip\": {\n const useVoip = value === \"true\";\n if (useVoip) {\n if (state.client.equipment_id === ihelpId) {\n stateClient.account_phone = stateClient.imei;\n } else {\n stateClient.account_phone = \"\";\n }\n } else {\n stateClient.account_phone = \"\";\n }\n let newValidator = state.clientValidator;\n newValidator.account_phone = { validate: true, message: \"\" };\n state.clientValidator = Object.assign({}, newValidator);\n\n stateClient[name] = useVoip;\n break;\n }\n default: {\n stateClient[name] = value;\n break;\n }\n }\n state.client = Object.assign({}, stateClient);\n },\n editClientValidator: (state, payload) => {\n let newValidator = state.clientValidator;\n const client = state.client;\n const { name, value } = payload.data;\n const equipmentList = payload.equipmentList;\n switch (client.country) {\n case \"BR\":\n case \"Brasil\": {\n newValidator = validateClientBR(\n equipmentList,\n newValidator,\n [],\n client,\n { name, value }\n );\n break;\n }\n case \"MU\": {\n newValidator = validateClientMU(\n equipmentList,\n newValidator,\n [],\n client,\n { name, value }\n );\n break;\n }\n case \"GB\": {\n newValidator = validateClientGB(\n equipmentList,\n newValidator,\n [],\n client,\n { name, value }\n );\n break;\n }\n default: {\n newValidator = validateClientGeneral(\n equipmentList,\n newValidator,\n [],\n client,\n { name, value }\n );\n break;\n }\n }\n state.clientValidator = Object.assign({}, newValidator);\n },\n editSecondary: (state, payload) => {\n let stateSecondary = state.secondary;\n const { name, value } = payload.data;\n switch (name) {\n case \"cpf\": {\n stateSecondary[name] = general.cpfMask(value);\n break;\n }\n case \"birthdate\": {\n const arr = value.split(\"\");\n const val = arr.filter((el) => /\\d/.test(el)).join(\"\");\n const dateMasked = general.setMask(val, \"00/00/0000\");\n stateSecondary[name] =\n dateMasked.length === 10 ? validateDate(dateMasked) : dateMasked;\n break;\n }\n default: {\n stateSecondary[name] = value;\n break;\n }\n }\n state.secondary = Object.assign({}, stateSecondary);\n },\n editSecondaryValidator: (state, payload) => {\n let newValidator = state.secondaryValidator;\n const secondary = state.secondary;\n const client = state.client;\n const { name, value } = payload.data;\n switch (client.country) {\n case \"BR\":\n case \"Brasil\": {\n newValidator = validateSecondaryBR(newValidator, { name, value });\n break;\n }\n default: {\n newValidator = validateSecondaryGeneral(newValidator, { name, value });\n break;\n }\n }\n state.secondaryValidator = Object.assign({}, newValidator);\n },\n removeSecondary: (state) => {\n state.secondary = Object.assign({}, initialState.secondary);\n state.secondaryValidator = Object.assign(\n {},\n initialState.secondaryValidator\n );\n state.removeSecondary = !state.removeSecondary;\n },\n invertClients: (state) => {\n let newClient = Object.assign({}, state.client);\n let newSecondary = Object.assign({}, state.secondary);\n Object.keys(newSecondary).forEach((key) => {\n if (key !== \"id\") {\n newClient[key] = state.secondary[key];\n newSecondary[key] = state.client[key];\n }\n });\n\n state.client = Object.assign({}, newClient);\n state.secondary = Object.assign({}, newSecondary);\n state.invertClients = !state.invertClients;\n },\n};\n\nexport default reducerActions;\n","import immer from \"immer\";\nimport reducerActions from './ClientActions';\n\nexport const initialState = {\n client: {\n id: undefined,\n aditional_phones: [],\n first_name: '',\n last_name: '',\n account: '',\n cpf: '',\n rg: '',\n gender: 'm',\n birthdate: '',\n street: '',\n number: '',\n complement: '',\n district: '',\n city: '',\n state: 'RS',\n country: 'BR',\n zip_code: '',\n health_plan: '',\n account_phone: '',\n contact_phone: '',\n extra_phone: '',\n key_box: '',\n general_info: '',\n hospital: '',\n limitations: '',\n medications: '',\n removal_plan: '',\n is_test: false,\n equipment_id: 1,\n group_id: 0,\n imei: '',\n use_voip: false,\n },\n secondary: {\n id: undefined,\n first_name: '',\n last_name: '',\n cpf: '',\n rg: '',\n gender: 'm',\n birthdate: '',\n health_plan: '',\n general_info: '',\n hospital: '',\n limitations: '',\n medications: '',\n removal_plan: '',\n },\n clientValidator: {\n account: {\n validate: true,\n message: '',\n },\n account_phone: {\n validate: true,\n message: '',\n },\n birthdate: {\n validate: true,\n message: '',\n },\n cpf: {\n validate: true,\n message: '',\n },\n city: {\n validate: true,\n message: '',\n },\n district: {\n validate: true,\n message: '',\n },\n first_name: {\n validate: true,\n message: '',\n },\n last_name: {\n validate: true,\n message: '',\n },\n number: {\n validate: true,\n message: '',\n },\n phone: {\n validate: true,\n message: '',\n },\n street: {\n validate: true,\n message: '',\n },\n zip_code: {\n validate: true,\n message: '',\n },\n imei: {\n validate: true,\n message: '',\n }\n },\n secondaryValidator: {\n birthdate: {\n validate: true,\n message: '',\n },\n cpf: {\n validate: true,\n message: '',\n },\n first_name: {\n validate: true,\n message: '',\n },\n last_name: {\n validate: true,\n message: '',\n },\n },\n removeSecondary: false,\n invertClients: false,\n};\n\nconst reducer = (state, action) => {\n const func = reducerActions[action.type];\n\n if (func) {\n return immer(state, draftState => func(draftState, action.payload));\n }\n console.log('[WARNING] Action without reducer', action);\n return state;\n};\n\nexport default reducer;\n","import React, { useState, useEffect, useReducer } from \"react\";\nimport PropTypes from \"prop-types\";\nimport axios from \"axios\";\nimport { useDispatch, useSelector } from \"react-redux\";\nimport { FormattedMessage } from \"react-intl\";\nimport { getDomain, host, getToken } from \"../../../../BLL/environment\";\nimport { equipmentTypes } from \"../../../../BLL/dictionary\";\nimport * as general from \"../../../../BLL/general\";\nimport { validateMobile } from \"../../../../BLL/validate\";\nimport InputContainer from \"../../../Common/InputContainer\";\nimport SelectInput from \"../../../Common/SelectInput\";\nimport * as clientsActions from \"../../../../actions/clientsActions\";\nimport { broadcast } from \"../../../../BLL/general\";\nimport ConfirmRemoveModal from \"../../../Modal/ModalConfirm\";\nimport CheckboxInput from \"../../../Common/CheckboxInput\";\nimport ErrorComponent from \"../../../Common/ErrorComponent\";\nimport broadcastMessages from \"../../../../BLL/locale/messagesBroadcast\";\nimport countryList from \"../../../../BLL/locale/messagesCountries\";\nimport messages from \"../../../../BLL/locale/messages\";\nimport ClientInfoForm from \"./ClientInfoForm\";\nimport SecondaryActionsForm from \"./SecondaryActionsForm\";\nimport Order from \"../../../../icons/Order\";\n\nimport detail from \"../../../../css/detail.module.scss\";\nimport formStyle from \"../../../../css/form.module.scss\";\n\nimport \"../../../../css/contactto.scss\";\nimport \"../../../../css/middle.scss\";\nimport \"../../../../css/style.scss\";\nimport \"../../../../css/block.scss\";\nimport \"../../../../css/formPage.scss\";\n\nimport style from \"./clientForm.module.scss\";\n\nimport reducer, { initialState } from \"./ClientReducer\";\n\nconst ClientForm = (props) => {\n const [state, localDispatch] = useReducer(reducer, initialState);\n\n const { equipment, lang, loggedAttendant, companies, isSysAdm } = useSelector(\n (state) => ({\n clients: state.clients,\n equipment: state.equipment,\n lang: state.locale.lang,\n loggedAttendant: state.loggedAttendant,\n companies: state.groups.filter((grp) => ![1, 2, 3, 4].includes(grp.id)),\n isSysAdm: state.loggedAttendant.groups\n ? (state.loggedAttendant.groups[0] === 1 ||\n state.loggedAttendant.groups[0] === 4) &&\n state.loggedAttendant.groups.length === 1\n : false,\n })\n );\n\n const dispatch = useDispatch();\n\n const editClient = (client) => dispatch(clientsActions.editClient(client));\n const createClient = (client) =>\n dispatch(clientsActions.createClient(client));\n\n const [error, setError] = useState(false);\n const [errorMsg, setErrorMsg] = useState(\"\");\n const [errorCode, setErrorCode] = useState(0);\n const [showFirstDeleteModal, setFirstDeleteModal] = useState(false);\n const [showSecondDeleteModal, setSecondDeleteModal] = useState(false);\n const [showModalPhone, setModalPhone] = useState(false);\n const [showModalVoip, setModalVoip] = useState(false);\n const [showModalRange, setShowModalRange] = useState(false);\n const [showAddress, setShowAddress] = useState(false);\n const [showPrimaryUser, setShowPrimaryUser] = useState(false);\n const [showSecondaryUser, setShowSecondaryUser] = useState(false);\n const [equipmentList, setEquipment] = useState([]);\n const ihelpId =\n equipmentList.length > 0\n ? equipmentList.find(\n (equipment) => equipment.name.toLowerCase() === \"ihelp\"\n ).id\n : 0;\n const equipmentMsgDefaultText =\n \"Usuário está marcado com {equipmentName} mas está com um celular.\\n\\nSalvar mesmo assim?\";\n const message = (\n \n );\n const voipMessage = (\n \n );\n const countries = countryList[lang];\n const pers4200Id =\n equipmentList.length > 0\n ? equipmentList.find(\n (equipment) => equipment.name.toLowerCase() === \"pers4200\"\n ).id\n : 0;\n const pers3600Id =\n equipmentList.length > 0\n ? equipmentList.find(\n (equipment) => equipment.name.toLowerCase() === \"pers3600\"\n ).id\n : 0;\n const sosAppId =\n equipmentList.length > 0\n ? equipmentList.find(\n (equipment) => equipment.name.toLowerCase() === \"contactto sos - app\"\n ).id\n : 0;\n const canUseVoipEquipment = [ihelpId, pers3600Id, pers4200Id, sosAppId];\n\n useEffect(() => {\n if (props.match.params.method === \"edit\") {\n const clientId = parseInt(props.match.params.clientId, 10);\n axios\n .get(`https://${getDomain()}${host()}/api/clients/${clientId}/`, {\n headers: { Authorization: `Token ${getToken()}` },\n })\n .then((res) =>\n localDispatch({ type: \"loadClients\", payload: { value: res.data } })\n )\n .catch((error) => console.log(error));\n }\n }, [props.match.params.clientId, props.match.params.method]);\n\n useEffect(() => {\n if (equipment.length > 0) {\n setEquipment(equipment[0].data);\n }\n }, [equipment, equipment.length]);\n\n const setClientState = (event) => {\n const name = event.target.name;\n const value = event.target.value;\n\n localDispatch({\n type: \"editClient\",\n payload: { data: { name, value }, ihelpId },\n });\n localDispatch({\n type: \"editClientValidator\",\n payload: { data: { name, value }, equipmentList },\n });\n };\n\n const setSecondaryState = (event) => {\n const name = event.target.name;\n const value = event.target.value;\n\n localDispatch({\n type: \"editSecondary\",\n payload: { data: { name, value } },\n });\n localDispatch({\n type: \"editSecondaryValidator\",\n payload: { data: { name, value } },\n });\n };\n\n const closeErrorModal = () => {\n setError(false);\n setErrorMsg(\"\");\n setErrorCode(0);\n };\n\n const openDeleteModal = () => {\n setFirstDeleteModal(true);\n setSecondDeleteModal(false);\n };\n\n const confirmDelete1 = () => {\n setFirstDeleteModal(false);\n setSecondDeleteModal(true);\n };\n\n const setDeleteModalInfo = () => {\n setFirstDeleteModal(false);\n setSecondDeleteModal(false);\n };\n\n const setModalInfo = () => {\n setModalPhone(false);\n };\n\n const confirmDelete2 = () => {\n const client = state.client;\n const lang = !localStorage.contacttoLang\n ? \"pt\"\n : localStorage.contacttoLang;\n const text = `${broadcastMessages[lang][\"broadcast.client\"]} ${client.first_name} ${client.last_name} ${broadcastMessages[lang][\"broadcast.deleted\"]}`;\n axios({\n url: `https://${getDomain()}${host()}/api/clients/${client.id}/`,\n method: \"DELETE\",\n responseType: \"json\",\n headers: {\n Authorization: `Token ${getToken()}`,\n },\n })\n .then(() => {\n broadcast(axios, props.channelId, {\n type: \"client\",\n update: \"client\",\n id: props.match.params.clientId,\n text,\n });\n props.history.push(\"/app/clients\");\n })\n .catch((err) => {\n console.log(err);\n });\n };\n\n const verifyAccountRange = () => {\n const client = state.client;\n let modalRange = false;\n companies.forEach((company) => {\n if (\n parseInt(client.group_id) !== company.id &&\n company.range_list.length > 0\n ) {\n console.log(client.group_id);\n console.log(company);\n const clientAccount = parseInt(client.account);\n company.range_list.forEach((range) => {\n const maxRange = parseInt(range.max_account);\n const minRange = parseInt(range.min_account);\n if (clientAccount >= minRange && clientAccount <= maxRange) {\n modalRange = true;\n }\n });\n }\n });\n return modalRange;\n };\n\n const validateAndSaveClient = () => {\n const client = state.client;\n const phoneLength = general.removeNonDigit(client.account_phone).length;\n const persList = equipmentList.filter((eq) => eq.name.includes(\"PERS\"));\n const clientEquipment = equipmentList.find(\n (eq) => eq.id === client.equipment_id\n );\n let showModal = false;\n let showVoipModal = false;\n let showAccountRangeModal = false;\n if (!clientEquipment.is_mobile && !clientEquipment.name === \"Alexa\") {\n if (phoneLength === 11) {\n const checkPhone = validateMobile(\n general.removeNonDigit(client.account_phone, true)\n );\n if (checkPhone) {\n showModal = true;\n setModalPhone(showModal);\n }\n }\n }\n\n if (client.use_voip) {\n showVoipModal = persList.some((eq) => eq.id === client.equipment_id);\n if (showVoipModal) {\n setModalVoip(true);\n }\n }\n\n if (isSysAdm) {\n showAccountRangeModal = verifyAccountRange();\n setShowModalRange(showAccountRangeModal);\n }\n\n if (!showModal && !showVoipModal && !showAccountRangeModal) {\n saveClient();\n }\n };\n\n const saveClient = () => {\n const client = state.client;\n const text = `${broadcastMessages[lang][\"broadcast.client\"]} ${\n client.first_name\n } ${client.last_name} ${\n props.match.params.method === \"edit\"\n ? broadcastMessages[lang][\"broadcast.updated\"]\n : broadcastMessages[lang][\"broadcast.added\"]\n }`;\n const serverClient = convertDataToServer();\n console.log(\"SERVER CLIENT\", serverClient);\n if (props.match.params.method === \"edit\") {\n editClient(serverClient)\n .then(() => {\n broadcast(axios, props.channelId, {\n type: \"client\",\n method: \"edit\",\n userId: loggedAttendant.id,\n client: serverClient,\n text,\n });\n props.history.push(\"/app/clients\");\n })\n .catch((err) => {\n processError(err);\n });\n } else {\n createClient(serverClient)\n .then(() => {\n broadcast(axios, props.channelId, {\n type: \"client\",\n method: \"create\",\n userId: loggedAttendant.id,\n text,\n });\n props.history.push(\"/app/clients\");\n })\n .catch((err) => {\n console.log(err);\n processError(err);\n });\n }\n };\n\n const processError = (error) => {\n if (error.response) {\n const response = error.response;\n const errCode = response.status;\n let errMsg = \"\";\n if (response.data) {\n console.log(response.data);\n const dataKey = Object.keys(response.data)[0];\n switch (dataKey) {\n case \"account\":\n errMsg = (\n \n );\n break;\n case \"outOfRange\":\n errMsg = (\n \n );\n break;\n case \"ataExists\":\n errMsg = (\n \n );\n break;\n case \"imei\":\n case \"client_account\":\n const clientAccount = response.data.client_account;\n if (clientAccount) {\n errMsg = (\n \n );\n } else {\n errMsg = (\n \n );\n }\n break;\n default:\n if (response.data[0] === \"IMEI already exists\") {\n errMsg = (\n \n );\n } else {\n errMsg = response.data[0];\n }\n break;\n }\n }\n setErrorMsg(errMsg);\n setErrorCode(errCode);\n setError(true);\n }\n };\n\n const closeVoipModal = () => {\n setModalVoip(false);\n };\n\n const convertDataToServer = () => {\n const client = state.client;\n const secondary = Object.assign(\n {},\n state.secondary,\n { id: state.secondary.id },\n { cpf: general.removeNonDigit(state.secondary.cpf, true) },\n { birthdate: general.birthJStoDjango(state.secondary.birthdate) }\n );\n return Object.assign(\n {},\n client,\n { cpf: general.removeNonDigit(client.cpf, true) },\n {\n account_phone: client.account_phone\n ? general.adjustDigitCountry(\n client.account_phone,\n true,\n client.country\n )\n : client.imei,\n },\n {\n contact_phone: client.contact_phone\n ? general.adjustDigitCountry(\n client.contact_phone,\n true,\n client.country\n )\n : \"\",\n },\n {\n extra_phone: client.extra_phone\n ? general.adjustDigitCountry(\n client.extra_phone,\n true,\n client.country\n )\n : \"\",\n },\n { number: !client.number ? 0 : client.number },\n { birthdate: general.birthJStoDjango(client.birthdate) },\n { zip_code: general.removeNonDigit(client.zip_code, true) },\n {\n group_id:\n loggedAttendant.groups.length === 1\n ? client.group_id\n : loggedAttendant.groups.find((grp) => ![1, 2, 3, 4].includes(grp)),\n },\n { secondary: secondary.first_name ? [secondary] : [] }\n );\n };\n\n const title =\n props.match.params.method === \"edit\" ? (\n \n ) : (\n \n );\n const activeSubmit = Object.keys(state.clientValidator).every((el) => {\n if (el === \"cpf\") {\n return state.clientValidator[el].validate;\n }\n if (el === \"account_phone\" && state.client.equipment_id === ihelpId) {\n if (state.client.use_voip) {\n return state.client.imei !== \"\" || state.clientValidator[el].validate;\n } else {\n return state.clientValidator[el].validate;\n }\n }\n if (el === \"imei\") {\n return state.clientValidator[el].validate;\n }\n switch (state.client.country) {\n case \"Brasil\":\n case \"BR\":\n return state.client[el] !== \"\" && state.clientValidator[el].validate;\n case \"GB\":\n case \"MU\":\n if (el === \"zip_code\") {\n return state.clientValidator[el].validate;\n }\n if (el === \"number\") {\n return state.clientValidator[el].validate;\n }\n return state.client[el] !== \"\" && state.clientValidator[el].validate;\n default:\n return state.client[el] !== \"\" && state.clientValidator[el].validate;\n }\n });\n\n console.log(state);\n\n return (\n
\n {/* Mensagem de Telefone Celular para PERS */}\n {showModalPhone && (\n \n )}\n {/* Mensagem de telefone VoIP */}\n {showModalVoip && (\n \n )}\n {showFirstDeleteModal && (\n \n )}\n {showSecondDeleteModal && (\n \n )}\n {showModalRange && (\n {\n setShowModalRange(false);\n saveClient();\n }}\n setModalInfo={() => setShowModalRange(false)}\n message=\"Este usuário está sendo salvo dentro de uma faixa de uma empresa. Deseja continuar?\"\n />\n )}\n\n {error && (\n \n )}\n
\n
{title}
\n {state.client && (\n
\n \n \n
\n
\n
\n \n \n }\n validator={state.clientValidator.account}\n isRequired\n value={state.client.account}\n />\n
\n \n \n
\n setClientState(ev)}\n />\n
\n
\n
\n \n
\n
\n
\n \n
\n {loggedAttendant.groups.length === 1 && (\n
\n \n \n *\n \n\n \n \n {companies &&\n companies\n .sort((compA, compB) =>\n compA.name.localeCompare(compB.name)\n )\n .map((item) => (\n \n ))}\n \n
\n )}\n
\n
\n
\n
\n
\n \n \n *\n \n \n {equipmentList.map((equipment) => (\n \n ))}\n \n
\n
\n \n ) : (\n \"IMEI: \"\n )\n }\n value={state.client.imei ? state.client.imei : \"\"}\n width={100}\n validator={state.clientValidator.imei}\n isRequired={\n state.client.equipment_id === sosAppId &&\n state.client.use_voip\n }\n disabled={\n equipmentList.length > 0\n ? !equipmentList.find(\n (eq) => eq.id === state.client.equipment_id\n ).is_mobile\n : true\n }\n />\n
\n
\n
\n
\n
\n
\n \n \n *\n \n \n \n {canUseVoipEquipment.some(\n (equipId) => equipId === state.client.equipment_id\n ) && (\n \n )}\n \n
\n
\n \n }\n validator={state.clientValidator.account_phone}\n isRequired={\n state.client.equipment_id !== ihelpId ||\n (state.client.equipment_id === ihelpId &&\n !state.client.use_voip)\n }\n value={state.client.account_phone}\n disabled={\n state.client.equipment_id === ihelpId &&\n state.client.use_voip\n }\n type=\"tel\"\n />\n
\n
\n
\n
\n
\n \n \n \n \n
\n
\n setShowAddress(!showAddress)}\n className={`${detail[\"container-title\"]} detail-btn col-12`}\n style={{ marginBottom: \"15px\", zIndex: \"998\" }}\n >\n \n \n \n \n \n
\n \n }\n validator={state.clientValidator.street}\n value={state.client.street}\n isRequired\n width={100}\n />\n
\n
\n \n }\n value={state.client.number}\n validator={state.clientValidator.number}\n isRequired\n type=\"number\"\n className=\"form-group col-sm-6 col-md-3\"\n />\n
\n
\n \n }\n value={state.client.complement}\n />\n
\n
\n \n }\n validator={state.clientValidator.district}\n isRequired\n value={state.client.district}\n />\n
\n \n
\n
\n \n }\n validator={state.clientValidator.city}\n isRequired\n value={state.client.city}\n />\n
\n
\n \n \n
\n {state.client.country === \"BR\" ||\n state.client.country === \"Brasil\" ? (\n
\n \n }\n validator={state.clientValidator.zip_code}\n isRequired\n value={state.client.zip_code}\n />\n
\n ) : (\n
\n \n }\n isRequired\n value={state.client.zip_code}\n />\n
\n )}\n
\n \n\n \n {countries.map((country) => (\n \n ))}\n \n
\n
\n
\n
\n \n }\n type=\"tel\"\n value={state.client.contact_phone}\n />\n
\n
\n \n }\n type=\"tel\"\n value={state.client.extra_phone}\n />\n
\n
\n \n setShowPrimaryUser(!showPrimaryUser)}\n className={`${detail[\"container-title\"]} detail-btn col-12`}\n style={{ marginBottom: \"15px\", zIndex: \"998\" }}\n >\n \n \n \n \n setShowSecondaryUser(!showSecondaryUser)}\n className={`${detail[\"container-title\"]} detail-btn col-12`}\n style={{ marginBottom: \"15px\", zIndex: \"998\" }}\n >\n \n \n \n \n \n
\n props.history.push(\"/app/clients\")}\n >\n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n {state.client.equipment_id !== ihelpId ? (\n \n {state.client.equipment_id === sosAppId &&\n state.client.use_voip ? (\n \n ) : (\n \n )}\n \n ) : (\n \n \n \n )}\n \n \n {isSysAdm && props.match.params.method === \"edit\" && (\n \n \n \n \n )}\n
\n \n )}\n \n \n );\n};\n\nClientForm.propTypes = {\n channelId: PropTypes.string.isRequired,\n};\n\nexport default ClientForm;\n","import React from 'react';\nimport PropTypes from 'prop-types';\nimport messages from '../../BLL/locale/messages';\n\nclass SelectInput extends React.Component {\n constructor(props) {\n super(props);\n this.state = {\n select: this.props.dictionary ? this.props.dictionary(this.props.value, 'fromServer') : this.props.value,\n items: [],\n disabled: this.props.disabled ? this.props.disabled : false,\n selectClass: this.props.selectClass ? this.props.selectClass : '',\n };\n this.handleChange = this.handleChange.bind(this);\n this.setItems = this.setItems.bind(this);\n }\n\n componentDidMount() {\n if (typeof this.props.items === 'string') {\n const items = this.setDictionary(this.props.items.split('-'));\n this.setItems(items);\n } else {\n const items = this.setDictionary(this.props.items);\n this.setItems(items);\n }\n }\n\n UNSAFE_componentWillReceiveProps({ items, value, disabled }) {\n if (value !== this.props.value) {\n this.setState({ select: this.props.dictionary ? this.props.dictionary(value, 'fromServer') : value });\n }\n if (items !== this.props.items) {\n if (typeof this.props.items === 'string') {\n this.setState({\n items: this.setDictionary(this.props.items.split('-')),\n });\n } else {\n this.setState({\n items: this.setDictionary(items),\n });\n }\n }\n if (disabled !== this.props.disabled) {\n this.setState({\n disabled,\n });\n }\n }\n\n setItems(items) {\n this.setState({\n items,\n });\n }\n\n setDictionary(arr) {\n if (this.props.dictionary) {\n return arr.map(el => this.props.dictionary(el, 'fromServer'));\n }\n\n return arr;\n }\n\n handleChange(event) {\n let val = event.target.value;\n this.setState({\n select: val,\n });\n if (this.props.dictionary) {\n val = this.props.dictionary(val, 'toServer');\n }\n const ev = { target: { value: val, name: event.target.name } };\n\n this.props.onChange(ev, event.target.value !== '', this.props.index);\n }\n\n render() {\n const { disabled, items, select, selectClass } = this.state;\n const lang = !localStorage.contacttoLang ? 'pt' : localStorage.contacttoLang;\n const other = messages[lang]['general.other'];\n return (\n \n {this.props.hasOther && }\n {this.props.emptyOption && }\n {items && items.map(item =>\n ,\n )}\n \n );\n }\n}\n\nSelectInput.defaultProps = {\n index: 0,\n selectClass: 'form-control',\n disabled: false,\n dictionary: null,\n emptyOption: true,\n hasOther: false,\n};\n\nSelectInput.propTypes = {\n name: PropTypes.string.isRequired,\n selectClass: PropTypes.string,\n disabled: PropTypes.bool,\n onChange: PropTypes.func.isRequired,\n dictionary: PropTypes.func,\n items: PropTypes.oneOfType(\n [\n PropTypes.node,\n PropTypes.array\n ]\n ).isRequired,\n index: PropTypes.number,\n value: PropTypes.node.isRequired,\n emptyOption: PropTypes.bool,\n hasOther: PropTypes.bool,\n};\n\nexport default SelectInput;\n","import React, { useState, useEffect } from 'react';\nimport PropTypes from 'prop-types';\nimport { FormattedMessage } from 'react-intl';\nimport SelectInput from '../../../Common/SelectInput2';\nimport CheckboxInput from '../../../Common/CheckboxInput';\nimport { fallDetectionMode } from '../../../../BLL/dictionary';\n\nimport formStyle from '../../../../css/form.module.scss';\nimport style from './programming.module.scss';\nimport '../../../../css/block.scss';\n\nconst TrackeriHelpProgram = (props) => {\n const [params, setParams] = useState({});\n\n useEffect(() => {\n setParams(props.params.param);\n }, [props.params]);\n\n const setParameters = (event) => {\n const value = event.target.value;\n const param = event.target.name;\n setParams(prevState => ({\n ...prevState,\n [param]: value\n }));\n };\n\n const convertAndSendParams = () => {\n const commands = [{\n code: 'fd',\n params: `${params.FDMODE},20`,\n },\n {\n code: 'sosbreadcrumb',\n params: `${params.SOSBREADCRUMB ? 'T' : 'F'}`,\n },\n {\n code: 'autopost',\n params: `${params.AUTOPOST}`,\n },\n {\n code: 'voipcalling',\n params: `${!params.VOIPCALLING ? false : params.VOIPCALLING}`,\n },\n {\n code: 'getparams',\n params: '',\n }];\n props.sendParams(commands);\n };\n\n console.log('RENDER', params);\n return (\n
\n {params &&\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\nTrackeriHelpProgram.propTypes = {\n sendParams: PropTypes.func.isRequired,\n params: PropTypes.shape({\n param: PropTypes.shape({\n VOUT1: PropTypes.oneOfType([PropTypes.string, PropTypes.number]),\n VOUT2: PropTypes.oneOfType([PropTypes.string, PropTypes.number]),\n VOUT1TIME: PropTypes.number,\n VOUT2TIME: PropTypes.number,\n VIN1: PropTypes.oneOfType([PropTypes.string, PropTypes.number]),\n VIN2: PropTypes.oneOfType([PropTypes.string, PropTypes.number]),\n VIN1AUTO: PropTypes.bool,\n VIN2AUTO: PropTypes.bool,\n FDMODE: PropTypes.number,\n GEO1MODE: PropTypes.number,\n GEO1LAT: PropTypes.oneOfType([PropTypes.string, PropTypes.number]),\n GEO1LON: PropTypes.oneOfType([PropTypes.string, PropTypes.number]),\n GEO1RADIUS: PropTypes.oneOfType([PropTypes.string, PropTypes.number]),\n GEO2MODE: PropTypes.number,\n GEO2LAT: PropTypes.oneOfType([PropTypes.string, PropTypes.number]),\n GEO2LON: PropTypes.oneOfType([PropTypes.string, PropTypes.number]),\n GEO2RADIUS: PropTypes.oneOfType([PropTypes.string, PropTypes.number]),\n GEO3MODE: PropTypes.number,\n GEO3LAT: PropTypes.oneOfType([PropTypes.string, PropTypes.number]),\n GEO3LON: PropTypes.oneOfType([PropTypes.string, PropTypes.number]),\n GEO3RADIUS: PropTypes.oneOfType([PropTypes.string, PropTypes.number]),\n SOSBREADCRUMB: PropTypes.oneOfType([PropTypes.bool, PropTypes.string]),\n AUTOPOST: PropTypes.number,\n SUBSCRIPTIONTOPIC: PropTypes.string,\n }),\n }).isRequired,\n};\n\n\nexport default TrackeriHelpProgram;\n","const config = {\n contacttoPublicApiKey: 'RBv8P5yg.8OllkDMLQgxUovEvSJpRsZVEQhrucptg',\n googleMapsApiKey: 'CHAVE_API_GOOGLE_MAPS',\n heartbeatServer: 'SERVIDOR_HEARTBEAT'\n}\n\nexport default config;\n","import React, { useState, useEffect, useCallback, useMemo } from 'react';\nimport PropTypes from 'prop-types';\nimport { connect } from 'react-redux';\nimport { FormattedMessage } from 'react-intl';\n// import { Map, TileLayer, Marker, Circle } from 'react-leaflet';\nimport { GoogleMap, useJsApiLoader, Marker, Circle } from '@react-google-maps/api';\nimport { StandaloneSearchBox } from 'react-google-maps/lib/components/places/StandaloneSearchBox';\nimport { geoFenceMode } from '../../../../BLL/dictionary';\nimport SelectInput from '../../../Common/SelectInput2';\nimport messages from '../../../../BLL/locale/messages';\nimport config from '../../../../BLL/config';\n\nimport formStyle from '../../../../css/form.module.scss';\nimport style from './geofence.module.scss';\nimport '../../../../css/block.scss';\n\nconst MapComponent = (props) => {\n const [modeColor, setModeColor] = useState('#187e25b3');\n const [map, setMap] = useState(null);\n const { isLoaded } = useJsApiLoader({\n id: 'google-map-script',\n googleMapsApiKey: config.googleMapsApiKey\n });\n\n const center = useMemo(() => {\n if (props.latitude && props.longitude) {\n return ({\n lat: parseFloat(props.latitude),\n lng: parseFloat(props.longitude)\n });\n }\n }, [props.latitude, props.longitude])\n\n useEffect(() => {\n switch (props.mode) {\n case 1:\n case '1':\n setModeColor('#187e25b3');\n break;\n case 2:\n case '2':\n setModeColor('#a10c0c');\n break;\n case 3:\n case '3':\n setModeColor('#00b8cb');\n break;\n default:\n break;\n }\n }, [props.mode]);\n\n const onLoad = useCallback((map) => {\n setMap(map);\n }, []);\n\n const onUnmount = useCallback((map) => {\n setMap(null);\n }, []);\n\n if (!isLoaded) {\n return <>\n }\n\n return (\n \n {props.mode !== 0 &&\n
\n \n \n
\n }\n \n )\n}\n\n\nconst TrackeriHelpGeofence = (props) => {\n const [params, setParams] = useState({});\n const [searchbox, setSearchbox] = useState({});\n const [places, setPlaces] = useState({});\n const [openedGeofence, setOpenedGeofence] = useState(1);\n const geofenceList = [...Array(3).keys()].map(x => x+1);\n\n useEffect(() => {\n setParams(props.params.param);\n }, [props.params]);\n\n const onSearchboxMounted = (ref) => {\n setSearchbox(ref);\n }\n\n const onPlacesChanged = () => {\n const newPlaces = searchbox.getPlaces();\n setParams(prevState => ({\n ...prevState,\n [`GEO${openedGeofence}LAT`]: newPlaces[0].geometry.location.lat(),\n [`GEO${openedGeofence}LON`]: newPlaces[0].geometry.location.lng(),\n }));\n setPlaces(newPlaces);\n };\n\n const setParameters = (ev) => {\n if (ev.target.name.includes('RADIUS')) {\n setParams(prevState => ({ ...prevState, [ev.target.name]: parseInt(ev.target.value, 10) }));\n } else {\n setParams(prevState => ({ ...prevState, [ev.target.name]: ev.target.value }));\n }\n };\n\n const setLatLon = (ev) => {\n if (ev.charCode === 13 || ev.keyCode === 13) {\n setParams(prevState => ({\n ...prevState,\n [`GEO${openedGeofence}LAT`]: places[0].geometry.location.lat(),\n [`GEO${openedGeofence}LON`]: places[0].geometry.location.lng(),\n }));\n }\n };\n\n const convertAndSendGeofence = () => {\n const command = [\n {\n code: `geo${openedGeofence}`,\n params: `${params[`GEO${openedGeofence}MODE`]},${params[`GEO${openedGeofence}RADIUS`]},${params[`GEO${openedGeofence}LAT`]},${params[`GEO${openedGeofence}LON`]}`,\n },\n {\n code: 'getparams',\n params: '',\n },\n ];\n props.sendParams(command);\n };\n\n const changeGeofencePosition = (ev) => {\n setParams(prevState => ({\n ...prevState,\n [`GEO${openedGeofence}LAT`]: ev.latLng.lat(),\n [`GEO${openedGeofence}LON`]: ev.latLng.lng(),\n }));\n };\n\n const renderGeofenceMenu = (openedGeofence) => {\n const programmingData = props.programmingData;\n\n return (\n
\n
\n {params[`GEO${openedGeofence}MODE`] !== 0\n ?
{programmingData && programmingData[`GEO${openedGeofence}ADDR`]}
\n :
-
\n }\n
:
\n
\n \n
\n
\n
\n
\n \n \n \n
\n
\n
\n : {params[`GEO${openedGeofence}RADIUS`]} \n
\n \n
\n
\n
\n \n \n \n \n
\n
\n );\n };\n\n return (\n
\n
\n
\n {geofenceList.map(geofence => \n
\n \n {openedGeofence === geofence && renderGeofenceMenu(openedGeofence)}\n
\n )}\n
\n
\n \n
\n )\n};\n\nTrackeriHelpGeofence.propTypes = {\n sendParams: PropTypes.func.isRequired,\n programmingData: PropTypes.arrayOf(\n PropTypes.shape({\n GEO1ADDR: PropTypes.string,\n GEO2ADDR: PropTypes.string,\n GEO3ADDR: PropTypes.string,\n }),\n ).isRequired,\n params: PropTypes.shape({\n param: PropTypes.shape({\n GEO1MODE: PropTypes.number,\n GEO1LAT: PropTypes.oneOfType([PropTypes.string, PropTypes.number]),\n GEO1LON: PropTypes.oneOfType([PropTypes.string, PropTypes.number]),\n GEO1RADIUS: PropTypes.oneOfType([PropTypes.string, PropTypes.number]),\n GEO2MODE: PropTypes.number,\n GEO2LAT: PropTypes.oneOfType([PropTypes.string, PropTypes.number]),\n GEO2LON: PropTypes.oneOfType([PropTypes.string, PropTypes.number]),\n GEO2RADIUS: PropTypes.oneOfType([PropTypes.string, PropTypes.number]),\n GEO3MODE: PropTypes.number,\n GEO3LAT: PropTypes.oneOfType([PropTypes.string, PropTypes.number]),\n GEO3LON: PropTypes.oneOfType([PropTypes.string, PropTypes.number]),\n GEO3RADIUS: PropTypes.oneOfType([PropTypes.string, PropTypes.number]),\n }),\n }).isRequired,\n lang: PropTypes.string.isRequired,\n};\n\nfunction mapStateToProps(state, ownProps) {\n return {\n lang: state.locale.lang,\n };\n}\n\nexport default connect(mapStateToProps)(TrackeriHelpGeofence);\n","import React, { Component } from 'react';\nimport PropTypes from 'prop-types';\nimport style from './tooltipContainer.module.scss';\n\nconst TooltipContainer = ({ tooltipMessage, bottom, transform }) => (\n
\n \n \n {tooltipMessage}\n \n
\n);\n\nTooltipContainer.defaultProps = {\n bottom: '45px',\n transform: '-100',\n};\n\nTooltipContainer.propTypes = {\n bottom: PropTypes.string,\n transform: PropTypes.string,\n tooltipMessage: PropTypes.shape({\n key: PropTypes.number,\n }).isRequired,\n};\n\nexport default TooltipContainer;\n","import React, { useState, useEffect } from 'react';\nimport PropTypes from 'prop-types';\nimport { FormattedMessage } from 'react-intl';\nimport Tooltip from '../../../Tooltips/TooltipContainer';\nimport CheckboxInput from '../../../Common/CheckboxInput';\n\nimport style from './inNumbers.module.scss';\n\nconst IHelpInNumbers = (props) => {\n const [vin1, setVin1] = useState('');\n const [vin1Auto, setVin1Auto] = useState(false);\n const [vin2, setVin2] = useState('');\n const [vin2Auto, setVin2Auto] = useState(false);\n\n useEffect(() => {\n setVin1(props.params.param.VIN1);\n setVin1Auto(props.params.param.VIN1AUTO);\n setVin2(props.params.param.VIN2);\n setVin2Auto(props.params.param.VIN2AUTO);\n }, [props.params]);\n\n const convertAndSendParams = () => {\n const commands = [{\n code: 'vin1',\n params: `${vin1},${vin1Auto}`,\n },\n {\n code: 'vin2',\n params: `${vin2},${vin2Auto}`,\n },\n {\n code: 'getparams',\n params: '',\n },\n ];\n props.sendParams(commands);\n };\n\n return (\n
\n
\n
\n
\n 1:\n
\n
\n setVin1(ev.target.value)}\n />\n setVin1Auto(!vin1Auto)} />\n \n } />\n \n
\n
\n
\n
\n
\n
\n 2:\n
\n
\n setVin2(ev.target.value)}\n />\n setVin2Auto(!vin2Auto)} />\n \n } />\n \n
\n
\n
\n
\n \n
\n
\n );\n\n};\n\nIHelpInNumbers.propTypes = {\n sendParams: PropTypes.func.isRequired,\n params: PropTypes.shape({\n param: PropTypes.shape({\n VOUT1: PropTypes.oneOfType([PropTypes.string, PropTypes.number]),\n VOUT2: PropTypes.oneOfType([PropTypes.string, PropTypes.number]),\n VOUT1TIME: PropTypes.number,\n VOUT2TIME: PropTypes.number,\n VIN1: PropTypes.oneOfType([PropTypes.string, PropTypes.number]),\n VIN2: PropTypes.oneOfType([PropTypes.string, PropTypes.number]),\n VIN1AUTO: PropTypes.bool,\n VIN2AUTO: PropTypes.bool,\n FDMODE: PropTypes.number,\n GEO1MODE: PropTypes.number,\n GEO1LAT: PropTypes.oneOfType([PropTypes.string, PropTypes.number]),\n GEO1LON: PropTypes.oneOfType([PropTypes.string, PropTypes.number]),\n GEO1RADIUS: PropTypes.oneOfType([PropTypes.string, PropTypes.number]),\n GEO2MODE: PropTypes.number,\n GEO2LAT: PropTypes.oneOfType([PropTypes.string, PropTypes.number]),\n GEO2LON: PropTypes.oneOfType([PropTypes.string, PropTypes.number]),\n GEO2RADIUS: PropTypes.oneOfType([PropTypes.string, PropTypes.number]),\n GEO3MODE: PropTypes.number,\n GEO3LAT: PropTypes.oneOfType([PropTypes.string, PropTypes.number]),\n GEO3LON: PropTypes.oneOfType([PropTypes.string, PropTypes.number]),\n GEO3RADIUS: PropTypes.oneOfType([PropTypes.string, PropTypes.number]),\n SOSBREADCRUMB: PropTypes.oneOfType([PropTypes.bool, PropTypes.string]),\n AUTOPOST: PropTypes.number,\n SUBSCRIPTIONTOPIC: PropTypes.string,\n }),\n }).isRequired,\n};\n\nexport default IHelpInNumbers;\n","import React, { useState, useEffect } from 'react';\nimport PropTypes from 'prop-types';\nimport { FormattedMessage } from 'react-intl';\nimport ToggleButton from '../../../Common/ToggleButton';\n\nimport style from './medications.module.scss';\n\nconst MedicationComponent = (props) => {\n const [medication, setMedication] = useState('');\n const [ackMedication, setAckMedication] = useState(false);\n const [medOn, setMedOn] = useState(true);\n\n useEffect(() => {\n setMedication(props.medication);\n }, [props.medication]);\n\n useEffect(() => {\n setAckMedication(props.ackMedication);\n }, [props.ackMedication]);\n\n useEffect(() => {\n if (medication === '' || medication === undefined || medication === 'off') {\n setMedOn(false);\n } else {\n setMedOn(true);\n }\n }, [medication]);\n\n const setHours = (ev) => {\n const hours = ev.target.value;\n if (medication === '' || medication === undefined || medication === 'on') {\n setMedication(`${hours}:00`);\n } else {\n setMedication(`${hours}:${medication.split(':')[1]}`);\n }\n };\n\n const setMinutes = (ev) => {\n const minutes = ev.target.value;\n if (medication === '' || medication === undefined || medication === 'off') {\n setMedication(`00:${minutes}`);\n } else {\n setMedication(`${medication.split(':')[0]}:${minutes}`);\n }\n };\n\n const toggleMedication = () => {\n if (medication === '' || medication === undefined || medication === 'off') {\n setMedication('00:00');\n } else {\n setMedication('off');\n }\n };\n\n const convertAndSendData = () => {\n const command = [{\n code: `medication${props.openedMedication}`,\n params: `${medication},${ackMedication}`\n },\n {\n code: 'getparams',\n params: '',\n }];\n props.sendParams(command);\n };\n\n const hours = medication ? parseInt(medication.split(':')[0], 10) : 0;\n const minutes = medication ? parseInt(medication.split(':')[1], 10) : 0;\n\n return (\n
\n \n :\n \n \n \n {[...Array(24).keys()].map(hour => (\n \n ))}\n \n :\n \n {[...Array(60).keys()].map((min) => (\n \n ))}\n \n \n
\n :\n setAckMedication(!ackMedication)}\n hasPagination={false}\n />\n
\n
\n :\n toggleMedication()}\n hasPagination={false}\n />\n
\n \n \n \n \n\n
\n )\n}\n\nconst IHelpMedications = (props) => {\n const [params, setParams] = useState({});\n const [openedMedication, setOpenedMedication] = useState('');\n const medicationList = [...Array(4).keys()].map(x => x+1);\n\n useEffect(() => {\n setParams(props.params.param);\n }, [props.params]);\n \n return (\n
\n
\n {medicationList.map(med =>\n
\n \n {openedMedication === med &&\n \n }\n
\n )}\n
\n
\n )\n};\n\nIHelpMedications.propTypes = {\n sendParams: PropTypes.func.isRequired,\n params: PropTypes.shape({\n param: PropTypes.shape({\n MEDICATION1: PropTypes.string,\n MEDICATION1ACK: PropTypes.bool,\n MEDICATION2: PropTypes.string,\n MEDICATION2ACK: PropTypes.bool,\n MEDICATION3: PropTypes.string,\n MEDICATION3ACK: PropTypes.bool,\n MEDICATION4: PropTypes.string,\n MEDICATION4ACK: PropTypes.bool,\n }),\n }).isRequired,\n};\n\nexport default IHelpMedications;\n","const dotIcon = {\n path: 'M27.25,4.655C20.996-1.571,10.88-1.546,4.656,4.706C-1.571,10.96-1.548,21.076,4.705,27.3' +\n 'c6.256,6.226,16.374,6.203,22.597-0.051C33.526,20.995,33.505,10.878,27.25,4.655z',\n fillOpacity: 1.0,\n scale: 0.6,\n fillColor: '#00b8cb',\n strokeColor: '#00b8cb',\n anchor: { x: 15, y: 35 },\n}\n\nexport const firstIcon = {\n path: 'M13.29,19.16c-7.35,0-13.29,3.84-13.29,8.57v22.71c0,2.82,2.12,5.31,5.39,6.87v22c0,2.92,3.53,5.26,7.9,5.26s7.9-2.34,7.9-5.26v-22.01c3.25-1.56,5.38-4.05,5.38-6.86V27.73c0-4.73-5.96-8.57-13.27-8.57Z' +\n 'M6.34,6.95C6.34,3.11,9.43,0,13.29,0s6.95,3.11,6.95,6.95-3.11,6.97-6.95,6.97-6.96-3.13-6.96-6.97Z',\n fillOpacity: 1.0,\n scale: 0.6,\n fillColor: '#4196CD',\n strokeColor: '#4196CD',\n anchor: { x: 15, y: 80 },\n}\n\nexport const lastIcon = {\n path: 'M13.29,19.16c-7.35,0-13.29,3.84-13.29,8.57v22.71c0,2.82,2.12,5.31,5.39,6.87v22c0,2.92,3.53,5.26,7.9,5.26s7.9-2.34,7.9-5.26v-22.01c3.25-1.56,5.38-4.05,5.38-6.86V27.73c0-4.73-5.96-8.57-13.27-8.57Z' +\n 'M6.34,6.95C6.34,3.11,9.43,0,13.29,0s6.95,3.11,6.95,6.95-3.11,6.97-6.95,6.97-6.96-3.13-6.96-6.97Z',\n fillOpacity: 1.0,\n scale: 0.6,\n fillColor: '#d8342b',\n strokeColor: '#d8342b',\n anchor: { x: 15, y: 80 },\n}\n\nexport default dotIcon;\n","export default {\n en: {\n 1: 'SOS Emergency',\n 2: 'Fall Detecion',\n 3: 'Geo-fence 1 Entered',\n 4: 'Geo-fence 1 Exited',\n 5: 'Geo-fence 2 Entered',\n 6: 'Geo-fence 2 Exited',\n 7: 'Geo-fence 3 Entered',\n 8: 'Geo-fence 3 Exited',\n 9: 'Interval Report',\n 10: 'Status Report',\n 13: 'Battery Dead',\n 14: 'Post Parameters',\n 17: 'Test Call',\n 18: 'SOS Remote',\n 19: 'Low Battery',\n 20: 'Device Booted',\n 21: 'SOS Breadcrumb',\n 22: 'Wi-Fi Scan',\n 23: 'Reboot',\n 24: 'Power Off',\n 25: 'Track',\n 40: 'Medication 1 Alert',\n 41: 'Medication 1 Acknowledged',\n 42: 'Medication 1 Missed',\n 43: 'Medication 2 Alert',\n 44: 'Medication 2 Acknowledged',\n 45: 'Medication 2 Missed',\n 46: 'Medication 3 Alert',\n 47: 'Medication 3 Acknowledged',\n 48: 'Medication 3 Missed',\n 49: 'Medication 4 Alert',\n 50: 'Medication 4 Acknowledged',\n 51: 'Medication 4 Missed',\n },\n pt: {\n 1: 'Emergência SOS',\n 2: 'Detecção de Queda',\n 3: 'Entrou Cerca Geográfica 1',\n 4: 'Saiu Cerca Geográfica 1',\n 5: 'Entrou Cerca Geográfica 2',\n 6: 'Saiu Cerca Geográfica 2',\n 7: 'Entrou Cerca Geográfica 3',\n 8: 'Saiu Cerca Geográfica 3',\n 9: 'Relatório de Intervalo',\n 10: 'Resultado de Status',\n 13: 'Sem Bateria',\n 14: 'Parâmetros',\n 17: 'Chamada de Teste',\n 18: 'SOS Remoto',\n 19: 'Bateria Baixa',\n 20: 'Dispositivo Ligado',\n 21: 'Trilha de SOS',\n 22: 'Wi-Fi Scan',\n 23: 'Reiniciado',\n 24: 'Desligar',\n 25: 'Localização',\n 40: 'Medicação 1 Alerta',\n 41: 'Medicação 1 Reconhecida',\n 42: 'Medicação 1 Perdida',\n 43: 'Medicação 2 Alerta',\n 44: 'Medicação 2 Reconhecida',\n 45: 'Medicação 2 Perdida',\n 46: 'Medicação 3 Alerta',\n 47: 'Medicação 3 Reconhecida',\n 48: 'Medicação 3 Perdida',\n 49: 'Medicação 4 Alerta',\n 50: 'Medicação 4 Reconhecida',\n 51: 'Medicação 4 Perdida',\n },\n};\n","import React, { useState, useCallback, useMemo } from 'react';\nimport PropTypes from 'prop-types';\nimport { GoogleMap, useJsApiLoader, Marker, InfoWindow, MarkerClusterer } from '@react-google-maps/api';\nimport { FormattedMessage } from 'react-intl';\nimport moment from 'moment';\nimport Loading from '../../../../icons/Loading';\nimport dotIcon, { firstIcon, lastIcon } from '../../../../icons/trackerIcons';\nimport messagesTracker from '../../../../BLL/locale/messagesIHelpEventTypes';\nimport config from '../../../../BLL/config';\n\nimport style from './tracker.module.scss';\nimport '../../../../css/middle.scss';\n\nconst MapPoint = (props) => {\n const { pointList, lang, lastGeneralData, equipment } = props;\n const { isLoaded } = useJsApiLoader({\n id: 'google-map-script',\n googleMapsApiKey: config.googleMapsApiKey\n });\n const [map, setMap] = useState(null);\n const [selectedElement, setSelectedElement] = useState(null);\n const [activeMarker, setActiveMarker] = useState(null);\n const [showInfoWindow, setShowInfoWindow] = useState(true);\n const center = useMemo(() => {\n if (pointList?.length > 0) {\n return ({\n lat: parseFloat(pointList[0].LATITUDE),\n lng: parseFloat(pointList[0].LONGITUDE),\n })\n }\n }, [pointList]);\n\n const onLoad = useCallback((map) => {\n setMap(map);\n }, []);\n\n const onUnmount = useCallback((map) => {\n setMap(null);\n }, []);\n\n if (!isLoaded || !pointList?.length > 0) {\n return } />\n }\n\n console.log(equipment);\n\n return (\n
\n
\n
\n {lastGeneralData &&\n
\n : {lastGeneralData.BATTERY}%|\n : {lastGeneralData.SIGNAL_STRENGTH}|\n \n : {\n lastGeneralData.IS_CHARGING ? : \n }\n |\n \n : {\n lastGeneralData.CHARGE_COMPLETE ? : \n }\n |\n : {moment(parseInt(lastGeneralData.TIMESTAMP, 10) * 1000).format('YYYY-MM-DD HH:mm:ss')}\n
\n }\n
\n {equipment && equipment.name.toLowerCase().includes('ev07b')\n ?\n
\n \n \n \n
\n :\n
\n \n
\n }\n
\n \n \n {((clusterer) =>\n pointList.map((point, index) => {\n let sendDate = '';\n if (point.SENDTIME) {\n sendDate = moment(parseInt(point.SENDTIME, 10)).local().format('YYYY-MM-DD HH:mm:ss');\n } else if (point.DATETIME) {\n sendDate = moment(point.DATETIME).local().format('YYYY-MM-DD HH:mm:ss')\n } else {\n sendDate = moment(parseInt(point.TIMESTAMP, 10) * 1000).local().format('YYYY-MM-DD HH:mm:ss');\n }\n let icon = dotIcon;\n if (index === 0) {\n icon = firstIcon;\n } else if (index === pointList.length -1) {\n icon = lastIcon;\n }\n\n return (\n {\n setSelectedElement(point);\n setActiveMarker(index);\n }}\n >\n {selectedElement && index === activeMarker &&\n {\n setSelectedElement(null);\n }}\n >\n
\n \n : {sendDate}\n \n {point.BATTERY &&\n \n : {point.BATTERY}%\n \n }\n {point.ACCURACY &&\n \n : {point.ACCURACY}m\n \n }\n {point.DIRECTION !== undefined &&\n \n : {point.DIRECTION}°\n \n }\n {point.GPSACCURACY &&\n \n : {point.GPSACCURACY}m\n \n }\n {point.ONCHARGER &&\n \n : {\n point.ONCHARGER === 'true'\n ? \n : \n }\n \n }\n {point.ALTITUDE &&\n \n : {point.ALTITUDE}\n \n }\n {point.SPEED &&\n \n : {point.SPEED} Km/h\n \n }\n {point.CELLSIGNAL &&\n \n : {point.CELLSIGNAL}\n \n }\n {point.EVENTTYPE &&\n \n : {messagesTracker[lang][point.EVENTTYPE]}\n \n }\n {point.FROM_WIFI !== undefined &&\n \n : {point.FROM_WIFI ? 'Wi-Fi' : 'GPS'}\n \n }\n {point.ADDRESS}\n
\n \n }\n \n );\n })\n )}\n
\n\n \n\n
\n );\n}\n\nexport default MapPoint;\n","import React from 'react';\nimport PropTypes from 'prop-types';\n\nconst CustomDatePickerInput = ({\n onClick,\n value,\n}) => (\n \n);\n\nCustomDatePickerInput.defaultProps = {\n value: '',\n onClick: () => {},\n};\n\nCustomDatePickerInput.propTypes = {\n onClick: PropTypes.func,\n value: PropTypes.string,\n};\n\nexport default CustomDatePickerInput;\n","import React from 'react';\nimport { FormattedMessage } from 'react-intl';\nimport DatePicker, { registerLocale } from 'react-datepicker';\nimport br from 'date-fns/locale/pt-BR';\nimport us from 'date-fns/locale/en-US';\nimport CustomDatePickerInput from '../../../Common/CustomDatePickerInput';\nimport messages from '../../../../BLL/locale/messages';\n\nimport style from './tracker.module.scss';\nimport '../../../../css/middle.scss';\nimport './stylesheets/datepicker-cssmodules.scss';\n\nregisterLocale('pt-br', br);\nregisterLocale('en-us', us);\n\n\nconst HistoryMenu = (props) => {\n return (\n
\n
\n \n
\n }\n selected={props.startDate}\n onChange={(ev) => props.handleStartChange(ev)}\n locale={props.lang === 'pt' ? 'pt-br' : 'en-us'}\n showTimeSelect\n timeFormat=\"HH\"\n timeIntervals={60}\n dateFormat=\"dd/MM/yyyy - HH:00\"\n timeCaption={messages[props.lang]['client.tracker.hour']}\n previousMonthButtonLabel=\"\"\n nextMonthButtonLabel=\"\"\n />\n
\n
\n
\n \n
\n }\n selected={props.endDate}\n onChange={(ev) => props.handleEndChange(ev)}\n locale={props.lang === 'pt' ? 'pt-br' : 'en-us'}\n showTimeSelect\n timeFormat=\"HH\"\n timeIntervals={60}\n dateFormat=\"dd/MM/yyyy - HH:00\"\n timeCaption={messages[props.lang]['client.tracker.hour']}\n previousMonthButtonLabel=\"\"\n nextMonthButtonLabel=\"\"\n />\n
\n
\n \n
\n );\n};\n\nexport default HistoryMenu;\n","import React, { Component } from 'react';\nimport PropTypes from 'prop-types';\nimport styles from './customModal.module.scss';\n\nexport default class CustomModal extends Component {\n\n constructor(props) {\n super(props);\n }\n\n render() {\n return (\n
\n
{this.props.text}
\n
\n \n
\n
\n );\n }\n\n}\n\nCustomModal.defaultProps = {\n height: '',\n testId: ''\n};\n\nCustomModal.propTypes = {\n text: PropTypes.shape({\n key: PropTypes.number,\n }).isRequired, // PropTypes.string.isRequired,\n btnText: PropTypes.string.isRequired,\n btnAction: PropTypes.func.isRequired,\n height: PropTypes.string,\n testId: PropTypes.string,\n};\n","import React, { useState, useEffect } from 'react';\nimport PropTypes from 'prop-types';\nimport { connect } from 'react-redux';\nimport { FormattedMessage } from 'react-intl';\nimport axios from 'axios';\nimport { registerLocale } from 'react-datepicker';\nimport br from 'date-fns/locale/pt-BR';\nimport us from 'date-fns/locale/en-US';\nimport moment from 'moment';\nimport { host, getDomain, getToken } from '../../../../BLL/environment';\nimport ProgrammingComponent from './TrackeriHelpProgram';\nimport Geofence from './TrackeriHelpGeofence';\nimport InNumbers from './TrackeriHelpInNumbers';\nimport MedicationReminders from './TrackeriHelpMedications';\nimport MapPoint from './TrackerMapPoint';\nimport HistoryMenu from './TrackerHistoryMenu';\nimport CustomModal from '../../../Modal/CustomModal';\nimport Order from '../../../../icons/Order';\nimport * as clientsActions from '../../../../actions/clientsActions';\n\nimport style from './tracker.module.scss';\nimport '../../../../css/middle.scss';\nimport './stylesheets/datepicker-cssmodules.scss';\n\nregisterLocale('pt-br', br);\nregisterLocale('en-us', us);\n\nconst TrackeriHelp = (props) => {\n const [startDate, setStartDate] = useState(moment().locale('pt-br').subtract(1, 'hours').toDate());\n const [endDate, setEndDate] = useState(moment().locale('pt-br').toDate());\n const [pointList, setPointList] = useState([]);\n const [trackerParams, setTrackerParams] = useState({});\n const [client, setClient] = useState(undefined);\n const [programming, setProgramming] = useState({});\n const [showMap, setShowMap] = useState(false);\n const [showHistory, setShowHistory] = useState(false);\n const [showProgramming, setShowProgramming] = useState(false);\n const [showInNumbers, setShowInNumbers] = useState(false);\n const [showGeofence, setShowGeofence] = useState(false);\n const [showMedicationsMenu, setShowMedicationsMenu] = useState(false);\n const [showModal, setShowModal] = useState(false);\n const [disableProgramming, setDisableProgramming] = useState(true);\n const [errorMessage, setErrorMessage] = useState('');\n\n useEffect(() => {\n fetchClient(parseInt(props.match.params.clientId, 10));\n }, [props.match.params.clientId]);\n\n useEffect(() => {\n if (client) {\n fetchLatestPoint();\n fetchParams();\n }\n }, [client])\n\n const fetchClient = (clientId) => {\n axios.get(`https://${getDomain()}${host()}/api/clients/${clientId}/`, {\n headers: { Authorization: `Token ${getToken()}` },\n }).then(res => setClient(Object.assign({}, res.data)))\n .catch(error => console.log(error));\n };\n\n const fetchLatestPoint = () => {\n axios({\n url: `https://${getDomain()}${host()}/api/clients/${client.id}/tracker-iot/last/`,\n method: 'GET',\n responseType: 'json',\n headers: { Authorization: `Token ${getToken()}` },\n }).then((res) => {\n if (res.data.length > 0) {\n setPointList(res.data);\n setErrorMessage('');\n } else {\n const newErrorMessage = 'ESTE DISPOSITIVO NÃO TEM DADOS PARA O DIA DE HOJE, VERIFIQUE A BATERIA DO SEU SISTEMA';\n const errorComponent = ();\n setPointList([]);\n setErrorMessage(errorComponent);\n disableProgramming(true);\n }\n }).catch((err) => {\n let newErrorMessage = '';\n let errorComponent = {};\n if (err.response.data.imei) {\n newErrorMessage = 'ESTE USUÁRIO NÃO ESTÁ COM O IMEI CADASTRADO.\\n';\n errorComponent = ;\n } else if (err.response.data.noData) {\n newErrorMessage = 'NENHUM PONTO ACHADO PARA ESTE DISPOSITIVO. \\n VERIFIQUE SE ESTE RASTREADOR ESTÁ LIGADO';\n errorComponent = ;\n } else {\n newErrorMessage = 'ERRO INESPERADO';\n errorComponent = ;\n }\n setErrorMessage(errorComponent);\n });\n };\n\n const fetchParams = () => {\n axios({\n url: `https://${getDomain()}${host()}/api/clients/${client.id}/tracker-iot/program/`,\n method: 'GET',\n responseType: 'json',\n headers: { Authorization: `Token ${getToken()}` },\n }).then((res) => {\n if (res.data.length > 0) {\n setDisableProgramming(false);\n setTrackerParams(JSON.parse(res.data[0].MESSAGE));\n setProgramming(res.data[0]);\n }\n }).catch((err) => {\n console.log(err);\n });\n }\n\n const fetchPoints = () => {\n const startDateString = moment(startDate).format('YYYY-MM-DD');\n const endDateString = moment(endDate).format('YYYY-MM-DD');\n const params = `?start_date=${startDateString}&start_hour=${startDate.getHours()}&end_date=${endDateString}&end_hour=${endDate.getHours()}`;\n if (client) {\n axios({\n url: `https://${getDomain()}${host()}/api/clients/${client.id}/tracker-iot/${params}`,\n method: 'GET',\n responseType: 'json',\n headers: { Authorization: `Token ${getToken()}` },\n }).then((res) => {\n if (res.data.length > 0) {\n setPointList(res.data);\n setErrorMessage('');\n } else {\n const newErrorMessage = 'SEM DADOS PARA AS DATAS ENTRE {startDate} AS {startHour} HORAS E {endDate} AS {endHour} HORAS';\n const errorComponent = ();\n setPointList([]);\n setErrorMessage(errorComponent);\n }\n }).catch(err => console.log(err));\n }\n };\n\n const sendParams = (params) => {\n if (client) {\n axios({\n url: `https://${getDomain()}${host()}/api/clients/${client.id}/tracker-iot/program/`,\n method: 'PUT',\n responseType: 'json',\n data: params,\n headers: { Authorization: `Token ${getToken()}` },\n }).then((res) => {\n if (res.data) {\n setShowModal(true);\n }\n }).catch(err => console.log(err));\n }\n };\n\n const openMap = () => {\n setShowMap(!showMap);\n setShowGeofence(false);\n };\n\n const openHistory = () => {\n setShowHistory(!showHistory);\n setShowGeofence(false);\n }\n\n const openGeofence = () => {\n setShowGeofence(!showGeofence);\n setShowHistory(false);\n }\n\n const canProgram = props.loggedAttendantGroup !== 3;\n const rotateMap = showMap ? style.rotate : '';\n const rotateHistory = showHistory ? style.rotate : '';\n const rotateProgram = showProgramming ? style.rotate : '';\n const rotateGeofences = showGeofence ? style.rotate : '';\n const rotateInNumbers = showInNumbers ? style.rotate : '';\n const rotateMedications = showMedicationsMenu ? style.rotate : '';\n const fullName = client ? `${client.first_name} ${client.last_name}`.toUpperCase() : '';\n\n return (\n
\n
\n }\n btnText=\"OK\"\n btnAction={() => setShowModal(false)}\n />\n
\n
\n
\n \n {fullName}\n
\n
\n
\n
\n \n
\n {showMap &&\n \n }\n
\n \n
\n {showHistory &&\n \n }\n {canProgram &&\n
\n setShowProgramming(!showProgramming)}\n disabled={disableProgramming}\n >\n \n \n
\n }\n {showProgramming &&\n \n }\n {canProgram &&\n
\n setShowInNumbers(!showInNumbers)}\n disabled={disableProgramming}\n >\n \n \n
\n }\n {showInNumbers &&\n \n }\n {canProgram &&\n
\n setShowMedicationsMenu(!showMedicationsMenu)}\n disabled={disableProgramming}\n >\n \n \n \n
\n }\n {showMedicationsMenu &&\n \n }\n {canProgram &&\n
\n \n \n \n
\n }\n
\n {!showGeofence && (errorMessage\n ?
\n
{errorMessage}
\n
\n : null)\n }\n {showGeofence &&\n \n }\n
\n
\n
\n );\n};\n\nTrackeriHelp.propTypes = {\n clients: PropTypes.arrayOf(\n PropTypes.shape({\n data: PropTypes.arrayOf(\n PropTypes.shape({\n id: PropTypes.number,\n account: PropTypes.string,\n first_name: PropTypes.string,\n last_name: PropTypes.string,\n is_test: PropTypes.bool,\n equipment_id: PropTypes.number,\n equipment_name: PropTypes.string,\n }),\n ),\n ordering: PropTypes.string,\n }),\n ).isRequired,\n params: PropTypes.shape({\n clientId: PropTypes.string.isRequired,\n }).isRequired,\n loadClients: PropTypes.func.isRequired,\n loggedAttendantGroup: PropTypes.number.isRequired,\n lang: PropTypes.string.isRequired,\n};\n\nfunction mapStateToProps(state, ownProps) {\n return {\n clients: state.clients,\n loggedAttendantGroup: state.loggedAttendant.groups[0],\n lang: state.locale.lang,\n };\n}\n\nfunction mapDispatchToProps(dispatch) {\n return {\n loadClients: params => dispatch(clientsActions.loadClients(params)),\n };\n}\n\nexport default connect(mapStateToProps, mapDispatchToProps)(TrackeriHelp);\n","import React from 'react';\nimport PropTypes from 'prop-types';\nimport { FormattedMessage } from 'react-intl';\nimport SelectInput from '../../../Common/SelectInput2';\nimport CheckboxInput from '../../../Common/CheckboxInput';\nimport formStyle from '../../../../css/form.module.scss';\nimport style from './programming.module.scss';\nimport Tooltip from '../../../Tooltips/TooltipContainer';\nimport '../../../../css/block.scss';\n\n\nconst IGOProgrammingComponent = ({ trackerParams, setParameters, convertAndSendParams }) => (\n
\n {trackerParams &&\n
\n
\n GSM\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 \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
Km/h
\n
\n \n } />\n
\n
\n \n
\n
\n }\n
\n);\n\nIGOProgrammingComponent.propTypes = {\n trackerParams: PropTypes.shape({\n A1: PropTypes.string,\n B1: PropTypes.string,\n C1: PropTypes.string,\n DEVICEID: PropTypes.string,\n EVENTTYPE: PropTypes.string,\n OVERSPEED_INDICATOR: PropTypes.string,\n INTERVAL: PropTypes.string,\n FALL_DETECTION: PropTypes.oneOfType([PropTypes.bool, PropTypes.string]),\n GSM: PropTypes.oneOfType([PropTypes.bool, PropTypes.string]),\n AGPS: PropTypes.oneOfType([PropTypes.bool, PropTypes.string]),\n LED_INDICATOR: PropTypes.oneOfType([PropTypes.bool, PropTypes.string]),\n POWER_SAVING: PropTypes.oneOfType([PropTypes.bool, PropTypes.string]),\n VOICE_MONITOR: PropTypes.oneOfType([PropTypes.bool, PropTypes.string]),\n deviceInterval: PropTypes.string,\n }).isRequired,\n setParameters: PropTypes.func.isRequired,\n convertAndSendParams: PropTypes.func.isRequired,\n};\n\nexport default IGOProgrammingComponent;\n","import React, { useState, useEffect } from 'react';\nimport PropTypes from 'prop-types';\nimport { connect } from 'react-redux';\nimport { FormattedMessage } from 'react-intl';\nimport axios from 'axios';\nimport { registerLocale } from 'react-datepicker';\nimport br from 'date-fns/locale/pt-BR';\nimport us from 'date-fns/locale/en-US';\nimport moment from 'moment';\nimport { host, getDomain, getToken } from '../../../../BLL/environment';\nimport HistoryMenu from './TrackerHistoryMenu';\nimport MapPoint from './TrackerMapPoint';\nimport IGOProgrammingComponent from './TrackerIGOProgram';\nimport CustomModal from '../../../Modal/CustomModal';\nimport Order from '../../../../icons/Order';\nimport * as clientsActions from '../../../../actions/clientsActions';\n\nimport style from './tracker.module.scss';\nimport '../../../../css/middle.scss';\nimport './stylesheets/datepicker-cssmodules.scss';\n\nregisterLocale('pt-br', br);\nregisterLocale('en-us', us);\n\nconst TrackerIGO = (props) => {\n const [startDate, setStartDate] = useState(moment().locale('pt-br').subtract(1, 'hours').toDate());\n const [endDate, setEndDate] = useState(moment().locale('pt-br').toDate());\n const [pointList, setPointList] = useState([]);\n const [trackerParams, setTrackerParams] = useState(undefined);\n const [modifiedParams, setModifiedParams] = useState(new Set());\n const [client, setClient] = useState(undefined);\n const [showMap, setShowMap] = useState(false);\n const [showHistory, setShowHistory] = useState(false);\n const [showNormalized, setShowNormalized] = useState(false);\n const [showProgramming, setShowProgramming] = useState(false);\n const [errorComponent, setErrorComponent] = useState(undefined);\n const [helpUrl, setHelpUrl] = useState('');\n const [showModal, setShowModal] = useState(false);\n\n useEffect(() => {\n fetchClient(parseInt(props.match.params.clientId, 10));\n }, [props.match.params.clientId]);\n\n useEffect(() => {\n if (client) {\n fetchLatestPoint();\n fetchParams();\n }\n }, [client])\n\n const fetchClient = (clientId) => {\n axios.get(`https://${getDomain()}${host()}/api/clients/${clientId}/`, {\n headers: { Authorization: `Token ${getToken()}` },\n }).then(res => setClient(Object.assign({}, res.data)))\n .catch(error => console.log(error));\n };\n\n const fetchLatestPoint = () => {\n axios({\n url: `https://${getDomain()}${host()}/api/clients/${client.id}/tracker-iot/last/`,\n method: 'GET',\n responseType: 'json',\n headers: { Authorization: `Token ${getToken()}` },\n }).then((res) => {\n setPointList(res.data);\n setErrorComponent(undefined);\n }).catch((err) => {\n console.log(err);\n let errorMessage = '';\n let newHelpUrl = '';\n let newErrorComponent = {};\n if (err.response.data.imei) {\n errorMessage = 'ESTE USUÁRIO NÃO ESTÁ COM O IMEI CADASTRADO.\\n';\n newErrorComponent = ;\n newHelpUrl = 'https://tecnosenior.zendesk.com/hc/pt-br/articles/360007618312-Solicitando-o-IMEI-e-cadastrando-o-iGO-no-contactto-care';\n } else if (err.respose.data.noData) {\n errorMessage = 'NÃO FORAM ENCONTRADOS DADOS.\\n\\n O RASTREADOR DEVE SER CONFIGURADO COM O SERVIDOR DO CONTACTTO.CARE.\\n\\n\\n';\n newErrorComponent = ;\n newHelpUrl = 'https://tecnosenior.zendesk.com/hc/pt-br/articles/360007605972-Configurando-o-iGO-no-Contactto';\n } else if (err.response.data.doesNotExist) {\n errorMessage = 'ESTE USUÁRIO NÃO EXISTE';\n newErrorComponent = ;\n } else {\n errorMessage = 'ERRO INESPERADO';\n newErrorComponent = ;\n }\n setErrorComponent(newErrorComponent);\n setHelpUrl(newHelpUrl);\n })\n };\n\n const fetchParams = () => {\n axios({\n url: `https://${getDomain()}${host()}/api/clients/${client.id}/tracker-iot/program/`,\n method: 'GET',\n responseType: 'json',\n headers: { Authorization: `Token ${getToken()}` },\n }).then((res) => {\n if (res.data.length > 0) {\n const newTrackerParams = res.data[0];\n newTrackerParams.deviceInterval = (parseInt(newTrackerParams.INTERVAL, 10) / 10).toString().padStart(3, '0');\n setTrackerParams(newTrackerParams);\n }\n }).catch((err) => {\n console.log(err.response);\n })\n };\n\n const fetchPoints = () => {\n const startDateString = moment(startDate).format('YYYY-MM-DD');\n const endDateString = moment(endDate).format('YYYY-MM-DD');\n const params = `?start_date=${startDateString}&start_hour=${startDate.getHours()}&end_date=${endDateString}&end_hour=${endDate.getHours()}`;\n\n axios({\n url: `https://${getDomain()}${host()}/api/clients/${client.id}/tracker-iot/${params}`,\n method: 'GET',\n responseType: 'json',\n headers: { Authorization: `Token ${getToken()}` },\n }).then((res) => {\n if (res.data && res.data.length > 0) {\n setPointList(res.data);\n setErrorComponent(undefined);\n } else {\n const errorMessage = 'SEM DADOS PARA AS DATAS ENTRE {startDate} AS {startHour} HORAS E {endDate} AS {endHour} HORAS';\n const newErrorComponent = ();\n setPointList([]);\n setErrorComponent(newErrorComponent);\n setHelpUrl('');\n }\n }).catch((err) => {\n let errorMessage = '';\n let newHelpUrl = '';\n let newErrorComponent = {};\n if (err.response.data.imei) {\n errorMessage = 'ESTE USUÁRIO NÃO ESTÁ COM O IMEI CADASTRADO.\\n';\n newErrorComponent = ;\n newHelpUrl = 'https://tecnosenior.zendesk.com/hc/pt-br/articles/360007618312-Solicitando-o-IMEI-e-cadastrando-o-iGO-no-contactto-care';\n } else if (err.response.data.noData) {\n errorMessage = 'NÃO HÁ DADOS PARA O DIA SELECIONADO.\\n\\n O RASTREADOR DEVE SER CONFIGURADO COM O SERVIDOR DO CONTACTTO.CARE.\\n\\n\\n';\n newErrorComponent = ;\n newHelpUrl = 'https://tecnosenior.zendesk.com/hc/pt-br/articles/360007605972-Configurando-o-iGO-no-Contactto';\n } else if (err.response.data.doesNotExist) {\n errorMessage = 'ESTE USUÁRIO NÃO EXISTE';\n newErrorComponent = ;\n } else {\n errorMessage = 'ERRO INESPERADO';\n newErrorComponent = ;\n }\n setErrorComponent(newErrorComponent);\n setHelpUrl(newHelpUrl);\n });\n };\n\n const fetchNormalizedPoints = () => {\n axios({\n url: `https://${getDomain()}${host()}/api/clients/${client.id}/tracker-iot/normalized/?date=${startDate.format('YYYY-MM-DD')}`,\n method: 'GET',\n responseType: 'json',\n headers: { Authorization: `Token ${getToken()}` },\n }).then((res) => {\n setPointList(res.data);\n setErrorComponent(undefined);\n }).catch((err) => {\n let errorMessage = '';\n let newHelpUrl = '';\n let newErrorComponent = {};\n if (err.response.data.imei) {\n errorMessage = 'ESTE USUÁRIO NÃO ESTÁ COM O IMEI CADASTRADO.\\n';\n newErrorComponent = ;\n newHelpUrl = 'https://tecnosenior.zendesk.com/hc/pt-br/articles/360007618312-Solicitando-o-IMEI-e-cadastrando-o-iGO-no-contactto-care';\n } else if (err.response.data.noData) {\n errorMessage = 'NÃO HÁ DADOS PARA O DIA SELECIONADO.\\n\\n O RASTREADOR DEVE SER CONFIGURADO COM O SERVIDOR DO CONTACTTO.CARE.\\n\\n\\n';\n newErrorComponent = ;\n newHelpUrl = 'https://tecnosenior.zendesk.com/hc/pt-br/articles/360007605972-Configurando-o-iGO-no-Contactto';\n } else if (err.response.data.noNormalizedDataToday) {\n errorMessage = 'NÃO É POSSÍVEL PESQUISAR POR DADOS SIMPLIFICADOS PARA A DATA DE HOJE.\\n ESSA INFORMAÇÃO ESTÁ DISPONÍVEL APENAS PARA DIAS ANTERIORES.';\n newErrorComponent = ;\n } else if (err.response.data.doesNotExist) {\n errorMessage = 'ESTE USUÁRIO NÃO EXISTE';\n newErrorComponent = ;\n } else {\n errorMessage = 'ERRO INESPERADO';\n newErrorComponent = ;\n }\n setErrorComponent(newErrorComponent);\n setHelpUrl(newHelpUrl);\n });\n };\n\n const setParameters = (event) => {\n let newTrackerParams = Object.assign({}, trackerParams);\n let newModifiedParams = modifiedParams;\n if (event.target.name === 'INTERVAL') {\n newTrackerParams = event.target.value;\n }\n newTrackerParams[event.target.name] = event.target.value;\n newModifiedParams.add(event.target.name);\n setTrackerParams(newTrackerParams);\n setModifiedParams(newModifiedParams);\n };\n\n const convertAndSendParams = () => {\n const cmdList = [];\n modifiedParams.forEach((param) => {\n switch (param) {\n case 'GSM':\n if (trackerParams[param] === true) {\n cmdList.push('123456GSM1');\n } else {\n cmdList.push('123456GSM0');\n }\n break;\n case 'POWER_SAVING':\n if (trackerParams[param] === true) {\n cmdList.push('123456SP1');\n } else {\n cmdList.push('123456SP0');\n }\n break;\n case 'FALL_DETECTION':\n if (trackerParams[param] === true) {\n cmdList.push('123456F1');\n } else {\n cmdList.push('123456F0');\n }\n break;\n case 'LED_INDICATOR':\n if (trackerParams[param] === true) {\n cmdList.push('123456LED1');\n } else {\n cmdList.push('123456LED0');\n }\n break;\n case 'VOICE_MONITOR':\n if (trackerParams[param] === true) {\n cmdList.push('123456P1');\n } else {\n cmdList.push('123456P0');\n }\n break;\n case 'OVERSPEED_INDICATOR':\n cmdList.push(`123456J1,${trackerParams[param].padStart(3, '0')}`);\n break;\n case 'INTERVAL':\n cmdList.push(`123456M,${trackerParams[param].padStart(3, '0')}`);\n break;\n default:\n break;\n }\n });\n cmdList.push('123456G');\n const data = {\n commands: `MCMD,${client.imei},123456J1,132`,\n };\n sendParams(data);\n };\n\n const sendParams = (params) => {\n axios({\n url: `https://${getDomain()}${host()}/api/clients/${client.id}/tracker-iot/program/`,\n method: 'PUT',\n responseType: 'json',\n data: params,\n headers: { Authorization: `Token ${getToken()}` },\n }).then((res) => {\n if (res.data) {\n setShowModal(true);\n }\n }).catch((err) => {\n console.log(err.response);\n })\n }\n\n const helpUrlComponent = () => {\n return (\n
\n {helpUrl &&\n
\n \n \n \n \n
\n }\n
\n );\n };\n\n const rotateMap = showMap ? style.rotate : '';\n const rotateHistory = showHistory ? style.rotate : '';\n const rotateNormalized = showNormalized ? style.rotate : '';\n\n return (\n
\n
\n }\n height={'160px'}\n btnText=\"OK\"\n btnAction={() => setShowModal(false)}\n />\n
\n
\n \n {client && `${client.first_name} ${client.last_name}`.toUpperCase()}\n
\n
\n
\n
\n setShowMap(!showMap)}\n >\n \n \n \n
\n {showMap && (errorComponent \n ?\n
\n
{errorComponent} { helpUrlComponent() }
\n
\n :\n \n )\n }\n
\n setShowHistory(!showHistory)}\n >\n \n \n \n
\n {showHistory &&\n \n }\n {!props.isOperator &&\n
\n
\n setShowProgramming(!showProgramming)}\n >\n \n \n \n
\n {showProgramming &&\n \n }\n
\n }\n\n
\n
\n
\n )\n\n};\n\nTrackerIGO.propTypes = {\n clients: PropTypes.arrayOf(\n PropTypes.shape({\n data: PropTypes.arrayOf(\n PropTypes.shape({\n id: PropTypes.number,\n account: PropTypes.string,\n first_name: PropTypes.string,\n last_name: PropTypes.string,\n is_test: PropTypes.boolean,\n equipment_id: PropTypes.number,\n equipment_name: PropTypes.string,\n }),\n ),\n ordering: PropTypes.string,\n }),\n ).isRequired,\n params: PropTypes.shape({\n clientId: PropTypes.string.isRequired,\n }).isRequired,\n loadClients: PropTypes.func.isRequired,\n isOperator: PropTypes.bool.isRequired,\n};\n\nfunction mapStateToProps(state, ownProps) {\n return {\n clients: state.clients,\n isOperator: state.loggedAttendant.groups.includes(3),\n };\n}\n\nfunction mapDispatchToProps(dispatch) {\n return {\n loadClients: params => dispatch(clientsActions.loadClients(params)),\n };\n}\n\nexport default connect(mapStateToProps, mapDispatchToProps)(TrackerIGO);\n","import React, { useState, useEffect } from 'react';\nimport ReactDOMServer from 'react-dom/server';\nimport PropTypes from 'prop-types';\nimport { FormattedMessage } from 'react-intl';\nimport { connect } from 'react-redux';\nimport DatePicker, { registerLocale } from 'react-datepicker';\nimport moment from 'moment';\nimport axios from 'axios';\nimport L from 'leaflet';\nimport { Map, TileLayer, Marker, Popup } from 'react-leaflet';\nimport br from 'date-fns/locale/pt-BR';\nimport us from 'date-fns/locale/en-US';\nimport { host, getDomain, getToken } from '../../../../BLL/environment';\nimport CustomCardHOC from '../../../Cards/CustomCardHOC';\nimport CustomDatePickerInput from '../../../Common/CustomDatePickerInput';\nimport Loading from '../../../../icons/Loading';\nimport Order from '../../../../icons/Order';\nimport * as clientsActions from '../../../../actions/clientsActions';\nimport messages from '../../../../BLL/locale/messages';\nimport messagesAlarms from '../../../../BLL/locale/messagesAlarms';\n\nimport style from './tracker.module.scss';\nimport '../../../../css/middle.scss';\nimport './stylesheets/datepicker-cssmodules.scss';\n\nregisterLocale('pt-br', br);\nregisterLocale('en-us', us);\n\nconst MapPoint = (props) => {\n const pointList = props.pointList;\n const middleIcon = L.divIcon({\n className: 'custom-icon',\n html: ReactDOMServer.renderToString(
),\n });\n\n if (pointList.length > 0) {\n const positions = pointList.map(point => (\n [point.LATITUDE, point.LONGITUDE]\n ));\n\n const SinglePointToHoC = (\n \n OpenStreetMap contributors\"\n url=\"https://{s}.tile.openstreetmap.org/{z}/{x}/{y}.png\"\n />\n {pointList.map((position, index) => {\n const eventType = position.EVENT ? position.EVENT.substr(0, 1) : '';\n const eventCode = position.EVENT ? position.EVENT.substr(1, 3) : '';\n if (index === 0 || index === pointList.length -1) {\n return (\n \n \n Bateria: {position.BATTERY}\n
Data: {moment(parseInt(position.RCV_TIMESTAMP, 10)).local().format('YYYY-MM-DD HH:mm:ss')}\n
Na base: {position.ON_BASE === '1' ? 'Sim' : 'Não'}\n
Carregando: {position.IS_CHARGING === '1' ? 'Sim' : 'Não'}\n
Localizado por: {position.LOCATION_BY === 'G' ? 'GPS' : 'Wi-Fi'}\n
Sinal: {position.SIGNAL}\n
Evento: {messagesAlarms[props.lang][eventCode]}\n
{position.ADDRESS}\n
\n
\n
\n );\n }\n return (\n \n \n Bateria: {position.BATTERY}\n
Data: {moment(parseInt(position.RCV_TIMESTAMP, 10)).local().format('YYYY-MM-DD HH:mm:ss')}\n
Na base: {position.ON_BASE === '1' ? 'Sim' : 'Não'}\n
No carregador: {position.IS_CHARGING === '1' ? 'Sim' : 'Não'}\n
Localizado por: {position.LOCATION_BY === 'G' ? 'GPS' : 'Wi-Fi'}\n
Sinal: {position.SIGNAL}\n
Evento: {position.EVENT}\n
{position.ADDRESS}\n
\n
\n \n )\n })}\n
\n )\n\n return (\n
\n { }}\n headers={[]}\n minHeight=\"380px\"\n theme=\"#ffffff\"\n />\n \n
\n )\n }\n return (\n } />\n );\n}\n\nconst TrackerClimax = (props) => {\n const [startDate, setStartDate] = useState(moment().locale('pt-br').subtract(1, 'hours').toDate());\n const [endDate, setEndDate] = useState(moment().locale('pt-br').toDate());\n const [pointList, setPointList] = useState([]);\n const [client, setClient] = useState(undefined);\n const [showMap, setShowMap] = useState(false);\n const [showHistory, setShowHistory] = useState(false);\n const [errorMessage, setErrorMessage] = useState('');\n\n useEffect(() => {\n fetchClient(parseInt(props.match.params.clientId, 10));\n }, [props.match.params.clientId]);\n\n useEffect(() => {\n if (client) {\n fetchLatestPoint();\n }\n }, [client])\n\n const fetchClient = (clientId) => {\n axios.get(`https://${getDomain()}${host()}/api/clients/${clientId}/`, {\n headers: { Authorization: `Token ${getToken()}` },\n }).then(res => setClient(Object.assign({}, res.data)))\n .catch(error => console.log(error));\n };\n\n const fetchLatestPoint = () => {\n axios({\n url: `https://${getDomain()}${host()}/api/clients/${client.id}/tracker-iot/last/`,\n method: 'GET',\n responseType: 'json',\n headers: { Authorization: `Token ${getToken()}` },\n }).then((res) => {\n if (res.data.length > 0) {\n setPointList(res.data);\n setErrorMessage('');\n } else {\n const newErrorMessage = 'ESTE DISPOSITIVO NÃO TEM DADOS PARA O DIA DE HOJE, VERIFIQUE A BATERIA DO SEU SISTEMA';\n const errorComponent = ();\n setPointList([]);\n setErrorMessage(errorComponent);\n }\n }).catch((err) => {\n let newErrorMessage = '';\n let errorComponent = {};\n if (err.response.data.imei) {\n newErrorMessage = 'ESTE USUÁRIO NÃO ESTÁ COM O IMEI CADASTRADO.\\n';\n errorComponent = ;\n } else if (err.response.data.noData) {\n newErrorMessage = 'NENHUM PONTO ACHADO PARA ESTE DISPOSITIVO. \\n VERIFIQUE SE ESTE RASTREADOR ESTÁ LIGADO';\n errorComponent = ;\n } else {\n newErrorMessage = 'ERRO INESPERADO';\n errorComponent = ;\n }\n setErrorMessage(errorComponent);\n });\n };\n\n const fetchPoints = () => {\n const startDateString = moment(startDate).format('YYYY-MM-DD');\n const endDateString = moment(endDate).format('YYYY-MM-DD');\n const params = `?start_date=${startDateString}&start_hour=${startDate.getHours()}&end_date=${endDateString}&end_hour=${endDate.getHours()}`;\n if (client) {\n axios({\n url: `https://${getDomain()}${host()}/api/clients/${client.id}/tracker-iot/${params}`,\n method: 'GET',\n responseType: 'json',\n headers: { Authorization: `Token ${getToken()}` },\n }).then((res) => {\n if (res.data.length > 0) {\n setPointList(res.data);\n setErrorMessage('');\n } else {\n const newErrorMessage = 'SEM DADOS PARA AS DATAS ENTRE {startDate} AS {startHour} HORAS E {endDate} AS {endHour} HORAS';\n const errorComponent = ();\n setPointList([]);\n setErrorMessage(errorComponent);\n }\n }).catch(err => console.log(err));\n }\n };\n\n const rotateMap = showMap ? style.rotate : '';\n const rotateHistory = showHistory ? style.rotate : '';\n const fullName = client ? `${client.first_name} ${client.last_name}`.toUpperCase() : '';\n\n return (\n
\n
\n \n {fullName}\n
\n
\n
\n
\n \n
\n {showMap &&\n \n }\n
\n \n
\n {showHistory &&\n
\n
\n \n
\n }\n selected={startDate}\n onChange={(ev) => setStartDate(ev)}\n locale={props.lang === 'pt' ? 'pt-br' : 'en-us'}\n showTimeSelect\n timeFormat=\"HH\"\n timeIntervals={60}\n dateFormat=\"dd/MM/yyyy - HH:00\"\n timeCaption={messages[props.lang]['client.tracker.hour']}\n previousMonthButtonLabel=\"\"\n nextMonthButtonLabel=\"\"\n />\n
\n
\n
\n \n
\n }\n selected={endDate}\n onChange={(ev) => setEndDate(ev)}\n locale={props.lang === 'pt' ? 'pt-br' : 'en-us'}\n showTimeSelect\n timeFormat=\"HH\"\n timeIntervals={60}\n dateFormat=\"dd/MM/yyyy - HH:00\"\n timeCaption={messages[props.lang]['client.tracker.hour']}\n previousMonthButtonLabel=\"\"\n nextMonthButtonLabel=\"\"\n />\n
\n
\n \n
\n }\n
\n
\n
\n )\n}\n\nTrackerClimax.propTypes = {\n clients: PropTypes.arrayOf(\n PropTypes.shape({\n data: PropTypes.arrayOf(\n PropTypes.shape({\n id: PropTypes.number,\n account: PropTypes.string,\n first_name: PropTypes.string,\n last_name: PropTypes.string,\n is_test: PropTypes.boolean,\n equipment_id: PropTypes.number,\n equipment_name: PropTypes.string,\n }),\n ),\n ordering: PropTypes.string,\n }),\n ).isRequired,\n loadClients: PropTypes.func.isRequired,\n lang: PropTypes.string.isRequired,\n}\n\nfunction mapStateToProps(state, ownProps) {\n return {\n clients: state.clients,\n lang: state.locale.lang,\n };\n}\n\nfunction mapDispatchToProps(dispatch) {\n return {\n loadClients: params => dispatch(clientsActions.loadClients(params)),\n };\n}\n\nexport default connect(mapStateToProps, mapDispatchToProps)(TrackerClimax);\n","import React from 'react';\nimport PropTypes from 'prop-types'\nimport { FormattedMessage } from 'react-intl';\nimport SelectInput from '../../../Common/SelectInput2';\nimport CheckboxInput from '../../../Common/CheckboxInput';\n\nimport formStyle from '../../../../css/form.module.scss';\nimport style from './programming.module.scss';\n\nconst TrackerEv07bProgram = ({ programming, setParameters, sendConfiguration}) => (\n
\n {programming &&\n <>\n
\n : \n \n
\n {programming.FALLDOWN_ALERT.enabled &&\n
\n : \n
\n \n
\n
\n }\n
\n \n :\n \n \n
\n {programming.MOTION_ALERT.enabled &&\n <>\n
\n \n :\n \n
\n \n
\n
\n
\n \n :\n \n
\n \n
\n
\n \n }\n
\n : \n \n
\n {programming.NO_MOTION_ALERT.enabled &&\n
\n \n :\n \n
\n \n
\n
\n }\n
\n : \n \n
\n {programming.OVER_SPEED_ALERT.enabled &&\n
\n \n :\n \n
\n \n
\n
\n }\n
\n : \n \n
\n {programming.TILT_ALERT.enabled &&\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\nTrackerEv07bProgram.propTypes = {\n sendConfiguration: PropTypes.func.isRequired,\n programming: PropTypes.shape({\n FALLDOWN_ALERT: PropTypes.shape({\n sensitivity_level: PropTypes.number,\n enabled: PropTypes.bool,\n }),\n MOTION_ALERT: PropTypes.shape({\n movement_activation: PropTypes.number,\n cooldown_period: PropTypes.number,\n enabled: PropTypes.bool,\n }),\n NO_MOTION_ALERT: PropTypes.shape({\n static_period: PropTypes.number,\n enabled: PropTypes.bool,\n }),\n OVER_SPEED_ALERT: PropTypes.shape({\n treshold: PropTypes.number,\n enabled: PropTypes.bool,\n }),\n TILT_ALERT: PropTypes.shape({\n angle_treshold: PropTypes.number,\n time_treshold: PropTypes.number,\n enabled: PropTypes.bool,\n })\n }).isRequired,\n};\n\nexport default TrackerEv07bProgram;\n","import React, { useState, useEffect, useCallback, useMemo } from 'react';\nimport PropTypes from 'prop-types';\nimport { connect } from 'react-redux';\nimport { FormattedMessage } from 'react-intl';\nimport { GoogleMap, useJsApiLoader, Marker, Circle } from '@react-google-maps/api';\nimport { StandaloneSearchBox } from 'react-google-maps/lib/components/places/StandaloneSearchBox';\nimport { ev07bGeoFenceMode } from '../../../../BLL/dictionary';\nimport SelectInput from '../../../Common/SelectInput2';\nimport ToggleButton from '../../../Common/ToggleButton';\nimport messages from '../../../../BLL/locale/messages';\nimport config from '../../../../BLL/config';\n\nimport formStyle from '../../../../css/form.module.scss';\nimport style from './geofence.module.scss';\nimport '../../../../css/block.scss';\n\nconst MapComponent = ({geofenceList, openedGeofence, handleMapClick}) => {\n const geofence = geofenceList.find(geo => geo.index === openedGeofence);\n const geoPoint = geofence?.point_list[0];\n const modeColor = geofence?.direction === '0' ? '#a10c0c' : '#187e25b3'\n const { isLoaded } = useJsApiLoader({\n id: 'google-map-script',\n googleMapsApiKey: config.googleMapsApiKey\n });\n const [map, setMap] = useState(null);\n const center = useMemo(() => {\n if (geoPoint) {\n return ({\n lat: parseFloat(geoPoint.lat),\n lng: parseFloat(geoPoint.lng),\n })\n }\n }, [geoPoint]);\n\n const onLoad = useCallback((map) => {\n setMap(map);\n }, []);\n\n const onUnmount = useCallback((map) => {\n setMap(null);\n }, []);\n\n if (!isLoaded) {\n return <>\n }\n\n return (\n handleMapClick(ev, openedGeofence)}\n >\n {geofence?.enabled &&\n
\n \n \n
\n }\n \n );\n}\n\nconst GeofenceMenu = ({ geofence, setParameters, handleToggle, setPlacesLatLng, lang, saveGeofences }) => {\n const [searchbox, setSearchbox] = useState({});\n const [places, setPlaces] = useState({});\n\n const onSearchboxMounted = (ref) => {\n setSearchbox(ref);\n };\n\n const onPlacesChanged = () => {\n const newPlaces = searchbox.getPlaces();\n setPlaces(newPlaces);\n const points = {\n lat: newPlaces[0].geometry.location.lat(),\n lng: newPlaces[0].geometry.location.lng()\n }\n setPlacesLatLng(geofence.index, points);\n };\n\n const setSearchboxLatLng = (ev) => {\n if (ev.charCode === 13 || ev.keyCode === 13) {\n const points = {\n lat: places[0].geometry.location.lat(),\n lng: places[0].geometry.location.lng()\n }\n setPlacesLatLng(geofence.index, points);\n }\n };\n\n return (\n
\n
\n
\n :\n handleToggle(geofence.index)}\n />\n
\n\n
\n
\n
:
\n
\n \n
\n
\n
\n
\n \n \n \n
\n
\n
\n : {geofence.radius} \n
\n \n
\n
\n
\n \n \n \n \n
\n
\n )\n\n}\n\nconst TrackerEv07bGeofence = (props) => {\n const [openedGeofence, setOpenedGeofence] = useState(0);\n const [geofenceList, setGeoList] = useState([]);\n\n useEffect(() => {\n if (props.geoList.length > 0) {\n setGeoList(props.geoList);\n }\n }, [props.geoList]);\n\n if (geofenceList.length === 0) {\n return (\n
\n Carregando\n
\n )\n }\n\n const setParameters = (ev) => {\n const name = ev.target.name.split('.')[0];\n const index = parseInt(ev.target.name.split('.')[1], 10);\n let geofence = geofenceList.find(geo => geo.index === index);\n switch (name) {\n case 'direction':\n const value = ev.target.value;\n if (value === '-1') {\n geofence[name] = '0';\n geofence.enabled = false;\n } else {\n geofence[name] = value;\n geofence.enabled = true;\n }\n break;\n case 'radius':\n geofence.radius = parseInt(ev.target.value, 10);\n break;\n default:\n geofence[name] = ev.target.value;\n break;\n }\n const newGeoList = geofenceList.map(geo => {\n return geo.index === index ? geofence : geo\n });\n setGeoList(newGeoList);\n };\n\n const handleToggle = (index) => {\n let geofence = geofenceList.find(geo => geo.index === index);\n geofence.enabled = !geofence.enabled;\n const newGeoList = geofenceList.map(geo => {\n return geo.index === index ? geofence : geo\n });\n setGeoList(newGeoList);\n };\n\n const handleMapClick = (ev, index) => {\n let geofence = geofenceList.find(geo => geo.index === index);\n const lat = ev.latLng.lat();\n const lng = ev.latLng.lng();\n geofence.point_list = [{ lat, lng }];\n const newGeoList = geofenceList.map(geo => {\n return geo.index === index ? geofence : geo\n });\n setGeoList(newGeoList);\n };\n\n const setPlacesLatLng = (index, points) => {\n let geofence = geofenceList.find(geo => geo.index === index);\n geofence.point_list = [{ lat: points.lat, lng: points.lng }];\n const newGeoList = geofenceList.map(geo => {\n return geo.index === index ? geofence : geo\n });\n setGeoList(newGeoList);\n }\n\n const saveGeofences = () => {\n const data = {\n IMEI: props.imei,\n SET_GEOFENCE: true,\n GEO_ALERT: geofenceList\n };\n props.sendConfiguration(data);\n };\n\n console.log(geofenceList);\n\n return (\n
\n
\n {geofenceList.map(geofence => \n
\n \n {openedGeofence === geofence.index &&\n \n }\n
\n )}\n
\n \n\n
\n )\n};\n\nTrackerEv07bGeofence.propTypes = {\n sendConfiguration: PropTypes.func.isRequired,\n imei: PropTypes.string.isRequired,\n geoList: PropTypes.arrayOf(\n PropTypes.shape({\n index: PropTypes.number,\n type: PropTypes.string,\n radius: PropTypes.number,\n enabled: PropTypes.bool,\n points: PropTypes.number,\n direction: PropTypes.string,\n point_list: PropTypes.arrayOf(\n PropTypes.shape({\n lat: PropTypes.number,\n lng: PropTypes.number,\n }),\n ),\n }),\n ).isRequired,\n};\n\nfunction mapStateToProps(state, ownProps) {\n return {\n lang: state.locale.lang,\n };\n};\n\nexport default connect(mapStateToProps)(TrackerEv07bGeofence);\n","import React, { useState, useEffect } from 'react';\nimport PropTypes from 'prop-types';\nimport { FormattedMessage } from 'react-intl';\nimport { ev07bAlarmClockAudio } from '../../../../BLL/dictionary';\nimport CheckboxInput from '../../../Common/CheckboxInput';\nimport SelectInput from '../../../Common/SelectInput2';\nimport ToggleButton from '../../../Common/ToggleButton';\n\nimport formStyle from '../../../../css/form.module.scss';\nimport style from './alarmClock.module.scss';\n\nconst TrackerEv07bAlarmClock = (props) => {\n const [openedAlarmClock, setOpenedAlarmClock] = useState(0);\n const [alarmClockList, setAlarmClockList] = useState([]);\n\n useEffect(() => {\n if (props.alarmClockList?.length > 0) {\n setAlarmClockList(props.alarmClockList);\n }\n }, [props.alarmClockList]);\n\n if (alarmClockList.length === 0) {\n return (\n
\n Carregando\n
\n );\n }\n\n const setParameters = (ev) => {\n const name = ev.target.name.split('.')[0];\n const index = parseInt(ev.target.name.split('.')[1], 10);\n let alarmClock = alarmClockList.find(alm => alm.index === index);\n alarmClock[name] = ev.target.value;\n const newAlarmClockList = alarmClockList.map(alm => {\n return alm.index === index ? alarmClock : alm\n });\n setAlarmClockList(newAlarmClockList);\n };\n\n const setDays = (ev) => {\n const day = ev.target.name.split('.')[0];\n const index = parseInt(ev.target.name.split('.')[1], 10);\n let alarmClock = alarmClockList.find(alm => alm.index === index);\n alarmClock.days[day] = ev.target.value;\n const newAlarmClockList = alarmClockList.map(alm => {\n return alm.index === index ? alarmClock : alm\n });\n setAlarmClockList(newAlarmClockList);\n }\n\n const handleToggle = (index) => {\n let alarmClock = alarmClockList.find(rem => rem.index === index);\n alarmClock.enabled = !alarmClock.enabled;\n const newAlarmClockList = alarmClockList.map(geo => {\n return geo.index === index ? alarmClock : geo\n });\n setAlarmClockList(newAlarmClockList);\n };\n\n const saveAlarmClock = () => {\n const data = {\n IMEI: props.imei,\n SET_ALARM_CLOCK: true,\n ALARM_CLOCK: alarmClockList\n };\n props.sendConfiguration(data);\n };\n\n return (\n
\n {alarmClockList.map(alarmClock =>\n
\n \n {openedAlarmClock === alarmClock.index &&\n
\n
\n
\n \n :\n \n
\n handleToggle(alarmClock.index)}\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 \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 \n
\n
\n
\n
\n \n
\n
\n\n }\n
\n )}\n
\n )\n}\n\nTrackerEv07bAlarmClock.propTypes = {\n sendConfiguration: PropTypes.func.isRequired,\n imei: PropTypes.string.isRequired,\n alarmClockList: PropTypes.arrayOf(\n PropTypes.shape({\n index: PropTypes.number,\n ring_time: PropTypes.oneOfType([PropTypes.string, PropTypes.number]),\n ring_audio: PropTypes.number,\n time: PropTypes.string,\n enabled: PropTypes.bool,\n days: PropTypes.shape({\n mon: PropTypes.bool,\n tue: PropTypes.bool,\n wed: PropTypes.bool,\n thu: PropTypes.bool,\n fri: PropTypes.bool,\n sat: PropTypes.bool,\n sun: PropTypes.bool,\n }),\n }),\n ).isRequired,\n};\n\nexport default TrackerEv07bAlarmClock;\n","import React, { useState, useEffect } from 'react';\nimport ReactDOMServer from 'react-dom/server';\nimport PropTypes from 'prop-types';\nimport { FormattedMessage } from 'react-intl';\nimport { connect } from 'react-redux';\nimport DatePicker, { registerLocale } from 'react-datepicker';\nimport moment from 'moment';\nimport axios from 'axios';\nimport L from 'leaflet';\nimport { Map, TileLayer, Marker, Popup } from 'react-leaflet';\nimport br from 'date-fns/locale/pt-BR';\nimport us from 'date-fns/locale/en-US';\nimport { host, getDomain, getToken } from '../../../../BLL/environment';\nimport CustomModal from '../../../Modal/CustomModal';\nimport CustomCardHOC from '../../../Cards/CustomCardHOC';\nimport CustomDatePickerInput from '../../../Common/CustomDatePickerInput';\nimport Loading from '../../../../icons/Loading';\nimport Order from '../../../../icons/Order';\nimport messages from '../../../../BLL/locale/messages';\nimport MapPoint from './TrackerMapPoint';\n\nimport ProgrammingComponent from './TrackerEv07bProgram';\nimport GeofenceComponent from './TrackerEv07bGeofence';\nimport AlarmClockComponent from './TrackerEv07bAlarmClock';\n\nimport style from './tracker.module.scss';\nimport '../../../../css/middle.scss';\nimport './stylesheets/datepicker-cssmodules.scss';\nimport { useSelector } from 'react-redux';\n\nregisterLocale('pt-br', br);\nregisterLocale('en-us', us);\n\nconst TrackerEV07B = (props) => {\n const { equipmentList } = useSelector(state => ({\n equipmentList: state.equipment[0]?.data\n }));\n\n const [client, setClient] = useState(undefined);\n const [clientEquipment, setClientEquipment] = useState({});\n const [pointList, setPointList] = useState([]);\n const [programming, setProgramming] = useState({});\n const [generalDataList, setGeneralData] = useState([]);\n const [startDate, setStartDate] = useState(moment().locale('pt-br').subtract(1, 'hours').toDate());\n const [endDate, setEndDate] = useState(moment().locale('pt-br').toDate());\n const [showMap, setShowMap] = useState(false);\n const [showHistory, setShowHistory] = useState(false);\n const [showProgramming, setShowProgramming] = useState(false);\n const [showAlarmClock, setShowAlarmClock] = useState(false);\n const [showGeofence, setShowGeofence] = useState(false);\n const [disableProgramming, setDisableProgramming] = useState(true);\n const [showConfirmationModal, setShowConfirmationModal] = useState(false);\n const [errorMessage, setErrorMessage] = useState('');\n\n useEffect(() => {\n fetchClient(parseInt(props.match.params.clientId, 10));\n }, [props.match.params.clientId]);\n\n useEffect(() => {\n if (client) {\n fetchLatestPoint();\n fetchLatestGeneralData();\n fetchParams();\n }\n }, [client]);\n\n useEffect(() => {\n if(client && equipmentList.length > 0) {\n // equipmentList.find(equipment => equipment.name.toLowerCase() === 'pers4200').id\n setClientEquipment(equipmentList.find(eq => eq.id === client.equipment_id));\n }\n }, [client, equipmentList]);\n\n const fetchClient = (clientId) => {\n axios.get(`https://${getDomain()}${host()}/api/clients/${clientId}/`, {\n headers: { Authorization: `Token ${getToken()}` },\n }).then(res => setClient(Object.assign({}, res.data)))\n .catch(error => console.log(error));\n };\n\n const fetchLatestPoint = () => {\n axios({\n url: `https://${getDomain()}${host()}/api/clients/${client.id}/tracker-iot/last/`,\n method: 'GET',\n responseType: 'json',\n headers: { Authorization: `Token ${getToken()}` },\n }).then((res) => {\n console.log(res);\n if (res?.data?.length > 0) {\n setPointList(res.data);\n setErrorMessage('');\n } else {\n const newErrorMessage = 'ESTE DISPOSITIVO NÃO TEM DADOS PARA O DIA DE HOJE, VERIFIQUE A BATERIA DO SEU SISTEMA';\n const errorComponent = ();\n setPointList([]);\n setErrorMessage(errorComponent);\n }\n }).catch((err) => {\n console.log('AQUIIIIEEE' ,err);\n let newErrorMessage = '';\n let errorComponent = {};\n if (err.response.data.imei) {\n newErrorMessage = 'ESTE USUÁRIO NÃO ESTÁ COM O IMEI CADASTRADO.\\n';\n errorComponent = ;\n } else if (err.response.data.noData) {\n newErrorMessage = 'NENHUM PONTO ACHADO PARA ESTE DISPOSITIVO. \\n VERIFIQUE SE ESTE RASTREADOR ESTÁ LIGADO';\n errorComponent = ;\n } else {\n newErrorMessage = 'ERRO INESPERADO';\n errorComponent = ;\n }\n setErrorMessage(errorComponent);\n });\n };\n\n const fetchPoints = () => {\n const startDateString = moment(startDate).format('YYYY-MM-DD');\n const endDateString = moment(endDate).format('YYYY-MM-DD');\n const params = `?start_date=${startDateString}&start_hour=${startDate.getHours()}&end_date=${endDateString}&end_hour=${endDate.getHours()}`;\n if (client) {\n axios({\n url: `https://${getDomain()}${host()}/api/clients/${client.id}/tracker-iot/${params}`,\n method: 'GET',\n responseType: 'json',\n headers: { Authorization: `Token ${getToken()}` },\n }).then((res) => {\n if (res.data.length > 0) {\n setPointList(res.data);\n setErrorMessage('');\n } else {\n const newErrorMessage = 'SEM DADOS PARA AS DATAS ENTRE {startDate} AS {startHour} HORAS E {endDate} AS {endHour} HORAS';\n const errorComponent = ();\n setPointList([]);\n setErrorMessage(errorComponent);\n }\n }).catch(err => console.log(err));\n }\n };\n\n const fetchParams = () => {\n axios.get(`https://${getDomain()}${host()}/api/clients/${client.id}/tracker-iot/program/`, {\n headers: { Authorization: `Token ${getToken()}` },\n }).then(res => {\n if (res.data.length > 0) {\n setDisableProgramming(false);\n setProgramming(res.data[0]);\n }\n }).catch(err => {\n console.log(err);\n })\n };\n\n const fetchLatestGeneralData = () => {\n axios.get(`https://${getDomain()}${host()}/api/clients/${client.id}/tracker/general-data/last/`, {\n headers: { Authorization: `Token ${getToken()}` },\n }).then(res => setGeneralData(res.data))\n .catch(error => console.log(error));\n };\n\n const sendConfiguration = (program) => {\n if (client) {\n axios({\n url: `https://${getDomain()}${host()}/api/clients/${client.id}/tracker-iot/ev07b/program/`,\n method: 'POST',\n responseType: 'json',\n data: program,\n headers: { Authorization: `Token ${getToken()}` },\n }).then((res) => {\n console.log(res)\n if (res.status === 200) {\n setShowConfirmationModal(true);\n }\n }).catch(err => console.log(err));\n }\n };\n\n const setParameters = (event) => {\n const { name, value } = event.target;\n const option = name.split('.')[0];\n const optionProperty = name.split('.')[1];\n let programObject = programming[option];\n programObject[optionProperty] = value;\n\n setProgramming(prevState => ({\n ...prevState,\n [option]: Object.assign({}, programObject)\n }));\n };\n\n const sendSingleLocate = () => {\n const data = {\n IMEI: programming.IMEI,\n SEND_SINGLE_LOCATE: true,\n };\n sendConfiguration(data)\n };\n\n const sentContinuousLocate = () => {\n const data = {\n IMEI: programming.IMEI,\n SEND_CONTINUOUS_LOCATE: true,\n };\n sendConfiguration(data)\n }\n\n const canProgram = props.loggedAttendantGroup !== 3;\n const rotateProgram = showProgramming ? style.rotate : '';\n const rotateAlarmClock = showAlarmClock ? style.rotate : '';\n const rotateGeofence = showGeofence ? style.rotate : '';\n const rotateMap = showMap ? style.rotate : '';\n const rotateHistory = showHistory ? style.rotate : '';\n const fullName = client ? `${client.first_name} ${client.last_name}`.toUpperCase() : '';\n return (\n <>\n
\n }\n btnText=\"OK\"\n btnAction={() => setShowConfirmationModal(false)}\n />\n
\n
\n
\n \n {fullName}\n
\n
\n
\n
\n \n
\n {showMap &&\n \n }\n
\n \n
\n {showHistory &&\n
\n
\n \n
\n }\n selected={startDate}\n onChange={(ev) => setStartDate(ev)}\n locale={props.lang === 'pt' ? 'pt-br' : 'en-us'}\n showTimeSelect\n timeFormat=\"HH\"\n timeIntervals={60}\n dateFormat=\"dd/MM/yyyy - HH:00\"\n timeCaption={messages[props.lang]['client.tracker.hour']}\n previousMonthButtonLabel=\"\"\n nextMonthButtonLabel=\"\"\n />\n
\n
\n
\n \n
\n }\n selected={endDate}\n onChange={(ev) => setEndDate(ev)}\n locale={props.lang === 'pt' ? 'pt-br' : 'en-us'}\n showTimeSelect\n timeFormat=\"HH\"\n timeIntervals={60}\n dateFormat=\"dd/MM/yyyy - HH:00\"\n timeCaption={messages[props.lang]['client.tracker.hour']}\n previousMonthButtonLabel=\"\"\n nextMonthButtonLabel=\"\"\n />\n
\n
\n \n
\n }\n {canProgram &&\n
\n setShowProgramming(!showProgramming)}\n disabled={disableProgramming}\n >\n \n \n \n
\n }\n {showProgramming &&\n \n }\n {canProgram &&\n
\n setShowAlarmClock(!showAlarmClock)}\n disabled={disableProgramming}\n >\n \n \n \n
\n }\n {showAlarmClock &&\n \n }\n {canProgram &&\n
\n setShowGeofence(!showGeofence)}\n disabled={disableProgramming}\n >\n \n \n \n
\n }\n {showGeofence &&\n \n\n }\n
\n
\n
\n \n )\n};\n\nTrackerEV07B.propTypes = {\n loggedAttendantGroup: PropTypes.number.isRequired,\n lang: PropTypes.string.isRequired,\n};\n\nfunction mapStateToProps(state, ownProps) {\n return {\n lang: state.locale.lang,\n loggedAttendantGroup: state.loggedAttendant.groups[0],\n };\n}\n\nexport default connect(mapStateToProps)(TrackerEV07B);\n","import React, { useState } from 'react';\nimport { connect } from 'react-redux';\nimport { FormattedMessage } from 'react-intl';\nimport moment from 'moment';\nimport style from './history.module.scss';\nimport { historyActionType } from '../../../../BLL/dictionary';\n\nexport function ClientChangedRow(props) {\n const [expanded, expandInfo] = useState(false);\n const rowClient = props.log.client;\n const nextClient = props.index === props.array.length -1 ? {} : props.array[props.index + 1].client;\n const client = Object.assign({}, rowClient, {\n account: nextClient.account === rowClient.account ? '' : rowClient.account,\n firstName: nextClient.firstName === rowClient.firstName ? '' : rowClient.firstName,\n lastName: nextClient.lastName === rowClient.lastName ? '' : rowClient.lastName,\n isTest: nextClient.isTest === rowClient.isTest ? undefined : rowClient.isTest,\n street: nextClient.street === rowClient.street ? '' : rowClient.street,\n number: nextClient.number === rowClient.number ? '' : rowClient.number,\n district: nextClient.district === rowClient.district ? '' : rowClient.district,\n complement: nextClient.complement === rowClient.complement ? '' : rowClient.complement,\n zipCode: nextClient.zipCode === rowClient.zipCode ? '' : rowClient.zipCode,\n city: nextClient.city === rowClient.city ? '' : rowClient.city,\n state: nextClient.state === rowClient.state ? '' : rowClient.state,\n cpf: nextClient.cpf === rowClient.cpf ? '' : rowClient.cpf,\n rg: nextClient.rg === rowClient.rg ? '' : rowClient.rg,\n birthdate: nextClient.birthdate === rowClient.birthdate ? '' : rowClient.birthdate,\n accountPhone: nextClient.accountPhone === rowClient.accountPhone ? '' : rowClient.accountPhone,\n contactPhone: nextClient.contactPhone === rowClient.contactPhone ? '' : rowClient.contactPhone,\n keybox: nextClient.keyBox === rowClient.keyBox ? '' : rowClient.keyBox,\n healthPlan: nextClient.healthPlan === rowClient.healthPlan ? '' : rowClient.healthPlan,\n generalInfo: nextClient.generalInfo === rowClient.generalInfo ? '' : rowClient.generalInfo,\n hospital: nextClient.hospital === rowClient.hospital ? '' : rowClient.hospital,\n gender: nextClient.gender === rowClient.gender ? '' : rowClient.gender,\n limitations: nextClient.limitations === rowClient.limitations ? '' : rowClient.limitations,\n medications: nextClient.medications === rowClient.medications ? '' : rowClient.medications,\n removalPlan: nextClient.removalPlan === rowClient.removalPlan ? '' : rowClient.removalPlan,\n imei: nextClient.imei === rowClient.imei ? '' : rowClient.imei,\n equipmentId: nextClient.equipmentId === rowClient.equipmentId ? undefined : rowClient.equipmentId,\n groupId: nextClient.groupId === rowClient.groupId ? undefined : rowClient.groupId,\n });\n let actionType = '';\n if (client.isDeleted && !nextClient.isDeleted) {\n actionType = 'Inativação';\n } else if (!client.isDeleted && nextClient.isDeleted) {\n actionType = 'Reativação';\n } else {\n actionType = historyActionType(props.log.actionType)\n }\n\n console.log(rowClient);\n console.log(nextClient);\n\n return (\n
\n
\n
\n {actionType}\n
\n
{moment(props.log.actionDate).format('DD/MM/YYYY HH:mm:ss')}
\n
\n {props.log.actionUser ? props.log.actionUser.firstName : ''} {props.log.actionUser ? props.log.actionUser.lastName : 'Contactto Vendas'}\n
\n
\n \n
\n
\n
\n {client.account &&\n
\n \n :\n \n {client.account}\n
\n }\n {client.isTest !== undefined &&\n
\n \n :\n \n \n {client.isTest\n ? \n : \n }\n \n
\n }\n {client.firstName &&\n
\n \n :\n \n {client.firstName}\n
\n }\n {client.lastName &&\n
\n \n :\n \n {client.lastName}\n
\n }\n {client.cpf &&\n
\n CPF:\n {client.cpf}\n
\n }\n {client.rg &&\n
\n RG:\n {client.rg}\n
\n }\n {client.birthdate &&\n
\n \n :\n \n {client.birthdate}\n
\n }\n {client.keybox &&\n
\n Keybox:\n {client.keybox}\n
\n }\n {client.imei &&\n
\n IMEI:\n {client.imei}\n
\n }\n {client.generalInfo &&\n
\n \n :\n \n {client.generalInfo}\n
\n }\n {client.healthPlan &&\n
\n \n :\n \n {client.healthPlan}\n
\n }\n {client.hospital &&\n
\n Hospital:\n {client.hospital}\n
\n }\n {client.limitations &&\n
\n \n :\n \n {client.limitations}\n
\n }\n {client.medications &&\n
\n \n :\n \n {client.medications}\n
\n }\n {client.removalPlan &&\n
\n \n :\n \n {client.removalPlan}\n
\n }\n {client.street &&\n
\n \n :\n \n {client.street}\n
\n }\n {client.number &&\n
\n \n :\n \n {client.number}\n
\n }\n {client.complement &&\n
\n \n :\n \n {client.complement}\n
\n }\n {client.district &&\n
\n \n :\n \n {client.district}\n
\n }\n {client.zipCode &&\n
\n \n :\n \n {client.zipCode}\n
\n }\n {client.city &&\n
\n \n :\n \n {client.city}\n
\n }\n {client.state &&\n
\n \n :\n \n {client.state}\n
\n }\n {client.accountPhone &&\n
\n \n :\n \n {client.accountPhone}\n
\n }\n {client.contactPhone &&\n
\n \n :\n \n {client.contactPhone}\n
\n }\n {client.equipmentId && props.equipment.length > 0 &&\n
\n \n :\n \n {props.equipment.find((eq) => eq.id === client.equipmentId).name}\n
\n }\n {client.groupId && props.companies.length > 0 &&\n
\n \n :\n \n {props.companies.find((comp) => comp.id === client.groupId)?.name}\n
\n }\n
\n
\n );\n}\n\nfunction mapStateToProps(state) {\n return {\n equipment: state.equipment.length > 0 ? state.equipment[0].data : [],\n companies: state.groups.filter(grp => ![1, 2, 3, 4].includes(grp.id)),\n };\n}\n\nexport default connect(mapStateToProps)(ClientChangedRow);\n","import React from 'react';\nimport PropTypes from 'prop-types';\nimport { FormattedMessage } from 'react-intl';\nimport { Query } from 'react-apollo';\nimport gql from 'graphql-tag';\nimport Loading from '../../../../icons/Loading';\nimport RenderClientChangedRow from './ClientChangedRow';\nimport style from './history.module.scss';\n\nconst history = gql`\n query($token: String!, $clientId: Int!, $offset: Int) {\n clientHistory(token: $token, clientId: $clientId, offset: $offset) {\n historyId\n actionDate\n actionType\n actionUser {\n id\n firstName\n lastName\n }\n client {\n account\n firstName\n lastName\n isTest\n street\n number\n district\n complement\n zipCode\n city\n state\n cpf\n rg\n birthdate\n accountPhone\n contactPhone\n keyBox\n healthPlan\n generalInfo\n hospital\n gender\n limitations\n medications\n removalPlan\n imei\n equipmentId\n groupId\n isDeleted\n }\n }\n }\n`;\n\nconst RenderClientHistory = ({ clientId }) => {\n let stopFetching = false;\n return (\n \n {({ loading, error, data, fetchMore }) => {\n if (error) return `Error ${error}`;\n return (\n
\n
\n
\n \n
\n
\n
\n \n
\n
\n
\n {\n const doc = document.getElementById('table-body');\n if ((doc.scrollTop + doc.offsetHeight) >= doc.scrollHeight) {\n if (data.clientHistory && !loading && !stopFetching) {\n fetchMore({\n variables: { offset: data.clientHistory.length },\n updateQuery: (prev, { fetchMoreResult }) => {\n if (fetchMoreResult.clientHistory\n && fetchMoreResult.clientHistory.length === 0) {\n stopFetching = true;\n return prev;\n }\n return Object.assign({}, prev, {\n clientHistory: [...prev.clientHistory, ...fetchMoreResult.clientHistory],\n });\n },\n });\n }\n }\n }}\n >\n {data && data.clientHistory && data.clientHistory\n .map((log, index, array) => (\n ))\n }\n {loading && } />}\n
\n
\n );\n }}\n
\n );\n};\n\nRenderClientHistory.propTypes = {\n clientId: PropTypes.string.isRequired,\n};\n\nexport default RenderClientHistory;\n","import React, { useState } from 'react';\nimport { FormattedMessage } from 'react-intl';\nimport moment from 'moment';\nimport style from './history.module.scss';\nimport { historyActionType } from '../../../../BLL/dictionary';\n\n\nexport default function ContactChangedRow(props) {\n const [expanded, expandInfo] = useState(false);\n const rowContact = props.log.contact;\n const nextContact = props.index === props.array.length -1 ? {} : props.array[props.index + 1].contact;\n const phones = props.log.phone.length > 0 ? props.log.phone : []\n const nextPhoneList = props.index === props.array.length -1 ? [] : props.array[props.index + 1].phone;\n const rowActions = props.log.actions.length > 0 ? props.log.actions : [];\n const nextActions = props.index === props.array.length -1 ? [] : props.array[props.index + 1].actions;\n const actions = rowActions.map((action) => {\n const nextAction = nextActions.find((item) => item.priority === action.priority);\n if (!nextAction) {\n return {\n priority: action.priority,\n receiveSms: action.receiveSms,\n receiveEmail: action.receiveEmail,\n receiveTelegram: action.receiveTelegram\n }\n }\n return {\n priority: action.priority,\n receiveSms: action.receiveSms === nextAction.receiveSms ? undefined : action.receiveSms,\n receiveEmail: action.receiveEmail === nextAction.receiveEmail ? undefined : action.receiveEmail,\n receiveTelegram: action.receiveTelegram === nextAction.receiveTelegram ? undefined : action.receiveTelegram\n }\n });\n const contact = Object.assign({}, rowContact, {\n firstName: nextContact.firstName === rowContact.firstName ? '' : rowContact.firstName,\n lastName: nextContact.lastName === rowContact.lastName ? '' : rowContact.lastName,\n relationship: nextContact.relationship === rowContact.relationship ? '' : rowContact.relationship,\n priority: nextContact.priority === rowContact.priority ? '' : rowContact.priority,\n email: nextContact.email === rowContact.email ? '' : rowContact.email,\n hasKeys: nextContact.hasKeys === rowContact.hasKeys ? undefined : rowContact.hasKeys,\n isContractor: nextContact.isContractor === rowContact.isContractor ? undefined : rowContact.isContractor,\n zipCode: nextContact.zipCode === rowContact.zipCode ? '' : rowContact.zipCode,\n street: nextContact.street === rowContact.street ? '' : rowContact.street,\n number: nextContact.number === rowContact.number ? undefined : rowContact.number,\n complement: nextContact.complement === rowContact.complement ? '' : rowContact.complement,\n district: nextContact.district === rowContact.district ? '' : rowContact.district,\n city: nextContact.city === rowContact.city ? '' : rowContact.city,\n state: nextContact.state === rowContact.state ? '' : rowContact.state,\n });\n\n const rowPhoneHasEqual = phones.every((pho1) =>\n nextPhoneList.some((pho2) =>\n pho1['phone'] === pho2['phone'] && pho1['phoneType'] === pho2['phoneType']\n )\n );\n\n const rowActionsHasEqual = rowActions.every((act1) => \n nextActions.some((act2) =>\n act1['priority'] === act2['priority'] &&\n act1['receiveEmail'] === act2['receiveEmail'] && act1['receiveSms'] === act2['receiveSms']\n )\n );\n\n const rowContactHasEqual = JSON.stringify(rowContact) === JSON.stringify(nextContact);\n\n if (rowContactHasEqual && rowActionsHasEqual && rowPhoneHasEqual) {\n return (<>);\n }\n\n let actionType = '';\n if (contact.isDeleted && !nextContact.isDeleted) {\n actionType = 'Inativação'\n } else if (!contact.isDeleted && nextContact.isDeleted) {\n actionType = 'Reativação'\n } else {\n actionType = historyActionType(props.log.actionType)\n }\n return (\n
\n
\n
\n {actionType}\n
\n
{moment(props.log.actionDate).format('DD/MM/YYYY HH:mm:ss')}
\n
\n {props.log.actionUser ? props.log.actionUser.firstName : ''} {props.log.actionUser ? props.log.actionUser.lastName : 'Contactto Vendas'}\n
\n
\n \n
\n
\n
\n {contact.firstName &&\n
\n Nome:\n {contact.firstName}\n
\n }\n {contact.lastName &&\n
\n Sobrenome:\n {contact.lastName}\n
\n }\n {contact.relationship &&\n
\n Relação:\n {contact.relationship}\n
\n }\n {contact.priority &&\n
\n Prioridade:\n {contact.priority}\n
\n }\n {contact.email &&\n
\n Email:\n {contact.email}\n
\n }\n {contact.hasKeys !== undefined &&\n
\n Possui Chaves:\n \n {contact.hasKeys\n ? \n : \n }\n \n
\n }\n {contact.isContractor !== undefined &&\n
\n Contratante:\n \n {contact.isContractor\n ? \n : \n }\n \n
\n }\n {contact.street &&\n
\n Logradouro:\n {contact.street}\n
\n }\n {contact.number && contact.number !== 0 &&\n
\n Número:\n {contact.number}\n
\n }\n {contact.complement &&\n
\n Complemento:\n {contact.complement}\n
\n }\n {contact.district &&\n
\n Bairro:\n {contact.district}\n
\n }\n {contact.zipCode &&\n
\n CEP:\n {contact.zipCode}\n
\n }\n {contact.city &&\n
\n Cidade:\n {contact.city}\n
\n }\n {contact.state &&\n
\n Estado:\n {contact.state}\n
\n }\n
\n {phones.map((item) => (\n
\n {item.actionType !== 'changed' &&\n
\n
\n Número:\n {item.phone}\n
\n
\n Tipo:\n {item.phoneType}\n
\n
\n }\n
\n ))}\n
\n {actions\n .filter((item) => item.receiveEmail !== undefined || item.receiveSms !== undefined)\n .map((item) => (\n
\n
\n Prioridade:\n {item.priority}\n
\n {item.receiveEmail !== undefined ?\n
\n Recebe Email:\n \n {item.receiveEmail\n ? \n : \n }\n \n
\n :\n
-
\n }\n {item.receiveSms !== undefined ?\n
\n Recebe Sms:\n \n {item.receiveSms\n ? \n : \n }\n \n
\n :\n
-
\n }\n
\n ))}\n
\n
\n )\n};\n","import React from 'react';\nimport PropTypes from 'prop-types';\nimport { FormattedMessage } from 'react-intl';\nimport { Query } from 'react-apollo';\nimport gql from 'graphql-tag';\nimport Loading from '../../../../icons/Loading';\nimport RenderContactChangedRow from './ContactChangedRow';\nimport messages from '../../../../BLL/locale/messages';\nimport style from './history.module.scss';\n\nconst history = gql`\n query($token: String!, $contactId: Int!, $offset: Int) {\n contactHistory(token: $token, contactId: $contactId, offset: $offset) {\n historyId\n actionDate\n actionType\n contact {\n firstName\n lastName\n street\n number\n district\n complement\n zipCode\n city\n state\n relationship\n priority\n hasKeys\n isContractor\n email\n isDeleted\n }\n phone {\n historyId\n phoneType\n phone\n actionType\n }\n actions {\n historyId\n priority\n receiveSms\n receiveEmail\n receiveTelegram\n actionType\n }\n actionUser {\n id\n firstName\n lastName\n }\n }\n }\n`;\n\nconst allContacts = gql`\n query($token: String!, $clientId: Int!) {\n allContacts(token: $token, clientId: $clientId) {\n id\n firstName\n lastName\n isDeleted\n }\n }\n`;\n\nconst RenderSingleContact = ({ contactId }) => {\n let offset = 0;\n let stopFetching = false;\n return (\n \n {({ loading, error, data, fetchMore }) => {\n if (error) return `Error ${error}`;\n return (\n
\n
\n
\n \n
\n
Data
\n
\n \n
\n
\n
\n {\n const doc = document.getElementById('table-body');\n if ((doc.scrollTop + doc.offsetHeight) >= doc.scrollHeight) {\n if (data.contactHistory && !loading && !stopFetching) {\n offset += 20;\n fetchMore({\n variables: { offset },\n updateQuery: (prev, { fetchMoreResult }) => {\n if (fetchMoreResult.contactHistory\n && fetchMoreResult.contactHistory.length === 0) {\n stopFetching = true;\n return prev;\n }\n return Object.assign({}, prev, {\n contactHistory: [\n ...prev.contactHistory,\n ...fetchMoreResult.contactHistory,\n ],\n });\n },\n });\n }\n }\n }}\n >\n {data && data.contactHistory && data.contactHistory\n .map((log, index, array) => (\n ))\n }\n {loading && } />}\n
\n
\n );\n }}\n
\n );\n};\n\nRenderSingleContact.propTypes = {\n contactId: PropTypes.string.isRequired,\n};\n\nclass RenderContacts extends React.Component {\n constructor(props) {\n super(props);\n this.state = {\n contactId: 0,\n };\n\n this.changeContactId = this.changeContactId.bind(this);\n }\n\n changeContactId(event) {\n if (event.target.value !== 0) {\n this.setState({\n contactId: event.target.value,\n });\n }\n }\n\n render() {\n const { contactId } = this.state;\n const lang = !localStorage.contacttoLang ? 'pt' : localStorage.contacttoLang;\n return (\n \n {({ loading, error, data }) => {\n if (loading) return
;\n if (error) return `Error ${error}`;\n return (\n
\n \n \n {data.allContacts.map(contact => (\n \n ))}\n \n {contactId > 0 &&\n \n }\n
\n );\n }}\n
\n );\n }\n}\n\nRenderContacts.propTypes = {\n clientId: PropTypes.string.isRequired,\n};\n\nexport default RenderContacts;\n","import React, { useState } from 'react';\nimport PropTypes from 'prop-types';\nimport { FormattedMessage } from 'react-intl';\nimport moment from 'moment';\nimport style from './history.module.scss';\nimport { historyActionType } from '../../../../BLL/dictionary';\n\n\nexport default function TransmitterChangedRow(props) {\n const [expanded, expandInfo] = useState(false);\n const rowTransmitter = props.log.transmitter;\n let nextTransmitter = {};\n if (props.index !== props.array.length -1) {\n const nextAction = props.array.find((ac) =>\n (ac.transmitter.zone === rowTransmitter.zone\n && moment(ac.actionDate) < moment(props.log.actionDate))\n );\n nextTransmitter = nextAction ? nextAction.transmitter : {};\n }\n const transmitter = Object.assign({}, rowTransmitter, {\n identifier: nextTransmitter.identifier === rowTransmitter.identifier ? undefined : rowTransmitter.identifier,\n description: nextTransmitter.description === rowTransmitter.description ? undefined : rowTransmitter.description,\n generalInfo: nextTransmitter.generalInfo === rowTransmitter.generalInfo ? undefined : rowTransmitter.generalInfo,\n });\n const actionType = historyActionType(props.log.actionType);\n return(\n
\n
\n
\n {transmitter.zone}\n
\n
\n {actionType}\n
\n
{moment(props.log.actionDate).format('DD/MM/YYYY HH:mm:ss')}
\n
\n {props.log.actionUser ? props.log.actionUser.firstName : ''} {props.log.actionUser ? props.log.actionUser.lastName : 'Contactto Vendas'}\n
\n
\n \n
\n
\n
\n {transmitter.identifier !== undefined &&\n
\n \n :\n \n {transmitter.identifier}\n
\n }\n {transmitter.description !== undefined &&\n
\n \n :\n \n {transmitter.description}\n
\n }\n {transmitter.generalInfo !== undefined &&\n
\n \n :\n \n {transmitter.generalInfo}\n
\n }\n
\n
);\n}\n","import React from 'react';\nimport PropTypes from 'prop-types';\nimport { FormattedMessage } from 'react-intl';\nimport { Query } from 'react-apollo';\nimport gql from 'graphql-tag';\nimport Loading from '../../../../icons/Loading';\nimport RenderTransmitterChangedRow from './TransmitterChangedRow';\nimport style from './history.module.scss';\n\n\nconst history = gql`\n query($token: String!, $clientId: Int!, $offset: Int) {\n transmitterHistory(token:$token, clientId:$clientId, offset:$offset) {\n historyId\n actionDate\n actionType\n actionUser {\n id\n firstName\n lastName\n }\n transmitter {\n identifier\n zone\n description\n generalInfo\n }\n }\n }\n`;\n\nconst RenderTransmittersHistory = ({ clientId }) => {\n let stopFetching = false;\n let offset = 0;\n return (\n \n {({ loading, error, data, fetchMore }) => {\n if (error) return `Error ${error}`;\n console.log('Data', data);\n return (\n
\n
\n
\n \n
\n
\n \n
\n
Data
\n
\n \n
\n
\n
\n {\n const doc = document.getElementById('table-body');\n if ((doc.scrollTop + doc.offsetHeight) >= doc.scrollHeight) {\n if (data.transmittersHistory && !loading && !stopFetching) {\n offset += 20;\n fetchMore({\n variables: { offset },\n updateQuery: (prev, { fetchMoreResult }) => {\n if (fetchMoreResult.transmittersHistory\n && fetchMoreResult.transmittersHistory.length === 0) {\n stopFetching = true;\n return prev;\n }\n return Object.assign({}, prev, {\n transmittersHistory: [\n ...prev.transmittersHistory,\n ...fetchMoreResult.transmittersHistory,\n ],\n });\n },\n });\n }\n }\n }}\n >\n {data && data.transmitterHistory && data.transmitterHistory\n .map((log, index, array) => (\n )\n )\n }\n {loading && } />}\n
\n
\n );\n }}\n
\n );\n};\n\nRenderTransmittersHistory.propTypes = {\n clientId: PropTypes.string.isRequired,\n};\n\nexport default RenderTransmittersHistory;\n","import React, { useState } from 'react';\nimport { FormattedMessage } from 'react-intl';\nimport moment from 'moment';\nimport { historyActionType, historyField, historyText } from '../../../../BLL/dictionary';\n\nimport style from './history.module.scss';\n\nconst SecondaryChangedRow = (props) => {\n const [expanded, expandInfo] = useState(false);\n\n const rowSecondary = props.log.secondary;\n const prevSecondary = props.index === props.array.length -1 ? {} : props.array[props.index + 1].secondary;\n\n const actionType = historyActionType(props.log.actionType);\n\n return (\n
\n
\n
\n {actionType}\n
\n
{moment(props.log.actionDate).format('DD/MM/YYYY HH:mm:ss')}
\n
\n {props.log.actionUser ? props.log.actionUser.firstName : ''} {props.log.actionUser ? props.log.actionUser.lastName : 'Contactto Vendas'}\n
\n
\n \n
\n
\n
\n {rowSecondary && Object.keys(rowSecondary).map((key) => {\n if (rowSecondary[key] && prevSecondary[key] !== rowSecondary[key] && key !== 'id' && props.log.actionType !== 'created' && key !== '__typename') {\n return (\n
\n \n {historyField(key)}:\n \n \n {historyText(prevSecondary[key], key)} -> {historyText(rowSecondary[key], key)}\n \n
\n )\n } else if (key !== 'id' && props.log.actionType === 'created' && key !== '__typename' && rowSecondary[key]) {\n return (\n
\n \n {historyField(key)}:\n \n {historyText(rowSecondary[key], key)}\n
\n )\n }\n return <>;\n })}\n
\n
\n )\n};\n\nexport default SecondaryChangedRow;\n","import React from 'react';\nimport PropTypes from 'prop-types';\nimport { FormattedMessage } from 'react-intl';\nimport { Query } from 'react-apollo';\nimport gql from 'graphql-tag';\nimport Loading from '../../../../icons/Loading';\nimport RenderSecondaryChangedRow from './SecondaryChangedRow';\n\nimport style from './history.module.scss';\n\nconst history = gql`\n query($token: String!, $clientId: Int!, $offset: Int) {\n secondaryHistory(token:$token, clientId:$clientId, offset:$offset) {\n historyId\n actionDate\n actionType\n actionUser {\n id\n firstName\n lastName\n }\n secondary {\n id\n firstName\n lastName\n cpf\n rg\n birthdate\n healthPlan\n generalInfo\n hospital\n gender\n limitations\n medications\n removalPlan\n }\n }\n }\n`;\n\nconst RenderSecondaryAuditLog = ({ clientId }) => {\n let stopFetching = false;\n let offset = 0;\n\n return (\n \n {({ loading, error, data, fetchMore }) => {\n if (error) {\n return
Error ${error}
;\n }\n console.log(data);\n return (\n
\n
\n
\n \n
\n
\n \n
\n
\n \n
\n
\n
\n {\n const doc = document.getElementById('table-body');\n if ((doc.scrollTop + doc.offsetHeight) >= doc.scrollHeight) {\n if (data.secondaryHistory && !loading && !stopFetching) {\n fetchMore({\n variables: { offset: data.secondaryHistory.length },\n updateQuery: (prev, { fetchMoreResult }) => {\n if (fetchMoreResult.secondaryHistory\n && fetchMoreResult.secondaryHistory.length === 0) {\n stopFetching = true;\n return prev;\n }\n return Object.assign({}, prev, {\n secondaryHistory: [...prev.secondaryHistory, ...fetchMoreResult.secondaryHistory],\n });\n },\n })\n }\n }\n }}\n >\n {data?.secondaryHistory?.map((log, index, array) => (\n \n ))\n }\n {loading && } />}\n
\n
\n )\n }}\n
\n )\n\n}\n\nRenderSecondaryAuditLog.propTypes = {\n clientId: PropTypes.string.isRequired,\n};\n\nexport default RenderSecondaryAuditLog;\n","import React from 'react';\nimport PropTypes from 'prop-types';\n\nconst User = ({ height, svgClass, width, fill }) => (\n \n \n \n \n);\n\nUser.defaultProps = {\n height: '24',\n svgClass: '',\n width: '24',\n fill: '#000000'\n};\n\nUser.propTypes = {\n height: PropTypes.string,\n svgClass: PropTypes.string,\n width: PropTypes.string,\n fill: PropTypes.string,\n};\n\nexport default User;\n","import React, { useState } from 'react';\nimport PropTypes from 'prop-types';\nimport { Query } from 'react-apollo';\n// import { connect } from 'react-redux';\nimport { FormattedMessage } from 'react-intl';\nimport gql from 'graphql-tag';\nimport RenderClientHistory from './ClientComponent';\nimport RenderContactsHistory from './ContactsComponent';\nimport RenderTransmitterHistory from './TransmittersComponent';\nimport RenderSecondaryAuditLog from './SecondaryComponent';\nimport User from '../../../../icons/User';\n\n\nimport style from './history.module.scss';\nimport '../../../../css/contactto.scss';\n\nconst clientName = gql`\n query($token: String!, $id: Int) {\n client(token: $token, id: $id) {\n firstName\n lastName\n }\n }\n`;\n\nconst RenderClientHeader = clientId => (\n \n {({ loading, error, data }) => {\n if (loading) return (
Carregando Header
);\n if (error) return `Error ${error}`;\n return (\n
\n \n \n \n  \n {data.client.firstName} {data.client.lastName}\n \n
\n );\n }}\n
\n);\n\nRenderClientHeader.propTypes = {\n clientId: PropTypes.number.isRequired,\n};\n\n\nconst HistoryComponent = (props) => {\n const options = {\n showClient: 1,\n showSecondary: 2,\n showContacts: 3,\n showTransmitters: 4\n }\n const [selectedOption, setSelectedOption] = useState(options.showClient);\n\n return (\n
\n {RenderClientHeader(parseInt(props.match.params.clientId, 10))}\n
\n setSelectedOption(options.showClient)}\n >\n \n \n \n setSelectedOption(options.showSecondary)}\n >\n  \n Usuário secundário\n \n setSelectedOption(options.showContacts)}\n >\n  \n \n \n setSelectedOption(options.showTransmitters)}\n >\n  \n \n \n
\n {selectedOption === options.showClient &&\n \n }\n {selectedOption === options.showSecondary &&\n \n }\n {selectedOption === options.showContacts &&\n \n }\n {selectedOption === options.showTransmitters &&\n \n }\n
\n );\n}\n\nexport default HistoryComponent;\n","import React from 'react';\nimport PropTypes from 'prop-types';\nimport { Link } from 'react-router-dom';\nimport { FormattedMessage } from 'react-intl';\nimport Edit from '../../../icons/Edit';\n\nimport style from './contactPage.module.scss';\n\nconst ContactRow = ({\n contact,\n isAdmin,\n isOwner,\n isManager,\n showModal,\n setTextIconDetail,\n setModalInfo,\n}) => (\n
\n
\n {contact.priority}\n
\n \n
\n {`${contact.first_name} ${contact.last_name}`}\n {contact.is_contractor &&\n \n }\n {contact.is_family &&\n \n }\n
\n \n
\n {(isAdmin || isOwner || isManager) &&\n setTextIconDetail()}\n onMouseOut={() => setTextIconDetail('')}\n to={`/app/contacts/form/edit/${contact.client}/${contact.id}`}\n style={{ paddingTop: '0.4rem' }}\n >\n \n \n }\n {(isAdmin || isOwner || isManager) &&\n \n setTextIconDetail(contact.is_deleted === false ? : )}\n onMouseOut={() => setTextIconDetail('')}\n onClick={() => {\n if (!showModal) {\n setModalInfo(true, contact);\n }\n }}\n className={style.actions}\n style={{ border: 0, backgroundColor: 'transparent', padding: 0 }}>\n {contact.is_deleted === false ?\n
\n \n
\n :\n
\n \n {/* */}\n
\n }\n }\n
\n
\n );\n\nContactRow.propTypes = {\n contact: PropTypes.shape({\n id: PropTypes.number,\n first_name: PropTypes.string,\n last_name: PropTypes.string,\n email: PropTypes.string,\n street: PropTypes.string,\n number: PropTypes.number,\n complement: PropTypes.string,\n district: PropTypes.string,\n city: PropTypes.string,\n state: PropTypes.string,\n country: PropTypes.string,\n zip_code: PropTypes.string,\n has_keys: PropTypes.bool,\n relationship: PropTypes.string,\n priority: PropTypes.number,\n is_deleted: PropTypes.bool,\n client: PropTypes.number,\n phones: PropTypes.arrayOf(\n PropTypes.shape({\n id: PropTypes.number,\n phone_type: PropTypes.string,\n phone: PropTypes.string,\n contact: PropTypes.number,\n }),\n ),\n actions: PropTypes.arrayOf(\n PropTypes.shape({\n id: PropTypes.number,\n priority: PropTypes.number,\n contact: PropTypes.number,\n receive_sms: PropTypes.bool,\n receive_email: PropTypes.bool,\n }),\n ),\n created_date: PropTypes.string,\n modified_date: PropTypes.string,\n created_by: PropTypes.number,\n modified_by: PropTypes.number,\n }).isRequired,\n isAdmin: PropTypes.bool.isRequired,\n isOwner: PropTypes.bool.isRequired,\n isManager: PropTypes.bool.isRequired,\n showModal: PropTypes.bool.isRequired,\n setTextIconDetail: PropTypes.func.isRequired,\n setModalInfo: PropTypes.func.isRequired,\n};\n\nexport default ContactRow;\n","import React from 'react';\nimport PropTypes from 'prop-types';\nimport { Link } from 'react-router-dom';\nimport { FormattedMessage } from 'react-intl';\nimport Edit from '../../../icons/Edit';\n\nimport style from './contactPage.module.scss';\nimport '../../../css/row.scss';\n\nclass ContactMobileRow extends React.Component {\n constructor(props) {\n super(props);\n this.state = {\n expanded: false,\n showModal: false,\n };\n this.toggleLogExtra = this.toggleLogExtra.bind(this);\n }\n\n toggleLogExtra() {\n this.setState(prevState => ({\n expanded: !prevState.expanded,\n }));\n }\n\n render() {\n const { expanded } = this.state;\n const {\n contact,\n isAdmin,\n isOwner,\n isManager,\n setModalInfo,\n showModal,\n } = this.props;\n const list = `/app/contacts/detail/${contact.id}`;\n const contacts = `/app/contacts/list/${contact.id}`;\n const contactAttend = `/app/contacts/attends/${contact.id}`;\n const transmissors = `/app/transmissors/list/${contact.id}`;\n const edit = `/app/contacts/form/edit/${contact.id}`;\n const logs = `/app/contacts/logs/${contact.id}`;\n const btnStyle = { border: 0, backgroundColor: 'transparent', padding: 0 };\n return (\n
\n \n
\n {contact.first_name} {contact.last_name}\n {contact.is_contractor &&\n \n }\n
\n
\n \n
\n
\n
\n this.props.setTextIconDetail()}\n onMouseOut={() => this.props.setTextIconDetail('')}\n to={`/app/contacts/detail/${contact.client}/${contact.id}`}\n >\n \n {/* */}\n \n {/* setTextIconDetail()}\n onMouseOut={() => setTextIconDetail('')}\n to={`/app/contacts/detail/${contact.client}/${contact.id}`}\n >\n \n */}\n {(isAdmin || isOwner || isManager) &&\n this.props.setTextIconDetail()}\n onMouseOut={() => this.props.setTextIconDetail('')}\n to={`/app/contacts/form/edit/${contact.client}/${contact.id}`}\n >\n \n \n }\n {(isAdmin || isOwner || isManager) &&\n \n this.props.setTextIconDetail(contact.is_deleted === false ? : )}\n onMouseOut={() => this.props.setTextIconDetail('')}\n onClick={() => {\n if (!showModal) {\n setModalInfo(true, contact);\n }\n }}\n className={style.actions}\n style={{ border: 0, backgroundColor: 'transparent', padding: 0 }}>\n {contact.is_deleted === false ?\n
\n \n
\n :\n
\n \n {/* */}\n
\n }\n }\n
\n
\n );\n }\n}\n\nContactMobileRow.propTypes = {\n contact: PropTypes.shape({\n id: PropTypes.number,\n first_name: PropTypes.string,\n last_name: PropTypes.string,\n email: PropTypes.string,\n street: PropTypes.string,\n number: PropTypes.number,\n complement: PropTypes.string,\n district: PropTypes.string,\n city: PropTypes.string,\n state: PropTypes.string,\n country: PropTypes.string,\n zip_code: PropTypes.string,\n has_keys: PropTypes.bool,\n relationship: PropTypes.string,\n priority: PropTypes.number,\n is_deleted: PropTypes.bool,\n client: PropTypes.number,\n phones: PropTypes.arrayOf(\n PropTypes.shape({\n id: PropTypes.number,\n phone_type: PropTypes.string,\n phone: PropTypes.string,\n contact: PropTypes.number,\n }),\n ),\n actions: PropTypes.arrayOf(\n PropTypes.shape({\n id: PropTypes.number,\n priority: PropTypes.number,\n contact: PropTypes.number,\n receive_sms: PropTypes.bool,\n receive_email: PropTypes.bool,\n }),\n ),\n created_date: PropTypes.string,\n modified_date: PropTypes.string,\n created_by: PropTypes.number,\n modified_by: PropTypes.number,\n }).isRequired,\n isAdmin: PropTypes.bool.isRequired,\n isOwner: PropTypes.bool.isRequired,\n isManager: PropTypes.bool.isRequired,\n showModal: PropTypes.bool.isRequired,\n setModalInfo: PropTypes.func.isRequired,\n};\n\nexport default ContactMobileRow;\n","import React, { useState } from 'react';\nimport PropTypes from 'prop-types';\nimport { FormattedMessage } from 'react-intl';\n\nimport style from './modalConfirmRemove.module.scss';\n\nconst ModalConfirmRemove = ({ setModalInfo, removeAction }) => {\n const [loading, setLoading] = useState(false);\n const cancelRemove = () => {\n setModalInfo(false, 0);\n };\n\n const performRemove = () => {\n setLoading(true);\n removeAction();\n };\n\n return (\n
\n
\n
\n \n \n \n
\n
\n );\n};\n\nModalConfirmRemove.propTypes = {\n removeAction: PropTypes.func.isRequired,\n setModalInfo: PropTypes.func.isRequired,\n};\n\nexport default ModalConfirmRemove;\n","import * as types from './actionTypes';\nimport * as errorsActions from './errorsActions';\nimport * as globals from '../globals/globals';\nimport { host, getDomain, getToken } from '../BLL/environment';\n\nexport function loadContactsSuccess(contacts, clientId, ordering) {\n return { type: types.LOAD_CONTACTS_SUCCESS, contacts, clientId, ordering };\n}\n\nexport function contactAdded(contact, clientId) {\n return { type: types.NEW_CONTACT, contact, clientId };\n}\n\nexport function contactUpdated(contact, clientId) {\n return { type: types.EDIT_CONTACT, contact, clientId };\n}\n\nexport function contactRemoved(contact, clientId) {\n return { type: types.REMOVE_CONTACT, contact, clientId };\n}\n\n\nexport function loadContacts(clientId, ordering = globals.contactsOrdering) {\n const domain = getDomain();\n const token = getToken();\n\n return (dispatch, getState, { axios }) => Promise.resolve(\n axios({\n method: 'get',\n url: `https://${domain}${host()}/api/clients/${clientId}/contacts/?ordering=is_deleted,${ordering}`,\n headers: { Authorization: `Token ${token}` },\n })\n .then((contacts) => {\n dispatch(loadContactsSuccess(contacts.data, clientId, ordering));\n }).catch((error) => {\n if (error.response) {\n if (error.response.status === 401) {\n dispatch(errorsActions.logout());\n }\n }\n }),\n );\n}\n\nexport function createContact(clientId, contact) {\n const domain = getDomain();\n const token = getToken();\n\n return (dispatch, getState, { axios }) => new Promise((resolve, reject) => \n axios({\n method: 'post',\n responseType: 'json',\n url: `https://${domain}${host()}/api/clients/${clientId}/contacts/`,\n data: contact,\n headers: { Authorization: `Token ${token}` },\n })\n .then((res) => resolve(dispatch(contactAdded(res.data, clientId))))\n .catch((error) => {\n if (error.response) {\n if (error.response.status === 401) {\n reject(dispatch(errorsActions.logout()));\n }\n }\n return reject(error);\n }),\n );\n}\n\nexport function editContact(clientId, contact) {\n const domain = getDomain();\n const token = getToken();\n\n return (dispatch, getState, { axios }) => new Promise((resolve, reject) =>\n axios({\n method: 'put',\n responseType: 'json',\n url: `https://${domain}${host()}/api/clients/${clientId}/contacts/${contact.id}/`,\n data: contact,\n headers: { Authorization: `Token ${token}` },\n })\n .then(() => resolve(dispatch(contactUpdated(contact, clientId))))\n .catch((error) => {\n if (error.response) {\n if (error.response.status === 401) {\n reject(dispatch(errorsActions.logout()));\n }\n }\n return reject(error);\n }),\n );\n}\n\nexport function deleteContact(clientId, contact) {\n const domain = getDomain();\n const token = getToken();\n\n return (dispatch, getState, { axios }) => new Promise((resolve, reject) =>\n axios({\n method: 'delete',\n responseType: 'json',\n url: `https://${domain}${host()}/api/clients/${clientId}/contacts/${contact.id}/`,\n headers: { Authorization: `Token ${token}` },\n })\n .then(() => resolve(dispatch(contactUpdated(contact, clientId))))\n .catch((error) => {\n if (error.response) {\n if (error.response.status === 401) {\n dispatch(errorsActions.logout());\n }\n }\n return reject(error);\n }),\n );\n}\n\nexport function destroyContact(clientId, contact) {\n const domain = getDomain();\n const token = getToken();\n\n return (dispatch, getState, { axios }) => new Promise((resolve, reject) =>\n axios({\n method: 'delete',\n responseType: 'json',\n url: `https://${domain}${host()}/api/clients/${clientId}/contacts/${contact.id}/destroy/`,\n headers: { Authorization: `Token ${token}` },\n })\n .then(() => resolve(dispatch(contactRemoved(contact, clientId))))\n .catch((error) => {\n if (error.response) {\n if (error.response.status === 401) {\n dispatch(errorsActions.logout());\n }\n }\n return reject(error);\n }),\n );\n}\n","import React, { useState, useEffect } from 'react';\nimport PropTypes from 'prop-types';\nimport { Link } from 'react-router-dom';\nimport { connect } from 'react-redux';\nimport axios from 'axios';\nimport { FormattedMessage } from 'react-intl';\nimport ContactRow from './ContactRow';\nimport ContactMobileRow from './ContactMobileRow';\nimport Order from '../../../icons/Order';\nimport Paginate from '../../Common/Paginate';\nimport ToggleButton from '../../Common/ToggleButton';\nimport ConfirmRemoveModal from '../../Modal/ModalConfirmRemove';\nimport * as contactsActions from '../../../actions/contactsActions';\nimport { getDomain, host, getToken } from '../../../BLL/environment';\nimport { getBrowserMaxWidth, broadcast } from '../../../BLL/general';\nimport broadcastMessages from '../../../BLL/locale/messagesBroadcast';\n\nimport style from './contactPage.module.scss';\n\nimport '../../../css/icons.scss';\nimport '../../../css/middle.scss';\nimport '../../../css/buttons.scss';\n \nimport '../../../css/listPage.scss';\n\nconst ContactPage = (props) => {\n const browserWidth = getBrowserMaxWidth();\n const numPerPage = 50;\n const [contact, setContact] = useState('');\n const [orderedContacts, setOrderedContacts] = useState([]);\n const [client, setClient] = useState(undefined);\n const [page, setPage] = useState(1);\n const [ordering, setOrdering] = useState('priority');\n const [showModal, setShowModal] = useState(false);\n const [iconDetail, setIconDetail] = useState('');\n const [isChecked, setIsChecked] = useState(false);\n\n useEffect(() => {\n loadClient(parseInt(props.match.params.clientId, 10));\n }, [props.match.params.clientId]);\n\n useEffect(() => {\n setContactList(ordering);\n\n }, [props.contacts])\n\n const loadClient = (clientId) => {\n axios.get(`https://${getDomain()}${host()}/api/clients/${clientId}/`, {\n headers: { Authorization: `Token ${getToken()}` },\n }).then(res => setClient(res.data))\n .catch(err => console.log(err));\n };\n\n const setModalInfo = (show, newContact) => {\n setShowModal(show);\n setContact(Object.assign({}, newContact));\n };\n\n const orderByName = () => {\n const newOrdering = ordering === 'first_name,last_name,priority' ? '-first_name,-last_name,-priority' : 'first_name,last_name,priority';\n setOrdering(newOrdering);\n setContactList(newOrdering);\n };\n\n const orderByPriority = () => {\n const newOrdering = ordering === 'priority' ? '-priority' : 'priority';\n setOrdering(newOrdering);\n setContactList(newOrdering);\n };\n\n const setContactList = (newOrdering) => {\n console.log('Setting contact list', props.contacts);\n const contactsOrdered = props.contacts\n ? props.contacts.filter(\n c => c.ordering === newOrdering && c.clientId === props.match.params.clientId\n )[0]\n : null;\n console.log(contactsOrdered);\n if (contactsOrdered) {\n setOrderedContacts(contactsOrdered.data);\n } else {\n props.loadContacts(props.match.params.clientId, newOrdering);\n }\n }\n\n const toggleContact = () => {\n const lang = !localStorage.contacttoLang ? 'pt' : localStorage.contacttoLang;\n const serverContact = Object.assign({}, contact, { is_deleted: !contact.is_deleted });\n const text = `${broadcastMessages[lang]['broadcast.contact']} ${serverContact.first_name} ${serverContact.last_name} ${\n serverContact.is_deleted ? broadcastMessages[lang]['broadcast.deleted'] : broadcastMessages[lang]['broadcast.recovered']}`;\n if (serverContact.is_deleted) {\n props.deleteContact(props.match.params.clientId, serverContact).then(() => {\n broadcast(axios, props.channelId, {\n type: 'contact',\n method: 'toggle',\n userId: props.loggedAttendantId,\n clientId: props.match.params.clientId,\n contact: serverContact,\n text,\n });\n props.history.push(`/app/contacts/list/${props.match.params.clientId}`);\n });\n } else {\n props.editContact(props.match.params.clientId, serverContact).then(() => {\n broadcast(axios, props.channelId, {\n type: 'contact',\n method: 'toggle',\n userId: props.loggedAttendantId,\n clientId: props.match.params.clientId,\n contact: serverContact,\n text,\n });\n props.history.push(`/app/contacts/list/${props.match.params.clientId}`);\n });\n }\n setModalInfo(false, '');\n }\n\n const contacts = orderedContacts;\n const svgNameRotation = ordering === '-first_name,-last_name,-priority' ? 'icons-order--rotate' : '';\n const svgPriorityRotation = ordering === '-priority' ? style.rotate : '';\n return (\n
\n {client &&\n
\n
\n \n \n {`${client.first_name} ${client.last_name}`.toUpperCase()}\n \n
\n
\n }\n {(props.isAdmin || props.isOwner || props.isManager) &&\n
\n \n + \n \n
\n setIsChecked(!isChecked)} />\n
\n
\n }\n {contacts &&\n
\n \n {showModal &&\n \n }\n
\n
\n \n \n \n
\n
\n \n \n \n
\n \n {iconDetail}\n
\n
\n
\n {browserWidth > 920 \n ? contacts.map(cont => (cont.is_deleted === false\n || (isChecked === true && cont.is_deleted === true\n && (props.isAdmin || props.isOwner || props.isManager) === true)\n ? \n : null\n ))\n : contacts.map(cont => (cont.is_deleted === false\n || (isChecked === true && cont.is_deleted === true\n && (props.isAdmin || props.isOwner || props.isManager) === true)\n ? \n : null\n ))\n }\n
\n
\n }\n
\n );\n}\n\nContactPage.propTypes = {\n channelId: PropTypes.string.isRequired,\n loggedAttendantId: PropTypes.number.isRequired,\n params: PropTypes.shape({\n clientId: PropTypes.string.isRequired,\n }).isRequired,\n isAdmin: PropTypes.bool.isRequired,\n isOwner: PropTypes.bool.isRequired,\n isManager: PropTypes.bool.isRequired,\n editContact: PropTypes.func.isRequired,\n deleteContact: PropTypes.func.isRequired,\n loadContacts: PropTypes.func.isRequired,\n contacts: PropTypes.arrayOf(\n PropTypes.shape({\n id: PropTypes.number,\n first_name: PropTypes.string,\n last_name: PropTypes.string,\n priority: PropTypes.number,\n client: PropTypes.number,\n is_deleted: PropTypes.boolean,\n }),\n ).isRequired,\n};\n\nfunction mapStateToProps(state, ownProps) {\n return {\n contacts: state.contacts,\n params: ownProps.params,\n loggedAttendantId: state.loggedAttendant.id ? state.loggedAttendant.id : 0,\n isAdmin: state.loggedAttendant.groups ?\n state.loggedAttendant.groups[0] === 1 :\n false,\n isOwner: state.loggedAttendant.groups ?\n state.loggedAttendant.groups[0] === 4 :\n false,\n isManager: state.loggedAttendant.groups ? state.loggedAttendant.groups[0] === 2 : false,\n };\n}\n\nfunction mapDispatchToProps(dispatch) {\n return {\n editContact: (clientId, contact) => dispatch(contactsActions.editContact(clientId, contact)),\n deleteContact: (clientId, contact) => dispatch(contactsActions.deleteContact(clientId, contact)),\n loadContacts: (clientId, ordering, reload) =>\n dispatch(contactsActions.loadContacts(clientId, ordering, reload)),\n };\n}\n\nexport default connect(mapStateToProps, mapDispatchToProps)(ContactPage);\n","import React, { useState, useEffect } from 'react';\nimport PropTypes from 'prop-types';\nimport axios from 'axios';\nimport { useDispatch, useSelector, RootStateOrAny } from 'react-redux';\nimport { FormattedMessage } from 'react-intl';\nimport { getDomain, host, getToken } from '../../../BLL/environment';\nimport * as general from '../../../BLL/general';\nimport * as contactsActions from '../../../actions/contactsActions';\nimport messages from '../../../BLL/locale/messages';\n\nimport '../../../css/middle.scss';\nimport '../../../css/table.scss';\n \nimport '../../../css/detailPage.scss';\nimport '../../../css/block.scss';\n\nconst ContactDetail = (props) => {\n const dispatch = useDispatch();\n const { contacts, attendants, isSysUser, globalConfiguration} = useSelector(\n (state: RootStateOrAny) => ({\n contacts: state.contacts,\n attendants: state.attendants,\n globalConfiguration: state.globalConfiguration.global,\n isSysUser: state.loggedAttendant.groups.length === 1\n })\n );\n\n const [contact, setContact] = useState(undefined);\n const [client, setClient] = useState(undefined);\n\n useEffect(() => {\n const setUpContact = (contacts) => {\n const { clientId, contactId } = props.match.params;\n const contactList = [...contacts.filter(c => c.clientId === clientId)[0].data];\n const contact = Object.assign({}, contactList.filter(con => con.id === parseInt(contactId, 10))[0]);\n setContact(contact);\n }\n\n const { clientId } = props.match.params;\n loadClient(parseInt(clientId, 10));\n if (contacts.length <= 0) {\n dispatch(contactsActions.loadContacts(clientId));\n } else {\n setUpContact(contacts)\n }\n }, [contacts, dispatch, props.match.params]);\n\n const loadClient = (clientId) => {\n axios.get(`https://${getDomain()}${host()}/api/clients/${clientId}/`, {\n headers: { Authorization: `Token ${getToken()}` },\n }).then(res => setClient(Object.assign({}, res.data)))\n .catch(err => console.log(err));\n };\n\n let actionName = [];\n if (localStorage.contacttoLang) {\n actionName = [\n messages[localStorage.contacttoLang]['general.highPriority'],\n messages[localStorage.contacttoLang]['general.mediumPriority'],\n messages[localStorage.contacttoLang]['general.lowPriority'],\n messages[localStorage.contacttoLang]['general.sysPriority'],\n ];\n } else {\n actionName = ['Alta Prioridade', 'Média Prioridade', 'Baixa Prioridade', 'Alarme de sistema'];\n }\n\n const creator = contact ?\n attendants[0]?.data?.filter(attendant => attendant.id === contact.created_by)[0] :\n undefined;\n const modifier = contact ?\n attendants[0]?.data?.filter(attendant => attendant.id === contact.modified_by)[0] :\n undefined;\n\n const primaryPhone = contact ?\n contact.phones.length >= 1 && contact.phones.find(phone => phone.phone_type === 'Primary') :\n undefined;\n \n console.log(contact)\n\n const secondaryPhones = contact ? contact.phones\n .filter(phone => phone.phone_type !== 'Primary')\n .sort((a, b) => a.id > b.id) : undefined;\n\n return (\n
\n
\n {client &&
{`${client.first_name} ${client.last_name}`.toUpperCase()}
}\n {contact &&\n
\n
\n
\n
\n {client &&\n
\n
\n
{client.account}
\n
\n\n }\n
\n
\n
{contact.priority}
\n
\n
\n
\n
{contact.first_name}
\n
\n
\n
\n
{contact.last_name}
\n
\n
\n
\n
{contact.relationship}
\n
\n
\n
\n
{contact.has_keys ? : }
\n
\n
\n
Email
\n
{contact.email}
\n
\n
\n
\n
{contact.is_contractor ? : }
\n
\n
\n
\n
{contact.is_family ? : }
\n
\n
\n
\n
\n\n
\n
\n
\n
\n
\n
\n
{contact.street ? contact.street : '-'}
\n
\n
\n
\n
{contact.number === 0 ? '-' : contact.number }
\n
\n
\n
\n
{contact.complement ? contact.complement : '-'}
\n
\n
\n
\n
{contact.district ? contact.district : '-'}
\n
\n
\n
\n
{contact.zip_code ? general.setMask(contact.zip_code, '00000-000') : '-'}
\n
\n
\n
\n
{contact.city ? contact.city : '-'}
\n
\n
\n
\n
{contact.state ? contact.state : '-'}
\n
\n
\n
\n
{contact.country ? contact.country : '-'}
\n
\n
\n {primaryPhone &&\n
\n
\n
\n
\n {`${primaryPhone.country_code ? primaryPhone.country_code : \"+55\"}\n ${general.renderPhoneDigit(primaryPhone.phone, contact.country)}`}\n
\n
\n
\n
\n
{general.phonePT(primaryPhone.phone_type)}
\n
\n
\n }\n {secondaryPhones\n .sort((phoneA, phoneB) => phoneA.id > phoneB.id)\n .map(phone =>\n (\n
\n
\n
\n
\n {`${phone.country_code ? phone.country_code : \"+55\"} ${general.renderPhoneDigit(phone.phone, contact.country)}`}\n
\n
\n
\n
\n
{general.phonePT(phone.phone_type)}
\n
\n
\n ),\n )}\n
\n
\n\n
\n
\n \n
\n
\n
\n
\n
Email
\n
SMS
\n {isSysUser && globalConfiguration?.can_use_whatsapp &&\n
WhatsApp
\n }\n
\n
\n\n {contact.actions\n .sort((actionA, actionB) => actionA.priority - actionB.priority)\n .map(action =>\n (\n
\n
{actionName[action.priority - 1]}
\n
\n
{action.receive_email ? : }
\n
{action.receive_sms ? : }
\n {isSysUser && globalConfiguration?.can_use_whatsapp &&\n
{action.receive_whatsapp ? : }
\n }\n
\n
\n\n ),\n )}\n\n
\n
\n
LOGS
\n
\n
\n
\n
{contact.created_date ? general.formatOnlyNumbersDate(contact.created_date) : '-'}
\n
\n
\n
\n {creator ?
{`${creator.first_name} ${creator.last_name}`}
:
-
}\n
\n
\n
\n
{contact.modified_date ? general.formatOnlyNumbersDate(contact.modified_date) : '-'}
\n
\n
\n
{modifier ?
{`${modifier.first_name} ${modifier.last_name}`}
:
-
}\n
\n
\n
\n
\n }\n
\n
\n );\n};\n\nContactDetail.propTypes = {\n params: PropTypes.shape({\n clientId: PropTypes.string.isRequired,\n contactId: PropTypes.string.isRequired,\n }).isRequired,\n};\n\nexport default ContactDetail;\n","import React, { useState, useEffect } from 'react';\nimport PropTypes from 'prop-types';\nimport { setMask } from '../../BLL/general';\nimport formStyle from '../../css/form.module.scss';\n\nconst TextInput = (props) => {\n const [value, setValue] = useState('');\n const [hasError, setHasError] = useState(false);\n const [errorMessage, setErrorMessage] = useState('');\n\n useEffect(() => {\n setValue(props.value);\n }, [props.value]);\n\n const onChange = (ev) => {\n let isValid = true;\n let errorMsg = '';\n let validate = undefined;\n let newValue = ev.target.value;\n let mask = undefined;\n let minLength = props.minLength;\n let oldValue = ev.target.value;\n\n if (props.mask) {\n if (typeof props.mask === 'string') {\n mask = props.mask;\n if (props.required && !minLength) {\n minLength = props.mask.length;\n }\n } else if (Array.isArray(props.mask)) {\n const tempValue = oldValue.split('').filter(el => /\\d/.test(el)).join('');\n const tempMask = props.mask[0].split('').filter(el => /\\d/.test(el)).join('');\n mask = tempValue.length <= tempMask.length ? props.mask[0] : props.mask[1];\n if (props.required) {\n minLength = props.mask[0].length;\n }\n }\n\n const arr = oldValue.split('');\n const val = arr.filter(el => /\\d/.test(el)).join('');\n newValue = setMask(val, mask);\n }\n\n if (props.validate) {\n validate = props.validate(newValue);\n if (Array.isArray(validate)) {\n isValid = false;\n errorMsg = validate[1];\n } else if (typeof validate === 'string') {\n newValue = validate;\n } else if (typeof validate === 'boolean') {\n isValid = validate;\n }\n }\n\n if (props.required && oldValue.length === 0) {\n isValid = false;\n errorMsg = 'Campo obrigatório';\n } else if (minLength > 1 && oldValue.length < minLength && oldValue.length > 0) {\n isValid = false;\n errorMsg = `Campo deve possuir pelo menos ${minLength} caracteres`;\n }\n\n if (props.name === 'zip_code') {\n const zipValue = oldValue.split('').filter(el => /\\d/.test(el)).join('');\n if ((minLength > 1 && zipValue.length < minLength && zipValue.length > 0)) {\n isValid = false;\n errorMsg = `Campo deve possuir pelo menos ${minLength} caracteres`;\n }\n }\n\n const event = {\n target: {\n name: ev.target.name,\n value: newValue,\n },\n };\n\n props.onChange(event, isValid);\n\n setErrorMessage(errorMsg);\n setHasError(!isValid);\n };\n\n const setMaxLength = () => {\n if (props.mask) {\n if (typeof props.mask === 'string') {\n return props.mask.length;\n } else if (Array.isArray(props.mask)) {\n // return props.mask[1].length;\n return props.mask.reduce((a, b) => (a.length > b.length ? a : b)).length;\n }\n }\n return props.maxLength;\n };\n\n const maxLength = setMaxLength();\n\n return (\n
\n { props.onPaste ? e.preventDefault() : e; }} // eslint-disable-line no-unused-expressions\n onDrop={(e) => { props.onDrop ? e.preventDefault() : e; }} // eslint-disable-line no-unused-expressions\n />\n {hasError &&\n \n {errorMessage}\n
}\n
\n );\n};\n\nTextInput.propTypes = {\n id: PropTypes.string.isRequired,\n type: PropTypes.string.isRequired,\n name: PropTypes.string.isRequired,\n onChange: PropTypes.func.isRequired,\n value: PropTypes.node.isRequired,\n onPaste: PropTypes.bool,\n onDrop: PropTypes.bool,\n text: PropTypes.string,\n disabled: PropTypes.string,\n inputClass: PropTypes.string,\n errorClass: PropTypes.string,\n textErrorClass: PropTypes.string,\n minLength: PropTypes.number,\n maxLength: PropTypes.number,\n mask: PropTypes.node,\n required: PropTypes.bool,\n validate: PropTypes.func,\n};\n\nexport default TextInput;\n","import React from 'react';\nimport PropTypes from 'prop-types';\n\nconst Delete = ({ dataPos, height, className, onClick, width }) => (\n \n \n \n);\n\nDelete.defaultProps = {\n dataPos: '',\n width: '24',\n height: '24',\n className: '',\n onClick: () => {},\n};\n\nDelete.propTypes = {\n width: PropTypes.string,\n height: PropTypes.string,\n className: PropTypes.string,\n onClick: PropTypes.func,\n dataPos: PropTypes.node,\n};\n\nexport default Delete;\n","const countryCodes = [\n {\n dial_code: \"+93\",\n code: \"AF\"\n },\n {\n dial_code: \"+358\",\n code: \"AX\"\n },\n {\n dial_code: \"+355\",\n code: \"AL\"\n },\n {\n dial_code: \"+213\",\n code: \"DZ\"\n },\n {\n dial_code: \"+1684\",\n code: \"AS\"\n },\n {\n dial_code: \"+376\",\n code: \"AD\"\n },\n {\n dial_code: \"+244\",\n code: \"AO\"\n },\n {\n dial_code: \"+1264\",\n code: \"AI\"\n },\n {\n dial_code: \"+672\",\n code: \"AQ\"\n },\n {\n dial_code: \"+1268\",\n code: \"AG\"\n },\n {\n dial_code: \"+54\",\n code: \"AR\"\n },\n {\n dial_code: \"+374\",\n code: \"AM\"\n },\n {\n dial_code: \"+297\",\n code: \"AW\"\n },\n {\n dial_code: \"+61\",\n code: \"AU\"\n },\n {\n dial_code: \"+43\",\n code: \"AT\"\n },\n {\n dial_code: \"+994\",\n code: \"AZ\"\n },\n {\n dial_code: \"+1242\",\n code: \"BS\"\n },\n {\n dial_code: \"+973\",\n code: \"BH\"\n },\n {\n dial_code: \"+880\",\n code: \"BD\"\n },\n {\n dial_code: \"+1246\",\n code: \"BB\"\n },\n {\n dial_code: \"+375\",\n code: \"BY\"\n },\n {\n dial_code: \"+32\",\n code: \"BE\"\n },\n {\n dial_code: \"+501\",\n code: \"BZ\"\n },\n {\n dial_code: \"+229\",\n code: \"BJ\"\n },\n {\n dial_code: \"+1441\",\n code: \"BM\"\n },\n {\n dial_code: \"+975\",\n code: \"BT\"\n },\n {\n dial_code: \"+591\",\n code: \"BO\"\n },\n {\n dial_code: \"+387\",\n code: \"BA\"\n },\n {\n dial_code: \"+267\",\n code: \"BW\"\n },\n {\n dial_code: \"+55\",\n code: \"BR\"\n },\n {\n dial_code: \"+246\",\n code: \"IO\"\n },\n {\n dial_code: \"+673\",\n code: \"BN\"\n },\n {\n dial_code: \"+359\",\n code: \"BG\"\n },\n {\n dial_code: \"+226\",\n code: \"BF\"\n },\n {\n dial_code: \"+257\",\n code: \"BI\"\n },\n {\n dial_code: \"+855\",\n code: \"KH\"\n },\n {\n dial_code: \"+237\",\n code: \"CM\"\n },\n {\n dial_code: \"+1\",\n code: \"CA\"\n },\n {\n dial_code: \"+238\",\n code: \"CV\"\n },\n {\n dial_code: \"+ 345\",\n code: \"KY\"\n },\n {\n dial_code: \"+236\",\n code: \"CF\"\n },\n {\n dial_code: \"+235\",\n code: \"TD\"\n },\n {\n dial_code: \"+56\",\n code: \"CL\"\n },\n {\n dial_code: \"+86\",\n code: \"CN\"\n },\n {\n dial_code: \"+61\",\n code: \"CX\"\n },\n {\n dial_code: \"+61\",\n code: \"CC\"\n },\n {\n dial_code: \"+57\",\n code: \"CO\"\n },\n {\n dial_code: \"+269\",\n code: \"KM\"\n },\n {\n dial_code: \"+242\",\n code: \"CG\"\n },\n {\n dial_code: \"+243\",\n code: \"CD\"\n },\n {\n dial_code: \"+682\",\n code: \"CK\"\n },\n {\n dial_code: \"+506\",\n code: \"CR\"\n },\n {\n dial_code: \"+225\",\n code: \"CI\"\n },\n {\n dial_code: \"+385\",\n code: \"HR\"\n },\n {\n dial_code: \"+53\",\n code: \"CU\"\n },\n {\n dial_code: \"+357\",\n code: \"CY\"\n },\n {\n dial_code: \"+420\",\n code: \"CZ\"\n },\n {\n dial_code: \"+45\",\n code: \"DK\"\n },\n {\n dial_code: \"+253\",\n code: \"DJ\"\n },\n {\n dial_code: \"+1767\",\n code: \"DM\"\n },\n {\n dial_code: \"+1849\",\n code: \"DO\"\n },\n {\n dial_code: \"+593\",\n code: \"EC\"\n },\n {\n dial_code: \"+20\",\n code: \"EG\"\n },\n {\n dial_code: \"+503\",\n code: \"SV\"\n },\n {\n dial_code: \"+240\",\n code: \"GQ\"\n },\n {\n dial_code: \"+291\",\n code: \"ER\"\n },\n {\n dial_code: \"+372\",\n code: \"EE\"\n },\n {\n dial_code: \"+251\",\n code: \"ET\"\n },\n {\n dial_code: \"+500\",\n code: \"FK\"\n },\n {\n dial_code: \"+298\",\n code: \"FO\"\n },\n {\n dial_code: \"+679\",\n code: \"FJ\"\n },\n {\n dial_code: \"+358\",\n code: \"FI\"\n },\n {\n dial_code: \"+33\",\n code: \"FR\"\n },\n {\n dial_code: \"+594\",\n code: \"GF\"\n },\n {\n dial_code: \"+689\",\n code: \"PF\"\n },\n {\n dial_code: \"+241\",\n code: \"GA\"\n },\n {\n dial_code: \"+220\",\n code: \"GM\"\n },\n {\n dial_code: \"+995\",\n code: \"GE\"\n },\n {\n dial_code: \"+49\",\n code: \"DE\"\n },\n {\n dial_code: \"+233\",\n code: \"GH\"\n },\n {\n dial_code: \"+350\",\n code: \"GI\"\n },\n {\n dial_code: \"+30\",\n code: \"GR\"\n },\n {\n dial_code: \"+299\",\n code: \"GL\"\n },\n {\n dial_code: \"+1473\",\n code: \"GD\"\n },\n {\n dial_code: \"+590\",\n code: \"GP\"\n },\n {\n dial_code: \"+1671\",\n code: \"GU\"\n },\n {\n dial_code: \"+502\",\n code: \"GT\"\n },\n {\n dial_code: \"+44\",\n code: \"GG\"\n },\n {\n dial_code: \"+224\",\n code: \"GN\"\n },\n {\n dial_code: \"+245\",\n code: \"GW\"\n },\n {\n dial_code: \"+595\",\n code: \"GY\"\n },\n {\n dial_code: \"+509\",\n code: \"HT\"\n },\n {\n dial_code: \"+379\",\n code: \"VA\"\n },\n {\n dial_code: \"+504\",\n code: \"HN\"\n },\n {\n dial_code: \"+852\",\n code: \"HK\"\n },\n {\n dial_code: \"+36\",\n code: \"HU\"\n },\n {\n dial_code: \"+354\",\n code: \"IS\"\n },\n {\n dial_code: \"+91\",\n code: \"IN\"\n },\n {\n dial_code: \"+62\",\n code: \"ID\"\n },\n {\n dial_code: \"+98\",\n code: \"IR\"\n },\n {\n dial_code: \"+964\",\n code: \"IQ\"\n },\n {\n dial_code: \"+353\",\n code: \"IE\"\n },\n {\n dial_code: \"+44\",\n code: \"IM\"\n },\n {\n dial_code: \"+972\",\n code: \"IL\"\n },\n {\n dial_code: \"+39\",\n code: \"IT\"\n },\n {\n dial_code: \"+1876\",\n code: \"JM\"\n },\n {\n dial_code: \"+81\",\n code: \"JP\"\n },\n {\n dial_code: \"+44\",\n code: \"JE\"\n },\n {\n dial_code: \"+962\",\n code: \"JO\"\n },\n {\n dial_code: \"+77\",\n code: \"KZ\"\n },\n {\n dial_code: \"+254\",\n code: \"KE\"\n },\n {\n dial_code: \"+686\",\n code: \"KI\"\n },\n {\n dial_code: \"+850\",\n code: \"KP\"\n },\n {\n dial_code: \"+82\",\n code: \"KR\"\n },\n {\n dial_code: \"+965\",\n code: \"KW\"\n },\n {\n dial_code: \"+996\",\n code: \"KG\"\n },\n {\n dial_code: \"+856\",\n code: \"LA\"\n },\n {\n dial_code: \"+371\",\n code: \"LV\"\n },\n {\n dial_code: \"+961\",\n code: \"LB\"\n },\n {\n dial_code: \"+266\",\n code: \"LS\"\n },\n {\n dial_code: \"+231\",\n code: \"LR\"\n },\n {\n dial_code: \"+218\",\n code: \"LY\"\n },\n {\n dial_code: \"+423\",\n code: \"LI\"\n },\n {\n dial_code: \"+370\",\n code: \"LT\"\n },\n {\n dial_code: \"+352\",\n code: \"LU\"\n },\n {\n dial_code: \"+853\",\n code: \"MO\"\n },\n {\n dial_code: \"+389\",\n code: \"MK\"\n },\n {\n dial_code: \"+261\",\n code: \"MG\"\n },\n {\n dial_code: \"+265\",\n code: \"MW\"\n },\n {\n dial_code: \"+60\",\n code: \"MY\"\n },\n {\n dial_code: \"+960\",\n code: \"MV\"\n },\n {\n dial_code: \"+223\",\n code: \"ML\"\n },\n {\n dial_code: \"+356\",\n code: \"MT\"\n },\n {\n dial_code: \"+692\",\n code: \"MH\"\n },\n {\n dial_code: \"+596\",\n code: \"MQ\"\n },\n {\n dial_code: \"+222\",\n code: \"MR\"\n },\n {\n dial_code: \"+230\",\n code: \"MU\"\n },\n {\n dial_code: \"+262\",\n code: \"YT\"\n },\n {\n dial_code: \"+52\",\n code: \"MX\"\n },\n {\n dial_code: \"+691\",\n code: \"FM\"\n },\n {\n dial_code: \"+373\",\n code: \"MD\"\n },\n {\n dial_code: \"+377\",\n code: \"MC\"\n },\n {\n dial_code: \"+976\",\n code: \"MN\"\n },\n {\n dial_code: \"+382\",\n code: \"ME\"\n },\n {\n dial_code: \"+1664\",\n code: \"MS\"\n },\n {\n dial_code: \"+212\",\n code: \"MA\"\n },\n {\n dial_code: \"+258\",\n code: \"MZ\"\n },\n {\n dial_code: \"+95\",\n code: \"MM\"\n },\n {\n dial_code: \"+264\",\n code: \"NA\"\n },\n {\n dial_code: \"+674\",\n code: \"NR\"\n },\n {\n dial_code: \"+977\",\n code: \"NP\"\n },\n {\n dial_code: \"+31\",\n code: \"NL\"\n },\n {\n dial_code: \"+599\",\n code: \"AN\"\n },\n {\n dial_code: \"+687\",\n code: \"NC\"\n },\n {\n dial_code: \"+64\",\n code: \"NZ\"\n },\n {\n dial_code: \"+505\",\n code: \"NI\"\n },\n {\n dial_code: \"+227\",\n code: \"NE\"\n },\n {\n dial_code: \"+234\",\n code: \"NG\"\n },\n {\n dial_code: \"+683\",\n code: \"NU\"\n },\n {\n dial_code: \"+672\",\n code: \"NF\"\n },\n {\n dial_code: \"+1670\",\n code: \"MP\"\n },\n {\n dial_code: \"+47\",\n code: \"NO\"\n },\n {\n dial_code: \"+968\",\n code: \"OM\"\n },\n {\n dial_code: \"+92\",\n code: \"PK\"\n },\n {\n dial_code: \"+680\",\n code: \"PW\"\n },\n {\n dial_code: \"+970\",\n code: \"PS\"\n },\n {\n dial_code: \"+507\",\n code: \"PA\"\n },\n {\n dial_code: \"+675\",\n code: \"PG\"\n },\n {\n dial_code: \"+595\",\n code: \"PY\"\n },\n {\n dial_code: \"+51\",\n code: \"PE\"\n },\n {\n dial_code: \"+63\",\n code: \"PH\"\n },\n {\n dial_code: \"+872\",\n code: \"PN\"\n },\n {\n dial_code: \"+48\",\n code: \"PL\"\n },\n {\n dial_code: \"+351\",\n code: \"PT\"\n },\n {\n dial_code: \"+1939\",\n code: \"PR\"\n },\n {\n dial_code: \"+974\",\n code: \"QA\"\n },\n {\n dial_code: \"+40\",\n code: \"RO\"\n },\n {\n dial_code: \"+7\",\n code: \"RU\"\n },\n {\n dial_code: \"+250\",\n code: \"RW\"\n },\n {\n dial_code: \"+262\",\n code: \"RE\"\n },\n {\n dial_code: \"+590\",\n code: \"BL\"\n },\n {\n dial_code: \"+290\",\n code: \"SH\"\n },\n {\n dial_code: \"+1869\",\n code: \"KN\"\n },\n {\n dial_code: \"+1758\",\n code: \"LC\"\n },\n {\n dial_code: \"+590\",\n code: \"MF\"\n },\n {\n dial_code: \"+508\",\n code: \"PM\"\n },\n {\n dial_code: \"+1784\",\n code: \"VC\"\n },\n {\n dial_code: \"+685\",\n code: \"WS\"\n },\n {\n dial_code: \"+378\",\n code: \"SM\"\n },\n {\n dial_code: \"+239\",\n code: \"ST\"\n },\n {\n dial_code: \"+966\",\n code: \"SA\"\n },\n {\n dial_code: \"+221\",\n code: \"SN\"\n },\n {\n dial_code: \"+381\",\n code: \"RS\"\n },\n {\n dial_code: \"+248\",\n code: \"SC\"\n },\n {\n dial_code: \"+232\",\n code: \"SL\"\n },\n {\n dial_code: \"+65\",\n code: \"SG\"\n },\n {\n dial_code: \"+421\",\n code: \"SK\"\n },\n {\n dial_code: \"+386\",\n code: \"SI\"\n },\n {\n dial_code: \"+677\",\n code: \"SB\"\n },\n {\n dial_code: \"+252\",\n code: \"SO\"\n },\n {\n dial_code: \"+27\",\n code: \"ZA\"\n },\n {\n dial_code: \"+211\",\n code: \"SS\"\n },\n {\n dial_code: \"+500\",\n code: \"GS\"\n },\n {\n dial_code: \"+34\",\n code: \"ES\"\n },\n {\n dial_code: \"+94\",\n code: \"LK\"\n },\n {\n dial_code: \"+249\",\n code: \"SD\"\n },\n {\n dial_code: \"+597\",\n code: \"SR\"\n },\n {\n dial_code: \"+47\",\n code: \"SJ\"\n },\n {\n dial_code: \"+268\",\n code: \"SZ\"\n },\n {\n dial_code: \"+46\",\n code: \"SE\"\n },\n {\n dial_code: \"+41\",\n code: \"CH\"\n },\n {\n dial_code: \"+963\",\n code: \"SY\"\n },\n {\n dial_code: \"+886\",\n code: \"TW\"\n },\n {\n dial_code: \"+992\",\n code: \"TJ\"\n },\n {\n dial_code: \"+255\",\n code: \"TZ\"\n },\n {\n dial_code: \"+66\",\n code: \"TH\"\n },\n {\n dial_code: \"+670\",\n code: \"TL\"\n },\n {\n dial_code: \"+228\",\n code: \"TG\"\n },\n {\n dial_code: \"+690\",\n code: \"TK\"\n },\n {\n dial_code: \"+676\",\n code: \"TO\"\n },\n {\n dial_code: \"+1868\",\n code: \"TT\"\n },\n {\n dial_code: \"+216\",\n code: \"TN\"\n },\n {\n dial_code: \"+90\",\n code: \"TR\"\n },\n {\n dial_code: \"+993\",\n code: \"TM\"\n },\n {\n dial_code: \"+1649\",\n code: \"TC\"\n },\n {\n dial_code: \"+688\",\n code: \"TV\"\n },\n {\n dial_code: \"+256\",\n code: \"UG\"\n },\n {\n dial_code: \"+380\",\n code: \"UA\"\n },\n {\n dial_code: \"+971\",\n code: \"AE\"\n },\n {\n dial_code: \"+44\",\n code: \"GB\"\n },\n {\n dial_code: \"+1\",\n code: \"US\"\n },\n {\n dial_code: \"+598\",\n code: \"UY\"\n },\n {\n dial_code: \"+998\",\n code: \"UZ\"\n },\n {\n dial_code: \"+678\",\n code: \"VU\"\n },\n {\n dial_code: \"+58\",\n code: \"VE\"\n },\n {\n dial_code: \"+84\",\n code: \"VN\"\n },\n {\n dial_code: \"+1284\",\n code: \"VG\"\n },\n {\n dial_code: \"+1340\",\n code: \"VI\"\n },\n {\n dial_code: \"+681\",\n code: \"WF\"\n },\n {\n dial_code: \"+967\",\n code: \"YE\"\n },\n {\n dial_code: \"+260\",\n code: \"ZM\"\n },\n {\n dial_code: \"+263\",\n code: \"ZW\"\n }\n]\n\nexport default countryCodes;\n","import React from 'react';\nimport PropTypes from 'prop-types';\nimport { FormattedMessage } from 'react-intl';\nimport SelectInput from '../../Common/SelectInput2';\nimport TextInput from '../../Common/TextInputV2';\nimport Delete from '../../../icons/Delete';\nimport { phonePT } from '../../../BLL/general';\nimport countryCodes from '../../../BLL/locale/countryCodes';\nimport formStyle from '../../../css/form.module.scss';\nimport style from './contactForm.module.scss';\nimport '../../../css/formPage.scss';\n\nconst ContactPhone = ({ index, onChange, phone, removePhone, country, validator }) => {\n const selectedCountryCode = !phone.country_code ? countryCodes.find(elm => elm.code === country)?.dial_code : phone.country_code;\n const handlePhone = (ev, isValid) => {\n onChange(ev, isValid, index);\n };\n const telephoneSelect = ['Home', 'Primary', 'Work', 'Cellphone'];\n const btnStyle = { border: 0, padding: 0, backgroundColor: 'transparent' };\n let masks = '';\n switch (country) {\n case 'Brasil':\n case 'BR': {\n masks = ['(00) 0000-0000', '(00) 0 0000-0000'];\n break;\n }\n case 'GB': {\n masks = '(00) 0000 000000';\n break;\n }\n case 'MU': {\n masks = '00000000';\n break;\n }\n default:\n masks = '';\n break;\n }\n\n return (\n
\n
\n \n \n {countryCodes.map(elm =>\n \n )}\n \n\n
\n
\n \n {phone.phone !== undefined && (\n \n )}\n\n
\n
\n \n {phone.phone_type !== undefined && (\n \n \n {!!index &&\n \n \n \n }\n \n\n )}\n
\n {validator.message}\n
\n
\n
\n\n );\n};\n\nContactPhone.defaultProps = {\n onChange: () => {},\n country: 'BR',\n};\n\nContactPhone.propTypes = {\n index: PropTypes.number.isRequired,\n country: PropTypes.string.isRequired,\n onChange: PropTypes.func,\n phone: PropTypes.shape({\n phone: PropTypes.string,\n phone_type: PropTypes.string,\n }).isRequired,\n removePhone: PropTypes.func.isRequired,\n validator: PropTypes.shape({\n phone_type: PropTypes.bool,\n phone: PropTypes.bool,\n message: PropTypes.string\n }).isRequired,\n};\n\nexport default ContactPhone;\n","/* eslint-disable import/no-anonymous-default-export */\nexport default {\n en: [\n 'Son',\n 'Daughter',\n 'Grandson',\n 'Granddaughter',\n 'Son-in-law',\n 'Daughter-in-law',\n 'Friend (M)',\n 'Friend (F)',\n 'Nephew',\n 'Niece',\n 'Neighbor (M)',\n 'Neighbor (F)',\n 'Brother',\n 'Sister',\n 'Brother-in-law',\n 'Sister-in-law',\n 'Cousin (M)',\n 'Cousin (F)',\n 'Ambulance',\n 'Lobby',\n 'Not informed',\n 'Other'\n ],\n pt: [\n 'Filho',\n 'Filha',\n 'Neto',\n 'Neta',\n 'Genro',\n 'Nora',\n 'Amigo',\n 'Amiga',\n 'Sobrinho',\n 'Sobrinha',\n 'Vizinho',\n 'Vizinha',\n 'Irmão',\n 'Irmã',\n 'Cunhado',\n 'Cunhada',\n 'Primo',\n 'Prima',\n 'Ambulância',\n 'Portaria',\n 'Não informado',\n 'Outro'\n ]\n}\n","import React, { useEffect, useState } from \"react\";\nimport PropTypes from \"prop-types\";\nimport { connect } from \"react-redux\";\nimport axios from \"axios\";\nimport { FormattedMessage } from \"react-intl\";\nimport InputContainer from \"../../Common/InputContainer\";\nimport SelectInput from \"../../Common/SelectInput2\";\nimport CheckboxInput from \"../../Common/CheckboxInput\";\nimport ErrorComponent from \"../../Common/ErrorComponent\";\nimport ConfirmRemoveModal from \"../../Modal/ModalConfirm\";\nimport Telephone from \"./ContactPhone\";\nimport { getDomain, host, getToken } from \"../../../BLL/environment\";\nimport { contactActionPriority } from \"../../../BLL/dictionary\";\nimport { brazilCountryStateList } from \"../../../BLL/globals\";\nimport { validateMobile } from \"../../../BLL/validate\";\nimport countryCodes from \"../../../BLL/locale/countryCodes\";\nimport * as general from \"../../../BLL/general\";\nimport * as contactsActions from \"../../../actions/contactsActions\";\n\nimport broadcastMessages from \"../../../BLL/locale/messagesBroadcast\";\nimport countryList from \"../../../BLL/locale/messagesCountries\";\nimport relationshipList from \"../../../BLL/locale/messagesRelationships\";\n\nimport \"../../../css/block.scss\";\nimport \"../../../css/formPage.scss\";\nimport \"../../../css/form.scss\";\nimport \"../../../css/contactto.scss\";\nimport style from \"./contactForm.module.scss\";\nimport messagesRelationships from \"../../../BLL/locale/messagesRelationships\";\n\nconst ContactForm = (props) => {\n const lang = !localStorage.contacttoLang ? \"pt\" : localStorage.contacttoLang;\n const [isSaving, setIsSaving] = useState(false);\n const [showWarningModal, setShowWarningModal] = useState(false);\n const [client, setClient] = useState(undefined);\n const [priorityList, setPriorityList] = useState([]);\n const [error, setError] = useState(false);\n const [errorMsg, setErrorMsg] = useState(\"\");\n const [errorCode, setErrorCode] = useState(0);\n const [phones, setPhones] = useState([{ phone_type: \"Primary\", phone: \"\" }]);\n const [phoneValidator, setPhoneValidator] = useState([\n { phone_type: true, phone: false, message: \"\" },\n ]);\n const [selectedRelationship, setSelectedRelationship] = useState(\n messagesRelationships[lang][messagesRelationships[lang].length - 1]\n );\n const [contact, setContact] = useState({\n id: undefined,\n first_name: \"\",\n last_name: \"\",\n priority: \"\",\n relationship: \"\",\n client: props.match.params.clientId,\n email: \"\",\n street: \"\",\n number: \"\",\n complement: \"\",\n district: \"\",\n city: \"\",\n state: \"RS\",\n country: \"BR\",\n has_keys: false,\n zip_code: \"\",\n phones: [],\n actions: [],\n is_whitelisted: false,\n whitelist_email: false,\n is_contractor: false,\n });\n const [ isFamily, setIsFamily ] = useState(false)\n const [validator, setValidator] = useState({\n first_name: { validate: true, message: \"\" },\n last_name: { validate: true, message: \"\" },\n priority: { validate: true, message: \"\" },\n relationship: { validate: true, message: \"\" },\n email: { validate: true, message: \"\" },\n });\n const [actions, setActions] = useState([\n {\n priority: 1,\n receive_sms: false,\n receive_email: false,\n receive_whatsapp: false,\n },\n {\n priority: 2,\n receive_sms: false,\n receive_email: false,\n receive_whatsapp: false,\n },\n {\n priority: 3,\n receive_sms: false,\n receive_email: false,\n receive_whatsapp: false,\n },\n {\n priority: 4,\n receive_sms: false,\n receive_email: false,\n receive_whatsapp: false,\n },\n ]);\n const [actionValidator, setActionValidator] = useState({\n whatsAppCellphone: { isValid: true, message: \"\" },\n });\n const [countryStateList, setCountryStateList] = useState(\n brazilCountryStateList\n );\n\n const { loadContacts } = props;\n\n useEffect(() => {\n if (\n messagesRelationships[lang].some((rel) => rel === contact.relationship)\n ) {\n setSelectedRelationship(contact.relationship);\n } else {\n setSelectedRelationship(\n messagesRelationships[lang][messagesRelationships[lang].length - 1]\n );\n }\n }, [contact.relationship, lang]);\n\n useEffect(() => {\n loadClient(props.match.params.clientId);\n loadContacts(props.match.params.clientId);\n }, [loadContacts, props.match.params.clientId]);\n\n useEffect(() => {\n if (props.contacts.length > 0) {\n setContactUp(props.contacts);\n }\n }, [props.contacts.length]);\n\n useEffect(() => {\n const primaryPhone = phones.find((p) => p.phone_type === \"Primary\");\n if (primaryPhone) {\n let cellPhoneValidation = true;\n const phoneValue = general.removeNonDigit(primaryPhone.phone, true);\n if (contact.country === \"BR\" || contact.country === \"Brasil\") {\n cellPhoneValidation = validateMobile(phoneValue);\n }\n const hasWhatsAppMarked = actions.some(\n (action) => action.receive_whatsapp\n );\n\n if (hasWhatsAppMarked && !cellPhoneValidation) {\n setActionValidator(\n Object.assign({\n whatsAppCellphone: {\n isValid: false,\n message:\n \"Para utilizar o WhatsApp, o telefone PRIMÁRIO precisa ser um celular.\",\n },\n })\n );\n } else {\n setActionValidator(\n Object.assign({ whatsAppCellphone: { isValid: true, message: \"\" } })\n );\n }\n }\n }, [actions, phones, contact.country]);\n\n const closeErrorModal = () => {\n setError(false);\n setErrorMsg(\"\");\n setErrorCode(0);\n };\n\n const loadClient = (clientId) => {\n axios\n .get(`https://${getDomain()}${host()}/api/clients/${clientId}/`, {\n headers: { Authorization: `Token ${getToken()}` },\n })\n .then((res) => setClient(res.data))\n .catch((error) => console.log(error));\n };\n\n const setContactUp = (contactList) => {\n const { method } = props.match.params;\n const contactId =\n method === \"edit\" && parseInt(props.match.params.contactId, 10);\n const clientContacts = contactList.find(\n (contacts) => contacts.clientId === props.match.params.clientId\n );\n const newPriorityList = clientContacts.data.map((cont) => cont.priority);\n if (method === \"edit\") {\n const setUpContact = clientContacts.data.find((c) => c.id === contactId);\n let countryList = brazilCountryStateList;\n if (setUpContact.country !== \"BR\") {\n countryList = [\"-\"];\n }\n setIsFamily(setUpContact.is_family);\n const phoneList = setUpContact.phones.map((el) =>\n Object.assign({}, el, {\n phone: general.renderPhoneDigit(el.phone, setUpContact.country),\n })\n );\n setContact(\n Object.assign({}, setUpContact, {\n zip_code: general.setMask(setUpContact.zip_code, \"00000-000\"),\n })\n );\n setPhones(phoneList.sort((a, b) => a.id - b.id));\n setPhoneValidator(\n setUpContact.phones.map(() => ({\n phone_type: true,\n phone: true,\n message: \"\",\n }))\n );\n setActions([...setUpContact.actions]);\n setCountryStateList(countryList);\n }\n setPriorityList(newPriorityList);\n };\n\n const setContactState = (ev) => {\n const field = ev.target.name;\n const value = ev.target.value;\n\n setFormValue({ field, value });\n setValidation({ field, value });\n };\n\n const setFormValue = ({ field, value }) => {\n let newContact = Object.assign({}, contact);\n switch (field) {\n case \"zip_code\": {\n newContact[field] =\n newContact === \"BR\" ? general.zipCode(value) : value;\n break;\n }\n case \"priority\": {\n newContact[field] = parseInt(value, 10);\n break;\n }\n default:\n newContact[field] = value;\n }\n setContact(Object.assign({}, newContact));\n };\n\n const setRelationship = (e) => {\n const value = e.target.value;\n setSelectedRelationship(e.target.value);\n // If different than Other/Outro (last item in message relationship list)\n if (\n value !==\n messagesRelationships[lang][messagesRelationships[lang].length - 1]\n ) {\n setContact(Object.assign({}, contact, { relationship: value }));\n setValidator(\n Object.assign({}, validator, {\n relationship: { validate: true, message: \"\" },\n })\n );\n }\n };\n\n const setValidation = ({ field, value }) => {\n let newValidator = Object.assign({}, validator);\n switch (field) {\n case \"first_name\":\n case \"last_name\":\n case \"email\": {\n const validLength = value.length >= 2;\n newValidator[field].validate = validLength;\n if (!validLength) {\n newValidator[field].message = (\n \n );\n } else {\n newValidator[field].validate = true;\n newValidator[field].message = \"\";\n }\n break;\n }\n case \"relationship\": {\n const validLength = value.length >= 2;\n newValidator[field].validate = validLength;\n if (!validLength) {\n newValidator[field].message = (\n \n );\n } else {\n const firstCharUppercase = value[0] === value[0].toUpperCase();\n if (firstCharUppercase) {\n newValidator[field].validate = true;\n newValidator[field].message = \"\";\n } else {\n newValidator[field].validate = false;\n newValidator[field].message = (\n \n );\n }\n }\n break;\n }\n case \"priority\": {\n const onPriorityList = priorityList.includes(parseInt(value, 10));\n newValidator[field].validate = !onPriorityList;\n if (onPriorityList) {\n newValidator[field].message = (\n \n );\n } else {\n newValidator[field].validate = true;\n newValidator[field].message = \"\";\n }\n break;\n }\n default:\n break;\n }\n setValidator(Object.assign({}, newValidator));\n };\n\n const setContactCountry = (ev) => {\n const field = ev.target.name;\n const value = ev.target.value;\n\n const newContact = Object.assign({}, contact);\n\n if (field === \"country\" && newContact.country !== value) {\n newContact.country = value;\n newContact.zip_code = \"\";\n\n if (value === \"BR\") {\n newContact.state = \"AC\";\n setCountryStateList([\n \"AC\",\n \"AL\",\n \"AM\",\n \"AP\",\n \"BA\",\n \"CE\",\n \"DF\",\n \"ES\",\n \"GO\",\n \"MA\",\n \"MG\",\n \"MS\",\n \"MT\",\n \"PA\",\n \"PB\",\n \"PE\",\n \"PI\",\n \"PR\",\n \"RJ\",\n \"RN\",\n \"RO\",\n \"RR\",\n \"RS\",\n \"SC\",\n \"SP\",\n \"SE\",\n \"TO\",\n ]);\n } else {\n newContact.state = \"-\";\n setCountryStateList([\"-\"]);\n }\n setPhones(\n phones.map((phone) => ({\n phone: \"\",\n phone_type: phone.phone_type,\n contact: newContact.id,\n }))\n );\n setPhoneValidator(\n phoneValidator.map(() => ({\n phone_type: true,\n phone: false,\n message: \"\",\n }))\n );\n setContact(Object.assign({}, newContact));\n }\n };\n\n const handlePhone = (event, isValid, index) => {\n const name = event.target.name;\n const value = event.target.value ? event.target.value : \" \";\n\n const newPhoneList = phones.map((el, i) => {\n if (i === index) {\n if (name === \"phone_type\") {\n return Object.assign({}, el, { phone_type: value });\n }\n if (name === \"phone\") {\n return Object.assign({}, el, { phone: value });\n }\n if (name === \"country_code\") {\n return Object.assign({}, el, { country_code: value });\n }\n }\n return Object.assign({}, el);\n });\n\n const newPhoneValidator = phoneValidator.map((validator, i) => {\n if (i === index) {\n if (name === \"phone_type\") {\n if (value === \"Primary\") {\n const hasMultiplePrimaries =\n newPhoneList.filter((phone) => phone.phone_type === \"Primary\")\n .length > 1;\n if (hasMultiplePrimaries) {\n return Object.assign(\n {},\n validator,\n { phone_type: false },\n { message: \"Multiplos telefones primários detectados\" }\n );\n }\n }\n\n const hasOnePrimary = newPhoneList.some(\n (p) => p.phone_type === \"Primary\"\n );\n\n if (!hasOnePrimary) {\n return Object.assign(\n {},\n validator,\n { phone_type: false },\n { message: \"Necessário pelo menos um telefone primário\" }\n );\n }\n return Object.assign(\n {},\n validator,\n { phone_type: isValid },\n { message: \"\" }\n );\n }\n if (name === \"phone\") {\n return Object.assign({}, validator, { phone: isValid });\n }\n }\n return Object.assign({}, validator);\n });\n\n setPhones(newPhoneList);\n setPhoneValidator(newPhoneValidator);\n };\n\n const handleActions = (event, index) => {\n const name = event.target.name;\n const value = event.target.value;\n\n const newActions = actions.map((el, i) => {\n if (i === index) {\n if (name === \"receive_sms\") {\n return Object.assign({}, el, { receive_sms: value });\n }\n if (name === \"receive_email\") {\n return Object.assign({}, el, { receive_email: value });\n }\n if (name === \"receive_whatsapp\") {\n return Object.assign({}, el, { receive_whatsapp: value });\n }\n }\n return Object.assign({}, el);\n });\n\n setActions(newActions);\n };\n\n const processError = (err) => {\n const response = err.response;\n if (response) {\n const errCode = response.status;\n let errMsg = \"\";\n if (response.data) {\n console.log(response.data);\n const dataKey = Object.keys(response.data)[0];\n switch (dataKey) {\n case \"email\": {\n errMsg = (\n \n );\n break;\n }\n case \"non_field_errors\":\n if (response.data[dataKey][0] === \"No primary phone\") {\n errMsg = \n } else if (response.data[dataKey][0] === \"Two primary phones\") {\n errMsg = \n } else {\n errMsg = response.data[dataKey][0];\n }\n break;\n default: {\n if (response.data[dataKey] === 'Family adm already exists') {\n errMsg = \n } else {\n errMsg = response.data[dataKey][0];\n }\n break;\n }\n }\n }\n setError(true);\n setIsSaving(false);\n setErrorCode(errCode);\n setErrorMsg(errMsg);\n }\n };\n\n const saveContact = () => {\n console.log(isFamily);\n const { method } = props.match.params;\n const lang = !localStorage.contacttoLang\n ? \"pt\"\n : localStorage.contacttoLang;\n const serverPhones = phones.map((el) =>\n Object.assign({}, el, { phone: general.removeNonDigit(el.phone, \"join\") })\n );\n const serverActions = actions.map((el) => Object.assign({}, el));\n const serverContact = Object.assign(\n {},\n contact,\n { number: contact.number ? contact.number : 0 },\n { zip_code: general.removeNonDigit(contact.zip_code, true) },\n { actions: serverActions },\n { phones: serverPhones },\n { family_adm_flag: isFamily }\n );\n const text = `${broadcastMessages[lang][\"broadcast.contact\"]} ${\n contact.first_name\n } ${contact.last_name} ${\n method === \"edit\"\n ? broadcastMessages[lang][\"broadcast.updated\"]\n : broadcastMessages[lang][\"broadcast.added\"]\n }`;\n setIsSaving(true);\n if (method === \"edit\") {\n props\n .editContact(props.match.params.clientId, serverContact)\n .then(() => {\n general.broadcast(axios, props.channelId, {\n type: \"contact\",\n method: \"toggle\",\n clientId: props.match.params.clientId,\n userId: props.loggedAttendantId,\n contact: serverContact,\n text,\n });\n props.history.push(\n `/app/contacts/list/${props.match.params.clientId}`\n );\n })\n .catch((err) => processError(err));\n } else {\n props\n .createContact(props.match.params.clientId, serverContact)\n .then((res) => {\n general.broadcast(axios, props.channelId, {\n type: \"contact\",\n method: \"create\",\n clientId: props.match.params.clientId,\n userId: props.loggedAttendantId,\n contact: res.contact,\n text,\n });\n props.history.push(\n `/app/contacts/list/${props.match.params.clientId}`\n );\n })\n .catch((err) => processError(err));\n }\n };\n\n const destroyContact = () => {\n const text = `${broadcastMessages[lang][\"broadcast.contact\"]} ${contact.first_name} ${contact.last_name} ${broadcastMessages[lang][\"broadcast.deleted\"]}`;\n props\n .destroyContact(props.match.params.clientId, contact)\n .then(() => {\n general.broadcast(axios, props.channelId, {\n type: \"contact\",\n method: \"edit\",\n clientId: props.match.params.clientId,\n userId: props.loggedAttendantId,\n contact,\n text,\n });\n props.history.push(`/app/contacts/list/${props.match.params.clientId}`);\n })\n .catch((err) => console.log(err));\n };\n\n const addPhone = () => {\n const newPhones = [\n ...phones,\n {\n phone_type: \"\",\n phone: \"\",\n contact: props.match.params.contactId,\n },\n ];\n const newPhoneValidator = [\n ...phoneValidator,\n {\n phone_type: false,\n phone: false,\n message: \"\",\n },\n ];\n\n setPhones(newPhones);\n setPhoneValidator(newPhoneValidator);\n };\n\n const removePhone = (event, index) => {\n const newPhones = [...phones.slice(0, index), ...phones.slice(index + 1)];\n const newPhoneValidator = [\n ...phoneValidator.slice(0, index),\n ...phoneValidator.slice(index + 1),\n ];\n setPhones(newPhones);\n setPhoneValidator(newPhoneValidator);\n };\n const isFormValidated = Object.keys(validator).every(\n (el) => contact[el] !== \"\" && validator[el].validate\n );\n const arePhonesValidated = Object.keys(phoneValidator).every(\n (el) =>\n phoneValidator[el].phone === true &&\n phoneValidator[el].phone_type === true\n );\n const isWhatsAppValid = actionValidator.whatsAppCellphone.isValid;\n const haveOnePrimary = phones.some((p) => p.phone_type === \"Primary\");\n const activeSaveBtn =\n isFormValidated && arePhonesValidated && haveOnePrimary && isWhatsAppValid;\n const title =\n props.match.params.method === \"edit\" ? (\n \n ) : (\n \n );\n return (\n <>\n {error && (\n \n )}\n\n {showWarningModal && (\n setShowWarningModal(false)}\n message=\"Aviso, esta opção vai excluir este contato de emergência, você tem certeza disso?\"\n />\n )}\n\n
\n {client && (\n
\n {title}{\" \"}\n \n {`${client.first_name} ${client.last_name}`.toUpperCase()}\n \n
\n )}\n\n {contact && (\n
\n
\n \n
\n
\n {client && (\n \n \n \n :{\" \"}\n \n {client.account}\n
\n )}\n
\n
\n \n }\n validator={validator.first_name}\n isRequired\n value={contact.first_name}\n />\n
\n
\n \n }\n validator={validator.last_name}\n isRequired\n value={contact.last_name}\n />\n
\n
\n \n }\n validator={validator.priority}\n isRequired\n type=\"number\"\n value={contact.priority}\n />\n
\n
\n \n \n
\n
\n \n setIsFamily(e.target.value)}\n emptyOption={false}\n name=\"is_family\"\n />\n
\n
\n \n \n
\n
\n \n
\n
\n \n setRelationship(e)}\n name=\"relationshipList\"\n />\n
\n {selectedRelationship ===\n messagesRelationships[lang][\n messagesRelationships[lang].length - 1\n ] && (\n
\n \n }\n validator={validator.relationship}\n isRequired\n value={contact.relationship}\n />\n
\n )}\n
\n
\n
\n \n
\n
\n \n
\n \n }\n value={contact.street}\n />\n
\n
\n \n }\n value={contact.number}\n />\n
\n
\n \n }\n value={contact.complement}\n />\n
\n
\n \n }\n value={contact.district}\n />\n
\n
\n \n }\n value={contact.city}\n />\n
\n
\n \n \n
\n
\n \n }\n value={contact.zip_code}\n />\n
\n
\n \n \n
\n
\n
\n {phones &&\n phones.map((el, index) => (\n
\n removePhone(ev, index)}\n />\n
\n ))}\n
\n \n \n \n \n {\" \"}\n \n \n \n \n\n
\n \n
\n
\n
\n
\n
\n
\n \n Email\n
\n \n SMS\n
\n {props.isSysUser &&\n props.globalConfiguration?.can_use_whatsapp && (\n \n Whatsapp\n
\n )}\n
\n
\n {actions &&\n actions\n .sort((actA, actB) => actA.priority - actB.priority)\n .map((action, index) => (\n \n
\n {contactActionPriority(action.priority, \"fromServer\")}\n
\n
\n handleActions(ev, index)}\n />\n
\n
\n handleActions(ev, index)}\n />\n
\n {props.isSysUser &&\n props.globalConfiguration?.can_use_whatsapp && (\n
\n handleActions(ev, index)}\n />\n
\n )}\n \n ))}\n
\n
\n {actionValidator.whatsAppCellphone.message}\n
\n
\n \n \n
\n \n props.history.push(\n `/app/contacts/list/${props.match.params.clientId}`\n )\n }\n >\n \n \n \n \n \n {activeSaveBtn ? (\n \n \n {\" \"}\n \n {\" \"}\n \n \n ) : (\n \n \n {\" \"}\n \n \n \n \n \n \n \n {!isFormValidated && (\n \n \n \n )}\n {!arePhonesValidated && haveOnePrimary && (\n \n \n \n )}\n \n \n )}\n {props.isSysAdmin && props.match.params.method === \"edit\" && (\n {\n setShowWarningModal(true);\n window.scrollTo({ top: 0, behavior: \"smooth\" });\n }}\n >\n \n \n \n \n \n )}\n
\n \n )}\n \n \n );\n};\n\nContactForm.propTypes = {\n loggedAttendantId: PropTypes.number.isRequired,\n channelId: PropTypes.string.isRequired,\n isSysAdmin: PropTypes.bool.isRequired,\n contacts: PropTypes.arrayOf(\n PropTypes.shape({\n id: PropTypes.number,\n first_name: PropTypes.string,\n last_name: PropTypes.string,\n email: PropTypes.string,\n street: PropTypes.string,\n number: PropTypes.number,\n complement: PropTypes.string,\n district: PropTypes.string,\n city: PropTypes.string,\n state: PropTypes.string,\n country: PropTypes.string,\n zip_code: PropTypes.string,\n has_keys: PropTypes.bool,\n relationship: PropTypes.string,\n priority: PropTypes.number,\n client: PropTypes.number,\n is_active: PropTypes.bool,\n created_date: PropTypes.string,\n modified_date: PropTypes.string,\n actions: PropTypes.arrayOf(\n PropTypes.shape({\n id: PropTypes.number,\n priority: PropTypes.number,\n contact: PropTypes.number,\n receive_sms: PropTypes.bool,\n receive_email: PropTypes.bool,\n })\n ),\n phones: PropTypes.arrayOf(\n PropTypes.shape({\n id: PropTypes.number,\n phone_type: PropTypes.string,\n phone: PropTypes.string,\n })\n ),\n })\n ).isRequired,\n editContact: PropTypes.func.isRequired,\n createContact: PropTypes.func.isRequired,\n loadContacts: PropTypes.func.isRequired,\n};\n\nfunction mapStateToProps(state, ownProps) {\n return {\n contacts: state.contacts,\n params: ownProps.params,\n equipment: state.equipment.length > 0 && state.equipment[0].data,\n loggedAttendantId: state.loggedAttendant.id ? state.loggedAttendant.id : 0,\n isSysUser: state.loggedAttendant.groups.length === 1,\n isSysAdmin: state.loggedAttendant.groups\n ? (state.loggedAttendant.groups[0] === 1 ||\n state.loggedAttendant.groups[0] === 4) &&\n state.loggedAttendant.groups.length === 1\n : false,\n globalConfiguration: state.globalConfiguration.global,\n };\n}\n\nfunction mapDispatchToProps(dispatch) {\n return {\n loadContacts: (clientId, ordering) =>\n dispatch(contactsActions.loadContacts(clientId, ordering)),\n editContact: (clientId, contact) =>\n dispatch(contactsActions.editContact(clientId, contact)),\n createContact: (clientId, contact) =>\n dispatch(contactsActions.createContact(clientId, contact)),\n destroyContact: (clientId, contact) =>\n dispatch(contactsActions.destroyContact(clientId, contact)),\n };\n}\n\nexport default connect(mapStateToProps, mapDispatchToProps)(ContactForm);\n","import React from 'react';\nimport PropTypes from 'prop-types';\nimport { Link } from 'react-router-dom';\nimport { FormattedMessage } from 'react-intl';\nimport Edit from '../../../icons/Edit';\n\nimport style from './transmitterPage.module.scss';\n\nconst TransmitterRow = ({\n transmitter,\n isAdmin,\n isOwner,\n isManager,\n setTextIconDetail,\n setModalInfo,\n showModal,\n}) => {\n const setEmptyText = () => {\n setTextIconDetail('');\n };\n return (\n
\n \n
\n {transmitter.zone}\n
\n
\n {transmitter.description}\n
\n \n
\n {/* setTextIconDetail()}\n onMouseOut={() => setTextIconDetail('')}\n to={`/app/transmitters/detail/${transmitter.client}/${transmitter.id}`}\n >\n \n */}\n {(isAdmin || isOwner || isManager) &&\n setTextIconDetail()}\n onMouseOut={() => setTextIconDetail('')}\n to={`/app/transmitters/form/edit/${transmitter.client}/${transmitter.id}`}\n >\n \n \n }\n {(isAdmin || isOwner || isManager) &&\n \n setTextIconDetail()}\n onMouseOut={() => setTextIconDetail('')}\n onClick={() => {\n if (!showModal) {\n setModalInfo(true, transmitter);\n }\n }}\n className={style.actions}\n style={{ border: 0, backgroundColor: 'transparent', padding: 0 }}>\n
\n \n
\n }\n
\n
\n );\n};\n\nTransmitterRow.propTypes = {\n showModal: PropTypes.bool.isRequired,\n transmitter: PropTypes.shape({\n id: PropTypes.number,\n zone: PropTypes.string,\n client: PropTypes.number,\n description: PropTypes.string,\n identifier: PropTypes.string,\n general_info: PropTypes.string,\n created_date: PropTypes.string,\n modified_date: PropTypes.string,\n created_by: PropTypes.number,\n modified_by: PropTypes.number,\n }).isRequired,\n isAdmin: PropTypes.bool.isRequired,\n isOwner: PropTypes.bool.isRequired,\n isManager: PropTypes.bool.isRequired,\n setTextIconDetail: PropTypes.func.isRequired,\n setModalInfo: PropTypes.func.isRequired,\n};\n\nexport default TransmitterRow;\n","import React from 'react';\nimport PropTypes from 'prop-types';\nimport { Link } from 'react-router-dom';\nimport { FormattedMessage } from 'react-intl';\nimport Edit from '../../../icons/Edit';\n\n\nimport style from './transmitterPage.module.scss';\nimport '../../../css/row.scss';\n\nclass TransmitterMobileRow extends React.Component {\n constructor(props) {\n super(props);\n this.state = {\n expanded: false,\n showModal: false,\n };\n this.toggleLogExtra = this.toggleLogExtra.bind(this);\n }\n\n toggleLogExtra() {\n this.setState(prevState => ({\n expanded: !prevState.expanded,\n }));\n }\n\n render() {\n const { expanded } = this.state;\n const {\n transmitter,\n isAdmin,\n isOwner,\n isManager,\n setModalInfo,\n showModal,\n } = this.props;\n const list = `/app/transmitters/detail/${transmitter.id}`;\n const transmitters = `/app/transmitters/list/${transmitter.id}`;\n const edit = `/app/transmitters/form/edit/${transmitter.id}`;\n const btnStyle = { border: 0, backgroundColor: 'transparent', padding: 0 };\n return (\n
\n \n
\n {transmitter.zone}\n
\n
\n {transmitter.description}\n
\n
\n \n
\n
\n
\n\n this.props.setTextIconDetail()}\n onMouseOut={() => this.props.setTextIconDetail('')}\n to={`/app/transmitters/detail/${transmitter.client}/${transmitter.id}`}\n >\n \n {/* */}\n \n {/* setTextIconDetail()}\n onMouseOut={() => setTextIconDetail('')}\n to={`/app/contacts/detail/${contact.client}/${contact.id}`}\n >\n \n */}\n {(isAdmin || isOwner || isManager) &&\n this.props.setTextIconDetail()}\n onMouseOut={() => this.props.setTextIconDetail('')}\n to={`/app/transmitters/form/edit/${transmitter.client}/${transmitter.id}`}\n >\n \n \n }\n {(isAdmin || isOwner || isManager) &&\n this.props.setTextIconDetail()}\n onMouseOut={() => this.props.setTextIconDetail('')}\n onClick={() => {\n if (!showModal) {\n setModalInfo(true, transmitter);\n }\n }}\n className={style.actions}\n style={{ border: 0, backgroundColor: 'transparent', padding: 0 }}\n >\n
\n \n
\n }\n
\n \n );\n }\n}\n\nTransmitterMobileRow.propTypes = {\n transmitter: PropTypes.shape({\n id: PropTypes.number,\n zone: PropTypes.string,\n client: PropTypes.number,\n description: PropTypes.string,\n identifier: PropTypes.string,\n general_info: PropTypes.string,\n created_date: PropTypes.string,\n modified_date: PropTypes.string,\n created_by: PropTypes.number,\n modified_by: PropTypes.number,\n is_deleted: PropTypes.bool,\n }).isRequired,\n isAdmin: PropTypes.bool.isRequired,\n isOwner: PropTypes.bool.isRequired,\n isManager: PropTypes.bool.isRequired,\n showModal: PropTypes.bool.isRequired,\n setModalInfo: PropTypes.func.isRequired,\n};\n\nexport default TransmitterMobileRow;\n","import * as types from './actionTypes';\nimport * as errorsActions from './errorsActions';\nimport * as globals from '../globals/globals';\nimport { host, getDomain, getToken } from '../BLL/environment';\n\nexport function loadTransmittersSuccess(transmitters, clientId, ordering) {\n return { type: types.LOAD_TRANSMITTERS_SUCCESS, transmitters, clientId, ordering };\n}\n\nexport function transmitterAdded(transmitter, clientId) {\n return { type: types.NEW_TRANSMITTER, transmitter, clientId };\n}\n\nexport function transmitterUpdated(transmitter, clientId) {\n return { type: types.EDIT_TRANSMITTER, transmitter, clientId };\n}\n\nexport function transmitterDeleted(transmitterId, clientId) {\n return { type: types.REMOVE_TRANSMITTER, transmitterId, clientId };\n}\n\nexport function loadTransmitters(clientId, ordering = globals.transmittersOrdering) {\n const domain = getDomain();\n const token = getToken();\n\n return (dispatch, getState, { axios }) => Promise.resolve(\n axios({\n method: 'get',\n url: `https://${domain}${host()}/api/clients/${clientId}/transmitter/?ordering=${ordering}`,\n headers: { Authorization: `Token ${token}` },\n })\n .then((resp) => {\n dispatch(loadTransmittersSuccess(resp.data, clientId, ordering));\n }).catch((error) => {\n if (error.response) {\n if (error.response.status === 401) {\n dispatch(errorsActions.logout());\n }\n }\n }),\n );\n}\n\nexport function createTransmitter(clientId, transmitter) {\n const domain = getDomain();\n const token = getToken();\n\n return (dispatch, getState, { axios }) => new Promise((resolve, reject) =>\n axios({\n method: 'post',\n responseType: 'json',\n url: `https://${domain}${host()}/api/clients/${clientId}/transmitter/`,\n data: transmitter,\n headers: { Authorization: `Token ${token}` },\n })\n .then(res => resolve(dispatch(transmitterAdded(res.data, clientId))))\n .catch((error) => {\n if (error.response) {\n if (error.response.status === 401) {\n reject(dispatch(errorsActions.logout()));\n }\n }\n return reject(error);\n }),\n );\n}\n\nexport function editTransmitter(clientId, transmitter) {\n const domain = getDomain();\n const token = getToken();\n\n return (dispatch, getState, { axios }) => new Promise((resolve, reject) =>\n axios({\n method: 'put',\n responseType: 'json',\n url: `https://${domain}${host()}/api/clients/${clientId}/transmitter/${transmitter.id}/`,\n data: transmitter,\n headers: { Authorization: `Token ${token}` },\n })\n .then(() => resolve(dispatch(transmitterUpdated(transmitter, clientId))))\n .catch((error) => {\n if (error.response) {\n if (error.response.status === 401) {\n reject(dispatch(errorsActions.logout()));\n }\n }\n return reject(error);\n }),\n )\n}\n\nexport function deleteTransmitter(clientId, transmitterId) {\n const domain = getDomain();\n const token = getToken();\n\n return (dispatch, getState, { axios }) => Promise.resolve(\n axios({\n method: 'delete',\n url: `https://${domain}${host()}/api/clients/${clientId}/transmitter/${transmitterId}/`,\n headers: { Authorization: `Token ${token}` },\n })\n .then(() => dispatch(transmitterDeleted(transmitterId, clientId)))\n .catch((error) => {\n if (error.response) {\n if (error.response.status === 401) {\n dispatch(errorsActions.logout());\n }\n }\n }),\n );\n}\n","import React, { useState, useEffect } from 'react';\nimport PropTypes from 'prop-types';\nimport { useSelector, useDispatch } from 'react-redux';\nimport axios from 'axios';\nimport { FormattedMessage } from 'react-intl';\nimport TransmitterRow from './TransmitterRow';\nimport TransmitterMobileRow from './TransmitterMobileRow';\nimport ConfirmRemoveModal from '../../Modal/ModalConfirmRemove';\nimport Order from '../../../icons/Order';\nimport { getDomain, host, getToken } from '../../../BLL/environment';\nimport { getBrowserMaxWidth, broadcast } from '../../../BLL/general';\nimport broadcastMessages from '../../../BLL/locale/messagesBroadcast';\nimport * as globals from '../../../BLL/globals';\nimport * as transmitterActions from '../../../actions/transmittersActions';\n\nimport style from './transmitterPage.module.scss';\n\nimport '../../../css/icons.scss';\nimport '../../../css/middle.scss';\nimport '../../../css/buttons.scss';\n\nimport '../../../css/listPage.scss';\n\nconst TransmitterPage = (props) => {\n const browserWidth = getBrowserMaxWidth();\n const {\n transmitters,\n loggedUser,\n lang,\n isOwner,\n isAdmin,\n isManager,\n } = useSelector(state => ({\n transmitters: state.transmitters,\n loggedUser: state.loggedAttendant,\n lang: state.locale.lang,\n isOwner: state.loggedAttendant.groups ? state.loggedAttendant.groups[0] === 4 : false,\n isAdmin: state.loggedAttendant.groups ? state.loggedAttendant.groups[0] === 1 : false,\n isManager: state.loggedAttendant.groups ? state.loggedAttendant.groups[0] === 2 : false,\n }));\n\n const dispatch = useDispatch();\n\n const deleteTransmitter = (clientId, transmitterId) => dispatch(transmitterActions.deleteTransmitter(clientId, transmitterId));\n\n const [transmitter, setTransmitter] = useState(undefined);\n const [client, setClient] = useState(undefined);\n const [order, setOrder] = useState('zone');\n const [transmitterList, setTransmitterList] = useState([]);\n const [iconDetail, setIconDetail] = useState('');\n const [showModal, setShowModal] = useState(false);\n\n useEffect(() => {\n const loadClient = (clientId) => {\n axios.get(`https://${getDomain()}${host()}/api/clients/${clientId}/`, {\n headers: { Authorization: `Token ${getToken()}` },\n }).then(res => setClient(res.data))\n .catch(error => console.log(error));\n }\n\n if (props.match.params.clientId) {\n loadClient(props.match.params.clientId);\n }\n }, [props.match.params.clientId]);\n\n useEffect(() => {\n const loadTransmitters = (clientId, ordering) => dispatch(transmitterActions.loadTransmitters(clientId, ordering));\n const orderedTransmitters = transmitters.filter(tr => tr.ordering === order && tr.clientId === props.match.params.clientId)[0]\n\n if (orderedTransmitters) {\n setTransmitterList([...orderedTransmitters.data]);\n } else {\n loadTransmitters(props.match.params.clientId, order);\n }\n }, [transmitters, order, props.match.params.clientId, dispatch]);\n\n const setModalInfo = (showModal, transmitter) => {\n setShowModal(showModal);\n setTransmitter(transmitter);\n };\n\n const orderByZone = () => {\n const ordering = order === 'zone' ? '-zone' : 'zone';\n setOrder(ordering);\n };\n\n const orderByDescription = () => {\n const ordering = order === 'description,zone' ? '-description,-zone' : 'description,zone';\n setOrder(ordering);\n };\n\n const removeTransmitter = () => {\n const clientId = client.id;\n const text = `${broadcastMessages[lang]['broadcast.transmitter']} ${transmitter.description} ${broadcastMessages[lang]['broadcast.zone']} (${transmitter.zone}) ${broadcastMessages[lang]['broadcast.deleted']}`;\n deleteTransmitter(clientId, transmitter.id).then(() => {\n broadcast(axios, props.channelId, {\n type: 'transmitter',\n method: 'delete',\n clientId: clientId,\n userId: loggedUser.id,\n transmitterId: transmitter.id,\n text\n });\n setShowModal(false);\n setTransmitter(undefined);\n });\n };\n\n const svgZoneRotation = order === '-zone' ? style.rotate : '';\n const svgDescriptionRotation = order === '-description,-zone' ? style.rotate : '';\n\n return (\n
\n {client &&\n
\n \n  \n {` ${client.first_name} ${client.last_name}`.toUpperCase()}\n \n {transmitterList.length < globals.maxTransmitters && (isAdmin || isOwner || isManager) &&\n props.history.push(`/app/transmitters/form/add/${props.match.params.clientId}`)}\n type=\"button\"\n >\n \n + \n \n \n }\n
\n
\n : \n \n {client.account}\n \n
\n
\n }\n {transmitterList &&\n
\n {showModal &&\n \n }\n
\n
\n
\n \n \n \n
\n
\n \n \n \n
\n
\n
\n {iconDetail}\n
\n
\n
\n }\n {browserWidth > 650\n ?\n
\n {transmitterList?.map(tr =>\n \n )}\n
\n :\n
\n {transmitterList?.map(tr => \n \n )}\n
\n }\n
\n );\n};\n\nTransmitterPage.propTypes = {\n channelId: PropTypes.string.isRequired,\n params: PropTypes.shape({\n clientId: PropTypes.string.isRequired,\n }).isRequired,\n};\n\nexport default TransmitterPage;\n","import React from 'react';\nimport PropTypes from 'prop-types';\nimport { FormattedMessage } from 'react-intl';\nimport * as general from '../../../BLL/general';\n\nconst TransmitterComponent = ({ transmitter, creator, modifier, titleClass, persNumber, useForSecondary }) => (\n
\n
\n
\n
\n { !!persNumber &&\n
\n : \n {persNumber}\n
\n }\n
\n \n {transmitter.identifier}\n
\n
\n \n {transmitter.zone}\n
\n
\n \n {transmitter.description}\n
\n
\n \n : \n \n \n {useForSecondary\n ? \n : \n }\n \n
\n
\n : \n {transmitter.general_info ? transmitter.general_info : '-'}\n
\n
\n
\n
\n
LOGS
\n
\n
\n : \n {transmitter.created_date ? general.formatOnlyNumbersDate(transmitter.created_date) : '-'}\n
\n
\n : \n {creator}\n
\n
\n : \n {transmitter.created_date ? general.formatOnlyNumbersDate(transmitter.modified_date) : '-'}\n
\n
\n : \n {modifier}\n
\n
\n
\n
\n);\n\nTransmitterComponent.defaultProps = {\n titleClass: '',\n persNumber: '',\n creator: '-',\n modifier: '-',\n};\n\nTransmitterComponent.propTypes = {\n transmitter: PropTypes.shape({\n id: PropTypes.number,\n zone: PropTypes.string,\n client: PropTypes.number,\n description: PropTypes.string,\n identifier: PropTypes.string,\n general_info: PropTypes.string,\n created_date: PropTypes.string,\n modified_date: PropTypes.string,\n created_by: PropTypes.number,\n modified_by: PropTypes.number,\n }).isRequired,\n titleClass: PropTypes.string,\n persNumber: PropTypes.string,\n creator: PropTypes.string,\n modifier: PropTypes.string,\n};\n\nexport default TransmitterComponent;\n","import React, { useState, useEffect } from 'react';\nimport PropTypes from 'prop-types';\nimport axios from 'axios';\nimport { useSelector, useDispatch } from 'react-redux';\nimport { FormattedMessage } from 'react-intl';\nimport Transmitter from './TransmitterComponent';\nimport * as transmittersActions from '../../../actions/transmittersActions';\nimport { getDomain, host, getToken } from '../../../BLL/environment';\n\nimport '../../../css/detailPage.scss';\nimport '../../../css/block.scss';\n\nconst TransmitterDetail = (props) => {\n const {\n clientId,\n transmitterId,\n } = props.match.params;\n\n const {\n clients,\n transmitters,\n attendants\n } = useSelector(state => ({\n clients: state.clients,\n transmitters: state.transmitters,\n attendants: state.attendants.length > 0 ? [...state.attendants[0].data] : [],\n }));\n\n const dispatch = useDispatch();\n\n const [transmitter, setTransmitter] = useState(undefined);\n const [client, setClient] = useState(undefined);\n const [useForSecondary, setUseForSecondary] = useState(false);\n\n useEffect(() => {\n const loadTransmitters = (clientId, order) => dispatch(transmittersActions.loadTransmitters(clientId, order));\n const loadClient = (clientId) => {\n axios.get(`https://${getDomain()}${host()}/api/clients/${clientId}/`, {\n headers: { Authorization: `Token ${getToken()}` },\n }).then(res => {\n setClient(res.data);\n })\n .catch(error => console.log(error));\n };\n loadClient(clientId);\n loadTransmitters(clientId, 'zone');\n }, [clientId, dispatch]);\n\n useEffect(() => {\n if (transmitters.length > 0) {\n const clientTransmitters = transmitters.filter(tr => tr.clientId === clientId)[0].data;\n const newTransmitter = clientTransmitters.find(tr => tr.id === parseInt(transmitterId, 10));\n setTransmitter(newTransmitter);\n if (newTransmitter.secondary > 0) {\n setUseForSecondary(true);\n }\n }\n }, [transmitters, clientId, transmitterId]);\n\n const creator = transmitter ? attendants.filter(attendant => attendant.id === transmitter.created_by)[0] : undefined;\n const modifier = transmitter ? attendants.filter(attendant => attendant.id === transmitter.modified_by)[0] : undefined;\n\n return (\n
\n {client &&\n
\n
\n {`${client.first_name} ${client.last_name}`.toUpperCase()}\n
\n {transmitter &&\n \n }\n
\n }\n
\n );\n};\n\nTransmitterDetail.propTypes = {\n params: PropTypes.object.isRequired,\n};\n\nexport default TransmitterDetail;\n","import React, { useState, useEffect } from 'react';\nimport PropTypes from 'prop-types';\nimport { useDispatch, useSelector } from 'react-redux';\nimport { FormattedMessage } from 'react-intl';\nimport axios from 'axios';\nimport CheckboxInput from '../../Common/CheckboxInput';\nimport InputContainer from \"../../Common/InputContainer\";\nimport ErrorComponent from '../../Common/ErrorComponent';\nimport { getDomain, host, getToken } from '../../../BLL/environment';\nimport { broadcast } from '../../../BLL/general';\nimport * as transmittersActions from '../../../actions/transmittersActions';\nimport broadcastMessages from '../../../BLL/locale/messagesBroadcast';\n\nimport '../../../css/block.scss';\nimport '../../../css/formPage.scss';\n \nimport '../../../css/contactto.scss';\n\nimport style from './transmitterForm.module.scss';\n\nconst TransmitterForm = (props) => {\n const {\n clientId,\n transmitterId,\n method\n } = props.match.params;\n\n const {\n transmitters,\n lang,\n loggedUser\n } = useSelector(state => ({\n transmitters: state.transmitters,\n clients: state.clients,\n lang: state.locale.lang,\n loggedUser: state.loggedAttendant\n }));\n\n const dispatch = useDispatch();\n\n const editTransmitter = (clientId, transmitter) => dispatch(transmittersActions.editTransmitter(clientId, transmitter));\n const createTransmitter = (clientId, transmitter) => dispatch(transmittersActions.createTransmitter(clientId, transmitter));\n\n const [client, setClient] = useState(undefined);\n const [secondary, setSecondary] = useState(undefined);\n const [zoneList, setZoneList] = useState([]);\n const [error, setError] = useState(false);\n const [errorCode, setErrorCode] = useState(0);\n const [errorMsg, setErrorMsg] = useState('');\n const [useForSecondary, setUseForSecondary] = useState(false);\n const [transmitter, setTransmitter] = useState({\n id: 0,\n client: props.match.params.clientId,\n zone: '', \n description: '',\n general_info: '',\n identifier: '',\n secondary: 0,\n });\n const [validator, setValidator] = useState({\n zone: props.match.params.method === 'edit',\n description: props.match.params.method === 'edit',\n general_info: true,\n });\n\n const [nValidator, setNValidator] = useState({\n identifier: { validate: true, message: '' },\n zone: { validate: true, message: '' },\n description: { validate: true, message: '' },\n });\n\n useEffect(() => {\n const loadTransmitters = (clientId, ordering) => dispatch(transmittersActions.loadTransmitters(clientId, ordering));\n const loadClient = (clientId) => {\n axios.get(`https://${getDomain()}${host()}/api/clients/${clientId}/`, {\n headers: { Authorization: `Token ${getToken()}` },\n }).then(res => {\n setClient(res.data);\n const secondaryList = res.data?.secondary;\n if (secondaryList.length > 0) {\n setSecondary(secondaryList[0]);\n }\n })\n .catch(error => console.log(error));\n };\n loadClient(clientId);\n loadTransmitters(clientId, 'zone');\n }, [clientId, dispatch]);\n\n useEffect(() => {\n if (transmitters.length > 0) {\n const clientTransmitters = transmitters.filter(tr => tr.clientId === clientId)[0].data;\n let newZoneList = clientTransmitters;\n \n if (method === 'edit') {\n newZoneList = newZoneList.filter(tr => tr.id !== parseInt(transmitterId, 10));\n const newTransmitter = clientTransmitters.find(tr => tr.id === parseInt(transmitterId, 10));\n setTransmitter(newTransmitter);\n if (newTransmitter.secondary > 0) {\n setUseForSecondary(true);\n }\n }\n newZoneList = newZoneList.map(tr => tr.zone);\n setZoneList(newZoneList);\n }\n\n }, [transmitters, clientId, transmitterId, method]);\n\n const setTransmitterState = (ev, isValid = true) => {\n const field = ev.target.name;\n const value = ev.target.value;\n\n let newTransmitter = Object.assign({}, transmitter);\n let newValidator = Object.assign({}, nValidator);\n\n switch (field) {\n case 'zone': {\n newTransmitter[field] = value;\n const validate = value.length === 3;\n newValidator[field].validate = validate;\n if (!validate) {\n newValidator[field].message =\n ;\n } else {\n newValidator[field].validate = true;\n newValidator[field].message = '';\n }\n break;\n }\n case 'description':\n case 'identifier': {\n newTransmitter[field] = value;\n const validate = value.length >= 2;\n newValidator[field].validate = validate;\n if (!validate) {\n newValidator[field].message =\n ;\n } else {\n newValidator[field].validate = true;\n newValidator[field].message = '';\n }\n break;\n }\n default: {\n newTransmitter[field] = value;\n break;\n }\n };\n\n setTransmitter(Object.assign({}, newTransmitter));\n setNValidator(Object.assign({}, newValidator));\n // setTransmitter(Object.assign({}, transmitter, { [field]: value }));\n setValidator(Object.assign({}, validator, { [field]: isValid }));\n };\n\n const processError = (err) => {\n const response = err.response;\n if (response) {\n const newErrorCode = response.status;\n let newErrorMsg = '';\n if (newErrorCode === 400 && response.data) {\n const dataKey = Object.keys(response.data)[0]\n switch (dataKey) {\n default:\n newErrorMsg = response.data[dataKey][0]\n break;\n }\n } else {\n newErrorMsg = 'Generic error';\n }\n setError(true);\n setErrorCode(newErrorCode);\n setErrorMsg(newErrorMsg);\n }\n };\n\n const closeErrorModal = () => {\n setError(false);\n setErrorCode(0);\n setErrorMsg('');\n };\n\n const saveTransmitter = () => {\n const text = `${broadcastMessages[lang]['broadcast.transmitter']} ${transmitter.description} ${\n method === 'edit' ? broadcastMessages[lang]['broadcast.updated'] : broadcastMessages[lang]['broadcast.added']}`;\n const serverTransmitter = Object.assign(\n {},\n transmitter,\n { client: clientId },\n { secondary: useForSecondary ? secondary.id : '' }\n );\n if (method === 'edit') {\n editTransmitter(clientId, serverTransmitter).then(() => {\n broadcast(axios, props.channelId, {\n type: 'transmitter',\n method: 'edit',\n clientId: clientId,\n userId: loggedUser.id,\n text,\n serverTransmitter\n });\n props.history.push(`/app/transmitters/list/${clientId}/`);\n }).catch((err) => {\n processError(err);\n })\n } else {\n createTransmitter(clientId, serverTransmitter).then((res) => {\n broadcast(axios, props.channelId, {\n type: 'transmitter',\n method: 'create',\n clientId: clientId,\n userId: loggedUser.id,\n transmitter: res.transmitter,\n text\n });\n props.history.push(`/app/transmitters/list/${clientId}/`);\n }).catch((err) => {\n processError(err);\n })\n }\n };\n\n const isFormValid = () => {\n return Object.keys(validator).every(el => validator[el] === true);\n };\n\n const validateZone = (value) => {\n const arr = value.split('');\n const val = arr.filter(el => /\\d/.test(el)).join('');\n\n if (value.length === 0) {\n return [false, ];\n } else if (value === '000') {\n return [false, ];\n } else if (val !== value) {\n return val;\n } else if (zoneList.indexOf(val) === -1) {\n return true;\n }\n return [false, ];\n };\n\n const title = method === 'edit'? : ;\n\n return (\n
\n {error && }\n
\n {client &&\n
\n {title} {`${client.first_name} ${client.last_name}`.toUpperCase()}\n
\n }\n {transmitter && (\n
\n
\n
\n \n
\n
\n {client &&\n
\n \n : {client.account}\n \n
\n }\n
\n \n }\n />\n
\n
\n \n }\n />\n
\n
\n \n }\n />\n
\n {secondary &&\n
\n \n
\n setUseForSecondary(!useForSecondary)} />\n
\n
\n }\n
\n \n
\n \n
\n
\n
\n \n {isFormValid() ?\n \n : \n }\n
\n
\n
\n \n )}\n
\n
\n );\n};\n\nTransmitterForm.propTypes = {\n channelId: PropTypes.string.isRequired,\n params: PropTypes.shape({\n clientId: PropTypes.string.isRequired,\n transmitterId: PropTypes.string,\n method: PropTypes.string.isRequired,\n }).isRequired,\n};\n\nexport default TransmitterForm;\n","import React from 'react';\nimport PropTypes from 'prop-types';\n\nconst Audio = ({ height, className, width }) => (\n \n \n \n \n);\n\nAudio.defaultProps = {\n height: '24',\n className: '',\n width: '24',\n};\n\nAudio.propTypes = {\n height: PropTypes.string,\n className: PropTypes.string,\n width: PropTypes.string,\n};\n\nexport default Audio;\n","import React from 'react';\nimport PropTypes from 'prop-types';\nimport '../css/priority.scss';\n\nconst PriorityIcon = ({ className, height, width }) => (\n \n \n \n \n);\n\nPriorityIcon.defaultProps = {\n className: '',\n height: '24',\n width: '24',\n};\n\nPriorityIcon.propTypes = {\n className: PropTypes.string,\n height: PropTypes.string,\n width: PropTypes.string,\n};\n\nexport default PriorityIcon;\n","import React from \"react\";\nimport PropTypes from \"prop-types\";\nimport * as general from \"../../../BLL/general\";\nimport { getAttendantName } from \"../../../BLL/general\";\nimport CallButton from \"../../Common/CallButtonV2\";\nimport Audio from \"../../../icons/Audio\";\nimport PriorityIcon from \"../../../icons/PriorityIcon\";\nimport messagesAlarms from \"../../../BLL/locale/messagesAlarms\";\n\nimport style from \"./attendsPage.module.scss\";\nimport \"../../../css/contactto.scss\";\nimport \"../../../css/attends.scss\";\n\nconst AttendRow = ({\n isUser,\n attend,\n showClient,\n user,\n setUserBusy,\n channelId,\n isBusy,\n setTextIconDetail,\n setEmptyText,\n lang,\n history,\n useZoneColors,\n}) => {\n let clientName = `${\n attend.client_first_name.split(\" \")[0]\n } ${attend.client_last_name.split(\" \").pop()}`;\n if (attend.is_from_secondary && attend.secondary_first_name) {\n clientName = `${\n attend.secondary_first_name.split(\" \")[0]\n } ${attend.secondary_last_name.split(\" \").pop()}`;\n }\n const action = isUser\n ? \"left attend-item-default attend-item-default--attendant-action\"\n : \"left attend-item-default attend-item-default--user-action\";\n\n const attendIsClosed =\n attend.status === \"CLOSE\"\n ? general.formatOnlyNumbersDate(attend.close_ts)\n : \"-\";\n let priorityIconColor = \"high\";\n switch (attend.highest_priority) {\n case 1:\n priorityIconColor = \"high\";\n break;\n case 2:\n priorityIconColor = \"medium\";\n break;\n case 3:\n priorityIconColor = \"low\";\n break;\n case 4:\n priorityIconColor = \"system\";\n break;\n default:\n break;\n }\n\n return (\n
\n
{attend.id}
\n {showClient === true && (\n
{clientName}
\n )}\n
\n {getAttendantName(attend)}\n
\n {useZoneColors ? (\n
\n {attend.highest_code === \"101\" && attend.tr_description\n ? attend.tr_description\n : messagesAlarms[lang][attend.highest_code]}\n
\n ) : (\n
\n {messagesAlarms[lang][attend.highest_code]}\n
\n )}\n
\n {general.formatOnlyNumbersDate(attend.open_ts)}\n
\n
\n {attendIsClosed}\n
\n {attend.status === \"CLOSE\" ? (\n
\n {attend.audio_file && attend.audio_file !== \"\" ? (\n
\n )\n )}\n
\n ) : (\n {}\n : () => setTextIconDetail(attend.highest_priority)\n }\n onMouseOut={setEmptyText}\n >\n {!useZoneColors && }\n \n )}\n
\n \n
\n \n );\n};\n\nAttendRow.defaultProps = {\n isBusy: false,\n};\n\nAttendRow.propTypes = {\n channelId: PropTypes.string.isRequired,\n lang: PropTypes.string.isRequired,\n isBusy: PropTypes.bool,\n attend: PropTypes.shape({\n id: PropTypes.number,\n status: PropTypes.string,\n highest_priority: PropTypes.number,\n client: PropTypes.number,\n client_first_name: PropTypes.string,\n client_last_name: PropTypes.string,\n client_account: PropTypes.string,\n success_contact: PropTypes.number,\n success_attendant: PropTypes.number,\n success_first_name: PropTypes.string,\n success_last_name: PropTypes.string,\n attend_ts: PropTypes.string,\n close_ts: PropTypes.string,\n attendant: PropTypes.number,\n att_first_name: PropTypes.string,\n att_last_name: PropTypes.string,\n open_ts: PropTypes.string,\n audio_file: PropTypes.string,\n }).isRequired,\n isUser: PropTypes.bool.isRequired,\n user: PropTypes.shape({\n id: PropTypes.number,\n username: PropTypes.string,\n first_name: PropTypes.string,\n last_name: PropTypes.string,\n email: PropTypes.string,\n password: PropTypes.string,\n groups: PropTypes.arrayOf(PropTypes.number),\n is_active: PropTypes.bool,\n is_staff: PropTypes.bool,\n is_superuser: PropTypes.bool,\n user_info: PropTypes.shape({\n id: PropTypes.number,\n user: PropTypes.number,\n phone: PropTypes.string,\n mobile: PropTypes.string,\n email: PropTypes.string,\n extension_id: PropTypes.number,\n }),\n actions: PropTypes.arrayOf(\n PropTypes.shape({\n id: PropTypes.number,\n priority: PropTypes.number,\n user: PropTypes.number,\n receive_sms: PropTypes.bool,\n receive_email: PropTypes.bool,\n })\n ),\n }).isRequired,\n showClient: PropTypes.bool.isRequired,\n setUserBusy: PropTypes.func.isRequired,\n setTextIconDetail: PropTypes.func.isRequired,\n setEmptyText: PropTypes.func.isRequired,\n};\n\nexport default AttendRow;\n","/* eslint-disable import/no-anonymous-default-export */\nexport default {\n en: {\n 1: 'Emergency Call',\n 2: 'Test Call',\n 3: 'Support Call',\n 4: 'Accidental Call',\n 5: 'Communication Fail',\n 6: 'Additional Services',\n 7: 'Relay Message',\n },\n pt: {\n 1: 'Chamada de Emergência',\n 2: 'Chamada de Teste',\n 3: 'Suporte Técnico',\n 4: 'Chamada Acidental',\n 5: 'Falha de Comunicação',\n 6: 'Serviços Adicionais',\n 7: 'Transmitir Recado'\n },\n};\n","import React, { useState, useEffect, useRef } from 'react';\nimport PropTypes from 'prop-types';\nimport { FormattedMessage } from 'react-intl';\nimport { connect } from 'react-redux';\nimport messages from '../../BLL/locale/messages';\nimport messageTags from '../../BLL/locale/messagesTags';\nimport style from './modalAttendFilter.module.scss';\nimport formStyle from '../../css/form.module.scss';\n\nconst ModalAttendFilter = (props) => {\n const wrapperRef = useRef(null);\n const [attendId, setAttendId] = useState('');\n const [companyId, setCompanyId] = useState('');\n const [attendTag, setAttendTag] = useState('');\n const [hasAudio, setHasAudio] = useState(-1);\n\n useEffect(() => {\n document.addEventListener('mousedown', clickedOutside);\n\n return () => {\n document.removeEventListener('mousedown', clickedOutside);\n }\n }, []);\n\n const clickedOutside = (ev) => {\n if (wrapperRef.current && !wrapperRef.current.contains(ev.target)) {\n props.closeModal();\n }\n }\n\n const generateAndSendFilter = () => {\n let attendTest = '';\n let attendAudio = '';\n let id = '';\n let companyIdUrl = '';\n let tag = '';\n\n switch (parseInt(hasAudio, 10)) {\n case -1:\n break;\n case 1: {\n attendAudio = 'has_audio=true';\n break;\n }\n case 0: {\n attendAudio = 'has_audio=false';\n break;\n }\n default:\n break;\n }\n\n if (companyId) {\n companyIdUrl = `company=${companyId}`;\n }\n\n if (attendId) {\n id = `id=${attendId}`;\n }\n\n if (attendTag) {\n tag = `attend_tag=${attendTag}`;\n }\n\n let url = `${attendTest}`;\n url = `${url}${attendAudio ? `&${attendAudio}` : ''}`;\n url = `${url}${companyIdUrl ? `&${companyIdUrl}` : ''}`;\n url = `${url}${id ? `&${id}` : ''}`;\n url = `${url}${tag ? `&${tag}` : ''}`;\n props.filterAttends(url);\n };\n\n const tagOptions = props.attendTags.map(tag => ({\n value: tag.id,\n label: messageTags[props.lang][tag.id],\n name: messageTags[props.lang][tag.id],\n }));\n\n return (\n
\n
\n
\n \n
\n\n
\n \n setAttendId(ev.target.value)}\n type=\"number\"\n value={attendId}\n style={{ fontSize: '0.8rem'}}\n />\n
\n\n
\n \n setHasAudio(ev.target.value)}\n style={{ fontSize: '0.8rem'}}\n >\n \n \n \n \n
\n\n {props.loggedUser && props.loggedUser.groups.length === 1 &&\n
\n \n setCompanyId(ev.target.value)}\n style={{ fontSize: '0.8rem'}}\n >\n \n {props.companies && props.companies\n .sort((compA, compB) => compA.name.localeCompare(compB.name))\n .map(item =>\n ,\n )}\n \n
\n }\n\n
\n \n setAttendTag(ev.target.value)}\n style={{ fontSize: '0.8rem'}}\n >\n \n {tagOptions && tagOptions\n .sort((optionA, optionB) => optionA.name.localeCompare(optionB.name))\n .map(item =>\n ,\n )}\n \n
\n\n
\n \n \n \n \n \n \n
\n
\n
\n );\n};\n\nModalAttendFilter.propTypes = {\n filterAttends: PropTypes.func.isRequired,\n closeModal: PropTypes.func.isRequired,\n lang: PropTypes.string.isRequired,\n companies: PropTypes.arrayOf(\n PropTypes.shape({\n id: PropTypes.number,\n name: PropTypes.string,\n user_set: PropTypes.arrayOf(\n PropTypes.shape({\n id: PropTypes.number,\n is_active: PropTypes.bool,\n first_name: PropTypes.string,\n last_name: PropTypes.string,\n email: PropTypes.string,\n groups: PropTypes.arrayOf(\n PropTypes.number,\n ),\n }),\n ),\n }),\n ).isRequired,\n loggedUser: PropTypes.shape({\n groups: PropTypes.arrayOf(\n PropTypes.number,\n ),\n id: PropTypes.number,\n is_active: PropTypes.bool,\n username: PropTypes.string,\n }).isRequired,\n attendTags: PropTypes.arrayOf(\n PropTypes.shape({\n id: PropTypes.number,\n name: PropTypes.string,\n })).isRequired,\n};\n\nfunction mapStateToProps(state) {\n return {\n loggedUser: state.loggedAttendant,\n companies: state.groups.filter(grp => ![1, 2, 3, 4].includes(grp.id)),\n attendTags: state.attendTags,\n lang: state.locale.lang,\n };\n}\n\nexport default connect(mapStateToProps)(ModalAttendFilter);\n","import React, { useState, useEffect } from \"react\";\nimport PropTypes from \"prop-types\";\nimport { connect } from \"react-redux\";\nimport { FormattedMessage } from \"react-intl\";\nimport { alarmPriority } from \"../../../BLL/general\";\nimport Paginate from \"../../Common/Paginate\";\nimport Loading from \"../../../icons/Loading\";\nimport AttendRow from \"./AttendRow\";\nimport Order from \"../../../icons/Order\";\nimport ModalFilter from \"../../Modal/ModalAttendFilter\";\nimport * as attendsActions from \"../../../actions/attendsActions\";\nimport messageTags from \"../../../BLL/locale/messagesTags\";\n\nimport style from \"./attendsPage.module.scss\";\n\nconst AttendsPage = (props) => {\n const numPerPage = 50;\n const [loading, setLoading] = useState(true);\n const [attendsList, setAttendsList] = useState([]);\n const [filter, setFilter] = useState(\"\");\n const [ordering, setOrdering] = useState(\"\");\n const [activePage, setActivePage] = useState(1);\n const [totalAttends, setTotalAttends] = useState(0);\n const [next, setNext] = useState(\"\");\n const [previous, setPrevious] = useState(\"\");\n const [showFilterModal, setShowFilterModal] = useState(false);\n const [iconDetail, setIconDetail] = useState(\"\");\n\n useEffect(() => {\n if (!props.attends || Object.keys(props.attends).length === 0) {\n props.loadAttends();\n }\n }, []);\n\n useEffect(() => {\n setAttends(props.attends);\n }, [props.attends]);\n\n const setTextIconDetail = (iDetail) => {\n if (iDetail === \"Teste\") {\n setIconDetail(\n \n );\n } else {\n const icon = alarmPriority(iDetail);\n setIconDetail(icon);\n }\n };\n\n const setEmptyText = () => {\n setIconDetail(\"\");\n };\n\n const setAttends = (attends) => {\n const activePage = attends.pages\n ? attends.pages.find((data) => data.page === attends.activePage)\n : undefined;\n setAttendsList(activePage ? activePage.results : []);\n setNext(activePage ? activePage.next : \"\");\n setPrevious(activePage ? activePage.previous : \"\");\n setOrdering(attends.ordering);\n setFilter(attends.filter);\n setTotalAttends(attends.count);\n setActivePage(attends.activePage);\n setLoading(false);\n };\n\n const changePage = (page) => {\n setLoading(true);\n const pageUrl = page > activePage ? next : previous;\n props.changePage(page, pageUrl);\n };\n\n const filterAttends = (filter) => {\n setShowFilterModal(false);\n setLoading(true);\n setActivePage(1);\n\n props.loadAttends(ordering, filter);\n };\n\n const removeFilter = () => {\n setLoading(true);\n props.loadAttends(ordering);\n };\n\n const orderById = () => {\n const newOrdering =\n ordering === \"-status,id\" ? \"-status,-id\" : \"-status,id\";\n setLoading(true);\n setOrdering(newOrdering);\n props.loadAttends(newOrdering, filter);\n };\n\n const orderByUser = () => {\n const newOrdering =\n ordering === \"-status,client__first_name,client__last_name,id\"\n ? \"-status,-client__first_name,-client__last_name,-id\"\n : \"-status,client__first_name,client__last_name,id\";\n setLoading(true);\n setOrdering(newOrdering);\n props.loadAttends(newOrdering, filter);\n };\n\n const orderByAttendant = () => {\n const newOrdering =\n ordering === \"-status,attendant__first_name,attendant__last_name,id\"\n ? \"-status,-attendant__first_name,-attendant__last_name,-id\"\n : \"-status,attendant__first_name,attendant__last_name,id\";\n setLoading(true);\n setOrdering(newOrdering);\n props.loadAttends(newOrdering, filter);\n };\n\n const orderByAlarm = () => {\n const newOrdering =\n ordering === \"-status,events__event_type__name,id\"\n ? \"-status,-events__event_type__name,-id\"\n : \"-status,events__event_type__name,id\";\n setLoading(true);\n setOrdering(newOrdering);\n props.loadAttends(newOrdering, filter);\n };\n\n const orderByStartDate = () => {\n const newOrdering =\n ordering === \"-status,open_ts\" ? \"-status,-open_ts\" : \"-status,open_ts\";\n setLoading(true);\n setOrdering(newOrdering);\n props.loadAttends(newOrdering, filter);\n };\n\n const orderByEndDate = () => {\n const newOrdering =\n ordering === \"-status,close_ts\"\n ? \"-status,-close_ts\"\n : \"-status,close_ts\";\n setLoading(true);\n setOrdering(newOrdering);\n props.loadAttends(newOrdering, filter);\n };\n\n const svgIdRotation = ordering === \"-status,-id\" ? style.rotate : \"\";\n const svgUserRotation =\n ordering === \"-status,-client__first_name,-client__last_name,-id\"\n ? style.rotate\n : \"\";\n const svgAttendantRotation =\n ordering === \"-status,-attendant__first_name,-attendant__last_name,-id\"\n ? style.rotate\n : \"\";\n const svgSuccessRotation =\n ordering === \"-status,-events__event_type__name,-id\" ? style.rotate : \"\";\n const svgStartRotation = ordering === \"-status,-open_ts\" ? style.rotate : \"\";\n const svgEndRotation = ordering === \"-status,-close_ts\" ? style.rotate : \"\";\n\n return (\n
\n
\n \n
\n {filter ? (\n \n ) : (\n setShowFilterModal(!showFilterModal)}\n >\n \n \n \n \n \n )}\n {showFilterModal && (\n setShowFilterModal(!showFilterModal)}\n />\n )}\n {filter && (\n \n
\n \n :\n
\n {filter.includes(\"id\") && (\n
\n \n
\n )}\n {filter.includes(\"company\") && (\n
\n {\n props.companies.find(\n (company) =>\n company.id ===\n parseInt(\n filter\n .split(\"&\")\n .find((filt) => filt.includes(\"company=\"))\n .split(\"=\")[1],\n 10\n )\n ).name\n }\n
\n )}\n {filter.includes(\"has_audio\") && (\n
\n {\" \"}\n {filter.includes(\"has_audio=true\") ? (\n \n ) : (\n \n )}\n
\n )}\n {filter.includes(\"attend_tag\") && (\n
\n {\n messageTags[props.lang][\n props.attendTags.find(\n (tag) =>\n tag.id ===\n parseInt(\n filter\n .split(\"&\")\n .find((filt) => filt.includes(\"attend_tag=\"))\n .split(\"=\")[1],\n 10\n )\n ).id\n ]\n }\n
\n )}\n {filter.includes(\"is_test\") && (\n
\n {\" \"}\n {filter.includes(\"is_test=true\") ? (\n \n ) : (\n \n )}\n
\n )}\n {filter.includes(\"client\") && (\n
\n \n
\n )}\n
\n )}\n
\n \n
\n
\n \n ID\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 {iconDetail}\n
\n
\n
\n {!loading ? (\n
\n {attendsList &&\n attendsList.map((attend) => (\n \n ))}\n
\n ) : (\n \n }\n />\n )}\n
\n \n );\n};\n\nfunction mapStateToProps(state, ownProps) {\n return {\n attends: state.attends,\n params: ownProps.params,\n user: state.loggedAttendant,\n channelId: ownProps.channelId,\n attendTags: state.attendTags,\n companies: state.groups.filter((grp) => ![1, 2, 3, 4].includes(grp.id)),\n lang: state.locale.lang,\n setUserBusy: ownProps.setUserBusy,\n globalConfiguration: state.globalConfiguration.global,\n isBusy:\n state.status.length > 0\n ? state.status.some(\n (value) => value.userId === state.loggedAttendant.id\n )\n : false,\n };\n}\n\nfunction mapDispatchToProps(dispatch) {\n return {\n loadAttends: (ordering, filter) =>\n dispatch(attendsActions.loadAttends(ordering, filter)),\n changePage: (page, pageUrl) =>\n dispatch(attendsActions.changePage(page, pageUrl)),\n };\n}\n\nexport default connect(mapStateToProps, mapDispatchToProps)(AttendsPage);\n","import React from 'react';\nimport PropTypes from 'prop-types';\n\nconst MobileIcon = ({ height, className, width, fill, transform }) =>\n \n \n \n \n \n \n ;\n\nMobileIcon.defaultProps = {\n height: '24',\n className: '',\n width: '24',\n fill: '#00b8cb',\n transform: 'translate(0,0)',\n};\n\nMobileIcon.propTypes = {\n height: PropTypes.string,\n className: PropTypes.string,\n width: PropTypes.string,\n fill: PropTypes.string,\n transform: PropTypes.string,\n};\n\nexport default MobileIcon;\n","import React from 'react';\nimport PropTypes from 'prop-types';\n\nconst HomeDeviceIcon = ({ height, className, width, fill, transform }) =>\n \n \n \n \n \n \n \n \n \n ;\n\nHomeDeviceIcon.defaultProps = {\n height: '24',\n className: '',\n width: '24',\n fill: '#00b8cb',\n transform: 'translate(0,0)',\n};\n\nHomeDeviceIcon.propTypes = {\n height: PropTypes.string,\n className: PropTypes.string,\n width: PropTypes.string,\n fill: PropTypes.string,\n transform: PropTypes.string,\n};\n\nexport default HomeDeviceIcon;\n","import React, { useState, useEffect } from 'react';\nimport PropTypes from 'prop-types';\nimport { FormattedMessage } from 'react-intl';\nimport moment from 'moment';\nimport FemaleIcon from '../../../../icons/FemaleIcon';\nimport MaleIcon from '../../../../icons/MaleIcon';\nimport UnisexIcon from '../../../../icons/TransexIcon';\nimport MobileIcon from '../../../../icons/MobileDeviceIcon';\nimport HomeIcon from '../../../../icons/HomeDeviceIcon';\n\nimport style from './attendHeader.module.scss';\nimport '../../../../css/detailPage.scss';\n\nconst AttendHeader = ({\n client,\n secondary,\n transmitterList,\n alarms,\n duration,\n equipment,\n attendAudio,\n display,\n canMakeExtension,\n openModalExtension\n}) => {\n const [showSecondary, setShowSecondary] = useState(false);\n const highestAlarm = alarms && alarms.sort((a, b) => a.event_type.priority - b.event_type.priority)[0];\n\n useEffect(() => {\n if (highestAlarm?.tr_zone && transmitterList.length > 0) {\n const mainTransmitter = transmitterList.find(tr => tr.zone === highestAlarm.tr_zone && tr.identifier === highestAlarm.tr_identifier);\n if (mainTransmitter?.secondary > 0 && secondary) {\n console.log('Entrei aqui', mainTransmitter);\n setShowSecondary(true);\n }\n }\n }, [highestAlarm, transmitterList, secondary]);\n\n return (\n
\n
\n {!showSecondary ? client.first_name : secondary.first_name} {!showSecondary ? client.last_name : secondary.last_name}\n {attendAudio &&
\n\n
\n {canMakeExtension &&\n \n }\n
\n\n
\n
\n
{!duration ? '00:00' : duration}
\n
\n
\n {equipment.is_mobile\n ? \n : \n }\n
\n
\n {!showSecondary ? moment().year() - moment(client.birthdate).year() : moment().year() - moment(secondary.birthdate).year()}\n \n \n \n
\n {!showSecondary\n ?\n
\n {client.gender === 'm' && }\n {client.gender === 'f' && }\n {client.gender === 'n' && }\n
\n :\n
\n {secondary.gender === 'm' && }\n {secondary.gender === 'f' && }\n {secondary.gender === 'n' && }\n
\n }\n
\n
\n )\n};\n\nAttendHeader.defaultProps = {\n display: true,\n attendAudio: '',\n};\n\nAttendHeader.propTypes = {\n client: PropTypes.shape({\n birthdate: PropTypes.string,\n first_name: PropTypes.string,\n last_name: PropTypes.string,\n gender: PropTypes.string,\n }).isRequired,\n equipment: PropTypes.shape({\n name: PropTypes.string,\n is_mobile: PropTypes.bool,\n }).isRequired,\n duration: PropTypes.string.isRequired,\n canMakeExtension: PropTypes.bool.isRequired,\n openModalExtension: PropTypes.func.isRequired,\n attendAudio: PropTypes.string,\n display: PropTypes.bool,\n};\n\nexport default AttendHeader;\n","import React from 'react';\nimport PropTypes from 'prop-types';\nimport { FormattedMessage } from 'react-intl';\n\nimport style from './attendSolvedBy.module.scss';\nimport '../../../../css/attendComponent.scss';\n\nconst AttendSolvedBy = ({ attendant, contact }) => (\n
\n {attendant &&\n
\n \n \n \n
\n \n {attendant.first_name} {attendant.last_name}\n
\n
\n \n {!attendant.user_info.mobile ? 'Sem celular' : attendant.user_info.mobile}\n
\n
\n }\n {contact &&\n
\n \n \n \n
\n \n {contact.first_name} {contact.last_name}\n
\n
\n \n {contact.priority}\n
\n
\n \n {contact.relationship}\n
\n
\n \n {!contact.phones[0].phone ? 'Sem celular' : contact.phones[0].phone}\n
\n
\n }\n
\n);\n\nAttendSolvedBy.defaultProps = {\n attendAudio: '',\n contact: null,\n attendant: null,\n};\n\nAttendSolvedBy.propTypes = {\n attendant: PropTypes.shape({\n first_name: PropTypes.string,\n last_name: PropTypes.string,\n user_info: PropTypes.shape({\n mobile: PropTypes.string,\n phone: PropTypes.string,\n }),\n }),\n contact: PropTypes.shape({\n first_name: PropTypes.string,\n last_name: PropTypes.string,\n relationship: PropTypes.string,\n priority: PropTypes.number,\n }),\n};\n\nexport default AttendSolvedBy;\n","import React from 'react';\nimport PropTypes from 'prop-types';\nimport { FormattedMessage } from 'react-intl';\n\nimport style from './attendContacted.module.scss';\nimport '../../../../css/attendComponent.scss';\n\nconst AttendSolvedBy = ({\n contactedContacts,\n contactedAttendants,\n}) => (\n
\n {contactedContacts.length > 0 &&\n
\n \n \n \n {contactedContacts.sort((a, b) => (a.priority - b.priority)).map(contact => (\n
\n \n {contact.first_name} {contact.last_name}\n \n {contact.priority}\n
\n ))}\n
\n }\n {contactedAttendants.length > 0 &&\n
\n \n \n \n {contactedAttendants.map(attendant => (\n
\n \n {attendant.first_name} {attendant.last_name}\n
\n ))}\n
\n }\n {contactedAttendants.length === 0 && contactedContacts.length === 0 &&\n
\n \n
\n }\n
\n);\n\nAttendSolvedBy.defaultProps = {\n attendAudio: '',\n};\n\nAttendSolvedBy.propTypes = {\n contactedAttendants: PropTypes.arrayOf(\n PropTypes.shape({\n id: PropTypes.number,\n first_name: PropTypes.string,\n last_name: PropTypes.string,\n }),\n ).isRequired,\n contactedContacts: PropTypes.arrayOf(\n PropTypes.shape({\n id: PropTypes.number,\n first_name: PropTypes.string,\n last_name: PropTypes.string,\n priority: PropTypes.number,\n }),\n ).isRequired,\n};\n\nexport default AttendSolvedBy;\n","import React from 'react';\nimport PropTypes from 'prop-types';\nimport { FormattedMessage } from 'react-intl';\nimport moment from 'moment';\nimport messageTags from '../../../../BLL/locale/messagesTags';\n\nimport style from './attendInformation.module.scss';\nimport '../../../../css/attendComponent.scss';\nimport { useSelector } from 'react-redux';\n\nconst AttendInformation = ({ open, attend, close, tagId, lang, toggleEdit, isEditing, setTag, updateTag, isAdmin, aditionalAudioList, clientMessages }) => {\n const { tagList } = useSelector(state => ({\n tagList: state.attendTags\n }));\n\n return (\n
\n
\n \n \n \n
\n \n {moment(open).format('HH:mm:ss - DD/MM/YYYY')}\n
\n
\n \n {moment(attend).format('HH:mm:ss - DD/MM/YYYY')}\n
\n
\n \n {moment(close).format('HH:mm:ss - DD/MM/YYYY')}\n
\n {isEditing\n ?\n
\n \n
\n \n {tagList && tagList.map(tag =>\n )\n }\n \n
\n \n \n
\n :\n
\n \n {messageTags[lang][tagId]}\n {isAdmin &&\n \n }\n
\n }\n
\n {clientMessages.length > 0 &&\n
\n \n \n \n {clientMessages.map((elm) => (\n
\n \n {elm.from_client\n ? \n : \n }\n \n \n {!elm.message\n ? \n : elm.message\n }\n \n
\n ))}\n
\n }\n
\n )\n};\n\nAttendInformation.defaultProps = {\n isEditing: false,\n};\n\nAttendInformation.propTypes = {\n close: PropTypes.string.isRequired,\n open: PropTypes.string.isRequired,\n attend: PropTypes.string.isRequired,\n tagId: PropTypes.string.isRequired,\n lang: PropTypes.string.isRequired,\n isEditing: PropTypes.bool,\n};\n\nexport default AttendInformation;\n","import React from 'react';\nimport PropTypes from 'prop-types';\nimport { FormattedMessage } from 'react-intl';\n\nimport style from './attendComments.module.scss';\nimport '../../../../css/detailPage.scss';\n\nconst AttendComments = ({ report, isEditing, toggleEdit, setReport, updateReport, isAdmin }) => (\n
\n {isEditing\n ?\n
\n \n \n \n
\n :\n
\n
\n {!report ? : report}\n
\n {isAdmin &&\n \n }\n \n
\n }\n
\n);\n\nAttendComments.defaultProps = {\n isEditing: false,\n isAdmin: false,\n};\n\nAttendComments.propTypes = {\n report: PropTypes.string.isRequired,\n isEditing: PropTypes.bool,\n isAdmin: PropTypes.bool,\n};\n\nexport default AttendComments;\n","import React from 'react';\nimport PropTypes from 'prop-types';\nimport { FormattedMessage } from 'react-intl';\nimport moment from 'moment';\n\nimport style from './attendReminders.module.scss';\nimport '../../../../css/attendComponent.scss';\n\nconst AttendReminders = ({ reminders, reminderAudioList }) => (\n
\n {reminders.length > 0 && reminders.map((reminder, index) => {\n const singleReminderAudioList = reminderAudioList.length > 0 \n ? reminderAudioList.filter((audio) => {\n const file = audio.audio_file;\n const reminderId = parseInt(file.split('-')[file.split('-').length - 1].split('.')[0], 10);\n if (reminderId === reminder.id) {\n return audio;\n }\n })\n : [];\n return (\n
\n
\n \n \n \n
\n \n {reminder.op_full_name}\n
\n {reminder.status === 'CLOSED' &&\n
\n \n {reminder.cl_full_name}\n
\n }\n
\n \n {reminder.title}\n
\n
\n \n {moment(reminder.open_ts).format('HH:mm:ss - DD/MM/YYYY')}\n
\n {singleReminderAudioList.map((elm, index) => (\n
\n \n - {index + 1}\n \n {moment(elm.audio_ts).format('HH:mm:ss - DD/MM/YYYY')}\n \n \n \n
\n ))}\n {reminder.status === 'CLOSED' &&\n
\n \n {moment(reminder.close_ts).format('HH:mm:ss - DD/MM/YYYY')}\n
\n }\n
\n \n {reminder.requested_time} \n
\n {reminder.status === 'CLOSED'\n ?\n
\n \n {reminder.report}\n
\n :\n
\n STATUS\n Ainda em andamento\n
\n }\n
\n )}\n )}\n {reminders.length === 0 &&\n
\n \n
\n }\n
\n);\n\nAttendReminders.defaultProps = {\n reminders: [],\n};\n\nAttendReminders.propTypes = {\n reminders: PropTypes.arrayOf(\n PropTypes.shape({\n id: PropTypes.number,\n op_full_name: PropTypes.string,\n cl_full_name: PropTypes.string,\n title: PropTypes.string,\n open_ts: PropTypes.string,\n close_ts: PropTypes.string,\n requested_time: PropTypes.number,\n report: PropTypes.string,\n }).isRequired,\n ),\n};\n\nexport default AttendReminders;\n","import React, { useState, useEffect } from 'react';\nimport PropTypes from 'prop-types';\nimport { FormattedMessage } from 'react-intl';\nimport Order from '../../../../icons/Order';\nimport * as general from '../../../../BLL/general';\n\nimport '../../../../css/attendComponent.scss';\nimport '../../../../css/attends.scss';\nimport '../../../../css/table.scss';\n\nimport style from './attendClientComponent.module.scss';\n\nconst ClientDetail = (props) => (\n
\n
\n \n \n \n \n {props.client.general_info ? props.client.general_info : }\n \n
\n
\n \n {props.client.first_name} {props.client.last_name}\n
\n
\n \n \n {props.client.gender === 'm' && }\n {props.client.gender === 'f' && }\n {props.client.gender !== 'f' && props.client.gender !== 'm' && }\n \n
\n
\n CPF\n \n {props.client.cpf ? general.cpfMask(props.client.cpf) : }\n \n
\n
\n RG\n \n {props.client.rg ? props.client.rg : }\n \n
\n
\n \n \n {props.client.birthdate ? general.formatBirthdate(props.client.birthdate) : }\n \n
\n
\n \n \n {props.client.health_plan ? props.client.health_plan : }\n \n
\n
\n \n \n {props.client.removal_plan ? props.client.removal_plan : }\n \n
\n
\n Hospital \n \n {props.client.hospital ? props.client.hospital : }\n \n
\n
\n \n \n {props.client.limitations ? props.client.limitations : }\n \n
\n
\n \n \n {props.client.medications ? props.client.medications : }\n \n
\n
\n);\n\nconst AttendClientComponent = (props) => {\n const { highestAlarm, transmitterList, client, secondary } = props;\n const [showPrimary, setShowPrimary] = useState(true);\n const [showSecondary, setShowSecondary] = useState(false);\n\n useEffect(() => {\n if (highestAlarm?.tr_zone && transmitterList.length > 0) {\n const mainTransmitter = transmitterList.find(tr => tr.zone === highestAlarm.tr_zone && tr.identifier === highestAlarm.tr_identifier);\n if (mainTransmitter?.secondary > 0 && secondary) {\n console.log('Entrei aqui', mainTransmitter);\n setShowPrimary(false);\n setShowSecondary(true);\n }\n }\n }, [highestAlarm, transmitterList, secondary]);\n\n const complement = client.complement ? `- ${client.complement}` : '';\n const rotatePrimary = showPrimary ? style.rotate : '';\n const rotateSecondary = showSecondary ? style.rotate : '';\n return (\n
\n \n \n \n
\n
\n \n {client.account}\n
\n
\n \n {client.group_name}\n
\n
\n \n {`${client.street}, ${\n client.number\n } ${complement}, ${client.city} - ${client.state}`}\n
\n
\n \n \n {general.setMask(client.zip_code, '00000-000')}\n \n
\n
\n Keybox \n \n {client.key_box ? client.key_box : }\n \n
\n
\n \n \n {client.use_voip ? client.account_phone : general.setMask(client.account_phone, '00 0000-0000')}\n \n
\n
\n 1 \n \n {client.contact_phone\n ? general.setMask(client.contact_phone, '00 0000-0000')\n : '-'}\n \n
\n
\n 2 \n \n {client.extra_phone\n ? general.setMask(client.extra_phone, '00 0000-0000')\n : '-'}\n \n
\n
\n setShowPrimary(!showPrimary)}>\n \n \n \n {secondary?.id &&\n
\n setShowSecondary(!showSecondary)}>\n \n \n \n
\n }\n
\n )\n};\n\nAttendClientComponent.propTypes = {\n client: PropTypes.shape({\n account: PropTypes.string,\n account_phone: PropTypes.string,\n aditional_phones: PropTypes.arrayOf(\n PropTypes.shape({\n client: PropTypes.number,\n id: PropTypes.number,\n number: PropTypes.string,\n }),\n ),\n birthdate: PropTypes.string,\n city: PropTypes.string,\n contact_phone: PropTypes.string,\n country: PropTypes.string,\n complement: PropTypes.string,\n cpf: PropTypes.string,\n created_by: PropTypes.number,\n created_date: PropTypes.string,\n district: PropTypes.string,\n first_name: PropTypes.string,\n general_info: PropTypes.string,\n health_plan: PropTypes.string,\n id: PropTypes.number,\n is_deleted: PropTypes.bool,\n key_box: PropTypes.string,\n last_name: PropTypes.string,\n modified_by: PropTypes.number,\n modified_date: PropTypes.string,\n number: PropTypes.number,\n rg: PropTypes.string,\n state: PropTypes.string,\n street: PropTypes.string,\n zip_code: PropTypes.string,\n }).isRequired,\n};\n\nexport default AttendClientComponent;\n","import React from 'react';\nimport PropTypes from 'prop-types';\nimport { FormattedMessage } from 'react-intl';\nimport AlarmIcon from '../../../../icons/AlarmIcon';\nimport { formatDate } from '../../../../BLL/general';\nimport AttendClientComponent from './AttendClientComponent';\nimport messagesAlarms from '../../../../BLL/locale/messagesAlarms';\nimport style from './attendDetail.module.scss';\nimport { trDescriptionLang } from '../../../../BLL/dictionary';\n\nimport '../../../../css/attendComponent.scss';\n\nconst AttendDetail = ({ client, alarms, lang, showIcons, secondary, transmitterList }) => {\n const highestAlarm = alarms && alarms.sort((a, b) => {\n if (a.event_type.priority === b.event_type.priority) {\n if (a.event_type.code === '606' && b.event_type.code !== '606') {\n return 1; // prioritize b higher than a\n } else if (a.event_type.code !== '606' && b.event_type.code === '606') {\n return -1; // prioritize a higher than b\n }\n }\n return a.event_type.priority - b.event_type.priority;\n })[0];\n const fillColor = {\n 1: '#D8342B',\n 2: '#F69B38',\n 3: '#008D53',\n 4: '#3D94CC',\n };\n return (\n
\n {highestAlarm &&\n
\n \n {/* */}\n
\n \n \n \n
\n {highestAlarm && showIcons &&\n \n }\n
\n {(showIcons || highestAlarm.event_type.code === '302' || highestAlarm.event_type.code === '384') &&\n
\n \n \n \n \n {messagesAlarms[lang][highestAlarm.event_type.code]}({highestAlarm.event_type.code})\n \n
\n }\n {highestAlarm &&\n
\n \n \n \n \n {highestAlarm.code.substring(6, 7) === '1'\n ? \n : \n }\n \n
\n }\n {highestAlarm && highestAlarm.tr_description &&\n
\n \n \n \n \n {highestAlarm.tr_description\n ? `(${highestAlarm.tr_zone}) ${trDescriptionLang(highestAlarm.tr_description)}`\n :\n \n }\n \n
\n }\n
\n \n \n \n {formatDate(highestAlarm.timestamp, 'card')}\n
\n
\n
\n }\n
\n );\n};\n\nAttendDetail.propTypes = {\n lang: PropTypes.string.isRequired,\n client: PropTypes.shape({\n account: PropTypes.string,\n account_phone: PropTypes.string,\n aditional_phones: PropTypes.arrayOf(\n PropTypes.shape({\n client: PropTypes.number,\n id: PropTypes.number,\n number: PropTypes.string,\n }),\n ),\n birthdate: PropTypes.string,\n city: PropTypes.string,\n contact_phone: PropTypes.string,\n country: PropTypes.string,\n complement: PropTypes.string,\n cpf: PropTypes.string,\n created_by: PropTypes.number,\n created_date: PropTypes.string,\n district: PropTypes.string,\n first_name: PropTypes.string,\n general_info: PropTypes.string,\n health_plan: PropTypes.string,\n id: PropTypes.number,\n is_deleted: PropTypes.bool,\n key_box: PropTypes.string,\n last_name: PropTypes.string,\n modified_by: PropTypes.number,\n modified_date: PropTypes.string,\n number: PropTypes.number,\n rg: PropTypes.string,\n state: PropTypes.string,\n street: PropTypes.string,\n zip_code: PropTypes.string,\n }).isRequired,\n alarms: PropTypes.shape({\n id: PropTypes.number,\n code: PropTypes.string,\n type: PropTypes.string,\n timestamp: PropTypes.string,\n attend: PropTypes.number,\n event_type: PropTypes.shape({\n id: PropTypes.number,\n zone: PropTypes.string,\n client: PropTypes.number,\n description: PropTypes.string,\n identifier: PropTypes.string,\n general_info: PropTypes.string,\n created_date: PropTypes.string,\n modified_date: PropTypes.string,\n created_by: PropTypes.number,\n modified_by: PropTypes.number,\n }).isRequired,\n tr_zone: PropTypes.string,\n tr_identifier: PropTypes.string,\n tr_description: PropTypes.string,\n tr_gen_info: PropTypes.string,\n }).isRequired,\n};\n\nexport default AttendDetail;\n","import React, { useState, useCallback, useMemo } from 'react';\nimport PropTypes from 'prop-types';\nimport { GoogleMap, useJsApiLoader, Marker, InfoWindow, Circle, MarkerClusterer } from '@react-google-maps/api';\nimport moment from 'moment';\nimport { FormattedMessage } from 'react-intl';\nimport Loading from '../../icons/Loading';\nimport config from '../../BLL/config';\nimport { getDomain, host, getToken } from '../../BLL/environment';\nimport dotIcon, { firstIcon, lastIcon } from '../../icons/trackerIcons';\n// import messages from '../../BLL/locale/messages';\nimport messagesTracker from '../../BLL/locale/messagesIHelpEventTypes';\nimport style from './mapComponent.module.scss';\nimport axios from 'axios';\n\nconst MapMarker = ({ position, icon, isFirstOrLastPoint, clientId }) => {\n const lang = !localStorage.contacttoLang ? 'pt' : localStorage.contacttoLang;\n const [isInfoWindowOpen, setOpenWindow] = useState(false);\n const [address, setAddress] = useState('');\n let timestamp = '';\n if (position.SENDTIME) {\n const sendtime = position.SENDTIME.length > 10 ? parseInt(position.SENDTIME, 10) : parseInt(position.SENDTIME, 10) * 1000;\n timestamp = moment(sendtime).local().format('YYYY-MM-DD HH:mm:ss');\n } else if (position.DATETIME) {\n timestamp = moment(position.DATETIME).local().format('YYYY-MM-DD HH:mm:ss')\n } else {\n timestamp = moment(position.TIMESTAMP).local().format('YYYY-MM-DD HH:mm:ss');\n }\n\n const openInfoWindow = () => {\n const point = `lat=${position.LATITUDE}&lon=${position.LONGITUDE}`\n console.log('AAAaa')\n if (!address) {\n axios.get(\n `https://${getDomain()}${host()}/api/clients/${clientId}/geolocation/?${point}`,\n { headers: { Authorization: `Token ${getToken()}` } }\n ).then((res) => {\n setAddress(res.data.address);\n })\n }\n setOpenWindow(true);\n };\n\n console.log(address);\n\n return (\n openInfoWindow()}\n icon={icon}\n >\n {isInfoWindowOpen &&\n setOpenWindow(false)}>\n
\n {position.BATTERY &&\n \n (%): {position.BATTERY}%\n \n }\n \n : {timestamp}\n \n {position.ONCHARGER !== undefined &&\n \n : {\n position.ONCHARGER === 'true'\n ? \n : \n }\n \n }\n {(position.CELLSIGNAL || position.GSM_SIGNAL) &&\n \n : {position.CELLSIGNAL ? position.CELLSIGNAL : position.GSM_SIGNAL}\n \n }\n \n : {position.EVENTTYPE ? messagesTracker[lang][position.EVENTTYPE] : 'Coordenadas'}\n \n {!position.ADDRESS ? address : position.ADDRESS} \n {(position.ACCURACY || position.GPS_ACCURACY) &&\n \n : {position.ACCURACY ? position.ACCURACY : position.GPS_ACCURACY}m\n \n }\n {position.FROM_WIFI !== undefined &&\n \n : {position.FROM_WIFI ? 'Wi-Fi' : 'GPS'}\n \n }\n
\n
\n }\n \n )\n};\n\nconst MapComponent = ({ pointsList, clientId }) => {\n const { isLoaded } = useJsApiLoader({\n id: 'google-map-script',\n googleMapsApiKey: config.googleMapsApiKey\n });\n const [map, setMap] = useState(null);\n const center = useMemo(() => {\n if (pointsList.length > 0) {\n return ({\n lat: parseFloat(pointsList[0].LATITUDE),\n lng: parseFloat(pointsList[0].LONGITUDE),\n })\n }\n }, [pointsList]);\n\n const onLoad = useCallback((map) => {\n setMap(map);\n }, []);\n\n const onUnmount = useCallback((map) => {\n setMap(null);\n }, []);\n\n if (!isLoaded || !pointsList.length > 0) {\n return } />\n }\n\n return (\n \n \n {(clusterer) => \n pointsList.map((position, index) => {\n if (index === 0 || index === pointsList.length - 1) {\n let icon = firstIcon;\n if (index === 0) {\n icon = firstIcon;\n } else if (index === pointsList.length -1) {\n icon = lastIcon;\n }\n\n return (\n
\n \n \n
\n )\n }\n return (\n \n )\n })\n }\n
\n \n )\n}\n\nMapComponent.defaultProps = {\n height: '650px',\n clientId: 0,\n};\n\nMapComponent.propTypes = {\n clientId: PropTypes.number,\n pointsList: PropTypes.arrayOf(\n PropTypes.shape({\n gsm_signal: PropTypes.number,\n direction: PropTypes.string,\n battery: PropTypes.oneOfType([PropTypes.string, PropTypes.number]),\n lat: PropTypes.oneOfType([PropTypes.string, PropTypes.number]),\n lot: PropTypes.oneOfType([PropTypes.string, PropTypes.number]),\n latitude: PropTypes.oneOfType([PropTypes.string, PropTypes.number]),\n longitude: PropTypes.oneOfType([PropTypes.string, PropTypes.number]),\n address: PropTypes.string,\n }),\n ).isRequired,\n height: PropTypes.string,\n};\n\nexport default MapComponent;\n","import React from 'react';\nimport PropTypes from 'prop-types';\nimport { FormattedMessage } from 'react-intl';\nimport MapComponent from '../../../Map/MapComponentV2';\nimport messagesTracker from '../../../../BLL/locale/messagesIHelpEventTypes';\nimport style from './attendMap.module.scss';\n\nconst AttendMap = ({\n pointList,\n loadLatestPoint,\n errorComponent,\n attend,\n client,\n lang,\n isAttendOpen,\n equipment,\n}) => {\n const firstPoint = pointList[pointList.length - 1];\n let evtMsg = '-';\n if (firstPoint) {\n if (firstPoint.SOS_ALARM === 1) {\n evtMsg = 'Alarme SOS';\n } else if (firstPoint.OVERSPEED === 1) {\n evtMsg = 'Alarme de velocidade';\n } else if (firstPoint.FALLDOWN === 1) {\n evtMsg = 'Alarme de queda';\n } else {\n evtMsg = 'Coordenadas';\n }\n }\n return (\n
\n {errorComponent\n ?\n
\n {isAttendOpen && equipment.name.toLowerCase() !== 'contactto sos - app' &&\n loadLatestPoint(client.id, attend.id)}\n >\n \n \n \n }\n
\n {errorComponent}\n
\n
\n :\n
\n
\n : \n {pointList.length > 0 &&\n pointList[pointList.length - 1].EVTTYPE\n ? messagesTracker[lang][pointList[pointList.length - 1].EVTTYPE]\n : evtMsg\n }\n {/* {pointList.length > 0 &&\n pointList[pointList.length - 1].EVENTTYPE\n ? messagesTracker[lang][pointList[pointList.length - 1].EVENTTYPE]\n : evtMsg\n } */}\n
\n \n
\n }\n
\n );\n};\n\nAttendMap.propTypes = {\n isAttendOpen: PropTypes.bool.isRequired,\n lang: PropTypes.string.isRequired,\n attend: PropTypes.shape({\n id: PropTypes.number,\n }).isRequired,\n client: PropTypes.shape({\n id: PropTypes.number,\n }).isRequired,\n pointList: PropTypes.arrayOf(\n PropTypes.shape({\n gsm_signal: PropTypes.number,\n direction: PropTypes.string,\n battery: PropTypes.oneOfType([PropTypes.string, PropTypes.number]),\n lat: PropTypes.oneOfType([PropTypes.string, PropTypes.number]),\n lot: PropTypes.oneOfType([PropTypes.string, PropTypes.number]),\n latitude: PropTypes.oneOfType([PropTypes.string, PropTypes.number]),\n longitude: PropTypes.oneOfType([PropTypes.string, PropTypes.number]),\n address: PropTypes.string,\n }),\n ).isRequired,\n loadLatestPoint: PropTypes.func.isRequired,\n errorComponent: PropTypes.oneOfType([PropTypes.string, PropTypes.func]).isRequired,\n};\n\nexport default AttendMap;\n","import React, { useEffect, useState } from 'react';\nimport PropTypes from 'prop-types';\nimport { FormattedMessage } from 'react-intl';\nimport { useSelector } from 'react-redux';\nimport moment from 'moment';\n\nimport style from './attendAudioInformation.module.scss';\nimport '../../../../css/attendComponent.scss';\n\nconst AudioDuration = ({ url }) => {\n const [duration, setDuration] = useState(null);\n\n useEffect(() => {\n const audio = new Audio(url);\n audio.addEventListener('loadedmetadata', () => {\n setDuration(audio.duration);\n });\n }, [url]);\n\n const formatTime = (timeInSeconds) => {\n const minutes = Math.floor(timeInSeconds / 60).toString().padStart(2, '0');\n const seconds = Math.floor(timeInSeconds % 60).toString().padStart(2, '0');\n return `${minutes}:${seconds}`;\n };\n\n if (duration === Infinity) {\n return (\n \n \n \n )\n }\n\n return (\n \n {duration ?\n formatTime(duration.toFixed(0)) :\n \n }\n \n );\n};\n\nconst AttendantOrigin = ({ fromId }) => {\n const { attendants } = useSelector((state) => ({\n attendants: state.attendants[0]?.data\n }));\n const [attendant, setAttendant] = useState(undefined);\n\n useEffect(() => {\n if (attendants.length > 0) {\n const newAttendant = attendants.find((att) => att?.user_info?.extension_id === parseInt(fromId, 10));\n setAttendant(newAttendant);\n\n }\n }, [fromId, attendants]);\n\n if (!attendant) {\n return (\n \n \n \n );\n }\n\n return (\n {attendant.first_name} {attendant.last_name}\n );\n}\n\nconst AttendAudioInformation = ({ aditionalAudio }) => {\n console.log(aditionalAudio);\n\n return (\n
\n
\n
\n
\n

\n
\n
\n

\n
\n
\n

\n
\n
\n

\n
\n
\n

\n
\n
\n

\n
\n
\n
\n {aditionalAudio.map((elm) => (\n
\n
\n {/* Date */}\n
\n \n \n \n
\n {moment(elm.audio_ts).format('HH:mm:ss - DD/MM/YYYY')}\n
\n
\n {/* Origin */}\n
\n \n \n \n
\n \n
\n
\n {/* Destiny */}\n
\n \n \n \n
\n \n {elm.to_id}\n \n
\n
\n {/* Type */}\n
\n \n \n \n
\n {elm.audio_file.includes('REMINDER') ? \n :\n \n }\n
\n
\n {/* Duration */}\n
\n \n \n \n
\n \n
\n
\n {/* Dl */}\n
\n \n \n \n
\n \n \n \n \n \n
\n
\n
\n
\n ))\n\n }\n
\n
\n )\n};\n\nAttendAudioInformation.propTypes = {\n aditionalAudio: PropTypes.arrayOf(PropTypes.shape({\n audio_file: PropTypes.string,\n audio_ts: PropTypes.string,\n audio_url: PropTypes.string\n })).isRequired,\n};\n\nexport default AttendAudioInformation;\n","import React, { useState } from \"react\";\nimport PropTypes from \"prop-types\";\nimport Order from \"../../../icons/Order\";\nimport style from \"./accordion.module.scss\";\n\nconst AccordionSection = ({ label, children, isOpened }) => {\n const [isOpen, setIsOpen] = useState(isOpened);\n\n const rotateOrder = isOpen ? style.rotate : \"\";\n\n return (\n
\n setIsOpen(!isOpen)}\n >\n {label}\n \n \n {isOpen && <>{children}}\n
\n );\n};\n\nAccordionSection.defaultProps = {\n isOpened: false,\n};\n\nAccordionSection.propTypes = {\n label: PropTypes.element.isRequired,\n children: PropTypes.node.isRequired,\n isOpened: PropTypes.bool\n};\n\n\nexport default AccordionSection;\n","import React, { useEffect, useState, useRef } from 'react';\nimport PropTypes from 'prop-types';\nimport { FormattedMessage } from 'react-intl';\nimport style from './modalReturnCall.module.scss';\n\nconst ModalDraggable = (props) => {\n let pos1 = 0;\n let pos2 = 0;\n let pos3 = 0;\n let pos4 = 0;\n const wrapperRef = useRef(null);\n const [posX, setPosX] = useState(props.posX);\n const [posY, setPosY] = useState(props.posY);\n\n const dragMouseDown = (e) => {\n e.preventDefault();\n pos3 = e.clientX;\n pos4 = e.clientY;\n document.onmouseup = closeDragElement;\n document.onmousemove = elementDrag;\n };\n\n const elementDrag = (e) => {\n e.preventDefault();\n pos1 = pos3 - e.clientX;\n pos2 = pos4 - e.clientY;\n pos3 = e.clientX;\n pos4 = e.clientY;\n\n setPosX(wrapperRef.current.offsetLeft - pos1);\n setPosY(wrapperRef.current.offsetTop - pos2);\n };\n\n const closeDragElement = () => {\n document.onmouseup = null;\n document.onmousemove = null;\n };\n return (\n
\n
\n {props.headerTitle}\n \n
\n {props.children}\n
\n )\n};\n\nModalDraggable.defaultProps = {\n posX: 570,\n posY: 15,\n isIndependent: false,\n headerTitle: \"\"\n};\n\nModalDraggable.propTypes = {\n closeModal: PropTypes.func.isRequired,\n posX: PropTypes.number,\n posY: PropTypes.number,\n headerTitle: PropTypes.string,\n};\n\nexport default ModalDraggable;\n","import React, { useState } from 'react';\nimport PropTypes from \"prop-types\";\nimport { useSelector } from \"react-redux\";\nimport { FormattedMessage } from 'react-intl';\nimport styles from './softphoneKeyboard.module.scss';\nimport messages from '../../BLL/locale/messages';\n\nconst SoftphoneKeyboard = ({ onConfirm }) => {\n const { lang } = useSelector((state) => ({\n lang: state.locale.lang\n }));\n const [phoneNumber, setPhoneNumber] = useState('');\n\n const handleButtonClick = (value) => {\n setPhoneNumber(phoneNumber + value);\n };\n\n const handleBackspace = () => {\n setPhoneNumber(phoneNumber.slice(0, -1));\n };\n\n const handleConfirm = () => {\n onConfirm(phoneNumber);\n };\n\n return (\n
\n setPhoneNumber(e.target.value)}\n onKeyPress={(event) => {\n if (!/[0-9\\-()+\\s]/.test(event.key)) {\n event.preventDefault();\n }\n }}\n placeholder={messages[lang][\"extension.softphoneInput\"]}\n />\n
\n {[1, 2, 3, 4, 5, 6, 7, 8, 9, '*', 0, '#'].map((value) => (\n handleButtonClick(value)}\n >\n {value}\n \n ))}\n
\n
\n \n \n
\n
\n );\n};\n\nSoftphoneKeyboard.propTypes = {\n onConfirm: PropTypes.func.isRequired,\n};\n\nexport default SoftphoneKeyboard;\n","import React, { useEffect, useState } from \"react\";\nimport PropTypes from \"prop-types\";\nimport axios from 'axios';\nimport { useSelector } from \"react-redux\";\nimport { FormattedMessage } from 'react-intl';\nimport { host, getDomain, getToken } from \"../../../../BLL/environment\";\nimport { generateRandomNumberString } from \"../../../../BLL/general\";\nimport * as general from '../../../../BLL/general';\nimport styles from \"./extensionCaller.module.scss\";\nimport messages from \"../../../../BLL/locale/messages\";\n\nconst ExtensionCaller = ({ selectedLine, handleBackButton, startCall, hangupSip, clientAccount, attendId, callType, sipEventType }) => {\n const [callState, setCallState] = useState('idle');\n console.log('EVENT TYPE =====>', sipEventType);\n\n useEffect(() => {\n if (sipEventType === 'terminated') {\n setCallState('finished');\n }\n }, [sipEventType])\n\n const { lang, extensionId } = useSelector((state) => ({\n lang: state.locale.lang,\n extensionId: state.loggedAttendant.user_info.extension_id\n }));\n\n const padWithZero = (number) => number.toString().padStart(2, '0');\n\n const handleMakeCall = async (lineType=1) => {\n const typeNumbers = {\n externalLine1: '005494',\n reminderLine1: '005495',\n externalLine2: '005496',\n reminderLine2: '005497',\n }\n const phone = general.removeNonDigit(selectedLine.phone, true)\n const attendUid = generateRandomNumberString(6);\n const typeNumber = callType === 'attend'\n ? typeNumbers[`externalLine${lineType}`]\n : typeNumbers[`reminderLine${lineType}`];\n const callNumber = `${typeNumber}${clientAccount}${attendUid}${phone}`;\n setCallState('onCall');\n startCall(callNumber);\n const currentDate = new Date();\n const year = currentDate.getFullYear();\n const month = currentDate.getMonth() + 1;\n const day = currentDate.getDate();\n const file = `${clientAccount}-${phone}-${year}${padWithZero(month)}${padWithZero(day)}-${attendUid}${callType === 'reminder' ? '-REMINDER' : ''}.wav`;\n const timezoneOffsetInMs = currentDate.getTimezoneOffset() * 60 * 1000;\n const localDate = new Date(currentDate - timezoneOffsetInMs);\n const audio_ts = localDate.toISOString();\n\n const apiUrl = `https://${getDomain()}${host()}/api/attend/${attendId}/additional-audio/`;\n try {\n const response = await axios.post(apiUrl, {\n from_id: extensionId,\n to_id: phone,\n audio_file: `${year}/${month}/${day}/${file}`,\n audio_ts,\n }, {\n headers: {\n 'Content-Type': 'application/json',\n 'Authorization': `Token ${getToken()}`,\n },\n });\n if (!response.status === 200) {\n console.error('Error posting additional audio data');\n }\n } catch (error) {\n console.error('Error posting additional audio data', error);\n }\n };\n\n const handleHangUp = () => {\n setCallState('finished');\n hangupSip();\n };\n\n const handleBackClick = () => {\n hangupSip();\n handleBackButton();\n }\n\n\n return (\n
\n {callState === 'idle' &&\n <>\n
\n
\n \n
\n
\n \n {messages[lang][`extension.${selectedLine.type}`]} - {selectedLine.name} - {\n selectedLine.phone.length > 10 ? general.setMask(selectedLine.phone, '(00) 0 0000-0000') : general.setMask(selectedLine.phone, '(00) 0000-0000')\n }\n \n
\n
\n
\n \n {/* */}\n
\n \n
\n
\n \n }\n {callState === 'onCall' &&\n <>\n
\n ...\n
\n \n
\n
\n \n {messages[lang][`extension.${selectedLine.type}`]} - {selectedLine.name} - {\n selectedLine.phone.length > 10 ? general.setMask(selectedLine.phone, '(00) 0 0000-0000') : general.setMask(selectedLine.phone, '(00) 0000-0000')\n }\n \n
\n \n
\n \n }\n {callState === 'finished' &&\n <>\n
\n \n \n
\n \n }\n
\n )\n};\n\nExtensionCaller.defaultProps = {\n callType: 'attend'\n};\n\nExtensionCaller.propTypes = {\n handleBackButton: PropTypes.func.isRequired,\n startCall: PropTypes.func.isRequired,\n hangup: PropTypes.func.isRequired,\n sipEventType: PropTypes.string.isRequired,\n selectedLine: PropTypes.shape({\n type: PropTypes.string,\n phone: PropTypes.string,\n name: PropTypes.string\n }).isRequired,\n clientAccount: PropTypes.string.isRequired,\n attendId: PropTypes.number,\n};\n\nexport default ExtensionCaller;\n","import React from 'react';\n\nconst ComponentFailed = (props) => {\n const { error } = props;\n\n if (error?.name === 'NotFoundError' && error?.message === \"Failed to execute 'removeChild' on 'Node': The node to be removed is not a child of this node.\") {\n return (\n
\n Ocorreu um erro, se você estiver utilizando google translate, por favor desative-o e verifique se o erro persiste.\n
\n );\n }\n\n return (\n
\n Ocorreu um erro com este componente, o erro está sendo catalogado e será resolvido o mais breve possível...\n
\n );\n}\n\nexport default ComponentFailed;\n","import React, { useEffect, useState } from \"react\";\nimport PropTypes from \"prop-types\";\nimport { ErrorBoundary } from \"react-error-boundary\";\nimport { useSelector } from \"react-redux\";\nimport { FormattedMessage } from 'react-intl';\nimport SoftphoneKeyboard from \"../../../Common/SoftphoneKeyboard\";\nimport ExtensionCaller from \"./ExtensionCaller\";\nimport ComponentFailed from \"../../../Error/ComponentFailedErrorBoundary\";\nimport * as general from '../../../../BLL/general';\nimport styles from \"./attendExtensionCall.module.scss\";\nimport messages from \"../../../../BLL/locale/messages\";\n\nconst ContactComponent = ({ contact, handleSelectButton }) => {\n const { lang } = useSelector((state) => ({\n lang: state.locale.lang\n }));\n const [data, setData] = useState(undefined);\n\n useEffect(() => {\n if (contact) {\n const primaryPhone = contact.phones.find(\n (phone) => phone.phone_type === \"Primary\"\n );\n\n setData({\n name: `${contact.first_name} ${contact.last_name}`,\n phone: primaryPhone.phone\n })\n }\n }, [contact]);\n\n const handleSelect = (ev) => {\n console.log(ev.target.value)\n setData((prevState) => ({\n ...prevState,\n phone: ev.target.value\n }))\n }\n\n const handleSelectClick = () => {\n handleSelectButton(data, 'contact');\n }\n\n return (\n
\n
\n
\n : {contact.first_name} {contact.last_name}\n
\n
\n \n :\n \n {data &&\n \n }\n
\n
\n \n
\n );\n};\n\nconst AttendExtensionCall = ({ client, contacts, startCall, hangupSip, attendId, sipEventType }) => {\n const { lang, equipmentList } = useSelector((state) => ({\n lang: state.locale.lang,\n equipmentList: state.equipment.length > 0 ? state.equipment[0].data : [],\n }));\n\n const outsideEquipmentList = equipmentList.filter(equipment => !equipment.name.includes('PERS'))\n\n const [selectedLine, setSelectedContact] = useState(null);\n const [showDetails, setShowDetails] = useState(false);\n const [showSoftphoneKeyboard, setShowSoftphoneKeyboard] = useState(false);\n\n const handleSelectButton = (data, type, phoneType=\"\") => {\n let line = {\n type,\n phone: \"\",\n name: messages[lang]['extension.own'],\n };\n if (type === \"client\") {\n switch (phoneType) {\n case 'contact':\n line.phone = data.contact_phone\n break;\n case 'extra':\n line.phone = data.extra_phone\n break;\n default:\n line.phone = data.account_phone;\n break;\n }\n } else {\n line.phone = data.phone;\n line.name = data.name;\n }\n setSelectedContact(line);\n setShowDetails(true);\n };\n\n const handleCustomPhoneConfirm = (customPhone) => {\n if (customPhone) {\n setSelectedContact({\n type: 'custom',\n phone: customPhone,\n name: 'custom',\n });\n setShowDetails(true);\n }\n };\n\n const handleBackButton = () => {\n setShowDetails(false);\n };\n\n console.log(\"Client info\", outsideEquipmentList)\n\n return showDetails ? (\n
\n \n
\n ) : (\n
\n
\n
\n \n \n \n
\n : {client.account}\n
\n {client.account_phone && outsideEquipmentList.some(equipment => equipment.id === client.equipment_id) &&\n
\n
\n : {client.account_phone.length > 10 ? general.setMask(client.account_phone, '(00) 0 0000-0000') : general.setMask(client.account_phone, '(00) 0000-0000')} \n
\n \n
\n }\n {client.contact_phone &&\n
\n
\n 1: {client.contact_phone.length > 10 ? general.setMask(client.contact_phone, '(00) 0 0000-0000') : general.setMask(client.contact_phone, '(00) 0000-0000')} \n
\n \n
\n }\n {client.extra_phone &&\n
\n
\n 2: {client.extra_phone.length > 10 ? general.setMask(client.extra_phone, '(00) 0 0000-0000') : general.setMask(client.extra_phone, '(00) 0000-0000')} \n
\n \n
\n }\n {!client.contact_phone && !client.extra_phone && }\n
\n
\n
\n \n \n \n \n {contacts?.filter((contact) => !contact.is_deleted).map((contact) => (\n \n ))}\n \n
\n \n \n \n
\n setShowSoftphoneKeyboard(!showSoftphoneKeyboard)}\n className={styles['select-btn']}\n >\n {showSoftphoneKeyboard ? \n :\n }\n \n
\n {showSoftphoneKeyboard && (\n \n )}\n
\n );\n};\n\nAttendExtensionCall.propTypes = {\n startCall: PropTypes.func.isRequired,\n hangupSip: PropTypes.func.isRequired,\n attendId: PropTypes.number.isRequired,\n sipEventType: PropTypes.string.isRequired,\n client: PropTypes.shape({\n id: PropTypes.number,\n account: PropTypes.string,\n account_phone: PropTypes.string,\n contact_phone: PropTypes.string,\n extra_phone: PropTypes.string,\n }).isRequired,\n contacts: PropTypes.arrayOf(\n PropTypes.shape({\n id: PropTypes.number,\n first_name: PropTypes.string,\n last_name: PropTypes.string,\n phones: PropTypes.arrayOf(\n PropTypes.shape({\n phone_type: PropTypes.string,\n phone: PropTypes.string,\n })\n ),\n priority: PropTypes.number,\n })\n ).isRequired,\n};\n\nexport default AttendExtensionCall;\n","import React, { useState, useEffect } from 'react';\nimport axios from 'axios';\nimport PropTypes from 'prop-types';\nimport { connect } from 'react-redux';\nimport { FormattedMessage } from 'react-intl';\nimport { getDomain, host, getToken } from '../../../BLL/environment';\nimport AttendHeader from './ClosedComponents/AttendHeader';\nimport AttendSolvedBy from './ClosedComponents/AttendSolvedBy';\nimport AttendContacted from './ClosedComponents/AttendContacted';\nimport AttendInformation from './ClosedComponents/AttendInformation';\nimport AttendComments from './ClosedComponents/AttendComments';\nimport AttendReminders from './ClosedComponents/AttendReminders';\nimport AttendDetail from './OpenComponents/AttendDetail';\nimport AttendMap from './OpenComponents/AttendMap';\n\nimport messages from \"../../../BLL/locale/messages\";\nimport * as attendsActions from '../../../actions/attendsActions';\nimport * as contactsActions from '../../../actions/contactsActions';\n\nimport '../../../css/AttendanceClosed.scss';\nimport AttendAudioInformation from './ClosedComponents/AttendAudioInformation';\nimport AccordionSection from './Accordion';\nimport ModalDraggable from '../../Modal/ModalDraggable';\nimport AttendExtensionCall from './OpenComponents/AttendExtensionCall';\n\nconst AttendClosed = (props) => {\n const { contactList } = props;\n const [attend, setAttend] = useState(undefined);\n const [secondary, setSecondary] = useState(undefined);\n const [client, setClient] = useState(undefined);\n const [contacts, setContacts] = useState([]);\n const [transmitterList, setTransmitterList] = useState([]);\n const [successAttendant, setSuccessAttendant] = useState(undefined);\n const [successContact, setSuccessContact] = useState(undefined);\n const [equipment, setEquipment] = useState(undefined);\n const [contactedAttendants, setContactedAttendants] = useState([]);\n const [contactedContacts, setContactedContacts] = useState([]);\n const [remindersList, setRemindersList] = useState([]);\n const [pointList, setPointList] = useState([]);\n const [clientMessages, setClientMessages] = useState([]);\n const [report, setReport] = useState('');\n const [tagId, setTagId] = useState('');;\n const [attendAudio, setAttendAudio] = useState('');\n const [errorComponent, setErrorComponent] = useState('');\n const [editingComments, setEditingComments] = useState(false);\n const [editingTag, setEditingTag] = useState(false);\n const [currentServerTime, setCurrentServerTime] = useState(undefined);\n const [showExtensionCall, setShowExtensionCall] = useState(false);\n const [canMakeExtension, setCanMakeExtension] = useState(false);\n\n useEffect(() => {\n fetchAttend(props.match.params.id);\n }, []);\n\n useEffect(() => {\n if (attend) {\n setReport(attend.report);\n\n if (attend.audio_file) {\n fetchAudio(attend.id);\n }\n\n fetchAttendReminders(attend.id);\n }\n }, [attend]);\n\n useEffect(() => {\n const hasEventType606 = (att) => {\n return att.events.some(event => event.event_type.code === '606');\n }\n if (attend) {\n const serverTime = new Date(currentServerTime);\n const attendClose = new Date(attend?.close_ts);\n const difference = (serverTime - attendClose) / (1000 * 60 * 60);\n setCanMakeExtension(difference < 24 && hasEventType606(attend));\n }\n }, [attend, currentServerTime]);\n\n useEffect(() => {\n if (client && attend) {\n const equipmentName = equipment.name.toLowerCase();\n if (equipmentName === 'igo' || equipmentName === 'ihelp' || equipmentName === 'climax - mobile' || equipmentName === 'ev07b' || equipmentName === 'ev07b - cb') {\n fetchClosedPoints(client.id, attend.id);\n }\n if (equipment.name.toLowerCase() === 'contactto sos - app') {\n fetchSOSAppAttendPoint(attend.id);\n }\n }\n }, [client, equipment]);\n\n useEffect(() => {\n if (client) {\n props.loadContacts(client.id, 'priority')\n }\n }, [client]);\n\n useEffect(() => {\n if (client && contactList.length > 0) {\n const haveContactList = contactList.some((c) => c.clientId === client.id);\n if (haveContactList) {\n const filteredContacts = contactList.filter(\n (c) =>\n parseInt(c.clientId, 10) === client.id && c.ordering === \"priority\"\n )[0];\n setContacts([...filteredContacts.data]);\n }\n }\n }, [contactList, client]);\n\n const fetchAttend = (id) => {\n console.log('FETCHING ATTEND');\n axios\n .get(`https://${getDomain()}${host()}/api/attend/${id}/`, {\n headers: { Authorization: `Token ${getToken()}` },\n })\n .then((res) => {\n if (!res.data.attend.close_ts) {\n props.history.push(`/app/attends/call/${this.props.match.params.id}/`);\n }\n const data = res.data;\n const client = data.client;\n setClient(Object.assign({}, client));\n setAttend(Object.assign({}, data.attend));\n setEquipment(Object.assign({}, data.equipment));\n setTransmitterList(data.transmitters);\n setClientMessages(data.client_message);\n setContactedAttendants(data.contacted_att);\n setContactedContacts(data.contacted_cont);\n setTagId(data.attend.tag_id);\n setCurrentServerTime(data.current_time);\n\n if (client.secondary.length > 0) {\n const secondary = client.secondary[0]\n setSecondary(Object.assign({}, secondary));\n }\n\n if (data.success_attendant) {\n setSuccessAttendant(data.success_attendant);\n }\n if (data.success_contact) {\n setSuccessContact(data.success_contact);\n }\n });\n };\n\n const fetchAudio = (id) => {\n axios\n .get(`https://${getDomain()}${host()}/api/attends/audio/${id}/`, {\n headers: { Authorization: `Token ${getToken()}` },\n })\n .then((res) => {\n if (res.data.success) {\n setAttendAudio(res.data.success);\n }\n })\n .catch((error) => {\n console.log(error);\n })\n };\n\n const fetchAttendReminders = (id) => {\n axios\n .get(`https://${getDomain()}${host()}/api/reminders/?attend=${id}`, {\n headers: { Authorization: `Token ${getToken()}` },\n })\n .then((res) => {\n const reminders = res.data.data;\n setRemindersList(reminders);\n })\n .catch((error) => {\n console.log(error)\n });\n };\n\n const fetchClosedPoints = (clientId, attendId) => {\n axios({\n url: `https://${getDomain()}${host()}/api/clients/${clientId}/tracker-iot/attend/${attendId}/`,\n method: 'GET',\n responseType: 'json',\n headers: {\n Authorization: `Token ${getToken()}`,\n },\n })\n .then((res) => {\n if (res.data.length > 0) {\n setPointList(res.data);\n setErrorComponent('');\n }\n })\n .catch((err) => {\n if (err.response.data.error && err.response.data.error === 'No Points') {\n const errorMessage = 'COORDENADAS NÃO ENCONTRADAS PARA ESTE ATENDIMENTO.';\n const newErrorComponent = ;\n setErrorComponent(newErrorComponent);\n } else if (err.response.data.imei) {\n const errorMessage = 'ESTE USUÁRIO NÃO ESTÁ COM O IMEI CADASTRADO.\\n';\n const newErrorComponent = ;\n setErrorComponent(newErrorComponent);\n }\n });\n };\n\n const fetchSOSAppAttendPoint = (attendId) => {\n axios({\n url: `https://${getDomain()}${host()}/api/attend/${attendId}/app-location/`,\n method: 'GET',\n responseType: 'json',\n headers: {\n Authorization: `Token ${getToken()}`,\n },\n })\n .then((res) => {\n if (res.data) {\n const point = Object.fromEntries(\n Object.entries(res.data).map(([k, v]) => [k.toUpperCase(), v]),\n );\n setPointList([point]);\n setErrorComponent('');\n }\n })\n .catch((err) => {\n if (err.response.data && err.response.data.error.includes('No coordinates')) {\n const errorMessage = 'COORDENADAS NÃO ENCONTRADAS PARA ESTE ATENDIMENTO.';\n const newErrorComponent = ;\n setErrorComponent(newErrorComponent)\n }\n });\n };\n\n const updateTag = () => {\n const tag = Object.assign({}, { tag: tagId });\n axios({\n method: 'put',\n responseType: 'json',\n url: `https://${getDomain()}${host()}/api/attend/${props.match.params.id}/tag-update/`,\n data: tag,\n headers: { Authorization: `Token ${getToken()}` },\n })\n .then(() => {\n setEditingTag(false);\n })\n .catch((error) => {\n console.log(error.response);\n })\n };\n\n const updateReport = () => {\n const updatedReport = Object.assign({}, { id: props.match.params.id }, { report });\n setEditingComments(false);\n props.editAttend(updatedReport);\n }\n\n if (!attend || !client || !equipment) {\n return (\n
\n Carregando atendimento\n
\n );\n };\n\n const setTag = (ev) => {\n const value = ev.target.value;\n setTagId(value);\n }\n\n const duration = attend ? `${attend.call_duration.split(':')[1]}:${attend.call_duration.split(':')[2]}` : '00:00';\n const aditionalAudio = attend.aditional_audio.length > 0\n ? attend.aditional_audio.filter((audio) => !audio.audio_file.includes('reminder'))\n : [];\n const reminderAudio = attend.aditional_audio.length > 0\n ? attend.aditional_audio.filter((audio) => audio.audio_file.includes('reminder'))\n : [];\n\n console.log('Can make extension call?', canMakeExtension);\n\n return (\n
\n {showExtensionCall &&\n setShowExtensionCall(false)} headerTitle={messages[props.lang]['extension.headerTitle']}>\n \n \n }\n {attend && (\n \n
\n {attend.id}\n
\n
\n setShowExtensionCall(true)}\n />\n }\n >\n \n \n {(successAttendant || successContact) &&\n }\n >\n \n \n }\n }\n >\n \n \n }\n >\n setEditingTag(!editingTag)}\n updateTag={updateTag}\n isAdmin={props.isAdmin}\n clientMessages={clientMessages}\n />\n \n {!props?.configurationGlobal.remove_audio_files && attend?.aditional_audio.length > 0 &&\n }\n >\n \n \n }\n {equipment.is_mobile &&\n }\n >\n {}}\n errorComponent={errorComponent}\n lang={props.lang}\n isAttendOpen={false}\n />\n \n }\n }\n >\n setEditingComments(!editingComments)}\n setReport={(ev) => setReport(ev.target.value)}\n updateReport={updateReport}\n isAdmin={props.isAdmin}\n />\n \n }\n >\n \n \n
\n )}\n
\n );\n};\n\nAttendClosed.propTypes = {\n params: PropTypes.shape({\n id: PropTypes.string.isRequired,\n }).isRequired,\n lang: PropTypes.string.isRequired,\n loadContacts: PropTypes.func.isRequired,\n editAttend: PropTypes.func.isRequired,\n updateTag: PropTypes.func.isRequired,\n isAdmin: PropTypes.bool.isRequired,\n configurationGlobal: PropTypes.shape({\n show_icons: PropTypes.bool,\n remove_audio_files: PropTypes.bool,\n }).isRequired,\n};\n\nfunction mapStateToProps(state, ownProps) {\n return {\n contactList: state.contacts,\n lang: state.locale.lang,\n configurationGlobal: state.globalConfiguration.global,\n isAdmin: state.loggedAttendant.groups\n ? (state.loggedAttendant.groups[0] === 1 || state.loggedAttendant.groups[0] === 4)\n : false,\n };\n}\n\nfunction mapDispatchToProps(dispatch) {\n return {\n editAttend: attend => dispatch(attendsActions.editAttend(attend)),\n updateTag: (attendId, tag) => dispatch(attendsActions.updateTag(attendId, tag)),\n loadContacts: (clientId, ordering) => dispatch(contactsActions.loadContacts(clientId, ordering)),\n };\n}\n\nexport default connect(mapStateToProps, mapDispatchToProps)(AttendClosed);\n","export default class WarningTimer {\n constructor(current, alarm, limit) {\n this.setInitialTimes(current, alarm, limit);\n this.duration = this.limit - this.alarm;\n }\n\n setInitialTimes(current, alarm, limit) {\n this.alarm = new Date(alarm);\n this.limit = new Date(limit);\n this.current = new Date(current);\n\n // Adjust the current time if it is before the alarm time (discrepancy in the equipment)\n if (this.current < this.alarm) {\n this.current = new Date(this.alarm);\n }\n }\n\n timer(counter) {\n const time = ((this.limit - this.current) - (counter * 1000));\n if (this.current < this.limit && time <= this.duration && time >= 1000) {\n return time;\n }\n return -1;\n }\n\n}\n","import React, { useState, useEffect } from 'react';\nimport PropTypes from 'prop-types';\nimport { FormattedMessage } from 'react-intl';\nimport WarningTimer from '../../../../BLL/warningTimer';\nimport style from './attendWarningMessage.module.scss';\n\nconst WarningMessagesComponent = (props) => {\n const [loading, setLoading] = useState(true);\n const [clock, setClock] = useState(undefined);\n const [clockInterval, setClockInterval] = useState(undefined);\n const [canDisableMsgs, setCanDisableMsgs] = useState(true);\n const [messagesDisabled, setMessagesDisabled] = useState(false);\n const [seconds, setSeconds] = useState(undefined);\n \n useEffect(() => {\n if (props.warningLimit) {\n const newClock = new WarningTimer(props.currentServerTime, props.alarmTime, props.warningLimit)\n setClock(newClock);\n }\n }, [props.warningLimit, props.currentServerTime, props.alarmTime, props.sendWarningMessages]);\n \n useEffect(() => {\n const startTimer = () => {\n let counter = 0;\n const interval = setInterval(() => {\n const newTimer = clock.timer(counter);\n setLoading(false);\n const newSeconds = parseInt(newTimer/1000);\n setSeconds(newSeconds);\n \n if (newTimer === -1) {\n clearInterval(interval);\n setCanDisableMsgs(false);\n }\n counter += 1;\n }, 1000);\n setClockInterval(interval);\n };\n \n if (clock) {\n startTimer();\n }\n \n }, [clock]);\n \n useEffect(() => {\n if (clockInterval && props.sendWarningMessages === false) {\n setLoading(false);\n clearInterval(clockInterval);\n setMessagesDisabled(true);\n }\n \n }, [props.sendWarningMessages, clockInterval])\n \n const disableWarningMessages = () => {\n setMessagesDisabled(true);\n clearInterval(clockInterval);\n props.stopWarningMessages();\n }\n \n if (loading) {\n return (\n
\n ...\n
\n )\n }\n\n if (messagesDisabled) {\n return (\n
\n \n \n \n
\n );\n }\n \n if (seconds === 0) {\n return (\n
\n \n \n \n
\n );\n }\n\n return (\n
\n \n \n \n
\n disableWarningMessages()}\n disabled={!canDisableMsgs}>\n \n \n
\n
\n );\n};\n\nWarningMessagesComponent.propTypes = {\n warningLimit: PropTypes.string.isRequired,\n currentServerTime: PropTypes.string.isRequired,\n alarmTime: PropTypes.string.isRequired,\n stopWarningMessages: PropTypes.func.isRequired,\n}\n\nexport default WarningMessagesComponent;\n","import React from 'react';\nimport PropTypes from 'prop-types';\nimport { FormattedMessage } from 'react-intl';\nimport moment from 'moment';\nimport FemaleIcon from '../../../../../icons/FemaleIcon';\nimport MaleIcon from '../../../../../icons/MaleIcon';\nimport UnisexIcon from '../../../../../icons/TransexIcon';\nimport MobileIcon from '../../../../../icons/MobileDeviceIcon';\nimport HomeIcon from '../../../../../icons/HomeDeviceIcon';\nimport style from './attendHeader.module.scss';\n\nconst ClientInfo = ({ client, secondary, transmitterList, alarms, equipment, isAttendOperator, isAdmin, changeAttendant }) => {\n let showSecondary = false;\n const highestAlarm = alarms && alarms.sort((a, b) => a.event_type.priority - b.event_type.priority)[0];\n if (highestAlarm?.tr_zone && transmitterList.length > 0) {\n const mainTransmitter = transmitterList.find(tr => tr.zone === highestAlarm.tr_zone && tr.identifier === highestAlarm.tr_identifier);\n if (mainTransmitter?.secondary > 0 && secondary) {\n showSecondary = true;\n }\n }\n return (\n
\n \n {!showSecondary ? client.first_name : secondary.first_name} {!showSecondary ? client.last_name : secondary.last_name}\n \n {!isAttendOperator && isAdmin &&\n
\n \n \n \n
\n }\n {!showSecondary\n ?\n
\n {client.gender === 'm' && }\n {client.gender === 'f' && }\n {client.gender === 'n' && }\n
\n :\n
\n {secondary.gender === 'm' && }\n {secondary.gender === 'f' && }\n {secondary.gender === 'n' && }\n
\n }\n
\n {!showSecondary ? moment().year() - moment(client.birthdate).year() : moment().year() - moment(secondary.birthdate).year()}\n \n \n \n
\n {equipment.is_mobile\n ? \n : \n }\n \n
\n )\n};\n\nClientInfo.propTypes = {\n client: PropTypes.shape({\n birthdate: PropTypes.string,\n first_name: PropTypes.string,\n last_name: PropTypes.string,\n gender: PropTypes.string,\n }).isRequired,\n secondary: PropTypes.shape({\n birthdate: PropTypes.string,\n first_name: PropTypes.string,\n last_name: PropTypes.string,\n gender: PropTypes.string,\n }),\n isAdmin: PropTypes.bool.isRequired,\n isAttendOperator: PropTypes.bool.isRequired,\n changeAttendant: PropTypes.func.isRequired\n};\n\nexport default ClientInfo;\n","import React from 'react';\nimport PropTypes from 'prop-types';\nimport style from './attendHeader.module.scss';\n\nconst CallClock = ({ callState, callTimer, duration }) => {\n return (\n
\n
\n {callState === 1\n ?
{callTimer}
\n :
{!duration ? '00:00' : duration}
\n }\n
\n
\n )\n};\n\nCallClock.propTypes = {\n callTimer: PropTypes.string.isRequired,\n duration: PropTypes.number.isRequired,\n callState: PropTypes.number.isRequired,\n};\n\nexport default CallClock;\n","import React, { useState } from 'react';\nimport PropTypes from 'prop-types';\nimport { FormattedMessage } from 'react-intl';\nimport { callStates } from '../../../../../BLL/globals';\nimport ModalDraggable from '../../../../Modal/ModalDraggable';\nimport style from './attendHeader.module.scss';\n\n\nconst AlexaStateComponent = ({ clientMessages, replyMessage, setReplyMessage, setCallState, sendResponseToAlexa}) => {\n const [showReplyInput, setShowReplyInput] = useState(false);\n\n return (\n
\n {!showReplyInput ?\n
\n \n
:\n setShowReplyInput(false)} headerTitle=\"RETORNO AO USUÁRIO\">\n
\n {clientMessages.map((elm) => (\n
\n Mensagem do usuário: \n \n {!elm.message \n ? \n : elm.message\n }\n \n
\n ))}\n
\n setReplyMessage(e.target.value)}\n className=\"form-control\"\n maxLength=\"1024\"\n rows=\"4\"\n cols=\"50\"\n />\n {\n // setCallState(callStates.CLOSED);\n sendResponseToAlexa();\n }}\n >\n \n \n
\n
\n
\n }\n
\n );\n};\n\nAlexaStateComponent.propTypes = {\n replyMessage: PropTypes.string.isRequired,\n setReplyMessage: PropTypes.func.isRequired,\n setCallState: PropTypes.func.isRequired,\n sendResponseToAlexa: PropTypes.func.isRequired,\n clientMessages: PropTypes.arrayOf(PropTypes.shape({\n id: PropTypes.number,\n message: PropTypes.string\n })).isRequired\n}\n\nexport default AlexaStateComponent;\n","import React from 'react';\nimport PropTypes from 'prop-types';\nimport { useSelector } from \"react-redux\";\nimport { FormattedMessage } from 'react-intl';\nimport { callStates } from '../../../../../BLL/globals';\nimport messages from '../../../../../BLL/locale/messages';\nimport Speak from '../../../../../icons/Speak';\nimport Listen from '../../../../../icons/Listen';\nimport TwoWayAudio from '../../../../../icons/TwoWayAudio';\nimport AlexaStateComponent from './AlexaStateComponent';\nimport style from './attendHeader.module.scss';\n\nconst CLIMAX_EQUIP_ID = 7;\n\nconst CallClosedComponent = ({toggleReminderNote, setAudioStatus, canReturn, openModalReturn, openModalExtension, audioStatus, lang}) => {\n const { useZones } = useSelector((state) => ({\n useZones: state.globalConfiguration?.global?.use_alarm_zones\n }));\n\n return (\n
\n
\n \n \n \n setAudioStatus(messages[lang]['attend.reminder.createReminder'])}\n onMouseOut={() => setAudioStatus('')}\n >\n \n \n {audioStatus &&\n
\n {audioStatus}\n
\n }\n {canReturn &&\n \n }\n {!useZones &&\n \n }\n
\n
\n );\n};\n\nconst CallOpenComponent = ({attendSip}) => (\n
\n
\n \n
\n
\n);\n\nconst CallInProgressComponent = ({hangupSip, equipment, muteAudio, setAudioStatus, mutePhone, autoCall, callMsg, audioStatus}) => (\n
\n\n
\n
\n \n
\n {(!equipment.is_mobile || (equipment.is_mobile && equipment.id === CLIMAX_EQUIP_ID)) &&\n
\n setAudioStatus()}\n onMouseOut={() => setAudioStatus('')}\n >\n \n \n setAudioStatus()}\n onMouseOut={() => setAudioStatus('')}\n >\n \n \n setAudioStatus()}\n onMouseOut={() => setAudioStatus('')}\n >\n \n \n
\n {audioStatus}\n
\n
\n }\n \n {callMsg}\n \n
\n
\n);\n\nconst NoCallComponent = ({toggleReminderNote, setAudioStatus, lang, openModalExtension}) => {\n const { useZones } = useSelector((state) => ({\n useZones: state.globalConfiguration?.global?.use_alarm_zones\n }));\n\n return (\n
\n
\n \n \n \n setAudioStatus(messages[lang]['attend.reminder.createReminder'])}\n onMouseOut={() => setAudioStatus('')}\n >\n \n \n {!useZones &&\n \n }\n
\n
\n );\n};\n\nconst IdleComponent = ({ callMsg }) => (\n
\n
\n \n {callMsg}\n \n
\n
\n);\n\n\nconst CallControls = (props) => {\n const { lang } = useSelector((state) => ({\n lang: state.locale.lang\n }));\n\n const computeState = (props) => {\n if (props.callState === -1 && props.clientMessages.length === 1) return 'alexaReplyState';\n if (props.callState === -1 && props.clientMessages.length === 2) return 'alexaClosedState';\n return props.callState;\n };\n\n const stateComponentMapping = {\n 'alexaReplyState': AlexaStateComponent,\n 'alexaClosedState': () => , // wrap the component in a function so we can pass the lang prop\n [callStates.NOCALL]: NoCallComponent,\n [callStates.CLOSED]: () => ,\n [callStates.OPEN]: CallOpenComponent,\n [callStates.INPROGRESS]: CallInProgressComponent,\n [callStates.IDLE]: IdleComponent\n };\n\n const currentState = computeState(props);\n const ComponentToRender = stateComponentMapping[currentState];\n return ;\n}\n\nCallControls.propTypes = {\n display: PropTypes.bool.isRequired,\n canReturn: PropTypes.bool.isRequired,\n audioStatus: PropTypes.string.isRequired,\n callMsg: PropTypes.string.isRequired,\n toggleReminderNote: PropTypes.func.isRequired,\n setAudioStatus: PropTypes.func.isRequired,\n attendSip: PropTypes.func.isRequired,\n autoCall: PropTypes.func.isRequired,\n hangupSip: PropTypes.func.isRequired,\n muteAudio: PropTypes.func.isRequired,\n mutePhone: PropTypes.func.isRequired,\n openModalExtension: PropTypes.func.isRequired,\n openModalReturn: PropTypes.func.isRequired,\n equipment: PropTypes.shape({\n id: PropTypes.number,\n is_mobile: PropTypes.bool,\n }).isRequired,\n clientMessages: PropTypes.arrayOf(PropTypes.shape({\n id: PropTypes.number,\n message: PropTypes.string\n })).isRequired\n}\n\nexport default CallControls;\n","import React from 'react';\nimport PropTypes from 'prop-types';\nimport { ErrorBoundary } from 'react-error-boundary';\nimport AttendWarningMessages from '../AttendWarningMessages';\nimport ClientInfo from './ClientInfo';\nimport CallClock from './CallClock';\nimport CallControls from './CallControls';\nimport ComponentFailedErrorBoundary from '../../../../Error/ComponentFailedErrorBoundary';\n\nimport style from './attendHeader.module.scss';\nimport '../../../../../css/detailPage.scss';\n\nconst AttendHeader = (props) => {\n return (\n
\n \n \n {props.isAttendOperator &&\n props.setAudioStatus(val)}\n openModalReturn={() => props.openModalReturn(!props.showReturnCallModal)}\n openModalExtension={() => props.openModalExtension(true)}\n clientMessages={props.clientMessages}\n replyMessage={props.replyMessage}\n setReplyMessage={props.setReplyMessage}\n sendResponseToAlexa={props.sendResponseToAlexa}\n setCallState={props.setCallState}\n />\n }\n \n \n \n
\n )\n};\n\nAttendHeader.propTypes = {\n client: PropTypes.shape({\n birthdate: PropTypes.string,\n first_name: PropTypes.string,\n last_name: PropTypes.string,\n gender: PropTypes.string,\n }).isRequired,\n equipment: PropTypes.shape({\n name: PropTypes.string,\n is_mobile: PropTypes.bool,\n }).isRequired,\n callTimer: PropTypes.string.isRequired,\n duration: PropTypes.number.isRequired,\n callState: PropTypes.number.isRequired,\n display: PropTypes.bool.isRequired,\n audioStatus: PropTypes.string.isRequired,\n isAttendOperator: PropTypes.bool.isRequired,\n isAdmin: PropTypes.bool.isRequired,\n lang: PropTypes.string.isRequired,\n callMsg: PropTypes.string.isRequired,\n attendSip: PropTypes.func.isRequired,\n autoCall: PropTypes.func.isRequired,\n hangupSip: PropTypes.func.isRequired,\n muteAudio: PropTypes.func.isRequired,\n mutePhone: PropTypes.func.isRequired,\n setAudioStatus: PropTypes.func.isRequired,\n toggleReminderNote: PropTypes.func.isRequired,\n changeAttendant: PropTypes.func.isRequired,\n setCallState: PropTypes.func.isRequired,\n};\n\nexport default AttendHeader;\n","import React from 'react';\nimport PropTypes from 'prop-types';\nimport { FormattedMessage } from 'react-intl';\nimport style from './attendCallType.module.scss';\n\nconst AttendContacts = ({ contacts, contactId, setContacted, setPerson }) => (\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 {contacts.filter(contact => !contact.is_deleted).map(contact => (\n
\n {/*\n */}\n
\n\n
\n \n \n \n
\n {contact.first_name} {contact.last_name}\n
\n
\n\n
\n \n \n \n
\n

{contact.relationship}

\n
\n
\n\n {/* */}\n
\n \n \n \n
\n

{contact.has_keys\n ? \n : \n }

\n
\n
\n\n
\n \n \n \n
\n

{contact.phones\n ? `${contact.phones.find(phone => phone.phone_type === 'Primary').country_code \n ? contact.phones.find(phone => phone.phone_type === 'Primary').country_code : \"+55\"} ${contact.phones.find(phone => phone.phone_type === 'Primary').phone}`\n : '-'\n }

\n
\n
\n\n\n
\n \n \n \n
\n

{contact.phones && contact.phones.filter(phone => phone.phone_type !== 'Primary').length >= 1\n ? `${contact.phones.filter(phone => phone.phone_type !== 'Primary')[0].country_code\n ? contact.phones.filter(phone => phone.phone_type !== 'Primary')[0].country_code : \"+55\"} ${contact.phones.filter(phone => phone.phone_type !== 'Primary')[0].phone}`\n : '-'\n }

\n
\n
\n\n
\n \n \n \n
\n

\n {\n const cont = {\n type: 'contact',\n cont: contact,\n checked: ev.target.checked,\n };\n setPerson(cont);\n if (ev.target.checked && !document.querySelector(`input#contacted${contact.id}`).checked) {\n document.querySelector(`input#contacted${contact.id}`).checked = true;\n setContacted(cont);\n }\n }}\n />\n

\n
\n
\n\n
\n \n \n \n
\n

\n {\n const cont = {\n type: 'contact',\n cont: contact,\n checked: ev.target.checked,\n };\n setContacted(cont);\n }}\n />\n

\n
\n
\n {/*
\n \n
\n \n
*/}\n {/*
*/}\n
\n {/* */}\n
))}\n
\n
);\n\nAttendContacts.propTypes = {\n contacts: PropTypes.arrayOf(\n PropTypes.shape({\n id: PropTypes.number,\n first_name: PropTypes.string,\n last_name: PropTypes.string,\n has_keys: PropTypes.bool,\n priority: PropTypes.number,\n client: PropTypes.number,\n is_active: PropTypes.bool,\n phones: PropTypes.arrayOf(\n PropTypes.shape({\n id: PropTypes.number,\n phone_type: PropTypes.string,\n phone: PropTypes.string,\n contact: PropTypes.number,\n }),\n ),\n }),\n ).isRequired,\n attendantId: PropTypes.number.isRequired,\n contactId: PropTypes.number.isRequired,\n setContacted: PropTypes.func.isRequired,\n setPerson: PropTypes.func.isRequired,\n};\n\nexport default AttendContacts;\n","import React from 'react';\nimport PropTypes from 'prop-types';\nimport { FormattedMessage } from 'react-intl';\n\nconst AttendAttendants = ({\n attendants,\n attendantId,\n setContacted,\n setPerson,\n }) => (\n
\n
\n
\n
\n

\n
\n
\n

\n
\n
\n

\n
\n
\n

\n
\n
\n
\n {attendants.filter(attendant => attendant.is_active).map(attendant => (\n
\n
\n
\n \n \n \n
\n {attendant.first_name} {attendant.last_name}\n
\n
\n
\n \n \n \n
\n

{!attendant.user_info.mobile ? '-' : attendant.user_info.mobile}

\n
\n
\n
\n \n \n \n
\n

\n {\n const att = {\n type: 'attendant',\n att: attendant,\n checked: ev.target.checked,\n };\n setPerson(att);\n if (ev.target.checked && !document.querySelector(`input#attendant${attendant.id}`).checked) {\n document.querySelector(`input#attendant${attendant.id}`).checked = true;\n setContacted(att);\n }\n }}\n />\n

\n
\n
\n\n
\n \n \n
\n

\n {\n const att = {\n type: 'attendant',\n att: attendant,\n checked: ev.target.checked,\n };\n setContacted(att);\n }}\n />\n

\n
\n
\n
\n
\n ))}\n
\n
\n);\n\nAttendAttendants.propTypes = {\n attendants: PropTypes.arrayOf(\n PropTypes.shape({\n data: PropTypes.arrayOf(\n PropTypes.shape({\n id: PropTypes.number,\n first_name: PropTypes.string,\n last_name: PropTypes.string,\n is_active: PropTypes.bool,\n }),\n ),\n }),\n ).isRequired,\n attendantId: PropTypes.number.isRequired,\n contactId: PropTypes.number.isRequired,\n setContacted: PropTypes.func.isRequired,\n setPerson: PropTypes.func.isRequired,\n};\n\nexport default AttendAttendants;\n","import React from 'react';\nimport PropTypes from 'prop-types';\nimport style from './attendCallType.module.scss';\nimport messageTags from '../../../../BLL/locale/messagesTags';\nimport { useSelector } from 'react-redux';\n\nconst AttendCallType = ({ setAttendTag}) => {\n const { attendTags, lang } = useSelector(state => ({\n attendTags: state.attendTags,\n lang: state.locale.lang\n }));\n\n return (\n
\n {attendTags.map((tag) => (\n
\n setAttendTag(ev.target.value)} name=\"attType\" /> {messageTags[lang][tag.id]}\n
\n ))}\n
\n );\n};\n\nAttendCallType.propTypes = {\n setAttendTag: PropTypes.func.isRequired,\n};\n\nexport default AttendCallType;\n","import React from 'react';\nimport PropTypes from 'prop-types';\nimport style from './attendComment.module.scss';\n\nconst AttendComment = ({ attend, setAttendState, loggedAttendantId }) => (\n
\n {\n const TABKEY = 9;\n if (e.keyCode === TABKEY) {\n e.preventDefault();\n }\n }}\n onChange={setAttendState}\n rows=\"10\"\n cols=\"50\"\n disabled={\n !(\n attend.attendant === loggedAttendantId &&\n !attend.close_ts\n )\n }\n />\n
\n);\n\nAttendComment.propTypes = {\n loggedAttendantId: PropTypes.number.isRequired,\n setAttendState: PropTypes.func.isRequired,\n attend: PropTypes.shape({\n attendant: PropTypes.number,\n report: PropTypes.string,\n close_ts: PropTypes.string,\n }).isRequired,\n};\n\nexport default AttendComment;\n","import React, { useState, useEffect, useRef } from 'react';\nimport PropTypes from 'prop-types';\nimport { FormattedMessage } from 'react-intl';\nimport ModalConfirm from './ModalConfirm';\nimport ToggleButton from '../Common/ToggleButton';\nimport style from './modalReminderNote.module.scss';\n\nconst ModalReminderNote = (props) => {\n const wrapperRef = useRef(null);\n const [title, setTitle] = useState('');\n const [hours, setHours] = useState(0);\n const [minutes, setMinutes] = useState(0);\n const [limit, setLimit] = useState(280);\n const [showConfirmModal, setShowConfirmModal] = useState(false);\n const [isIndividual, setIsIndividual] = useState(true);\n \n\n useEffect(() => {\n document.addEventListener('mousedown', clickedOutside);\n\n return () => {\n document.removeEventListener('mousedown', clickedOutside);\n }\n }, []);\n\n const clickedOutside = (ev) => {\n if (wrapperRef.current && !wrapperRef.current.contains(ev.target)) {\n // props.closeModal();\n setShowConfirmModal(true);\n }\n };\n\n const handleTitle = (event) => {\n const textareaLen = parseInt(document.querySelector('textarea#notetext').getAttribute('maxlength'), 10);\n setTitle(event.target.value);\n setLimit(textareaLen - event.target.value.length);\n }\n\n const generateAndSendReminder = () => {\n const reminder = {\n requested_time: (parseInt(hours, 10) * 60) + parseInt(minutes, 10),\n is_individual: isIndividual,\n title,\n }\n props.createReminder(reminder);\n };\n\n const disabled = !(title && (hours > 0 || minutes > 0));\n return (\n
\n {showConfirmModal &&\n setShowConfirmModal(!showConfirmModal)}\n action={() => props.closeModal()}\n message={}\n />\n }\n
\n \n {props.attendId}\n
\n
\n \n
\n \n
\n \n
\n
\n \n
\n
\n H:\n setHours(e.target.value)}\n >\n {[...Array(24).keys()].map(hour => (\n \n ))}\n \n
\n
\n \n setMinutes(e.target.value)}\n >\n {[...Array(60).keys()].map(min => (\n \n ))}\n \n
\n
\n
\n
\n \n \n \n
\n setIsIndividual(!isIndividual)}\n hasPagination={false}\n />\n
\n
\n {props.reminderError &&\n
\n {props.reminderError} \n
\n }\n
\n {disabled && \n \n }\n \n \n \n \n \n
\n
\n );\n};\n\nModalReminderNote.propTypes = {\n reminderError: PropTypes.string.isRequired,\n createReminder: PropTypes.func.isRequired,\n closeModal: PropTypes.func.isRequired,\n attendId: PropTypes.number.isRequired,\n};\n\nexport default ModalReminderNote;\n","import moment from 'moment';\n\n// export default class CallTimer {\n// constructor(current, alarm, limit) {\n// this.alarm = new Date(alarm);\n// this.limit = new Date(limit);\n// this.duration = this.limit - this.alarm;\n// this.current = new Date(current);\n// this.extraTime = 0;\n// }\n\n// timer(counter) {\n// const time = ((this.limit - this.current) - (counter * 1000)) + this.extraTime;\n// if (this.current < this.limit && time < this.duration && time >= 1000) {\n// return moment(time).format('mm:ss');\n// }\n// return -1;\n// }\n\n// extendLimit(duration) {\n// this.extraTime += (duration * 1000);\n// }\n\n// }\n\nexport default class CallTimer {\n constructor(current, alarm, limit) {\n this.setInitialTimes(current, alarm, limit);\n this.duration = this.limit - this.alarm;\n this.extraTime = 0;\n }\n\n setInitialTimes(current, alarm, limit) {\n this.alarm = new Date(alarm);\n this.limit = new Date(limit);\n this.current = new Date(current);\n\n // Adjust the current time if it is before the alarm time (discrepancy in the equipment)\n if (this.current < this.alarm) {\n this.current = new Date(this.alarm);\n }\n }\n\n timer(counter) {\n const time = ((this.limit - this.current) - (counter * 1000)) + this.extraTime;\n if (this.current < this.limit && time <= this.duration && time >= 1000) {\n return moment(time).format('mm:ss');\n }\n return -1;\n }\n\n extendLimit(duration) {\n this.extraTime += (duration * 1000);\n }\n}","import moment from 'moment';\n\nexport default class CallStopwatch {\n constructor(start) {\n this.start = start;\n }\n\n count() {\n const now = Date.now();\n const counter = now - this.start > 0 ? now - this.start : 0;\n return moment(counter).format('mm:ss');\n }\n\n}\n","import * as types from './actionTypes';\nimport * as errorsActions from './errorsActions';\nimport { host, getDomain, getToken } from '../BLL/environment';\n\nexport function loadRemindersSuccess(reminders, serverTime) {\n return { type: types.LOAD_REMINDERS_SUCCESS, reminders, serverTime };\n}\n\nexport function reloadRemindersSuccess(reminders, serverTime) {\n return { type: types.RELOAD_REMINDERS_SUCCESS, reminders, serverTime };\n}\n\nexport function loadReminders(reload = false) {\n const domain = getDomain();\n const token = getToken();\n\n return (dispatch, getState, { axios }) => Promise.resolve(\n axios.get(`https://${domain}${host()}/api/reminders/?status=OPEN`, {\n headers: { Authorization: `Token ${token}` },\n }).then((reminders) => {\n if (reload) {\n dispatch(loadRemindersSuccess(reminders.data.data, reminders.data.server_time));\n } else {\n dispatch(reloadRemindersSuccess(reminders.data.data, reminders.data.server_time));\n }\n }).catch((error) => {\n if (error.response) {\n if (error.response.status === 401) {\n dispatch(errorsActions.logout());\n }\n }\n }),\n );\n}\n\nexport function createReminder(reminder) {\n const domain = getDomain();\n const token = getToken();\n\n return (dispatch, getState, { axios }) => new Promise((resolve, reject) =>\n axios({\n method: 'post',\n responseType: 'json',\n url: `https://${domain}${host()}/api/reminders/`,\n data: reminder,\n headers: { Authorization: `Token ${token}` },\n })\n .then(() => resolve(dispatch(loadReminders())))\n .catch((error) => {\n if (error.response) {\n if (error.response.status === 401) {\n return reject(dispatch(errorsActions.logout()));\n }\n return reject(error.response);\n }\n return reject({});\n }),\n );\n}\n\nexport function updateReminder(reminder) {\n const domain = getDomain();\n const token = getToken();\n\n return (dispatch, getState, { axios }) => new Promise((resolve, reject) =>\n axios({\n method: 'put',\n responseType: 'json',\n url: `https://${domain}${host()}/api/reminders/${reminder.id}/`,\n data: reminder,\n headers: { Authorization: `Token ${token}` },\n })\n .then(() => resolve(dispatch(loadReminders())))\n .catch((error) => {\n if (error.response) {\n if (error.response.status === 401) {\n return reject(dispatch(errorsActions.logout()));\n }\n return reject(error.response);\n }\n return reject({});\n }),\n );\n}\n\n","import React, { useState, useEffect, useRef } from \"react\";\nimport PropTypes from \"prop-types\";\nimport moment from \"moment\";\nimport { useDispatch, useSelector } from \"react-redux\";\nimport { ErrorBoundary } from \"react-error-boundary\";\nimport axios from \"axios\";\nimport { FormattedMessage } from \"react-intl\";\nimport { broadcast } from \"../../../BLL/general\";\nimport { callStates } from \"../../../BLL/globals\";\nimport { getDomain, host, getToken } from \"../../../BLL/environment\";\nimport AttendHeader from \"./OpenComponents/Header/AttendHeader\";\nimport AttendDetail from \"./OpenComponents/AttendDetail\";\nimport AttendContacts from \"./OpenComponents/AttendContacts\";\nimport AttendAttendants from \"./OpenComponents/AttendAttendants\";\nimport AttendCallType from \"./OpenComponents/AttendCallType\";\nimport AttendComment from \"./OpenComponents/AttendComment\";\nimport AttendMap from \"./OpenComponents/AttendMap\";\nimport AttendExtensionCall from \"./OpenComponents/AttendExtensionCall\";\nimport ModalReminderNote from \"../../Modal/ModalReminderNote\";\nimport ModalReturnCall from \"../../Modal/ModalReturnCall\";\nimport ModalDraggable from \"../../Modal/ModalDraggable\";\nimport CallTimer from \"../../../BLL/callTimer\";\nimport CallStopwatch from \"../../../BLL/callStopwatch\";\nimport CustomModal from \"../../Modal/CustomModal\";\nimport messages from \"../../../BLL/locale/messages\";\nimport ComponentFailed from \"../../Error/ComponentFailedErrorBoundary\";\nimport messagesBroadcast from \"../../../BLL/locale/messagesBroadcast\";\nimport * as contactsActions from \"../../../actions/contactsActions\";\nimport * as attendsActions from \"../../../actions/attendsActions\";\nimport * as reminderActions from \"../../../actions/reminderActions\";\nimport * as statusActions from \"../../../actions/userStatusActions\";\n\nimport \"../../../css/contactto.scss\";\nimport \"../../../css/middle.scss\";\nimport \"../../../css/attends.scss\";\nimport \"../../../css/callTimer.scss\";\nimport \"../../../css/listPage.scss\";\nimport \"../../../css/detailPage.scss\";\nimport \"../../../css/mixins/_default_buttons.scss\";\n\nimport style from \"./attendOpen.module.scss\";\nimport AccordionSection from \"./Accordion\";\n\nconst AttendOpen = (props) => {\n const {\n contactList,\n attendants,\n loggedAttendantId,\n isAdmin,\n configurationGlobal,\n equipmentList,\n climaxId,\n lang,\n } = useSelector((state) => ({\n contactList: state.contacts,\n attendants:\n state.attendants.length > 0 ? [...state.attendants[0].data] : [],\n loggedAttendantId: state.loggedAttendant ? state.loggedAttendant.id : 0,\n isAdmin: state.loggedAttendant?.groups\n ? state.loggedAttendant.groups[0] === 1 ||\n state.loggedAttendant.groups[0] === 4\n : false,\n configurationGlobal: state.globalConfiguration.global,\n equipmentList: state.equipment[0] && state.equipment[0].data,\n climaxId:\n state.equipment[0]?.data.length > 0 &&\n state.equipment[0].data.find(\n (equip) => equip.name.toLowerCase() === \"climax - mobile\"\n ).id,\n lang: state.locale.lang,\n }));\n\n const dispatch = useDispatch();\n\n const editAttend = (attend) => dispatch(attendsActions.editAttend(attend));\n const patchAttend = (attendId, data) =>\n dispatch(attendsActions.patchAttend(attendId, data));\n const createReminderAction = (reminder) =>\n dispatch(reminderActions.createReminder(reminder));\n const removeUserFromBusy = (userId) =>\n dispatch(statusActions.removeUserFromBusy(userId));\n\n const refAttend = useRef();\n const refInterval = useRef();\n\n const [client, setClient] = useState(undefined);\n const [secondary, setSecondary] = useState(undefined);\n const [attend, setAttend] = useState(undefined);\n const [equipment, setEquipment] = useState(undefined);\n const [transmitterList, setTransmitterList] = useState([]);\n const [contactId, setContactId] = useState(0);\n const [attendantId, setAttendantId] = useState(0);\n const [replyMessage, setReplyMessage] = useState(\"\");\n const [callState, setCallState] = useState(callStates.IDLE);\n const [callLimit, setCallLimit] = useState(90);\n const [isCallOpened, setIsCallOpened] = useState(false);\n const [isCallClosed, setIsCallClosed] = useState(false);\n const [permissionToSave, setPermissionToSave] = useState(true);\n const [interval, setAnInterval] = useState(undefined);\n const [callStateTimeout, setCallStateTimeout] = useState(undefined);\n const [stopwatch, setStopwatch] = useState(undefined);\n const [callStart, setCallStart] = useState(undefined);\n const [duration, setDuration] = useState(undefined);\n const [contacts, setContacts] = useState([]);\n const [contacttoTimer, setContacttoTimer] = useState(\"--:--\");\n const [clock, setClock] = useState(undefined);\n const [pointList, setPointList] = useState([]);\n const [contactedCont, setContactedCont] = useState([]);\n const [contactedAtt, setContactedAtt] = useState([]);\n const [reminderError, setReminderError] = useState(\"\");\n const [showReminderNote, setShowReminderNote] = useState(false);\n const [showReminderMessage, setShowReminderMessage] = useState(false);\n const [errorComponent, setErrorComponent] = useState(\"\");\n const [clientMessages, setClientMessages] = useState([]);\n const [attendTag, setAttendTag] = useState(0);\n const [showReturnCallModal, setShowReturnCallModal] = useState(false);\n const [showExtensionCallModal, setShowExtensionCallModal] = useState(false);\n const [errorMessage, setErrorMessage] = useState(\"\");\n const [audioStatus, setAudioStatus] = useState(\"\");\n const [callMsg, setCallMsg] = useState(\"\");\n const [warningLimit, setWarningLimit] = useState(undefined);\n const [currentServerTime, setCurrentServerTime] = useState(undefined);\n const [alarmTime, setAlarmTime] = useState(undefined);\n const [sendWarningMessages, setSendWarningMessages] = useState(undefined);\n\n useEffect(() => {\n return () => {\n const currentAttend = refAttend.current;\n const currentInterval = refInterval.current;\n if (currentAttend && currentAttend.status === \"IN_PROGRESS\") {\n const report = {\n id: currentAttend.id,\n report: currentAttend.report,\n };\n sessionStorage.setItem(\n `callReport_${currentAttend.id}`,\n JSON.stringify(report)\n );\n clearInterval(currentInterval);\n }\n };\n }, []);\n\n useEffect(() => {\n const fetchAttend = (attendId) => {\n axios\n .get(`https://${getDomain()}${host()}/api/attend/${attendId}/`, {\n headers: { Authorization: `Token ${getToken()}` },\n })\n .then((res) => {\n if (res.data.attend.close_ts) {\n props.history.push(`/app/attends/closed/${attendId}/`);\n }\n const data = res.data;\n const client = data.client;\n setClient(Object.assign({}, client));\n setAttend(Object.assign({}, data.attend));\n setEquipment(Object.assign({}, data.equipment));\n setTransmitterList(data.transmitters);\n setClientMessages(data.client_message);\n setAttendantId(data.attendant.id);\n setWarningLimit(data.delay_warning_limit);\n setCurrentServerTime(data.current_time);\n setAlarmTime(data.voice_alarm_ts);\n setSendWarningMessages(data.attend.send_warning_messages);\n\n if (client.secondary.length > 0) {\n const secondary = client.secondary[0];\n setSecondary(Object.assign({}, secondary));\n }\n\n if (data.attend.audio_call) {\n const newClock = new CallTimer(\n data.current_time,\n data.voice_alarm_ts,\n data.voice_alarm_limit\n );\n setClock(newClock);\n }\n });\n };\n\n fetchAttend(props.match.params.id);\n }, [props.match.params.id, props.history]);\n\n useEffect(() => {\n const loadContacts = (clientId, ordering) =>\n dispatch(contactsActions.loadContacts(clientId, ordering));\n\n if (client) {\n loadContacts(client.id, \"priority\");\n }\n }, [client, dispatch]);\n\n useEffect(() => {\n if (client && contactList.length > 0) {\n const haveContactList = contactList.some((c) => c.clientId === client.id);\n if (haveContactList) {\n const filteredContacts = contactList.filter(\n (c) =>\n parseInt(c.clientId, 10) === client.id && c.ordering === \"priority\"\n )[0];\n setContacts([...filteredContacts.data]);\n }\n }\n }, [contactList, client]);\n\n useEffect(() => {\n const acceptedCall = () => {\n if (!isCallClosed) {\n clearTimeout(callStateTimeout);\n setCallState(callStates.INPROGRESS);\n if (equipment?.id === climaxId) {\n setCallMsg(messages[lang][\"attend.open.calling\"]);\n } else {\n setCallMsg(messages[lang][\"attend.open.callConnected\"]);\n }\n }\n };\n\n const requestedCall = () => {\n if (!isCallClosed) {\n const newCallStateTimeout = setTimeout(() => {\n setCallState(callStates.INPROGRESS);\n setCallMsg(messages[lang][\"attend.open.stillConnecting\"]);\n }, 5000);\n setCallStateTimeout(newCallStateTimeout);\n }\n };\n\n const errorCall = () => {\n setCallState(callStates.CLOSED);\n setIsCallOpened(false);\n setIsCallClosed(true);\n setPermissionToSave(true);\n setCallMsg(messages[lang][\"attend.open.callNotConnected\"]);\n };\n\n const stack = props.sipStackType;\n if (stack === \"failed_to_start\" && callState === callStates.IDLE) {\n errorCall();\n }\n if (stack === \"m_permission_requested\" && !showExtensionCallModal && callState !== callStates.NOCALL) {\n requestedCall();\n } else if (stack === \"m_permission_accepted\" && !showExtensionCallModal && callState !== callStates.NOCALL) {\n acceptedCall();\n }\n\n // eslint-disable-next-line react-hooks/exhaustive-deps\n }, [props.sipStackType, showExtensionCallModal]);\n\n useEffect(() => {\n if (clock) {\n startTimer();\n }\n // eslint-disable-next-line react-hooks/exhaustive-deps\n }, [clock]);\n\n useEffect(() => {\n if (isCallOpened && clock) {\n clearInterval(interval);\n startTimer();\n }\n\n // eslint-disable-next-line react-hooks/exhaustive-deps\n }, [isCallOpened]);\n\n useEffect(() => {\n if (attend) {\n const hasAudio = attend.events\n ? attend.events.some((alarm) => alarm.event_type.code === \"606\")\n : false;\n setCallState(hasAudio ? callStates.OPEN : callStates.NOCALL);\n if (sessionStorage[`callReport_${attend.id}`] !== undefined) {\n const callReport = JSON.parse(\n sessionStorage[`callReport_${attend.id}`]\n );\n setAttend(Object.assign({}, attend, { report: callReport.report }));\n sessionStorage.removeItem(`callReport_${attend.id}`);\n }\n\n if (attend.audio_call) {\n setPermissionToSave(false);\n\n if (sessionStorage[`answeredCall_${attend.id}`] !== undefined) {\n const answeredCall = JSON.parse(\n sessionStorage[`answeredCall_${attend.id}`]\n );\n if (answeredCall.isAnswered) {\n const watch = new CallStopwatch(answeredCall.callStart);\n setStopwatch(watch);\n setCallState(callStates.INPROGRESS);\n setIsCallOpened(answeredCall.isAnswered);\n setCallLimit(answeredCall.callLimit);\n setCallStart(answeredCall.callStart);\n } else {\n setDuration(answeredCall.duration);\n setIsCallOpened(answeredCall.isAnswered);\n setIsCallClosed(true);\n setCallState(callStates.CLOSED);\n setPermissionToSave(true);\n }\n }\n }\n refAttend.current = attend;\n }\n }, [attend]);\n\n useEffect(() => {\n if (equipment) {\n const equipmentName = equipment.name.toLowerCase();\n if (\n equipmentName === \"ihelp\" ||\n equipmentName === \"igo\" ||\n equipmentName === \"climax - mobile\" ||\n equipmentName === \"ev07b\" ||\n equipmentName === \"ev07b - cb\"\n ) {\n fetchLatestPoint(client.id, attend.id);\n }\n\n if (equipmentName === \"contactto sos - app\") {\n fetchSOSAppAttendPoint(attend.id);\n }\n }\n }, [equipment, client, attend]);\n\n const fetchLatestPoint = (clientId, attendId) => {\n console.log(\"FETCHING LATEST POINT\");\n setErrorComponent(\"\");\n axios({\n url: `https://${getDomain()}${host()}/api/clients/${clientId}/tracker-iot/attend/${attendId}/`,\n method: \"GET\",\n responseType: \"json\",\n headers: {\n Authorization: `Token ${getToken()}`,\n },\n })\n .then((res) => {\n if (res.data.length > 0) {\n setPointList(res.data);\n setErrorComponent(\"\");\n }\n })\n .catch((err) => {\n if (err.response.data.error && err.response.data.error === 'No Points') {\n const errorMessage =\n \"NÃO FOI POSSÍVEL ACHAR AS COORDENADAS PARA ESTE USUÁRIO. \\n POR FAVOR, ESPERE ALGUNS SEGUNDOS E CLIQUE NO BOTÃO DE ATUALIZAR LOCALIZAÇÃO.\\n\";\n const newErrorComponent = (\n \n );\n setErrorComponent(newErrorComponent);\n }\n });\n };\n\n const fetchSOSAppAttendPoint = (attendId) => {\n axios({\n url: `https://${getDomain()}${host()}/api/attend/${attendId}/app-location/`,\n method: \"GET\",\n responseType: \"json\",\n headers: {\n Authorization: `Token ${getToken()}`,\n },\n })\n .then((res) => {\n console.log(\"AQUI Ó\", res);\n if (res.data) {\n const point = Object.fromEntries(\n Object.entries(res.data).map(([k, v]) => [k.toUpperCase(), v])\n );\n setPointList([point]);\n setErrorComponent(\"\");\n }\n })\n .catch((err) => {\n if (\n err.response.data &&\n err.response.data.error.includes(\"No coordinates\")\n ) {\n const errorMessage =\n \"COORDENADAS NÃO ENCONTRADAS PARA ESTE ATENDIMENTO.\";\n const newErrorComponent = (\n \n );\n setErrorComponent(newErrorComponent);\n }\n });\n };\n\n const startTimer = () => {\n // Only start the timer if the call is opened\n if (attend.status !== \"CLOSE\") {\n let counter = 0;\n const interval = setInterval(() => {\n const newTimer = clock.timer(counter);\n // setTimer(newTimer)\n if (isCallOpened) {\n if (newTimer === \"00:02\") {\n extendCall();\n } else {\n const newDuration = stopwatch.count();\n setDuration(newDuration);\n }\n } else if (newTimer === -1) {\n clearInterval(interval);\n setCallState(callStates.CLOSED);\n setIsCallOpened(false);\n setIsCallClosed(true);\n setPermissionToSave(true);\n setContacttoTimer(\"00:00\");\n } else {\n setContacttoTimer(newTimer);\n }\n counter += 1;\n }, 1000);\n setAnInterval(interval);\n refInterval.current = interval;\n }\n };\n\n const changeAttendant = () => {\n const newAttend = Object.assign({}, attend, {\n attendant: loggedAttendantId,\n });\n broadcast(axios, props.channelId, {\n type: \"admCall\",\n update: \"Admin take up call\",\n oldUser: attend.attendant,\n text: messagesBroadcast[lang][\"broadcast.attendChanged\"],\n });\n\n setAttend(newAttend);\n // setActiveCall(true);\n\n editAttend(newAttend).catch((err) => {\n if (err.response.data && err.response.data.alreadyClosed) {\n setErrorMessage(\n \"Este atendimento já está fechado, estamos voltando você para a tela inicial.\"\n );\n setTimeout(() => {\n props.history.push(\"/app\");\n }, 5000);\n }\n });\n };\n\n const setAttendState = (ev) => {\n const field = ev.target.name;\n const value = ev.target.value;\n setAttend(Object.assign({}, attend, { [field]: value }));\n };\n\n const setPerson = (obj) => {\n if (obj.type === \"contact\") {\n setContactId(obj.checked ? obj.cont.id : 0);\n setAttendantId(0);\n } else if (obj.type === \"attendant\") {\n setContactId(0);\n setAttendantId(obj.checked ? obj.att.id : 0);\n }\n };\n\n const setContacted = (obj) => {\n if (obj.type === \"contact\") {\n if (obj.checked) {\n setContactedCont([obj.cont, ...contactedCont]);\n } else {\n setContactedCont(\n contactedCont.filter((cont) => cont.id !== obj.cont.id)\n );\n }\n } else if (obj.type === \"attendant\") {\n if (obj.checked) {\n setContactedAtt([obj.att, ...contactedAtt]);\n } else {\n setContactedAtt(contactedAtt.filter((att) => att.id !== obj.att.id));\n }\n }\n };\n\n const attendSip = () => {\n const sosAppId =\n equipmentList.length > 0\n ? equipmentList.find(\n (equipment) =>\n equipment.name.toLowerCase() === \"contactto sos - app\"\n ).id\n : 0;\n const climaxId =\n equipmentList.length > 0\n ? equipmentList.find(\n (equipment) => equipment.name.toLowerCase() === \"climax - mobile\"\n ).id\n : 0;\n const ev07bId =\n equipmentList.length > 0\n ? equipmentList.find(\n (equipment) => equipment.name.toLowerCase() === \"ev07b - cb\"\n ).id\n : 0;\n const ihelpId =\n equipmentList.length > 0\n ? equipmentList.find(\n (equipment) => equipment.name.toLowerCase() === \"ihelp\"\n ).id\n : 0;\n const date = new Date();\n let confNumber = \"\";\n if (client.use_voip && client.equipment_id === ihelpId) {\n confNumber = `${client.account}${client.imei}`;\n } else if (\n client.equipment_id === climaxId ||\n client.equipment_id === ev07bId ||\n client.equipment_id === sosAppId\n ) {\n confNumber = `005491${client.account}${client.account_phone}`;\n } else {\n confNumber = `${client.account}${client.account_phone}`;\n }\n const newCallStart = date.getTime();\n\n if (props.attendSip) {\n const newStopwatch = new CallStopwatch(newCallStart);\n setCallState(callStates.IDLE);\n setIsCallClosed(false);\n setPermissionToSave(false);\n setCallStart(newCallStart);\n setStopwatch(newStopwatch);\n setCallMsg(messages[lang][\"attend.open.connecting\"]);\n setIsCallOpened(true);\n const answeredCall = {\n id: attend.id,\n callLimit: callLimit,\n callStart: newCallStart,\n isAnswered: true,\n duration,\n };\n sessionStorage.setItem(\n `answeredCall_${attend.id}`,\n JSON.stringify(answeredCall)\n );\n\n props.attendSip(confNumber);\n }\n };\n\n const hangupSip = () => {\n if (props.hangupSip) {\n clearInterval(interval);\n props.hangupSip();\n setCallState(callStates.CLOSED);\n setIsCallOpened(false);\n setIsCallClosed(true);\n setPermissionToSave(true);\n\n const answeredCall = {\n id: attend.id,\n callLimit: callLimit,\n callStart: callStart,\n duration: duration,\n isAnswered: false,\n };\n\n sessionStorage.setItem(\n `answeredCall_${attend.id}`,\n JSON.stringify(answeredCall)\n );\n }\n };\n\n const extendCall = () => {\n if (props.extendCall) {\n const newLimit = callLimit + 75;\n setCallLimit(newLimit);\n clock.extendLimit(75);\n const answeredCall = {\n id: attend.id,\n callLimit: callLimit,\n callStart: callStart,\n duration: duration,\n isAnswered: true,\n };\n sessionStorage.setItem(\n `answeredCall_${attend.id}`,\n JSON.stringify(answeredCall)\n );\n props.extendCall();\n }\n };\n\n const closeEmergency = () => {\n const closedAttend = {\n id: attend.id,\n close_ts: moment().format(\"YYYY-MM-DDTHH:mm:ss.SSS\"),\n status: \"CLOSE\",\n success_contact: contactId ? contactId : null,\n success_attendant: attendantId ? attendantId : null,\n audio_call: attend.audio_call,\n call_duration: duration,\n report: attend.report,\n contactedCont: contactedCont,\n contactedAtt: contactedAtt,\n attendTag: attendTag,\n };\n axios({\n method: \"put\",\n responseType: \"json\",\n url: `https://${getDomain()}${host()}/api/attend/${closedAttend.id}/`,\n data: closedAttend,\n headers: { Authorization: `Token ${getToken()}` },\n }).then(() => {\n setAttend(closedAttend);\n closeEmergencyCallback();\n });\n };\n\n const closeEmergencyCallback = () => {\n removeUserFromBusy(loggedAttendantId);\n props.setUserBusy(false);\n if (sessionStorage[`answeredCall_${attend.id}`] !== undefined) {\n sessionStorage.removeItem(`answeredCall_${attend.id}`);\n }\n if (sessionStorage[`callReport_${attend.id}`] !== undefined) {\n sessionStorage.removeItem(`callReport_${attend.id}`);\n }\n props.history.push(\"/app\");\n };\n\n const createReminder = (reminder) => {\n const data = reminder;\n data.status = \"OPEN\";\n data.attend = attend.id;\n data.open_attendant = loggedAttendantId;\n createReminderAction(data)\n .then(() => {\n if (!data.is_individual) {\n broadcast(axios, props.channelId, {\n type: \"reminders\",\n update: \"reminders\",\n loggedAttendantId: loggedAttendantId,\n userId: loggedAttendantId,\n });\n }\n setShowReminderNote(false);\n setShowReminderMessage(true);\n })\n .catch((error) => {\n if (error.status === 400 && error.data) {\n if (error.data.open_attendant) {\n setReminderError(\n `Erro atendente não encontrado. Mensagem: ${error.data.open_attendant[0]}`\n );\n } else {\n setReminderError(`Erro. Mensagem: ${error.statusText}`);\n }\n }\n });\n };\n\n const sendResponseToAlexa = () => {\n const clientMessage = {\n attend: attend.id,\n user: attend.attendant,\n message: replyMessage,\n };\n\n axios({\n method: \"post\",\n responseType: \"json\",\n url: `https://${getDomain()}${host()}/api/attend/client-chat/`,\n data: clientMessage,\n headers: { Authorization: `Token ${getToken()}` },\n })\n .then(() => {\n setClientMessages([...clientMessages, clientMessage]);\n })\n .catch((err) => {\n console.log(err);\n console.log(err.response);\n });\n };\n\n const stopWarningMessages = () => {\n const data = {\n send_warning_messages: false,\n };\n patchAttend(attend.id, data)\n .then((resp) => {\n console.log(resp);\n })\n .catch((err) => {\n console.log(err);\n });\n };\n\n if (!attend || !client || !equipment) {\n return (\n
\n Carregando atendimento\n
\n );\n }\n\n const reminderMessage = messages[lang][\"attend.reminder.message\"];\n const isAttendOperator = attend && attend.attendant === loggedAttendantId;\n\n console.log(!permissionToSave || attendTag === 0);\n\n let attendantsList = [];\n if (client) {\n attendantsList =\n client.group_id !== 0\n ? attendants.filter(\n (attendant) =>\n attendant.groups.some((grp) => grp === client.group_id) ||\n attendant.groups.length === 1\n )\n : attendants.filter((attendant) => attendant.groups.length === 1);\n }\n\n return (\n
\n {showExtensionCallModal &&\n setShowExtensionCallModal(false)} headerTitle={messages[lang]['extension.headerTitle']}>\n \n \n }\n {showReturnCallModal && (\n \n props.sendDTMF(\n equipment?.name.toLowerCase().includes(\"climax\") ? 2 : 8\n )\n }\n sipStackType={props.sipStackType}\n closeModal={() => setShowReturnCallModal(!showReturnCallModal)}\n equipment={equipment}\n />\n )}\n {showReminderNote && (\n setShowReminderNote(!showReminderNote)}\n reminderError={reminderError}\n />\n )}\n {showReminderMessage && (\n setShowReminderMessage(false)}\n height=\"225px\"\n />\n )}\n \n
\n {\" \"}\n {attend.id}\n
\n {errorMessage}\n
\n props.sendDTMF(equipment.id === climaxId ? 2 : 8)}\n clientMessages={clientMessages}\n replyMessage={replyMessage}\n setReplyMessage={setReplyMessage}\n sendResponseToAlexa={sendResponseToAlexa}\n attendSip={attendSip}\n hangupSip={hangupSip}\n toggleReminderNote={() => setShowReminderNote(!showReminderNote)}\n setAudioStatus={(val) => setAudioStatus(val)}\n isAdmin={isAdmin}\n isAttendOperator={isAttendOperator}\n changeAttendant={changeAttendant}\n lang={lang}\n openModalReturn={() => setShowReturnCallModal(!showReturnCallModal)}\n openModalExtension={() => setShowExtensionCallModal(true)}\n warningLimit={warningLimit}\n currentServerTime={currentServerTime}\n alarmTime={alarmTime}\n stopWarningMessages={stopWarningMessages}\n sendWarningMessages={sendWarningMessages}\n alarms={attend.events}\n setCallState={setCallState}\n />\n }\n isOpened\n >\n \n \n {equipment.is_mobile && (\n }\n >\n \n \n \n \n )}\n {configurationGlobal &&\n configurationGlobal.contacts_list &&\n isAttendOperator && (\n }\n >\n \n \n \n \n )}\n {configurationGlobal &&\n configurationGlobal.attendant_list &&\n isAttendOperator && (\n }\n >\n \n \n )}\n {isAttendOperator && (\n
\n }\n >\n \n \n }\n >\n \n \n
\n \n \n \n \n {attendTag === 0 &&\n \n
\n \n
\n }\n
\n \n
\n
\n )}\n
\n
\n );\n};\n\nAttendOpen.propTypes = {\n params: PropTypes.shape({\n id: PropTypes.string.isRequired,\n }).isRequired,\n sipEventType: PropTypes.string.isRequired,\n channelId: PropTypes.string.isRequired,\n attendSip: PropTypes.func.isRequired,\n hangupSip: PropTypes.func.isRequired,\n extendCall: PropTypes.func.isRequired,\n muteAudio: PropTypes.func.isRequired,\n mutePhone: PropTypes.func.isRequired,\n};\n\nexport default AttendOpen;\n","import React from 'react';\nimport PropTypes from 'prop-types';\n\nconst Restore = ({ height, className, width }) => (\n \n \n \n);\n\nRestore.defaultProps = {\n height: '24',\n className: '',\n width: '24',\n};\n\nRestore.propTypes = {\n height: PropTypes.string,\n className: PropTypes.string,\n width: PropTypes.string,\n};\n\nexport default Restore;\n","import React from 'react';\nimport PropTypes from 'prop-types';\nimport { connect } from 'react-redux';\nimport { Link } from 'react-router-dom';\nimport { FormattedMessage } from 'react-intl';\nimport { userGroup } from '../../../../BLL/dictionary';\nimport Delete from '../../../../icons/Delete';\nimport Edit from '../../../../icons/Edit';\nimport Restore from '../../../../icons/Restore';\n\nimport style from '../management.module.scss';\n\nconst AttendantRow = ({\n isAdmin,\n isOwner,\n attendant,\n showModal,\n setTextIconDetail,\n setModalInfo,\n loggedAttendant,\n companies,\n}) => {\n const setEmptyText = () => {\n setTextIconDetail('');\n };\n\n const btnStyle = { border: 0, backgroundColor: 'transparent', padding: 0, paddingTop: '3.5px', marginLeft: '10px' };\n const ownerOrAdm = isOwner || isAdmin;\n const managerOption = (attendant.groups[0] === 3\n && loggedAttendant.groups[0] === 2) || attendant.groups[0] === loggedAttendant.groups[0];\n\n return (\n
\n
{attendant.username}
\n
{attendant.first_name} {attendant.last_name}
\n
{attendant.email}
\n
\n {\n attendant.groups.length <= 1\n ? userGroup(attendant.groups[0], 'fromServer')\n : companies.find(company => company.id === attendant.groups[1]).name\n }\n
\n
\n {(ownerOrAdm || managerOption) &&\n
\n setTextIconDetail()}\n onMouseOut={setEmptyText}\n to={`/app/user/form/edit/${attendant.id}`}\n >\n \n \n {(attendant.groups[0] !== 4 && attendant.id !== loggedAttendant.id) &&\n setTextIconDetail(attendant.is_active ? : )}\n onMouseOut={setEmptyText}\n onClick={() => { if (!showModal) { setModalInfo(true, attendant); } }}\n style={btnStyle}\n >\n {attendant.is_active === true ?\n
\n \n
\n :\n
\n \n
\n }\n \n }\n\n
\n }\n
\n
\n );\n};\n\nAttendantRow.defaultProps = {\n isAdmin: false,\n isOwner: false,\n};\n\nAttendantRow.propTypes = {\n attendant: PropTypes.shape({\n id: PropTypes.number,\n username: PropTypes.string,\n first_name: PropTypes.string,\n last_name: PropTypes.string,\n email: PropTypes.string,\n password: PropTypes.string,\n groups: PropTypes.arrayOf(\n PropTypes.number,\n ),\n is_active: PropTypes.bool,\n is_staff: PropTypes.bool,\n is_superuser: PropTypes.bool,\n user_info: PropTypes.shape({\n id: PropTypes.number,\n user: PropTypes.number,\n phone: PropTypes.string,\n mobile: PropTypes.string,\n email: PropTypes.string,\n extension_id: PropTypes.number,\n }),\n actions: PropTypes.arrayOf(\n PropTypes.shape({\n id: PropTypes.number,\n priority: PropTypes.number,\n user: PropTypes.number,\n receive_sms: PropTypes.bool,\n receive_email: PropTypes.bool,\n }),\n ),\n }).isRequired,\n isAdmin: PropTypes.bool,\n isOwner: PropTypes.bool,\n showModal: PropTypes.bool.isRequired,\n setTextIconDetail: PropTypes.func.isRequired,\n setModalInfo: PropTypes.func.isRequired,\n loggedAttendant: PropTypes.shape({\n id: PropTypes.number,\n username: PropTypes.string,\n first_name: PropTypes.string,\n last_name: PropTypes.string,\n email: PropTypes.string,\n password: PropTypes.string,\n groups: PropTypes.arrayOf(\n PropTypes.number,\n ),\n is_active: PropTypes.bool,\n is_staff: PropTypes.bool,\n is_superuser: PropTypes.bool,\n user_info: PropTypes.shape({\n id: PropTypes.number,\n user: PropTypes.number,\n phone: PropTypes.string,\n mobile: PropTypes.string,\n email: PropTypes.string,\n extension_id: PropTypes.number,\n }),\n actions: PropTypes.arrayOf(\n PropTypes.shape({\n id: PropTypes.number,\n priority: PropTypes.number,\n user: PropTypes.number,\n receive_sms: PropTypes.bool,\n receive_email: PropTypes.bool,\n }),\n ),\n }).isRequired,\n companies: PropTypes.arrayOf(\n PropTypes.shape({\n id: PropTypes.number,\n name: PropTypes.string,\n user_set: PropTypes.arrayOf(\n PropTypes.shape({\n id: PropTypes.number,\n is_active: PropTypes.bool,\n first_name: PropTypes.string,\n last_name: PropTypes.string,\n email: PropTypes.string,\n groups: PropTypes.arrayOf(\n PropTypes.number,\n ),\n }),\n ),\n }),\n ).isRequired,\n};\n\nfunction mapStateToProps(state, ownProps) {\n return {\n loggedAttendant: state.loggedAttendant,\n companies: state.groups.filter(grp => ![1, 2, 3, 4].includes(grp.id)),\n };\n}\n\nexport default connect(mapStateToProps)(AttendantRow);\n","import React from 'react';\nimport PropTypes from 'prop-types';\nimport { connect } from 'react-redux';\nimport { Link } from 'react-router-dom';\nimport { userGroup } from '../../../../BLL/dictionary';\nimport Edit from '../../../../icons/Edit';\nimport style from '../management.module.scss';\n\nimport '../../../../css/icons.scss';\nimport '../../../../css/middle.scss';\nimport '../../../../css/buttons.scss';\nimport '../../../../css/listPage.scss';\n\nclass AttendantMobileRow extends React.Component {\n constructor(props) {\n super(props);\n this.state = {\n expanded: false,\n };\n this.toggleLogExtra = this.toggleLogExtra.bind(this);\n }\n\n toggleLogExtra() {\n this.setState(prevState => ({\n expanded: !prevState.expanded,\n }));\n }\n render() {\n const { expanded } = this.state;\n const {\n isAdmin,\n isOwner,\n attendant,\n showModal,\n setTextIconDetail,\n setModalInfo,\n loggedAttendant,\n companies,\n } = this.props;\n const btnStyle = { border: 0, backgroundColor: 'transparent', padding: 0, paddingTop: '3.5px', marginLeft: '10px' };\n const ownerOrAdm = isOwner || isAdmin;\n const managerOption = (attendant.groups[0] === 3\n && loggedAttendant.groups[0] === 2) || attendant.groups[0] === loggedAttendant.groups[0];\n\n return (\n
\n \n\n
{attendant.username}
\n
{attendant.first_name} {attendant.last_name}
\n
{attendant.email}
\n
\n {\n attendant.groups.length <= 1\n ? userGroup(attendant.groups[0], 'fromServer')\n : companies.find(company => company.id === attendant.groups[1]).name\n }\n
\n
\n {((isAdmin || isOwner)\n || (this.props.isManager && attendant.groups.some(\n group => group === 2 || group === 3))) ?\n \n :\n
\n }\n
\n
\n
\n {(ownerOrAdm || managerOption) &&\n
\n \n \n \n {(attendant.groups[0] !== 4 && attendant.id !== loggedAttendant.id) &&\n { if (!showModal) { setModalInfo(true, attendant); } }}\n style={btnStyle}\n >\n {attendant.is_active === true ?\n
\n \n {/* */}\n
\n :\n
\n \n {/* */}\n
\n }\n \n }\n\n
\n }\n
\n
\n );\n }\n}\n\nAttendantMobileRow.defaultProps = {\n isAdmin: false,\n isOwner: false,\n isManager: false,\n};\n\nAttendantMobileRow.propTypes = {\n attendant: PropTypes.shape({\n id: PropTypes.number,\n username: PropTypes.string,\n first_name: PropTypes.string,\n last_name: PropTypes.string,\n email: PropTypes.string,\n password: PropTypes.string,\n groups: PropTypes.arrayOf(\n PropTypes.number,\n ),\n is_active: PropTypes.bool,\n is_staff: PropTypes.bool,\n is_superuser: PropTypes.bool,\n user_info: PropTypes.shape({\n id: PropTypes.number,\n user: PropTypes.number,\n phone: PropTypes.string,\n mobile: PropTypes.string,\n email: PropTypes.string,\n extension_id: PropTypes.number,\n }),\n actions: PropTypes.arrayOf(\n PropTypes.shape({\n id: PropTypes.number,\n priority: PropTypes.number,\n user: PropTypes.number,\n receive_sms: PropTypes.bool,\n receive_email: PropTypes.bool,\n }),\n ),\n }).isRequired,\n isAdmin: PropTypes.bool,\n isOwner: PropTypes.bool,\n isManager: PropTypes.bool,\n showModal: PropTypes.bool.isRequired,\n setTextIconDetail: PropTypes.func.isRequired,\n setModalInfo: PropTypes.func.isRequired,\n loggedAttendant: PropTypes.shape({\n id: PropTypes.number,\n username: PropTypes.string,\n first_name: PropTypes.string,\n last_name: PropTypes.string,\n email: PropTypes.string,\n password: PropTypes.string,\n groups: PropTypes.arrayOf(\n PropTypes.number,\n ),\n is_active: PropTypes.bool,\n is_staff: PropTypes.bool,\n is_superuser: PropTypes.bool,\n user_info: PropTypes.shape({\n id: PropTypes.number,\n user: PropTypes.number,\n phone: PropTypes.string,\n mobile: PropTypes.string,\n email: PropTypes.string,\n extension_id: PropTypes.number,\n }),\n actions: PropTypes.arrayOf(\n PropTypes.shape({\n id: PropTypes.number,\n priority: PropTypes.number,\n user: PropTypes.number,\n receive_sms: PropTypes.bool,\n receive_email: PropTypes.bool,\n }),\n ),\n }).isRequired,\n companies: PropTypes.arrayOf(\n PropTypes.shape({\n id: PropTypes.number,\n name: PropTypes.string,\n user_set: PropTypes.arrayOf(\n PropTypes.shape({\n id: PropTypes.number,\n is_active: PropTypes.bool,\n first_name: PropTypes.string,\n last_name: PropTypes.string,\n email: PropTypes.string,\n groups: PropTypes.arrayOf(\n PropTypes.number,\n ),\n }),\n ),\n }),\n ).isRequired,\n};\n\nfunction mapStateToProps(state, ownProps) {\n return {\n loggedAttendant: state.loggedAttendant,\n companies: state.groups.filter(grp => ![1, 2, 3, 4].includes(grp.id)),\n };\n}\n\nexport default connect(mapStateToProps)(AttendantMobileRow);\n","import React from 'react';\nimport PropTypes from 'prop-types';\nimport { FormattedMessage } from 'react-intl';\nimport { connect } from 'react-redux';\n\nimport style from './managementMenu.module.scss';\n\nconst ManagementMenu = ({ loggedAttendant, administrators, managers, owner, history }) => {\n const url = window.location.href ? window.location.href : '';\n const isManager = (managers && loggedAttendant.groups.length === 1)\n ? managers.user_set?.some(mngr => mngr.id === loggedAttendant.id)\n : false;\n const isSysAdmin = (administrators && loggedAttendant.groups.length === 1)\n ? administrators.user_set?.some(adm => adm.id === loggedAttendant.id)\n : false;\n const isSysOwner = (owner && loggedAttendant.groups.length === 1)\n ? owner.user_set?.some(own => own.id === loggedAttendant.id)\n : false;\n return (\n
\n
\n
    \n { (isSysAdmin || isSysOwner || isManager) &&\n
  • \n { history.push('/app/manage/attend'); }}\n >\n \n \n
  • \n }\n {(isSysAdmin || isSysOwner || isManager) &&\n
  • \n { history.push('/app/manage/online-attendants'); }}\n >\n ATENDENTES ONLINE\n \n
  • \n }\n
  • \n { history.push('/app/manage/alarms'); }}\n >\n \n \n
  • \n
  • \n { history.push('/app/manage/companies'); }}\n >\n \n \n
  • \n
  • \n { history.push('/app/manage/trackerlist'); }}\n >\n \n \n
  • \n
  • \n { history.push('/app/manage/ataList'); }}\n >\n ATAS\n \n
  • \n
  • \n { history.push('/app/manage/client-location'); }}\n >\n MAPA USUÁRIOS\n \n
  • \n
\n
\n
\n );\n};\n\nManagementMenu.propTypes = {\n loggedAttendant: PropTypes.shape({\n id: PropTypes.number,\n username: PropTypes.string,\n first_name: PropTypes.string,\n last_name: PropTypes.string,\n email: PropTypes.string,\n password: PropTypes.string,\n groups: PropTypes.arrayOf(\n PropTypes.number,\n ),\n is_active: PropTypes.bool,\n is_staff: PropTypes.bool,\n }).isRequired,\n administrators: PropTypes.shape({\n id: PropTypes.number,\n is_active: PropTypes.bool,\n first_name: PropTypes.string,\n last_name: PropTypes.string,\n email: PropTypes.string,\n groups: PropTypes.arrayOf(\n PropTypes.number,\n ),\n }).isRequired,\n managers: PropTypes.shape({\n id: PropTypes.number,\n is_active: PropTypes.bool,\n first_name: PropTypes.string,\n last_name: PropTypes.string,\n email: PropTypes.string,\n groups: PropTypes.arrayOf(\n PropTypes.number,\n ),\n }).isRequired,\n owner: PropTypes.shape({\n id: PropTypes.number,\n is_active: PropTypes.bool,\n first_name: PropTypes.string,\n last_name: PropTypes.string,\n email: PropTypes.string,\n groups: PropTypes.arrayOf(\n PropTypes.number,\n ),\n }).isRequired,\n};\n\nfunction mapStateToProps(state, ownProps) {\n return {\n loggedAttendant: state.loggedAttendant,\n groups: state.groups,\n administrators: state.groups.length > 0 ? state.groups.find(grp => grp.id === 1) : [],\n managers: state.groups.length > 0 ? state.groups.find(grp => grp.id === 2) : [],\n owner: state.groups.length > 0 ? state.groups.find(grp => grp.id === 4) : [],\n };\n}\n\nexport default connect(mapStateToProps)(ManagementMenu);\n","import * as types from './actionTypes';\nimport * as errorsActions from './errorsActions';\nimport * as globals from '../globals/globals';\nimport { host, getDomain, getToken } from '../BLL/environment';\n\nexport function loadAttendantsSuccess(attendants, ordering) {\n return { type: types.LOAD_ATTENDANTS_SUCCESS, attendants, ordering };\n}\n\nexport function newAttendant(attendant) {\n return { type: types.NEW_ATTENDANT, attendant };\n}\n\nexport function updatedAttendant(attendant) {\n return { type: types.EDIT_ATTENDANT, attendant };\n}\n\n\nexport function loadAttendants(ordering = globals.attendantsOrdering) {\n const domain = getDomain();\n const token = getToken();\n\n return (dispatch, getState, { axios }) => Promise.resolve(\n axios.get(`https://${domain}${host()}/api/users/?ordering=-is_active,${ordering}`, {\n headers: { Authorization: `Token ${token}` },\n }).then((users) => {\n dispatch(loadAttendantsSuccess(users.data, ordering));\n }).catch((error) => {\n if (error.response) {\n if (error.response.status === 401) {\n dispatch(errorsActions.logout());\n }\n }\n }),\n );\n}\n\nexport function createAttendant(attendant) {\n const domain = getDomain();\n const token = getToken();\n\n return (dispatch, getState, { axios }) => new Promise((resolve, reject) =>\n axios({\n method: 'post',\n responseType: 'json',\n url: `https://${domain}${host()}/api/users/`,\n data: attendant,\n headers: { Authorization: `Token ${token}` },\n })\n .then((res) => resolve(dispatch(newAttendant(res.data))))\n .catch((error) => {\n if (error.response) {\n if (error.response.status === 401) {\n return reject(dispatch(errorsActions.logout()));\n }\n return reject(error.response);\n }\n return reject({});\n }),\n );\n}\n\nexport function editAttendant(attendant) {\n const domain = getDomain();\n const token = getToken();\n\n return (dispatch, getState, { axios }) => new Promise((resolve, reject) =>\n axios({\n method: 'put',\n responseType: 'json',\n url: `https://${domain}${host()}/api/users/${attendant.id}/`,\n data: attendant,\n headers: { Authorization: `Token ${token}` },\n })\n .then(() => resolve(dispatch(updatedAttendant(attendant))))\n .catch((error) => {\n if (error.response) {\n if (error.response.status === 401) {\n return reject(dispatch(errorsActions.logout()));\n }\n return reject(error.response);\n }\n return reject({});\n }),\n );\n}\n","import React, { useState, useEffect } from 'react';\nimport PropTypes from 'prop-types';\nimport { connect } from 'react-redux';\nimport axios from 'axios';\nimport { FormattedMessage } from 'react-intl';\nimport AttendantRow from './AttendantRow';\nimport AttendantMobileRow from './AttendantMobileRow';\nimport Loading from '../../../../icons/Loading';\nimport ToggleButton from '../../../Common/ToggleButton';\nimport ConfirmRemoveModal from '../../../Modal/ModalConfirmRemove'\nimport ManagementMenu from '../ManagementMenu';\nimport Order from '../../../../icons/Order';\nimport * as attendantsActions from '../../../../actions/attendantsActions';\nimport * as globals from '../../../../BLL/globals';\nimport { broadcast, removeByKey, getBrowserMaxWidth } from '../../../../BLL/general';\nimport broadcastMessages from '../../../../BLL/locale/messagesBroadcast';\n\nimport style from '../management.module.scss';\n\nimport '../../../../css/icons.scss';\nimport '../../../../css/middle.scss';\nimport '../../../../css/buttons.scss';\nimport '../../../../css/listPage.scss';\n\nconst AttendantManagement = (props) => {\n const { isAdmin, isOwner, isManager, attendants, loggedAttendantId, loggedAttendantGroup } = props;\n const browserWidth = getBrowserMaxWidth();\n const [orderedAttendants, setOrderedAttendants] = useState([]);\n const [ordering, setOrdering] = useState(globals.attendantsOrdering);\n const [selectedAttendant, setSelectedAttendant] = useState(null);\n const [showConfirmRemoveModal, setShowConfirmRemoveModal] = useState(false);\n const [toggleChecked, setToggleCheck] = useState(false);\n\n useEffect(() => {\n const newOrdered = attendants.filter(atts => atts.ordering === ordering)[0];\n if (newOrdered) {\n setOrderedAttendants(newOrdered.data);\n }\n }, [attendants, ordering]);\n\n const orderBy = (name) => {\n let newOrder = '';\n if (name === 'first_name,last_name') {\n newOrder = ordering === name ? `-first_name,-last_name` : name;\n } else {\n newOrder = ordering === name ? `-${name}` : name;\n }\n props.loadAttendants(newOrder);\n setOrdering(newOrder);\n };\n\n const checkAttendant = (attendant) => {\n if (attendant.is_superuser) {\n return false;\n }\n\n return attendant.is_active || (toggleChecked && !attendant.is_active && (isAdmin || isOwner));\n };\n\n const setConfirmModalInfo = (showModal, attendant) => {\n setShowConfirmRemoveModal(showModal);\n setSelectedAttendant(Object.assign({}, attendant));\n };\n\n const toggleAttendant = () => {\n const lang = !localStorage.contacttoLang ? 'pt' : localStorage.contacttoLang;\n const userInfo = removeByKey(selectedAttendant.user_info, ['user', 'email', 'extension_id']);\n const attendant = Object.assign(\n {},\n selectedAttendant,\n { is_active: !selectedAttendant.is_active },\n { user_info: userInfo },\n );\n const text = `${broadcastMessages[lang]['broadcast.attendant']} ${selectedAttendant.first_name} ${selectedAttendant.last_name} ${\n selectedAttendant.is_active ? broadcastMessages[lang]['broadcast.recovered'] : broadcastMessages[lang]['broadcast.deleted']}`;\n \n props.editAttendant(attendant).then(() => {\n broadcast(axios, props.channelId, {\n type: 'attendant',\n method: 'toggle',\n userId: loggedAttendantId,\n text,\n attendant\n });\n });\n setConfirmModalInfo(false, null);\n };\n\n const svgNameRotation = ordering === '-first_name,-last_name' ? 'icons-order--rotate' : '';\n const svgUserRotation = ordering === '-username' ? 'icons-order--rotate' : '';\n const svgEmailRotation = ordering === '-email' ? 'icons-order--rotate' : '';\n const svgGroupRotation = ordering === '-groups' ? 'icons-order--rotate' : '';\n\n return (\n
\n
\n
\n \n
\n
\n
\n
\n
\n {(loggedAttendantGroup === 1 || loggedAttendantGroup === 4) &&\n setToggleCheck(!toggleChecked)} />\n }\n
\n
\n {orderedAttendants.length > 0 &&\n
\n {showConfirmRemoveModal &&\n \n }\n
\n
\n orderBy('username')}\n >\n \n \n
\n
\n orderBy('first_name,last_name')}\n >\n \n \n
\n
\n orderBy('email')}\n >\n Email\n \n
\n
\n orderBy('groups')}\n >\n \n \n
\n
\n\n
\n
\n {orderedAttendants\n .filter(att => att.groups.length <= 1)\n .map(attendant => (\n checkAttendant(attendant)\n ?\n {}}\n setModalInfo={setConfirmModalInfo}\n showModal={showConfirmRemoveModal}\n />\n :\n null\n ))\n }\n
\n
\n }\n
\n
\n );\n};\n\nAttendantManagement.propTypes = {\n channelId: PropTypes.string.isRequired,\n loggedAttendantId: PropTypes.number.isRequired,\n isAdmin: PropTypes.bool.isRequired,\n isOwner: PropTypes.bool.isRequired,\n loadAttendants: PropTypes.func.isRequired,\n toggleAttendant: PropTypes.func.isRequired,\n attendants: PropTypes.arrayOf(\n PropTypes.shape({\n ordering: PropTypes.string,\n data: PropTypes.arrayOf(\n PropTypes.shape({\n id: PropTypes.number,\n username: PropTypes.string,\n first_name: PropTypes.string,\n last_name: PropTypes.string,\n email: PropTypes.string,\n password: PropTypes.string,\n groups: PropTypes.arrayOf(\n PropTypes.number,\n ),\n is_active: PropTypes.bool,\n is_staff: PropTypes.bool,\n is_superuser: PropTypes.bool,\n user_info: PropTypes.shape({\n id: PropTypes.number,\n user: PropTypes.number,\n phone: PropTypes.string,\n mobile: PropTypes.string,\n email: PropTypes.string,\n extension_id: PropTypes.number,\n }),\n actions: PropTypes.arrayOf(\n PropTypes.shape({\n id: PropTypes.number,\n priority: PropTypes.number,\n user: PropTypes.number,\n receive_sms: PropTypes.bool,\n receive_email: PropTypes.bool,\n }),\n ),\n }),\n ),\n }),\n ).isRequired,\n loggedAttendantGroup: PropTypes.number.isRequired,\n isManager: PropTypes.bool.isRequired,\n};\n\nfunction mapStateToProps(state, ownProps) {\n return {\n channelId: ownProps.channelId,\n attendants: state.attendants,\n loggedAttendantId: state.loggedAttendant.id ? state.loggedAttendant.id : 0,\n isOwner: state.loggedAttendant.groups ? state.loggedAttendant.groups[0] === 4 : false,\n isAdmin: state.loggedAttendant.groups ? state.loggedAttendant.groups[0] === 1 : false,\n isManager: state.loggedAttendant.groups ? state.loggedAttendant.groups[0] === 2 : false,\n loggedAttendantGroup: state.loggedAttendant.groups[0],\n };\n}\n\nfunction mapDispatchToProps(dispatch) {\n return {\n loadAttendants: ordering => dispatch(attendantsActions.loadAttendants(ordering)),\n editAttendant: attendant => dispatch(attendantsActions.editAttendant(attendant)),\n };\n}\n\nexport default connect(mapStateToProps, mapDispatchToProps)(AttendantManagement);\n","import React from 'react';\nimport PropTypes from 'prop-types';\nimport { Link } from 'react-router-dom';\nimport { FormattedMessage } from 'react-intl';\nimport Edit from '../../../../icons/Edit';\nimport { alarmNameLang, actionPriority } from '../../../../BLL/dictionary';\n\nimport '../../../../css/row.scss';\nimport style from './alarmManagement.module.scss';\nimport styleManagement from '../management.module.scss';\n\nconst AlarmRow = ({\n isAdmin,\n isOwner,\n alarm,\n showModal,\n setTextIconDetail,\n setModalInfo,\n isSystemUser,\n}) => {\n const setEmptyText = () => {\n setTextIconDetail('');\n };\n return (\n
\n
{alarmNameLang(alarm)}
\n
{alarm.code}
\n
{actionPriority(alarm.priority, 'fromServer')}
\n
\n {(isAdmin || isOwner) && isSystemUser && alarm.is_deleted === false &&\n { setTextIconDetail(); }}\n onMouseOut={setEmptyText}\n to={`/app/alarms/form/edit/${alarm.id}`}\n >\n \n \n }\n {(isAdmin || isOwner) && isSystemUser && alarm.is_original === false &&\n { setTextIconDetail(alarm.is_deleted === false ? : ); }}\n onMouseOut={setEmptyText}\n onClick={() => { if (!showModal) { setModalInfo(true, alarm); } }}\n >\n {alarm.is_deleted === false ?\n // \n \n :\n \n }\n \n }\n
\n
\n );\n};\n\nAlarmRow.defaultProps = {\n isAdmin: false,\n isOwner: false,\n isSystemUser: false,\n};\n\nAlarmRow.propTypes = {\n alarm: PropTypes.shape({\n id: PropTypes.number,\n name: PropTypes.string,\n code: PropTypes.string,\n type: PropTypes.string,\n priority: PropTypes.number,\n is_original: PropTypes.bool,\n is_deleted: PropTypes.bool,\n created_date: PropTypes.string,\n modified_date: PropTypes.string,\n created_by: PropTypes.number,\n modified_by: PropTypes.number,\n }).isRequired,\n isAdmin: PropTypes.bool,\n isOwner: PropTypes.bool,\n isSystemUser: PropTypes.bool,\n showModal: PropTypes.bool.isRequired,\n setTextIconDetail: PropTypes.func.isRequired,\n setModalInfo: PropTypes.func.isRequired,\n};\n\nexport default AlarmRow;\n","import * as types from './actionTypes';\nimport * as errorsActions from './errorsActions';\nimport * as globals from '../globals/globals';\nimport { host, getDomain, getToken } from '../BLL/environment';\n\nexport function loadAlarmsSuccess(alarms, ordering) {\n return { type: types.LOAD_ALARMS_SUCCESS, alarms, ordering };\n}\n\nexport function newAlarm(alarm) {\n return { type: types.NEW_ALARM, alarm };\n}\n\nexport function updatedAlarm(alarm) {\n return { type: types.EDIT_ALARM, alarm };\n}\n\nexport function loadAlarms(ordering = globals.alarmsOrdering) {\n const domain = getDomain();\n const token = getToken();\n\n return (dispatch, getState, { axios }) => Promise.resolve(\n axios.get(\n `https://${domain}${host()}/api/alarm-event-types/?ordering=is_deleted,${ordering}`,\n { headers: { Authorization: `Token ${token}` } },\n ).then((alarms) => {\n dispatch(loadAlarmsSuccess(alarms.data, ordering));\n }).catch((error) => {\n if (error.response) {\n if (error.response.status === 401) {\n dispatch(errorsActions.logout());\n }\n }\n }),\n );\n}\n\nexport function createAlarm(alarm) {\n const domain = getDomain();\n const token = getToken();\n\n return (dispatch, getState, { axios }) => new Promise((resolve, reject) => \n axios({\n method: 'post',\n responseType: 'json',\n url: `https://${domain}${host()}/api/alarm-event-types/`,\n data: alarm,\n headers: { Authorization: `Token ${token}` },\n })\n .then((res) => resolve(dispatch(newAlarm(res.data))))\n .catch((error) => {\n if (error.response) {\n if (error.response.status === 401) {\n return reject(dispatch(errorsActions.logout()));\n }\n return reject(error.response);\n }\n return reject({});\n }),\n );\n}\n\nexport function editAlarm(alarm) {\n const domain = getDomain();\n const token = getToken();\n\n return (dispatch, getState, { axios }) => new Promise((resolve, reject) => \n axios({\n method: 'put',\n responseType: 'json',\n url: `https://${domain}${host()}/api/alarm-event-types/${alarm.id}/`,\n data: alarm,\n headers: { Authorization: `Token ${token}` },\n })\n .then(() => resolve(dispatch(updatedAlarm(alarm))))\n .catch((error) => {\n if (error.response) {\n if (error.response.status === 401) {\n return reject(dispatch(errorsActions.logout()));\n }\n return reject(error.response);\n }\n return reject({});\n }),\n );\n}\n","import React from 'react';\nimport PropTypes from 'prop-types';\nimport { connect } from 'react-redux';\nimport axios from 'axios';\nimport { FormattedMessage } from 'react-intl';\nimport { broadcast } from '../../../../BLL/general';\nimport Paginate from '../../../Common/Paginate';\nimport ToggleButton from '../../../Common/ToggleButton';\nimport ConfirmRemoveModal from '../../../Modal/ModalConfirmRemove';\nimport Order from '../../../../icons/Order';\nimport AlarmRow from './AlarmRow';\nimport ManagementMenu from '../ManagementMenu';\nimport * as alarmsActions from '../../../../actions/alarmsActions';\nimport * as globals from '../../../../BLL/globals';\nimport broadcastMessages from '../../../../BLL/locale/messagesBroadcast';\n\nimport style from './alarmManagement.module.scss';\nimport '../../../../css/contactto.scss';\nimport '../../../../css/middle.scss';\nimport '../../../../css/mixins/_default_buttons.scss';\nimport '../../../../css/error.scss';\nimport '../../../../css/paginate.scss';\nimport '../../../../css/listPage.scss';\nimport '../../../../css/table.scss';\nimport '../../../../css/icons.scss';\n\nexport class AlarmManagement extends React.Component {\n constructor(props) {\n super(props);\n this.state = {\n isAdmin: this.props.userGroup === 1,\n isOwner: this.props.userGroup === 4,\n alarms: [...this.props.alarms],\n alarmsOrdered: undefined,\n ordering: globals.alarmsOrdering,\n nameIsOrdered: false,\n codeIsOrdered: false,\n iconDetail: '',\n priorityIsOrdered: false,\n page: 1,\n numPerPage: globals.pagination,\n urlSearch: '',\n showModal: false,\n alarm: '',\n isChecked: false,\n };\n this.orderByName = this.orderByName.bind(this);\n this.orderByCode = this.orderByCode.bind(this);\n this.orderByPriority = this.orderByPriority.bind(this);\n this.setTextIconDetail = this.setTextIconDetail.bind(this);\n this.setModalInfo = this.setModalInfo.bind(this);\n this.toggleAlarm = this.toggleAlarm.bind(this);\n this.setPage = this.setPage.bind(this);\n this.handleChange = this.handleChange.bind(this);\n }\n\n componentDidMount() {\n this.setAlarm(this.state.ordering);\n }\n\n componentDidUpdate(prevProps) {\n if (this.props.alarms !== prevProps.alarms) {\n this.setState({ alarms: [...this.props.alarms] });\n const alarmsOrdered = this.props.alarms.filter(alarm => alarm.ordering === this.state.ordering)[0];\n this.setState({ alarmsOrdered: alarmsOrdered.data });\n }\n\n if (this.props.userGroup !== prevProps.userGroup) {\n this.setState({\n isAdmin: this.props.userGroup === 1,\n isOwner: this.props.userGroup === 4,\n });\n }\n }\n\n setPage(page) {\n this.setState({ page });\n }\n\n setAlarm(ordering) {\n const alarmsOrdered = this.state.alarms.filter(alarm => alarm.ordering === ordering)[0];\n if (this.state.alarms.length <= 0 || !alarmsOrdered) {\n this.props.loadAlarms(ordering);\n } else {\n this.setState({ alarmsOrdered: alarmsOrdered.data });\n }\n }\n\n setTextIconDetail(iconDetail) {\n this.setState({ iconDetail });\n }\n\n setModalInfo(showModal, alarm) {\n this.setState({\n showModal,\n alarm: Object.assign({}, alarm),\n });\n }\n\n toggleAlarm() {\n const lang = !localStorage.contacttoLang ? 'pt' : localStorage.contacttoLang;\n const { ordering } = this.state;\n const alarm = Object.assign(\n {},\n this.state.alarm,\n { is_deleted: !this.state.alarm.is_deleted },\n );\n this.props.editAlarm(alarm).then(() => {\n const text = `${broadcastMessages[lang]['broadcast.alarm']} (${alarm.code}) ${alarm.name} ${\n alarm.is_deleted ? broadcastMessages[lang]['broadcast.deleted'] : broadcastMessages[lang]['broadcast.recovered']}`;\n broadcast(axios, this.props.channelId, {\n type: 'alarm',\n method: 'edit',\n userId: this.props.user.id,\n text,\n alarm\n });\n });\n this.setModalInfo(false, '');\n }\n\n orderByName() {\n const ordering = this.state.ordering === 'name' ? '-name' : 'name';\n this.setState({ ordering });\n this.setAlarm(ordering);\n }\n\n orderByCode() {\n const ordering = this.state.ordering === 'code' ? '-code' : 'code';\n this.setState({ ordering });\n this.setAlarm(ordering);\n }\n\n orderByPriority() {\n const ordering = this.state.ordering === 'priority' ? '-priority' : 'priority';\n this.setState({ ordering });\n this.setAlarm(ordering);\n }\n\n handleChange() {\n this.setState(prevState => ({\n isChecked: !prevState.isChecked,\n }));\n }\n\n render() {\n const alarms = this.state.alarmsOrdered;\n const firstItem = (this.state.page - 1) * this.state.numPerPage;\n const lastItem = this.state.page * this.state.numPerPage;\n const svgNameRotation = this.state.ordering === '-name' ? 'icons-order--rotate' : '';\n const svgCodeRotation = this.state.ordering === '-code' ? 'icons-order--rotate' : '';\n const svgPriorityRotation = this.state.ordering === '-priority' ? 'icons-order--rotate' : '';\n const isSystemUser = this.props.loggedAttendant\n && this.props.loggedAttendant.groups.length === 1;\n const { isAdmin, isOwner } = this.state;\n return (\n
\n
\n
\n { this.props.loggedAttendant && this.props.loggedAttendant.groups.length === 1 &&\n \n }\n
\n {(isAdmin || isOwner) &&\n this.props.loggedAttendant && this.props.loggedAttendant.groups.length === 1 &&\n \n }\n
\n { alarms &&\n
\n \n {this.state.showModal &&\n \n }\n
\n
\n \n \n \n
\n
\n \n \n \n
\n
\n \n \n \n
\n
{this.state.iconDetail}
\n
\n
\n {alarms\n .slice(firstItem, lastItem)\n .map(alarm =>\n (alarm.is_deleted === false ||\n (this.state.isChecked === true &&\n alarm.is_deleted === true &&\n (isAdmin || isOwner) === true) ?\n \n :\n null\n ),\n )\n }\n
\n
\n }\n
\n
\n );\n }\n}\n\nAlarmManagement.propTypes = {\n alarms: PropTypes.arrayOf(\n PropTypes.shape({\n data: PropTypes.arrayOf(\n PropTypes.shape({\n id: PropTypes.number,\n name: PropTypes.string,\n code: PropTypes.string,\n type: PropTypes.string,\n priority: PropTypes.number,\n is_original: PropTypes.bool,\n is_deleted: PropTypes.bool,\n created_date: PropTypes.string,\n modified_date: PropTypes.string,\n created_by: PropTypes.number,\n modified_by: PropTypes.number,\n }),\n ),\n ordering: PropTypes.string,\n }),\n ).isRequired,\n channelId: PropTypes.string.isRequired,\n userGroup: PropTypes.number.isRequired,\n loadAlarms: PropTypes.func.isRequired,\n toggleAlarm: PropTypes.func.isRequired,\n loggedAttendant: PropTypes.shape({\n id: PropTypes.number,\n username: PropTypes.string,\n first_name: PropTypes.string,\n last_name: PropTypes.string,\n email: PropTypes.string,\n password: PropTypes.string,\n groups: PropTypes.arrayOf(\n PropTypes.number,\n ),\n is_active: PropTypes.bool,\n is_staff: PropTypes.bool,\n }).isRequired,\n};\n\nfunction mapStateToProps(state, ownProps) {\n return {\n alarms: state.alarms,\n loggedAttendant: state.loggedAttendant,\n user: state.loggedAttendant,\n userGroup: state.loggedAttendant.groups === undefined ? -1 : state.loggedAttendant.groups[0],\n };\n}\n\nfunction mapDispatchToProps(dispatch) {\n return {\n loadAlarms: ordering => dispatch(alarmsActions.loadAlarms(ordering)),\n editAlarm: alarm => dispatch(alarmsActions.editAlarm(alarm)),\n };\n}\n\nexport default connect(mapStateToProps, mapDispatchToProps)(AlarmManagement);\n","import React, { useState } from 'react';\nimport PropTypes from 'prop-types';\nimport { FormattedMessage } from 'react-intl';\nimport CheckboxInput from '../Common/CheckboxInput';\nimport Loading from '../../icons/Loading';\n\nimport style from './modalDeleteCompany.module.scss';\n\nconst ModalDeleteCompany = (props) => {\n const stages = {\n start: 0,\n processing: 1,\n success: 2,\n error: -1\n }\n const deleteMap = {\n company: props.deleteCompany,\n companyAndUsers: props.deleteCompanyAndUsers\n }\n const [deleteStage, setStage] = useState(stages.start);\n const [deleteUsers, setDeleteUsers] = useState(false);\n const [errorMsg, setErrorMsg] = useState('');\n\n const performDelete = () => {\n setStage(stages.processing);\n const selection = deleteUsers ? 'companyAndUsers' : 'company';\n deleteMap[selection](props.companyId).then((res) => {\n props.setSelectedCompany('0');\n setStage(stages.success);\n console.log(res);\n }).catch((err) => {\n const data = err.data;\n setStage(stages.error);\n if (data.haveClients) {\n setErrorMsg(\n \n );\n }\n\n if (data.haveUsers) {\n setErrorMsg(\n \n );\n }\n });\n }\n\n return (\n
\n {deleteStage === stages.start &&\n
\n
\n
\n
\n
\n \n
\n setDeleteUsers(!deleteUsers)} />\n
\n
\n
\n \n \n
\n
\n }\n {deleteStage === stages.processing &&\n } />\n }\n {deleteStage === stages.success &&\n
\n
\n
\n \n
\n
\n }\n {deleteStage === stages.error &&\n
\n
\n
{errorMsg}
\n
\n \n
\n
\n }\n
\n )\n};\n\nModalDeleteCompany.propTypes = {\n closeModal: PropTypes.func.isRequired,\n deleteCompany: PropTypes.func.isRequired,\n deleteCompanyAndUsers: PropTypes.func.isRequired,\n setSelectedCompany: PropTypes.func.isRequired,\n companyId: PropTypes.string.isRequired,\n}\n\nexport default ModalDeleteCompany;\n","import React from 'react';\nimport PropTypes from 'prop-types';\nimport { connect } from 'react-redux';\nimport { Link } from 'react-router-dom';\nimport { FormattedMessage } from 'react-intl';\nimport Edit from '../../../../icons/Edit';\n\nimport style from '../management.module.scss';\nimport styleScss from './companiesManagement.module.scss';\n\nconst CompanyUserRow = ({\n isAdmin,\n isOwner,\n attendant,\n showModal,\n setTextIconDetail,\n setModalInfo,\n loggedAttendant,\n companyId,\n}) => {\n const btnStyle = { border: 0, backgroundColor: 'transparent', padding: 0 };\n const ownerOrAdm = isOwner || isAdmin;\n const managerOption = (attendant.groups[0] === 3 && loggedAttendant.groups[0] === 2)\n || attendant.groups[0] === loggedAttendant.groups[0];\n\n return (\n
\n
{attendant.username}
\n
{attendant.first_name} {attendant.last_name}
\n
{attendant.email}
\n
\n {(ownerOrAdm || managerOption) &&\n
\n \n \n \n {(attendant.groups[0] !== 4 && attendant.id !== loggedAttendant.id) &&\n { if (!showModal) { setModalInfo(true, attendant.id); } }}\n style={btnStyle}\n >\n {attendant.is_active === true ?\n
\n \n {/* */}\n
\n :\n
\n \n {/* */}\n
\n }\n \n }\n\n
\n }\n
\n
\n );\n};\n\nCompanyUserRow.defaultProps = {\n isAdmin: false,\n isOwner: false,\n};\n\nCompanyUserRow.propTypes = {\n attendant: PropTypes.shape({\n id: PropTypes.number,\n username: PropTypes.string,\n first_name: PropTypes.string,\n last_name: PropTypes.string,\n email: PropTypes.string,\n password: PropTypes.string,\n groups: PropTypes.arrayOf(\n PropTypes.number,\n ),\n is_active: PropTypes.bool,\n is_staff: PropTypes.bool,\n is_superuser: PropTypes.bool,\n user_info: PropTypes.shape({\n id: PropTypes.number,\n user: PropTypes.number,\n phone: PropTypes.string,\n mobile: PropTypes.string,\n email: PropTypes.string,\n extension_id: PropTypes.number,\n }),\n actions: PropTypes.arrayOf(\n PropTypes.shape({\n id: PropTypes.number,\n priority: PropTypes.number,\n user: PropTypes.number,\n receive_sms: PropTypes.bool,\n receive_email: PropTypes.bool,\n }),\n ),\n }).isRequired,\n isAdmin: PropTypes.bool,\n isOwner: PropTypes.bool,\n showModal: PropTypes.bool.isRequired,\n setTextIconDetail: PropTypes.func.isRequired,\n setModalInfo: PropTypes.func.isRequired,\n loggedAttendant: PropTypes.shape({\n id: PropTypes.number,\n username: PropTypes.string,\n first_name: PropTypes.string,\n last_name: PropTypes.string,\n email: PropTypes.string,\n password: PropTypes.string,\n groups: PropTypes.arrayOf(\n PropTypes.number,\n ),\n is_active: PropTypes.bool,\n }).isRequired,\n companyId: PropTypes.number.isRequired,\n};\n\nfunction mapStateToProps(state, ownProps) {\n return {\n loggedAttendant: state.loggedAttendant,\n };\n}\n\nexport default connect(mapStateToProps)(CompanyUserRow);\n","import React, { useState } from 'react';\nimport PropTypes from 'prop-types';\nimport { FormattedMessage } from 'react-intl';\nimport ToggleButton from '../../../Common/ToggleButton';\nimport CompanyUserRow from './CompanyUserRow';\n\nimport style from './companiesManagement.module.scss';\nimport '../../../../css/contactto.scss';\n\nconst CompanyRow = (props) => {\n const [showInactives, setShowInactives] = useState(false);\n\n return (\n
\n
\n {props.isCompanyAdm &&\n
{props.company.name}
\n }\n
\n
\n props.history.push(`/app/companies/${props.company.id}/user/form/add`)}\n >\n <>\n + \n \n \n
\n
\n props.history.push(`/app/companies/form/edit/${props.company.id}`)}\n >\n <>\n \n \n \n \n
\n {props.loggedAttendantGroup === 4 && \n
\n \n <>\n \n \n \n \n
\n }\n {(props.loggedAttendantGroup === 1 || props.loggedAttendantGroup === 4) &&\n setShowInactives(!showInactives)}\n />\n }\n
\n
\n
\n \n
\n
\n \n
\n
Email
\n
\n
\n\n
\n {props.company?.user_set\n .sort((userA, userB) => userB.is_active - userA.is_active)\n .filter(user => {\n if (!showInactives) {\n return user.is_active=== true;\n }\n return user;\n })\n .map(user => (\n \n ))\n }\n
\n
\n
\n );\n};\n\nCompanyRow.propTypes = {\n company: PropTypes.shape({\n id: PropTypes.number,\n name: PropTypes.string,\n user_set: PropTypes.arrayOf(\n PropTypes.shape({\n id: PropTypes.number,\n is_active: PropTypes.bool,\n first_name: PropTypes.string,\n last_name: PropTypes.string,\n email: PropTypes.string,\n groups: PropTypes.arrayOf(\n PropTypes.number,\n ),\n }),\n ),\n }).isRequired,\n loggedAttendantGroup: PropTypes.number.isRequired,\n iconDetail: PropTypes.shape({\n id: PropTypes.number,\n text: PropTypes.string,\n }).isRequired,\n setTextIconDetail: PropTypes.func.isRequired,\n setModalInfo: PropTypes.func.isRequired,\n};\n\nexport default CompanyRow;\n","import * as types from './actionTypes';\nimport * as errorsActions from './errorsActions';\nimport { host, getDomain, getToken } from '../BLL/environment';\n\nexport function loadGroupsSuccess(groups) {\n return { type: types.LOAD_GROUPS_SUCCESS, groups };\n}\n\nexport function loadGroups() {\n const domain = getDomain();\n const token = getToken();\n\n return (dispatch, getState, { axios }) => Promise.resolve(\n axios.get(`https://${domain}${host()}/api/user-groups/`, {\n headers: { Authorization: `Token ${token}` },\n }).then((groups) => {\n const groupsData = groups.data.length > 0 ? groups.data : -1;\n dispatch(loadGroupsSuccess(groupsData));\n }).catch((error) => {\n if (error.response) {\n if (error.response.status === 401) {\n dispatch(errorsActions.logout());\n }\n }\n }),\n );\n}\n\nexport function saveGroup(group) {\n const domain = getDomain();\n const token = getToken();\n\n return (dispatch, getState, { axios }) => new Promise((resolve, reject) =>\n axios({\n method: group.id > 0 ? 'put' : 'post',\n responseType: 'json',\n url: `https://${domain}${host()}/api/user-groups/${group.id ? `${group.id}/` : ''}`,\n data: group,\n headers: { Authorization: `Token ${token}` },\n })\n .then(() => resolve(dispatch(loadGroups())))\n .catch((error) => {\n if (error.response) {\n if (error.response.status === 401) {\n return reject(dispatch(errorsActions.logout()));\n }\n return reject(error.response);\n }\n return reject({});\n }),\n );\n}\n\nexport function deleteGroup(groupId) {\n const domain = getDomain();\n const token = getToken();\n\n return (dispatch, getState, { axios }) => new Promise((resolve, reject) => \n axios({\n method: 'delete',\n responseType: 'json',\n url: `https://${domain}${host()}/api/user-groups/${groupId}/`,\n headers: { Authorization: `Token ${token}` },\n })\n .then(() => resolve(dispatch(loadGroups())))\n .catch((error) => {\n if (error.response) {\n if (error.response.status === 401) {\n return reject(dispatch(errorsActions.logout()));\n }\n return reject(error.response);\n }\n return reject({});\n }),\n );\n}\n\nexport function deleteGroupAndUsers(groupId) {\n const domain = getDomain();\n const token = getToken();\n\n return (dispatch, getState, { axios }) => new Promise((resolve, reject) => \n axios({\n method: 'delete',\n responseType: 'json',\n url: `https://${domain}${host()}/api/groups/${groupId}/force/`,\n headers: { Authorization: `Token ${token}` },\n })\n .then(() => resolve(dispatch(loadGroups())))\n .catch((error) => {\n if (error.response) {\n if (error.response.status === 401) {\n return reject(dispatch(errorsActions.logout()));\n }\n return reject(error.response);\n }\n return reject({});\n }),\n );\n}\n","import React, { useState, useEffect } from 'react';\nimport PropTypes from 'prop-types';\nimport { connect } from 'react-redux';\nimport axios from 'axios';\nimport { FormattedMessage } from 'react-intl';\nimport ManagementMenu from '../ManagementMenu';\nimport DeleteCompanyModal from '../../../Modal/ModalDeleteCompany';\nimport ConfirmRemoveModal from '../../../Modal/ModalConfirmRemove';\nimport CompanyRow from './CompanyRow';\nimport { broadcast, removeByKey } from '../../../../BLL/general';\nimport * as attendantsActions from '../../../../actions/attendantsActions';\nimport * as groupsActions from '../../../../actions/groupsActions';\n\nimport broadcastMessages from '../../../../BLL/locale/messagesBroadcast';\n\nimport style from './companiesManagement.module.scss';\n\nconst CompanyPage = (props) => {\n const isCompanyAdm = props.companies.some(\n company => props.loggedAttendant.groups.includes(company.id)\n );\n\n const [selectedCompany, setSelectedCompany] = useState('0');\n const [attendantId, setAttendantId] = useState(undefined);\n const [showDeleteModal, setShowDeleteModal] = useState(false);\n const [showModal, setShowModal] = useState(false);\n\n useEffect(() => {\n if (isCompanyAdm) {\n setSelectedCompany(\n props.companies.find(company => \n props.loggedAttendant.groups.includes(company.id)\n ).id\n )\n } else {\n const selected = localStorage.getItem('selectedCompany');\n if (props.companies.some(company => company.id === parseInt(selected))) {\n setSelectedCompany(selected);\n }\n }\n }, [props.companies, props.loggedAttendant, isCompanyAdm]);\n \n const setModalInfo = (show, attendant) => {\n setShowModal(show);\n setAttendantId(attendant);\n }\n\n const toggleAttendant = () => {\n const attendant = props.attendants.find(att => att.id === attendantId);\n const userInfo = removeByKey(attendant.user_info, ['user', 'email', 'extension_id']);\n const attendantToToggle = Object.assign(\n {},\n attendant,\n { is_active: !attendant.is_active },\n { user_info: userInfo },\n );\n const lang = !localStorage.contacttoLang ? 'pt' : localStorage.contacttoLang;\n const text = `${broadcastMessages[lang]['broadcast.attendant']} ${attendantToToggle.first_name} ${attendantToToggle.last_name} ${\n attendantToToggle.is_active ? broadcastMessages[lang]['broadcast.recovered'] : broadcastMessages[lang]['broadcast.deleted']}`;\n \n props.editAttendant(attendantToToggle).then(() => {\n props.loadGroups();\n broadcast(axios, props.channelId, {\n type: 'attendant',\n method: 'toggle',\n userId: props.loggedAttendant.id,\n attendant: attendantToToggle,\n text,\n });\n });\n setModalInfo(false, null);\n }\n\n return (\n
\n
\n
\n \n
\n {!isCompanyAdm &&\n \n }\n
\n \n {showDeleteModal &&\n setShowDeleteModal(false)}\n companyId={selectedCompany}\n deleteCompany={props.deleteGroup}\n deleteCompanyAndUsers={props.deleteGroupAndUsers}\n setSelectedCompany={setSelectedCompany}\n />\n }\n {showModal &&\n \n }\n
\n {!isCompanyAdm &&\n {\n const value = e.target.value;\n setSelectedCompany(e.target.value);\n localStorage.setItem('selectedCompany', value);\n }}\n >\n \n {props.companies?.length > 0 && props.companies.sort((compA, compB) => compA.name.localeCompare(compB.name)).map(company => (\n \n ))}\n \n }\n {(parseInt(selectedCompany) !== 0) &&\n company.id === parseInt(selectedCompany))}\n loggedAttendantGroup={props.loggedAttendantGroup}\n setModalInfo={setModalInfo}\n openDeleteModal={() => setShowDeleteModal(true)}\n history={props.history}\n />\n }\n
\n
\n )\n};\n\nCompanyPage.propTypes = {\n companies: PropTypes.arrayOf(\n PropTypes.shape({\n id: PropTypes.number,\n name: PropTypes.string,\n user_set: PropTypes.arrayOf(\n PropTypes.shape({\n id: PropTypes.number,\n is_active: PropTypes.bool,\n first_name: PropTypes.string,\n last_name: PropTypes.string,\n email: PropTypes.string,\n groups: PropTypes.arrayOf(\n PropTypes.number,\n ),\n }),\n ),\n }),\n ).isRequired,\n loggedAttendant: PropTypes.shape({\n id: PropTypes.number,\n username: PropTypes.string,\n first_name: PropTypes.string,\n last_name: PropTypes.string,\n email: PropTypes.string,\n password: PropTypes.string,\n groups: PropTypes.arrayOf(\n PropTypes.number,\n ),\n is_active: PropTypes.bool,\n is_staff: PropTypes.bool,\n }).isRequired,\n loggedAttendantGroup: PropTypes.number.isRequired,\n toggleAttendant: PropTypes.func.isRequired,\n channelId: PropTypes.string.isRequired,\n attendants: PropTypes.arrayOf(\n PropTypes.shape({\n ordering: PropTypes.string,\n data: PropTypes.arrayOf(\n PropTypes.shape({\n id: PropTypes.number,\n username: PropTypes.string,\n first_name: PropTypes.string,\n last_name: PropTypes.string,\n email: PropTypes.string,\n password: PropTypes.string,\n groups: PropTypes.arrayOf(\n PropTypes.number,\n ),\n is_active: PropTypes.bool,\n is_staff: PropTypes.bool,\n is_superuser: PropTypes.bool,\n user_info: PropTypes.shape({\n id: PropTypes.number,\n user: PropTypes.number,\n phone: PropTypes.string,\n mobile: PropTypes.string,\n email: PropTypes.string,\n extension_id: PropTypes.number,\n }),\n actions: PropTypes.arrayOf(\n PropTypes.shape({\n id: PropTypes.number,\n priority: PropTypes.number,\n user: PropTypes.number,\n receive_sms: PropTypes.bool,\n receive_email: PropTypes.bool,\n }),\n ),\n }),\n ),\n }),\n ).isRequired,\n loadGroups: PropTypes.func.isRequired,\n};\n\nfunction mapStateToProps(state, ownProps) {\n return {\n loggedAttendant: state.loggedAttendant,\n loggedAttendantGroup: state.loggedAttendant.groups[0],\n companies: state.groups.filter(grp => ![1, 2, 3, 4].includes(grp.id)),\n channelId: ownProps.channelId,\n attendants: state.attendants[0].data,\n };\n}\n\nfunction mapDispatchToProps(dispatch) {\n return {\n editAttendant: attendant => dispatch(attendantsActions.editAttendant(attendant)),\n deleteGroup: (groupId) => dispatch(groupsActions.deleteGroup(groupId)),\n deleteGroupAndUsers: (groupId) => dispatch(groupsActions.deleteGroupAndUsers(groupId)),\n loadGroups: () => dispatch(groupsActions.loadGroups()),\n };\n}\n\nexport default connect(mapStateToProps, mapDispatchToProps)(CompanyPage);\n","import gql from 'graphql-tag';\n\nexport const GET_ONLINE_USERS = gql`\n query($token: String!, $ordering: String) {\n allUsersOnlineStatus(token: $token, ordering: $ordering) {\n name\n group\n companyName\n isOnline\n lastOnlineAt\n }\n }\n`;","import { useQuery } from 'react-apollo';\nimport { GET_ONLINE_USERS } from './OnlineQueries';\n\nfunction useAllOnlineUsers(token, ordering) {\n const { data, loading, error } = useQuery(GET_ONLINE_USERS, {\n variables: { token, ordering },\n skip: !token,\n pollInterval: 30000\n });\n\n return {\n data: data?.allUsersOnlineStatus,\n loading,\n error\n }\n};\n\nexport default useAllOnlineUsers;\n","import React, { useState } from 'react';\nimport useAllOnlineUsers from './OnlineHooks';\nimport ManagementMenu from '../ManagementMenu';\nimport Order from '../../../../icons/Order';\nimport { formatDateFromString } from '../../../../BLL/general';\nimport { userGroup } from '../../../../BLL/dictionary';\nimport { FormattedMessage } from 'react-intl';\n\nimport '../../../../css/icons.scss';\nimport style from './onlinePage.module.scss';\n\nconst OnlineAttendantsPage = (props) => {\n const [ordering, setOrdering] = useState('-last_online_at')\n const { data, loading, error} = useAllOnlineUsers(sessionStorage.activeToken, ordering);\n\n const svgNameRotation = ordering === '-name' ? 'icons-order--rotate' : '';\n const svgCompanyNameRotation = ordering === '-company_name' ? 'icons-order--rotate' : '';\n const svgGroupRotation = ordering === '-group' ? 'icons-order--rotate' : '';\n const svgLastOnlineAtRotation = ordering === '-last_online_at' ? 'icons-order--rotate' : '';\n\n if (loading) {\n return (\n
\n
\n
\n
\n \n \n
\n )\n }\n\n if (error) {\n return (\n
\n Erro ao carregar lista de usuários online: {error.message}\n
\n )\n }\n\n return (\n
\n
\n
\n \n
\n
\n \n
\n
\n
\n
Status
\n
\n setOrdering(ordering === 'name' ? '-name' : 'name')}\n >\n \n \n \n
\n
\n setOrdering(ordering === 'company_name' ? '-company_name' : 'company_name')}\n >\n \n \n \n
\n
\n setOrdering(ordering === 'group' ? '-group' : 'group')}\n >\n \n \n \n
\n
\n setOrdering(ordering === 'last_online_at' ? '-last_online_at' : 'last_online_at')}\n >\n \n \n \n
\n
\n\n
\n {data.map((item) => (\n
\n
\n
\n
\n
\n {item.name}\n
\n
\n {!item.companyName ? 'Sistema' : item.companyName}\n
\n
\n {userGroup(parseInt(item.group))}\n
\n
\n {formatDateFromString(item.lastOnlineAt)}\n
\n
\n ))}\n
\n
\n
\n
\n )\n}\n\nexport default OnlineAttendantsPage;","import React from 'react';\nimport PropTypes from 'prop-types';\nimport { useQuery } from 'react-apollo';\nimport { FormattedMessage } from 'react-intl';\nimport { Link } from 'react-router-dom';\nimport moment from 'moment';\nimport gql from 'graphql-tag';\nimport Loading from '../../../../icons/Loading';\nimport style from './iotDeviceList.module.scss';\n\nconst allTrackerData = gql`\n query($token: String!, $tracker: String, $ordering: String) {\n trackerAllList(token: $token, tracker: $tracker, ordering: $ordering) {\n imei\n clientId\n account\n fullName\n companyName\n sendtime\n battery\n isOnline\n isDeleted\n }\n }\n`;\n\nconst RenderTrackerData = ({ tracker, order}) => {\n const { loading, error, data } = useQuery(allTrackerData, {\n variables: { \n token: sessionStorage.activeToken,\n ordering: order,\n tracker\n },\n pollInterval: 30000\n });\n\n if (loading) {\n return (} />);\n }\n\n if (error) {\n return (
Error -> {error}
)\n }\n\n return (\n
\n {data.trackerAllList.length > 0 ?\n data.trackerAllList.sort((trackerA, trackerB) => trackerA.isDeleted - trackerB.isDeleted).map(trckr => (\n \n
\n
\n
\n
\n {trckr.imei}\n
\n
\n {trckr.fullName.split(' ')[0]} {trckr.fullName.split(' ').pop()}\n
\n
\n {trckr.companyName}\n
\n
\n {trckr.battery}\n
\n
\n {trckr.datetime === '-1'\n ? \n : (tracker === 'igo')\n ? moment(trckr.sendtime).format('DD/MM/YYYY HH:mm:ss')\n : moment(parseInt(trckr.sendtime, 10)).format('DD/MM/YYYY HH:mm:ss')\n } \n
\n \n ))\n :
\n }\n
\n );\n};\n\nRenderTrackerData.propTypes = {\n tracker: PropTypes.string.isRequired,\n order: PropTypes.string.isRequired,\n};\n\nexport default RenderTrackerData;\n","import React, { useState } from 'react';\nimport { FormattedMessage } from 'react-intl';\nimport Order from '../../../../icons/Order';\nimport ManagementMenu from '../ManagementMenu';\n\nimport RenderTrackerData from './TrackerData';\n\nimport '../../../../css/icons.scss';\nimport '../../../../css/contactto.scss';\nimport style from './iotDeviceList.module.scss';\n\nconst IoTDeviceList = (props) => {\n const [ordering, setOrdering] = useState('imei');\n const [selectedDevice, setSelectedDevice] = useState('igo');\n\n const svgNameRotation = ordering === '-full_name' ? 'icons-order--rotate' : '';\n const svgIMEIRotation = ordering === '-imei' ? 'icons-order--rotate' : '';\n const svgCompanyRotation = ordering === '-company_name' ? 'icons-order--rotate' : '';\n const svgBatteryRotation = ordering === '-battery' ? 'icons-order--rotate' : '';\n const svgDateRotation = ordering === '-sendtime' ? 'icons-order--rotate' : '';\n\n return (\n
\n
\n
\n
\n \n
\n
\n \n
\n
\n \n \n \n \n
\n
\n
\n
Status
\n
\n setOrdering(ordering === 'imei' ? '-imei' : 'imei')}\n >\n IMEI \n \n
\n
\n setOrdering(ordering === 'full_name' ? '-full_name' : 'full_name')}\n >\n \n \n
\n
\n setOrdering(ordering === 'company_name' ? '-company_name' : 'company_name')}\n >\n \n \n
\n
\n setOrdering(ordering === 'battery' ? '-battery' : 'battery')}\n >\n \n \n
\n
\n setOrdering(ordering === 'sendtime' ? '-sendtime' : 'sendtime')}\n >\n \n \n
\n
\n
\n \n
\n
\n );\n\n};\n\nexport default IoTDeviceList;\n","import React from 'react';\nimport PropTypes from 'prop-types';\nimport { useQuery } from 'react-apollo';\nimport { FormattedMessage } from 'react-intl';\nimport { Link } from 'react-router-dom';\nimport gql from 'graphql-tag';\nimport Loading from '../../../../icons/Loading';\n\nimport { ataStatusLang } from '../../../../BLL/dictionary';\nimport style from './ataDeviceList.module.scss';\n\nconst allClientAta = gql`\n query($token: String!, $ordering: String) {\n allClientAta(token: $token, ordering: $ordering) {\n clientId\n account\n fullName\n companyId\n number\n status\n port\n isDeleted\n }\n }\n`;\n\nconst RenderAtaData = ({order}) => {\n const { loading, error, data } = useQuery(allClientAta, {\n variables: {\n token: sessionStorage.activeToken,\n ordering: order\n },\n pollInterval: 30000\n });\n\n if (loading) {\n return (} />);\n }\n\n if (error) {\n return (
Error -> {error}
)\n }\n\n return (\n
\n {data.allClientAta.length > 0\n ? data.allClientAta.sort((clientA, clientB) => clientA.isDeleted - clientB.isDeleted).map(client => (\n \n
\n {client.number}\n
\n
\n {client.account}\n
\n
\n {client.fullName.split(' ')[0]} {client.fullName.split(' ').slice(-1)[0]}\n
\n
\n {client.port}\n
\n
\n {ataStatusLang(client.status.trim())}\n
\n \n ))\n :
\n }\n
\n );\n};\n\n\nRenderAtaData.propTypes = {\n order: PropTypes.string.isRequired,\n};\n\nexport default RenderAtaData;\n","import React, { useState } from 'react';\nimport { FormattedMessage } from 'react-intl';\nimport Order from '../../../../icons/Order';\nimport ManagementMenu from '../ManagementMenu';\n\nimport RenderAtaData from './AtaData';\n\nimport '../../../../css/icons.scss';\nimport '../../../../css/contactto.scss';\nimport style from './ataDeviceList.module.scss';\n\nconst AtaDeviceList = (props) => {\n const [ordering, setOrdering] = useState('account');\n const svgNameRotation = ordering === '-full_name' ? 'icons-order--rotate' : '';\n const svgAccountRotation = ordering === '-account' ? 'icons-order--rotate' : '';\n const svgNumberRotation = ordering === '-number' ? 'icons-order--rotate' : '';\n const svgStatusRotation = ordering === '-status' ? 'icons-order--rotate' : '';\n\n return (\n
\n
\n
\n
\n \n
\n
\n
\n
\n setOrdering(ordering === 'number' ? '-number' : 'number')}\n >\n ATA \n \n
\n
\n setOrdering(ordering === 'account' ? '-account' : 'account')}\n >\n \n \n
\n
\n setOrdering(ordering === 'full_name' ? '-full_name' : 'full_name')}\n >\n \n \n
\n
\n
\n setOrdering(ordering === 'status' ? '-status' : 'status')}\n >\n Status \n \n
\n
\n
\n\n \n
\n
\n )\n\n}\n\nexport default AtaDeviceList;\n","import React from 'react';\nimport PropTypes from 'prop-types';\nimport { FormattedMessage } from 'react-intl';\n\nimport InputContainer from '../Common/InputContainer';\n\nimport '../../css/formPage.scss';\n\nimport detail from '../../css/detail.module.scss';\nimport style from './modalPasswordChange.module.scss';\n\n\nexport default class ModalPasswordChange extends React.Component {\n constructor(props) {\n super(props);\n this.state = {\n oldPassword: '',\n newPassword: '',\n newPassword2: '',\n validator: {\n oldPassword: {\n validate: true,\n message: '',\n },\n newPassword: {\n validate: true,\n message: '',\n },\n newPassword2: {\n validate: true,\n message: '',\n },\n },\n };\n this.setWrapperRef = this.setWrapperRef.bind(this);\n this.clickedOutside = this.clickedOutside.bind(this);\n this.setForm = this.setForm.bind(this);\n this.setValidator = this.setValidator.bind(this);\n this.changePasswordCallback = this.changePasswordCallback.bind(this);\n }\n\n componentWillMount() {\n document.addEventListener('mousedown', this.clickedOutside);\n }\n\n componentWillReceiveProps(nextProps) {\n if (nextProps.wrongPassword === true) {\n const newValidator = Object.assign({}, this.state.validator);\n newValidator.oldPassword.validate = false;\n newValidator.oldPassword.message = ;\n this.setState({ validator: newValidator });\n }\n }\n\n componentWillUnmount() {\n document.removeEventListener('mousedown', this.clickedOutside);\n }\n\n setForm(ev) {\n const name = ev.target.name;\n const value = ev.target.value;\n\n this.setFormValue({ name, value });\n this.setValidator({ name, value });\n }\n\n setFormValue({ name, value }) {\n if (name === 'oldPassword') {\n this.setState({ oldPassword: value });\n }\n\n if (name === 'newPassword') {\n this.setState({ newPassword: value });\n }\n\n if (name === 'newPassword2') {\n this.setState({ newPassword2: value });\n }\n }\n\n setValidator({ name, value }) {\n const newValidator = Object.assign({}, this.state.validator);\n switch (name) {\n case 'oldPassword': {\n // const oldValidate = newValidator[name].validate\n const validate = value.length >= 8;\n newValidator[name].validate = validate;\n if (!validate) {\n newValidator[name].message = ;\n }\n break;\n }\n case 'newPassword': {\n const validate = value.length >= 8;\n newValidator[name].validate = validate;\n if (!validate) {\n newValidator[name].message = ;\n } else {\n const validateConfirm = value === this.state.newPassword2;\n newValidator.newPassword2.validate = validateConfirm;\n if (!validateConfirm) {\n newValidator.newPassword2.message = ;\n }\n }\n break;\n }\n case 'newPassword2': {\n const validate = value === this.state.newPassword;\n newValidator[name].validate = validate;\n if (!validate) {\n newValidator[name].message = ;\n }\n break;\n }\n default:\n break;\n }\n this.setState({ validator: newValidator });\n }\n\n setWrapperRef(node) {\n this.wrapperRef = node;\n }\n\n clickedOutside(ev) {\n if (this.wrapperRef && !this.wrapperRef.contains(ev.target)) {\n this.props.closeModal();\n }\n }\n\n changePasswordCallback() {\n const passwords = {\n old_password: this.state.oldPassword,\n new_password: this.state.newPassword,\n };\n this.props.changePassword(passwords);\n }\n\n render() {\n const { validator, oldPassword, newPassword, newPassword2 } = this.state;\n const saveEnable = Object.values(validator).every(el => el.validate);\n return (\n
\n
\n
\n
\n
\n }\n type=\"password\"\n validator={validator.oldPassword}\n value={oldPassword}\n />\n }\n type=\"password\"\n validator={validator.newPassword}\n value={newPassword}\n />\n }\n type=\"password\"\n validator={validator.newPassword2}\n value={newPassword2}\n />\n
\n
\n {newPassword2 !== '' && saveEnable ?\n \n \n \n : \n \n \n }\n
\n
\n );\n }\n}\n\nModalPasswordChange.propTypes = {\n changePassword: PropTypes.func.isRequired,\n closeModal: PropTypes.func.isRequired,\n wrongPassword: PropTypes.bool.isRequired,\n};\n","import React, { useState, useEffect } from 'react';\nimport PropTypes from 'prop-types';\nimport { connect } from 'react-redux';\nimport axios from 'axios';\nimport { FormattedMessage } from 'react-intl';\nimport { validateEmail, usernameReg } from '../../../BLL/validate';\nimport { userGroup, userActionPriority } from '../../../BLL/dictionary';\nimport { getDomain, host, getToken } from '../../../BLL/environment';\nimport InputContainer from '../../Common/InputContainer';\nimport SelectInput from '../../Common/SelectInput2'\nimport CheckboxInput from '../../Common/CheckboxInput'\nimport ModalPasswordChange from '../../Modal/ModalPasswordChange';\nimport ErrorComponent from '../../Common/ErrorComponent';\nimport broadcastMessages from '../../../BLL/locale/messagesBroadcast';\nimport countryList from '../../../BLL/locale/messagesCountries';\nimport * as general from '../../../BLL/general';\nimport * as attendantsActions from '../../../actions/attendantsActions';\nimport * as authActions from '../../../actions/authActions';\n\nimport detail from '../../../css/detail.module.scss';\nimport formStyle from '../../../css/form.module.scss';\nimport style from './userForm.module.scss';\nimport '../../../css/block.scss';\nimport '../../../css/formPage.scss';\nimport '../../../css/contactto.scss';\n\nconst UserForm = (props) => {\n const {\n loadAttendants,\n attendants,\n match,\n isAdmin,\n isOwner,\n isManager,\n loggedAttendantId,\n } = props;\n const { userId } = match.params;\n const [attendant, setAttendant] = useState({\n id: 0,\n username: '',\n first_name: '',\n last_name: '',\n email: '',\n password: '',\n password2: '',\n is_active: false,\n is_staff: false,\n is_superuser: false,\n user_info: {\n mobile: '',\n country: 'BR',\n },\n groups: [3],\n });\n const [actions, setActions] = useState([\n {\n priority: 1,\n receive_sms: false,\n receive_email: false,\n },\n {\n priority: 2,\n receive_sms: false,\n receive_email: false,\n },\n {\n priority: 3,\n receive_sms: false,\n receive_email: false,\n },\n {\n priority: 4,\n receive_sms: false,\n receive_email: false,\n },\n ]);\n const [validator, setValidator] = useState({\n groups: { validate: true, message: '' },\n email: { validate: true, message: '' },\n first_name: { validate: true, message: '' },\n last_name: { validate: true, message: '' },\n password: { validate: true, message: '' },\n password2: { validate: true, message: '' },\n mobile: { validate: true, message: '' },\n country: { validate: true, message: '' },\n username: { validate: true, message: '' },\n });\n const [uniqueFields, setUniqueFields] = useState([]);\n const [showChangePasswordModal, setShowPasswordModal] = useState(false);\n const [passwordError, setPasswordError] = useState(false);\n const [showLogoutMessage, setShowLogoutMessage] = useState(false);\n const [saveError, setSaveError] = useState({\n message: '',\n code: 0,\n hasError: false,\n });\n\n useEffect(() => {\n if (props.match.params.method !== 'add' && props.match.params.method !== 'edit') {\n props.history.push('/app');\n } else if (props.match.params.method === 'edit' && !props.match.params.userId) {\n props.history.push('/app');\n }\n }, [props.match.params, props.history]);\n\n\n useEffect(() => {\n const setUpAttendant = (attendants, userId) => {\n const attendantsList = attendants[0].data;\n const { method } = match.params;\n const filteredAttendants =\n method === 'edit'\n ? attendantsList.filter(attendant => attendant.id !== parseInt(userId, 10))\n : attendantsList;\n const uniqueFields = filteredAttendants.map(atd => ({\n email: atd.email,\n username: atd.username,\n }));\n setUniqueFields(uniqueFields);\n\n if (method === 'edit') {\n const newAttendant = attendantsList.filter(a => a.id === parseInt(userId, 10))[0];\n const mobile = general.setMask(newAttendant.user_info.mobile, '(00) 0 0000-0000');\n const userInfo = Object.assign({}, newAttendant.user_info, { mobile });\n setAttendant(Object.assign(\n {},\n newAttendant,\n { user_info: userInfo },\n { password2: newAttendant.password },\n ));\n setActions([...newAttendant.actions]);\n }\n }\n\n if (attendants.length <= 0) {\n loadAttendants();\n } else {\n setUpAttendant(attendants, match.params.userId)\n }\n\n }, [attendants, loadAttendants, match.params]);\n\n const setForm = (ev) => {\n const name = ev.target.name;\n const value = ev.target.value;\n \n setFormValue({ name, value });\n setFormValidator({ name, value });\n };\n\n const setFormValue = ({ name, value }) => {\n let newAttendant = attendant;\n\n switch (name) {\n case 'groups': {\n newAttendant[name] = [value];\n break;\n }\n case 'mobile': {\n newAttendant.user_info[name] = general.CellNumber(value);\n break;\n }\n case 'country': {\n newAttendant.user_info[name] = value;\n break;\n }\n default: {\n newAttendant[name] = value;\n break;\n }\n }\n\n setAttendant(Object.assign({}, newAttendant));\n };\n\n const setFormValidator = ({ name, value }) => {\n let newValidator = validator;\n\n switch (name) {\n case 'email': {\n const validate = validateEmail(value);\n newValidator[name].validate = validate;\n if (!validate) {\n newValidator[name].message = ;\n } else if (uniqueFields.findIndex(el => el.email === value) !== -1) {\n newValidator[name].validate = false;\n newValidator[name].message = ;\n } else {\n newValidator[name].validate = true;\n newValidator[name].message = '';\n }\n break;\n }\n case 'first_name':\n case 'last_name': {\n const validate = value.length >= 2;\n newValidator[name].validate = validate;\n if (!validate) {\n newValidator[name].message = ;\n } else {\n newValidator[name].validate = true;\n newValidator[name].message = '';\n }\n break;\n }\n case 'username': {\n if (value.length < 2) {\n newValidator[name].validate = false;\n newValidator[name].message = ; \n break;\n }\n if (!usernameReg.test(value)) {\n newValidator[name].validate = false;\n newValidator[name].message =\n ;\n } else if (uniqueFields.findIndex(el => el.username === value) !== -1) {\n newValidator[name].validate = false;\n newValidator[name].message = ;\n } else {\n newValidator[name].validate = true;\n newValidator[name].message = '';\n }\n break;\n }\n case 'password': {\n const validate = value.length >= 8;\n newValidator[name].validate = validate;\n if (!validate) {\n newValidator[name].message = ;\n } else {\n const validateConfirm = value === attendant.password2;\n newValidator.password2.validate = validateConfirm;\n if (!validateConfirm) {\n newValidator.password2.message = ;\n }\n }\n break;\n }\n case 'password2': {\n const validate = value === attendant.password;\n newValidator[name].validate = validate;\n if (!validate) {\n newValidator[name].message = ;\n }\n break;\n }\n case 'mobile': {\n const validate = general.removeNonDigit(value).length === 11;\n newValidator[name].validate = validate;\n if (!validate) {\n newValidator[name].message = ;\n }\n break;\n }\n default: {\n newValidator[name].validate = true;\n break;\n }\n }\n\n setValidator(Object.assign({}, newValidator));\n };\n\n const handleActions = (event, index) => {\n const name = event.target.name;\n const value = event.target.value;\n\n setActions(actions.map((el, i) => {\n if (i === index) {\n return Object.assign({}, el, { [name]: value });\n }\n return Object.assign({}, el);\n }));\n };\n\n const processError = (err) => {\n const response = err;\n if (response) {\n const errorCode = response.status;\n let errorMsg = '';\n if (response.data) {\n const dataKey = Object.keys(response.data)[0];\n switch (dataKey) {\n case 'email': {\n errorMsg = \n break;\n }\n case 'username': {\n errorMsg = \n break;\n }\n default: {\n errorMsg = response.data[dataKey][0];\n break;\n }\n }\n }\n setSaveError({\n message: errorMsg,\n code: errorCode,\n hasError: true\n });\n }\n };\n\n const performSave = () => {\n const mobile = general.removeNonDigit(attendant.user_info.mobile, 'join');\n const userInfo = Object.assign(\n {},\n general.removeByKey(attendant.user_info, ['email', 'user', 'extension_id']),\n { mobile },\n );\n const removeFields = props.match.params.method === 'add' ? ['password2', 'id'] : ['password2'];\n const serverAttendant = Object.assign(\n {},\n general.removeByKey(attendant, removeFields),\n { groups: [attendant.groups[0]] },\n { user_info: userInfo },\n { actions },\n );\n\n const lang = !localStorage.contacttoLang ? 'pt' : localStorage.contacttoLang;\n const text = `${broadcastMessages[lang]['broadcast.attendant']} ${serverAttendant.first_name} ${serverAttendant.last_name} ${match.params.method === 'edit'\n ? broadcastMessages[lang]['broadcast.updated']\n : broadcastMessages[lang]['broadcast.added']}`;\n\n \n if (props.match.params.method === 'edit') {\n props.editAttendant(serverAttendant).then(() => {\n general.broadcast(axios, props.channelId, {\n type: 'attendant',\n method: 'edit',\n userId: loggedAttendantId,\n text,\n serverAttendant\n });\n props.history.push('/app/manage/attend');\n }).catch((err) => processError(err));\n } else {\n props.createAttendant(serverAttendant).then((res) => {\n general.broadcast(axios, props.channelId, {\n type: 'attendant',\n method: 'create',\n userId: loggedAttendantId,\n attendant: res.attendant,\n text\n });\n props.history.push('/app/manage/attend');\n }).catch((err) => processError(err));\n }\n };\n\n const changePassword = (passwords) => {\n axios.put(`https://${getDomain()}${host()}/api/password-change/`,\n passwords,\n { headers: { Authorization: `Token ${getToken()}` } })\n .then((res) => {\n setShowPasswordModal(false);\n setShowLogoutMessage(true);\n setTimeout(() => {\n logout();\n }, 3000);\n })\n .catch((err) => {\n if (err.response.data.old_password) {\n setPasswordError(true);\n }\n });\n };\n\n const logout = () => {\n props.authLogoutAndRedirect().then(() => {\n localStorage.removeItem('token');\n localStorage.removeItem('user');\n localStorage.removeItem('status');\n localStorage.removeItem('is_paid');\n props.history.push('/login');\n window.location.reload();\n });\n };\n\n const title = props.match.params.method === 'edit' ? : ;\n const saveEnable =\n attendant.user_info.mobile !== '' &&\n Object.values(attendant).every(el => el !== '') &&\n Object.values(validator).every(el => el.validate);\n let creator = '';\n let modifier = '';\n if (props.match.params.method === 'edit') {\n const attendants = props.attendants[0].data;\n creator = attendant\n ? attendants.filter(a => a.id === attendant.user_info.created_by)[0]\n : undefined;\n modifier = attendant\n ? attendants.filter(a => a.id === attendant.user_info.modified_by)[0]\n : undefined;\n }\n\n console.log(attendant);\n return (\n
\n {saveError.hasError &&\n setSaveError({ message: '', code: 0, saveError: false})}/>\n }\n {showLogoutMessage &&\n \n \n
\n }\n {showChangePasswordModal &&\n setShowPasswordModal(false)}\n wrongPassword={passwordError}\n />\n }\n {isAdmin || isManager || isOwner || loggedAttendantId === parseInt(userId, 10) \n ?
\n
\n {title}\n
\n {loggedAttendantId === parseInt(userId, 10) && match.params.method === 'edit' &&\n
\n setShowPasswordModal(true)}\n style={{ float: 'right' }}\n className={'btn btn--form btn--color-tecno'}\n >\n \n \n
\n }\n
\n
\n
\n
\n {match.params.method === 'add'\n ? }\n validator={validator.username}\n value={attendant.username}\n />\n :\n
\n
\n : \n \n {attendant.username}\n \n
\n
\n }\n {attendant.groups.length === 1 && match.params.method === 'edit' &&\n
\n
\n Login chat: \n \n {attendant.username}-{sessionStorage.getItem('activeDomain')}\n \n
\n
\n Password chat: \n \n {attendant.id}#{sessionStorage.getItem('activeDomain')}#{attendant.username}\n \n
\n
\n }\n
\n
\n }\n validator={validator.first_name}\n value={attendant.first_name}\n />\n
\n
\n }\n validator={validator.last_name}\n value={attendant.last_name}\n />\n
\n
\n
\n
\n \n
\n
\n }\n validator={validator.mobile}\n value={attendant.user_info.mobile ? attendant.user_info.mobile : ''}\n />\n
\n
\n
\n {(isAdmin || isOwner) &&\n
\n \n\n \n
\n }\n
\n \n\n \n
\n
\n
\n
\n {match.params.method === 'add' &&\n
\n
\n
\n }\n type=\"password\"\n validator={validator.password}\n value={attendant.password}\n />\n }\n type=\"password\"\n validator={validator.password2}\n value={attendant.password2}\n />\n
\n
\n }\n\n {!attendant.is_superuser &&\n
\n
\n
\n
\n
\n
\n
\n
Email
\n
SMS
\n
\n\n {actions &&\n actions.map((action, index) =>\n
\n
\n {userActionPriority(action.priority, 'fromServer')}\n
\n\n handleActions(ev, index)}\n />\n handleActions(ev, index)}\n />\n
,\n )}\n
\n
\n
\n
\n }\n {match.params.method === 'edit' &&\n
\n
LOGS
\n
\n
\n : \n \n {attendant.user_info.created_date\n ? general.formatOnlyNumbersDate(attendant.user_info.created_date)\n : '-'}\n \n
\n
\n : \n {creator\n ? {`${creator.first_name} ${creator.last_name}`}\n : - }\n
\n
\n : \n \n {attendant.user_info.modified_date\n ? general.formatOnlyNumbersDate(\n attendant.user_info.modified_date,\n )\n : '-'}\n \n
\n
\n : \n {modifier\n ? {`${modifier.first_name} ${modifier.last_name}`}\n : - }\n
\n
\n
}\n
\n \n \n \n \n {saveEnable\n ? \n \n \n \n : }\n
\n \n
\n :
\n
\n
}\n
\n );\n};\n\nUserForm.propTypes = {\n authLogoutAndRedirect: PropTypes.func.isRequired,\n lang: PropTypes.string.isRequired,\n channelId: PropTypes.string.isRequired,\n loggedAttendantId: PropTypes.number.isRequired,\n isAdmin: PropTypes.bool.isRequired,\n isOwner: PropTypes.bool,\n isManager: PropTypes.bool.isRequired,\n loadAttendants: PropTypes.func.isRequired,\n attendants: PropTypes.arrayOf(\n PropTypes.shape({\n ordering: PropTypes.string,\n data: PropTypes.arrayOf(\n PropTypes.shape({\n id: PropTypes.number,\n username: PropTypes.string,\n first_name: PropTypes.string,\n last_name: PropTypes.string,\n email: PropTypes.string,\n password: PropTypes.string,\n groups: PropTypes.arrayOf(PropTypes.number),\n is_active: PropTypes.bool,\n is_staff: PropTypes.bool,\n is_superuser: PropTypes.bool,\n user_info: PropTypes.shape({\n id: PropTypes.number,\n user: PropTypes.number,\n phone: PropTypes.string,\n mobile: PropTypes.string,\n email: PropTypes.string,\n extension_id: PropTypes.number,\n }),\n actions: PropTypes.arrayOf(\n PropTypes.shape({\n id: PropTypes.number,\n priority: PropTypes.number,\n user: PropTypes.number,\n receive_sms: PropTypes.bool,\n receive_email: PropTypes.bool,\n }),\n ),\n }),\n ),\n }),\n ).isRequired,\n};\n\nfunction mapStateToProps(state, ownProps) {\n return {\n attendants: state.attendants,\n user: state.loggedAttendant,\n channelId: ownProps.channelId,\n clearList: ownProps.clearList,\n loggedAttendantId: state.loggedAttendant.id ? state.loggedAttendant.id : 0,\n isAdmin: state.loggedAttendant.groups ? state.loggedAttendant.groups[0] === 1 : false,\n isManager: state.loggedAttendant.groups ? state.loggedAttendant.groups[0] === 2 : false,\n lang: state.locale.lang,\n };\n}\n\nfunction mapDispatchToProps(dispatch) {\n return {\n loadAttendants: _ => dispatch(attendantsActions.loadAttendants()),\n editAttendant: attendant => dispatch(attendantsActions.editAttendant(attendant)),\n createAttendant: attendant => dispatch(attendantsActions.createAttendant(attendant)),\n authLogoutAndRedirect: () => dispatch(authActions.authLogoutAndRedirect()),\n };\n}\n\nexport default connect(mapStateToProps, mapDispatchToProps)(UserForm);\n","import React, { useState, useEffect } from 'react';\nimport PropTypes from 'prop-types';\nimport { connect } from 'react-redux';\nimport axios from 'axios';\nimport { FormattedMessage } from 'react-intl';\nimport { validateEmail, usernameReg } from '../../../BLL/validate';\nimport { userActionPriority } from '../../../BLL/dictionary';\nimport { getDomain, host, getToken } from '../../../BLL/environment';\nimport InputContainer from '../../Common/InputContainer';\nimport SelectInput from '../../Common/SelectInput2'\nimport CheckboxInput from '../../Common/CheckboxInput'\nimport ModalPasswordChange from '../../Modal/ModalPasswordChange';\nimport ErrorComponent from '../../Common/ErrorComponent';\nimport broadcastMessages from '../../../BLL/locale/messagesBroadcast';\nimport countryList from '../../../BLL/locale/messagesCountries';\nimport * as general from '../../../BLL/general';\nimport * as attendantsActions from '../../../actions/attendantsActions';\nimport * as authActions from '../../../actions/authActions';\nimport * as groupsActions from '../../../actions/groupsActions';\n\nimport detail from '../../../css/detail.module.scss';\nimport formStyle from '../../../css/form.module.scss';\nimport style from './userForm.module.scss';\nimport '../../../css/block.scss';\nimport '../../../css/formPage.scss';\nimport '../../../css/contactto.scss';\n\nconst UserForm = (props) => {\n const {\n loadAttendants,\n loadCompanies,\n attendants,\n match,\n isAdmin,\n isOwner,\n isManager,\n loggedAttendantId,\n company,\n } = props;\n const { userId } = match.params;\n const [attendant, setAttendant] = useState({\n id: 0,\n username: '',\n first_name: '',\n last_name: '',\n email: '',\n password: '',\n password2: '',\n is_active: false,\n is_staff: false,\n is_superuser: false,\n user_info: {\n mobile: '',\n country: 'BR',\n },\n groups: [3],\n });\n const [actions, setActions] = useState([\n {\n priority: 1,\n receive_sms: false,\n receive_email: false,\n },\n {\n priority: 2,\n receive_sms: false,\n receive_email: false,\n },\n {\n priority: 3,\n receive_sms: false,\n receive_email: false,\n },\n {\n priority: 4,\n receive_sms: false,\n receive_email: false,\n },\n ]);\n const [validator, setValidator] = useState({\n groups: { validate: true, message: '' },\n email: { validate: true, message: '' },\n first_name: { validate: true, message: '' },\n last_name: { validate: true, message: '' },\n password: { validate: true, message: '' },\n password2: { validate: true, message: '' },\n mobile: { validate: true, message: '' },\n country: { validate: true, message: '' },\n username: { validate: true, message: '' },\n });\n const [uniqueFields, setUniqueFields] = useState([]);\n const [showChangePasswordModal, setShowPasswordModal] = useState(false);\n const [passwordError, setPasswordError] = useState(false);\n const [showLogoutMessage, setShowLogoutMessage] = useState(false);\n const [saveError, setSaveError] = useState({\n message: '',\n code: 0,\n hasError: false,\n });\n\n useEffect(() => {\n if (props.match.params.method !== 'add' && props.match.params.method !== 'edit') {\n props.history.push('/app');\n } else if (props.match.params.method === 'edit' && !props.match.params.userId) {\n props.history.push('/app');\n }\n }, [props.match.params, props.history]);\n\n useEffect(() => {\n const setUpAttendant = (attendants, userId) => {\n const attendantsList = attendants[0].data;\n const { method } = match.params;\n const filteredAttendants =\n method === 'edit'\n ? attendantsList.filter(attendant => attendant.id !== parseInt(userId, 10))\n : attendantsList;\n const uniqueFields = filteredAttendants.map(atd => ({\n email: atd.email,\n username: atd.username,\n }));\n setUniqueFields(uniqueFields);\n\n if (method === 'edit') {\n const newAttendant = attendantsList.filter(a => a.id === parseInt(userId, 10))[0];\n const mobile = general.setMask(newAttendant.user_info.mobile, '(00) 0 0000-0000');\n const userInfo = Object.assign({}, newAttendant.user_info, { mobile });\n setAttendant(Object.assign(\n {},\n newAttendant,\n { user_info: userInfo },\n { password2: newAttendant.password },\n ));\n setActions([...newAttendant.actions]);\n }\n };\n\n if (attendants.length <= 0) {\n loadAttendants();\n } else {\n setUpAttendant(attendants, match.params.userId)\n }\n\n }, [attendants, loadAttendants, match.params]);\n\n useEffect(() => {\n if (!company) {\n loadCompanies();\n }\n }, [loadCompanies, company]);\n\n const setForm = (ev) => {\n const name = ev.target.name;\n const value = ev.target.value;\n \n setFormValue({ name, value });\n setFormValidator({ name, value });\n };\n\n const setFormValue = ({ name, value }) => {\n let newAttendant = attendant;\n\n switch (name) {\n case 'groups': {\n newAttendant[name] = [value];\n break;\n }\n case 'mobile': {\n newAttendant.user_info[name] = general.CellNumber(value);\n break;\n }\n case 'country': {\n newAttendant.user_info[name] = value;\n break;\n }\n default: {\n newAttendant[name] = value;\n break;\n }\n }\n\n setAttendant(Object.assign({}, newAttendant));\n };\n\n const setFormValidator = ({ name, value }) => {\n let newValidator = validator;\n\n switch (name) {\n case 'email': {\n const validate = validateEmail(value);\n newValidator[name].validate = validate;\n if (!validate) {\n newValidator[name].message = ;\n } else if (uniqueFields.findIndex(el => el.email === value) !== -1) {\n newValidator[name].validate = false;\n newValidator[name].message = ;\n } else {\n newValidator[name].validate = true;\n newValidator[name].message = '';\n }\n break;\n }\n case 'first_name':\n case 'last_name': {\n const validate = value.length >= 2;\n newValidator[name].validate = validate;\n if (!validate) {\n newValidator[name].message = ;\n } else {\n newValidator[name].validate = true;\n newValidator[name].message = '';\n }\n break;\n }\n case 'username': {\n if (value.length < 2) {\n newValidator[name].validate = false;\n newValidator[name].message = ; \n break;\n }\n if (!usernameReg.test(value)) {\n newValidator[name].validate = false;\n newValidator[name].message =\n ;\n } else if (uniqueFields.findIndex(el => el.username === value) !== -1) {\n newValidator[name].validate = false;\n newValidator[name].message = ;\n } else {\n newValidator[name].validate = true;\n newValidator[name].message = '';\n }\n break;\n }\n case 'password': {\n const validate = value.length >= 8;\n newValidator[name].validate = validate;\n if (!validate) {\n newValidator[name].message = ;\n } else {\n const validateConfirm = value === attendant.password2;\n newValidator.password2.validate = validateConfirm;\n if (!validateConfirm) {\n newValidator.password2.message = ;\n }\n }\n break;\n }\n case 'password2': {\n const validate = value === attendant.password;\n newValidator[name].validate = validate;\n if (!validate) {\n newValidator[name].message = ;\n }\n break;\n }\n case 'mobile': {\n const validate = general.removeNonDigit(value).length === 11;\n newValidator[name].validate = validate;\n if (!validate) {\n newValidator[name].message = ;\n }\n break;\n }\n default: {\n newValidator[name].validate = true;\n break;\n }\n }\n\n setValidator(Object.assign({}, newValidator));\n };\n\n const handleActions = (event, index) => {\n const name = event.target.name;\n const value = event.target.value;\n\n setActions(actions.map((el, i) => {\n if (i === index) {\n return Object.assign({}, el, { [name]: value });\n }\n return Object.assign({}, el);\n }));\n };\n\n const processError = (err) => {\n const response = err;\n if (response) {\n const errorCode = response.status;\n let errorMsg = '';\n if (response.data) {\n const dataKey = Object.keys(response.data)[0];\n switch (dataKey) {\n case 'email': {\n errorMsg = \n break;\n }\n case 'username': {\n errorMsg = \n break;\n }\n default: {\n errorMsg = response.data[dataKey][0];\n break;\n }\n }\n }\n setSaveError({\n message: errorMsg,\n code: errorCode,\n hasError: true\n });\n }\n };\n\n const performSave = () => {\n const mobile = general.removeNonDigit(attendant.user_info.mobile, 'join');\n const userInfo = Object.assign(\n {},\n general.removeByKey(attendant.user_info, ['email', 'user', 'extension_id']),\n { mobile },\n );\n const removeFields = props.match.params.method === 'add' ? ['password2', 'id'] : ['password2'];\n const serverAttendant = Object.assign(\n {},\n general.removeByKey(attendant, removeFields),\n { groups: [1, company.id] }, // If company user is adding, this will not be used, check serializer\n { user_info: userInfo },\n { actions },\n );\n\n const lang = !localStorage.contacttoLang ? 'pt' : localStorage.contacttoLang;\n const text = `${broadcastMessages[lang]['broadcast.attendant']} ${serverAttendant.first_name} ${serverAttendant.last_name} ${match.params.method === 'edit'\n ? broadcastMessages[lang]['broadcast.updated']\n : broadcastMessages[lang]['broadcast.added']}`;\n\n \n if (props.match.params.method === 'edit') {\n props.editAttendant(serverAttendant).then(() => {\n general.broadcast(axios, props.channelId, {\n type: 'attendant',\n method: 'edit',\n userId: loggedAttendantId,\n text,\n serverAttendant\n });\n props.history.push('/app/manage/companies');\n }).catch((err) => processError(err));\n } else {\n props.createAttendant(serverAttendant).then((res) => {\n general.broadcast(axios, props.channelId, {\n type: 'attendant',\n method: 'create',\n userId: loggedAttendantId,\n attendant: res.attendant,\n text\n });\n props.history.push('/app/manage/companies');\n }).catch((err) => processError(err));\n }\n };\n\n const changePassword = (passwords) => {\n axios.put(`https://${getDomain()}${host()}/api/password-change/`,\n passwords,\n { headers: { Authorization: `Token ${getToken()}` } })\n .then((res) => {\n setShowPasswordModal(false);\n setShowLogoutMessage(true);\n setTimeout(() => {\n logout();\n }, 3000);\n })\n .catch((err) => {\n if (err.response.data.old_password) {\n setPasswordError(true);\n }\n });\n };\n\n const logout = () => {\n props.authLogoutAndRedirect().then(() => {\n localStorage.removeItem('token');\n localStorage.removeItem('user');\n localStorage.removeItem('status');\n localStorage.removeItem('is_paid');\n props.history.push('/login');\n window.location.reload();\n });\n };\n\n const title = props.match.params.method === 'edit' ? : ;\n const saveEnable =\n attendant.user_info.mobile !== '' &&\n Object.values(attendant).every(el => el !== '') &&\n Object.values(validator).every(el => el.validate);\n let creator = '';\n let modifier = '';\n if (props.match.params.method === 'edit') {\n const attendants = props.attendants[0].data;\n creator = attendant\n ? attendants.filter(a => a.id === attendant.user_info.created_by)[0]\n : undefined;\n modifier = attendant\n ? attendants.filter(a => a.id === attendant.user_info.modified_by)[0]\n : undefined;\n }\n\n return (\n
\n {saveError.hasError &&\n setSaveError({ message: '', code: 0, saveError: false})}/>\n }\n {showLogoutMessage &&\n \n \n
\n }\n {showChangePasswordModal &&\n setShowPasswordModal(false)}\n wrongPassword={passwordError}\n />\n }\n {isAdmin || isManager || isOwner || loggedAttendantId === parseInt(userId, 10) \n ?
\n
\n {title}\n
\n {loggedAttendantId === parseInt(userId, 10) && match.params.method === 'edit' &&\n
\n setShowPasswordModal(true)}\n style={{ float: 'right' }}\n className={'btn btn--form btn--color-tecno'}\n >\n \n \n
\n }\n
\n
\n
\n
\n {match.params.method === 'add'\n ? }\n validator={validator.username}\n value={attendant.username}\n />\n :
\n : \n \n {attendant.username}\n \n
\n }\n
\n
\n }\n validator={validator.first_name}\n value={attendant.first_name}\n />\n
\n
\n }\n validator={validator.last_name}\n value={attendant.last_name}\n />\n
\n
\n
\n
\n \n
\n
\n }\n validator={validator.mobile}\n value={attendant.user_info.mobile ? attendant.user_info.mobile : ''}\n />\n
\n
\n
\n
\n \n\n \n
\n
\n
\n
\n {match.params.method === 'add' &&\n
\n
\n
\n }\n type=\"password\"\n validator={validator.password}\n value={attendant.password}\n />\n }\n type=\"password\"\n validator={validator.password2}\n value={attendant.password2}\n />\n
\n
\n }\n\n {!attendant.is_superuser &&\n
\n
\n
\n
\n
\n
\n
\n
Email
\n
SMS
\n
\n\n {actions &&\n actions.map((action, index) =>\n
\n
\n {userActionPriority(action.priority, 'fromServer')}\n
\n\n handleActions(ev, index)}\n />\n handleActions(ev, index)}\n />\n
,\n )}\n
\n
\n
\n
\n }\n {match.params.method === 'edit' &&\n
\n
LOGS
\n
\n
\n : \n \n {attendant.user_info.created_date\n ? general.formatOnlyNumbersDate(attendant.user_info.created_date)\n : '-'}\n \n
\n
\n : \n {creator\n ? {`${creator.first_name} ${creator.last_name}`}\n : - }\n
\n
\n : \n \n {attendant.user_info.modified_date\n ? general.formatOnlyNumbersDate(\n attendant.user_info.modified_date,\n )\n : '-'}\n \n
\n
\n : \n {modifier\n ? {`${modifier.first_name} ${modifier.last_name}`}\n : - }\n
\n
\n
}\n
\n \n \n \n \n {saveEnable\n ? \n \n \n \n : }\n
\n \n
\n :
\n
\n
}\n
\n );\n};\n\nUserForm.propTypes = {\n authLogoutAndRedirect: PropTypes.func.isRequired,\n lang: PropTypes.string.isRequired,\n channelId: PropTypes.string.isRequired,\n loggedAttendantId: PropTypes.number.isRequired,\n isAdmin: PropTypes.bool.isRequired,\n isOwner: PropTypes.bool,\n isManager: PropTypes.bool.isRequired,\n loadAttendants: PropTypes.func.isRequired,\n loadCompanies: PropTypes.func.isRequired,\n attendants: PropTypes.arrayOf(\n PropTypes.shape({\n ordering: PropTypes.string,\n data: PropTypes.arrayOf(\n PropTypes.shape({\n id: PropTypes.number,\n username: PropTypes.string,\n first_name: PropTypes.string,\n last_name: PropTypes.string,\n email: PropTypes.string,\n password: PropTypes.string,\n groups: PropTypes.arrayOf(PropTypes.number),\n is_active: PropTypes.bool,\n is_staff: PropTypes.bool,\n is_superuser: PropTypes.bool,\n user_info: PropTypes.shape({\n id: PropTypes.number,\n user: PropTypes.number,\n phone: PropTypes.string,\n mobile: PropTypes.string,\n email: PropTypes.string,\n extension_id: PropTypes.number,\n }),\n actions: PropTypes.arrayOf(\n PropTypes.shape({\n id: PropTypes.number,\n priority: PropTypes.number,\n user: PropTypes.number,\n receive_sms: PropTypes.bool,\n receive_email: PropTypes.bool,\n }),\n ),\n }),\n ),\n }),\n ).isRequired,\n company: PropTypes.shape({\n id: PropTypes.number,\n name: PropTypes.string,\n user_set: PropTypes.arrayOf(\n PropTypes.shape({\n id: PropTypes.number,\n is_active: PropTypes.bool,\n first_name: PropTypes.string,\n last_name: PropTypes.string,\n email: PropTypes.string,\n groups: PropTypes.arrayOf(\n PropTypes.number,\n ),\n }),\n ),\n }).isRequired,\n};\n\nfunction mapStateToProps(state, ownProps) {\n return {\n attendants: state.attendants,\n user: state.loggedAttendant,\n channelId: ownProps.channelId,\n clearList: ownProps.clearList,\n loggedAttendantId: state.loggedAttendant.id ? state.loggedAttendant.id : 0,\n isAdmin: state.loggedAttendant.groups ? state.loggedAttendant.groups[0] === 1 : false,\n isManager: state.loggedAttendant.groups ? state.loggedAttendant.groups[0] === 2 : false,\n lang: state.locale.lang,\n company: state.groups.filter(grp => ![1, 2, 3, 4].includes(grp.id))\n .find(company => company.id === parseInt(ownProps.match.params.companyId, 10)),\n };\n}\n\nfunction mapDispatchToProps(dispatch) {\n return {\n loadAttendants: _ => dispatch(attendantsActions.loadAttendants()),\n editAttendant: attendant => dispatch(attendantsActions.editAttendant(attendant)),\n createAttendant: attendant => dispatch(attendantsActions.createAttendant(attendant)),\n authLogoutAndRedirect: () => dispatch(authActions.authLogoutAndRedirect()),\n loadCompanies: () => dispatch(groupsActions.loadGroups()),\n };\n}\n\nexport default connect(mapStateToProps, mapDispatchToProps)(UserForm);\n","import React, { useState, useEffect } from 'react';\nimport PropTypes from 'prop-types';\nimport { connect } from 'react-redux';\nimport axios from 'axios';\nimport { FormattedMessage } from 'react-intl';\nimport TextInput from '../../../Common/TextInputV2';\nimport SelectInput from '../../../Common/SelectInput2';\nimport broadcastMessages from '../../../../BLL/locale/messagesBroadcast';\nimport { broadcast } from '../../../../BLL/general';\nimport { actionPriority, alarmNameLang, userActionPriority } from '../../../../BLL/dictionary';\nimport * as alarmsActions from '../../../../actions/alarmsActions';\n\nimport '../../../../css/error.scss';\nimport '../../../../css/formPage.scss';\nimport '../../../../css/block.scss';\n\nconst AlarmForm = (props) => {\n const loadAlarms = props.loadAlarms;\n const method = props.match.params.method;\n const alarmId = props.match.params.alarmId;\n const [alarm, setAlarmObject] = useState({\n name: '',\n code: '',\n type: 'CID',\n priority: 0,\n is_original: false\n });\n const [alarmList, setAlarmList] = useState([]);\n const [validator, setValidator] = useState({\n name: method === 'edit',\n code: method === 'edit',\n type: true,\n priority: method === 'edit',\n is_original: true,\n });\n\n useEffect(() => {\n const setAlarm = (alarms) => {\n if (!!alarms && !!alarms.data) {\n const filteredAlarms = method === 'edit'\n ? alarms.data.filter(alarm => alarm.id !== parseInt(alarmId, 10))\n : alarms.data;\n const codesList = filteredAlarms.map(alrm => alrm.code);\n setAlarmList(codesList);\n if (method === 'edit') {\n const newAlarm = alarms.data.find(alrm => alrm.id === parseInt(alarmId, 10));\n setAlarmObject(Object.assign({}, newAlarm));\n }\n }\n };\n\n if (props.alarms.length === 0) {\n loadAlarms();\n } else {\n setAlarm(props.alarms[0]);\n }\n }, [props.alarms, loadAlarms, alarmId, method]);\n\n const handleChange = (ev, isValid) => {\n const field = ev.target.name;\n const value = ev.target.value;\n if (field === 'priority') {\n setAlarmObject(Object.assign({}, alarm, { [field]: userActionPriority(value, 'toServer') }));\n } else {\n setAlarmObject(Object.assign({}, alarm, { [field]: value }));\n }\n setValidator(Object.assign({}, validator, { [field]: isValid }));\n };\n\n const validateCode = (value) => {\n const arr = value.split('');\n const val = arr.filter(el => /\\d/.test(el)).join('');\n if (val !== value) {\n return val;\n } else if (alarmList.indexOf(val) === -1) {\n return true;\n }\n return [false, 'Número de código já existente'];\n };\n\n const isFormValid = () => {\n return Object.keys(validator).every(elm => validator[elm] === true);\n };\n\n const saveAlarm = () => {\n const lang = !localStorage.contacttoLang ? 'pt' : localStorage.contacttoLang;\n const text = `${broadcastMessages[lang]['broadcast.alarm']} (${alarm.code}) ${alarm.name} ${\n method === 'edit' ? broadcastMessages[lang]['broadcast.updated'] : broadcastMessages[lang]['broadcast.added']}`;\n if (method === 'edit') {\n props.editAlarm(alarm).then(() => {\n broadcast(axios, props.channelId, {\n type: 'alarm',\n method: 'edit',\n userId: props.user.id,\n text,\n alarm\n });\n props.history.push('/app/manage/alarms');\n });\n } else {\n props.createAlarm(alarm).then((res) => {\n broadcast(axios, props.channelId, {\n type: 'alarm',\n method: 'create',\n userId: props.user.id,\n alarm: res.alarm,\n text\n });\n props.history.push('/app/manage/alarms');\n });\n }\n };\n\n const canSave = isFormValid();\n const title = method === 'edit'\n ? \n : ;\n const disabled = alarm.is_original ? 'disabled' : '';\n\n return (\n
\n
\n
{title}
\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 saveAlarm()}\n className={`btn btn--form col-6 ${canSave ? 'btn--color-green' : 'btn--color-invalid'}`}\n >\n \n \n \n
\n \n
\n
\n )\n};\n\nAlarmForm.propTypes = {\n user: PropTypes.shape({\n id: PropTypes.number,\n }),\n alarms: PropTypes.arrayOf(\n PropTypes.shape({\n ordering: PropTypes.string,\n data: PropTypes.arrayOf(\n PropTypes.shape({\n id: PropTypes.number,\n name: PropTypes.string,\n code: PropTypes.string,\n type: PropTypes.string,\n priority: PropTypes.number,\n is_original: PropTypes.bool,\n is_deleted: PropTypes.bool,\n created_date: PropTypes.string,\n modified_date: PropTypes.string,\n created_by: PropTypes.number,\n modified_by: PropTypes.number,\n }),\n ),\n }),\n ).isRequired,\n channelId: PropTypes.string.isRequired,\n loadAlarms: PropTypes.func.isRequired,\n saveAlarm: PropTypes.func.isRequired,\n};\n\nfunction mapStateToProps(state, ownProps) {\n return {\n alarms: state.alarms,\n user: state.loggedAttendant,\n params: ownProps.params,\n };\n}\n\nfunction mapDispatchToProps(dispatch) {\n return {\n loadAlarms: params => dispatch(alarmsActions.loadAlarms(params)),\n editAlarm: alarm => dispatch(alarmsActions.editAlarm(alarm)),\n createAlarm: alarm => dispatch(alarmsActions.createAlarm(alarm)),\n };\n}\n\nexport default connect(mapStateToProps, mapDispatchToProps)(AlarmForm);\n","import React, { useState, useEffect } from 'react';\nimport PropTypes from 'prop-types';\nimport { connect } from 'react-redux';\nimport { FormattedMessage } from 'react-intl';\nimport { companyReg } from '../../../../BLL/validate';\nimport TextInput from '../../../Common/TextInputV2';\nimport InputContainer from '../../../Common/InputContainer';\nimport ErrorComponent from '../../../Common/ErrorComponent';\nimport * as groupsActions from '../../../../actions/groupsActions';\n\nimport '../../../../css/error.scss';\nimport '../../../../css/formPage.scss';\nimport '../../../../css/block.scss';\nimport style from './companyForm.module.scss';\n\nconst NUMBERS_REGEX = /^[0-9]+$/;\n\nconst CompanyForm = (props) => {\n const {\n companies,\n loadCompanies,\n match,\n loggedAttendant\n } = props;\n\n const isCompanyAdm = companies.some(company => loggedAttendant.groups.includes(company.id));\n\n const [companyId, setCompanyId] = useState(0);\n const [companyName, setCompanyName] = useState('');\n const [clientValue, setClientValue] = useState('31.50')\n const [rangeList, setRangeList] = useState([]);\n const [rangeValidatorList, setRangeValidatorList] = useState([]);\n const [companyNameList, setCompanyNameList] = useState([]);\n const [validator, setValidator] = useState({\n companyName: match.params.method === 'edit',\n });\n const [error, setError] = useState(false);\n const [errorMsg, setErrorMsg] = useState('');\n const [errorCode, setErrorCode] = useState(0);\n\n useEffect(() => {\n if (companies.length <= 0) {\n loadCompanies();\n }\n }, [companies, loadCompanies]);\n\n useEffect(() => {\n if(companies) {\n setCompanyNameList(companies.map(company => company.name));\n }\n\n if (match.params.method === 'edit') {\n const company = companies.find(cmpny => cmpny.id === parseInt(match.params.companyId, 10));\n setCompanyName(company.name);\n if (company.range_list.length > 0) {\n setRangeList(company.range_list);\n setRangeValidatorList(company.range_list.map(() => ({\n max_account: { validate: true, message: ''},\n min_account: { validate: true, message: '' }\n })));\n }\n\n if (company?.client_value?.value) {\n setClientValue(company.client_value.value);\n }\n\n setCompanyId(parseInt(match.params.companyId));\n }\n }, [companies, match.params.companyId, match.params.method]);\n\n const handleChange = (ev, isValid) => {\n // const field = ev.target.name;\n const value = ev.target.value;\n const name = ev.target.name;\n console.log('HANDLE CHANGE')\n console.log(ev.target.name);\n switch (name) {\n case 'companyName': {\n if (!companyReg.test(value)) {\n setCompanyName(value);\n setValidator({\n companyName: false\n });\n } else {\n setCompanyName(value);\n setValidator({\n companyName: isValid\n });\n }\n break;\n }\n case 'clientValue': {\n setClientValue(value);\n break;\n }\n default:\n break;\n }\n \n };\n\n const validateName = (value) => {\n if (value.length <= 2) {\n return [false, ''];\n }\n return !companyNameList.includes(value);\n };\n\n const isFormValid = () => {\n return Object.keys(validator).every(el => validator[el] === true);\n };\n\n const convertDataToServer = () => {\n const company = {\n id: companyId,\n name: companyName,\n range_list: rangeList,\n client_value: {\n value: clientValue\n }\n };\n return company;\n };\n\n const saveCompany = () => {\n props.saveCompany(convertDataToServer()).then(() => {\n props.history.push('/app/manage/companies');\n }).catch((err) => {\n const data = err.data;\n const dataKey = data ? Object.keys(data)[0] : undefined;\n switch (dataKey) {\n case 'minMax': {\n setErrorMsg();\n setError(true);\n setErrorCode(400);\n break;\n }\n case 'noMinOrMax': {\n setErrorMsg();\n setError(true);\n setErrorCode(400);\n break;\n }\n case 'rangeUsed': {\n setErrorMsg();\n setError(true);\n setErrorCode(400);\n break;\n }\n default:\n break;\n\n }\n console.log(err);\n });\n };\n\n const handleRange = (ev, index) => {\n const attribute = ev.target.name.split('-')[0];\n const value = ev.target.value;\n\n const newRangeList = rangeList.map((el, i) => {\n if (i === index) {\n return Object.assign({}, el, { [attribute]: value });\n }\n return Object.assign({}, el);\n });\n\n const newRangeValidatorList = rangeValidatorList.map((validator, i) => {\n if (i === index) {\n let isValid = true;\n let message = '';\n if (value.length < 4) {\n isValid = false;\n message = 'Uma conta necessita de 4 caracteres numéricos';\n }\n if (!NUMBERS_REGEX.test(value)) {\n isValid = false;\n message = 'Apenas números são aceitos';\n }\n return Object.assign({}, validator, {\n [attribute]: { validate: isValid, message }\n });\n }\n return Object.assign({}, validator);\n });\n\n setRangeValidatorList(newRangeValidatorList);\n setRangeList(newRangeList);\n };\n\n const addRange = () => {\n setRangeList([...rangeList, { min_account: '', max_account: '' }]);\n setRangeValidatorList([...rangeValidatorList, {\n max_account: { validate: true, message: ''},\n min_account: { validate: true, message: '' }\n }]);\n };\n\n const removeRange = (ev, index) => {\n ev.preventDefault();\n setRangeList([...rangeList.slice(0, index), ...rangeList.slice(index + 1)]);\n setRangeValidatorList([\n ...rangeValidatorList.slice(0, index),\n ...rangeValidatorList.slice(index + 1)\n ]);\n };\n\n const closeErrorModal = () => {\n setError(false);\n setErrorMsg('');\n setErrorCode(0);\n };\n\n const activeSaveBtn = isFormValid();\n const title = match.params.method === 'edit' ? : ;\n\n console.log(companies);\n\n return (\n
\n {error &&\n \n }\n
\n
\n
{title}
\n
\n
\n
\n
\n
\n \n \n
\n
\n
\n {!isCompanyAdm &&\n
\n
\n \n \n
\n
\n
\n }\n
\n {!isCompanyAdm &&\n
\n
\n {rangeList?.map((el, index) => \n
\n
\n }\n value={el.min_account}\n validator={rangeValidatorList[index].min_account}\n onChange={(ev) => handleRange(ev, index)}\n />\n
\n
\n }\n value={el.max_account}\n validator={rangeValidatorList[index].max_account}\n onChange={(ev) => handleRange(ev, index)}\n />\n
\n
\n \n
\n
\n )}\n
\n
\n
\n \n
\n
\n
\n }\n
\n \n {activeSaveBtn ?\n \n :\n \n }\n
\n \n
\n
\n
\n );\n};\n\nCompanyForm.propTypes = {\n loadCompanies: PropTypes.func.isRequired,\n saveCompany: PropTypes.func.isRequired,\n params: PropTypes.shape({\n companyId: PropTypes.string,\n method: PropTypes.string.isRequired,\n }).isRequired,\n companies: PropTypes.arrayOf(\n PropTypes.shape({\n id: PropTypes.number,\n name: PropTypes.string,\n user_set: PropTypes.arrayOf(\n PropTypes.shape({\n id: PropTypes.number,\n is_active: PropTypes.bool,\n first_name: PropTypes.string,\n last_name: PropTypes.string,\n email: PropTypes.string,\n groups: PropTypes.arrayOf(\n PropTypes.number,\n ),\n }),\n ),\n }),\n ).isRequired,\n};\n\nfunction mapStateToProps(state, ownProps) {\n return {\n companies: state.groups.filter(grp => ![1, 2, 3, 4].includes(grp.id)),\n params: ownProps.params,\n loggedAttendant: state.loggedAttendant,\n };\n}\n\nfunction mapDispatchToProps(dispatch) {\n return {\n loadCompanies: () => dispatch(groupsActions.loadGroups()),\n saveCompany: company => dispatch(groupsActions.saveGroup(company)),\n };\n}\n\nexport default connect(mapStateToProps, mapDispatchToProps)(CompanyForm);\n","import React from 'react';\nimport PropTypes from 'prop-types';\nimport style from './modalZoneInfo.module.scss';\n\nconst ModalZoneInfo = (props) => (\n
\n
\n
Aviso
\n
\n
Você está alterando a forma com que os alarmes se comportam no sistema.
\n
Utilizando esta opção, o som e a cor do alarme apresentado na tela, serão definidos pelas zonas de 1 a 4
\n
Zona 1 -> cor Azul, som secundário
\n
Zona 2 -> cor Verde, som secundário
\n
Zona 3 -> cor Amarela, som secundário
\n
Zona 4 -> cor Vermelha, som primário
\n
A partir da Zona 5, as cores começam a se repetir na ordem que estão apresentadas acima (azul, verde, amarela e vermelha).
\n
Estas cores apenas aparecerão para os alarmes de Sensor de Emergência (código 101). Os demais alarmes aparecerão com uma cor Cinza.
\n
\n
\n \n
\n);\n\nModalZoneInfo.defaultProps = {\n height: '',\n testId: ''\n};\n\nModalZoneInfo.propTypes = {\n btnText: PropTypes.string.isRequired,\n btnAction: PropTypes.func.isRequired,\n height: PropTypes.string,\n testId: PropTypes.string,\n};\n\nexport default ModalZoneInfo;\n","import React, { useState, useEffect } from 'react';\nimport PropTypes from 'prop-types';\nimport { useSelector } from 'react-redux';\nimport axios from 'axios';\nimport { FormattedMessage } from 'react-intl';\nimport { getDomain, host, getToken } from '../../../BLL/environment';\nimport ToggleButton from '../../Common/ToggleButton';\nimport CustomModal from '../../Modal/CustomModal';\nimport ModalZoneInfo from '../../Modal/ModalZoneInfo';\nimport { broadcast } from '../../../BLL/general';\nimport broadcastMessages from '../../../BLL/locale/messagesBroadcast';\n\nimport style from './configuration.module.scss';\n\nconst AdministratorOptions = (props) => (\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 {props.isOwner &&\n <>\n
\n \n
\n \n
\n
\n
\n
\n \n
\n \n
\n
\n
\n \n }\n
\n
\n);\n\nconst LocalOptions = (props) => (\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\nconst EchoTest = (props) => (\n
\n
\n \n \n \n
\n
\n
\n \n
\n {props.echoCall ?\n \n :\n \n }\n
\n
\n
\n
\n
\n);\n\nconst Configuration = (props) => {\n const loggedAttendant = useSelector(state => state.loggedAttendant);\n const configurationLocal = useSelector(state => state.localConfiguration.local);\n const configurationGlobal = useSelector(state => state.globalConfiguration.global);\n\n const [viewClosedAttends, setViewClosedAttends] = useState(false);\n const [viewAttendSummary, setViewAttendSummary] = useState(false);\n const [viewAttendantList, setViewAttendantList] = useState(false);\n const [viewContactList, setViewContactList] = useState(false);\n const [viewIcons, setViewIcons] = useState(false);\n const [playSecondaryAlarmSounds, setPlaySecondaryAlarmSounds] = useState(false);\n const [automaticAlarmClosing, setAutoCloseAlarms] = useState(false);\n const [useAlarmZones, setUseAlarmZones] = useState(false);\n const [showConfigEndModal, setShowConfigEndModal] = useState(false);\n const [showZoneInfoModal, setShowZoneInfoModal] = useState(false);\n const [echoCall, setEchoCall] = useState(false);\n const [modalText, setModalText] = useState('');\n\n useEffect(() => {\n if (configurationLocal) {\n setViewClosedAttends(configurationLocal.last_attends);\n setViewAttendSummary(configurationLocal.attends_quantity);\n }\n }, [configurationLocal]);\n\n useEffect(() => {\n if (configurationGlobal) {\n setViewIcons(configurationGlobal.show_icons);\n setViewAttendantList(configurationGlobal.attendant_list);\n setViewContactList(configurationGlobal.contacts_list);\n setPlaySecondaryAlarmSounds(configurationGlobal.secondary_alarm_sound);\n setAutoCloseAlarms(configurationGlobal.automatic_alarm_closing);\n setUseAlarmZones(configurationGlobal.use_alarm_zones);\n }\n }, [configurationGlobal]);\n\n const handleAlarmZonesChange = () => {\n if (!useAlarmZones) {\n setShowZoneInfoModal(true);\n }\n setUseAlarmZones(!useAlarmZones);\n };\n\n const handleEchoTestCall = () => {\n setEchoCall(true);\n props.testEchoSip();\n };\n\n const handleEchoTestHangup = () => {\n setEchoCall(false);\n props.hangupSip()\n };\n\n const makeUpdate = () => {\n if (!viewAttendantList && !viewContactList) {\n setModalText();\n setShowConfigEndModal(true);\n return;\n }\n\n updateGlobalConfig();\n };\n\n const updateGlobalConfig = () => {\n const data = {\n attendant_list: viewAttendantList,\n contacts_list: viewContactList,\n show_icons: viewIcons,\n secondary_alarm_sound: playSecondaryAlarmSounds,\n automatic_alarm_closing: automaticAlarmClosing,\n use_alarm_zones: useAlarmZones,\n }\n axios.put(\n `https://${getDomain()}${host()}/api/global-config/`,\n JSON.stringify(data), \n { \n headers: {\n Accept: 'application/json',\n 'Content-Type': 'application/json',\n Authorization: `Token ${getToken()}`,\n },\n }\n ).then(() => {\n updateLocalConfig();\n }).catch((err) => {\n console.log(err);\n setModalText();\n setShowConfigEndModal(true);\n });\n };\n\n const updateLocalConfig = () => {\n const lang = !localStorage.contacttoLang ? 'pt' : localStorage.contacttoLang;\n const data = {\n last_attends: viewClosedAttends,\n attends_quantity: viewAttendSummary\n }\n axios.put(\n `https://${getDomain()}${host()}/api/dashboard-config/${loggedAttendant.id}/`,\n JSON.stringify(data),\n { \n headers: {\n Accept: 'application/json',\n 'Content-Type': 'application/json',\n Authorization: `Token ${getToken()}`,\n },\n }\n ).then(() => {\n setModalText()\n setShowConfigEndModal(true);\n broadcast(axios, props.channelId, {\n type: 'config',\n update: 'configurations',\n localConfiguration: configurationLocal,\n globalConfiguration:configurationGlobal,\n text: broadcastMessages[lang]['broadcast.settingsChanged'],\n });\n }).catch((err) => {\n console.log(err);\n setModalText();\n setShowConfigEndModal(true);\n });\n };\n\n return (\n
\n
\n
\n { setShowZoneInfoModal(false) }} />\n
\n
\n { setShowConfigEndModal(false) }}\n />\n
\n setViewClosedAttends(!viewClosedAttends)}\n handleAttendsSummaryChange={() => setViewAttendSummary(!viewAttendSummary)}\n />\n {(props.isAdmin || props.isOwner) && (loggedAttendant.groups.length === 1) &&\n setViewAttendantList(!viewAttendantList)}\n handleContactChange={() => setViewContactList(!viewContactList)}\n handleViewIconsChange={() => setViewIcons(!viewIcons)}\n handleSecondaryAlarmSoundsChange={() => setPlaySecondaryAlarmSounds(!playSecondaryAlarmSounds)}\n handleAutomaticAlarmClosing={() => setAutoCloseAlarms(!automaticAlarmClosing)}\n handleUseAlarmZonesChange={handleAlarmZonesChange}\n />\n }\n \n
\n makeUpdate()}\n >\n \n \n \n \n \n
\n
\n
\n )\n\n}\n\nConfiguration.propTypes = {\n channelId: PropTypes.string.isRequired,\n isAdmin: PropTypes.bool.isRequired,\n isOwner: PropTypes.bool.isRequired,\n testEchoSip: PropTypes.func.isRequired,\n hangupSip: PropTypes.func.isRequired,\n};\n\nexport default Configuration;\n","import React from 'react';\nimport PropTypes from 'prop-types';\nimport { DateRangePicker, START_DATE } from 'react-dates';\nimport messages from '../../../BLL/locale/messages';\nimport 'react-dates/lib/css/_datepicker.css';\n\nclass DateRangePickerWrapper extends React.Component {\n constructor(props) {\n super(props);\n this.state = {\n focusedInput: START_DATE,\n startDate: null,\n endDate: null,\n resetDate: this.props.resetDate,\n };\n\n this.onDatesChange = this.onDatesChange.bind(this);\n this.onFocusChange = this.onFocusChange.bind(this);\n }\n\n UNSAFE_componentWillReceiveProps({ resetDate }) {\n if (resetDate !== this.props.resetDate && resetDate === true) {\n this.setState({\n startDate: null,\n endDate: null,\n });\n }\n }\n\n onDatesChange({ startDate, endDate }) {\n this.props.setDate(startDate, endDate);\n this.setState({ startDate, endDate });\n }\n\n onFocusChange(focusedInput) {\n this.props.focusedInput(focusedInput);\n this.setState({ focusedInput });\n }\n\n render() {\n const { focusedInput, startDate, endDate, resetDate } = this.state;\n const localStyle = {\n width: 'auto',\n };\n const lang = !localStorage.contacttoLang ? 'pt' : localStorage.contacttoLang;\n const style = Object.assign({}, localStyle, this.props.style);\n return (\n
\n false}\n minimumNights={0}\n orientation={this.props.orientation}\n daySize={35}\n className=\"daterangepicker-container\"\n />\n
\n );\n }\n}\n\nDateRangePickerWrapper.defaultProps = {\n setDate: () => {},\n resetDate: false,\n orientation: 'horizontal',\n focusedInput: () => {},\n style: {},\n};\n\nDateRangePickerWrapper.propTypes = {\n setDate: PropTypes.func,\n resetDate: PropTypes.bool,\n orientation: PropTypes.string,\n focusedInput: PropTypes.func,\n style: PropTypes.shape({\n color: PropTypes.string,\n })\n};\n\nexport default DateRangePickerWrapper;\n","import React from 'react';\nimport PropTypes from 'prop-types';\nimport { Link } from 'react-router-dom';\nimport style from './reportButtonComponent.module.scss';\n\nconst Button = ({ text, url }) => (\n \n {text}\n \n);\n\nButton.defaultProps = {\n url: '/',\n text: 'botão',\n};\n\nButton.propTypes = {\n url: PropTypes.string,\n text: PropTypes.object,\n};\n\nexport default Button;\n","import React, { useState, useEffect } from 'react';\nimport PropTypes from 'prop-types';\nimport moment from 'moment';\nimport Select from 'react-select';\nimport { FormattedMessage } from 'react-intl';\nimport DateRangePickerWrapper from '../ReportDateWrapper';\nimport ReportButton from '../ReportButtonComponent';\nimport { alarmPriorityLang, alarmNameLang } from '../../../../BLL/dictionary';\n\nimport style from '../reportComponent.module.scss';\n\nconst AlarmComponent = (props) => {\n const [alarms, setAlarms] = useState([]);\n const [alarmsOptions, setAlarmsOptions] = useState([]);\n const [priority, setPriority] = useState('');\n const [alarmCode, setAlarmCode] = useState(',');\n const [url, setUrl] = useState('');\n const [urlDate, setUrlDate] = useState('');\n const [focusedInput, setFocusedInput] = useState(null);\n const [selectFocus, setSelectFocus] = useState(false);\n const [priorityFocus, setPriorityFocus] = useState(false);\n const priorityOptions = [\n { value: '1', label: alarmPriorityLang(1) },\n { value: '2', label: alarmPriorityLang(2) },\n { value: '3', label: alarmPriorityLang(3) },\n { value: '4', label: alarmPriorityLang(4) },\n { value: 'all', label: alarmPriorityLang('all') },\n ];\n\n useEffect(() => {\n if (props.alarms.length > 0) {\n setAlarms(props.alarms);\n }\n }, [props.alarms]);\n\n useEffect(() => {\n if (alarms.length > 0) {\n const filteredAlarms = alarms.filter(al => al.code !== '606');\n setAlarmsOptions(filteredAlarms.map(alarm => ({\n value: alarm.code,\n label: `(${alarm.code}) ${alarmNameLang(alarm)}`,\n name: `(${alarm.code}) ${alarmNameLang(alarm)}`,\n })));\n }\n }, [alarms]);\n\n const setDate = (startDate, endDate) => {\n const firstDate = startDate\n ? `&start=${startDate.format('YYYY-MM-DD')}`\n : '&start=2012-11-28';\n const lastDate = endDate\n ? `&end=${endDate.format('YYYY-MM-DD')}`\n : `&end=${moment().format('YYYY-MM-DD')}`;\n setUrlDate(`${firstDate}${lastDate}`);\n };\n\n const handleCode = (alrmCode) => {\n setAlarmCode(alrmCode);\n if (alrmCode.length > 0) {\n let urlCode = ''\n alrmCode.forEach(code => {\n urlCode = `${urlCode}${code.value},`;\n });\n setUrl(`/app/reports/list/alarms/code=${urlCode}`);\n } else {\n handlePriority(priority);\n }\n };\n\n const handlePriority = (prio) => {\n const { value } = prio;\n const newAlarms = value === 'all'\n ? props.alarms\n : props.alarms.filter(a => a.priority === parseInt(value, 10));\n setPriority(prio);\n setAlarms(newAlarms);\n setUrl(`/app/reports/list/alarms/priority=${value}`);\n };\n\n return (\n
\n
\n }\n onClose={() => setPriorityFocus(false)}\n onOpen={() => setPriorityFocus(true)}\n clearable={false}\n />\n
\n {priority !== '' &&\n
\n }\n onBlur={() => setSelectFocus(false)}\n onFocus={() => setSelectFocus(true)}\n />\n
\n }\n {priority !== '' &&\n setFocusedInput(focused)}\n setDate={setDate}\n resetDate={urlDate === ''}\n orientation={props.browserWidth > 390 ? 'horizontal' : 'vertical'}\n style={{ marginTop: '10px', width: '100%' }}\n />\n }\n {priority !== '' && !focusedInput &&\n }\n />\n }\n
\n );\n};\n\nAlarmComponent.propTypes = {\n themeColor: PropTypes.string.isRequired,\n alarms: PropTypes.arrayOf(\n PropTypes.shape({\n id: PropTypes.number,\n name: PropTypes.string,\n code: PropTypes.string,\n type: PropTypes.string,\n priority: PropTypes.number,\n is_original: PropTypes.boolean,\n created_date: PropTypes.string,\n modified_date: PropTypes.string,\n created_by: PropTypes.number,\n modified_by: PropTypes.number,\n }),\n ).isRequired,\n browserWidth: PropTypes.number.isRequired,\n};\n\nexport default AlarmComponent;\n","import React, { useState, useEffect } from 'react';\nimport PropTypes from 'prop-types';\nimport moment from 'moment';\nimport { FormattedMessage } from 'react-intl';\nimport DateRangePickerWrapper from '../ReportDateWrapper';\nimport ReportButton from '../ReportButtonComponent';\n\nimport style from '../reportComponent.module.scss';\n\nconst AttendComponent = (props) => {\n const [urlDate, setUrlDate] = useState('');\n const [focusedInput, setFocusedInput] = useState(null);\n\n const setDate = (startDate, endDate) => {\n const firstDate = startDate\n ? `&start=${startDate.format('YYYY-MM-DD')}`\n : '&start=2012-11-28';\n const lastDate = endDate\n ? `&end=${endDate.format('YYYY-MM-DD')}`\n : `&end=${moment().format('YYYY-MM-DD')}`;\n setUrlDate(`${firstDate}${lastDate}`);\n };\n\n return (\n
\n setFocusedInput(focused)}\n setDate={setDate}\n resetDate={urlDate === ''}\n orientation={props.browserWidth > 390 ? 'horizontal' : 'vertical'}\n style={{ marginTop: '10px', width: '100%' }}\n />\n {!!urlDate &&\n }\n />\n }\n
\n );\n};\n\nAttendComponent.propTypes = {\n themeColor: PropTypes.string.isRequired,\n browserWidth: PropTypes.number.isRequired,\n attendTags: PropTypes.arrayOf(\n PropTypes.shape({\n id: PropTypes.number,\n name: PropTypes.string,\n })).isRequired,\n lang: PropTypes.string.isRequired,\n browserWidth: PropTypes.number.isRequired,\n};\n\nexport default AttendComponent;\n","import React, { useState } from 'react';\nimport PropTypes from 'prop-types';\nimport moment from 'moment';\nimport Select from 'react-select';\nimport { FormattedMessage } from 'react-intl';\nimport DateRangePickerWrapper from '../ReportDateWrapper';\nimport ReportButton from '../ReportButtonComponent';\nimport messageTags from '../../../../BLL/locale/messagesTags';\n\nimport style from '../reportComponent.module.scss';\n\nconst AttendTagComponent = (props) => {\n const [tagId, setTagId] = useState(0);\n const [url, setUrl] = useState('');\n const [urlDate, setUrlDate] = useState('');\n const [focusedInput, setFocusedInput] = useState(null);\n const [selectFocus, setSelectFocus] = useState(false);\n const tagOptions = props.attendTags.map(tag => ({\n value: tag.id,\n label: messageTags[props.lang][tag.id],\n name: messageTags[props.lang][tag.id],\n }));\n\n const setDate = (startDate, endDate) => {\n const firstDate = startDate\n ? `&start=${startDate.format('YYYY-MM-DD')}`\n : '&start=2012-11-28';\n const lastDate = endDate\n ? `&end=${endDate.format('YYYY-MM-DD')}`\n : `&end=${moment().format('YYYY-MM-DD')}`;\n setUrlDate(`${firstDate}${lastDate}`);\n };\n\n const handleTagChange = (tag) => {\n setTagId(tag);\n setUrl(`/app/reports/list/tags/tag=${tag.value}`);\n };\n \n return (\n
\n }\n onClose={() => setSelectFocus(false)}\n onOpen={() => setSelectFocus(true)}\n clearable={false}\n />\n {tagId !== 0 &&\n setFocusedInput(focused)}\n setDate={setDate}\n resetDate={urlDate === ''}\n orientation={props.browserWidth > 390 ? 'horizontal' : 'vertical'}\n style={{ marginTop: '10px', width: '100%' }}\n />\n }\n {!!tagId && !focusedInput &&\n }\n />\n }\n
\n );\n};\n\nAttendTagComponent.propTypes = {\n themeColor: PropTypes.string.isRequired,\n browserWidth: PropTypes.number.isRequired,\n attendTags: PropTypes.arrayOf(\n PropTypes.shape({\n id: PropTypes.number,\n name: PropTypes.string,\n })).isRequired,\n lang: PropTypes.string.isRequired,\n browserWidth: PropTypes.number.isRequired,\n};\n\nexport default AttendTagComponent;\n","import React, { useState, useEffect } from 'react';\nimport PropTypes from 'prop-types';\nimport moment from 'moment';\nimport Select from 'react-select';\nimport { FormattedMessage } from 'react-intl';\nimport DateRangePickerWrapper from '../ReportDateWrapper';\nimport ReportButton from '../ReportButtonComponent';\n\nimport style from '../reportComponent.module.scss';\n\nconst AttendantComponent = (props) => {\n const [attendantOptions, setAttendantOptions] = useState([]);\n const [attendant, setAttendant] = useState(0);\n const [url, setUrl] = useState('');\n const [urlDate, setUrlDate] = useState('');\n const [focusedInput, setFocusedInput] = useState(null);\n const [selectFocus, setSelectFocus] = useState(false);\n\n useEffect(() => {\n if (props.attendants.length > 0) {\n setAttendantOptions(\n props.attendants.map(attendant => (\n {\n value: attendant.id,\n label: `${attendant.first_name} ${attendant.last_name}`,\n name: `${attendant.first_name} ${attendant.last_name}`,\n }\n ))\n );\n }\n }, [props.attendants]);\n\n const setDate = (startDate, endDate) => {\n const firstDate = startDate\n ? `&start=${startDate.format('YYYY-MM-DD')}`\n : '&start=2012-11-28';\n const lastDate = endDate\n ? `&end=${endDate.format('YYYY-MM-DD')}`\n : `&end=${moment().format('YYYY-MM-DD')}`;\n setUrlDate(`${firstDate}${lastDate}`);\n };\n\n const handleAttendant = (attendant) => {\n const { value } = attendant;\n setAttendant(attendant);\n setUrl(`/app/reports/list/attendants/attendant=${value}`);\n };\n\n return (\n
\n
\n }\n onClose={() => setSelectFocus(false)}\n onOpen={() => setSelectFocus(true)}\n clearable={false}\n />\n
\n {!!attendant &&\n setFocusedInput(focused)}\n setDate={setDate}\n resetDate={urlDate === ''}\n orientation={props.browserWidth > 390 ? 'horizontal' : 'vertical'}\n style={{ marginTop: '10px', width: '100%' }}\n />\n }\n {!!attendant && !focusedInput &&\n }\n />\n }\n
\n );\n};\n\nAttendantComponent.propTypes = {\n themeColor: PropTypes.string.isRequired,\n attendants: PropTypes.arrayOf(\n PropTypes.shape({\n id: PropTypes.number,\n username: PropTypes.string,\n first_name: PropTypes.string,\n last_name: PropTypes.string,\n email: PropTypes.string,\n password: PropTypes.string,\n groups: PropTypes.arrayOf(PropTypes.number),\n is_active: PropTypes.boolean,\n is_staff: PropTypes.boolean,\n is_superuser: PropTypes.boolean,\n user_info: PropTypes.shape({\n id: PropTypes.number,\n user: PropTypes.number,\n phone: PropTypes.string,\n mobile: PropTypes.string,\n email: PropTypes.string,\n extension_id: PropTypes.number,\n }),\n actions: PropTypes.arrayOf(\n PropTypes.shape({\n id: PropTypes.number,\n priority: PropTypes.number,\n user: PropTypes.number,\n receive_sms: PropTypes.boolean,\n receive_email: PropTypes.boolean,\n }),\n ),\n }),\n ).isRequired,\n browserWidth: PropTypes.number.isRequired,\n};\n\nexport default AttendantComponent;\n","import React, { useState } from 'react';\nimport { useSelector } from 'react-redux';\nimport PropTypes from 'prop-types';\nimport moment from 'moment';\nimport { FormattedMessage } from 'react-intl';\nimport ReportButton from '../ReportButtonComponent';\nimport messagesMonths from '../../../../BLL/locale/messagesMonths';\n\nimport style from '../reportComponent.module.scss';\nimport { useEffect } from 'react';\n\nconst ClientByCompanyComponent = (props) => {\n const lang = useSelector(state => state.locale.lang);\n const [years, setYears] = useState([]);\n const [selectedYear, setSelectedYear] = useState(moment().locale('pt-br').year())\n const [selectedMonth, setSelectedMonth] = useState(moment().locale('pt-br').month() + 1)\n const [urlDate, setUrlDate] = useState('');\n const [focusedInput, setFocusedInput] = useState(false);\n\n useEffect(() => {\n const now = moment().locale('pt-br')\n setUrlDate(`year=${now.year()}&month=${now.month()+1}`)\n }, []);\n\n useEffect(() => {\n const calcYearList = () => {\n const dt = new Date();\n const current = dt.getFullYear();\n let begin = current - 4;\n const yearList = [];\n \n while (begin <= current) {\n yearList.push({ value: `${begin}`, label: `${begin}` });\n begin++;\n }\n setYears(yearList);\n };\n\n calcYearList();\n }, []);\n\n useEffect(() => {\n setUrlDate(`year=${selectedYear}&month=${selectedMonth}`);\n }, [selectedYear, selectedMonth])\n\n const setFocusInput = (input) => {\n setFocusedInput(input.focused);\n }\n\n console.log('urlDate', urlDate);\n\n return (\n
\n
\n setSelectedYear(e.target.value)}\n value={selectedYear}\n >\n {years.map((item) => \n \n )}\n \n setSelectedMonth(e.target.value)}\n value={selectedMonth}\n >\n \n \n \n \n \n \n \n \n \n \n \n \n \n
\n }\n />\n
\n );\n\n};\n\nClientByCompanyComponent.propTypes = {\n themeColor: PropTypes.string.isRequired,\n};\n\nexport default ClientByCompanyComponent;\n","import React, { useState, useEffect } from 'react';\nimport Select from 'react-select';\nimport { FormattedMessage } from 'react-intl';\nimport ReportButton from '../ReportButtonComponent';\n\nimport style from '../reportComponent.module.scss';\n\nconst ClientMonthlyFollowupComponent = (props) => {\n const currentYear = new Date().getFullYear();\n const [years, setYears] = useState([]);\n const [selectFocus, setSelectFocus] = useState(false);\n const [focusedInput, setFocusedInput] = useState(false);\n const [selectedYear, setSelectedYear] = useState('');\n\n useEffect(() => {\n calcYearList();\n }, [])\n\n const calcYearList = () => {\n const dt = new Date();\n const current = dt.getFullYear();\n let begin = current - 4;\n const yearList = [];\n\n while (begin <= current) {\n yearList.push({ value: `${begin}`, label: `${begin}` });\n begin++;\n }\n setYears(yearList);\n };\n\n const handleYearChange = (event) => {\n setSelectedYear(event);\n }\n\n return (\n
\n
\n }\n onClose={() => setSelectFocus(false)}\n onOpen={() => setSelectFocus(true)}\n clearable={false}\n />\n
\n\n }\n />\n
\n );\n};\n\nexport default ClientMonthlyFollowupComponent;\n","import React, { useState, useEffect } from 'react';\nimport Select from 'react-select';\nimport { FormattedMessage } from 'react-intl';\nimport ReportButton from '../ReportButtonComponent';\n\nimport style from '../reportComponent.module.scss';\n\nconst ClientTotalMonthlyComponent = (props) => {\n const currentYear = new Date().getFullYear();\n const [years, setYears] = useState([]);\n const [selectedYear, setSelectedYear] = useState('');\n const [selectFocus, setSelectFocus] = useState(false);\n\n useEffect(() => {\n calcYearList();\n }, [])\n\n const calcYearList = () => {\n const dt = new Date();\n const current = dt.getFullYear();\n let begin = current - 4;\n const yearList = [];\n\n while (begin <= current) {\n yearList.push({ value: `${begin}`, label: `${begin}` });\n begin++;\n }\n setYears(yearList);\n };\n\n const handleYearChange = (event) => {\n setSelectedYear(event);\n }\n\n return (\n
\n
\n }\n onClose={() => setSelectFocus(false)}\n onOpen={() => setSelectFocus(true)}\n clearable={false}\n />\n
\n\n }\n />\n
\n );\n\n};\n\nexport default ClientTotalMonthlyComponent;\n","import React from 'react';\nimport PropTypes from 'prop-types';\nimport { FormattedMessage } from 'react-intl';\nimport ReportButton from '../ReportButtonComponent';\nimport style from '../reportComponent.module.scss';\n\nconst ClientLengthOfStayComponent = ({ themeColor }) => (\n
\n }\n />\n
\n);\n\nClientLengthOfStayComponent.propTypes = {\n themeColor: PropTypes.string.isRequired,\n};\n\nexport default ClientLengthOfStayComponent;\n","import React, { useState, useEffect } from 'react';\nimport PropTypes from 'prop-types';\nimport { useSelector, useDispatch } from 'react-redux';\nimport { FormattedMessage } from 'react-intl';\nimport AlarmComponent from './Alarm/AlarmComponent';\nimport AttendPeriodComponent from './Attend/AttendPeriodComponent';\nimport AttendTagComponent from './Attend/AttendTagComponent';\nimport AttendantComponent from './Attendant/AttendantComponent';\nimport ClientByCompanyComponent from './Client/ClientByCompanyComponent';\nimport ClientMonthlyFollowupComponent from './Client/ClientMonthlyFollowupComponent';\nimport ClientTotalMonthlyComponent from './Client/ClientTotalMonthlyComponent';\nimport ClientLengthOfStayComponent from './Client/ClientLengthOfStayComponent';\nimport Order from '../../../icons/Order';\nimport * as alarmsActions from '../../../actions/alarmsActions';\nimport * as attendantsActions from '../../../actions/attendantsActions';\nimport * as globals from '../../../BLL/globals';\nimport { getBrowserMaxWidth } from '../../../BLL/general';\n\nimport style from './reportPage.module.scss';\n\nconst ReportPage = (props) => {\n const color = '#ffffff';\n const alarmsOrdering = globals.alarmsOrdering;\n const attendantsOrdering = globals.attendantsOrdering;\n\n const lang = useSelector(state => state.locale.lang);\n const attendants = useSelector(state => state.attendants);\n const alarms = useSelector(state => state.alarms);\n const isCompanyMember = useSelector(state => state.loggedAttendant.groups.length > 1);\n const attendTags = useSelector(state => state.attendTags);\n const globalConfiguration = useSelector(state => state.globalConfiguration.global);\n\n const dispatch = useDispatch();\n \n const [alarmsOrdered, setAlarmsOrdered] = useState([]);\n const [attendantsOrdered, setAttendantsOrdered] = useState([]);\n const [showClientMonthlyFollowupComponent, setShowClientMonthlyFollowupComponent] = useState(false);\n const [showAlarmComponent, setShowAlarmComponent] = useState(false);\n const [showAttendantsComponent, setShowAttendantsComponent] = useState(false);\n const [showUsersByCompanyComponent, setShowUsersByCompanyComponent] = useState(false);\n const [showRetainTimeComponent, setShowRetainTimeComponent] = useState(false);\n const [showAttendByTimeComponent, setShowAttendByTimeComponent] = useState(false);\n const [showUsersByMonthComponent, setShowUsersByMonthComponent] = useState(false);\n const [showAttendsByTypeComponent, setShowAttendsByTypeComponent] = useState(false);\n\n useEffect(() => {\n const loadAlarms = (ordering) => dispatch(alarmsActions.loadAlarms(ordering));\n const loadAttendants = (ordering) => dispatch(attendantsActions.loadAttendants(ordering));\n\n const setAlarmList = (alList) => {\n const orderedAlarms = alList.find(a => a.ordering === alarmsOrdering);\n if (orderedAlarms) {\n setAlarmsOrdered(orderedAlarms.data);\n } else {\n loadAlarms(alarmsOrdering);\n }\n };\n\n const setAttendantList = (attList) => {\n const orderedAttendants = attList.find(a => a.ordering === attendantsOrdering);\n if (orderedAttendants) {\n setAttendantsOrdered(orderedAttendants.data);\n } else {\n loadAttendants(attendantsOrdering);\n }\n };\n\n setAlarmList(alarms);\n setAttendantList(attendants);\n }, [alarms, attendants, attendantsOrdering, alarmsOrdering, dispatch]);\n\n const rotateClientsFollowup = showClientMonthlyFollowupComponent ? style.rotate : '';\n const rotateAlarms = showAlarmComponent ? style.rotate : '';\n const rotateAttendants = showAttendantsComponent ? style.rotate : '';\n const rotateUsersByCompany = showUsersByCompanyComponent ? style.rotate : '';\n const rotateRetainTime = showRetainTimeComponent ? style.rotate : '';\n const rotateAttendByTime = showAttendByTimeComponent ? style.rotate : '';\n const rotateUsersByMonth = showUsersByMonthComponent ? style.rotate : '';\n const rotateAttendsByType = showAttendsByTypeComponent ? style.rotate : '';\n const useAlarmZones = globalConfiguration?.use_alarm_zones;\n\n return (\n
\n
\n \n
\n\n {/* Relatório Acompanhamento mensal de Usuários */}\n
\n \n
\n {showClientMonthlyFollowupComponent &&\n
\n
\n \n
\n
\n }\n\n {/* Relatório de Alarmes */}\n {!useAlarmZones &&\n
\n \n
\n }\n\n {showAlarmComponent &&\n
\n {alarmsOrdered.length > 0 && (\n
\n \n
\n )}\n
\n }\n\n {/* Relatório de Atendentes */}\n {!isCompanyMember &&\n
\n \n
\n }\n {showAttendantsComponent &&\n
\n {attendantsOrdered.length > 0 && (\n
\n \n
\n )}\n
\n }\n\n {/* Relatório Atendimento por período */}\n
\n \n
\n {showAttendByTimeComponent &&\n
\n
\n \n
\n
\n }\n \n {/* Relatório atendimentos por tipo */}\n
\n \n
\n {showAttendsByTypeComponent &&\n
\n
\n \n
\n
\n }\n\n {/* Relatório Tempo de permanência */}\n
\n \n
\n {showRetainTimeComponent &&\n
\n
\n \n
\n
\n }\n\n {/* Relatório Total de Clientes por Empresa */}\n {!isCompanyMember &&\n
\n \n
\n }\n {showUsersByCompanyComponent &&\n
\n
\n \n
\n
\n }\n\n {/* Relatório Total usuários mês */}\n
\n \n
\n {showUsersByMonthComponent &&\n
\n
\n \n
\n
\n }\n \n
\n );\n}\n\nReportPage.propTypes = {\n isPaid: PropTypes.bool.isRequired\n};\n\nexport default ReportPage;\n","import React from 'react';\nimport PropTypes from 'prop-types';\nimport { FormattedMessage } from 'react-intl';\nimport { Link } from 'react-router-dom';\nimport moment from 'moment';\nimport { alarmNameLang } from '../../../../BLL/dictionary';\n\nimport style from './reportAlarm.module.scss';\n\nconst ReportAlarmRow = ({ alarm }) => (\n \n
{alarm.id ? alarm.id : '-'}
\n
{alarm.user ? alarm.user : '-'}
\n
{alarm.city ? alarm.city : '-'}
\n
{alarm.company ? alarm.company : '-'}
\n
{`(${alarm.code}) ${alarmNameLang(alarm)}`}
\n
{alarm.category === '1'\n ? \n : }
\n
{alarm.attendant ? alarm.attendant : '-'}
\n
{alarm.alarmDate ? moment(alarm.alarmDate).format('DD/MM/YYYY - HH:mm') : '-'}
\n
{alarm.audioCallDuration ? alarm.audioCallDuration : '-'}
\n \n);\n\nReportAlarmRow.propTypes = {\n alarm: PropTypes.object.isRequired,\n};\n\nexport default ReportAlarmRow;\n","import React from 'react';\nimport PropTypes from 'prop-types';\n\nconst Download = ({ height, className, width, fill, transform }) => (\n \n \n \n \n \n);\n\nDownload.defaultProps = {\n className: '',\n width: '24',\n height: '24',\n fill: '#00b8cb',\n transform: 'translate(0,0)',\n};\n\nDownload.propTypes = {\n className: PropTypes.string,\n width: PropTypes.string,\n height: PropTypes.string,\n fill: PropTypes.string,\n transform: PropTypes.string,\n};\n\nexport default Download;\n","import React, { useState, useEffect } from 'react';\nimport PropTypes from 'prop-types';\nimport axios from 'axios';\nimport { FormattedMessage } from 'react-intl';\nimport ReportAlarmRow from './ReportAlarmRow';\nimport Paginate from '../../../Common/Paginate';\nimport Order from '../../../../icons/Order';\nimport Loading from '../../../../icons/Loading';\nimport Download from '../../../../icons/Download';\nimport { host, getDomain, getToken } from '../../../../BLL/environment';\nimport { reportPriority } from '../../../../BLL/dictionary';\nimport { naturalSort } from '../../../../BLL/general';\n\nimport style from './reportAlarm.module.scss';\nimport '../../../../css/print.scss';\n\nconst ReportAlarm = (props) => {\n const priority = props.match.params.filter.includes('all') ? 'all' : parseInt(props.match.params.filter.charAt(9), 10);\n const title = props.match.params.filter.includes('priority') ? reportPriority(priority) : 'Código Selecionado';\n const numPerPage = 50;\n const [report, setReport] = useState(undefined);\n const [page, setPage] = useState(1);\n const [ordering, setOrdering] = useState('-id');\n const [loading, setLoading] = useState(true);\n const [csvUrl, setCsvUrl] = useState('');\n const [pdfUrl, setPdfUrl] = useState('');\n\n useEffect(() => {\n if (props.match.params.filter) {\n fetchAlarmReport(props.match.params.filter);\n }\n }, [props.match.params.filter]);\n\n const fetchAlarmReport = (filter) => {\n axios({\n method: 'GET',\n url: `https://${getDomain()}${host()}/api/reports/alarms/?${filter}`,\n headers: { Authorization: `Token ${getToken()}` },\n }).then((resp) => {\n setReport(resp.data.alarmList.sort((a, b) => b.id - a.id));\n setCsvUrl(resp.data.csv_url);\n setPdfUrl(resp.data.pdf_url);\n setPage(1);\n setLoading(false);\n }).catch((err) => {\n console.log(err.response);\n })\n };\n\n const handleIdChange = (newOrder) => {\n if (ordering !== newOrder) {\n setReport(report.sort((a, b) => a.id - b.id));\n setOrdering(newOrder);\n } else {\n setReport(report.sort((a, b) => b.id - a.id));\n setOrdering(`-${newOrder}`);\n }\n };\n\n const handleCodeChange = (newOrder) => {\n if (ordering !== newOrder) {\n setReport(report.sort((a, b) => {\n const nameA = `${a.code}${a.attendant.toLowerCase()}${a.id}`;\n const nameB = `${b.code}${b.attendant.toLowerCase()}${b.id}`;\n return naturalSort(nameA, nameB);\n }));\n setOrdering(newOrder);\n } else {\n setReport(report.sort((a, b) => {\n const nameA = `${a.code}${a.attendant.toLowerCase()}${a.id}`;\n const nameB = `${b.code}${b.attendant.toLowerCase()}${b.id}`;\n return naturalSort(nameB, nameA);\n }));\n setOrdering(`-${newOrder}`);\n }\n };\n\n const handleOrderChange = (newOrder) => {\n if (ordering !== newOrder) {\n setReport(report.sort((a, b) => {\n const nameA = `${a[newOrder].toLowerCase()}${a.id}`\n const nameB = `${b[newOrder].toLowerCase()}${b.id}`;\n return naturalSort(nameA, nameB)\n }));\n setOrdering(newOrder);\n } else {\n setReport(report.sort((a, b) => {\n const nameA = `${a[newOrder].toLowerCase()}${a.id}`\n const nameB = `${b[newOrder].toLowerCase()}${b.id}`;\n return naturalSort(nameB, nameA)\n }));\n setOrdering(`-${newOrder}`);\n }\n };\n\n const firstItem = (page - 1) * numPerPage;\n const lastItem = page * numPerPage;\n\n return (\n
\n {report &&\n
\n
\n  \n \n   {title.toUpperCase()}\n \n
\n
\n }\n
\n \n \n
\n {loading \n ? } /> \n : report && \n
\n setPage(ev)}\n page={page}\n />\n
\n handleIdChange('id')}\n style={{ color: ordering === 'id' ? '#00b8cb' : '#333' }}\n >\n ID\n \n \n handleOrderChange('user')}\n style={{ color: ordering === 'user' ? '#00b8cb' : '#333' }}\n >\n \n \n \n handleOrderChange('city')}\n style={{ color: ordering === 'city' ? '#00b8cb' : '#333' }}\n >\n \n \n \n handleOrderChange('company')}\n style={{ color: ordering === 'company' ? '#00b8cb' : '#333' }}\n >\n \n \n \n handleCodeChange('code')}\n style={{ color: ordering === 'code' ? '#00b8cb' : '#333' }}\n >\n \n \n \n
\n \n
\n handleOrderChange('attendant')}\n style={{ color: ordering === 'attendant' ? '#00b8cb' : '#333' }}\n >\n \n \n handleIdChange('id')}\n style={{ color: ordering === 'id' ? '#00b8cb' : '#333' }}\n >\n \n \n \n
\n \n
\n
\n
\n {typeof report[0] !== 'undefined'\n ? report\n .slice(firstItem, lastItem)\n .map((alarm, index) =>\n ,\n )\n :
}\n
\n
\n }\n
\n );\n};\n\nReportAlarm.defaultProps = {\n user: undefined,\n};\n\nReportAlarm.propTypes = {\n params: PropTypes.shape({\n filter: PropTypes.string.isRequired,\n }).isRequired,\n user: PropTypes.shape({\n id: PropTypes.number,\n username: PropTypes.string,\n first_name: PropTypes.string,\n last_name: PropTypes.string,\n email: PropTypes.string,\n password: PropTypes.string,\n groups: PropTypes.arrayOf(PropTypes.number),\n is_active: PropTypes.bool,\n is_staff: PropTypes.bool,\n is_superuser: PropTypes.bool,\n user_info: PropTypes.shape({\n id: PropTypes.number,\n user: PropTypes.number,\n phone: PropTypes.string,\n mobile: PropTypes.string,\n email: PropTypes.string,\n extension_id: PropTypes.number,\n }),\n actions: PropTypes.arrayOf(\n PropTypes.shape({\n id: PropTypes.number,\n priority: PropTypes.number,\n user: PropTypes.number,\n receive_sms: PropTypes.bool,\n receive_email: PropTypes.bool,\n }),\n ),\n }),\n};\n\nexport default ReportAlarm;\n","import React from 'react';\nimport PropTypes from 'prop-types';\n\nconst NoAudio = ({ height, className, width }) =>\n \n \n \n ;\n\nNoAudio.defaultProps = {\n height: '24',\n className: '',\n width: '24',\n};\n\nNoAudio.propTypes = {\n height: PropTypes.string,\n className: PropTypes.string,\n width: PropTypes.string,\n};\n\nexport default NoAudio;\n","import React from 'react';\nimport PropTypes from 'prop-types';\nimport { Link } from 'react-router-dom';\nimport moment from 'moment';\nimport Audio from '../../../../icons/Audio';\nimport NoAudio from '../../../../icons/NoAudio';\n\nimport style from './reportAttend.module.scss';\n\nconst ReactAttendRow = ({ report }) => (\n \n
{report.attend_id}
\n
{report.client}
\n
{report.account}
\n
{moment(report.open).format('DD/MM/YYYY - HH:mm')}
\n
{moment(report.close).format('DD/MM/YYYY - HH:mm')}
\n
{report.attendant}
\n
{report.audio_call ?
\n \n);\n\nReactAttendRow.propTypes = {\n report: PropTypes.shape({\n attend_id: PropTypes.number,\n account: PropTypes.string,\n audio_call: PropTypes.bool,\n client: PropTypes.string,\n close: PropTypes.string,\n open: PropTypes.string,\n attendant: PropTypes.string,\n }).isRequired,\n};\n\nexport default ReactAttendRow;\n","import React, { useState, useEffect } from 'react';\nimport PropTypes from 'prop-types';\nimport axios from 'axios';\nimport { FormattedMessage } from 'react-intl';\nimport ReportAttendRow from './ReportAttendPeriodRow';\nimport Paginate from '../../../Common/Paginate';\nimport Order from '../../../../icons/Order';\nimport Loading from '../../../../icons/Loading';\nimport Download from '../../../../icons/Download';\nimport { host, getDomain, getToken } from '../../../../BLL/environment';\nimport { naturalSort } from '../../../../BLL/general';\n\nimport style from './reportAttend.module.scss';\n\nconst ReportAttendPeriod = (props) => {\n const numPerPage = 50;\n const [report, setReport] = useState(undefined);\n const [page, setPage] = useState(1);\n const [ordering, setOrdering] = useState('-id');\n const [loading, setLoading] = useState(true);\n const [csvUrl, setCsvUrl] = useState('');\n const [pdfUrl, setPdfUrl] = useState('');\n\n useEffect(() => {\n if (props.match.params.filter) {\n fetchAttendsReport(props.match.params.filter);\n }\n }, [props.match.params.filter]);\n\n const fetchAttendsReport = (filter) => {\n axios({\n method: 'GET',\n url: `https://${getDomain()}${host()}/api/reports/attends-tot-voice-detail/?${filter}`,\n headers: { Authorization: `Token ${getToken()}` },\n }).then((resp) => {\n setReport(resp.data.data.sort((a, b) => b.attend_id - a.attend_id));\n setCsvUrl(resp.data.csv_url);\n setPdfUrl(resp.data.pdf_url);\n setPage(1);\n setLoading(false);\n }).catch((err) => {\n console.log(err.response);\n })\n };\n\n const handleIdChange = (newOrder) => {\n if (ordering !== newOrder) {\n setReport(report.sort((a, b) => a.attend_id - b.attend_id));\n setOrdering(newOrder);\n } else {\n setReport(report.sort((a, b) => b.attend_id - a.attend_id));\n setOrdering(`-${newOrder}`);\n }\n };\n\n const handleOrderChange = (newOrder) => {\n if (ordering !== newOrder) {\n setReport(report.sort((a, b) => {\n const nameA = `${a[newOrder].toLowerCase()}${a.attend_id}`\n const nameB = `${b[newOrder].toLowerCase()}${b.attend_id}`;\n return naturalSort(nameA, nameB)\n }));\n setOrdering(newOrder);\n } else {\n setReport(report.sort((a, b) => {\n const nameA = `${a[newOrder].toLowerCase()}${a.attend_id}`\n const nameB = `${b[newOrder].toLowerCase()}${b.attend_id}`;\n return naturalSort(nameB, nameA)\n }));\n setOrdering(`-${newOrder}`);\n }\n };\n\n const firstItem = (page - 1) * numPerPage;\n const lastItem = page * numPerPage;\n\n return (\n
\n
\n  \n \n
\n
\n \n \n
\n {loading\n ? } />\n : report && \n
\n setPage(elm)}\n page={page}\n />\n
\n
\n handleIdChange('id')}\n style={{ color: ordering === 'id' ? '#00b8cb' : '#333' }}\n >\n ID\n \n \n
\n
\n handleOrderChange('client')}\n style={{ color: ordering === 'client' ? '#00b8cb' : '#333' }}\n >\n \n \n
\n
\n handleOrderChange('account')}\n style={{ color: ordering === 'account' ? '#00b8cb' : '#333' }}\n >\n \n \n \n
\n
\n
\n
\n
\n
\n
\n {report.length > 0 ? report.slice(firstItem, lastItem)\n .map(rpt =>\n ,\n )\n :\n
\n }\n
\n
\n }\n
\n );\n};\n\nReportAttendPeriod.defaultProps = {\n user: undefined,\n};\n\nReportAttendPeriod.propTypes = {\n params: PropTypes.shape({\n filter: PropTypes.string.isRequired,\n }).isRequired,\n user: PropTypes.shape({\n id: PropTypes.number,\n username: PropTypes.string,\n first_name: PropTypes.string,\n last_name: PropTypes.string,\n email: PropTypes.string,\n password: PropTypes.string,\n groups: PropTypes.arrayOf(\n PropTypes.number,\n ),\n is_active: PropTypes.bool,\n is_staff: PropTypes.bool,\n is_superuser: PropTypes.bool,\n user_info: PropTypes.shape({\n id: PropTypes.number,\n user: PropTypes.number,\n phone: PropTypes.string,\n mobile: PropTypes.string,\n email: PropTypes.string,\n extension_id: PropTypes.number,\n }),\n actions: PropTypes.arrayOf(\n PropTypes.shape({\n id: PropTypes.number,\n priority: PropTypes.number,\n user: PropTypes.number,\n receive_sms: PropTypes.bool,\n receive_email: PropTypes.bool,\n }),\n ),\n }),\n};\n\n\nexport default ReportAttendPeriod;\n","import React from 'react';\nimport PropTypes from 'prop-types';\nimport { Link } from 'react-router-dom';\nimport moment from 'moment';\nimport Audio from '../../../../icons/Audio';\nimport NoAudio from '../../../../icons/NoAudio';\n\nimport style from './reportAttend.module.scss';\n\nconst ReactAttendRow = ({ report }) => (\n \n
{report.attend_id}
\n
{report.client}
\n
{report.account}
\n
{report.city}
\n
{moment(report.open).format('DD/MM/YYYY - HH:mm')}
\n
{moment(report.close).format('DD/MM/YYYY - HH:mm')}
\n
{report.attendant}
\n
{report.company_name}
\n
{report.audio_call ?
\n \n);\n\nReactAttendRow.propTypes = {\n report: PropTypes.shape({\n attend_id: PropTypes.number,\n account: PropTypes.string,\n audio_call: PropTypes.bool,\n client: PropTypes.string,\n close: PropTypes.string,\n open: PropTypes.string,\n attendant: PropTypes.string,\n }).isRequired,\n};\n\nexport default ReactAttendRow;\n","import React, { useState, useEffect } from 'react';\nimport PropTypes from 'prop-types';\nimport axios from 'axios';\nimport { FormattedMessage } from 'react-intl';\nimport ReportAttendByTagRow from './ReportAttendByTagRow';\nimport Paginate from '../../../Common/Paginate';\nimport Order from '../../../../icons/Order';\nimport Loading from '../../../../icons/Loading';\nimport Download from '../../../../icons/Download';\nimport { host, getDomain, getToken } from '../../../../BLL/environment';\nimport { naturalSort } from '../../../../BLL/general';\nimport messageTags from '../../../../BLL/locale/messagesTags';\nimport style from './reportAttend.module.scss';\n\nconst ReportAttendBytTag = (props) => {\n const numPerPage = 50;\n const [report, setReport] = useState(undefined);\n const [reportTag, setReportTag] = useState('');\n const [page, setPage] = useState(1);\n const [ordering, setOrdering] = useState('-id');\n const [loading, setLoading] = useState(true);\n const [csvUrl, setCsvUrl] = useState('');\n const [pdfUrl, setPdfUrl] = useState('');\n\n useEffect(() => {\n if (props.match.params.filter) {\n fetchAttendsReport(props.match.params.filter);\n }\n }, [props.match.params.filter]);\n\n const fetchAttendsReport = (filter) => {\n axios({\n method: 'GET',\n url: `https://${getDomain()}${host()}/api/reports/attends-tags/?${filter}`,\n headers: { Authorization: `Token ${getToken()}` },\n }).then((resp) => {\n setReport(resp.data.data.sort((a, b) => b.attend_id - a.attend_id));\n setCsvUrl(resp.data.csv_url);\n setPdfUrl(resp.data.pdf_url);\n setPage(1);\n setLoading(false);\n setReportTag(resp.data.data && resp.data.tag_id);\n }).catch((err) => {\n console.log(err.response);\n })\n };\n\n const handleIdChange = (newOrder) => {\n if (ordering !== newOrder) {\n setReport(report.sort((a, b) => a.attend_id - b.attend_id));\n setOrdering(newOrder);\n } else {\n setReport(report.sort((a, b) => b.attend_id - a.attend_id));\n setOrdering(`-${newOrder}`);\n }\n };\n\n const handleOrderChange = (newOrder) => {\n if (ordering !== newOrder) {\n setReport(report.sort((a, b) => {\n const nameA = `${a[newOrder].toLowerCase()}${a.attend_id}`\n const nameB = `${b[newOrder].toLowerCase()}${b.attend_id}`;\n return naturalSort(nameA, nameB)\n }));\n setOrdering(newOrder);\n } else {\n setReport(report.sort((a, b) => {\n const nameA = `${a[newOrder].toLowerCase()}${a.attend_id}`\n const nameB = `${b[newOrder].toLowerCase()}${b.attend_id}`;\n return naturalSort(nameB, nameA)\n }));\n setOrdering(`-${newOrder}`);\n }\n };\n\n const firstItem = (page - 1) * numPerPage;\n const lastItem = page * numPerPage;\n const lang = !localStorage.contacttoLang ? 'pt' : localStorage.contacttoLang;\n const tagName = messageTags[lang][reportTag];\n\n return (\n
\n
\n  \n  \n  \n
{tagName}\n
\n
\n \n \n
\n {loading\n ? } />\n : report && \n
\n setPage(elm)}\n page={page}\n />\n
\n
\n handleIdChange('id')}\n style={{ color: ordering === 'id' ? '#00b8cb' : '#333' }}\n >\n ID\n \n \n
\n
\n handleOrderChange('client')}\n style={{ color: ordering === 'client' ? '#00b8cb' : '#333' }}\n >\n \n \n
\n
\n handleOrderChange('account')}\n style={{ color: ordering === 'account' ? '#00b8cb' : '#333' }}\n >\n \n \n \n
\n
\n handleOrderChange('city')}\n style={{ color: ordering === 'city' ? '#00b8cb' : '#333' }}\n >\n \n \n
\n
\n
\n
\n
\n
\n
\n
\n {report.length > 0 ? report.slice(firstItem, lastItem)\n .map(rpt =>\n ,\n )\n :\n
\n }\n
\n
\n }\n \n
\n );\n};\n\n\nReportAttendBytTag.defaultProps = {\n user: undefined,\n};\n\nReportAttendBytTag.propTypes = {\n params: PropTypes.shape({\n filter: PropTypes.string.isRequired,\n }).isRequired,\n user: PropTypes.shape({\n id: PropTypes.number,\n username: PropTypes.string,\n first_name: PropTypes.string,\n last_name: PropTypes.string,\n email: PropTypes.string,\n password: PropTypes.string,\n groups: PropTypes.arrayOf(\n PropTypes.number,\n ),\n is_active: PropTypes.bool,\n is_staff: PropTypes.bool,\n is_superuser: PropTypes.bool,\n user_info: PropTypes.shape({\n id: PropTypes.number,\n user: PropTypes.number,\n phone: PropTypes.string,\n mobile: PropTypes.string,\n email: PropTypes.string,\n extension_id: PropTypes.number,\n }),\n actions: PropTypes.arrayOf(\n PropTypes.shape({\n id: PropTypes.number,\n priority: PropTypes.number,\n user: PropTypes.number,\n receive_sms: PropTypes.bool,\n receive_email: PropTypes.bool,\n }),\n ),\n }),\n};\n\n\nexport default ReportAttendBytTag;\n","import React from 'react';\nimport PropTypes from 'prop-types';\nimport { Link } from 'react-router-dom';\nimport moment from 'moment';\nimport numeral from 'numeral';\n\nimport style from './reportAttendant.module.scss';\n\nconst ReportAttendantRow = ({ report }) => {\n const milliseconds = new Date(report.close) - new Date(report.open);\n const seconds = Math.floor(milliseconds / 1000);\n return (\n \n
{report.attend_id}
\n
{report.client}
\n
{report.account}
\n
{moment(report.open).format('DD/MM/YYYY - HH:mm')}
\n
{moment(report.close).format('DD/MM/YYYY - HH:mm')}
\n
{numeral(seconds).format('00:00:00')}
\n
{report.success}
\n \n );\n};\n\nReportAttendantRow.propTypes = {\n report: PropTypes.shape({\n success: PropTypes.string,\n attend_id: PropTypes.number,\n account: PropTypes.string,\n close: PropTypes.string,\n client: PropTypes.string,\n attendant: PropTypes.string,\n open: PropTypes.string,\n }).isRequired,\n};\n\nexport default ReportAttendantRow;\n","import React, { useState, useEffect } from 'react';\nimport PropTypes from 'prop-types';\nimport axios from 'axios';\nimport { FormattedMessage } from 'react-intl';\nimport ReportAttendantRow from './ReportAttendantRow';\nimport Paginate from '../../../Common/Paginate';\nimport Order from '../../../../icons/Order';\nimport Loading from '../../../../icons/Loading';\nimport Download from '../../../../icons/Download';\nimport { host, getDomain, getToken } from '../../../../BLL/environment';\nimport { naturalSort } from '../../../../BLL/general';\nimport { userGroup } from '../../../../BLL/dictionary';\n\nimport style from './reportAttendant.module.scss';\n\nconst ReportAttendant = (props) => {\n const numPerPage = 50;\n const [attendant, setAttendant] = useState(undefined);\n const [report, setReport] = useState(undefined);\n const [page, setPage] = useState(1);\n const [ordering, setOrdering] = useState('-id');\n const [loading, setLoading] = useState(true);\n const [csvUrl, setCsvUrl] = useState('');\n const [pdfUrl, setPdfUrl] = useState('');\n\n useEffect(() => {\n if (props.match.params.filter) {\n fetchAttendantReport(props.match.params.filter);\n }\n }, [props.match.params.filter]);\n\n const fetchAttendantReport = (filter) => {\n axios({\n method: 'GET',\n url: `https://${getDomain()}${host()}/api/reports/attendants/?${filter}`,\n headers: { Authorization: `Token ${getToken()}` },\n }).then((resp) => {\n setAttendant({\n attendantName: resp.data.attendant,\n group: resp.data.group,\n group_id: resp.data.group_id,\n total: resp.data.total\n });\n setReport(resp.data.report.sort((a, b) => b.attend_id - a.attend_id));\n setCsvUrl(resp.data.csv_url);\n setPdfUrl(resp.data.pdf_url);\n setPage(1);\n setLoading(false);\n }).catch((err) => {\n console.log(err.response);\n })\n };\n\n const handleIdChange = (newOrder) => {\n if (ordering !== newOrder) {\n setReport(report.sort((a, b) => a.attend_id - b.attend_id));\n setOrdering(newOrder);\n } else {\n setReport(report.sort((a, b) => b.attend_id - a.attend_id));\n setOrdering(`-${newOrder}`);\n }\n };\n\n const handleOrderChange = (newOrder) => {\n if (ordering !== newOrder) {\n setReport(report.sort((a, b) => {\n const nameA = `${a[newOrder].toLowerCase()}${a.attend_id}`\n const nameB = `${b[newOrder].toLowerCase()}${b.attend_id}`;\n return naturalSort(nameA, nameB)\n }));\n setOrdering(newOrder);\n } else {\n setReport(report.sort((a, b) => {\n const nameA = `${a[newOrder].toLowerCase()}${a.attend_id}`\n const nameB = `${b[newOrder].toLowerCase()}${b.attend_id}`;\n return naturalSort(nameB, nameA)\n }));\n setOrdering(`-${newOrder}`);\n }\n };\n\n const firstItem = (page - 1) * numPerPage;\n const lastItem = page * numPerPage;\n\n return (\n
\n {attendant &&\n
\n  \n
\n {`${attendant.attendantName.toUpperCase()}`} -  \n : {`${userGroup(attendant.group_id, 'fromServer').toUpperCase()}`}
\n : {attendant.total}\n
\n
\n }\n
\n \n \n
\n {loading\n ? } />\n : report &&\n
\n setPage(elm)}\n page={page}\n />\n
\n
\n handleIdChange('id')}\n style={{ color: ordering === 'id' ? '#00b8cb' : '#333' }}\n >\n ID\n \n \n
\n
\n handleOrderChange('client')}\n style={{ color: ordering === 'client' ? '#00b8cb' : '#333' }}\n >\n \n \n
\n
\n handleOrderChange('account')}\n style={{ color: ordering === 'account' ? '#00b8cb' : '#333' }}\n >\n \n \n \n
\n
\n
\n
\n
\n handleOrderChange('success')}\n style={{ color: ordering === 'success' ? '#00b8cb' : '#333' }}\n >\n \n \n
\n
\n
\n {report.length > 0 ? report.slice(firstItem, lastItem)\n .map(rpt =>\n ,\n )\n :\n
\n }\n
\n
\n }\n
\n );\n\n};\n\nReportAttendant.defaultProps = {\n user: undefined,\n};\n\nReportAttendant.propTypes = {\n params: PropTypes.shape({\n filter: PropTypes.string.isRequired,\n }).isRequired,\n user: PropTypes.shape({\n id: PropTypes.number,\n username: PropTypes.string,\n first_name: PropTypes.string,\n last_name: PropTypes.string,\n email: PropTypes.string,\n password: PropTypes.string,\n groups: PropTypes.arrayOf(PropTypes.number),\n is_active: PropTypes.bool,\n is_staff: PropTypes.bool,\n is_superuser: PropTypes.bool,\n user_info: PropTypes.shape({\n id: PropTypes.number,\n user: PropTypes.number,\n phone: PropTypes.string,\n mobile: PropTypes.string,\n email: PropTypes.string,\n extension_id: PropTypes.number,\n }),\n actions: PropTypes.arrayOf(\n PropTypes.shape({\n id: PropTypes.number,\n priority: PropTypes.number,\n user: PropTypes.number,\n receive_sms: PropTypes.bool,\n receive_email: PropTypes.bool,\n }),\n ),\n }),\n};\n\nexport default ReportAttendant;\n","import React from 'react';\nimport PropTypes from 'prop-types';\nimport CustomChart from './CustomChart';\nimport '../../css/contactto.scss';\n\nconst LengthStayChart = ({ height, report, width }) => {\n const names = [];\n const values = [];\n const colors = [];\n const rows = [\n ...report.map((rpt) => {\n if (rpt.deleted_date === '-') {\n names.push(rpt.client);\n values.push(rpt.days_length);\n colors.push('#90b5c1b3');\n } else {\n names.push(rpt.client);\n values.push(rpt.days_length);\n colors.push('#b71f26');\n }\n }),\n ];\n\n const calcClientsSize = () => {\n if (names.length > 35) {\n return '1700px';\n }\n };\n\n return (\n
\n \n
\n );\n};\n\nLengthStayChart.defaultProps = {\n height: '350px',\n width: '350px',\n};\n\nLengthStayChart.propTypes = {\n height: PropTypes.string,\n report: PropTypes.arrayOf(\n PropTypes.shape({\n account: PropTypes.string,\n client: PropTypes.string,\n days_length: PropTypes.number,\n created_date: PropTypes.string,\n }),\n ).isRequired,\n width: PropTypes.string,\n};\n\nexport default LengthStayChart;\n","import React from 'react';\nimport PropTypes from 'prop-types';\nimport moment from 'moment';\nimport style from './reportLengthOfStay.module.scss';\n\nconst ReportLengthStayRow = ({ report }) => {\n return (\n
\n
{report.account}
\n
{report.client}
\n
{report.days_length}
\n
{moment(report.created_date).format('DD/MM/YYYY - HH:mm')}
\n
{report.deleted_date === '-' ? report.deleted_date : moment(report.deleted_date).format('DD/MM/YYYY - HH:mm')}
\n
\n );\n};\n\nReportLengthStayRow.propTypes = {\n report: PropTypes.shape({\n account: PropTypes.string,\n client: PropTypes.string,\n days_length: PropTypes.number,\n created_date: PropTypes.string,\n deleted_date: PropTypes.string,\n }).isRequired,\n};\n\nexport default ReportLengthStayRow;\n","import React, { useState, useEffect } from 'react';\nimport PropTypes from 'prop-types';\nimport axios from 'axios';\nimport { FormattedMessage } from 'react-intl';\nimport LengthOfStayChart from '../../../Charts/LengthOfStayChart';\nimport ReportLengthStayRow from './ReportLengthOfStayRow';\nimport Paginate from '../../../Common/Paginate';\nimport Loading from '../../../../icons/Loading';\nimport Download from '../../../../icons/Download';\nimport { host, getDomain, getToken } from '../../../../BLL/environment';\nimport messages from '../../../../BLL/locale/messages';\n\nimport style from './reportLengthOfStay.module.scss';\n\nconst ReportLengthOfStay = (props) => {\n const lang = !localStorage.contacttoLang ? 'pt' : localStorage.contacttoLang;\n const numPerPage = 50;\n const [report, setReport] = useState(undefined);\n const [page, setPage] = useState(1);\n const [ordering, setOrdering] = useState('-id');\n const [loading, setLoading] = useState(true);\n const [csvUrl, setCsvUrl] = useState('');\n const [pdfUrl, setPdfUrl] = useState('');\n const [showChart, setShowChart] = useState(false);\n\n useEffect(() => {\n fetchLoSReport();\n }, []);\n\n const fetchLoSReport = () => {\n axios({\n method: 'GET',\n url: `https://${getDomain()}${host()}/api/reports/clients-length/`,\n headers: { Authorization: `Token ${getToken()}` },\n }).then((resp) => {\n setReport(resp.data.report);\n setCsvUrl(resp.data.csv_url);\n setPdfUrl(resp.data.pdf_url);\n setLoading(false);\n })\n };\n\n const firstItem = (page - 1) * numPerPage;\n const lastItem = page * numPerPage;\n\n return (\n
\n
\n   \n \n \n
\n
\n
\n setShowChart(!showChart)}\n style={{ border: 'solid 1px #efefef' }}\n title={`${showChart ? messages[lang]['reports.reportButton'] : messages[lang]['reports.graphicButton']}`}\n >\n \n \n
\n \n \n
\n {loading\n ? } />\n : (report &&\n (!showChart\n ?\n
\n setPage(elm)}\n page={page}\n />\n
\n
\n \n
\n
\n \n
\n
\n \n
\n
\n \n
\n
\n \n
\n
\n
\n {report.length > 0 ? (\n report\n .slice(firstItem, lastItem)\n .map(rpt => (\n \n ))\n ) :\n
\n \n
\n }\n
\n
\n :\n
\n {ReportLengthStayRow.length > 0 && (\n \n )}\n
\n )\n )\n }\n
\n );\n\n};\n\nReportLengthOfStay.defaultProps = {\n user: undefined,\n};\n\nReportLengthOfStay.propTypes = {\n user: PropTypes.shape({\n id: PropTypes.number,\n username: PropTypes.string,\n first_name: PropTypes.string,\n last_name: PropTypes.string,\n email: PropTypes.string,\n password: PropTypes.string,\n groups: PropTypes.arrayOf(PropTypes.number),\n is_active: PropTypes.bool,\n is_staff: PropTypes.bool,\n is_superuser: PropTypes.bool,\n user_info: PropTypes.shape({\n id: PropTypes.number,\n user: PropTypes.number,\n phone: PropTypes.string,\n mobile: PropTypes.string,\n email: PropTypes.string,\n extension_id: PropTypes.number,\n }),\n actions: PropTypes.arrayOf(\n PropTypes.shape({\n id: PropTypes.number,\n priority: PropTypes.number,\n user: PropTypes.number,\n receive_sms: PropTypes.bool,\n receive_email: PropTypes.bool,\n }),\n ),\n }),\n};\n\nexport default ReportLengthOfStay;\n","import React from 'react';\nimport PropTypes from 'prop-types';\nimport { checkMonth } from '../../BLL/dictionary';\nimport messages from '../../BLL/locale/messages';\n\nimport '../../css/contactto.scss';\n\nimport CustomChart from './CustomChart';\n\nconst MonthlyFollowupChart = ({ height, report, width }) => {\n const lang = !localStorage.contacttoLang ? 'pt' : localStorage.contacttoLang;\n const added = [];\n const inactivated = [];\n const reactivated = [];\n const disabled = [];\n const month = [];\n\n const data = [\n ...report.map(rpt => [\n month.push(checkMonth(rpt.month)),\n added.push(rpt.added ? rpt.added : 0),\n inactivated.push(rpt.inactivations ? rpt.inactivations : 0),\n reactivated.push(rpt.reactivations ? rpt.reactivations : 0),\n disabled.push(rpt.disabled ? rpt.disabled : 0),\n ]),\n ];\n\n const datasets = [\n {\n label: messages[lang]['reports.userTracking.added'],\n backgroundColor: '#46b474',\n backgroundColorHover: '#46b474',\n data: added,\n fill: true,\n },\n {\n label: messages[lang]['reports.userTracking.inactivated'],\n backgroundColor: '#ef5d58',\n backgroundColorHover: '#ef5d58',\n data: inactivated,\n fill: true,\n },\n {\n label: messages[lang]['reports.userTracking.reactivated'],\n backgroundColor: '#095289',\n backgroundColorHover: '#095289',\n data: reactivated,\n fill: true,\n },\n {\n label: messages[lang]['reports.userTracking.disabled'],\n backgroundColor: '#808285',\n backgroundColorHover: '#808285',\n data: disabled,\n fill: true,\n },\n ];\n\n return (\n
\n \n
\n );\n};\n\nMonthlyFollowupChart.defaultProps = {\n height: '350px',\n width: '350px',\n};\n\nMonthlyFollowupChart.propTypes = {\n height: PropTypes.string,\n width: PropTypes.string,\n};\n\nexport default MonthlyFollowupChart;\n","import React, { useState, useEffect } from 'react';\nimport axios from 'axios';\nimport { FormattedMessage } from 'react-intl';\nimport MonthlyFollowupChart from '../../../Charts/MonthlyFollowupChart';\nimport Loading from '../../../../icons/Loading';\nimport Download from '../../../../icons/Download';\nimport messages from '../../../../BLL/locale/messages';\nimport messagesMonth from '../../../../BLL/locale/messagesMonths';\nimport { host, getDomain, getToken } from '../../../../BLL/environment';\n\nimport style from './reportClientMonthlyFollowup.module.scss';\n\nconst ReportClienthMonthlyFollowup = (props) => {\n const lang = !localStorage.contacttoLang ? 'pt' : localStorage.contacttoLang;\n const [report, setReport] = useState(undefined);\n const [loading, setLoading] = useState(true);\n const [csvUrl, setCsvUrl] = useState('');\n const [pdfUrl, setPdfUrl] = useState('');\n const [showChart, setShowChart] = useState(false);\n\n useEffect(() => {\n if (props.match.params.filter) {\n fetchFollowupReport(props.match.params.filter);\n }\n }, [props.match.params.filter]);\n\n const fetchFollowupReport = (filter) => {\n axios({\n method: 'GET',\n url: `https://${getDomain()}${host()}/api/reports/clients-monthly-report/?${filter}`,\n headers: { Authorization: `Token ${getToken()}` },\n }).then((resp) => {\n setReport(resp.data.data);\n setCsvUrl(resp.data.csv_url);\n setPdfUrl(resp.data.pdf_url);\n setLoading(false);\n }).catch((err) => {\n console.log(err.response);\n });\n };\n\n const getMonthString = (month) => {\n switch (month) {\n case 1:\n return messagesMonth[lang].january;\n case 2:\n return messagesMonth[lang].february;\n case 3:\n return messagesMonth[lang].march;\n case 4:\n return messagesMonth[lang].april;\n case 5:\n return messagesMonth[lang].may;\n case 6:\n return messagesMonth[lang].june;\n case 7:\n return messagesMonth[lang].july;\n case 8:\n return messagesMonth[lang].august;\n case 9:\n return messagesMonth[lang].september;\n case 10:\n return messagesMonth[lang].october;\n case 11:\n return messagesMonth[lang].november;\n case 12:\n return messagesMonth[lang].december;\n default:\n return '';\n }\n };\n\n const loadRows = () => {\n return report.map(data => (\n \n {getMonthString(data.month)}\n {data.added}\n {data.inactivations}\n {data.reactivations}\n {data.disabled}\n \n ));\n };\n\n return (\n
\n
\n  \n \n \n \n
\n
\n
\n setShowChart(!showChart)}\n style={{ border: 'solid 1px #efefef' }}\n title={`${showChart ? messages[lang]['reports.reportButton'] : messages[lang]['reports.graphicButton']}`}\n >\n \n \n
\n \n \n
\n {loading\n ? } />\n : (report &&\n (!showChart\n ?\n
\n \n \n \n \n \n \n \n {loadRows()}\n
\n :\n
\n {report.length > 0 &&\n \n }\n
\n )\n )\n }\n
\n );\n\n};\n\nexport default ReportClienthMonthlyFollowup;\n","import React, { useState, useEffect } from 'react';\nimport axios from 'axios';\nimport { FormattedMessage } from 'react-intl';\nimport ClientTotalMonthlyChart from '../../../Charts/ClientTotalMonthlyChart';\nimport Loading from '../../../../icons/Loading';\nimport Download from '../../../../icons/Download';\nimport messages from '../../../../BLL/locale/messages';\nimport messagesMonth from '../../../../BLL/locale/messagesMonths';\nimport { host, getDomain, getToken } from '../../../../BLL/environment';\n\nimport style from './reportClientMonthlyFollowup.module.scss';\n\nconst ReportClientTotalMonthly = (props) => {\n const lang = !localStorage.contacttoLang ? 'pt' : localStorage.contacttoLang;\n const [report, setReport] = useState(undefined);\n const [loading, setLoading] = useState(true);\n const [csvUrl, setCsvUrl] = useState('');\n const [pdfUrl, setPdfUrl] = useState('');\n const [showChart, setShowChart] = useState(false);\n\n useEffect(() => {\n if (props.match.params.filter) {\n fetchTotalMonthlyReport(props.match.params.filter);\n }\n }, [props.match.params.filter]);\n\n const fetchTotalMonthlyReport = (filter) => {\n axios({\n method: 'GET',\n url: `https://${getDomain()}${host()}/api/reports/clients-total-month/${filter && `?year=${filter}`}`,\n headers: { Authorization: `Token ${getToken()}` },\n }).then((resp) => {\n setReport(resp.data.data);\n setCsvUrl(resp.data.csv_url);\n setPdfUrl(resp.data.pdf_url);\n setLoading(false);\n }).catch((err) => {\n console.log(err.response);\n setLoading(false);\n })\n };\n\n const getMonthString = (month) => {\n switch (month) {\n case 1:\n return messagesMonth[lang].january;\n case 2:\n return messagesMonth[lang].february;\n case 3:\n return messagesMonth[lang].march;\n case 4:\n return messagesMonth[lang].april;\n case 5:\n return messagesMonth[lang].may;\n case 6:\n return messagesMonth[lang].june;\n case 7:\n return messagesMonth[lang].july;\n case 8:\n return messagesMonth[lang].august;\n case 9:\n return messagesMonth[lang].september;\n case 10:\n return messagesMonth[lang].october;\n case 11:\n return messagesMonth[lang].november;\n case 12:\n return messagesMonth[lang].december;\n default:\n return '';\n }\n };\n\n const loadRows = () => {\n return report.map(data => (\n \n {getMonthString(data.month)} / {data.year}\n \n \n {data.total}\n \n ));\n };\n\n return (\n
\n
\n   \n \n \n
\n
\n
\n setShowChart(!showChart)}\n style={{ border: 'solid 1px #efefef' }}\n title={`${showChart ? messages[lang]['reports.reportButton'] : messages[lang]['reports.graphicButton']}`}\n >\n \n \n
\n \n \n
\n {loading\n ? } />\n : (report &&\n (!showChart\n ?\n
\n \n \n \n \n \n \n {loadRows()}\n
\n :\n
\n {report.length > 0 &&\n \n }\n
\n )\n )\n }\n
\n );\n};\n\nexport default ReportClientTotalMonthly;\n","import React from 'react';\nimport PropTypes from 'prop-types';\nimport moment from 'moment';\n\nimport style from './reportCompanyDetails.module.scss';\n\nconst ReportCompanyDetailsRow = ({ client }) => (\n
\n
{client.account}
\n
{client.first_name} {client.last_name}
\n
{moment(client.created_date).format('DD/MM/YYYY - HH:mm')}
\n
{client.is_deleted ? moment(client.modified_date).format('DD/MM/YYYY - HH:mm') : '-'}
\n
{client.active_days}
\n
\n);\n\nReportCompanyDetailsRow.propTypes = {\n client: PropTypes.shape({\n id: PropTypes.number,\n first_name: PropTypes.string,\n last_name: PropTypes.string,\n account: PropTypes.string,\n created_date: PropTypes.string,\n modified_date: PropTypes.string,\n is_deleted: PropTypes.bool,\n }).isRequired,\n};\n\nexport default ReportCompanyDetailsRow;\n","import React, { useState, useEffect } from 'react';\nimport PropTypes from 'prop-types';\nimport axios from 'axios';\nimport { FormattedMessage } from 'react-intl';\nimport ReportCompanyDetailsRow from './ReportCompanyDetailsRow';\nimport Loading from '../../../../icons/Loading';\nimport Download from '../../../../icons/Download';\nimport { host, getDomain, getToken } from '../../../../BLL/environment';\nimport { naturalSort } from '../../../../BLL/general';\n\nimport style from './reportClientByCompany.module.scss';\n\nconst ReportCompanyDetails = (props) => {\n const [report, setReport] = useState(undefined);\n const [csvUrl, setCsvUrl] = useState('');\n const [pdfUrl, setPdfUrl] = useState('');\n const [ordering, setOrdering] = useState('-id');\n const [loading, setLoading] = useState(true);\n const [company, setCompany] = useState('');\n\n useEffect(() => {\n if (props.match.params) {\n fetchCompanyDetailsReport(props.match.params.companyId, props.match.params.filter);\n }\n }, [props.match.params.companyId, props.match.params.filter]);\n\n const fetchCompanyDetailsReport = (companyId, filter) => {\n axios({\n method: 'GET',\n url: `https://${getDomain()}${host()}/api/reports/clients-by-company-detailed/${companyId}/?${filter}`,\n headers: { Authorization: `Token ${getToken()}` },\n }).then((resp) => {\n setReport(resp.data.cli_list);\n setCompany(resp.data.company);\n setCsvUrl(resp.data.csv_url);\n setPdfUrl(resp.data.pdf_url);\n setLoading(false);\n }).catch((err) => {\n console.log(err.response);\n setLoading(false);\n });\n };\n\n const handleOrderChange = (newOrder) => {\n if (ordering !== newOrder) {\n setReport(report.sort((a, b) => {\n const nameA = `${a[newOrder].toLowerCase()}${a.attend_id}`\n const nameB = `${b[newOrder].toLowerCase()}${b.attend_id}`;\n return naturalSort(nameA, nameB)\n }));\n setOrdering(newOrder);\n } else {\n setReport(report.sort((a, b) => {\n const nameA = `${a[newOrder].toLowerCase()}${a.attend_id}`\n const nameB = `${b[newOrder].toLowerCase()}${b.attend_id}`;\n return naturalSort(nameB, nameA)\n }));\n setOrdering(`-${newOrder}`);\n }\n };\n\n return (\n
\n
\n   \n {company.toUpperCase()}\n \n
\n
\n \n \n
\n \n
\n {loading\n ? } />\n : report &&\n
\n
\n \n \n \n
\n \n
\n
\n \n
\n
\n
\n {report && report.length > 0\n ? report.map(row => )\n :
\n }\n
\n
\n }\n
\n );\n\n};\n\nReportCompanyDetails.propTypes = {\n user: PropTypes.shape({\n id: PropTypes.number,\n username: PropTypes.string,\n first_name: PropTypes.string,\n last_name: PropTypes.string,\n }).isRequired,\n params: PropTypes.shape({\n companyId: PropTypes.string.isRequired,\n }).isRequired,\n};\n\nexport default ReportCompanyDetails;\n","import React from 'react';\nimport PropTypes from 'prop-types';\nimport '../../css/contactto.scss';\n\nimport CustomChart from './CustomChart';\n\nconst ClientByCompanyChart = ({ height, report, width }) => {\n const names = [];\n const values = [];\n const rows = [\n ...report.map((rpt) => {\n names.push(rpt.company);\n values.push(rpt.total);\n }),\n ];\n\n return (\n
\n \n
\n );\n};\n\nClientByCompanyChart.defaultProps = {\n height: '350px',\n width: '350px',\n};\n\nClientByCompanyChart.propTypes = {\n height: PropTypes.string,\n report: PropTypes.arrayOf(\n PropTypes.shape({\n total: PropTypes.number,\n name: PropTypes.string,\n }),\n ).isRequired,\n width: PropTypes.string,\n};\n\nexport default ClientByCompanyChart;\n","import React from 'react';\nimport PropTypes from 'prop-types';\nimport { Link } from 'react-router-dom';\nimport style from './reportClientByCompany.module.scss';\n\nconst ReportClientByCompanyRow = ({ report, filterDate }) => (\n \n
{report.company}
\n
{report.company_id}
\n
{report.total}
\n \n);\n\nReportClientByCompanyRow.propTypes = {\n report: PropTypes.shape({\n company: PropTypes.string,\n company_id: PropTypes.number,\n total: PropTypes.number,\n }).isRequired\n};\n\nexport default ReportClientByCompanyRow;\n","import React, { useState, useEffect } from 'react';\nimport axios from 'axios';\nimport { FormattedMessage } from 'react-intl';\nimport ClientByCompanyChart from '../../../Charts/ClientByCompanyChart';\nimport ReportClientByCompanyRow from './ReportClientByCompanyRow';\nimport Loading from '../../../../icons/Loading';\nimport Download from '../../../../icons/Download';\nimport { host, getDomain, getToken } from '../../../../BLL/environment';\nimport messages from '../../../../BLL/locale/messages';\nimport { clientsOrdering } from '../../../../BLL/globals';\n\nimport style from './reportClientByCompany.module.scss';\n\nconst ReportClientByCompany = (props) => {\n const lang = !localStorage.contacttoLang ? 'pt' : localStorage.contacttoLang;\n const [report, setReport] = useState(undefined);\n const [loading, setLoading] = useState(true);\n const [csvUrl, setCsvUrl] = useState('');\n const [pdfUrl, setPdfUrl] = useState('');\n const [showChart, setShowChart] = useState(false);\n\n useEffect(() => {\n if (props.match.params.filter) {\n fetchClientByCompanyReport(props.match.params.filter);\n }\n }, [props.match.params.filter]);\n\n const fetchClientByCompanyReport = (filter) => {\n axios({\n method: 'GET',\n url: `https://${getDomain()}${host()}/api/reports/clients-by-company/?${filter}`,\n headers: { Authorization: `Token ${getToken()}` },\n }).then((resp) => {\n setReport(resp.data.report);\n setCsvUrl(resp.data.csv_url);\n setPdfUrl(resp.data.pdf_url);\n setLoading(false);\n }).catch((err) => {\n console.log(err.response);\n setLoading(false);\n });\n };\n\n return (\n
\n
\n   \n \n
\n
\n
\n setShowChart(!showChart)}\n style={{ border: 'solid 1px #efefef' }}\n title={`${showChart ? messages[lang]['reports.reportButton'] : messages[lang]['reports.graphicButton']}`}\n >\n \n \n
\n \n \n
\n {loading\n ? } />\n : (report &&\n (!showChart\n ?\n
\n
\n
\n \n
\n
\n \n
\n
\n \n
\n
\n
\n {report.length > 0 ? report\n .map(rpt =>\n ,\n )\n :\n
\n }\n
\n
\n :\n
{report.length > 0 &&\n }\n
\n )\n )\n }\n
\n );\n\n};\n\nexport default ReportClientByCompany;\n","import React, { useState, useEffect } from 'react';\nimport { Marker, InfoWindow } from '@react-google-maps/api';\nimport { FormattedMessage } from 'react-intl';\nimport { firstIcon, lastIcon } from '../../../../icons/trackerIcons';\nimport { Link } from \"react-router-dom\";\nimport './clientLocation.module.scss';\n\nconst MapMarker = ({ client, isHovered, clusterer, selectedClient, setSelectedClient, isGps }) => {\n const [isInfoWindowOpen, setIsInfoWindowOpen] = useState(false);\n\n useEffect(() => {\n if (selectedClient?.id === client.id) {\n setIsInfoWindowOpen(true);\n }\n }, [selectedClient, client]);\n\n const closeInfoWindow = () => {\n setIsInfoWindowOpen(false);\n if (selectedClient?.id === client.id) {\n setSelectedClient(null);\n }\n }\n\n return (\n setIsInfoWindowOpen(true)}\n position={{ lat: parseFloat(client.lat), lng: parseFloat(client.lng) }}\n icon={isHovered || selectedClient?.id === client.id ? lastIcon : firstIcon}\n clusterer={clusterer}\n >\n {isInfoWindowOpen &&\n closeInfoWindow()}>\n
\n Nome: {client.first_name} {client.last_name}\n Conta: {client.account}\n Tipo do Sinal: {isGps ? 'GPS' : 'Wi-Fi'}\n {client.battery && Bateria: {client.battery}%}\n {client.is_charging !== null && \n <>\n Carregando: {client.is_charging ?\n :\n \n }\n \n \n }\n \n Ir para filtro\n \n
\n
\n }\n \n );\n};\n\nexport default MapMarker;\n","import React, { useState, useCallback, useEffect, useRef, useMemo } from 'react';\nimport PropTypes from 'prop-types';\nimport axios from 'axios';\nimport config from '../../../../BLL/config';\nimport { getDomain, host, getToken } from \"../../../../BLL/environment\";\nimport { FormattedMessage } from 'react-intl';\nimport { GoogleMap, useJsApiLoader, Marker, MarkerClusterer } from '@react-google-maps/api';\nimport { lastIcon } from '../../../../icons/trackerIcons';\nimport Loading from '../../../../icons/Loading';\nimport style from './clientLocation.module.scss';\nimport MapMarker from './ClientLocationMapMarker';\n\nconst ClientLocationMap = ({ selectedCompany }) => {\n const { isLoaded } = useJsApiLoader({\n id: 'google-map-script',\n googleMapsApiKey: config.googleMapsApiKey\n });\n const [map, setMap] = useState(null);\n const [clients, setClients] = useState([]);\n const [loading, setLoading] = useState(true);\n const [selectedClient, setSelectedClient] = useState(null)\n const [hoveredClient, setHoveredClient] = useState(null);\n const [filter, setFilter] = useState('');\n const initialLoad = useRef(true);\n const mapRef = useRef(null);\n\n useEffect(() => {\n if(selectedCompany) {\n const fetchData = async () => {\n try {\n const response = await axios.get(`https://${getDomain()}${host()}/api/client-locations/?group_id=${selectedCompany}`, {\n headers: { Authorization: `Token ${getToken()}` },\n });\n setClients(response.data);\n setLoading(false);\n if (mapRef.current && initialLoad.current) {\n const bounds = new window.google.maps.LatLngBounds();\n response.data.forEach(client => {\n if (client.lat && client.lng) {\n bounds.extend({ lat: client.lat, lng: client.lng });\n }\n });\n mapRef.current.fitBounds(bounds);\n initialLoad.current = false;\n }\n } catch (error) {\n console.error('Error fetching client locations:', error);\n setLoading(false);\n }\n };\n \n initialLoad.current = true;\n setSelectedClient(null);\n fetchData();\n \n const interval = setInterval(fetchData, 10000);\n return () => clearInterval(interval);\n }\n }, [selectedCompany]);\n\n const onUnmount = useCallback((map) => {\n setMap(null);\n }, []);\n\n const getLatestTimestamp = (client) => {\n const timestamps = [\n client.timestamp,\n client.general_timestamp,\n client.wifi_timestamp\n ]\n\n return Math.max(...timestamps);\n };\n\n const isGps = (client) => {\n const latestTimestamp = getLatestTimestamp(client);\n return latestTimestamp !== client.wifi_timestamp;\n };\n\n const handleClientClick = (client) => {\n setSelectedClient(client);\n if (mapRef.current && client.lat && client.lng) {\n mapRef.current.panTo({ lat: parseFloat(client.lat), lng: parseFloat(client.lng) });\n mapRef.current.setZoom(16);\n }\n };\n\n const resetZoom = () => {\n if (mapRef.current && clients.length > 0) {\n const bounds = new window.google.maps.LatLngBounds();\n clients.forEach(client => {\n if (client.lat && client.lng) {\n bounds.extend({ lat: client.lat, lng: client.lng });\n }\n });\n mapRef.current.fitBounds(bounds);\n setSelectedClient(null);\n setHoveredClient(null);\n }\n }\n\n const formatDate = (timestamp) => {\n if (!timestamp) {\n return \"Loc não enviada\";\n }\n const date = new Date(timestamp * 1000);\n const day = String(date.getDate()).padStart(2, '0');\n const month = String(date.getMonth() + 1).padStart(2, '0');\n const year = date.getFullYear();\n const hours = String(date.getHours()).padStart(2, '0');\n const minutes = String(date.getMinutes()).padStart(2, '0');\n return `${day}/${month}/${year} - ${hours}:${minutes}`;\n };\n\n const filteredClients = useMemo(() => {\n return clients.filter((client) => \n !client.is_deleted &&\n (client.account.toLowerCase().includes(filter) ||\n `${client.first_name.toLowerCase()} ${client.last_name.toLowerCase()}`.includes(filter))\n );\n }, [clients, filter]);\n \n if (loading && !isLoaded) {\n return } />;\n }\n\n return (\n
\n
\n \n \n
\n
\n
\n setFilter(e.target.value.toLowerCase())}\n />\n
\n
\n
Conta
\n
Nome
\n
Data Último Envio
\n
\n
\n {filteredClients.map((client) => (\n setHoveredClient(client)}\n onMouseLeave={() => setHoveredClient(null)}\n onClick={() => handleClientClick(client)}\n >\n
{client.account}
\n
{client.first_name.split(' ')[0]} {client.last_name.split(' ').pop()}
\n
{formatDate(getLatestTimestamp(client))}
\n
\n ))}\n
\n
\n
\n (mapRef.current = map)}\n onUnmount={onUnmount}\n options={{\n disableDefaultUI: true,\n clickableIcons: false\n }}\n >\n \n {(clusterer) => \n clients.map(client => (\n client.lat && client.lng && (\n \n )\n ))\n }\n \n {hoveredClient?.lat && hoveredClient?.lng && (\n \n )}\n {selectedClient?.lat && selectedClient?.lng && (\n \n )}\n \n
\n
\n )\n};\n\nClientLocationMap.propTypes = {\n selectedCompany: PropTypes.oneOfType([PropTypes.number, PropTypes.string]).isRequired,\n};\n\nexport default ClientLocationMap;\n","import React, { useState, useEffect } from 'react';\nimport ManagementMenu from '../ManagementMenu';\nimport { useSelector } from \"react-redux\";\nimport { FormattedMessage } from \"react-intl\";\n\nimport style from './clientLocation.module.scss';\nimport ClientLocationMap from './ClientLocationMap';\n\nconst ClientLocationPage = (props) => {\n const { loggedAttendant, companies, isSysAdm } = useSelector(\n (state) => ({\n loggedAttendant: state.loggedAttendant,\n companies: state.groups.filter((grp) => ![1, 2, 3, 4].includes(grp.id)),\n isSysAdm: state.loggedAttendant.groups\n ? (state.loggedAttendant.groups[0] === 1 ||\n state.loggedAttendant.groups[0] === 4) &&\n state.loggedAttendant.groups.length === 1\n : false,\n })\n );\n const [selectedCompany, setSelectedCompany] = useState('0');\n\n useEffect(() => {\n if (!isSysAdm) {\n const company = companies.find(company => loggedAttendant.groups.includes(company.id));\n console.log(company);\n setSelectedCompany(company.id)\n }\n }, [companies, isSysAdm, loggedAttendant]);\n\n return (\n
\n
\n
\n
\n \n
\n {isSysAdm &&\n setSelectedCompany(e.target.value)}\n >\n \n {companies.length > 0 && companies.sort((compA, compB) => compA.name.localeCompare(compB.name)).map(company => (\n \n ))}\n \n }\n {(parseInt(selectedCompany) !== 0) &&\n \n }\n
\n
\n )\n}\n\nexport default ClientLocationPage;\n","import React, { useState, useEffect } from 'react';\nimport axios from 'axios';\nimport { connect } from 'react-redux';\nimport { FormattedMessage } from 'react-intl';\nimport detail from '../../../css/detail.module.scss';\nimport { broadcast } from '../../../BLL/general';\nimport { getDomain, host, getToken } from '../../../BLL/environment';\nimport countryList from '../../../BLL/locale/messagesCountries';\nimport * as general from '../../../BLL/general';\nimport { validateCPF } from '../../../BLL/validate';\nimport SelectInput from '../../Common/SelectInput';\nimport formStyle from '../../../css/form.module.scss';\nimport styles from './activate.module.scss';\nimport '../../../css/formPage.scss';\n\nconst Activate = (props) => {\n const countries = countryList[props.lang];\n const [isSaving, setIsSaving] = useState(false);\n const [state, setState] = useState({\n cpf: '',\n zip_code: '',\n street: '',\n number: '',\n district: '',\n complement: '',\n city: '',\n country: 'BR',\n state: 'RS'\n });\n const [validator, setValidator] = useState({\n cpf: {\n validate: true,\n message: ''\n },\n zip_code: {\n validate: true,\n message: ''\n },\n street: {\n validate: true,\n message: ''\n },\n number: {\n validate: true,\n message: ''\n },\n district: {\n validate: true,\n message: ''\n },\n city: {\n validate: true,\n message: ''\n }\n });\n\n const handleChange = (e) => {\n const { id, value } = e.target;\n const newState = state;\n switch (id) {\n case 'country': {\n newState[id] = value;\n if (value !== 'BR') {\n newState.state = '-';\n }\n break;\n }\n case 'cpf': {\n newState[id] = general.cpfMask(value);\n break;\n }\n case 'zip_code': {\n newState[id] = state.country === 'BR' ? general.zipCode(value) : value;\n break;\n }\n default: {\n newState[id] = value;\n break;\n }\n }\n setState(Object.assign({}, newState));\n checkValidation(id, value);\n };\n\n const checkValidation = (id, value) => {\n const newValidator = validator;\n switch (id) {\n case 'zip_code': {\n const validate = general.removeNonDigit(value).length === 8;\n newValidator[id].validate = validate;\n if (!validate) {\n newValidator[id].message = ;\n } else {\n newValidator[id].message = '';\n }\n break;\n }\n case 'cpf': {\n const arr = value.split('');\n const val = arr.filter(el => /\\d/.test(el)).join('');\n const mask = '000.000.000-00';\n const valueLength = value.length;\n if (valueLength > 0) {\n if (valueLength < mask.length) {\n newValidator[id].validate = false;\n newValidator[id].message = ;\n } else if (!validateCPF(val)) {\n newValidator[id].validate = false;\n newValidator[id].message = ;\n } else {\n newValidator[id].validate = valueLength === 0 || valueLength === mask.length;\n newValidator[id].message = '';\n }\n } else {\n newValidator[id].validate = valueLength === 0 || valueLength === mask.length;\n newValidator[id].message = '';\n }\n break;\n }\n default: {\n break;\n }\n }\n setValidator(Object.assign({}, newValidator));\n }\n\n const activatePlan = () => {\n const values = {\n cpf_cnpj: general.removeNonDigit(state.cpf, true),\n street: state.street,\n number: state.number,\n district: state.district,\n complement: state.complement,\n zip_code: general.removeNonDigit(state.zip_code, true),\n city: state.city,\n state: state.state,\n country: state.country,\n };\n const data = JSON.stringify(values);\n const URL = `https://${getDomain()}${host()}/api/activate/`;\n setIsSaving(true);\n\n axios({\n url: URL,\n method: 'put',\n data,\n headers: {\n Accept: 'application/json',\n 'Content-Type': 'application/json',\n Authorization: `Token ${localStorage.token}`,\n },\n }).then((res) => {\n broadcast(axios, props.channelId, {\n type: 'activation',\n update: 'activate plan',\n text: 'Atualização na versão do plano. Você será deslogado.',\n }).then(() => {\n console.log('efetuou o broadcast');\n });\n }).catch((err) => {\n console.log('Erro na ativação do cliente', err);\n });\n }\n\n const activeSubmit = Object.keys(validator).every(el => {\n return state[el] !== '' && validator[el].validate;\n });\n\n return (\n
\n
\n \n
\n
\n
\n \n
\n \n
\n {/* CPF - CEP */}\n
\n
\n
\n
\n \n \n {!validator.cpf.validate && validator.cpf.message &&\n
\n {validator.cpf.message}\n
\n }\n
\n
\n
\n
\n \n \n {!validator.zip_code.validate && validator.zip_code.message &&\n
\n {validator.zip_code.message}\n
\n }\n
\n
\n
\n
\n {/* Street */}\n
\n
\n
\n
\n \n \n
\n
\n
\n
\n {/* Number - Complement */}\n
\n
\n
\n
\n \n \n
\n
\n
\n
\n \n \n
\n
\n
\n
\n {/* District - City */}\n
\n
\n
\n
\n \n \n
\n
\n
\n
\n \n \n
\n
\n
\n
\n {/* State - Country */}\n
\n
\n
\n
\n \n \n
\n\n
\n
\n
\n \n \n {countries.map(country => \n \n )}\n \n
\n
\n
\n
\n
\n
\n
\n {/* Container de botão */}\n
\n
\n activatePlan()}\n >\n \n \n
\n
\n
\n
\n )\n}\n\nfunction mapStateToProps(state) {\n return {\n lang: state.locale.lang,\n };\n}\n\nexport default connect(mapStateToProps)(Activate);\n","/* eslint-disable import/no-anonymous-default-export */\nexport default {\n en: {\n attendDashboardId: 'Event Analysis',\n timeDashboardId: 'Time Analysis',\n contactDashboardId: 'Contact Analysis',\n equipmentDashboardId: 'Equipment Analysis',\n ev07BDashboardId: 'EV07B Battery Analysis',\n ataDashboardId: 'Ata Analysis',\n clientDashboardId: 'User Analysis',\n attendCountingDashboardId: 'Event counting Analysis'\n },\n pt: {\n attendDashboardId: 'Análise de Atendimentos',\n timeDashboardId: 'Análise de Tempo',\n contactDashboardId: 'Análise de Contatos',\n equipmentDashboardId: 'Análise de Equipamentos',\n ev07BDashboardId: 'Análise de baterias - EV07B',\n ataDashboardId: 'Análise de Atas',\n clientDashboardId: 'Análise de Usuários',\n attendCountingDashboardId: 'Análise da Contagem de Atendimentos'\n }\n}\n","import React, { useState, useEffect } from 'react';\nimport PropTypes from 'prop-types';\nimport { connect } from 'react-redux';\nimport axios from 'axios';\nimport { getDomain, host, getToken } from '../../../../BLL/environment';\nimport messages from '../../../../BLL/locale/messageDashboards';\n\nconst QuickSightPage = (props) => {\n const lang = !localStorage.contacttoLang ? 'pt' : localStorage.contacttoLang;\n const [embedUrl, setEmbedUrl] = useState('');\n const [dashboardIds, setDashboardIds] = useState({});\n const [sessionId, setSessionId] = useState('');\n\n useEffect(() => {\n const fetchEmbedUrl = () => {\n axios.get(`https://${getDomain()}${host()}/api/reports/quicksight/`, {\n headers: { Authorization: `Token ${getToken()}` },\n })\n .then((res) => {\n console.log(res);\n const sessionId = res.data.embedUrl.split('/')[4];\n setSessionId(sessionId);\n setEmbedUrl(res.data.embedUrl);\n setDashboardIds(res.data.dashboards);\n })\n .catch((err) => {\n console.log(err);\n });\n };\n\n const isAdmin = props.loggedAttendant.groups.some(grp => grp === 1);\n const isOwner = props.loggedAttendant.groups.some(grp => grp === 4);\n if (isAdmin || isOwner) {\n fetchEmbedUrl();\n } else {\n props.history.push('/app');\n }\n\n }, [props.loggedAttendant, props.history]);\n\n const changeDashboard = (event) => {\n const value = event.target.value;\n const dashboardId = dashboardIds[value];\n const newUrl = `https://sa-east-1.quicksight.aws.amazon.com/embed/${sessionId}/dashboards/${dashboardId}`;\n setEmbedUrl(newUrl);\n }\n\n return (\n
\n
\n {Object.keys(dashboardIds).length > 0 &&\n \n }\n
\n {embedUrl &&\n
\n \n
\n }\n
\n );\n};\n\nQuickSightPage.propTypes = {\n loggedAttendant: PropTypes.shape({\n id: PropTypes.number,\n groups: PropTypes.arrayOf(\n PropTypes.number\n ),\n }),\n};\n\nfunction mapStateToProps(state) {\n return {\n loggedAttendant: state.loggedAttendant,\n };\n};\n\nexport default connect(mapStateToProps)(QuickSightPage);\n","import React from 'react';\nimport PropTypes from 'prop-types';\nimport { Route, Switch, Redirect } from 'react-router-dom';\nimport DashboardPage from './Dashboard/DashboardPage';\nimport ClientPage from './Clients/ClientPage';\nimport ClientDetail from './Clients/ClientDetail';\nimport ClientForm from './Clients/Form/ClientForm';\nimport ClientTrackeriHelp from './Clients/Trackers/TrackeriHelp';\nimport ClientTrackerIGO from './Clients/Trackers/TrackerIGO';\nimport ClientTrackerClimax from './Clients/Trackers/TrackerClimax';\nimport ClientTrackerEV07B from './Clients/Trackers/TrackerEv07b';\nimport HistoryComponent from './Clients/History/HistoryComponent';\nimport ContactPage from './Contacts/ContactPage';\nimport ContactDetail from './Contacts/ContactDetail';\nimport ContactForm from './Contacts/ContactForm';\nimport TransmitterPage from './Transmitters/TransmitterPage';\nimport TransmitterDetail from './Transmitters/TransmitterDetail';\nimport TransmitterForm from './Transmitters/TransmitterForm';\nimport AttendsPage from './Attends/AttendsPage';\nimport AttendClosed from './Attends/AttendClosed';\nimport AttendOpen from './Attends/AttendOpen';\nimport AttendantManagement from './Manage/Attendants/AttendantManagement';\nimport AlarmManagement from './Manage/Alarms/AlarmManagement';\nimport CompaniesManagement from './Manage/Companies/CompanyPage';\nimport OnlineAttendantsPage from './Manage/OnlineAttendants/OnlinePage';\nimport IoTDeviceList from './Manage/internetOfThings/IoTDeviceList';\nimport AtaDeviceList from './Manage/AtaList/AtaDeviceList';\nimport UserForm from './User/UserForm';\nimport UserCompanyForm from './User/UserCompanyForm';\nimport AlarmForm from './Manage/Alarms/AlarmForm';\nimport CompanyForm from './Manage/Companies/CompanyForm';\nimport Configuration from './Configuration/Configuration';\nimport ReportPage from './Reports/ReportPage';\nimport ReportAlarm from './Reports/Alarm/ReportAlarm';\nimport ReportAttend from './Reports/Attend/ReportAttendPeriod';\nimport ReportAttendsByTag from './Reports/Attend/ReportAttendsByTag';\nimport ReportAttendant from './Reports/Attendant/ReportAttendant';\nimport ReportLengthStay from './Reports/Client/ReportLengthOfStay';\nimport ReportClienthMonthlyFollowup from './Reports/Client/ReportClientMonthlyFollowup';\nimport ReportClientTotalMonthly from './Reports/Client/ReportClientTotalMonthly';\nimport ReportCompanyDetails from './Reports/Companies/ReportCompanyDetails';\nimport ReportClientByCompany from './Reports/Companies/ReportClientByCompany';\nimport ClientLocationPage from './Manage/ClientLocation/ClientLocationPage';\nimport Activate from './Activation/Activate';\nimport QuickSightPage from './Manage/Quicksight/QuicksightPage';\n\nimport { redirect } from '../../index';\nimport '../../css/middle.scss';\nimport '../../css/print.scss';\n\nconst Middle = (props) => {\n const passEmergencyToChildren = () => {\n const {\n app,\n attendSip,\n channelId,\n clearList,\n extendCall,\n hangupSip,\n muteAudio,\n mutePhone,\n sendDTMF,\n testEchoSip,\n startCall,\n sendPERSPassword,\n setUserBusy,\n takeEmergency,\n toggleAudio,\n user,\n status,\n isPaid,\n isOwner,\n isAdmin,\n sipStackType,\n } = props;\n return React.Children.map(props.app, (child) => {\n if (child.type.name === 'DashboardPage') {\n return React.cloneElement(child, {\n clearList,\n toggleAudio,\n channelId,\n user,\n setUserBusy,\n isAdmin,\n sipStackType,\n });\n }\n return React.cloneElement(child, {\n user,\n attendSip,\n hangupSip,\n extendCall,\n clearList,\n channelId,\n setUserBusy,\n takeEmergency,\n muteAudio,\n mutePhone,\n sendDTMF,\n testEchoSip,\n startCall,\n sendPERSPassword,\n status,\n isPaid,\n isOwner,\n isAdmin,\n sipStackType,\n });\n });\n };\n return (\n
\n {passEmergencyToChildren()}\n \n } />\n {/* Clients */}\n } />\n } />\n } />\n } />\n } />\n } />\n } />\n } />\n } />\n {/* Contacts */}\n } />\n } />\n } />\n {/* Transmitters */}\n } />\n } />\n } />\n {/* AttendsPage */}\n } />\n } />\n } />\n {/* Reports */}\n } />\n } />\n } />\n } />\n } />\n } />\n } />\n } />\n } />\n } />\n {/* Management */}\n } />\n } />\n } />\n } />\n } />\n } />\n } />\n } />\n } />\n } />\n } />\n } />\n } />\n } />\n } />\n \n
\n );\n\n}\n\nMiddle.defaultProps = {\n sipStackType: '',\n};\n\nMiddle.propTypes = {\n app: PropTypes.node.isRequired,\n attendSip: PropTypes.func.isRequired,\n channelId: PropTypes.string.isRequired,\n clearList: PropTypes.func.isRequired,\n extendCall: PropTypes.func.isRequired,\n hangupSip: PropTypes.func.isRequired,\n muteAudio: PropTypes.func.isRequired,\n mutePhone: PropTypes.func.isRequired,\n sendDTMF: PropTypes.func.isRequired,\n testEchoSip: PropTypes.func.isRequired,\n startCall: PropTypes.func.isRequired,\n sendPERSPassword: PropTypes.func.isRequired,\n setUserBusy: PropTypes.func.isRequired,\n takeEmergency: PropTypes.func.isRequired,\n toggleAudio: PropTypes.func.isRequired,\n status: PropTypes.string.isRequired,\n isPaid: PropTypes.bool.isRequired,\n isOwner: PropTypes.bool.isRequired,\n sipStackType: PropTypes.string,\n};\n\nexport default Middle;\n","import React, { useEffect } from 'react';\nimport { FormattedMessage } from 'react-intl';\nimport { getDomain } from '../../BLL/environment';\nimport style from './rocketChat.module.scss'\n\nconst RocketChat = (props) => {\n useEffect(() => {\n window.addEventListener('message', (e) => {\n if (e.data && e.data.eventName === 'new-message') {\n props.toggleNewMessage();\n }\n });\n }, []);\n let realm;\n if (window.location.hostname === 'localhost' || window.location.hostname === '172.20.31.143') {\n realm = 'rocket-chat.test';\n } else if (window.location.hostname.indexOf('homologation') !== -1) {\n realm = 'rocket-chat-homologation.contactto.care';\n } else {\n realm = 'rocket-chat.contactto.care';\n }\n return (\n
\n {props.rcToken ?\n \n :\n
\n
\n \n
\n
\n \n
\n
\n \n
\n
\n \n
\n
\n }\n\n
\n )\n}\n\nexport default RocketChat\n","import React, { useRef, useEffect } from \"react\";\nimport PropTypes from \"prop-types\";\nimport { getDomain } from \"../../BLL/environment\";\n\nconst AudioControl = (props) => {\n const audioRef = useRef(null);\n const timeoutRef = useRef(null);\n\n const hospitalDomains = [\"tenant5\", \"campello\", \"hsl\"];\n const domain = getDomain();\n const playHslAudio = hospitalDomains.includes(domain);\n\n const sources = [\n {\n id: \"emergency\",\n src: \"https://s3-sa-east-1.amazonaws.com/contactto-frontend/sounds/alarm4.mp3\",\n type: \"audio/mp3\",\n },\n {\n id: \"emergency-hsl\",\n src: \"https://s3-sa-east-1.amazonaws.com/contactto-frontend/sounds/beep-09.wav\",\n type: \"audio/wav\",\n },\n ];\n\n useEffect(() => {\n const toggleAudio = () => {\n if (audioRef.paused || audioRef.stopped) {\n audioRef.current.play();\n } else {\n audioRef.current.pause();\n clearTimeout(timeoutRef.current);\n }\n };\n\n if (audioRef) {\n switch (props.action) {\n case \"start\":\n if (!playHslAudio) {\n audioRef.current.play();\n } else {\n audioRef.current.play();\n audioRef.current.onended = () => {\n audioRef.current.currentTime = 0;\n console.log(\"Fim de áudio\");\n timeoutRef.current = setTimeout(() => {\n audioRef.current.play();\n clearTimeout(timeoutRef.current);\n }, 1000);\n };\n }\n break;\n case \"stop\":\n audioRef.current.pause();\n audioRef.current.currentTime = 0;\n clearTimeout(timeoutRef.current);\n break;\n case \"pause\":\n audioRef.current.pause();\n clearTimeout(timeoutRef.current);\n break;\n case \"toggle\":\n toggleAudio();\n break;\n default:\n break;\n }\n }\n }, [props.action, playHslAudio]);\n\n const audioSrc = sources.find((src) =>\n playHslAudio ? src.id === \"emergency-hsl\" : src.id === \"emergency\"\n );\n\n return (\n {\n audioRef.current = a;\n }}\n loop={!playHslAudio}\n >\n \n \n );\n};\n\nAudioControl.defaultProps = {\n action: \"\",\n};\n\nAudioControl.propTypes = {\n action: PropTypes.string,\n};\n\nexport default AudioControl;\n","import React from 'react';\nimport PropTypes from 'prop-types';\n\nconst Close = ({ height, className, onClick, width }) => (\n \n \n \n \n);\n\nClose.defaultProps = {\n height: '24',\n className: '',\n onClick: () => {},\n width: '24',\n};\n\nClose.propTypes = {\n height: PropTypes.string,\n className: PropTypes.string,\n onClick: PropTypes.func,\n width: PropTypes.string,\n};\n\nexport default Close;\n","import React from 'react';\nimport PropTypes from 'prop-types';\nimport { FormattedMessage } from 'react-intl';\nimport Close from '../../icons/Close';\nimport '../../css/contactto.scss';\n\nfunction ModalAlarm(props) {\n let clientName = '';\n const { pathname, emergencyList, isBusy, showAttendModal, busyUsers } = props;\n\n const userId = props.loggedAttendant ? props.loggedAttendant.id : '';\n\n const shouldHideContainer = !emergencyList[0] || pathname === '/app' || pathname.indexOf('/attends/call') !== -1\n || !showAttendModal || (busyUsers && busyUsers.some((user) => user.userId === userId));\n\n const emergency = emergencyList[0];\n\n const closeModal = () => {\n props.takeEmergency('stop-audio');\n props.toggleAttendModal();\n };\n\n const takeEmergency = () => {\n closeModal();\n\n const attend = Object.assign(\n {},\n props.emergencyList[0].attend,\n { status: 'IN_PROGRESS' },\n { attendant: props.userId }\n );\n\n props.editAttend(attend).then(() => {\n props.setUserBusy(true);\n props.history.push(`/app/attends/call/${attend.id}/`);\n })\n }\n\n if (emergency?.attend) {\n if (emergency.attend.is_from_secondary) {\n clientName = `${emergency.attend.secondary_first_name} ${emergency.attend.secondary_last_name} - ${emergency.attend.client_account}`\n } else {\n clientName = `${emergency.attend.client_first_name} ${emergency.attend.client_last_name} - ${emergency.attend.client_account}`\n }\n }\n\n return (\n
\n
\n \n
\n { !shouldHideContainer &&\n
\n { emergency.attend && clientName }\n
\n }\n
\n \n
\n
\n
\n );\n\n}\n\nexport default ModalAlarm;\n","import * as types from './actionTypes';\n\nexport const addLowerAlarm = (attend) => ({\n type: types.ADD_LOWER_ALARM, attend\n});\n\nexport const removeLowerAlarm = (index) => ({\n type: types.REMOVE_LOWER_ALARM, index\n});\n","import React, { useState, useEffect, useRef } from 'react';\nimport PropTypes from 'prop-types';\nimport { useDispatch, useSelector } from 'react-redux';\nimport moment from 'moment';\nimport { FormattedMessage } from 'react-intl';\nimport Close from '../../icons/Close';\nimport * as lowerPriorityAttendsActions from '../../actions/lowerPriorityAttendsActions';\nimport * as attendsActions from '../../actions/attendsActions';\nimport * as dictionary from '../../BLL/dictionary';\nimport '../../css/notification.scss';\n\nconst ModalNotification = (props) => {\n let clientName = '';\n const { lowerPriorityAttends, loggedAttendant } = useSelector(state => ({\n lowerPriorityAttends: state.lowerAlarms,\n loggedAttendant: state.loggedAttendant\n }));\n\n const dispatch = useDispatch();\n\n const removeLowerAlarm = (index) => dispatch(lowerPriorityAttendsActions.removeLowerAlarm(index));\n const editAttend = (attend) => dispatch(attendsActions.editAttend(attend));\n\n const refIntervalId = useRef();\n const [counter, setCounter] = useState(0);\n\n useEffect(() => {\n const carousel = (carouselLength) => {\n if (counter < carouselLength -1) {\n setCounter(counter + 1);\n } else {\n setCounter(0);\n }\n }\n\n if (lowerPriorityAttends.length > 0 && lowerPriorityAttends[0].alarmEvent.length > 1) {\n const interval = setInterval(() => carousel(lowerPriorityAttends[0].alarmEvent.length), 1000)\n refIntervalId.current = interval;\n } else {\n refIntervalId.current = 0;\n }\n }, [lowerPriorityAttends, counter]);\n\n const saveAttend = () => {\n const attend = Object.assign(\n {},\n lowerPriorityAttends[0].attend,\n { attend_ts: moment().format('YYYY-MM-DDTHH:mm:ss.SSS') },\n { attendant: loggedAttendant.id },\n { status: 'CLOSE' }\n );\n editAttend(attend);\n };\n\n const path = window.location.pathname;\n let showModal = lowerPriorityAttends.length > 0;\n showModal = (path === '/app' || path === '/app/attends') ? false : showModal;\n const alarm = lowerPriorityAttends[0];\n if (alarm?.attend) {\n clientName = alarm.attend.is_from_secondary\n ? `${alarm.attend.secondary_first_name} ${alarm.attend.secondary_last_name}`\n : `${alarm.attend.client_first_name} ${alarm.attend.client_last_name}`;\n }\n\n return (\n
\n removeLowerAlarm(0)} />\n
\n
\n {showModal && alarm.alarmEvent.length > 1\n ? alarm.alarmEvent.map((alarm, index) =>\n
\n { showModal ? `${dictionary.alarmNameLang(alarm.event_type)} - ${alarm.tr_description}` : '' }\n
\n )\n :\n
\n { showModal ? `${dictionary.alarmNameLang(alarm.alarmEvent[0].event_type)} - ${alarm.alarmEvent[0].tr_description}` : '' }\n
\n }\n
\n
\n {showModal ? clientName : ''}\n
\n
\n \n
\n
\n
\n )\n};\n\nModalNotification.propTypes = {\n channelId: PropTypes.string.isRequired,\n};\n\nexport default ModalNotification;\n","import React from 'react';\nimport PropTypes from 'prop-types';\nimport { FormattedMessage } from 'react-intl';\nimport moment from 'moment';\nimport style from './reminderModal.module.scss';\n\nconst ReminderInfo = ({ reminder }) => (\n
\n
\n \n {reminder.op_full_name}\n
\n
\n \n {reminder.requested_time} \n
\n
\n \n {moment(reminder.open_ts).format('DD/MM/YYYY HH:mm:ss')}\n
\n
\n \n {reminder.title}\n
\n
\n);\n\nReminderInfo.propTypes = {\n reminder: PropTypes.shape({\n op_full_name: PropTypes.string,\n requested_time: PropTypes.number,\n open_ts: PropTypes.string,\n title: PropTypes.string,\n }).isRequired,\n};\n\nexport default ReminderInfo;","import React, { useState } from 'react';\nimport PropTypes from 'prop-types';\nimport { generalPhoneNumber } from '../../../BLL/general';\nimport style from './reminderModal.module.scss';\n\nimport messages from '../../../BLL/locale/messages';\n\nconst ContactInfo = ({contact, index, lang}) => {\n const [expanded, setExpanded] = useState(false);\n\n return(\n <>\n
setExpanded(!expanded)}>\n {contact.first_name} {contact.last_name}\n \n {expanded ? '-' : '+'}\n \n
\n {expanded && contact.phone_list.length > 0 &&\n contact.phone_list.map((elm) => (\n
\n \n \n {`${elm.country_code ? elm.country_code : \"+55\"} ${generalPhoneNumber(elm.phone)}`} - {messages[lang][`contact.form.${elm.phone_type.toLowerCase()}`]}\n \n \n
\n ))\n }\n \n );\n};\n\nContactInfo.propTypes = {\n index: PropTypes.number.isRequired,\n lang: PropTypes.string.isRequired,\n contact: PropTypes.shape({\n first_name: PropTypes.string,\n last_name: PropTypes.string,\n phone_list: PropTypes.arrayOf(PropTypes.shape({\n phone: PropTypes.string,\n phone_type: PropTypes.string\n }))\n }).isRequired,\n\n}\n\nexport default ContactInfo;","import React from 'react';\nimport PropTypes from 'prop-types';\nimport { FormattedMessage } from 'react-intl';\nimport style from './reminderModal.module.scss';\n\nconst ReminderControls = ({ disabled, closeReminder, rescheduleReminder, toggleReturnCallModal, canReceiveCall, openExtensionCaller }) => {\n console.log(disabled)\n return (\n <>\n {canReceiveCall && (\n
\n \n \n \n \n \n
\n )}\n
\n \n \n \n \n \n
\n
\n {disabled && (\n \n \n \n )}\n \n \n \n \n \n
\n
\n \n \n \n \n \n
\n \n );\n};\n\nReminderControls.propTypes = {\n closeReminder: PropTypes.func.isRequired,\n rescheduleReminder: PropTypes.func.isRequired,\n toggleReturnCallModal: PropTypes.func.isRequired,\n openExtensionCaller: PropTypes.func.isRequired,\n disabled: PropTypes.bool.isRequired,\n canReceiveCall: PropTypes.bool.isRequired,\n}\n\nexport default ReminderControls;\n","import React, { useEffect, useState } from \"react\";\nimport PropTypes from \"prop-types\";\nimport { useSelector } from \"react-redux\";\nimport { FormattedMessage } from 'react-intl';\nimport * as general from \"../../../BLL/general\"\nimport messages from \"../../../BLL/locale/messages\";\nimport styles from \"./reminderModal.module.scss\";\n\nconst ContactComponent = ({ contact, handleSelectButton }) => {\n const { lang } = useSelector((state) => ({\n lang: state.locale.lang\n }));\n const [data, setData] = useState(undefined);\n\n useEffect(() => {\n if (contact) {\n const primaryPhone = contact.phone_list.find(\n (phone) => phone.phone_type === \"Primary\"\n );\n\n setData({\n name: `${contact.first_name} ${contact.last_name}`,\n phone: primaryPhone.phone\n })\n }\n }, [contact]);\n\n const handleSelect = (ev) => {\n console.log(ev.target.value)\n setData((prevState) => ({\n ...prevState,\n phone: ev.target.value\n }))\n };\n\n const handleSelectClick = () => {\n handleSelectButton('contact', data);\n };\n\n return (\n
\n
\n
\n : {contact.first_name} {contact.last_name}\n
\n
\n \n :\n \n {data &&\n \n }\n
\n
\n \n
\n );\n};\n\nContactComponent.propTypes = {\n handleSelectButton: PropTypes.func.isRequired,\n contact: PropTypes.shape({\n first_name: PropTypes.string,\n last_name: PropTypes.string,\n phone_list: PropTypes.arrayOf(PropTypes.shape({\n phone: PropTypes.string,\n phone_type: PropTypes.string\n }))\n }).isRequired,\n}\n\nexport default ContactComponent;\n","import React, { useState } from \"react\";\nimport PropTypes from \"prop-types\";\nimport { useSelector } from \"react-redux\";\nimport { FormattedMessage } from 'react-intl';\nimport ExtensionCaller from \"../../Middle/Attends/OpenComponents/ExtensionCaller\";\nimport SoftphoneKeyboard from \"../../Common/SoftphoneKeyboard\";\nimport ContactComponent from \"./ReminderExtensionContactComponent\";\nimport * as general from \"../../../BLL/general\"\nimport messages from \"../../../BLL/locale/messages\";\nimport styles from \"./reminderModal.module.scss\";\n\nconst ReminderExtensionCall = ({ selectedReminder, startCall, hangupSip }) => {\n const { lang } = useSelector((state) => ({\n lang: state.locale.lang\n }));\n const [selectedLine, setSelectedContact] = useState(null);\n const [showDetails, setShowDetails] = useState(false);\n const [showSoftphoneKeyboard, setShowSoftphoneKeyboard] = useState(false);\n\n const handleSelectButton = (type, data = null, phoneType=\"\") => {\n let line = {\n type,\n phone: \"\",\n name: messages[lang]['extension.own'],\n }\n\n if (type === \"client\") {\n switch (phoneType) {\n case 'extra':\n line.phone = selectedReminder.client_extra_phone;\n break;\n default:\n line.phone = selectedReminder.client_contact_phone;\n break;\n }\n } else {\n line.phone = data.phone;\n line.name = data.name;\n }\n setSelectedContact(line);\n setShowDetails(true);\n }\n\n const handleBackButton = () => {\n setShowDetails(false);\n };\n\n const handleCustomPhoneConfirm = (customPhone) => {\n if (customPhone) {\n setSelectedContact({\n type: 'custom',\n phone: customPhone,\n name: 'custom',\n });\n setShowDetails(true);\n }\n };\n\n console.log(selectedReminder)\n\n return showDetails ? (\n \n ) : (\n
\n
\n
\n \n \n \n
\n : {selectedReminder.client_account}\n
\n {selectedReminder.client_contact_phone && \n
\n
\n : {\n selectedReminder.client_contact_phone.length > 10 ? general.setMask(selectedReminder.client_contact_phone, '(00) 0 0000-0000') : general.setMask(selectedReminder.client_contact_phone, '(00) 0000-0000')\n }\n \n
\n \n
\n }\n {selectedReminder.client_extra_phone && \n
\n
\n : {\n selectedReminder.client_extra_phone.length > 10 ? general.setMask(selectedReminder.client_extra_phone, '(00) 0 0000-0000') : general.setMask(selectedReminder.client_extra_phone, '(00) 0000-0000')\n }\n
\n \n
\n }\n
\n
\n {/* {selectedReminder.client_extra_phone !== \"-\" ? (\n
\n
\n \n \n \n
\n : {selectedReminder.client_account}\n
\n
\n : {\n selectedReminder.client_contact_phone.length > 10 ? general.setMask(selectedReminder.client_contact_phone, '(00) 0 0000-0000') : general.setMask(selectedReminder.client_contact_phone, '(00) 0000-0000')\n }\n
\n
\n \n
\n )\n : (\n
\n \n
\n )} */}\n
\n \n \n \n {selectedReminder?.contacts_info?.map((contact, index) => (\n \n ))}\n
\n \n \n \n
\n setShowSoftphoneKeyboard(!showSoftphoneKeyboard)}\n className={styles['extension-select-btn']}\n >\n {showSoftphoneKeyboard ? \n :\n }\n \n
\n {showSoftphoneKeyboard && (\n \n )}\n
\n )\n};\n\nReminderExtensionCall.propTypes = {\n startCall: PropTypes.func.isRequired,\n hangupSip: PropTypes.func.isRequired,\n selectedReminder: PropTypes.shape({\n client_account: PropTypes.string,\n client_contact_phone: PropTypes.string,\n contacts_info: PropTypes.arrayOf(PropTypes.shape({\n first_name: PropTypes.string,\n last_name: PropTypes.string,\n phone_list: PropTypes.arrayOf(PropTypes.shape({\n phone: PropTypes.string,\n phone_type: PropTypes.string\n }))\n }))\n }).isRequired,\n}\n\nexport default ReminderExtensionCall;\n","import React, { useState, useEffect } from 'react';\nimport { useSelector, useDispatch } from 'react-redux';\nimport PropTypes from 'prop-types';\nimport axios from 'axios';\nimport { FormattedMessage } from 'react-intl';\nimport ModalReturnCall from '../ModalReturnCall';\nimport ModalDraggable from '../ModalDraggable';\nimport ReminderInfo from './ReminderInfo';\nimport ContactInfo from './ContactInfo';\nimport ReminderControls from './ReminderControls';\nimport ReminderExtensionCall from './ReminderExtensionCall';\nimport { broadcast } from '../../../BLL/general';\nimport { getRemainingTime } from '../../../BLL/timerHelper';\nimport * as remindersActions from '../../../actions/reminderActions';\nimport messages from \"../../../BLL/locale/messages\";\nimport style from './reminderModal.module.scss';\n\nconst ReminderWrapperComponent = (props) => {\n const { openReminderComponent } = props;\n\n const dispatch = useDispatch();\n const reminders = useSelector(state => state.reminders);\n const equipment = useSelector(state => state.equipment);\n const lang = useSelector(state => state.locale.lang)\n const loggedAttendant = useSelector(state => state.loggedAttendant);\n const updateReminder = (reminder) => dispatch(remindersActions.updateReminder(reminder));\n\n const [index, setIndex] = useState(0);\n const [limit, setLimit] = useState(1024);\n const [report, setReport] = useState('');\n const [showReturnCallModal, setShowReturnCallModal] = useState(false);\n const [showExtensionCallModal, setShowExtensionCallModal] = useState(false);\n const [selectedReminder, setSelectedReminder] = useState(undefined);\n\n useEffect(() => {\n if (reminders?.data.length > 0) {\n if (!selectedReminder) {\n setSelectedReminder(reminders.data[0]);\n } else if (!reminders.data.some(rem => selectedReminder.id === rem.id)) {\n setSelectedReminder(reminders.data[0]);\n setReport('');\n setLimit(1024);\n setIndex(0);\n }\n\n }\n }, [reminders, selectedReminder]);\n\n useEffect(() => {\n if (reminders.serverTime && selectedReminder) {\n let timerSeconds = getRemainingTime(reminders.serverTime, selectedReminder.open_ts, selectedReminder.requested_time);\n\n const interval = setInterval(() => {\n if (timerSeconds <= 0) {\n openReminderComponent();\n clearInterval(interval);\n }\n timerSeconds -= 1;\n }, 1000);\n\n return () => clearInterval(interval);\n }\n\n // eslint-disable-next-line react-hooks/exhaustive-deps\n }, [reminders.serverTime, selectedReminder]);\n\n useEffect(() => {\n if (reminders.data.length === 0) {\n props.toggleHasReminders();\n }\n // eslint-disable-next-line react-hooks/exhaustive-deps\n }, [reminders?.data.length])\n\n const updateReport = (event) => {\n const textareaLen = parseInt(document.querySelector('textarea').getAttribute('maxlength'), 10);\n setReport(event.target.value);\n setLimit(textareaLen - event.target.value.length);\n };\n\n const toServerData = (reminder, isLastReminder) => {\n return Object.assign(\n {},\n reminder,\n { report },\n { status: 'CLOSED' },\n { close_attendant: loggedAttendant.id },\n { isLastReminder }\n );\n };\n\n const cycleReminders = (value) => {\n const len = reminders?.data.length;\n let distance = value % len;\n const newIndex = (index + distance + len) % len;\n setReport('');\n setLimit(1024);\n setSelectedReminder(reminders.data[newIndex]);\n setIndex(newIndex);\n };\n\n const closeReminder = () => {\n setShowExtensionCallModal(false);\n const data = toServerData(selectedReminder, true);\n updateReminder(data).then(() => {\n if (!data.is_individual) {\n broadcast(axios, props.channelId, {\n type: 'reminders',\n update: 'reminders',\n ownerAttendantId: loggedAttendant.id,\n userId: loggedAttendant.id\n });\n }\n setReport('');\n setLimit(1024);\n setSelectedReminder(undefined);\n setIndex(0);\n props.toggleReminderComponent();\n });\n };\n\n const rescheduleReminder = () => {\n props.hangupSip();\n setShowExtensionCallModal(false);\n const data = toServerData(selectedReminder, false);\n updateReminder(data).then(() => {\n if (!data.is_individual) {\n broadcast(axios, props.channelId, {\n type: 'reminders',\n update: 'reminders',\n ownerAttendantId: loggedAttendant.id,\n userId: loggedAttendant.id\n });\n }\n setReport('');\n setLimit(1024);\n setSelectedReminder(undefined);\n setIndex(0);\n props.toggleReminderComponent();\n props.setReminderAttendId(selectedReminder.attend);\n props.openReminderNote();\n });\n };\n\n const disabled = !(report) || showExtensionCallModal;\n\n let userEquipment = undefined;\n if (selectedReminder?.client_equipment_id) {\n userEquipment = equipment[0].data.find(eq => eq.id === selectedReminder.client_equipment_id);\n }\n\n return (\n
\n {showReturnCallModal &&\n setShowReturnCallModal(!showReturnCallModal)}\n equipment={userEquipment}\n />\n }\n {showExtensionCallModal &&\n {\n setShowExtensionCallModal(false);\n props.hangupSip();\n }}\n headerTitle={`${messages[lang]['extension.headerTitleReminder']} ${selectedReminder.attend}`}\n >\n \n \n }\n
\n \n
\n
\n
\n
\n \n \n {selectedReminder && selectedReminder.attend}\n \n \n {selectedReminder && selectedReminder.client_full_name}\n \n
\n {selectedReminder && }\n
\n \n
\n \n
\n \n
\n {selectedReminder?.contacts_info.length > 0 &&\n
\n \n
\n {selectedReminder && selectedReminder.contacts_info.map((contact, index) => (\n \n ))}\n
\n
\n }\n setShowExtensionCallModal(!showExtensionCallModal)}\n toggleReturnCallModal={() => setShowReturnCallModal(!showReturnCallModal)}\n canReceiveCall={selectedReminder?.client_can_receive_call}\n />\n
\n )\n\n}\n\nReminderWrapperComponent.propTypes = {\n hideReminder: PropTypes.bool.isRequired,\n channelId: PropTypes.string.isRequired,\n openReminderComponent: PropTypes.func.isRequired,\n toggleHasReminders: PropTypes.func.isRequired,\n setReminderAttendId: PropTypes.func.isRequired,\n openReminderNote: PropTypes.func.isRequired,\n startCall: PropTypes.func.isRequired,\n sendPERSPassword: PropTypes.func.isRequired,\n hangupSip: PropTypes.func.isRequired,\n}\n\nexport default ReminderWrapperComponent;\n","import moment from 'moment';\n\nexport function getRemainingTime(serverTime, openTimestamp, requestedTime) {\n if (serverTime && openTimestamp) {\n const elapsedTime = moment(serverTime).diff(moment(openTimestamp), 'seconds');\n let timerSeconds = requestedTime * 60;\n timerSeconds -= elapsedTime;\n return timerSeconds;\n }\n return null;\n}","import React from 'react';\nimport PropTypes from 'prop-types';\n\nimport '../../css/modal.scss';\n\nconst WarningModal = ({ message, onClick }) => (\n
\n \n {message} \n
\n);\n\nWarningModal.propTypes = {\n message: PropTypes.string.isRequired,\n onClick: PropTypes.func.isRequired,\n};\n\nexport default WarningModal;\n","import * as types from './actionTypes';\n\nexport function localeSet(lang) {\n return { type: types.LOCALE_SET, lang };\n}\n\nexport function setLocale(lang) {\n localStorage.contacttoLang = lang;\n return (dispatch, getState, { axios }) => new Promise((resolve, reject) =>\n resolve(dispatch(localeSet(lang))),\n );\n}\n","import * as types from './actionTypes';\nimport * as errorsActions from './errorsActions';\nimport { host, getDomain, getToken } from '../BLL/environment';\n\nexport function loadAttendsSuccess(open, closed) {\n return { type: types.LOAD_DASHBOARD_SUCCESS, open, closed };\n}\n\nexport function newAttendDashboard(attend) {\n return { type: types.NEW_ATTEND_DASHBOARD, attend };\n}\n\nexport function updateAttendDashboard(attend) {\n return { type: types.UPDATE_ATTEND_DASHBOARD, attend };\n}\n\nexport function closeAttendDashboard(attend) {\n return { type: types.CLOSE_ATTEND_DASHBOARD, attend };\n}\n\nexport function loadOpenDashboardAttendsSuccess(result) {\n return { type: types.LOAD_OPEN_DASHBOARD_SUCCESS, payload: result }\n}\n\nexport function loadOpenDashboardAttends() {\n const domain = getDomain();\n const token = getToken();\n if (token === 'error') {\n errorsActions.logout();\n }\n\n const url = `https://${domain}${host()}/api/attend/list/?limit=6&status=OPEN&status=IN_PROGRESS`;\n return (dispatch, getState, { axios }) => new Promise((resolve, reject) => {\n axios.get(url, {\n headers: { Authorization: `Token ${token}` }\n }).then((resp) => {\n dispatch(loadOpenDashboardAttendsSuccess(resp.data.results));\n }).catch((err) => {\n dispatch(errorsActions.logout())\n })\n });\n}\n\nexport function loadDashboardAttends() {\n const domain = getDomain();\n const token = getToken();\n\n if (token === 'error') {\n errorsActions.logout();\n }\n return (dispatch, getState, { axios }) => new Promise((resolve, reject) => {\n resolve(axios.all([\n axios.get(`https://${domain}${host()}/api/attend/list/?limit=6&status=OPEN&status=IN_PROGRESS`,\n { headers: { Authorization: `Token ${token}` } })\n .catch((error) => {\n if (error.response) {\n if (error.response.status === 401) {\n dispatch(errorsActions.logout());\n }\n }\n }),\n axios.get(`https://${domain}${host()}/api/attend/list/?limit=6&status=CLOSE`,\n { headers: { Authorization: `Token ${token}` } })\n .catch((error) => {\n if (error.response) {\n if (error.response.status === 401) {\n dispatch(errorsActions.logout());\n }\n }\n }),\n ]).then(axios.spread((open, closed) => {\n if (open && closed) {\n dispatch(loadAttendsSuccess(open.data.results, closed.data.results));\n }\n })));\n })\n}\n","import * as types from './actionTypes';\nimport * as errorsActions from './errorsActions';\nimport * as globals from '../globals/globals';\nimport { host, getDomain, getToken } from '../BLL/environment';\n\nexport function loadEquipmentSuccess(equipment) {\n return { type: types.LOAD_EQUIPMENT_SUCCESS, equipment };\n}\n\nexport function loadEquipment() {\n const domain = getDomain();\n const token = getToken();\n\n return (dispatch, getState, { axios }) => Promise.resolve(\n axios.get(`https://${domain}${host()}/api/equipment/`, {\n headers: { Authorization: `Token ${token}` },\n }).then((equipment) => {\n const equipmentData = equipment.data.length > 0 ? equipment.data : -1;\n dispatch(loadEquipmentSuccess(equipment.data));\n }).catch((error) => {\n if (error.response) {\n if (error.response.status === 401) {\n dispatch(errorsActions.logout());\n }\n }\n }),\n );\n}\n","import * as types from './actionTypes';\nimport * as errorsActions from './errorsActions';\nimport { host, getDomain, getToken } from '../BLL/environment';\n\nexport function loadTenantStatusSuccess(status) {\n return { type: types.LOAD_TENANT_STATUS_SUCCESS, status };\n}\n\nexport function reloadTenantStatusSuccess(status) {\n return { type: types.RELOAD_TENANT_STATUS_SUCCESS, status };\n}\n\nexport function loadTenantStatusFailure(error, message) {\n return {\n type: types.LOAD_TENANT_STATUS_FAILURE,\n payload: {\n status: error,\n statusText: message,\n },\n };\n}\n\n\nexport function loadTenantStatus(reload = false) {\n const domain = getDomain();\n const token = getToken();\n\n return (dispatch, getState, { axios }) => new Promise((resolve, reject) =>\n axios({\n method: 'get',\n responseType: 'json',\n url: `https://${domain}${host()}/api/status/`,\n headers: {\n Accept: 'application/json',\n 'Content-Type': 'application/json',\n Authorization: `Token ${token}`,\n },\n })\n .then(res => resolve(dispatch(loadTenantStatusSuccess(res.data))))\n .catch((error) => {\n if (error && typeof error.response !== 'undefined' && error.response.status === 401) {\n return reject(error.response);\n }\n return reject(dispatch(loadTenantStatusFailure('Connection Error', 'An error occurred while sending your data!')));\n }),\n );\n}\n\nexport function activateTenant(data) {\n const domain = getDomain();\n const token = getToken();\n\n return (dispatch, getState, { axios }) => new Promise((resolve, reject) =>\n axios({\n method: 'put',\n responseType: 'json',\n url: `https://${domain}${host()}/api/activate/`,\n data,\n headers: { Authorization: `Token ${token}` },\n })\n .then(() => resolve(dispatch(loadTenantStatus(true))))\n .catch((error) => {\n if (error.response) {\n if (error.response.status === 401) {\n return reject(dispatch(errorsActions.logout()));\n }\n return reject(error.response);\n }\n return reject({});\n }),\n );\n}\n","import * as types from './actionTypes';\nimport * as errorsActions from './errorsActions';\nimport { host, getDomain, getToken } from '../BLL/environment';\n\nexport function loadAttendTagsSuccess(tags) {\n return {\n type: types.LOAD_ATTEND_TAGS_SUCCESS,\n tags,\n };\n}\n\n\nexport function loadAttendTags() {\n const domain = getDomain();\n const token = getToken();\n\n return (dispatch, getState, { axios }) => Promise.resolve(\n axios.get(`https://${domain}${host()}/api/tags/`, {\n headers: { Authorization: `Token ${token}` },\n }).then((tags) => {\n dispatch(loadAttendTagsSuccess(tags.data));\n }).catch((error) => {\n if (error.response) {\n if (error.response.status === 401) {\n dispatch(errorsActions.logout());\n }\n }\n }),\n );\n}\n","import * as types from './actionTypes';\nimport { host, getDomain, getToken } from '../BLL/environment';\n\nexport function globalConfig(global) {\n return {\n type: types.RELOAD_GLOBAL_CONFIGURATIONS,\n global,\n };\n}\n\n\nexport function loadGlobalConfiguration() {\n const domain = getDomain();\n const token = getToken();\n\n return (dispatch, state, { axios }) => new Promise((resolve, reject) => {\n return axios({\n method: 'get',\n responseType: 'json',\n url: `https://${domain}${host()}/api/global-config/`,\n headers: {\n Accept: 'application/json',\n 'Content-Type': 'application/json',\n Authorization: `Token ${token}`,\n },\n })\n .then((res) => {\n resolve(dispatch(globalConfig(res.data)));\n })\n .catch((error) => {\n // console.log('ERRO AO REALIZAR O REALIZAR GLOBAL DAS CONFIGURAÇÕES');\n reject(error);\n });\n });\n}\n","import * as types from './actionTypes';\nimport { host, getDomain, getToken } from '../BLL/environment';\n\nexport function localConfig(local) {\n return {\n type: types.RELOAD_LOCAL_CONFIGURATIONS,\n local,\n };\n}\n\nexport function loadLocalConfiguration(user) {\n const domain = getDomain();\n const token = getToken();\n\n return (dispatch, state, { axios }) => new Promise((resolve, reject) => {\n return axios({\n method: 'get',\n responseType: 'json',\n url: `https://${domain}${host()}/api/dashboard-config/${user}/`,\n headers: {\n Accept: 'application/json',\n 'Content-Type': 'application/json',\n Authorization: `Token ${token}`,\n },\n })\n .then((res) => {\n resolve(dispatch(localConfig(res.data)));\n })\n .catch((error) => {\n console.log('ERRO AO REALIZAR O REALIZAR LOCAL DAS CONFIGURAÇÕES');\n reject(error);\n });\n });\n}\n","import * as types from './actionTypes';\n\nexport const toggleReminderComponent = () => ({\n type: types.TOGGLE_REMINDER_COMPONENT\n});\n","import { useState, useEffect, useRef, useCallback } from \"react\";\nimport { useSelector, useDispatch } from \"react-redux\";\nimport { IntlProvider, FormattedMessage } from \"react-intl\";\nimport axios from \"axios\";\nimport moment from \"moment\";\nimport usePageReloadDetection from \"./components/Hooks/usePageReloadDetection\";\n\nimport Header from \"./components/Header/Header\";\nimport Sidebar from \"./components/Sidebar/SidebarV2\";\nimport Middle from \"./components/Middle/Middle\";\nimport RocketChat from \"./components/Chat/RocketChat\";\nimport EmergencyAudioControl from \"./components/Common/AudioControlV2\";\nimport ModalAlarm from \"./components/Modal/ModalAlarm\";\nimport ModalConfirm from \"./components/Modal/ModalConfirm\";\nimport ModalNotification from \"./components/Modal/ModalNotificationV2\";\nimport ModalReminder from \"./components/Modal/Reminders/ReminderComponent\";\n// import ModalReminder from './components/Modal/ModalReminder';\nimport ModalReminderNote from \"./components/Modal/ModalReminderNote\";\nimport ModalWarning from \"./components/Modal/ModalWarning\";\n\nimport * as authActions from \"./actions/authActions\";\nimport * as attendantsActions from \"./actions/attendantsActions\";\nimport * as loggedAttendantActions from \"./actions/loggedAttendantActions\";\nimport * as localeActions from \"./actions/localeActions\";\nimport * as alarmsActions from \"./actions/alarmsActions\";\nimport * as attendsActions from \"./actions/attendsActions\";\nimport * as attendsDashboardActions from \"./actions/attendsDashboardActions\";\nimport * as clientsActions from \"./actions/clientsActions\";\nimport * as contactsActions from \"./actions/contactsActions\";\nimport * as transmittersActions from \"./actions/transmittersActions\";\nimport * as equipmentActions from \"./actions/equipmentActions\";\nimport * as browserActions from \"./actions/browserActions\";\nimport * as tenantStatusActions from \"./actions/tenantStatusActions\";\nimport * as statusActions from \"./actions/userStatusActions\";\nimport * as groupsActions from \"./actions/groupsActions\";\nimport * as remindersActions from \"./actions/reminderActions\";\nimport * as attendTagsActions from \"./actions/attendTagsActions\";\nimport * as globalConfigurationActions from \"./actions/globalConfigurationsActions\";\nimport * as localConfigurationActions from \"./actions/localConfigurationsActions\";\nimport * as lowerPriorityAttendsActions from \"./actions/lowerPriorityAttendsActions\";\nimport * as reminderComponentActions from \"./actions/reminderComponentActions\";\n\nimport messages from \"./BLL/locale/messages\";\nimport { host, getDomain, getToken, getInfo } from \"./BLL/environment\";\nimport { broadcast } from \"./BLL/general\";\n\nimport \"./css/style.scss\";\nimport \"./css/table.scss\";\nimport \"./css/attends.scss\";\nimport \"./css/fonts.css\";\nimport \"./css/contactto.scss\";\nimport \"./css/loading.scss\";\nimport \"./css/mixins/_default_buttons.scss\";\nimport \"./css/buttons.scss\";\nimport \"./css/modal.scss\";\nimport \"./css/scrollbar.css\";\n\nimport \"./pushstream/pushstream\";\nimport CustomModal from \"./components/Modal/CustomModal\";\n\nconst App = (props) => {\n const pageReloaded = usePageReloadDetection();\n const notificationList = useSelector((state) => state.lowerAlarms);\n const attendants = useSelector((state) => state.attendants);\n const attends = useSelector((state) => state.attends);\n const clients = useSelector((state) => state.clients);\n const loggedAttendant = useSelector((state) => state.loggedAttendant);\n const lang = useSelector((state) => state.locale.lang);\n const reminders = useSelector((state) => state.reminders);\n const busyUsers = useSelector((state) => state.status);\n const globalConfiguration = useSelector((state) => state.globalConfiguration);\n\n const dispatch = useDispatch();\n // Attendants Actions\n const loadAttendants = () => dispatch(attendantsActions.loadAttendants());\n const setLoggedAttendant = (attendant) =>\n dispatch(loggedAttendantActions.setLoggedAttendant(attendant));\n const newAttendant = (att) => dispatch(attendantsActions.newAttendant(att));\n const updatedAttendant = (att) =>\n dispatch(attendantsActions.updatedAttendant(att));\n const loadGroups = () => dispatch(groupsActions.loadGroups());\n const loadBusyUsers = () => dispatch(statusActions.loadBusyUsers());\n const addUserIntoBusy = (userId, attendId) =>\n dispatch(statusActions.addUserIntoBusy(userId, attendId));\n const removeUserFromBusy = (userId) =>\n dispatch(statusActions.removeUserFromBusy(userId));\n // Attend Actions\n const attendUpdated = (attend) =>\n dispatch(attendsActions.attendUpdated(attend));\n const reloadAttends = () => dispatch(attendsActions.reloadAttends());\n const loadDashboardAttends = () =>\n dispatch(attendsDashboardActions.loadDashboardAttends());\n const newAttendDashboard = (attend) =>\n dispatch(attendsDashboardActions.newAttendDashboard(attend));\n const updateAttendDashboard = (attend) =>\n dispatch(attendsDashboardActions.updateAttendDashboard(attend));\n const closeAttendDashboard = (attend) =>\n dispatch(attendsDashboardActions.closeAttendDashboard(attend));\n const editAttend = (attend, callback) =>\n dispatch(attendsActions.editAttend(attend, callback));\n const loadAttendTags = () => dispatch(attendTagsActions.loadAttendTags());\n const addLowerAlarm = (attend) =>\n dispatch(lowerPriorityAttendsActions.addLowerAlarm(attend));\n const removeLowerAlarm = (index) =>\n dispatch(lowerPriorityAttendsActions.removeLowerAlarm(index));\n // Alarms Actions\n const updatedAlarm = (alarm) => dispatch(alarmsActions.updatedAlarm(alarm));\n const newAlarm = (alarm) => dispatch(alarmsActions.newAlarm(alarm));\n // Client Actions\n const clientUpdated = (client) =>\n dispatch(clientsActions.clientUpdated(client));\n const reloadClients = () => dispatch(clientsActions.reloadClients());\n // Contact Actions\n const loadContacts = (clientId, ordering) =>\n dispatch(contactsActions.loadContacts(clientId, ordering));\n const contactAdded = (contact, clientId) =>\n dispatch(contactsActions.contactAdded(contact, clientId));\n const contactUpdated = (contact, clientId) =>\n dispatch(contactsActions.contactUpdated(contact, clientId));\n const contactRemoved = (contact, clientId) =>\n dispatch(contactsActions.contactRemoved(contact, clientId));\n // Transmitter Actions\n const transmitterUpdated = (transmitter, clientId) =>\n dispatch(transmittersActions.transmitterUpdated(transmitter, clientId));\n const transmitterAdded = (transmitter, clientId) =>\n dispatch(transmittersActions.transmitterAdded(transmitter, clientId));\n const transmitterDeleted = (transmitterId, clientId) =>\n dispatch(transmittersActions.transmitterDeleted(transmitterId, clientId));\n // Equipment Actions\n const loadEquipment = () => dispatch(equipmentActions.loadEquipment());\n // Reminders Actions\n const loadReminders = () => dispatch(remindersActions.loadReminders());\n const createReminder = (reminder) =>\n dispatch(remindersActions.createReminder(reminder));\n const toggleReminderComponent = () =>\n dispatch(reminderComponentActions.toggleReminderComponent());\n // Config actions\n const authLogoutAndRedirect = () =>\n dispatch(authActions.authLogoutAndRedirect());\n const setLocale = (locale) => dispatch(localeActions.setLocale(locale));\n const addBrowserDimentions = ({ width, height }) =>\n dispatch(browserActions.addBrowserDimentions({ width, height }));\n\n const loadTenantStatus = () =>\n dispatch(tenantStatusActions.loadTenantStatus());\n\n const loadGlobalConfig = (url) =>\n dispatch(globalConfigurationActions.loadGlobalConfiguration(url));\n const loadLocalConfig = (user) =>\n dispatch(localConfigurationActions.loadLocalConfiguration(user));\n // Auth Actions\n const resetStore = () => dispatch(authActions.authResetStore());\n\n let notificationAudio = new Audio(\n \"https://s3-sa-east-1.amazonaws.com/contactto-frontend/sounds/secondary_alarm3.mp3\"\n );\n notificationAudio.volume = 1;\n let reminderAudio = new Audio(\n \"https://s3-sa-east-1.amazonaws.com/contactto-frontend/sounds/secondary_alarm2.mp3\"\n );\n reminderAudio.volume = 1;\n // const { lang } = props;\n const refNotificationList = useRef();\n const refEmergencyList = useRef();\n const attendReloadInterval = useRef();\n const [openedPushstream, setPushstream] = useState(undefined);\n const [user, setUser] = useState(undefined);\n const [tenantStatus, setTenantStatus] = useState(\"\");\n const [tenantIsPaid, setTenantIsPaid] = useState(true);\n const [tenantIsActive, setTenantIsActive] = useState(true);\n const [adminMessage, setAdminMessage] = useState(undefined);\n const [showAdmMessageModal, setShowAdmMessageModal] = useState(false);\n const [hasReminders, setHasReminders] = useState(false);\n const [showReminderComponent, setShowReminderComponent] = useState(false);\n const [showAttendModal, setShowAttendModal] = useState(false);\n const [showReminderNote, setShowReminderNote] = useState(false);\n const [showActivationModal, setShowActivationModal] = useState(false);\n const [showInteractionModal, setShowInteractionModal] = useState(false);\n const [sidebarExpanded, setSidebarExpanded] = useState(false);\n const [showChat, setShowChat] = useState(false);\n const [newChatMessage, setNewChatMessage] = useState(false);\n const [audioAction, setAudioAction] = useState(\"\");\n const [reminderAttendId, setReminderAttendId] = useState(undefined);\n const [emergencyList, setEmergencyList] = useState([]);\n const [updateList, setUpdateList] = useState([]);\n const [updateInfoNotificationText, setUpdateInfoNotificationText] = useState(\"\");\n const [channelId, setChannelId] = useState(\"\");\n const [hasWebsocketConnection, setHasWebsocketConnection] = useState(false);\n const [sipStack, setSipStack] = useState(undefined);\n const [sipStackType, setSipStackType] = useState(undefined);\n const [sipSessionType, setSipSessionType] = useState(undefined);\n const [sipEventType, setSipEventType] = useState(undefined); // Type for the call session\n const [sipCall, setSipCall] = useState(undefined);\n\n // For testing purposes\n const [sipEvtListener, setSipEventListener] = useState(undefined);\n const [evtListener, setEventListener] = useState(undefined);\n const [sessionListener, setSessionListener] = useState(undefined);\n\n useEffect(() => {\n if (pageReloaded && window.location.pathname === '/app') {\n setShowInteractionModal(true);\n }\n }, [pageReloaded]);\n\n useEffect(() => {\n if (localStorage.domainInfo === \"{}\" || !localStorage.domainInfo) {\n props.history.push(\"/login\");\n } else {\n if (lang && !localStorage.contacttoLang) {\n localStorage.setItem(\"contacttoLang\", lang);\n }\n\n if (sessionStorage.activeDomain) {\n document.title = `${document.title.split(\" \")[0]} - ${\n sessionStorage.activeDomain\n }`;\n }\n\n // Load essencial information at the start of the app (Channel ID, what status the tenant is, the equipment, etc...)\n const { isPaid, isActive } = getInfo();\n setTenantIsPaid(isPaid);\n setTenantIsActive(isActive);\n\n if (attendants.length === 0) {\n loadAttendants();\n }\n\n fetchChannelId();\n fetchTenantStatus();\n fetchAdminMessages();\n loadEquipment();\n loadBusyUsers();\n loadGroups();\n loadAttendTags();\n loadDashboardAttends();\n loadGlobalConfig();\n\n // Create an event listener to deal with browser redimensioning\n window.addEventListener(\"resize\", () => {\n addBrowserDimentions({\n width: window.innerWidth,\n height: window.innerHeight,\n });\n });\n }\n\n let debug = false;\n if (window.location.hostname.indexOf(\"homologation\") !== -1) {\n debug = true;\n } else if (\n window.location.hostname === \"localhost\" ||\n window.location.hostname === \"172.20.31.143\"\n ) {\n debug = true;\n }\n\n if (!debug) {\n if (!window.console) window.console = {};\n var methods = [\"log\", \"debug\", \"warn\", \"info\"];\n for (var i = 0; i < methods.length; i++) {\n console[methods[i]] = function () {};\n }\n }\n }, []);\n\n useEffect(() => {\n const loadOpenDashboardAttends = () => \n dispatch(attendsDashboardActions.loadOpenDashboardAttends());\n if (!attendReloadInterval.current) {\n const interval = setInterval(() => {\n console.log('Reloading dashboard attends');\n loadOpenDashboardAttends();\n }, 15 * 60 * 1000); // Every 15 minutes\n attendReloadInterval.current = interval;\n }\n\n return () => {\n const currentAttendReloadInterval = attendReloadInterval.current;\n clearInterval(currentAttendReloadInterval);\n }\n }, [dispatch]);\n\n useEffect(() => {\n // When the attendant list is filled, search for the attendant that just logged in and add it to the Redux Store\n if (attendants.length > 0) {\n if (localStorage.domainInfo) {\n const localUser = JSON.parse(localStorage.domainInfo)[\n sessionStorage.activeDomain\n ].user;\n const loggedUser = attendants[0].data.find(\n (att) => att.id === localUser.id\n );\n setLoggedAttendant(loggedUser);\n }\n }\n }, [attendants]);\n\n useEffect(() => {\n // After the logged attendant store value is filled, create the SIP stack and load that attendant\n // reminders and local configurations\n if (loggedAttendant) {\n setUser(Object.assign({}, loggedAttendant));\n if (loggedAttendant.user_info) {\n createSipStack(loggedAttendant);\n }\n loadReminders();\n loadLocalConfig(loggedAttendant.id);\n }\n }, [loggedAttendant]);\n\n useEffect(() => {\n let heartbeatInterval;\n let socket;\n let reconnectTimeout;\n \n const connectHeartbeat = () => {\n // Clear any existing reconnect timeout\n if (reconnectTimeout) {\n clearTimeout(reconnectTimeout);\n }\n \n // Close any existing WebSocket and clear any existing heartbeat\n if (socket) {\n socket.close();\n }\n if (heartbeatInterval) {\n clearInterval(heartbeatInterval);\n }\n \n socket = new WebSocket(`wss://${getDomain()}${host()}:8080/heartbeat`);\n \n const sendHeartbeat = () => {\n console.log(\"Sending heartbeat\");\n const domain = getDomain();\n socket.send(\n JSON.stringify({ type: 'heartbeat', user_id: loggedAttendant.id, schema: domain })\n );\n };\n \n heartbeatInterval = setInterval(sendHeartbeat, 30000);\n \n // Define reconnection logic\n const reconnect = () => {\n console.log('Attempting to reconnect...');\n reconnectTimeout = setTimeout(connectHeartbeat, 10000); // 10-second delay\n };\n \n // Handle WebSocket closing or error by attempting to reconnect\n socket.onclose = reconnect;\n socket.onerror = reconnect;\n };\n \n if (loggedAttendant) {\n connectHeartbeat();\n }\n \n return () => {\n if (socket) {\n socket.close();\n }\n if (heartbeatInterval) {\n clearInterval(heartbeatInterval);\n }\n if (reconnectTimeout) {\n clearTimeout(reconnectTimeout);\n }\n };\n }, [loggedAttendant]);\n\n useEffect(() => {\n // Set up the HTTP Push stream from Nginx\n if (channelId && user && globalConfiguration.global) {\n createPushstream(channelId);\n }\n }, [channelId, user, globalConfiguration]);\n\n useEffect(() => {\n if (reminders.data.length > 0) {\n setHasReminders(true);\n }\n }, [reminders]);\n\n useEffect(() => {\n refNotificationList.current = notificationList;\n }, [notificationList]);\n\n useEffect(() => {\n refEmergencyList.current = emergencyList;\n }, [emergencyList]);\n\n // Auth block\n const logout = () => {\n authLogoutAndRedirect().then(() => {\n logoutUser();\n });\n };\n\n const fetchTenantStatus = () => {\n loadTenantStatus()\n .then((res) => setTenantStatus(res.status.status))\n .catch((error) => {\n console.log(error);\n if (error.data && error.data.trialLimit) {\n logoutUser();\n }\n });\n };\n\n const fetchAdminMessages = () => {\n axios\n .get(`https://${getDomain()}${host()}/api/admin-messages/`, {\n headers: { Authorization: `Token ${getToken()}` },\n })\n .then((resp) => {\n if (resp.data) {\n const expireAt = moment(resp.data.expireat);\n const serverTime = moment(resp.data.server);\n const expires = expireAt.diff(serverTime, \"seconds\");\n setAdminMessage(resp.data);\n setShowAdmMessageModal(true);\n setTimeout(() => {\n setAdminMessage(undefined);\n setShowAdmMessageModal(false);\n }, expires * 1000);\n }\n })\n .catch((error) => {\n if (error.response && error.response.status === 404) {\n setAdminMessage(undefined);\n setShowAdmMessageModal(false);\n }\n });\n };\n\n const logoutUser = () => {\n let newDomainList = JSON.parse(localStorage.domainList).filter(\n (domain) => domain !== sessionStorage.activeDomain\n );\n let newDomainInfoObj = JSON.parse(localStorage.domainInfo);\n delete newDomainInfoObj[sessionStorage.activeDomain];\n localStorage.setItem(\"domainInfo\", JSON.stringify(newDomainInfoObj));\n localStorage.setItem(\"domainList\", JSON.stringify(newDomainList));\n sessionStorage.removeItem(\"channelId\");\n // There is still tenants in the list\n if (newDomainList.length > 0) {\n sessionStorage.setItem(\"activeDomain\", newDomainList[0]);\n sessionStorage.setItem(\n \"activeToken\",\n newDomainInfoObj[newDomainList[0]].token\n );\n props.history.push(\"/app\");\n window.location.reload();\n } else {\n sessionStorage.removeItem(\"activeDomain\");\n sessionStorage.removeItem(\"activeToken\");\n props.history.push(\"/login\");\n resetStore();\n window.location.reload();\n }\n };\n\n const fetchChannelId = () => {\n if (sessionStorage.channelId) {\n const storageChannelId = sessionStorage.channelId;\n setChannelId(storageChannelId);\n } else {\n axios\n .get(`https://${getDomain()}${host()}/api/alarm-channel/`, {\n headers: { Authorization: `Token ${sessionStorage.activeToken}` },\n })\n .then((res) => {\n console.log(res);\n const newChannelId = res.data.channel_id;\n sessionStorage.setItem(\"channelId\", newChannelId);\n setChannelId(newChannelId);\n });\n }\n };\n\n // Pushstream HTTP Push block\n const createPushstream = (channelId) => {\n const statusOpen = 2;\n // Create a new pushstream with newer props everytime something changes\n if (openedPushstream) {\n openedPushstream.disconnect();\n }\n\n const pushstream = new PushStream({ // eslint-disable-line no-undef\n host: `${getDomain()}${host()}`,\n port: \"\",\n useSSL: true,\n modes: \"websocket\",\n reconnectOnChannelUnavailableInterval: 10000,\n });\n\n pushstream.onmessage = messageReceived;\n pushstream.onerror = () => {\n setHasWebsocketConnection(false);\n };\n pushstream.onstatuschange = () => {\n if (pushstream.readyState === statusOpen) {\n loadDashboardAttends();\n setHasWebsocketConnection(true);\n }\n };\n pushstream.addChannel(`${channelId}`);\n pushstream.connect();\n setPushstream(pushstream);\n };\n\n const messageReceived = (obj) => {\n // Process the HTTP Push message received depending on the Type variable\n console.log(obj);\n const type = obj.type;\n const text = obj.text;\n const isDifferentUser = obj.userId\n ? obj.userId !== loggedAttendant.id\n : false;\n if (type !== \"activation\" && type !== \"admCall\" && type !== \"client\") {\n if (text) {\n setUpdateInfoNotificationText(text);\n setTimeout(() => {\n setUpdateInfoNotificationText(\"\");\n }, 2000);\n }\n }\n\n switch (type) {\n case \"activation\": {\n if (text) {\n setUpdateInfoNotificationText(text);\n setTimeout(() => {\n setUpdateInfoNotificationText(\"\");\n logout();\n }, 5000);\n }\n break;\n }\n case \"admCall\": {\n // When the administrator takes the attend to him/herself\n // TODO: Change admCall to a better text\n if (obj.oldUser === loggedAttendant.id) {\n setUpdateInfoNotificationText(text);\n setTimeout(() => {\n setUpdateInfoNotificationText(\"\");\n window.location.reload();\n }, 10000);\n }\n break;\n }\n case \"alarm\": {\n if (obj.method === \"edit\" && isDifferentUser) {\n updatedAlarm(obj.alarm);\n } else if (obj.method === \"create\" && isDifferentUser) {\n newAlarm(obj.alarm);\n }\n break;\n }\n case \"attend\": {\n // Attends have a second layer of type, using the status variable\n processAttendMessage(obj);\n break;\n }\n case \"attendant\": {\n if (obj.method === \"edit\" && isDifferentUser) {\n updatedAttendant(obj.attendant);\n } else if (obj.method === \"create\" && isDifferentUser) {\n newAttendant(obj.attendant);\n } else if (obj.method === \"toggle\") {\n loadAttendants();\n }\n break;\n }\n case \"client\": {\n const isSysOrCompanyUser =\n loggedAttendant.groups.length === 1 ||\n loggedAttendant.groups.includes(obj.client?.group_id);\n const hasClientsLoaded = clients.pages ? true : false;\n\n if (obj.text && isSysOrCompanyUser) {\n setUpdateInfoNotificationText(text);\n setTimeout(() => {\n setUpdateInfoNotificationText(\"\");\n }, 2000);\n }\n\n if (\n obj.method === \"edit\" &&\n isDifferentUser &&\n isSysOrCompanyUser &&\n hasClientsLoaded\n ) {\n clientUpdated(obj.client);\n } else if (\n obj.method === \"create\" &&\n isDifferentUser &&\n isSysOrCompanyUser &&\n hasClientsLoaded\n ) {\n reloadClients();\n } else if (obj.method === \"toggle\") {\n reloadClients();\n }\n break;\n }\n case \"config\": {\n loadGlobalConfig();\n loadLocalConfig(loggedAttendant.id);\n break;\n }\n case \"contact\": {\n if (obj.method === \"edit\" && isDifferentUser) {\n contactUpdated(obj.contact, obj.clientId);\n } else if (obj.method === \"create\" && isDifferentUser) {\n contactAdded(obj.contact, obj.clientId);\n } else if (obj.method === \"toggle\") {\n loadContacts(obj.clientId);\n } else if (obj.method === \"destroy\") {\n contactRemoved(obj.contact, obj.clientId);\n }\n break;\n }\n case \"message\": {\n fetchAdminMessages();\n break;\n }\n case \"reminders\": {\n if (isDifferentUser && loggedAttendant.groups.length === 1) {\n loadReminders();\n }\n break;\n }\n case \"transmitter\": {\n if (obj.method === \"edit\" && isDifferentUser) {\n transmitterUpdated(obj.transmitter, obj.clientId);\n } else if (obj.method === \"create\" && isDifferentUser) {\n transmitterAdded(obj.transmitter, obj.clientId);\n } else if (obj.method === \"delete\") {\n transmitterDeleted(obj.transmitterId);\n }\n break;\n }\n default:\n break;\n }\n };\n\n const processAttendMessage = (obj) => {\n console.log(obj);\n const isSysOrCompanyUser =\n user.groups.length === 1 || user.groups.includes(obj.client.group_id);\n const indexNotification = refNotificationList.current.findIndex(\n (el) => el.attend.id === obj.attend.id\n );\n const indexEmergency = refEmergencyList.current.findIndex(\n (el) => el.attend.id === obj.attend.id\n );\n const useAlarmZones = globalConfiguration.global.use_alarm_zones;\n const playSecondaryAudio = globalConfiguration.global.secondary_alarm_sound;\n\n switch (obj.status) {\n case \"open\": {\n const canPlayAudio =\n window.location.pathname.indexOf(\"/app/attends/call\") === -1;\n if (isSysOrCompanyUser) {\n newAttendDashboard(obj.attend);\n }\n\n if (attends && Object.keys(attends).length > 0) {\n reloadAttends();\n }\n\n if (useAlarmZones) {\n const attendZone = obj.attend.tr_zone\n ? parseInt(obj.attend.tr_zone) % 4\n : 1;\n const highestCode = obj.attend.highest_code;\n if (\n highestCode === \"101\" &&\n attendZone > 0 &&\n canPlayAudio &&\n playSecondaryAudio &&\n isSysOrCompanyUser\n ) {\n playSecondaryAlarm(6, 350);\n }\n\n if (\n (highestCode === \"101\" && attendZone === 0) ||\n highestCode === \"100\"\n ) {\n if (isSysOrCompanyUser) {\n const newEmergencyList = [\n ...refEmergencyList.current.filter(\n (e) => e.attend.id !== obj.attend.id\n ),\n obj,\n ];\n setEmergencyList(newEmergencyList);\n setShowAttendModal(true);\n setAudioAction(canPlayAudio ? \"start\" : \"stop\");\n }\n const attendIndex = notificationList.findIndex(\n (el) => el.attend.id === obj.attend.id\n );\n removeLowerAlarm(attendIndex);\n } else if (\n refEmergencyList.current.every(\n (el) => el.attend.id !== obj.attend.id\n ) &&\n isSysOrCompanyUser\n ) {\n addLowerAlarm(obj);\n }\n } else {\n if (\n !obj.alarmEvent.some((el) => el.event_type.priority === 1) &&\n canPlayAudio &&\n playSecondaryAudio &&\n isSysOrCompanyUser\n ) {\n console.log(\"Playing notification\");\n playSecondaryAlarm(6, 350);\n }\n if (obj.alarmEvent.some((el) => el.event_type.priority === 1)) {\n if (isSysOrCompanyUser) {\n const newEmergencyList = [\n ...refEmergencyList.current.filter(\n (e) => e.attend.id !== obj.attend.id\n ),\n obj,\n ];\n setEmergencyList(newEmergencyList);\n setShowAttendModal(true);\n setAudioAction(canPlayAudio ? \"start\" : \"stop\");\n }\n const attendIndex = notificationList.findIndex(\n (el) => el.attend.id === obj.attend.id\n );\n removeLowerAlarm(attendIndex);\n } else if (\n refEmergencyList.current.every(\n (el) => el.attend.id !== obj.attend.id\n ) &&\n isSysOrCompanyUser\n ) {\n addLowerAlarm(obj);\n }\n }\n break;\n }\n case \"in_progress\": {\n if (isSysOrCompanyUser) {\n updateAttendDashboard(obj.attend);\n setAudioAction(\"stop\");\n }\n if (attends && Object.keys(attends).length > 0) {\n attendUpdated(obj.attend);\n }\n if (obj.attend.attendant !== loggedAttendant.id) {\n addUserIntoBusy(obj.attend.attendant, obj.attend.id);\n }\n if (indexNotification !== -1) {\n removeLowerAlarm(indexNotification);\n }\n if (indexEmergency !== -1) {\n removeEmergencyItem(indexEmergency);\n }\n break;\n }\n case \"close\": {\n if (isSysOrCompanyUser) {\n closeAttendDashboard(obj.attend);\n }\n\n if (obj.attend.attendant !== loggedAttendant.id) {\n removeUserFromBusy(obj.attend.attendant);\n }\n\n clearUpdateList(obj.attend.id);\n if (attends && Object.keys(attends).length > 0) {\n attendUpdated(obj.attend);\n }\n\n break;\n }\n default:\n break;\n }\n };\n\n const playSecondaryAlarm = (\n numberOfTimes = 1,\n delay = 100,\n firstTime = true\n ) => {\n if (firstTime) {\n notificationAudio.play();\n }\n setTimeout(() => {\n if (!firstTime) {\n notificationAudio.play();\n }\n numberOfTimes--;\n if (numberOfTimes > 0) {\n playSecondaryAlarm(numberOfTimes, delay, false);\n }\n }, delay);\n };\n\n // Attend notification block\n const clearUpdateList = (attendId) => {\n if (attendId) {\n const notificationIndex = refNotificationList.current.findIndex(\n (el) => el.attend.id === attendId\n );\n const emergencyIndex = refEmergencyList.current.findIndex(\n (el) => el.attend.id === attendId\n );\n\n if (notificationIndex !== -1) {\n removeLowerAlarm(notificationIndex);\n }\n\n if (emergencyIndex !== -1) {\n removeEmergencyItem(emergencyIndex);\n }\n }\n setUpdateList([]);\n };\n\n const removeEmergencyItem = (index) => {\n const newEmergencyList = [\n ...refEmergencyList.current.slice(0, index),\n ...refEmergencyList.current.slice(index + 1),\n ];\n if (newEmergencyList.length === 0) {\n setAudioAction(\"stop\");\n }\n setEmergencyList(newEmergencyList);\n };\n\n // SIP Stack block\n const createSipStack = (user) => {\n let pwd = `contactto#${user.id}#${user.user_info.extension_id}@${sessionStorage.activeDomain}`;\n let realm = \"\";\n let impi = \"\";\n let impu = \"\";\n let password = \"\";\n if (window.location.hostname.indexOf(\"homologation\") !== -1) {\n // HOMOLOGATION\n // realm = \"asterisk-homologation.contactto.care\";\n // impi = `${user.user_info.extension_id}`;\n // impu = `sip:${user.user_info.extension_id}@${realm}`;\n // password = pwd;\n realm = 'tsc.asterisk.contactto.care';\n impi = \"919877\";\n impu = `sip:919877@${realm}`;\n password = \"contactto#26#190@meninodeus\";\n } else if (\n window.location.hostname === \"localhost\" ||\n window.location.hostname === \"172.20.31.143\"\n ) {\n // DEVELOPMENT\n // realm = \"172.20.31.143\";\n realm = 'tsc.asterisk.contactto.care';\n // realm = 'asterisk-homologation.contactto.care';\n // realm = 'asterisk-development.contactto.care';\n impi = \"919876\";\n impu = `sip:919876@${realm}`;\n // impi = \"90001\";\n // impu = `sip:90001@${realm}`;\n // password = 'teste#softphone'\n // password = \"contactto@test\";\n password = \"contactto#26#190@meninodeus\";\n } else {\n // PROD\n realm = \"tsc.asterisk.contactto.care\";\n impi = `${user.user_info.extension_id}`;\n impu = `sip:${user.user_info.extension_id}@${realm}`;\n password = pwd;\n }\n const stack = new SIPml.Stack({ // eslint-disable-line no-undef\n impi: impi,\n impu: impu,\n password: password,\n realm: `https://${realm}`,\n display_name: \"Asterisk\",\n websocket_proxy_url: `wss://${realm}:8089/ws`,\n outbound_proxy_url: `udp://${realm}:5060`,\n ice_servers: [{ url: \"stun:null\" }],\n enable_rtcweb_breaker: false,\n events_listener: { events: \"*\", listener: eventListener },\n sip_headers: [\n { name: \"User-Agent\", value: \"IM-client/OMA1.0 sipML5-v1.0.0.0\" },\n { name: \"Organization\", value: \"Tecnosenior\" },\n ],\n });\n stack.start();\n setSipStack(stack);\n };\n\n const eventListener = (e) => {\n console.log(\"Event Listener\", e);\n // Testing purposes\n setEventListener(e);\n setSipStackType(e.type);\n if (e.type === \"started\" && sipStack) {\n try {\n const sipSessionRegister = sipStack.newSession(\"register\", {\n expires: 200,\n events_listener: { events: \"*\", listener: sipEventListener },\n sip_caps: [\n { name: \"+g.oma.sip-im\", value: null },\n { name: \"+audio\", value: null },\n { name: \"language\", value: '\"en,fr\"' },\n ],\n });\n sipSessionRegister.register();\n } catch (e) {\n console.error(e);\n }\n } else if (e.type === \"i_new_call\") {\n console.log(\"New Call\");\n } else if (e.type === \"failed_to_start\") {\n setTimeout(() => {\n createSipStack(loggedAttendant);\n }, 30000);\n } else if (e.type === \"stopped\") {\n setTimeout(() => {\n createSipStack(loggedAttendant);\n }, 30000);\n }\n };\n\n const sipEventListener = (e) => {\n console.log(\"Sip event listener\", e);\n // Testing purposes\n setSipEventListener(e);\n setSipSessionType(e.type);\n switch (e.type) {\n case \"connecting\": {\n console.log(\"Connecting\");\n break;\n }\n case \"connected\": {\n console.log(\"Connected\");\n break;\n }\n case \"terminating\": {\n break;\n }\n case \"terminated\": {\n console.log(\"Call terminated\")\n setSessionListener(undefined);\n break;\n }\n case \"transport_error\": {\n setTimeout(() => {\n createSipStack(loggedAttendant);\n }, 30000);\n break;\n }\n default:\n break;\n }\n };\n\n const makeSipCall = (number) => {\n const newSipCall = sipStack.newSession(\"call-audio\", {\n audio_remote: document.getElementById(\"audio_sip\"),\n events_listener: { events: '*', listener: onSipEventSession }\n });\n setSipCall(newSipCall);\n newSipCall.call(number);\n };\n\n const onSipEventSession = (e) => {\n console.log('SIP session listener', e);\n // Testing purposes\n setSessionListener(e);\n if (e?.type) {\n setSipEventType(e.type);\n if (e.type === 'connected') {\n setSipEventListener(undefined)\n }\n }\n }\n\n const sleep = (ms) => {\n return new Promise((resolve) => setTimeout(resolve, ms));\n };\n\n const sendPERSPassword = async () => {\n if (sipCall) {\n const dtmfSequence = [1, 2, 3, 4, \"#\"];\n for (const dtmf of dtmfSequence) {\n sipCall.dtmf(dtmf);\n }\n } else {\n console.log(\"Error, no call to send password\");\n }\n};\n\n const hangupSip = async () => {\n if (sipCall) {\n sipCall.dtmf(9);\n await sleep(2000);\n sipCall.hangup({\n events_listener: { events: \"*\", listener: sipEventListener },\n });\n setSipCall(undefined);\n setSipEventType(undefined);\n } else {\n console.log(\"Error, nothing to hangup.\");\n setSipEventType(undefined);\n }\n };\n\n const extendCall = () => {\n if (sipCall) {\n sipCall.dtmf(8);\n } else {\n console.log(\"Error, no call to extend\");\n }\n };\n\n const muteAudio = () => {\n if (sipCall) {\n sipCall.dtmf(1);\n } else {\n console.log(\"Error, no call to mute\");\n }\n };\n\n const sendDTMF = (tone) => {\n if (sipCall) {\n sipCall.dtmf(tone);\n } else {\n console.log(\"Error, no call to send dtmf\");\n }\n };\n\n const mutePhone = () => {\n if (sipCall) {\n sipCall.dtmf(3);\n } else {\n console.log(\"Error, no call to mute phone\");\n }\n };\n\n const takeEmergency = (type) => {\n if (type !== \"stop-audio\") {\n setUserIsBusy(true);\n }\n setAudioAction(\"stop\");\n };\n\n const setUserIsBusy = (isBusy) => {\n setAudioAction(isBusy ? \"stop\" : \"\");\n };\n\n // Reminders block\n const createReminderFunction = (reminder) => {\n const data = reminder;\n data.status = \"OPEN\";\n data.attend = reminderAttendId;\n data.open_attendant = loggedAttendant.id;\n createReminder(data).then(() => {\n setShowReminderNote(false);\n if (!data.is_individual) {\n broadcast(axios, channelId, {\n type: \"reminders\",\n update: \"reminders\",\n ownerAttendantId: loggedAttendant.id,\n userId: loggedAttendant.id,\n });\n }\n });\n };\n\n if (!localStorage.domainInfo || localStorage.domainInfo === \"{}\") {\n return <>;\n }\n\n const rcToken =\n sessionStorage.activeDomain &&\n JSON.parse(localStorage.domainInfo)[sessionStorage.activeDomain].rc_token;\n const deactivatedRC = sessionStorage.deactivatedRC; // Only for testing with cypress, deactivating RC will decrease the load time\n\n return (\n \n
\n {!deactivatedRC && user && user.groups.length === 1 && (\n setNewChatMessage(showChat ? false : true)}\n />\n )}\n {showAdmMessageModal && adminMessage && (\n setShowAdmMessageModal(!showAdmMessageModal)}\n />\n )}\n {showInteractionModal &&\n setShowInteractionModal(false)}\n />\n\n }\n \n {updateInfoNotificationText}\n
\n {channelId && user && (\n setShowAttendModal(!showAttendModal)}\n loggedAttendant={user}\n />\n )}\n {hasReminders && (\n \n {\n if (!showReminderComponent) {\n reminderAudio.play();\n }\n setShowReminderComponent(true);\n }}\n toggleReminderComponent={() =>\n setShowReminderComponent(!showReminderComponent)\n }\n openReminderNote={() => setShowReminderNote(true)}\n setReminderAttendId={setReminderAttendId}\n channelId={channelId}\n toggleHasReminders={() => setHasReminders(!hasReminders)}\n sipStackType={sipStackType}\n startCall={makeSipCall}\n sendPERSPassword={sendPERSPassword}\n hangupSip={hangupSip}\n />\n
\n )}\n {showReminderNote && (\n setShowReminderNote(!setShowReminderNote)}\n />\n )}\n {showActivationModal && (\n \n }\n setModalInfo={() => setShowActivationModal(false)}\n action={() => {\n setShowActivationModal(false);\n props.history.push(\"/app/activate\");\n }}\n />\n )}\n {user && (\n {\n setShowChat(!showChat);\n setNewChatMessage(false);\n }}\n newChatMessage={newChatMessage}\n toggleReminder={() =>\n setShowReminderComponent(!showReminderComponent)\n }\n toggleAdminModal={() =>\n setShowAdmMessageModal(!showAdmMessageModal)\n }\n reminders={reminders}\n activate={() => setShowActivationModal(true)}\n history={props.history}\n audioAction={audioAction}\n turnOffAlarmAudio={() => setAudioAction(\"stop\")}\n sipEvtListener={sipEvtListener}\n evtListener={evtListener}\n sessionListener={sessionListener}\n hangupSip={hangupSip}\n />\n )}\n {user && (\n setSidebarExpanded(!sidebarExpanded)}\n isManagement={\n user.groups[0] === 2 ||\n user.groups[0] === 1 ||\n user.groups[0] === 4\n }\n isFromCompany={user.groups.length > 1}\n isManager={user.groups[0] === 2}\n isAdmin={user.groups[0] === 1}\n isOwner={user.groups[0] === 4}\n />\n )}\n {channelId && user && (\n makeSipCall(\"0001echo\")}\n startCall={makeSipCall}\n sendPERSPassword={sendPERSPassword}\n status={tenantStatus}\n isPaid={tenantIsPaid}\n isActive={tenantIsActive}\n isAdmin={user.groups[0] === 1}\n isOwner={user.groups[0] === 4}\n />\n )}\n {channelId && user && window.location.pathname !== \"/app\" && (\n \n )}\n \n
\n \n );\n};\n\nexport default App;\n","import * as types from './actionTypes';\n\nexport function setLoggedAttendant(attendant) {\n return { type: types.SET_LOGGED_ATTENDANT, attendant }\n}\n","import * as types from './actionTypes';\n\nexport const test = '';\n\nexport const addBrowserDimentions = ({ width, height }) => ({\n type: types.ADD_BROWSER_DIMENTIONS, dimentions: { width, height },\n});\n","export default __webpack_public_path__ + \"static/media/logo-contactto-01 2.9c754b63.png\";","import React from 'react';\nimport { FormattedMessage } from 'react-intl';\nimport '../../css/login.scss';\n\nconst LoginForm = (props) => (\n
\n \n
\n {props.errorElm}\n
\n \n \n \n \n \n)\n\nexport default LoginForm;\n","/* eslint-disable import/no-anonymous-default-export */\nexport default {\n en: {\n 'login.error.user': 'user field must be filled in',\n 'login.error.password': 'password field must be filled in',\n 'login.error.domain': 'domain field must be filled in',\n 'login.error.invalidDomain': 'domain doesn\\'t exist',\n 'login.error.blocked': 'This Domain is blocked, please contact us.',\n 'login.error.userorpassword': 'user or password incorrect',\n 'login.error.minElPass': 'password must have at least {minEl} characters',\n 'login.error.unauthorized': 'This username and password are not allowed in this login.',\n 'login.error.unexpected': 'unexpected error',\n 'login.success.redirect': 'Successfully logged in. You will be redirected...',\n 'login.success.emailSent': 'An Email with the new password was successfully sent! Check your new password in your email.',\n 'login.form.enter': 'login',\n 'login.form.passwordForgotHeader': 'FORGOT MY PASSWORD',\n 'login.form.passwordResetSend': 'send',\n 'login.form.login': 'Login',\n 'login.form.forgotPassword': 'Forgot my password',\n 'login.form.resetPassMultipleUsers': 'Unfortunately your email is being used by multiple attendants, please add your login name',\n 'login.form.username': 'Username',\n 'login.form.domain': 'Domínio',\n 'login.form.resetEmailInvalid': 'Invalid Email',\n },\n pt: {\n 'login.error.user': 'usuário deve ser preenchido',\n 'login.error.password': 'campo de senha deve ser preenchido',\n 'login.error.domain': 'campo de domínio deve ser preenchido',\n 'login.error.invalidDomain': 'domínio inexistente',\n 'login.error.blocked': 'Este Domínio está bloqueado, favor entrar em contato conosco.',\n 'login.error.userorpassword': 'usuário ou senha incorretos',\n 'login.error.minElPass': 'senha deve conter no mínimo {minEl} caracteres',\n 'login.error.unauthorized': 'Este usuário e senha não estão autorizados neste login.',\n 'login.error.unexpected': 'erro inesperado',\n 'login.success.redirect': 'Login realizado com sucesso Você será redirecionado...',\n 'login.success.emailSent': 'Email com uma nova senha foi enviado com sucesso! Verifique sua nova senha em seu email.',\n 'login.form.enter': 'entrar',\n 'login.form.passwordForgotHeader': 'ESQUECI MINHA SENHA',\n 'login.form.passwordResetSend': 'enviar',\n 'login.form.login': 'Login',\n 'login.form.forgotPassword': 'Esqueci minha senha',\n 'login.form.resetPassMultipleUsers': 'Infelizmente seu e-mail é utilizado em múltiplos atendentes, por favor indique seu nome de login',\n 'login.form.username': 'Usuário',\n 'login.form.domain': 'Domínio',\n 'login.form.resetEmailInvalid': 'Email inválido',\n },\n};\n","import React, { useState, useEffect } from 'react';\nimport PropTypes from 'prop-types';\nimport { FormattedMessage } from 'react-intl';\nimport messagesLogin from '../../BLL/locale/messagesLogin';\nimport '../../css/login.scss';\n\nconst PasswordResetForm = (props) => {\n const { lang } = props;\n const [domain, setDomain] = useState('');\n const [email, setEmail] = useState('');\n const [username, setUsername] = useState('');\n\n useEffect(() => {\n if (domain) {\n setDomain(domain);\n }\n }, [props.domain]);\n\n const handleEmail = (ev) => {\n if (ev.charCode === 13) {\n props.makePasswordReset(domain, email, username);\n }\n setEmail(ev.target.value);\n };\n\n const handleUsername = (ev) => {\n if (ev.charCode === 13) {\n props.makePasswordReset(domain, email, username);\n }\n setUsername(ev.target.value);\n };\n\n const handleDomain = (ev) => {\n if (ev.charCode === 13) {\n props.makePasswordReset(domain, email, username);\n }\n setDomain(ev.target.value);\n }\n\n const makePasswordReset = () => {\n props.makePasswordReset(domain, email, username);\n }\n\n if (props.loadingResetEmail) {\n return <>\n }\n\n return (\n \n \n
\n \n
\n {props.errorEmailReset &&\n
\n \n
\n }\n {props.resetEmailStatus === 'success' &&\n
\n \n
\n }\n \n \n {props.showUsernameInput &&\n <>\n \n \n \n }\n \n \n )\n};\n\nPasswordResetForm.defaultProps = {\n domain: ''\n};\n\nPasswordResetForm.propTypes = {\n domain: PropTypes.string,\n lang: PropTypes.string.isRequired,\n errorEmailReset: PropTypes.bool.isRequired,\n showUsernameInput: PropTypes.bool.isRequired,\n makePasswordReset: PropTypes.func.isRequired,\n};\n\nexport default PasswordResetForm;\n","import React, { useState } from 'react';\n// import PropTypes from 'prop-types';\nimport axios from 'axios';\nimport { connect } from 'react-redux'\nimport { FormattedMessage, IntlProvider } from 'react-intl';\nimport * as authActions from '../../actions/authActions';\nimport * as localeActions from '../../actions/localeActions';\nimport config from '../../BLL/config';\nimport { host } from '../../BLL/environment';\nimport logo from '../../img/logo-contactto-01 2.png';\nimport Loading from '../../icons/Loading';\nimport LoginForm from './LoginForm';\nimport PasswordResetForm from './PasswordResetForm';\nimport messagesLogin from '../../BLL/locale/messagesLogin';\n\nimport '../../css/animation.css';\nimport '../../css/contactto.scss';\nimport '../../css/login.scss';\n\nconst LoginPage = (props) => {\n const { lang } = props;\n const [username, setUsername] = useState('');\n const [password, setPassword] = useState('');\n const [domain, setDomain] = useState('');\n const [loginContainerClass, setLoginContainerClass] = useState('contactto-login-content-container');\n const [loginSuccessClass, setLoginSuccessClass] = useState('login-success');\n const [loginFormClass, setLoginFormClass] = useState('contactto-login-content-container-form');\n const [inputUserClass, setInputUserClass] = useState('login-form-input login-form-input--border')\n const [inputPassClass, setInputPassClass] = useState('login-form-input')\n const [inputDomainClass, setInputDomainClass] = useState('login-form-input login-form-input--border')\n const [errorElm, setErrorElm] = useState(undefined);\n const [loadingResetEmail, setLoadingResetEmail] = useState(false);\n const [showErrorResetEmail, setShowErrorResetEmail] = useState(false);\n const [showUsernameInput, setShowUsernameInput] = useState(false);\n const [showLoginForm, setShowLoginForm] = useState(true);\n const [resetEmailStatus, setResetEmailStatus] = useState('');\n\n const getCookie = (cName) => {\n if (document.cookie.length > 0) {\n // cName + '='\n let cStart = document.cookie.indexOf(`${cName}=`);\n if (cStart !== -1) {\n cStart = cStart + cName.length + 1;\n let cEnd = document.cookie.indexOf(';', cStart);\n if (cEnd === -1) cEnd = document.cookie.length;\n return unescape(document.cookie.substring(cStart, cEnd));\n }\n }\n return '';\n }\n\n const handleInputChange = (ev) => {\n const field = ev.target.name;\n const value = ev.target.value;\n\n switch(field) {\n case 'username': {\n setUsername(value);\n if (value) {\n setInputUserClass('login-form-input login-form-input--border');\n }\n break;\n }\n case 'password': {\n setPassword(value);\n const minEl = ev.target.getAttribute('data-el');\n if (value.length < minEl) {\n setInputPassClass('login-form-input login-form-input--error');\n setErrorElm();\n } else {\n setInputPassClass('login-form-input');\n setErrorElm(undefined);\n }\n break;\n }\n case 'domain': {\n setDomain(value);\n if (value) {\n setInputDomainClass('login-form-input login-form-input--border')\n }\n break;\n }\n default:\n break;\n }\n };\n\n const errorAnimation = () => {\n setLoginContainerClass('contactto-login-content-container error-animation');\n setTimeout(() => {\n setLoginContainerClass('contactto-login-content-container')\n }, 400);\n };\n\n const handleSubmit = async (ev) => {\n ev.preventDefault();\n const isDomainValid = await makeDomainValidationPost();\n if (!username) {\n setErrorElm();\n setInputUserClass('login-form-input login-form-input--error');\n errorAnimation();\n } else if (!password) {\n setErrorElm();\n setInputPassClass('login-form-input login-form-input--error');\n errorAnimation();\n } else if (!domain) {\n setErrorElm();\n setInputDomainClass('login-form-input login-form-input--error');\n errorAnimation();\n } else if (isDomainValid !== true) {\n if (isDomainValid.response?.status === 404 && isDomainValid.response?.data?.error.includes('does not exist')) {\n setErrorElm();\n setInputDomainClass('login-form-input login-form-input--error');\n errorAnimation();\n } else {\n console.log(isDomainValid);\n setErrorElm();\n setInputDomainClass('login-form-input login-form-input--error');\n errorAnimation();\n }\n }\n else {\n sessionStorage.setItem('activeDomain', domain);\n props.authLoginUser(username, password)\n .then((res) => {\n console.log(res);\n if (res.isActive) {\n let domainList = localStorage.domainList ? JSON.parse(localStorage.domainList) : [];\n domainList.indexOf(domain) === -1 && domainList.push(domain);\n localStorage.setItem('domainList', JSON.stringify(domainList));\n\n const usr = Object.assign({}, res.user);\n delete usr.password;\n const tenantInfo = {\n 'token': res.token,\n 'user': usr,\n 'status': res.status,\n 'is_paid': res.isPaid,\n 'is_active': res.isActive,\n 'rc_token': res.rcToken\n }\n const domainInfo = localStorage.domainInfo ? JSON.parse(localStorage.domainInfo) : {}\n const newDomain = Object.assign({}, domainInfo, { [domain]: tenantInfo });\n localStorage.setItem('domainInfo', JSON.stringify(newDomain));\n localStorage.setItem('token', res.token);\n localStorage.setItem('user', JSON.stringify(usr));\n localStorage.setItem('status', res.status);\n localStorage.setItem('is_paid', res.isPaid);\n localStorage.setItem('is_active', res.isActive);\n localStorage.setItem('rc_token', res.rcToken);\n\n sessionStorage.setItem('activeToken', res.token);\n\n setTimeout(() => {\n props.history.push('/app');\n }, 1500);\n\n setLoginFormClass('contactto-login-content-container-form contactto-hide');\n setLoginSuccessClass('login-success login-success-show');\n } else {\n setErrorElm();\n inputUserClass('login-form-input login-form-input--border');\n errorAnimation();\n }\n })\n .catch((err) => {\n console.log(err);\n errorAnimation();\n if (err.data && err.data.trialLimit) {\n setErrorElm();\n } else if (err.data && err.data.unauthorized) {\n setErrorElm();\n } else {\n setErrorElm();\n }\n })\n\n };\n\n }\n\n const makePasswordReset = (domain, email, username) => {\n setLoadingResetEmail(true);\n let data = {\n email: email,\n domain: domain,\n };\n if (username) {\n data.username = username;\n }\n\n axios({\n method: 'post',\n responseType: 'json',\n url: `https://${domain}${host()}/api/password-reset/`,\n headers: {\n Accept: 'application/json',\n 'Content-Type': 'application/json',\n 'X-CSRFToken': getCookie('csrftoken'),\n },\n data\n }).then(() => {\n setLoadingResetEmail(false);\n setResetEmailStatus('success');\n }).catch((err) => {\n setResetEmailStatus('fail');\n if (err.response && err.response.status === 409) {\n setLoadingResetEmail(false);\n setShowUsernameInput(true);\n } else {\n setLoadingResetEmail(false);\n setShowErrorResetEmail(true);\n setTimeout(() => {\n setShowErrorResetEmail(false);\n }, 1200);\n }\n });\n };\n\n const makeDomainValidationPost = () => {\n const data = {\n tenant: domain\n };\n return axios({\n method: 'post',\n responseType: 'json',\n url: `https://app${host()}/api/tenant-validation/`,\n headers: {\n Accept: 'application/json',\n Authorization: `Api-Key ${config.contacttoPublicApiKey}`,\n 'Content-Type': 'application/json',\n },\n data\n }).then(() => {\n return true;\n }).catch((err) => {\n return err;\n });\n }\n\n let usernameText = 'Usuário';\n let passwordText = 'Senha';\n let domainText = 'Domínio';\n\n if (lang === 'en') {\n usernameText = 'Username';\n passwordText = 'Password';\n domainText = 'Domain';\n }\n \n return (\n \n
\n
\n
\n
\n \n
\n {loadingResetEmail &&\n
\n } />\n
\n }\n {showLoginForm\n ? \n \n :\n \n }\n {!loadingResetEmail && loginSuccessClass !== 'login-success login-success-show' &&\n
\n setShowLoginForm(!showLoginForm)}\n >\n {showLoginForm\n ? \n : \n }\n \n
\n \n | \n \n
\n
\n }\n
\n
\n
\n
\n \n )\n}\n\nfunction mapStateToProps(state, ownProps) {\n return {\n attendants: state.attendants,\n lang: state.locale.lang,\n auth: state.auth,\n };\n}\n\nfunction mapDispatchToProps(dispatch) {\n return {\n authLoginUser: (username, password, redirect) =>\n dispatch(authActions.authLoginUser(username, password, redirect)),\n setLocale: locale => dispatch(localeActions.setLocale(locale)),\n };\n}\n\nexport default connect(mapStateToProps, mapDispatchToProps)(LoginPage);\n","const reportWebVitals = onPerfEntry => {\n if (onPerfEntry && onPerfEntry instanceof Function) {\n import('web-vitals').then(({ getCLS, getFID, getFCP, getLCP, getTTFB }) => {\n getCLS(onPerfEntry);\n getFID(onPerfEntry);\n getFCP(onPerfEntry);\n getLCP(onPerfEntry);\n getTTFB(onPerfEntry);\n });\n }\n};\n\nexport default reportWebVitals;\n","import React from 'react';\nimport { createDevTools } from 'redux-devtools';\nimport LogMonitor from 'redux-devtools-log-monitor';\nimport DockMonitor from 'redux-devtools-dock-monitor';\n\n/**\n * Create the DevTools component and export it.\n */\nexport default createDevTools(\n \n \n ,\n);\n","import React from 'react';\nimport ReactDOM from 'react-dom';\nimport * as Sentry from \"@sentry/react\";\nimport { ErrorBoundary } from 'react-error-boundary';\nimport ErrorBoundaryComponent from './components/Error/GlobalErrorBoundaryComponent.jsx';\nimport { createRoot } from 'react-dom/client';\nimport { BrowserRouter, Route, Redirect, Switch } from 'react-router-dom';\nimport { Provider } from 'react-redux';\nimport ApolloClient from 'apollo-boost';\nimport { ApolloProvider } from 'react-apollo';\nimport App from './AppV3.jsx';\nimport LoginPage from './components/Login/LoginPage';\nimport DevTools from './components/Common/DevTools';\nimport reportWebVitals from './reportWebVitals';\nimport configureStore from './store/configureStore';\nimport * as localeActions from './actions/localeActions';\nimport { host, getDomain } from './BLL/environment.js';\nimport './index.css';\n\nconst isProduction = process.env.NODE_ENV === 'production';\n\n// Sentry.init({\n// dsn: \"https://cb06e4cc4b1f10a24aee55cf68360c40@o4505953378566144.ingest.sentry.io/4505953392197632\",\n// });\n\nconst client = new ApolloClient({\n uri: `https://${getDomain()}${host()}/graphql/`,\n});\n\nexport const redirect = () => {\n if(!localStorage.token) {\n return '/login';\n }\n return '/app';\n};\n\nconst store = configureStore();\n\nif (localStorage.contacttoLang) {\n store.dispatch(localeActions.localeSet(localStorage.contacttoLang));\n}\n\nconst container = document.getElementById('root');\nconst root = createRoot(container);\nroot.render(\n \n \n
\n \n \n \n \n } />\n \n \n {!isProduction && }\n
\n
\n
\n
\n);\n\n// If you want to start measuring performance in your app, pass a function\n// to log results (for example: reportWebVitals(console.log))\n// or send to an analytics endpoint. Learn more: https://bit.ly/CRA-vitals\nreportWebVitals();\n","const initialState = {\n alarms: [],\n attends: {},\n attendsDashboard: {\n attendsOpen: [],\n attendsClosed: []\n },\n attendants: [],\n auth: {\n token: null,\n userName: null,\n status: null,\n isPaid: false,\n isAuthenticated: false,\n isAuthenticating: false,\n configuration: null,\n userConfiguration: null,\n statusText: null,\n },\n clients: {},\n contacts: [],\n errors: [],\n loggedAttendant: null,\n equipment: [],\n search: [],\n status: [],\n transmitters: [],\n browser: {\n width: window.innerWidth,\n height: window.innerHeight,\n },\n importInfo: {\n clientsNotOk: [],\n clientsOk: 0,\n },\n localConfigurations: {\n attends_quantity: null,\n last_attends: null,\n monitored_tenants: null,\n priority_attends: null,\n },\n globalConfigurations: {\n attendant_list: null,\n contacts_list: null,\n },\n tenantStatus: null,\n locale: {\n lang: 'pt',\n },\n asteriskServer: {\n realm: null,\n name: null,\n server: null,\n },\n serverList: [],\n attendTags: [],\n groups: [],\n reminders: {\n serverTime: null,\n data: [],\n },\n lowerPriorityAttends: [],\n showReminderComponent: false,\n};\n\nexport default initialState;\n","import * as types from '../actions/actionTypes';\nimport initialState from './initialState';\n\nexport const lowerPriorityAttendsReducer = (state = initialState.lowerPriorityAttends, action) => {\n switch (action.type) {\n case types.ADD_LOWER_ALARM: {\n return [...state, action.attend];\n }\n case types.REMOVE_LOWER_ALARM: {\n const newState = [\n ...state.slice(0, action.index),\n ...state.slice(action.index + 1)\n ];\n return newState;\n }\n default:\n return state;\n }\n};\n\nexport default lowerPriorityAttendsReducer;\n","import * as types from '../actions/actionTypes';\nimport initialState from './initialState';\n\nexport const reminderComponentReducer = (state = initialState.showReminderComponent, action) => {\n if (action.type === types.TOGGLE_REMINDER_COMPONENT) {\n return !state;\n }\n return state;\n};\n\nexport default reminderComponentReducer;\n","import { combineReducers } from 'redux';\nimport * as types from '../actions/actionTypes';\nimport alarms from './alarmsReducer';\n// import attendance from './attendanceReducer';\nimport attendants from './attendantsReducer';\nimport attends from './attendsReducer';\nimport attendsDashboard from './attendsDashboardReducer';\nimport auth from './authReducer';\nimport browser from './browserReducer';\nimport clients from './clientsReducer';\nimport contacts from './contactsReducer';\nimport errors from './errorsReducer';\nimport loggedAttendant from './loggedAttendantReducer';\nimport transmitters from './transmittersReducer';\nimport status from './userStatusReducer';\nimport equipment from './equipmentReducer';\nimport importInfo from './importInfoReducer';\nimport localConfiguration from './localConfigurationReducer';\nimport globalConfiguration from './globalConfigurationReducer';\nimport globalServer from './globalServerReducer';\nimport serverList from './asteriskServerReducer';\nimport attendTags from './attendTagsReducer';\nimport tenantStatus from './tenantStatusReducer';\nimport locale from './localeReducer';\nimport groups from './groupsReducer';\nimport reminders from './remindersReducer';\nimport lowerAlarms from './lowerPriorityAttendsReducer';\nimport reminderComponentReducer from './reminderComponentReducer';\n\nconst appReducer = combineReducers({\n showReminderComponent: reminderComponentReducer,\n alarms,\n attendants,\n attends,\n attendsDashboard,\n auth,\n browser,\n clients,\n localConfiguration,\n globalConfiguration,\n globalServer,\n serverList,\n contacts,\n errors,\n loggedAttendant,\n transmitters,\n status,\n equipment,\n importInfo,\n tenantStatus,\n locale,\n groups,\n reminders,\n attendTags,\n lowerAlarms\n});\n\nconst rootReducer = (state, action) => {\n if (action.type === types.AUTH_RESET_STORE) {\n return appReducer(undefined, action);\n }\n return appReducer(state, action);\n}\n\nexport default rootReducer;\n","import * as types from '../actions/actionTypes';\nimport initialState from './initialState';\n\nexport default function alarmsReducer(state = initialState.alarms, action) {\n let newState = []\n let alarmsList = [];\n switch (action.type) {\n case types.LOAD_ALARMS_SUCCESS:\n return [{\n ordering: action.ordering,\n data: action.alarms,\n }];\n case types.EDIT_ALARM:\n alarmsList = state;\n newState = alarmsList.map(dataList => {\n if (dataList.data && dataList.data.length > 0) {\n return {\n ordering: dataList.ordering,\n data: dataList.data.map(alarm => alarm.id === action.alarm.id ? action.alarm : alarm),\n };\n }\n return dataList;\n });\n return newState;\n case types.NEW_ALARM:\n alarmsList = state;\n newState = alarmsList.map(dataList => {\n return {ordering: dataList.ordering, data: [...dataList.data, action.alarm]};\n });\n return newState;\n default:\n return state;\n }\n}\n\n\n\n// /*\n// Inputs:\n// state = Estado atual do objeto, caso não seja passado é utilizado o estado default do arquivo(initalstate.alarms)\n// action = Ação aplicada sobre o objeto\n\n// Types:\n// LOAD_ALARMS_SUCCESS = Alarmes carregados com sucesso\n\n// hasOrdering:\n// Alarme vindo do state\n\n// AlarmReducer:\n// Identifica o alarme presente no state se necessita de ordenação e retorna o alarme ordernado ou não.\n// */\n// export default function alarmsReducer(state = initialState.alarms, action) {\n// const hasOrdering = state.some(alarms => alarms.ordering === action.ordering);\n// if (action.type === types.LOAD_ALARMS_SUCCESS && !hasOrdering) {\n// return [\n// ...state,\n// {\n// ordering: action.ordering,\n// data: action.alarms,\n// },\n// ];\n// }\n// if (action.type === types.RELOAD_ALARMS_SUCCESS) {\n// return [\n// {\n// ordering: action.ordering,\n// data: action.alarms,\n// },\n// ];\n// }\n// return state;\n// }\n","import * as types from '../actions/actionTypes';\nimport initialState from './initialState';\n\nexport default function attendantsReducer(state = initialState.attendants, action) {\n let newState = [];\n switch (action.type) {\n case types.LOAD_ATTENDANTS_SUCCESS:\n return [{\n ordering: action.ordering,\n data: action.attendants\n }]\n case types.EDIT_ATTENDANT:\n newState = state.map(dataList => {\n if (dataList.data && dataList.data.length > 0) {\n return {\n ordering: dataList.ordering,\n data: dataList.data.map(attendant => attendant.id === action.attendant.id ? action.attendant : attendant)\n };\n }\n return dataList;\n });\n return newState;\n case types.NEW_ATTENDANT:\n // myArray.filter(f => f !== newArrayItem).concat([newArrayItem])\n newState = state.map(dataList => {\n return {\n ordering: dataList.ordering,\n // data: [...dataList.data, action.attendant],\n data: [...dataList.data].filter(att => att.id !== action.attendant.id).concat([action.attendant]) ,\n }\n });\n return newState;\n default:\n return state;\n }\n}\n\n\n\n// /*\n// Inputs:\n// state = Estado atual do objeto, caso não seja passado é utilizado o estado default do arquivo(initalstate.attendants)\n// action = Ação aplicada sobre o objeto\n\n// Types:\n// LOAD_ATTENDANTS_SUCCESS = Atendentes carregados com sucesso\n// RELOAD_ATTENDANTS_SUCCESS = Atendentes recarregados com sucesso\n\n// attendantsReducer:\n// Caso atendentes sejam carregados com sucesso, retorna a listagem de atendentes ordernados.\n// Caso atendentes sejam recarregado com sucesso, retorno a listagem de atendimentos ordernados.\n// */\n// export default function attendantsReducer(\n// state = initialState.attendants,\n// action,\n// ) {\n// const hasOrdering = state.some(\n// attendant => attendant.ordering === action.ordering,\n// );\n// if (action.type === types.LOAD_ATTENDANTS_SUCCESS && !hasOrdering) {\n// return [\n// ...state,\n// {\n// ordering: action.ordering,\n// data: action.attendants,\n// },\n// ];\n// }\n// if (action.type === types.RELOAD_ATTENDANTS_SUCCESS) {\n// return [\n// {\n// ordering: action.ordering,\n// data: action.attendants,\n// },\n// ];\n// }\n// return state;\n// }\n","import * as types from '../actions/actionTypes';\nimport initialState from './initialState';\n\nexport default function attendsReducer(state = initialState.clients, action) {\n switch (action.type) {\n case types.LOAD_ATTENDS_SUCCESS: {\n const results = Object.assign({}, action.results, { page: action.page });\n return {\n activePage: action.page,\n activeUrl: action.pageUrl,\n pages: [results],\n ordering: action.ordering,\n filter: action.filter,\n count: action.results.count,\n active: action.results.active,\n reload: false,\n };\n }\n case types.RECEIVE_NEW_ATTEND_PAGE: {\n const results = Object.assign({}, action.newPage, { page: action.pageNumber });\n const newState = Object.assign({}, state, {\n pages: [...state.pages, results],\n activePage: action.pageNumber,\n activeUrl: action.pageUrl,\n },\n {reload: false});\n return newState;\n }\n case types.SET_ATTEND_PAGE: {\n const newState = Object.assign({}, state, {\n activePage: action.pageNumber, activeUrl: action.pageUrl\n },\n {reload: false});\n return newState;\n }\n case types.EDIT_ATTEND: {\n if (!state.pages) {\n return state;\n }\n const newState = Object.assign({}, state, {\n pages: state.pages.map(dataList => (\n Object.assign({}, dataList, {\n results: dataList.results.map(attend => {\n if (attend.id === action.attend.id) {\n return action.attend;\n }\n return attend;\n }),\n })\n )),\n },\n {reload: true});\n return newState;\n }\n default:\n return state;\n }\n}\n\n// import * as types from '../actions/actionTypes';\n// import initialState from './initialState';\n\n// /*\n// Inputs:\n// state = Estado atual do objeto, caso não seja passado é utilizado o estado default do arquivo(initalstate.attends)\n// action = Ação aplicada sobre o objeto\n\n// Types:\n// LOAD_ATTENDS_SUCCESS = Atendimentos carregados\n// RELOAD_ATTENDS_SUCCESS = Atendimentos recarregados com sucesso\n\n// attendsReducer:\n// Caso atendimento seja carregado com sucesso, retorna a listagem de atendimentos ordernados,\n// a próxima página caso exista, a página corrente, a contagem total de páginas, dados da página corrente, atendimentos fechados.\n// */\n// export default function attendsReducer(state = initialState.attends, action) {\n// if (action.type === types.LOAD_ATTENDS_SUCCESS) {\n// const attendsOrdering =\n// state.length > 0\n// ? state.filter(attends => attends.ordering === action.ordering)[0]\n// : undefined;\n// if (!attendsOrdering) {\n// return [\n// ...state,\n// {\n// ordering: action.ordering,\n// isFiltered: action.isFiltered,\n// filter: action.filter,\n// list: [\n// {\n// page: action.page,\n// next: action.next,\n// count: action.count,\n// attendsOrdered: action.attendsOrdered,\n// attendsClosed: action.attendsClosed,\n// },\n// ],\n// },\n// ];\n// }\n// const updatedOrdering = Object.assign(\n// {},\n// {\n// ordering: action.ordering,\n// isFiltered: action.isFiltered,\n// filter: action.filter,\n// list: [\n// ...attendsOrdering.list,\n// {\n// page: action.page,\n// next: action.next,\n// count: action.count,\n// attendsOrdered: action.attendsOrdered,\n// attendsClosed: action.attendsClosed,\n// },\n// ],\n// },\n// );\n// return [\n// ...state.filter(attends => attends.ordering !== action.ordering),\n// updatedOrdering,\n// ];\n// } else if (action.type === types.RELOAD_ATTENDS_SUCCESS) {\n// return [\n// {\n// ordering: action.ordering,\n// isFiltered: action.isFiltered,\n// filter: action.filter,\n// list: [\n// {\n// page: action.page,\n// next: action.next,\n// count: action.count,\n// attendsOrdered: action.attendsOrdered,\n// attendsClosed: action.attendsClosed,\n// },\n// ],\n// },\n// ];\n// } else if (action.type === types.ERASE_ATTEND_LIST) {\n// return [];\n// }\n// return state;\n// }\n","import * as types from '../actions/actionTypes';\nimport initialState from './initialState';\n\n\nexport default function attendsDashboardReducer(state = initialState.attendsDashboard, action) {\n let openAttends = [];\n let newState = {};\n switch (action.type) {\n case types.LOAD_DASHBOARD_SUCCESS:\n return {\n attendsOpen: action.open,\n attendsClosed: action.closed,\n };\n case types.LOAD_OPEN_DASHBOARD_SUCCESS:\n newState = Object.assign({}, state, { attendsOpen: action.payload });\n return newState;\n case types.NEW_ATTEND_DASHBOARD:\n openAttends = [action.attend, ...state.attendsOpen];\n // console.log(state.attendsOpen.filter(att => att.id !== action.attend.id));\n // openAttends = state.attendsOpen.filter(att => att.id !== action.attend.id).concat([action.attend]);\n newState = Object.assign({}, state, { attendsOpen: openAttends });\n return newState;\n case types.UPDATE_ATTEND_DASHBOARD:\n openAttends = state.attendsOpen;\n newState = Object.assign({}, state, {\n attendsOpen: openAttends.map((attend) => { \n if (attend.id === action.attend.id) {\n return action.attend;\n }\n return attend;\n }),\n });\n return newState;\n case types.CLOSE_ATTEND_DASHBOARD: {\n openAttends = state.attendsOpen;\n let closedAttends = [...state.attendsClosed];\n const attIndex = closedAttends.findIndex(att => att.id === action.attend.id);\n if (attIndex === -1) {\n closedAttends = [action.attend, ...closedAttends];\n }\n\n newState = Object.assign(\n {},\n state,\n { attendsOpen: openAttends.filter(attend => attend.id !== action.attend.id) },\n { attendsClosed: closedAttends.sort((attA, attB) => attA.id > attB.id ) },\n );\n return newState;\n }\n default:\n return state;\n }\n}\n","import * as types from '../actions/actionTypes';\r\nimport initialState from './initialState';\r\n\r\n/*\r\n Inputs:\r\n state = Estado atual do objeto, caso não seja passado é utilizado o estado default do arquivo(initalstate.auth)\r\n action = Ação aplicada sobre o objeto\r\n\r\n Types:\r\n AUTH_LOGIN_USER_REQUEST = Requisição de autenticação de usuários\r\n AUTH_LOGIN_USER_SUCCESS = Requisição aceita com sucesso\r\n AUTH_LOGIN_USER_FAILURE = Requisição de login falhou\r\n AUTH_LOGOUT_USER = Requisição de logout de usuário\r\n\r\n authReducer:\r\n Método responsável por identificar a necessidade da operação, baseado no Type, retornando o estado do objeto de autenticação\r\n (Ex: Usuário e senha conferem(Login realizado com sucesso), não foi possível realizar login(Failure))\r\n*/\r\nexport default function authReducer(state = initialState.auth, action) {\r\n if (action.type === types.AUTH_LOGIN_USER_REQUEST) {\r\n return Object.assign({}, state, {\r\n isAuthenticating: true,\r\n statusText: null,\r\n });\r\n }\r\n if (action.type === types.AUTH_LOGIN_USER_SUCCESS) {\r\n return Object.assign({}, state, {\r\n isAuthenticating: false,\r\n isAuthenticated: true,\r\n token: action.token,\r\n userName: action.user.username,\r\n status: action.status,\r\n isPaid: action.isPaid,\r\n isActive: action.isActive,\r\n configuration: action.config,\r\n userConfiguration: action.userConfig,\r\n statusText: 'Successful login.',\r\n });\r\n }\r\n if (action.type === types.AUTH_LOGIN_USER_FAILURE) {\r\n return Object.assign({}, state, {\r\n isAuthenticating: false,\r\n isAuthenticated: false,\r\n token: null,\r\n userName: null,\r\n status: null,\r\n isPaid: false,\r\n isActive: false,\r\n configuration: null,\r\n userConfiguration: null,\r\n statusText: `Authentication Error: ${action.payload.status} - ${\r\n action.payload.statusText\r\n }`,\r\n });\r\n }\r\n if (action.type === types.AUTH_LOGOUT_USER) {\r\n return Object.assign({}, state, {\r\n isAuthenticated: false,\r\n token: null,\r\n userName: null,\r\n status: null,\r\n isPaid: false,\r\n isActive: false,\r\n configuration: null,\r\n userConfiguration: null,\r\n statusText: 'You have been successfully logged out.',\r\n });\r\n }\r\n return state;\r\n}\r\n","import * as types from '../actions/actionTypes';\nimport initialState from './initialState';\n\n/*\n Inputs:\n state = Estado atual do objeto, caso não seja passado é utilizado o estado default do arquivo(initalstate.browser)\n action = Ação aplicada sobre o objeto\n\n Types:\n ADD_BROWSER_DIMENTIONS = Dimensões do browser\n\n export default:\n Retorno das dimensões da página\n*/\nexport default (state = initialState.browser, action) => {\n if (action.type === types.ADD_BROWSER_DIMENTIONS) {\n return Object.assign({}, state, action.dimentions);\n }\n return state;\n};\n","import * as types from '../actions/actionTypes';\nimport initialState from './initialState';\n\nexport default function clientsReducer(state = initialState.clients, action) {\n switch (action.type) {\n case types.LOAD_CLIENTS_SUCCESS: {\n const results = Object.assign({}, action.results, { page: action.page });\n return {\n activePage: action.page,\n activeUrl: action.pageUrl,\n pages: [results],\n ordering: action.ordering,\n filter: action.filter,\n count: action.results.count,\n active: action.results.active,\n reload: false,\n };\n }\n case types.RECEIVE_NEW_CLIENT_PAGE: {\n const results = Object.assign({}, action.newPage, { page: action.pageNumber });\n const newState = Object.assign({}, state, {\n pages: [...state.pages, results],\n activePage: action.pageNumber,\n activeUrl: action.pageUrl,\n },\n {reload: false});\n return newState;\n }\n case types.SET_CLIENT_PAGE: {\n const newState = Object.assign({}, state, {\n activePage: action.pageNumber, activeUrl: action.pageUrl\n },\n {reload: false});\n return newState;\n }\n case types.EDIT_CLIENT: {\n const newState = Object.assign({}, state, {\n pages: state.pages.map(dataList => (\n Object.assign({}, dataList, {\n results: dataList.results.map((client) => {\n if (client.id === action.client.id) {\n return action.client;\n }\n return client;\n }),\n })\n )),\n },\n {reload: true});\n return newState;\n }\n default:\n return state;\n }\n}\n\n// export default function clientsReducer(state = initialState.clients, action) {\n// let newState = [];\n// switch (action.type) {\n// case types.LOAD_CLIENTS_SUCCESS:\n// return [\n// {\n// data: action.clients,\n// count: action.count,\n// next: action.next,\n// previous: action.previous,\n// ordering: action.ordering,\n// isFiltered: action.isFiltered,\n// filter: action.filter,\n// page: action.page\n// }\n// ];\n// case types.EDIT_CLIENT:\n// newState = state.map(dataList => {\n// return {\n// data: dataList.data.map(\n// client => client.id === action.client.id ? action.client : client\n// ),\n// count: dataList.count,\n// next: dataList.next,\n// previous: dataList.previous,\n// ordering: dataList.ordering,\n// isFiltered: dataList.isFiltered,\n// filter: dataList.filter,\n// page: dataList.page\n// }\n// });\n// return newState;\n// case types.NEW_PAGE_CLIENT:\n// return [\n// ...state\n// ]\n// default:\n// return state;\n// }\n// }\n\n// // /*\n// // Inputs:\n// // state = Estado atual do objeto, caso não seja passado é utilizado o estado default do arquivo(initalstate.browser)\n// // action = Ação aplicada sobre o objeto\n\n// // hasOrdering:\n// // Validação para identificar se é necessário ordernar os clientes. A tomada de decisão parte do state recebido por padrão\n\n// // Types:\n// // LOAD_CLIENTS_SUCCESS = Carregamento de clientes realizado com sucesso\n// // RELOAD_CLIENTS_SUCCESS = Recarregamento de clientes realizado com sucesso\n\n// // clientsReducer:\n// // Retornado array de clientes ordenado ou não mediante hasOrdering.\n// // */\n// // export default function clientsReducer(state = initialState.clients, action) {\n// // const hasOrdering = state.some(client => client.ordering === action.ordering);\n// // if (action.type === types.LOAD_CLIENTS_SUCCESS) {\n// // const clients = action.cliResponse.results ? action.cliResponse.results : action.cliResponse;\n// // return [\n// // ...state,\n// // {\n// // ...action.cliResponse,\n// // ordering: action.ordering,\n// // data: clients,\n// // isFiltered: action.isFiltered,\n// // filter: action.filter,\n// // page: action.page,\n// // },\n// // ];\n// // }\n\n// // if (action.type === types.RELOAD_CLIENTS_SUCCESS) {\n// // const clients = action.cliResponse.results ? action.cliResponse.results : action.cliResponse;\n// // return [\n// // {\n// // ...action.cliResponse,\n// // ordering: action.ordering,\n// // data: clients,\n// // isFiltered: action.isFiltered,\n// // filter: action.filter,\n// // page: action.page,\n// // },\n// // ];\n// // }\n\n// // return state;\n// // }\n","import * as types from '../actions/actionTypes';\nimport initialState from './initialState';\n\n\n/*\nInputs:\n state = Estado atual do objeto, caso não seja passado, é utilizado o estado padrão do arquivo\n (initialState.localConfigurations) que é um objeto\n action = Ação aplicada sobre o objeto\nTypes:\n RELOAD_LOCAL_CONFIGURATIONS = Realiza a ação de recarregar as configurações locais\n\nglobalConfigurationReducer = Recarrega as configurações locais do contactto, ou seja, as\nconfigurações do Dashboard de cada atendente (se quer aparecer gráficos ou atendimentos fechados)\n */\nexport default function localConfigurationReducer(\n state = initialState.localConfigurations,\n action,\n) {\n if (action.type === types.RELOAD_LOCAL_CONFIGURATIONS) {\n return { local: action.local };\n }\n return state;\n}\n","import * as types from '../actions/actionTypes';\nimport initialState from './initialState';\n\n\n/*\nInputs:\n state = Estado atual do objeto, caso não seja passado, é utilizado o estado padrão do arquivo\n (initialState.globalConfigurations) que é um objeto\n action = Ação aplicada sobre o objeto\nTypes:\n RELOAD_GLOBAL_CONFIGURATIONS = Realiza a ação de recarregar as configurações globais\n\nglobalConfigurationReducer = Recarrega as configurações globais do contactto\n(Utiliza no atendimento)\n */\nexport default function globalConfigurationReducer(\n state = initialState.globalConfigurations,\n action,\n) {\n if (action.type === types.RELOAD_GLOBAL_CONFIGURATIONS) {\n return { global: action.global };\n }\n return state;\n}\n","import * as types from '../actions/actionTypes';\nimport initialState from './initialState';\n\n\nexport default function globalServerReducer(state = initialState.asteriskServer, action) {\n if (action.type === types.LOAD_SERVER_CONFIG_SUCCESS) {\n return Object.assign({}, state, {\n realm: action.server.server_url,\n name: action.server.server_name,\n server: action.server.asterisk_server,\n });\n }\n return state;\n}\n","import * as types from '../actions/actionTypes';\nimport initialState from './initialState';\n\n\nexport default function globalServerReducer(state = initialState.serverList, action) {\n if (action.type === types.LOAD_SERVER_LIST_SUCCESS) {\n return [...action.server];\n }\n return state;\n}\n","import * as types from '../actions/actionTypes';\nimport initialState from './initialState';\n\n/*\n Inputs:\n state = Estado atual do objeto, caso não seja passado é utilizado o estado default do\n arquivo(initalstate.contacts)\n action = Ação aplicada sobre o objeto\n\n Types:\n LOAD_CONTACTS_SUCCESS = Carregamento de contatos realizado com sucesso\n\n clientsReducer:\n Retornado array de contatos ordenado ou não mediante o contato estar ativo ou não.\n*/\nexport default function contactsReducer(state = initialState.contacts, action) {\n let newState = [];\n switch (action.type) {\n case types.LOAD_CONTACTS_SUCCESS:\n // Eu tenho que, retirar a lista antiga de contatos e adicionar a nova lista carregada\n newState = state.filter(dataList => dataList.clientId !== action.clientId);\n return [\n ...newState,\n {\n clientId: action.clientId,\n ordering: action.ordering,\n data: action.contacts,\n },\n ];\n case types.NEW_CONTACT:\n newState = state.map(dataList => {\n if (dataList && dataList.clientId === action.clientId) {\n return {\n ordering: dataList.ordering,\n clientId: dataList.clientId,\n data: [...dataList.data, action.contact]\n }\n }\n return dataList;\n });\n return newState;\n case types.EDIT_CONTACT:\n newState = state.map(dataList => {\n if (dataList.data && dataList.clientId === action.clientId) {\n return {\n ordering: dataList.ordering,\n clientId: dataList.clientId,\n data: dataList.data.map(\n contact => contact.id === action.contact.id ? action.contact : contact\n )\n };\n }\n return dataList;\n });\n return newState;\n case types.REMOVE_CONTACT:\n newState = state.map(dataList => {\n if (dataList && dataList.clientId === action.clientId) {\n const newContactList = dataList.data.filter((elm) => elm.id !== action.contact.id);\n return {\n ordering: dataList.ordering,\n clientId: dataList.clientId,\n data: newContactList\n }\n }\n return dataList;\n });\n return newState;\n default:\n return state;\n }\n}\n","import * as types from '../actions/actionTypes';\nimport initialState from './initialState';\n\n\n/*\nInputs:\n state = Estado atual do objeto, caso não seja passado, é utilizado o estado padrão do arquivo\n (initialState.errors) que é uma lista\n action = Ação aplicada sobre o objeto\nTypes:\n LOGOUT = Realiza ação de Logout no Programa\n REMOVE_ERROR = Procura na lista do estado e remove o erro da ação\n\nerrorsReducer = Realiza o logout da aplicação caso ocorra algum erro muito grave\n(utilizado primariamente nas actions)\n */\nexport default function errorsReducer(state = initialState.errors, action) {\n switch (action.type) {\n case types.LOGOUT:\n return [\n ...state,\n 'LOGOUT',\n ];\n\n case types.REMOVE_ERROR:\n return state.filter(el => el !== action.error);\n\n default:\n return state;\n }\n}\n","import * as types from '../actions/actionTypes';\nimport initialState from './initialState';\n\n\n/*\nInputs:\n state = Estado atual do objeto, caso não seja passado, é utilizado o estado padrão do arquivo\n (initialState.ownerAttendant) que é um objeto\n action = Ação aplicada sobre o objeto\nTypes:\n SET_OWNER_ATTENDANT = Define o usuário que está atualmente utilizando/modificando algum\n cliente/contato/atendimento\n\nownerAttendantReducer = Define e retorna o usuário atual que está logado no sistema, para\nutilização em edições/deleções/criações\n */\nexport default function loggedAttendantReducer(state = initialState.loggedAttendant, action) {\n switch (action.type) {\n case types.SET_LOGGED_ATTENDANT:\n return Object.assign({}, action.attendant);\n\n default:\n return state;\n }\n}\n","import * as types from '../actions/actionTypes';\nimport initialState from './initialState';\n\n\n/*\nInputs:\n state = Estado atual do objeto, caso não seja passado, é utilizado o estado padrão do arquivo\n (initialState.transmitters) que é uma lista\n action = Ação aplicada sobre o objeto\nTypes:\n LOAD_transmitters_SUCCESS = Carrega a lista de Transmissores de um cliente específico, adiciona\n na lista quando não houver ou quando um transmissor novo for adicionado\n\ntransmitterReducer = Adiciona um transmissor a uma lista de transmissores por cliente e retorna\nesta lista\n */\nexport default function transmitterReducer(state = initialState.transmitters, action) {\n let newState = [];\n switch (action.type) {\n case types.LOAD_TRANSMITTERS_SUCCESS:\n return [\n ...state,\n {\n clientId: action.clientId,\n ordering: action.ordering,\n data: action.transmitters\n }\n ]\n case types.EDIT_TRANSMITTER:\n newState = state.map(dataList => {\n if (dataList.data && dataList.clientId === action.clientId) {\n return {\n clientId: dataList.clientId,\n ordering: dataList.ordering,\n data: dataList.data.map(\n transmitter => transmitter.id === action.transmitter.id\n ? action.transmitter\n : transmitter\n )\n }\n }\n return dataList\n });\n return newState;\n case types.NEW_TRANSMITTER:\n newState = state.map(dataList => {\n if (dataList.data && dataList.clientId === action.clientId) {\n return {\n clientId: dataList.clientId,\n ordering: dataList.ordering,\n data: [...dataList.data, action.transmitter]\n }\n }\n return dataList;\n });\n return newState;\n case types.REMOVE_TRANSMITTER:\n newState = state.map(dataList => {\n if (dataList.data && parseInt(dataList.clientId) === parseInt(action.clientId)) {\n return {\n clientId: dataList.clientId,\n ordering: dataList.ordering,\n data: dataList.data.filter(\n transmitter => transmitter.id !== action.transmitterId\n )\n };\n }\n return dataList;\n });\n return newState;\n default:\n return state;\n }\n}\n","import * as types from '../actions/actionTypes';\nimport initialState from './initialState';\n\nexport default function statusReducer(state = initialState.status, action) {\n switch (action.type) {\n case types.LOAD_BUSY_USERS_SUCCESS: {\n if (action.response.length === 0) {\n return state;\n }\n const newState = action.response.map(attend => {\n return {\n userId: attend.attendant,\n attendId: attend.id\n };\n });\n return newState;\n }\n case types.ADD_BUSY_USER: {\n const newState = state.some(value => value.userId === action.userId)\n ? state\n : [...state, {\n userId: action.userId,\n attendId: action.attendId\n }];\n return newState;\n }\n case types.REMOVE_BUSY_USER: {\n const newState = state.filter(value => value.userId !== action.userId);\n return newState;\n }\n default:\n return state;\n }\n}\n// /*\n// Inputs:\n// state = Estado atual do objeto, caso não seja passado, é utilizado o estado padrão do arquivo\n// (initialState.search) que é um objeto\n// action = Ação aplicada sobre o objeto\n// Types:\n// SET_ATTTENDANT_BUSY_STATUS = Define o atendimento que está em progresso\n\n// searchReducer = Define o atendimento que está em progresso (Não parece estar sendo utilizado)\n// Deprecated(?)\n// */\n// export default function statusReducer(state = initialState.status, action) {\n// switch (action.type) {\n// case types.SET_ATTTENDANT_BUSY_STATUS: {\n// const attend = action.attends.find(a => a.attendant === action.id && a.status === 'IN_PROGRESS');\n// const isBusy = !!attend;\n// const attendId = isBusy ? attend.id : 0;\n// return { isBusy, attendId };\n// }\n// case types.PRE_ATTEND_SET_STATUS: {\n// return { isBusy: action.status, attendId: action.attend };\n// }\n// default:\n// return state;\n// }\n// }\n","import * as types from '../actions/actionTypes';\nimport initialState from './initialState';\n\n/*\n Inputs:\n state = Estado atual do objeto, caso não seja passado é utilizado o estado default do arquivo(initalstate.equipment)\n action = Ação aplicada sobre o objeto\n\n Types:\n LOAD_EQUIPMENT_SUCCESS = Carregamento de equipamentos realizado com sucesso\n\n equipmentReducer:\n Retornado array de equipamentos.\n*/\nexport default function equipmentReducer(\n state = initialState.equipment,\n action,\n) {\n if (action.type === types.LOAD_EQUIPMENT_SUCCESS) {\n return [\n ...state,\n {\n data: action.equipment,\n },\n ];\n }\n return state;\n}\n","import * as types from '../actions/actionTypes';\nimport initialState from './initialState';\n\n/*\nInputs:\n state = Estado atual do objeto, caso não seja passado, é utilizado o estado padrão do arquivo\n (initialState.importInfo) que é um objeto\n action = Ação aplicada sobre o objeto\nTypes:\n IMPORT_CLIENTS_SUCCESS = Realiza a ação de importação de clientes\n\nimportInfoReducer = Retorna um objeto com informações de clientes que foram importados com\nsucesso e clientes que tiveram erro de importação (Utilizado na importação de clientes por csv)\n */\nexport default (state = initialState.importInfo, action) => {\n if (action.type === types.IMPORT_CLIENTS_SUCCESS) {\n return Object.assign({}, state, action.importInfo);\n }\n return state;\n};\n","import * as types from '../actions/actionTypes';\nimport initialState from './initialState';\n\n\n/*\nInputs:\n state = Estado atual do objeto, caso não seja passado, é utilizado o estado padrão do arquivo\n (initialState.tenantStatus) que é um objeto\n action = Ação aplicada sobre o objeto\nTypes:\n LOAD_TENANT_STATUS_SUCCESS = Carrega o status do Contactto, se ele é ativo ou trial\n\ntenantStatusReducer = Carrega e retorna um objeto onde mostra qual o estado atual do Contactto\nse está ativo ou versão trial\n */\nexport default function globalConfigurationReducer(state = initialState.tenantStatus, action) {\n if (action.type === types.LOAD_TENANT_STATUS_SUCCESS) {\n return { status: action.status };\n }\n\n if (action.type === types.RELOAD_TENANT_STATUS_SUCCESS) {\n return { status: action.status };\n }\n return state;\n}\n","import * as types from '../actions/actionTypes';\nimport initialState from './initialState';\n\n\n/*\nInputs:\n\nTypes:\n\n */\nexport default function localeReducer(state = initialState.locale, action) {\n switch (action.type) {\n case types.LOCALE_SET:\n return { lang: action.lang };\n default:\n return state;\n }\n}\n","import * as types from '../actions/actionTypes';\nimport initialState from './initialState';\n\n/*\n Inputs:\n state = Estado atual do objeto, caso não seja passado é utilizado o estado default do arquivo(initalstate.groups)\n action = Ação aplicada sobre o objeto\n\n Types:\n LOAD_GROUPS_SUCCESS = Grupos de usuário carregados com sucesso\n\n groupsReducer:\n Caso os grupos sejam carregados com sucesso, retorna a listagem de grupos e usuários destes grupos\n*/\nexport default function groupsReducer(state = initialState.groups, action) {\n switch (action.type) {\n case types.LOAD_GROUPS_SUCCESS:\n return [...action.groups];\n\n default:\n return state;\n }\n}\n\nexport function getCompanies(state) {\n return state.groups.filter(grp => ![1, 2, 3, 4].includes(grp.id))\n}\n","import * as types from '../actions/actionTypes';\nimport initialState from './initialState';\n\nexport default function remindersReducer(state = initialState.reminders, action) {\n if (action.type === types.LOAD_REMINDERS_SUCCESS) {\n return {\n serverTime: action.serverTime,\n data: [\n ...state.data,\n action.reminders,\n ],\n };\n }\n\n if (action.type === types.RELOAD_REMINDERS_SUCCESS) {\n return {\n serverTime: action.serverTime,\n data: [...action.reminders],\n };\n }\n\n return state;\n}\n","import * as types from '../actions/actionTypes';\nimport initialState from './initialState';\n\n\nexport default function globalServerReducer(state = initialState.attendTags, action) {\n if (action.type === types.LOAD_ATTEND_TAGS_SUCCESS) {\n return [...action.tags];\n }\n return state;\n}\n","import { createStore, applyMiddleware } from 'redux';\nimport rootReducer from '../reducers/index';\nimport thunk from 'redux-thunk';\nimport axios from 'axios';\n\nexport default function configureStore(initialState) {\n return createStore(\n rootReducer,\n initialState,\n applyMiddleware(thunk.withExtraArgument({ axios }))\n );\n}\n","// extracted by mini-css-extract-plugin\nmodule.exports = {\"detail-wrapper\":\"attendDetail_detail-wrapper__2YneZ\",\"left-wrapper\":\"attendDetail_left-wrapper__3zF8l\",\"right-wrapper\":\"attendDetail_right-wrapper__1YtAj\",\"client-header\":\"attendDetail_client-header__OiGZa\",\"client-header-left\":\"attendDetail_client-header-left__60Z_F\",\"client-header-right\":\"attendDetail_client-header-right__LM44G\",\"alarm-header\":\"attendDetail_alarm-header__32-_C\",\"label\":\"attendDetail_label__1PGkf\",\"value\":\"attendDetail_value__SWDPX\",\"row\":\"attendDetail_row__1HdcM\",\"alarm-row\":\"attendDetail_alarm-row__1u3s4\"};","// extracted by mini-css-extract-plugin\nmodule.exports = {\"wrapper\":\"activate_wrapper__2mw5u\",\"container\":\"activate_container__1UF7E\",\"title\":\"activate_title__ZnT_6\",\"containerTitle\":\"activate_containerTitle__2mKNw\",\"content\":\"activate_content__Nw79X\",\"row50\":\"activate_row50__rl1N5\",\"row100\":\"activate_row100__1eV7N\",\"field\":\"activate_field__1ZQbr\",\"required\":\"activate_required__7Al9r\",\"value\":\"activate_value__2t3Nm\",\"input\":\"activate_input__2WZS6\",\"select\":\"activate_select__2FjuW\",\"select--enable\":\"activate_select--enable__Kky8H\",\"btn\":\"activate_btn__2URfK\",\"btn--add\":\"activate_btn--add__2tQZz\",\"btn--add-contact-phone\":\"activate_btn--add-contact-phone__1-xT0\",\"btn--add-transmissor\":\"activate_btn--add-transmissor__1RSkx\",\"btn--attend-emergency\":\"activate_btn--attend-emergency__1osBM\",\"btn--bold\":\"activate_btn--bold__Aonbi\",\"btn--bottom\":\"activate_btn--bottom__2fY6M\",\"btn--color-gray\":\"activate_btn--color-gray__2Wnyo\",\"btn--color-green\":\"activate_btn--color-green__1meoX\",\"btn--color-invalid\":\"activate_btn--color-invalid__3XEh3\",\"btn--color-orange\":\"activate_btn--color-orange__2DZ1w\",\"btn--color-red\":\"activate_btn--color-red__37z67\",\"btn--btn-bg-color\":\"activate_btn--btn-bg-color__1AGlb\",\"btn--confirm-remove-modal\":\"activate_btn--confirm-remove-modal__eVvNl\",\"btn--download\":\"activate_btn--download__1mkAw\",\"btn--download-text\":\"activate_btn--download-text__3wBWy\",\"btn--get-attend-or-attend-voice-call\":\"activate_btn--get-attend-or-attend-voice-call__2xsvv\",\"btn--modal-attend\":\"activate_btn--modal-attend__2xBjG\",\"btn--right\":\"activate_btn--right__23EGw\",\"btn--multi\":\"activate_btn--multi__2bHut\",\"btn--form\":\"activate_btn--form__3W4m7\",\"btnDisabled\":\"activate_btnDisabled__3168G\",\"hasError\":\"activate_hasError__YgxGb\"};","// extracted by mini-css-extract-plugin\nmodule.exports = {\"wrapper\":\"medications_wrapper__302jz\",\"container\":\"medications_container__3rW04\",\"menuContainer\":\"medications_menuContainer__2AM_5\",\"menuOption\":\"medications_menuOption__105nu\",\"menuText\":\"medications_menuText__oCh-k\",\"menuTriangle\":\"medications_menuTriangle__18pnn\",\"rotate\":\"medications_rotate__1mALq\",\"submenuContainer\":\"medications_submenuContainer__2ZJbd\",\"submenuLabel\":\"medications_submenuLabel__V2tEc\",\"selectContainer\":\"medications_selectContainer__8TS7C\",\"selectContainerMin\":\"medications_selectContainerMin__3muHX\",\"submenuBtn\":\"medications_submenuBtn__2acuc\",\"toggleWrapper\":\"medications_toggleWrapper__lTJnj\"};"],"sourceRoot":""}